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
e4ba9e28
Commit
e4ba9e28
authored
Nov 02, 2021
by
Kilian Weishaupt
Browse files
[staggered][fvGeometry] Put static data into traits
parent
e61c2b87
Changes
1
Hide whitespace changes
Inline
Side-by-side
dumux/discretization/facecentered/staggered/fvgridgeometry.hh
View file @
e4ba9e28
...
...
@@ -64,6 +64,19 @@ struct FaceCenteredStaggeredDefaultGridGeometryTraits : public DefaultMapperTrai
template
<
class
GridGeometry
,
bool
enableCache
>
using
LocalView
=
FaceCenteredStaggeredFVElementGeometry
<
GridGeometry
,
enableCache
>
;
struct
StaticInfo
{
static
constexpr
auto
dim
=
GridView
::
Grid
::
dimension
;
static
constexpr
auto
numFacesPerElement
=
dim
*
2
;
static
constexpr
auto
numScvsPerElement
=
numFacesPerElement
;
static
constexpr
auto
numLateralScvfsPerScv
=
2
*
(
dim
-
1
);
static
constexpr
auto
numLateralScvfsPerElement
=
numFacesPerElement
*
numLateralScvfsPerScv
;
static
constexpr
auto
minNumScvfsPerElement
=
numLateralScvfsPerElement
// number of lateral faces
+
numFacesPerElement
;
// number of central frontal faces
static
constexpr
auto
maxNumScvfsPerElement
=
minNumScvfsPerElement
+
numFacesPerElement
;
// number of potential frontal faces on boundary
};
};
/*!
...
...
@@ -99,17 +112,12 @@ class FaceCenteredStaggeredFVGridGeometry<GV, true, Traits>
using
Scalar
=
typename
GV
::
ctype
;
static
constexpr
auto
dim
=
GV
::
Grid
::
dimension
;
static
constexpr
auto
numFacesPerElement
=
dim
*
2
;
static
constexpr
auto
numScvsPerElement
=
numFacesPerElement
;
static
constexpr
auto
numLateralScvfsPerScv
=
2
*
(
dim
-
1
);
static
constexpr
auto
numLateralScvfsPerElement
=
numFacesPerElement
*
numLateralScvfsPerScv
;
static
constexpr
auto
maxNumScvfsPerElement
=
numLateralScvfsPerElement
// number of lateral faces
+
numFacesPerElement
// number of central frontal faces
+
numFacesPerElement
;
// number of potential frontal faces on boundary
// static_assert(maxNumScvfsPerElement == 16); // TODO remove
static
constexpr
auto
dim
=
Traits
::
StaticInfo
::
dim
;
static
constexpr
auto
numScvsPerElement
=
Traits
::
StaticInfo
::
numScvsPerElement
;
static
constexpr
auto
numLateralScvfsPerScv
=
Traits
::
StaticInfo
::
numLateralScvfsPerScv
;
static
constexpr
auto
numLateralScvfsPerElement
=
Traits
::
StaticInfo
::
numLateralScvfsPerElement
;
static
constexpr
auto
minNumScvfsPerElement
=
Traits
::
StaticInfo
::
minNumScvfsPerElement
;
static
constexpr
auto
maxNumScvfsPerElement
=
Traits
::
StaticInfo
::
maxNumScvfsPerElement
;
using
ScvfCornerStorage
=
typename
Traits
::
SubControlVolumeFace
::
Traits
::
CornerStorage
;
using
ScvCornerStorage
=
typename
Traits
::
SubControlVolume
::
Traits
::
CornerStorage
;
...
...
@@ -131,6 +139,8 @@ public:
using
GridView
=
GV
;
//! export the geometry helper type
using
GeometryHelper
=
typename
Traits
::
GeometryHelper
;
//! export static information
using
StaticInformation
=
typename
Traits
::
StaticInfo
;
//! export the type of extrusion
using
Extrusion
=
Extrusion_t
<
Traits
>
;
...
...
@@ -555,15 +565,12 @@ class FaceCenteredStaggeredFVGridGeometry<GV, false, Traits>
using
IntersectionMapper
=
typename
Traits
::
IntersectionMapper
;
using
ConnectivityMap
=
typename
Traits
::
template
ConnectivityMap
<
ThisType
>;
static
constexpr
auto
dim
=
GV
::
Grid
::
dimension
;
static
constexpr
auto
numFacesPerElement
=
dim
*
2
;
static
constexpr
auto
numScvsPerElement
=
numFacesPerElement
;
static
constexpr
auto
numLateralScvfsPerScv
=
2
*
(
dim
-
1
);
static
constexpr
auto
numLateralScvfsPerElement
=
numFacesPerElement
*
numLateralScvfsPerScv
;
static
constexpr
auto
maxNumScvfsPerElement
=
numLateralScvfsPerElement
// number of lateral faces
+
numFacesPerElement
// number of central frontal faces
+
numFacesPerElement
;
// number of potential frontal faces on boundary
static
constexpr
auto
dim
=
Traits
::
StaticInfo
::
dim
;
static
constexpr
auto
numScvsPerElement
=
Traits
::
StaticInfo
::
numScvsPerElement
;
static
constexpr
auto
numLateralScvfsPerScv
=
Traits
::
StaticInfo
::
numLateralScvfsPerScv
;
static
constexpr
auto
numLateralScvfsPerElement
=
Traits
::
StaticInfo
::
numLateralScvfsPerElement
;
static
constexpr
auto
minNumScvfsPerElement
=
Traits
::
StaticInfo
::
minNumScvfsPerElement
;
static
constexpr
auto
maxNumScvfsPerElement
=
Traits
::
StaticInfo
::
maxNumScvfsPerElement
;
public:
//! export the discretization method this geometry belongs to
...
...
@@ -582,6 +589,8 @@ public:
using
GridView
=
GV
;
//! export the geometry helper type
using
GeometryHelper
=
typename
Traits
::
GeometryHelper
;
//! export static information
using
StaticInformation
=
typename
Traits
::
StaticInfo
;
//! export the type of extrusion
using
Extrusion
=
Extrusion_t
<
Traits
>
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment