diff --git a/dumux/discretization/box/boxgeometryhelper.hh b/dumux/discretization/box/boxgeometryhelper.hh index 69589aa770242e470423972b78d8fb73081699bd..3d28573fb54dd5bd7e52525edcb904fc7549e460 100644 --- a/dumux/discretization/box/boxgeometryhelper.hh +++ b/dumux/discretization/box/boxgeometryhelper.hh @@ -59,7 +59,7 @@ struct BoxMLGeometryTraits : public Dune::MultiLinearGeometryTraits<ct> }; }; -namespace Detail { +namespace Detail::Box { template<Dune::GeometryType::Id gt> struct ScvCorners; @@ -262,7 +262,7 @@ S subEntityKeyToCornerStorage(const Geo& geo, unsigned int i, unsigned int c, co return subEntityKeyToCornerStorageImpl<S>(geo, i, c, key, Indices{}); } -} // end namespace Detail +} // end namespace Detail::Box //! Create sub control volumes and sub control volume face geometries template<class GridView, int dim, class ScvType, class ScvfType> @@ -291,8 +291,8 @@ public: //! Create a vector with the scv corners ScvCornerStorage getScvCorners(unsigned int localScvIdx) const { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::line>; - return Detail::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::line>; + return Detail::Box::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); } ScvGeometry scvGeometry(unsigned int localScvIdx) const @@ -303,8 +303,8 @@ public: //! Create a vector with the corners of sub control volume faces ScvfCornerStorage getScvfCorners(unsigned int localScvfIdx) const { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::line>; - return Detail::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::line>; + return Detail::Box::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); } //! Create the sub control volume face geometries on the boundary @@ -381,13 +381,13 @@ public: const auto type = geo_.type(); if (type == Dune::GeometryTypes::triangle) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::triangle>; - return Detail::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::triangle>; + return Detail::Box::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); } else if (type == Dune::GeometryTypes::quadrilateral) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::quadrilateral>; - return Detail::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::quadrilateral>; + return Detail::Box::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); } else DUNE_THROW(Dune::NotImplemented, "Box scv geometries for dim=" << dim @@ -402,13 +402,13 @@ public: const auto type = geo_.type(); if (type == Dune::GeometryTypes::triangle) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::triangle>; - return Detail::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::triangle>; + return Detail::Box::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); } else if (type == Dune::GeometryTypes::quadrilateral) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::quadrilateral>; - return Detail::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::quadrilateral>; + return Detail::Box::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); } else DUNE_THROW(Dune::NotImplemented, "Box scvf geometries for dim=" << dim @@ -423,9 +423,9 @@ public: // we have to use the corresponding facet geometry as the intersection geometry // might be rotated or flipped. This makes sure that the corners (dof location) // and corresponding scvfs are sorted in the same way - using Corners = Detail::ScvCorners<Dune::GeometryTypes::line>; + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::line>; constexpr int facetCodim = 1; - return Detail::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo_, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); + return Detail::Box::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo_, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); } //! Create the sub control volume face geometries on the boundary @@ -541,18 +541,18 @@ public: const auto type = geo_.type(); if (type == Dune::GeometryTypes::tetrahedron) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::tetrahedron>; - return Detail::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::tetrahedron>; + return Detail::Box::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); } else if (type == Dune::GeometryTypes::prism) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::prism>; - return Detail::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::prism>; + return Detail::Box::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); } else if (type == Dune::GeometryTypes::hexahedron) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::hexahedron>; - return Detail::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::hexahedron>; + return Detail::Box::keyToCornerStorage<ScvCornerStorage>(geo_, Corners::keys[localScvIdx]); } else DUNE_THROW(Dune::NotImplemented, "Box scv geometries for dim=" << dim @@ -567,18 +567,18 @@ public: const auto type = geo_.type(); if (type == Dune::GeometryTypes::tetrahedron) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::tetrahedron>; - return Detail::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::tetrahedron>; + return Detail::Box::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); } else if (type == Dune::GeometryTypes::prism) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::prism>; - return Detail::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::prism>; + return Detail::Box::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); } else if (type == Dune::GeometryTypes::hexahedron) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::hexahedron>; - return Detail::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::hexahedron>; + return Detail::Box::keyToCornerStorage<ScvfCornerStorage>(geo_, Corners::keys[localScvfIdx]); } else DUNE_THROW(Dune::NotImplemented, "Box scvf geometries for dim=" << dim @@ -599,13 +599,13 @@ public: const auto type = referenceElement(geo_).type(localFacetIndex, facetCodim); if (type == Dune::GeometryTypes::triangle) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::triangle>; - return Detail::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo_, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::triangle>; + return Detail::Box::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo_, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); } else if (type == Dune::GeometryTypes::quadrilateral) { - using Corners = Detail::ScvCorners<Dune::GeometryTypes::quadrilateral>; - return Detail::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo_, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); + using Corners = Detail::Box::ScvCorners<Dune::GeometryTypes::quadrilateral>; + return Detail::Box::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo_, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); } else DUNE_THROW(Dune::NotImplemented, "Box boundary scvf geometries for dim=" << dim diff --git a/dumux/porousmediumflow/boxdfm/geometryhelper.hh b/dumux/porousmediumflow/boxdfm/geometryhelper.hh index 0e882f39ca85c49bb1d04fa70d22900676883d3d..285095eccee001c57a86e676b6e65e876a62cc3b 100644 --- a/dumux/porousmediumflow/boxdfm/geometryhelper.hh +++ b/dumux/porousmediumflow/boxdfm/geometryhelper.hh @@ -142,13 +142,13 @@ public: const auto type = referenceElement(geo).type(localFacetIndex, facetCodim); if (type == Dune::GeometryTypes::triangle) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::triangle>; - return Detail::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::triangle>; + return Detail::Box::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); } else if (type == Dune::GeometryTypes::quadrilateral) { - using Corners = Detail::ScvfCorners<Dune::GeometryTypes::quadrilateral>; - return Detail::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); + using Corners = Detail::Box::ScvfCorners<Dune::GeometryTypes::quadrilateral>; + return Detail::Box::subEntityKeyToCornerStorage<ScvfCornerStorage>(geo, localFacetIndex, facetCodim, Corners::keys[indexInFacet]); } else DUNE_THROW(Dune::NotImplemented, "Box fracture scvf geometries for dim=" << dim