From 78d4d3f1aabc9a5323a25b85a67ab4789868ec0f Mon Sep 17 00:00:00 2001
From: Timo Koch <timo.koch@iws.uni-stuttgart.de>
Date: Mon, 22 Jun 2020 17:33:43 +0200
Subject: [PATCH] [disc] Add extrusion to grid geometries

---
 dumux/discretization/box/fvgridgeometry.hh               | 5 +++++
 dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh | 5 +++++
 dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh | 5 +++++
 dumux/discretization/fem/fegridgeometry.hh               | 3 +++
 dumux/discretization/staggered/fvgridgeometry.hh         | 5 +++++
 dumux/multidomain/facet/box/fvgridgeometry.hh            | 5 +++++
 dumux/porousmediumflow/boxdfm/fvgridgeometry.hh          | 5 +++++
 7 files changed, 33 insertions(+)

diff --git a/dumux/discretization/box/fvgridgeometry.hh b/dumux/discretization/box/fvgridgeometry.hh
index a1cea412c4..58479f2276 100644
--- a/dumux/discretization/box/fvgridgeometry.hh
+++ b/dumux/discretization/box/fvgridgeometry.hh
@@ -38,6 +38,7 @@
 #include <dumux/discretization/box/fvelementgeometry.hh>
 #include <dumux/discretization/box/subcontrolvolume.hh>
 #include <dumux/discretization/box/subcontrolvolumeface.hh>
+#include <dumux/discretization/extrusion.hh>
 
 namespace Dumux {
 
@@ -104,6 +105,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::VertexMapper;
     //! export the finite element cache type
@@ -370,6 +373,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::VertexMapper;
     //! export the finite element cache type
diff --git a/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh b/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh
index 4a7475dd72..0c7b0b8ea9 100644
--- a/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh
+++ b/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/parameters.hh>
 #include <dumux/common/indextraits.hh>
 #include <dumux/discretization/method.hh>
+#include <dumux/discretization/extrusion.hh>
 #include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/checkoverlapsize.hh>
 
@@ -96,6 +97,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export the connectivity map type
     using ConnectivityMap = typename Traits::template ConnectivityMap<ThisType>;
     //! export dof mapper type
@@ -463,6 +466,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export the connectivity map type
     using ConnectivityMap = typename Traits::template ConnectivityMap<ThisType>;
     //! export dof mapper type
diff --git a/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh b/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh
index 06020644f0..76d6be3cec 100644
--- a/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh
+++ b/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh
@@ -38,6 +38,7 @@
 #include <dumux/discretization/cellcentered/connectivitymap.hh>
 #include <dumux/discretization/cellcentered/tpfa/fvelementgeometry.hh>
 #include <dumux/discretization/cellcentered/tpfa/subcontrolvolumeface.hh>
+#include <dumux/discretization/extrusion.hh>
 
 namespace Dumux {
 
@@ -104,6 +105,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::ElementMapper;
 
@@ -386,6 +389,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::ElementMapper;
 
diff --git a/dumux/discretization/fem/fegridgeometry.hh b/dumux/discretization/fem/fegridgeometry.hh
index dfeea026cc..0f21e1c8f3 100644
--- a/dumux/discretization/fem/fegridgeometry.hh
+++ b/dumux/discretization/fem/fegridgeometry.hh
@@ -31,6 +31,7 @@
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/checkoverlapsize.hh>
+#include <dumux/discretization/extrusion.hh>
 #include <dumux/discretization/fem/feelementgeometry.hh>
 
 namespace Dumux {
@@ -71,6 +72,8 @@ public:
 
     //! export the grid view type
     using GridView = typename FEB::GridView;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export the type of finite element basis
     using FEBasis = FEB;
     //! export local view
diff --git a/dumux/discretization/staggered/fvgridgeometry.hh b/dumux/discretization/staggered/fvgridgeometry.hh
index e6119c7c43..0ae09439e8 100644
--- a/dumux/discretization/staggered/fvgridgeometry.hh
+++ b/dumux/discretization/staggered/fvgridgeometry.hh
@@ -28,6 +28,7 @@
 #include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/checkoverlapsize.hh>
 #include <dumux/discretization/method.hh>
+#include <dumux/discretization/extrusion.hh>
 
 namespace Dumux {
 
@@ -204,6 +205,8 @@ public:
     using SubControlVolume = typename T::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename T::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<T>;
     //! export the grid view type
     using GridView = GV;
     //! export the dof type indices
@@ -467,6 +470,8 @@ public:
     using SubControlVolume = typename T::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename T::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<T>;
     //! export the grid view type
     using GridView = GV;
     //! export the dof type indices
diff --git a/dumux/multidomain/facet/box/fvgridgeometry.hh b/dumux/multidomain/facet/box/fvgridgeometry.hh
index acf6463413..d16a2f9170 100644
--- a/dumux/multidomain/facet/box/fvgridgeometry.hh
+++ b/dumux/multidomain/facet/box/fvgridgeometry.hh
@@ -34,6 +34,7 @@
 
 #include <dumux/common/indextraits.hh>
 #include <dumux/discretization/method.hh>
+#include <dumux/discretization/extrusion.hh>
 #include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/box/boxgeometryhelper.hh>
 #include <dumux/discretization/box/subcontrolvolume.hh>
@@ -115,6 +116,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::VertexMapper;
     //! export the finite element cache type
@@ -372,6 +375,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! export the type of extrusion
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::VertexMapper;
     //! export the finite element cache type
diff --git a/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh b/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
index ae89f1555e..2d5a23fa1a 100644
--- a/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
+++ b/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
@@ -39,6 +39,7 @@
 #include <dumux/common/defaultmappertraits.hh>
 #include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/box/boxgeometryhelper.hh>
+#include <dumux/discretization/extrusion.hh>
 
 #include "fvelementgeometry.hh"
 #include "geometryhelper.hh"
@@ -121,6 +122,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! Export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! Export the extrusion type
+    using Extrusion = Extrusion_t<Traits>;
     //! Export dof mapper type
     using DofMapper = typename Traits::VertexMapper;
     //! Export the finite element cache type
@@ -419,6 +422,8 @@ public:
     using SubControlVolume = typename Traits::SubControlVolume;
     //! export the type of sub control volume
     using SubControlVolumeFace = typename Traits::SubControlVolumeFace;
+    //! Export the extrusion type
+    using Extrusion = Extrusion_t<Traits>;
     //! export dof mapper type
     using DofMapper = typename Traits::VertexMapper;
     //! export the finite element cache type
-- 
GitLab