Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dumux-repositories
dumux
Commits
7f84ba0d
Commit
7f84ba0d
authored
Feb 27, 2021
by
Mathis Kelm
Committed by
Timo Koch
Apr 03, 2021
Browse files
[test][freeflow] Separate properties into their own header
parent
584eded4
Changes
51
Hide whitespace changes
Inline
Side-by-side
test/freeflow/navierstokes/angeli/main.cc
View file @
7f84ba0d
...
...
@@ -44,7 +44,7 @@
#include
<dumux/linear/seqsolverbackend.hh>
#include
<dumux/nonlinear/newtonsolver.hh>
#include
"pro
blem
.hh"
#include
"pro
perties
.hh"
/*!
* \brief Creates analytical solution.
...
...
test/freeflow/navierstokes/angeli/problem.hh
View file @
7f84ba0d
...
...
@@ -26,55 +26,15 @@
#ifndef DUMUX_ANGELI_TEST_PROBLEM_HH
#define DUMUX_ANGELI_TEST_PROBLEM_HH
#include
<dune/grid/yaspgrid.hh>
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/common/parameters.hh>
#include
<dumux/common/properties.hh>
#include
<dumux/freeflow/navierstokes/boundarytypes.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/freeflow/navierstokes/problem.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
"../l2error.hh"
namespace
Dumux
{
template
<
class
TypeTag
>
class
AngeliTestProblem
;
namespace
Properties
{
// Create new type tags
namespace
TTag
{
struct
AngeliTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
AngeliTest
>
{
private:
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
public:
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
AngeliTest
>
{
using
type
=
Dune
::
YaspGrid
<
2
,
Dune
::
EquidistantOffsetCoordinates
<
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
,
2
>
>
;
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
AngeliTest
>
{
using
type
=
Dumux
::
AngeliTestProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
AngeliTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
AngeliTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
AngeliTest
>
{
static
constexpr
bool
value
=
true
;
};
}
// end namespace Properties
/*!
* \ingroup NavierStokesTests
...
...
@@ -97,7 +57,6 @@ class AngeliTestProblem : public NavierStokesProblem<TypeTag>
using
PrimaryVariables
=
GetPropType
<
TypeTag
,
Properties
::
PrimaryVariables
>
;
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
using
SolutionVector
=
GetPropType
<
TypeTag
,
Properties
::
SolutionVector
>
;
using
TimeLoopPtr
=
std
::
shared_ptr
<
TimeLoop
<
Scalar
>>
;
static
constexpr
auto
dimWorld
=
GridGeometry
::
GridView
::
dimensionworld
;
using
Element
=
typename
GridGeometry
::
GridView
::
template
Codim
<
0
>
::
Entity
;
...
...
test/freeflow/navierstokes/angeli/properties.hh
0 → 100644
View file @
7f84ba0d
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*****************************************************************************
* See the file COPYING for full copying permissions. *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/*!
* \file
* \ingroup NavierStokesTests
* \brief The properties of the test for the instationary staggered grid Navier-Stokes model
* with analytical solution (Angeli et al. 2017, \cite Angeli2017).
*/
#ifndef DUMUX_ANGELI_TEST_PROPERTIES_HH
#define DUMUX_ANGELI_TEST_PROPERTIES_HH
#include
<dune/grid/yaspgrid.hh>
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
"problem.hh"
namespace
Dumux
::
Properties
{
// Create new type tags
namespace
TTag
{
struct
AngeliTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
AngeliTest
>
{
private:
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
public:
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
AngeliTest
>
{
using
type
=
Dune
::
YaspGrid
<
2
,
Dune
::
EquidistantOffsetCoordinates
<
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
,
2
>
>
;
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
AngeliTest
>
{
using
type
=
Dumux
::
AngeliTestProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
AngeliTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
AngeliTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
AngeliTest
>
{
static
constexpr
bool
value
=
true
;
};
}
// end namespace Dumux::Properties
#endif
test/freeflow/navierstokes/channel/1d/main.cc
View file @
7f84ba0d
...
...
@@ -42,7 +42,7 @@
#include
<dumux/linear/seqsolverbackend.hh>
#include
<dumux/nonlinear/newtonsolver.hh>
#include
"pro
blem
.hh"
#include
"pro
perties
.hh"
int
main
(
int
argc
,
char
**
argv
)
{
...
...
test/freeflow/navierstokes/channel/1d/problem.hh
View file @
7f84ba0d
...
...
@@ -27,56 +27,15 @@
#define DUMUX_DONEA_TEST_PROBLEM_HH
#include
<dune/common/fmatrix.hh>
#include
<dune/grid/yaspgrid.hh>
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/common/properties.hh>
#include
<dumux/common/parameters.hh>
#include
<dumux/freeflow/navierstokes/boundarytypes.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/freeflow/navierstokes/problem.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
"../../l2error.hh"
namespace
Dumux
{
template
<
class
TypeTag
>
class
NavierStokesAnalyticProblem
;
namespace
Properties
{
// Create new type tags
namespace
TTag
{
struct
NavierStokesAnalytic
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
using
type
=
Dune
::
YaspGrid
<
1
>
;
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
using
type
=
Dumux
::
NavierStokesAnalyticProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
NormalizePressure
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
false
;
};
}
// end namespace Properties
/*!
* \ingroup NavierStokesTests
...
...
test/freeflow/navierstokes/channel/1d/properties.hh
0 → 100644
View file @
7f84ba0d
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*****************************************************************************
* See the file COPYING for full copying permissions. *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/*!
* \file
* \ingroup NavierStokesTests
* \brief The properties of the test for the 1-D Navier-Stokes model with an analytical solution.
*/
#ifndef DUMUX_DONEA_TEST_PROPERTIES_HH
#define DUMUX_DONEA_TEST_PROPERTIES_HH
#include
<dune/grid/yaspgrid.hh>
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
"problem.hh"
namespace
Dumux
::
Properties
{
// Create new type tags
namespace
TTag
{
struct
NavierStokesAnalytic
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
using
type
=
Dune
::
YaspGrid
<
1
>
;
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
using
type
=
Dumux
::
NavierStokesAnalyticProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
NormalizePressure
<
TypeTag
,
TTag
::
NavierStokesAnalytic
>
{
static
constexpr
bool
value
=
false
;
};
}
// end namespace Dumux::Properties
#endif
test/freeflow/navierstokes/channel/2d/main.cc
View file @
7f84ba0d
...
...
@@ -43,7 +43,7 @@
#include
<dumux/linear/seqsolverbackend.hh>
#include
<dumux/nonlinear/newtonsolver.hh>
#include
"pro
blem
.hh"
#include
"pro
perties
.hh"
int
main
(
int
argc
,
char
**
argv
)
{
...
...
test/freeflow/navierstokes/channel/2d/problem.hh
View file @
7f84ba0d
...
...
@@ -25,62 +25,16 @@
#ifndef DUMUX_CHANNEL_TEST_PROBLEM_HH
#define DUMUX_CHANNEL_TEST_PROBLEM_HH
#include
<du
ne/grid/yaspgrid
.hh>
#include
<dumux/
discretization/staggered/freeflow/properties
.hh>
#include
<du
mux/common/parameters
.hh>
#include
<dumux/common/properties.hh>
#include
<dumux/
common/timeloop
.hh>
#include
<dumux/freeflow/navierstokes/boundarytypes.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/freeflow/navierstokes/problem.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/components/simpleh2o.hh>
#include
"../../l2error.hh"
namespace
Dumux
{
template
<
class
TypeTag
>
class
ChannelTestProblem
;
namespace
Properties
{
// Create new type tags
namespace
TTag
{
#if !NONISOTHERMAL
struct
ChannelTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
#else
struct
ChannelTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokesNI
,
StaggeredFreeFlowModel
>
;
};
#endif
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
ChannelTest
>
{
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
#if NONISOTHERMAL
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
SimpleH2O
<
Scalar
>
>
;
#else
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
#endif
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
ChannelTest
>
{
using
type
=
Dune
::
YaspGrid
<
2
>
;
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
ChannelTest
>
{
using
type
=
Dumux
::
ChannelTestProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
ChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
ChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
ChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
}
// end namespace Properties
/*!
* \ingroup NavierStokesTests
...
...
test/freeflow/navierstokes/channel/2d/properties.hh
0 → 100644
View file @
7f84ba0d
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*****************************************************************************
* See the file COPYING for full copying permissions. *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/*!
* \file
* \ingroup NavierStokesTests
* \brief The properties of the channel flow test for the staggered grid (Navier-)Stokes model.
*/
#ifndef DUMUX_CHANNEL_TEST_PROPERTIES_HH
#define DUMUX_CHANNEL_TEST_PROPERTIES_HH
#include
<dune/grid/yaspgrid.hh>
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/components/simpleh2o.hh>
#include
"problem.hh"
namespace
Dumux
::
Properties
{
// Create new type tags
namespace
TTag
{
#if !NONISOTHERMAL
struct
ChannelTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
#else
struct
ChannelTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokesNI
,
StaggeredFreeFlowModel
>
;
};
#endif
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
ChannelTest
>
{
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
#if NONISOTHERMAL
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
SimpleH2O
<
Scalar
>
>
;
#else
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
#endif
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
ChannelTest
>
{
using
type
=
Dune
::
YaspGrid
<
2
>
;
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
ChannelTest
>
{
using
type
=
Dumux
::
ChannelTestProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
ChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
ChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
ChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
}
// end namespace Dumux::Properties
#endif
test/freeflow/navierstokes/channel/3d/main.cc
View file @
7f84ba0d
...
...
@@ -44,7 +44,7 @@
#include
<dumux/linear/seqsolverbackend.hh>
#include
<dumux/nonlinear/newtonsolver.hh>
#include
"pro
blem
.hh"
#include
"pro
perties
.hh"
int
main
(
int
argc
,
char
**
argv
)
{
...
...
test/freeflow/navierstokes/channel/3d/problem.hh
View file @
7f84ba0d
...
...
@@ -29,70 +29,18 @@
#define DUMUX_3D_CHANNEL_PROBLEM_HH
#include
<dune/common/float_cmp.hh>
#include
<dune/grid/yaspgrid.hh>
#ifndef GRID_DIM
#define GRID_DIM 3
#endif
#if HAVE_DUNE_SUBGRID && GRID_DIM == 3
#include
<dune/subgrid/subgrid.hh>
#endif
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/common/properties.hh>
#include
<dumux/common/parameters.hh>
#include
<dumux/freeflow/navierstokes/boundarytypes.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/freeflow/navierstokes/problem.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
namespace
Dumux
{
template
<
class
TypeTag
>
class
ThreeDChannelTestProblem
;
namespace
Properties
{
// Create new type tags
namespace
TTag
{
struct
ThreeDChannelTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
static
constexpr
int
dim
=
GRID_DIM
;
using
HostGrid
=
Dune
::
YaspGrid
<
dim
,
Dune
::
EquidistantOffsetCoordinates
<
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
,
dim
>
>
;
#if HAVE_DUNE_SUBGRID && GRID_DIM == 3
using
type
=
Dune
::
SubGrid
<
HostGrid
::
dimension
,
HostGrid
>
;
#else
using
type
=
HostGrid
;
#ifndef GRID_DIM
#define GRID_DIM 3
#endif
};
// Set the problem property
template
<
class
TypeTag
>
struct
Problem
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
using
type
=
ThreeDChannelTestProblem
<
TypeTag
>
;
};
template
<
class
TypeTag
>
struct
EnableGridGeometryCache
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridFluxVariablesCache
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
template
<
class
TypeTag
>
struct
EnableGridVolumeVariablesCache
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
static
constexpr
bool
value
=
true
;
};
}
// end namespace Properties
namespace
Dumux
{
/*!
* \brief Test problem for the one-phase (Navier-) Stokes model in a 3D or pseudo 3D channel.
...
...
test/freeflow/navierstokes/channel/3d/properties.hh
0 → 100644
View file @
7f84ba0d
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
// vi: set et ts=4 sw=4 sts=4:
/*****************************************************************************
* See the file COPYING for full copying permissions. *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
/*!
* \file
* \ingroup NavierStokesTests
* \brief The properties for the channel flow test for the staggered grid (Navier-)Stokes model.
*/
#ifndef DUMUX_3D_CHANNEL_PROPERTIES_HH
#define DUMUX_3D_CHANNEL_PROPERTIES_HH
#include
<dune/grid/yaspgrid.hh>
#include
<dumux/discretization/staggered/freeflow/properties.hh>
#include
<dumux/freeflow/navierstokes/model.hh>
#include
<dumux/material/components/constant.hh>
#include
<dumux/material/fluidsystems/1pliquid.hh>
#include
"problem.hh"
#if HAVE_DUNE_SUBGRID && GRID_DIM == 3
#include
<dune/subgrid/subgrid.hh>
#endif
namespace
Dumux
::
Properties
{
// Create new type tags
namespace
TTag
{
struct
ThreeDChannelTest
{
using
InheritsFrom
=
std
::
tuple
<
NavierStokes
,
StaggeredFreeFlowModel
>
;
};
}
// end namespace TTag
// the fluid system
template
<
class
TypeTag
>
struct
FluidSystem
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
using
Scalar
=
GetPropType
<
TypeTag
,
Properties
::
Scalar
>
;
using
type
=
FluidSystems
::
OnePLiquid
<
Scalar
,
Components
::
Constant
<
1
,
Scalar
>
>
;
};
// Set the grid type
template
<
class
TypeTag
>
struct
Grid
<
TypeTag
,
TTag
::
ThreeDChannelTest
>
{
static
constexpr
int
dim
=
GRID_DIM
;