diff --git a/dumux/common/fvproblem.hh b/dumux/common/fvproblem.hh index 64c76771e29ade958eba9cb3ca83044a582f4ee5..a80599495031fac69edfd231469b1783f94d863f 100644 --- a/dumux/common/fvproblem.hh +++ b/dumux/common/fvproblem.hh @@ -65,13 +65,11 @@ class FVProblem using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, GridVolumeVariables)::LocalView; enum { - dim = GridView::dimension, - dimWorld = GridView::dimensionworld + dim = GridView::dimension }; using Element = typename GridView::template Codim<0>::Entity; - using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; static constexpr bool isBox = GET_PROP_TYPE(TypeTag, FVGridGeometry)::discMethod == DiscretizationMethod::box; diff --git a/dumux/common/geometry/geometricentityset.hh b/dumux/common/geometry/geometricentityset.hh index 9640b5dfe92f379277965afc87c9ca186699b986..9adfa846962c6a62864ce0bd0c9fb67fb054ae05 100644 --- a/dumux/common/geometry/geometricentityset.hh +++ b/dumux/common/geometry/geometricentityset.hh @@ -40,8 +40,10 @@ template <class GridView, int codim = 0> class GridViewGeometricEntitySet { using Mapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>; - using Entity = typename GridView::template Codim<codim>::Entity; + public: + using Entity = typename GridView::template Codim<codim>::Entity; + GridViewGeometricEntitySet(const GridView& gridView) : gridView_(gridView) , mapper_(gridView, Dune::mcmgLayout(Dune::Codim<codim>())) diff --git a/dumux/common/geometry/makegeometry.hh b/dumux/common/geometry/makegeometry.hh index 5907b7faf0e99f59a1c61b23fb4f1ddefa3332f6..5a37fe18f2cd1349799c76e4e4b41a51df75e086 100644 --- a/dumux/common/geometry/makegeometry.hh +++ b/dumux/common/geometry/makegeometry.hh @@ -33,12 +33,12 @@ namespace Dumux { //! Checks if four points lie within the same plane. -template<class Scalar> -bool pointsAreCoplanar(const std::vector<Dune::FieldVector<Scalar, 3>>& points, Scalar eps = 1e-20) +template<class CoordScalar> +bool pointsAreCoplanar(const std::vector<Dune::FieldVector<CoordScalar, 3>>& points, CoordScalar eps = 1e-20) { assert(points.size() == 4); // (see "Real-Time Collision Detection" by Christer Ericson) - Dune::FieldMatrix<Scalar, 4, 4> M; + Dune::FieldMatrix<CoordScalar, 4, 4> M; for(int i = 0; i < 3; ++i ) M[i] = {points[0][i], points[1][i], points[2][i], points[3][i]}; M[3] = {1.0, 1.0, 1.0, 1.0}; @@ -53,8 +53,8 @@ bool pointsAreCoplanar(const std::vector<Dune::FieldVector<Scalar, 3>>& points, * * \param points The user-specified vector of points (potentially in wrong order). */ -template<class Scalar> -std::vector<Dune::FieldVector<Scalar, 3>> getReorderedPoints(const std::vector<Dune::FieldVector<Scalar, 3>>& points) +template<class CoordScalar> +std::vector<Dune::FieldVector<CoordScalar, 3>> getReorderedPoints(const std::vector<Dune::FieldVector<CoordScalar, 3>>& points) { std::array<int, 4> tmp; return getReorderedPoints(points, tmp); @@ -66,8 +66,8 @@ std::vector<Dune::FieldVector<Scalar, 3>> getReorderedPoints(const std::vector<D * \param points The user-specified vector of points (potentially in wrong order). * \param orientations An array of orientations that can be useful for further processing. */ -template<class Scalar> -std::vector<Dune::FieldVector<Scalar, 3>> getReorderedPoints(const std::vector<Dune::FieldVector<Scalar, 3>>& points, +template<class CoordScalar> +std::vector<Dune::FieldVector<CoordScalar, 3>> getReorderedPoints(const std::vector<Dune::FieldVector<CoordScalar, 3>>& points, std::array<int, 4>& orientations) { if(points.size() == 4) @@ -94,7 +94,7 @@ std::vector<Dune::FieldVector<Scalar, 3>> getReorderedPoints(const std::vector<D return points; // the points do not conform with the dune ordering, re-order - using GlobalPosition = Dune::FieldVector<Scalar, 3>; + using GlobalPosition = Dune::FieldVector<CoordScalar, 3>; if(!diagonalsIntersect && orientations[0] == 1) return std::vector<GlobalPosition>{p1, p0, p2, p3}; else if(!diagonalsIntersect && orientations[0] == -1) @@ -109,19 +109,19 @@ std::vector<Dune::FieldVector<Scalar, 3>> getReorderedPoints(const std::vector<D /*! * \brief Creates a dune quadrilateral geometry given 4 corner points. * - * \tparam Scalar The Scalar type. + * \tparam CoordScalar The CoordScalar type. * \tparam enableSanityCheck Turn on/off sanity check and reordering of points * \param points The user-specified vector of points (potentially in wrong order). */ -template<class Scalar, bool enableSanityCheck = true> -auto makeDuneQuadrilaterial(const std::vector<Dune::FieldVector<Scalar, 3>>& points) +template<class CoordScalar, bool enableSanityCheck = true> +auto makeDuneQuadrilaterial(const std::vector<Dune::FieldVector<CoordScalar, 3>>& points) { assert(points.size() == 4 && "A quadrilateral needs 4 corner points!"); - using GlobalPosition = Dune::FieldVector<Scalar, 3>; + using GlobalPosition = Dune::FieldVector<CoordScalar, 3>; static constexpr auto coordDim = GlobalPosition::dimension; static constexpr auto dim = coordDim-1; - using GeometryType = Dune::MultiLinearGeometry<Scalar, dim, coordDim>; + using GeometryType = Dune::MultiLinearGeometry<CoordScalar, dim, coordDim>; // if no sanity check if desired, use the given points directly to construct the geometry if(!enableSanityCheck) diff --git a/dumux/common/staggeredfvproblem.hh b/dumux/common/staggeredfvproblem.hh index d0dcc587d3fcf3777ba260c231fa8195934422b4..ea82d38929e514487bdee09841d7210a628617d6 100644 --- a/dumux/common/staggeredfvproblem.hh +++ b/dumux/common/staggeredfvproblem.hh @@ -64,7 +64,7 @@ class StaggeredFVProblem : public FVProblem<TypeTag> using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, GridView::dimensionworld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; static constexpr auto cellCenterIdx = FVGridGeometry::cellCenterIdx(); static constexpr auto faceIdx = FVGridGeometry::faceIdx(); diff --git a/dumux/discretization/basefvgridgeometry.hh b/dumux/discretization/basefvgridgeometry.hh index 0bf49c8922beafa402e06154a7850cf94f296207..bbc018fb2ddc7085011e3bf81ad1ab6955139670 100644 --- a/dumux/discretization/basefvgridgeometry.hh +++ b/dumux/discretization/basefvgridgeometry.hh @@ -52,8 +52,9 @@ class BaseFVGridGeometry static const int dim = GV::dimension; static const int dimWorld = GV::dimensionworld; - using CoordScalar = typename GV::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + + using Element = typename GV::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: //! export the grid view type diff --git a/dumux/discretization/box/darcyslaw.hh b/dumux/discretization/box/darcyslaw.hh index aa68399c175e1c98bf9e85356e9a99f302e43a70..11c6b3f6dc1b2f1de082ad27ca2bbf42ee46e66f 100644 --- a/dumux/discretization/box/darcyslaw.hh +++ b/dumux/discretization/box/darcyslaw.hh @@ -69,7 +69,6 @@ class BoxDarcysLaw enum { dimWorld = GridView::dimensionworld}; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; public: @@ -101,7 +100,7 @@ public: const auto& shapeValues = fluxVarCache.shapeValues(); // evaluate gradP - rho*g at integration point - GlobalPosition gradP(0.0); + Dune::FieldVector<Scalar, dimWorld> gradP(0.0); Scalar rho(0.0); for (auto&& scv : scvs(fvGeometry)) { diff --git a/dumux/discretization/box/fickslaw.hh b/dumux/discretization/box/fickslaw.hh index 34b2e7add035f472b2521b4e68fb030dc2ae921e..caa5b2cd471bc919bafaaf5324c1262e6e792776 100644 --- a/dumux/discretization/box/fickslaw.hh +++ b/dumux/discretization/box/fickslaw.hh @@ -67,7 +67,6 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::box> numComponents = ModelTraits::numComponents() }; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; using ComponentFluxVector = Dune::FieldVector<Scalar, numComponents>; public: @@ -117,7 +116,7 @@ public: const auto D = problem.spatialParams().harmonicMean(insideD, outsideD, scvf.unitOuterNormal()); // the mole/mass fraction gradient - GlobalPosition gradX(0.0); + Dune::FieldVector<Scalar, dimWorld> gradX(0.0); for (auto&& scv : scvs(fvGeometry)) gradX.axpy(elemVolVars[scv].moleFraction(phaseIdx, compIdx), fluxVarsCache.gradN(scv.indexInElement())); diff --git a/dumux/discretization/box/fourierslaw.hh b/dumux/discretization/box/fourierslaw.hh index 475b0adb370edfecd34787e523148a3ea7c08535..efb92a26e1cb74c5380a1347a90a6369d53f2335 100644 --- a/dumux/discretization/box/fourierslaw.hh +++ b/dumux/discretization/box/fourierslaw.hh @@ -63,7 +63,6 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::box> enum { numPhases = GET_PROP_TYPE(TypeTag, ModelTraits)::numPhases()} ; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; public: static Scalar flux(const Problem& problem, @@ -94,7 +93,7 @@ public: const auto& fluxVarsCache = elemFluxVarsCache[scvf]; // compute the temperature gradient with the shape functions - GlobalPosition gradTemp(0.0); + Dune::FieldVector<Scalar, dimWorld> gradTemp(0.0); for (auto&& scv : scvs(fvGeometry)) gradTemp.axpy(elemVolVars[scv].temperature(), fluxVarsCache.gradN(scv.indexInElement())); diff --git a/dumux/discretization/box/fourierslawnonequilibrium.hh b/dumux/discretization/box/fourierslawnonequilibrium.hh index 9422b57c4c681e01136329004af3fbd780c0fe6b..d83cc79d7357c8b99026cb71031e8e4e67c93499 100644 --- a/dumux/discretization/box/fourierslawnonequilibrium.hh +++ b/dumux/discretization/box/fourierslawnonequilibrium.hh @@ -68,7 +68,6 @@ class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::box enum {sPhaseIdx = FluidSystem::sPhaseIdx}; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; public: static Scalar flux(const Problem& problem, @@ -117,7 +116,7 @@ public: // evaluate gradTemp at integration point const auto& fluxVarsCache = elemFluxVarsCache[scvf]; - GlobalPosition gradTemp(0.0); + Dune::FieldVector<Scalar, dimWorld> gradTemp(0.0); for (auto&& scv : scvs(fvGeometry)) { // compute the temperature gradient with the shape functions diff --git a/dumux/discretization/box/maxwellstefanslaw.hh b/dumux/discretization/box/maxwellstefanslaw.hh index d903b6b63dd1607070275ca4c0bf6b86f573db42..ae4a2327202352c9fd44e3fe15da9716c98c0e69 100644 --- a/dumux/discretization/box/maxwellstefanslaw.hh +++ b/dumux/discretization/box/maxwellstefanslaw.hh @@ -59,6 +59,7 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::box > using IndexType = typename GridView::IndexSet::IndexType; using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; enum { dim = GridView::dimension} ; enum { dimWorld = GridView::dimensionworld} ; @@ -68,7 +69,6 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::box > numComponents = GET_PROP_TYPE(TypeTag, ModelTraits)::numComponents() }; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; using ComponentFluxVector = Dune::FieldVector<Scalar, numComponents>; using ReducedComponentVector = Dune::FieldVector<Scalar, numComponents-1>; using ReducedComponentMatrix = Dune::FieldMatrix<Scalar, numComponents-1, numComponents-1>; @@ -118,7 +118,7 @@ public: for (int compIdx = 0; compIdx < numComponents-1; compIdx++) { - GlobalPosition gradX(0.0); + Dune::FieldVector<Scalar, dimWorld> gradX(0.0); for (auto&& scv : scvs(fvGeometry)) { const auto& volVars = elemVolVars[scv]; diff --git a/dumux/discretization/box/subcontrolvolume.hh b/dumux/discretization/box/subcontrolvolume.hh index 2513c41daa124e0aff47f5040fc96218c5adf93b..11b876d8f00ea5f4fb56b93d40dff55ddd433a8e 100644 --- a/dumux/discretization/box/subcontrolvolume.hh +++ b/dumux/discretization/box/subcontrolvolume.hh @@ -91,11 +91,12 @@ class BoxSubControlVolume using GridIndexType = typename T::GridIndexType; using LocalIndexType = typename T::LocalIndexType; using Scalar = typename T::Scalar; - using GlobalPosition = typename T::GlobalPosition; using CornerStorage = typename T::CornerStorage; enum { dim = Geometry::mydimension }; public: + using GlobalPosition = typename T::GlobalPosition; + //! state the traits public and thus export all types using Traits = T; diff --git a/dumux/discretization/box/subcontrolvolumeface.hh b/dumux/discretization/box/subcontrolvolumeface.hh index 7d2c8396e2d303c8f9222fe0f5b96d6e202352a8..9935e74e7dbc79a1a41410ae5b0d440cfd5b56c8 100644 --- a/dumux/discretization/box/subcontrolvolumeface.hh +++ b/dumux/discretization/box/subcontrolvolumeface.hh @@ -94,7 +94,6 @@ class BoxSubControlVolumeFace using GridIndexType = typename T::GridIndexType; using LocalIndexType = typename T::LocalIndexType; using Scalar = typename T::Scalar; - using GlobalPosition = typename T::GlobalPosition; using CornerStorage = typename T::CornerStorage; using Geometry = typename T::Geometry; using BoundaryFlag = typename T::BoundaryFlag; @@ -105,6 +104,7 @@ public: //! The default constructor BoxSubControlVolumeFace() = default; + using GlobalPosition = typename T::GlobalPosition; //! Constructor for inner scvfs template<class GeometryHelper, class Element> diff --git a/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh b/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh index fca047585f819d632ecd88ebc432d7e313ccb001..781a11a0a684f23e0e44a5c9b0bfba4c04812e45 100644 --- a/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh +++ b/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh @@ -178,7 +178,6 @@ class CCMpfaFVElementGeometry<GG, false> static const int dimWorld = GridView::dimensionworld; using CoordScalar = typename GridView::ctype; using ReferenceElements = typename Dune::ReferenceElements<CoordScalar, dim>; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; public: //! export type of subcontrol volume diff --git a/dumux/discretization/cellcentered/mpfa/helper.hh b/dumux/discretization/cellcentered/mpfa/helper.hh index 75e974d8621f08dbfd9c6ed549144ed507c6d980..318df5512a1ead029d2c06b953f33b37f69396b2 100644 --- a/dumux/discretization/cellcentered/mpfa/helper.hh +++ b/dumux/discretization/cellcentered/mpfa/helper.hh @@ -51,7 +51,9 @@ class MpfaDimensionHelper<FVGridGeometry, /*dim*/2, /*dimWorld*/2> { using GridView = typename FVGridGeometry::GridView; using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, GridView::dimensionworld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace; using ScvfCornerVector = typename SubControlVolumeFace::Traits::CornerStorage; @@ -274,8 +276,9 @@ class MpfaDimensionHelper<FVGridGeometry, /*dim*/3, /*dimWorld*/3> // Be picky about the dimensions using GridView = typename FVGridGeometry::GridView; + using Element = typename GridView::template Codim<0>::Entity; using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, /*dimworld*/3>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; // container to store the positions of intersections required for // scvf corner computation. Maximum number of points needed is 9 @@ -526,10 +529,10 @@ class CCMpfaHelper : public MpfaDimensionHelper<FVGridGeometry, using GridView = typename FVGridGeometry::GridView; static constexpr int dim = GridView::dimension; - static constexpr int dimWorld = GridView::dimensionworld; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; using ReferenceElements = typename Dune::ReferenceElements<CoordScalar, dim>; public: diff --git a/dumux/discretization/cellcentered/mpfa/subcontrolvolumeface.hh b/dumux/discretization/cellcentered/mpfa/subcontrolvolumeface.hh index d1306bc173d5c4e6b98f16d549f5492e5d84a645..07a17a6bc7620536974014a6c6e086e9d8099ac9 100644 --- a/dumux/discretization/cellcentered/mpfa/subcontrolvolumeface.hh +++ b/dumux/discretization/cellcentered/mpfa/subcontrolvolumeface.hh @@ -93,12 +93,12 @@ class CCMpfaSubControlVolumeFace { using GridIndexType = typename T::GridIndexType; using Scalar = typename T::Scalar; - using GlobalPosition = typename T::GlobalPosition; using CornerStorage = typename T::CornerStorage; using OutsideGridIndexStorage = typename T::OutsideGridIndexStorage; using Geometry = typename T::Geometry; public: + using GlobalPosition = typename T::GlobalPosition; //! state the traits public and thus export all types using Traits = T; diff --git a/dumux/discretization/cellcentered/subcontrolvolume.hh b/dumux/discretization/cellcentered/subcontrolvolume.hh index 01a9d655d9a7c6c088de28e00ba1c0d3dcaed23c..73e395ae58a8b3deeb0697c61df437c996381394 100644 --- a/dumux/discretization/cellcentered/subcontrolvolume.hh +++ b/dumux/discretization/cellcentered/subcontrolvolume.hh @@ -43,7 +43,8 @@ struct CCDefaultScvGeometryTraits using GridIndexType = typename GridView::IndexSet::IndexType; using LocalIndexType = unsigned int; using Scalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; }; /*! @@ -63,9 +64,10 @@ class CCSubControlVolume using GridIndexType = typename T::GridIndexType; using LocalIndexType = typename T::LocalIndexType; using Scalar = typename T::Scalar; - using GlobalPosition = typename T::GlobalPosition; public: + using GlobalPosition = typename T::GlobalPosition; + //! state the traits public and thus export all types using Traits = T; diff --git a/dumux/discretization/cellcentered/tpfa/fickslaw.hh b/dumux/discretization/cellcentered/tpfa/fickslaw.hh index e21792b7a5e360fa053cde38ffee137edd448b05..42505a7dca94c383957d31d2a4c19ba42a20fdbb 100644 --- a/dumux/discretization/cellcentered/tpfa/fickslaw.hh +++ b/dumux/discretization/cellcentered/tpfa/fickslaw.hh @@ -68,7 +68,6 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa> static const int numComponents = ModelTraits::numComponents(); using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; using ComponentFluxVector = Dune::FieldVector<Scalar, numComponents>; //! Class that fills the cache corresponding to tpfa Fick's Law diff --git a/dumux/discretization/cellcentered/tpfa/fourierslaw.hh b/dumux/discretization/cellcentered/tpfa/fourierslaw.hh index 425114985dd4fcdff00e038ba9eb1a13af6108a2..cd9b139d392aebc9ee40d9439e1a4a6c2b4f0380 100644 --- a/dumux/discretization/cellcentered/tpfa/fourierslaw.hh +++ b/dumux/discretization/cellcentered/tpfa/fourierslaw.hh @@ -60,7 +60,6 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa> static const int dimWorld = GridView::dimensionworld; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel); diff --git a/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh b/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh index 969ab6054e5932131ed5b5546b7a58e884aedfcb..bd874db720f736153ee6d386cab5af937ebe0db7 100644 --- a/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh +++ b/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh @@ -93,8 +93,6 @@ class CCTpfaFVGridGeometry<GV, true, Traits> static const int dim = GV::dimension; static const int dimWorld = GV::dimensionworld; - using CoordScalar = typename GV::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; public: //! export the type of the fv element geometry (the local view type) @@ -364,9 +362,6 @@ class CCTpfaFVGridGeometry<GV, false, Traits> static const int dim = GV::dimension; static const int dimWorld = GV::dimensionworld; - using CoordScalar = typename GV::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; - using ScvfGridIndexStorage = typename Traits::SubControlVolumeFace::Traits::GridIndexStorage; using NeighborVolVarIndices = typename std::conditional_t< (dim<dimWorld), ScvfGridIndexStorage, diff --git a/dumux/discretization/cellcentered/tpfa/maxwellstefanslaw.hh b/dumux/discretization/cellcentered/tpfa/maxwellstefanslaw.hh index c3be43c7eae2426360b36b8747466a4d8c748d91..cdf5a579f399ca76a66e7cbad21b3f153dacc087 100644 --- a/dumux/discretization/cellcentered/tpfa/maxwellstefanslaw.hh +++ b/dumux/discretization/cellcentered/tpfa/maxwellstefanslaw.hh @@ -67,7 +67,6 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::cctpfa > static const int numComponents = GET_PROP_TYPE(TypeTag, ModelTraits)::numComponents(); using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; using ComponentFluxVector = Dune::FieldVector<Scalar, numComponents>; using ReducedComponentVector = Dune::FieldVector<Scalar, numComponents-1>; using ReducedComponentMatrix = Dune::FieldMatrix<Scalar, numComponents-1, numComponents-1>; diff --git a/dumux/discretization/cellcentered/tpfa/subcontrolvolumeface.hh b/dumux/discretization/cellcentered/tpfa/subcontrolvolumeface.hh index 77173113135371f788967535cf9be49176094592..7ef67c893d36171459386b412e17d917eda306b5 100644 --- a/dumux/discretization/cellcentered/tpfa/subcontrolvolumeface.hh +++ b/dumux/discretization/cellcentered/tpfa/subcontrolvolumeface.hh @@ -91,13 +91,14 @@ class CCTpfaSubControlVolumeFace using ParentType = SubControlVolumeFaceBase<ThisType, T>; using GridIndexType = typename T::GridIndexType; using Scalar = typename T::Scalar; - using GlobalPosition = typename T::GlobalPosition; using CornerStorage = typename T::CornerStorage; using GridIndexStorage = typename T::GridIndexStorage; using Geometry = typename T::Geometry; using BoundaryFlag = typename T::BoundaryFlag; public: + using GlobalPosition = typename T::GlobalPosition; + //! state the traits public and thus export all types using Traits = T; diff --git a/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh b/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh index bc1c61fddd6a26444f168552b33434f9a7b3d035..5b9cafec19c37ed952fda7baba0fd2ad1fa8941e 100644 --- a/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh +++ b/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh @@ -55,11 +55,11 @@ class FreeFlowStaggeredSubControlVolumeFace static const int dim = Geometry::mydimension; static const int dimworld = Geometry::coorddimension; - using GlobalPosition = typename T::GlobalPosition; - static constexpr int numPairs = (dimworld == 2) ? 2 : 4; public: + using GlobalPosition = typename T::GlobalPosition; + //! State the traits public and thus export all types using Traits = T; diff --git a/dumux/discretization/staggered/freeflow/velocityoutput.hh b/dumux/discretization/staggered/freeflow/velocityoutput.hh index 4191ca41e9ac4d4ded8e9f9dff69c33d37348d11..05ed28c28bde9c98f83afc9e84437d9524b62cd2 100644 --- a/dumux/discretization/staggered/freeflow/velocityoutput.hh +++ b/dumux/discretization/staggered/freeflow/velocityoutput.hh @@ -49,14 +49,9 @@ class StaggeredFreeFlowVelocityOutput using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables); using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector); - static const int dim = GridView::dimension; - static const int dimWorld = GridView::dimensionworld; - using Element = typename GridView::template Codim<0>::Entity; using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; - public: /*! * \brief Constructor initializes the static data with the initial solution. diff --git a/dumux/discretization/staggered/subcontrolvolumeface.hh b/dumux/discretization/staggered/subcontrolvolumeface.hh index c969a91540ad033e605e3e856e6d929fafeb5c6e..a1ed7450d89d5963da3eb110b9a8defe4689e8f5 100644 --- a/dumux/discretization/staggered/subcontrolvolumeface.hh +++ b/dumux/discretization/staggered/subcontrolvolumeface.hh @@ -123,9 +123,9 @@ class StaggeredSubControlVolumeFace static const int dim = Geometry::mydimension; static const int dimworld = Geometry::coorddimension; +public: using GlobalPosition = typename T::GlobalPosition; -public: //! state the traits public and thus export all types using Traits = T; diff --git a/dumux/discretization/subcontrolvolumebase.hh b/dumux/discretization/subcontrolvolumebase.hh index 7d993f9d797394a1db629bc4725a2c00a0d1ba04..fe1e3c45b173811617da1e3575fc6756dbdfe9fb 100644 --- a/dumux/discretization/subcontrolvolumebase.hh +++ b/dumux/discretization/subcontrolvolumebase.hh @@ -40,9 +40,10 @@ class SubControlVolumeBase using GridIndexType = typename ScvGeometryTraits::GridIndexType; using LocalIndexType = typename ScvGeometryTraits::LocalIndexType; using Scalar = typename ScvGeometryTraits::Scalar; - using GlobalPosition = typename ScvGeometryTraits::GlobalPosition; public: + using GlobalPosition = typename ScvGeometryTraits::GlobalPosition; + //! state the traits public and thus export all types using Traits = ScvGeometryTraits; diff --git a/dumux/discretization/subcontrolvolumefacebase.hh b/dumux/discretization/subcontrolvolumefacebase.hh index 3a19a7f0afa309084c7ca4da4f4936b69c790dd5..b02c54ea9c8fe8fb5abc88ace662bb1098e595f4 100644 --- a/dumux/discretization/subcontrolvolumefacebase.hh +++ b/dumux/discretization/subcontrolvolumefacebase.hh @@ -43,9 +43,11 @@ class SubControlVolumeFaceBase using Implementation = Imp; using GridIndexType = typename ScvfGeometryTraits::GridIndexType; using Scalar = typename ScvfGeometryTraits::Scalar; - using GlobalPosition = typename ScvfGeometryTraits::GlobalPosition; + public: + using GlobalPosition = typename ScvfGeometryTraits::GlobalPosition; + //! state the traits public and thus export all types using Traits = ScvfGeometryTraits; diff --git a/dumux/freeflow/navierstokes/problem.hh b/dumux/freeflow/navierstokes/problem.hh index 58d178085df516685d2cea061f150f76d7b49a1e..5718ac0c3d2dea329131b5506908c911f1cac45e 100644 --- a/dumux/freeflow/navierstokes/problem.hh +++ b/dumux/freeflow/navierstokes/problem.hh @@ -75,7 +75,8 @@ class NavierStokesProblem : public NavierStokesParentProblem<TypeTag> dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; public: /*! @@ -116,7 +117,7 @@ public: * If the <tt>Problem.EnableGravity</tt> parameter is true, this means * \f$\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \f$, else \f$\boldsymbol{g} = ( 0,\dots, 0)^T \f$ */ - const GlobalPosition& gravity() const + const GravityVector& gravity() const { return gravity_; } //! Applys the initial face solution (velocities on the faces). Specialization for staggered grid discretization. @@ -177,7 +178,7 @@ private: const Implementation &asImp_() const { return *static_cast<const Implementation *>(this); } - GlobalPosition gravity_; + GravityVector gravity_; }; } // end namespace Dumux diff --git a/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh b/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh index 9e396b3d9457dbc0472e48bee60bd0a0f327da51..60bd90606f3d7743ae76152e226b8f57f694a283 100644 --- a/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh +++ b/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh @@ -67,7 +67,7 @@ class FluxOverSurface dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; static constexpr auto surfaceDim = dimWorld - 1; using SurfaceGeometryType = Dune::MultiLinearGeometry< Scalar, surfaceDim, dimWorld >; diff --git a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh index 1520a64e9fbd4bfcd7e6819d84798b03a41ebcff..1518b7bde8a8d87b0392b931bf3fcf8c34e7277f 100644 --- a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh +++ b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh @@ -76,7 +76,7 @@ class NavierStokesFluxVariablesImpl<TypeTag, DiscretizationMethod::staggered> static constexpr bool enableInertiaTerms = GET_PROP_VALUE(TypeTag, EnableInertiaTerms); static constexpr bool normalizePressure = GET_PROP_VALUE(TypeTag, NormalizePressure); - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; static constexpr auto cellCenterIdx = FVGridGeometry::cellCenterIdx(); static constexpr auto faceIdx = FVGridGeometry::faceIdx(); diff --git a/dumux/freeflow/navierstokes/vtkoutputfields.hh b/dumux/freeflow/navierstokes/vtkoutputfields.hh index 7b16bcf0a99ef81e8c6dda529828c4f8232c6d50..04941b8ee3ba30d795cbf14dbce69977217efc6a 100644 --- a/dumux/freeflow/navierstokes/vtkoutputfields.hh +++ b/dumux/freeflow/navierstokes/vtkoutputfields.hh @@ -39,9 +39,6 @@ namespace Dumux template<class FVGridGeometry> class NavierStokesVtkOutputFields { - using ctype = typename FVGridGeometry::GridView::ctype; - using GlobalPosition = Dune::FieldVector<ctype, FVGridGeometry::GridView::dimensionworld>; - // Helper type used for tag dispatching (to add discretization-specific fields). template<DiscretizationMethod discMethod> using discMethodTag = std::integral_constant<DiscretizationMethod, discMethod>; @@ -75,7 +72,10 @@ private: { auto faceVelocityVector = [](const typename FVGridGeometry::SubControlVolumeFace& scvf, const auto& faceVars) { - GlobalPosition velocity(0.0); + using Scalar = typename VtkOutputModule::VolumeVariables::PrimaryVariables::value_type; + using VelocityVector = Dune::FieldVector<Scalar, FVGridGeometry::GridView::dimensionworld>; + + VelocityVector velocity(0.0); velocity[scvf.directionIndex()] = faceVars.velocitySelf(); return velocity; }; diff --git a/dumux/freeflow/rans/problem.hh b/dumux/freeflow/rans/problem.hh index 07b36a5684c1a82aafe5b6445128f9a7bdafbcd8..885bc6967789d27b7592af3f9c86d96053293f47 100644 --- a/dumux/freeflow/rans/problem.hh +++ b/dumux/freeflow/rans/problem.hh @@ -65,7 +65,7 @@ class RANSProblem : public NavierStokesProblem<TypeTag> enum { dim = Grid::dimension, }; - using GlobalPosition = Dune::FieldVector<Scalar, dim>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; using DimVector = Dune::FieldVector<Scalar, dim>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; diff --git a/dumux/freeflow/rans/zeroeq/problem.hh b/dumux/freeflow/rans/zeroeq/problem.hh index 145c8560e63d6b0c97be3aa6d2e734e8ef09b125..5382d415af736b60e2d4590a6011cf79b78c84be 100644 --- a/dumux/freeflow/rans/zeroeq/problem.hh +++ b/dumux/freeflow/rans/zeroeq/problem.hh @@ -65,7 +65,6 @@ class ZeroEqProblem : public RANSProblem<TypeTag> enum { dim = Grid::dimension, }; - using GlobalPosition = Dune::FieldVector<Scalar, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; diff --git a/dumux/io/pointcloudvtkwriter.hh b/dumux/io/pointcloudvtkwriter.hh index ba770122498bb09911187fd77e491daddf4e97f6..f6e186c7db3dd79f9d4b259847840309b85f7661 100644 --- a/dumux/io/pointcloudvtkwriter.hh +++ b/dumux/io/pointcloudvtkwriter.hh @@ -42,10 +42,10 @@ namespace Dumux { * initialization and/or be turned on/off using the designated properties. Additionally * non-standardized scalar and vector fields can be added to the writer manually. */ -template<class Scalar, int dim> +template<class Scalar, class GlobalPosition> class PointCloudVtkWriter { - using GlobalPosition = Dune::FieldVector<Scalar, dim>; + using DimVector = Dune::FieldVector<Scalar, GlobalPosition::size()>; static constexpr unsigned int precision = 6; static constexpr unsigned int numBeforeLineBreak = 15; @@ -117,7 +117,7 @@ class PointCloudVtkWriter public: using ScalarFunction = VTKFunction<std::vector<Scalar>>; - using VectorFunction = VTKFunction<std::vector<GlobalPosition>>; + using VectorFunction = VTKFunction<std::vector<DimVector>>; PointCloudVtkWriter(const std::vector<GlobalPosition>& coordinates) : coordinates_(coordinates) @@ -190,7 +190,7 @@ public: * \param name The name of the data set * \param ncomps The number of components of the data set */ - void addPointData(const std::vector<GlobalPosition>& v, const std::string &name) + void addPointData(const std::vector<DimVector>& v, const std::string &name) { assert(v.size() == coordinates_.size()); vectorPointData_.push_back(VectorFunction(v, name, 3)); @@ -385,7 +385,7 @@ private: * * \param g The vector */ - void writeToFile_(std::ostream& file, const GlobalPosition& g) + void writeToFile_(std::ostream& file, const DimVector& g) { assert(g.size() > 1 && g.size() < 4); if(g.size() < 3) diff --git a/dumux/io/staggeredvtkoutputmodule.hh b/dumux/io/staggeredvtkoutputmodule.hh index 45ecdaaa7d8cf9bf0c30194dcccdc4f7a18246f1..c51a13b453c8812d76c23b345faf709e461f7fcc 100644 --- a/dumux/io/staggeredvtkoutputmodule.hh +++ b/dumux/io/staggeredvtkoutputmodule.hh @@ -32,7 +32,7 @@ namespace Dumux { -template<class Scalar, int dim> +template<class Scalar, class GlobalPosition> class PointCloudVtkWriter; /*! @@ -60,12 +60,14 @@ class StaggeredVtkOutputModule : public VtkOutputModule<TypeTag, phaseIdxOffset> enum { dim = GridView::dimension }; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using DimVector = Dune::FieldVector<Scalar, dim>; struct FaceVarScalarDataInfo { std::function<Scalar(const FaceVariables&)> get; std::string name; }; - struct FaceVarVectorDataInfo { std::function<GlobalPosition(const SubControlVolumeFace& scvf, const FaceVariables&)> get; std::string name; }; + struct FaceVarVectorDataInfo { std::function<DimVector(const SubControlVolumeFace& scvf, const FaceVariables&)> get; std::string name; }; struct FaceFieldScalarDataInfo { @@ -76,8 +78,8 @@ class StaggeredVtkOutputModule : public VtkOutputModule<TypeTag, phaseIdxOffset> struct FaceFieldVectorDataInfo { - FaceFieldVectorDataInfo(const std::vector<GlobalPosition>& f, const std::string& n) : data(f), name(n) {} - const std::vector<GlobalPosition>& data; + FaceFieldVectorDataInfo(const std::vector<DimVector>& f, const std::string& n) : data(f), name(n) {} + const std::vector<DimVector>& data; const std::string name; }; @@ -96,7 +98,7 @@ public: , gridGeom_(fvGridGeometry) , gridVariables_(gridVariables) , sol_(sol) - , faceWriter_(std::make_shared<PointCloudVtkWriter<Scalar, dim>>(coordinates_)) + , faceWriter_(std::make_shared<PointCloudVtkWriter<Scalar, GlobalPosition>>(coordinates_)) , sequenceWriter_(faceWriter_, problem.name() + "-face", "","", fvGridGeometry.gridView().comm().rank(), fvGridGeometry.gridView().comm().size() ) @@ -125,7 +127,7 @@ public: //! Add a vector valued field //! \param v The field to be added //! \param name The name of the vtk field - void addFaceField(const std::vector<GlobalPosition>& v, const std::string& name) + void addFaceField(const std::vector<DimVector>& v, const std::string& name) { if (v.size() == this->gridGeom_.gridView().size(1)) faceFieldVectorDataInfo_.emplace_back(v, name); @@ -144,7 +146,7 @@ public: //! Add a vector-valued faceVarible //! \param f A function taking a SubControlVolumeFace and FaceVariables object and returning the desired vector //! \param name The name of the vtk field - void addFaceVariable(std::function<GlobalPosition(const SubControlVolumeFace& scvf, const FaceVariables&)>&& f, const std::string& name) + void addFaceVariable(std::function<DimVector(const SubControlVolumeFace& scvf, const FaceVariables&)>&& f, const std::string& name) { faceVarVectorDataInfo_.push_back(FaceVarVectorDataInfo{f, name}); } @@ -189,13 +191,13 @@ private: // prepare some containers to store the relevant data std::vector<std::vector<Scalar>> faceVarScalarData; - std::vector<std::vector<GlobalPosition>> faceVarVectorData; + std::vector<std::vector<DimVector>> faceVarVectorData; if(!faceVarScalarDataInfo_.empty()) faceVarScalarData.resize(faceVarScalarDataInfo_.size(), std::vector<Scalar>(numPoints)); if(!faceVarVectorDataInfo_.empty()) - faceVarVectorData.resize(faceVarVectorDataInfo_.size(), std::vector<GlobalPosition>(numPoints)); + faceVarVectorData.resize(faceVarVectorDataInfo_.size(), std::vector<DimVector>(numPoints)); for (const auto& element : elements(gridGeom_.gridView(), Dune::Partitions::interior)) { @@ -259,9 +261,9 @@ private: const GridVariables& gridVariables_; const SolutionVector& sol_; - std::shared_ptr<PointCloudVtkWriter<Scalar, dim>> faceWriter_; + std::shared_ptr<PointCloudVtkWriter<Scalar, GlobalPosition>> faceWriter_; - VTKSequenceWriter<PointCloudVtkWriter<Scalar, dim>> sequenceWriter_; + VTKSequenceWriter<PointCloudVtkWriter<Scalar, GlobalPosition>> sequenceWriter_; bool writeFaceVars_; diff --git a/dumux/io/vtkoutputmodule.hh b/dumux/io/vtkoutputmodule.hh index 36e9840c0b5924efbc1adf4964414bf0eb5595cd..708d5406bd1f5f72be137d8f49722b8ae1ec9514 100644 --- a/dumux/io/vtkoutputmodule.hh +++ b/dumux/io/vtkoutputmodule.hh @@ -83,13 +83,14 @@ class VtkOutputModule }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using VolVarsVector = Dune::FieldVector<Scalar, dimWorld>; + using VelocityVector = Dune::FieldVector<Scalar, dimWorld>; static constexpr bool isBox = FVGridGeometry::discMethod == DiscretizationMethod::box; static constexpr int dofCodim = isBox ? dim : 0; struct VolVarScalarDataInfo { std::function<Scalar(const VV&)> get; std::string name; }; - struct VolVarVectorDataInfo { std::function<GlobalPosition(const VV&)> get; std::string name; }; + struct VolVarVectorDataInfo { std::function<VolVarsVector(const VV&)> get; std::string name; }; using Field = Vtk::template Field<GridView>; public: @@ -152,8 +153,8 @@ public: //! \param f A function taking a VolumeVariables object and returning the desired vector //! \param name The name of the vtk field //! \note This method is only available for dimWorld > 1. For 1-D problems, the overload for volVar methods returning a Scalar will be used. - template<class G = GlobalPosition, typename std::enable_if_t<(G::dimension > 1), int> = 0> - void addVolumeVariable(std::function<GlobalPosition(const VolumeVariables&)>&& f, const std::string& name) + template<class VVV = VolVarsVector, typename std::enable_if_t<(VVV::dimension > 1), int> = 0> + void addVolumeVariable(std::function<VolVarsVector(const VolumeVariables&)>&& f, const std::string& name) { volVarVectorDataInfo_.push_back(VolVarVectorDataInfo{f, name}); } @@ -263,7 +264,7 @@ private: // instatiate the velocity output VelocityOutput velocityOutput(problem_, gridGeom_, gridVariables_, sol_); - std::array<std::vector<GlobalPosition>, numPhases> velocity; + std::array<std::vector<VelocityVector>, numPhases> velocity; // process rank static bool addProcessRank = getParamFromGroup<bool>(paramGroup_, "Vtk.AddProcessRank"); @@ -271,7 +272,7 @@ private: // volume variable data std::vector<std::vector<Scalar>> volVarScalarData; - std::vector<std::vector<GlobalPosition>> volVarVectorData; + std::vector<std::vector<VolVarsVector>> volVarVectorData; //! Abort if no data was registered if (!volVarScalarDataInfo_.empty() @@ -287,7 +288,7 @@ private: if (!volVarScalarDataInfo_.empty()) volVarScalarData.resize(volVarScalarDataInfo_.size(), std::vector<Scalar>(numDofs)); if (!volVarVectorDataInfo_.empty()) - volVarVectorData.resize(volVarVectorDataInfo_.size(), std::vector<GlobalPosition>(numDofs)); + volVarVectorData.resize(volVarVectorDataInfo_.size(), std::vector<VolVarsVector>(numDofs)); if (velocityOutput.enableOutput()) { @@ -432,7 +433,7 @@ private: // instatiate the velocity output VelocityOutput velocityOutput(problem_, gridGeom_, gridVariables_, sol_); - std::array<std::vector<GlobalPosition>, numPhases> velocity; + std::array<std::vector<VelocityVector>, numPhases> velocity; // process rank static bool addProcessRank = getParamFromGroup<bool>(paramGroup_, "Vtk.AddProcessRank"); @@ -440,7 +441,7 @@ private: // volume variable data (indexing: volvardata/element/localcorner) using ScalarDataContainer = std::vector< std::vector<Scalar> >; - using VectorDataContainer = std::vector< std::vector<GlobalPosition> >; + using VectorDataContainer = std::vector< std::vector<VolVarsVector> >; std::vector< ScalarDataContainer > volVarScalarData; std::vector< VectorDataContainer > volVarVectorData; diff --git a/dumux/material/spatialparams/fv.hh b/dumux/material/spatialparams/fv.hh index a10a9d50aa9e9154c5be20e23089dc4079127cab..d3c544d459d4905b68ad57dedcbf6ffdd1bf0742 100644 --- a/dumux/material/spatialparams/fv.hh +++ b/dumux/material/spatialparams/fv.hh @@ -60,8 +60,7 @@ class FVSpatialParams : public FVSpatialParamsOneP<FVGridGeometry, Scalar, Imple using SubControlVolume = typename FVGridGeometry::SubControlVolume; using Element = typename GridView::template Codim<0>::Entity; - static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: FVSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/dumux/material/spatialparams/fv1p.hh b/dumux/material/spatialparams/fv1p.hh index 581970f2fe98dc8979dade635666d4177d79a740..2c47c4562a16801ed053ec9fdbbc20fb20a00dff 100644 --- a/dumux/material/spatialparams/fv1p.hh +++ b/dumux/material/spatialparams/fv1p.hh @@ -65,7 +65,8 @@ class FVSpatialParamsOneP enum { dim = GridView::dimension }; enum { dimWorld = GridView::dimensionworld }; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: FVSpatialParamsOneP(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/dumux/material/spatialparams/sequentialfv.hh b/dumux/material/spatialparams/sequentialfv.hh index 29977ed52f85ab17ff85046b561c8e4cd70e1e91..256bbe1fa47526d484b8baa425c71ebf461629cf 100644 --- a/dumux/material/spatialparams/sequentialfv.hh +++ b/dumux/material/spatialparams/sequentialfv.hh @@ -51,7 +51,7 @@ class SequentialFVSpatialParams: public SequentialFVSpatialParamsOneP<TypeTag> }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; /// @cond false using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params; /// @endcond diff --git a/dumux/material/spatialparams/sequentialfv1p.hh b/dumux/material/spatialparams/sequentialfv1p.hh index 29eb62b20ce1515a9a13b569e81604445e8f13e9..1842022c1344829fdd87b8e5a9bdf7549fa4c0e7 100644 --- a/dumux/material/spatialparams/sequentialfv1p.hh +++ b/dumux/material/spatialparams/sequentialfv1p.hh @@ -58,7 +58,7 @@ class SequentialFVSpatialParamsOneP }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; public: diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh index 4c74a1881e04b71a873f75d35b08b24eff3dcac6..21243016411084f4670cedc5cc826597921fcead 100644 --- a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh +++ b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh @@ -88,7 +88,8 @@ template<class TypeTag> class FVPressure1P: public FVPressure<TypeTag> using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; @@ -206,7 +207,7 @@ public: private: Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_; Scalar viscosity_; }; diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh index 8f2a9f8bbff8de4b27dc1f37380bf87d9dd2241a..578462717e8f50098dbca6c69392a703fdaa7051 100644 --- a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh +++ b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh @@ -73,7 +73,9 @@ class FVVelocity1P pressEqIdx = Indices::pressureEqIdx // only one equation! }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using VelocityVector = Dune::FieldVector<Scalar, dimWorld>; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: @@ -183,7 +185,7 @@ public: } private: Problem &problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_; Scalar viscosity_; }; @@ -243,10 +245,10 @@ void FVVelocity1P<TypeTag>::calculateVelocity(const Intersection& intersection, cellDataJ.fluxData().setPotential(isIndexJ, -potential); //calculate the gravity term - GlobalPosition velocity(permeability); + VelocityVector velocity(permeability); velocity *= (cellData.pressure() - cellDataJ.pressure()) / dist; - GlobalPosition gravityTerm(unitOuterNormal); + GravityVector gravityTerm(unitOuterNormal); gravityTerm *= (gravity_ * permeability) * density_; velocity += gravityTerm; @@ -321,10 +323,10 @@ void FVVelocity1P<TypeTag>::calculateVelocityOnBoundary(const Intersection& inte cellData.fluxData().setPotential(isIndex, potential); //calculate the gravity term - GlobalPosition velocity(permeability); + VelocityVector velocity(permeability); velocity *= (cellData.pressure() - pressBound) / dist; - GlobalPosition gravityTerm(unitOuterNormal); + GravityVector gravityTerm(unitOuterNormal); gravityTerm *= (gravity_ * permeability) * density_; velocity += gravityTerm; @@ -338,7 +340,7 @@ void FVVelocity1P<TypeTag>::calculateVelocityOnBoundary(const Intersection& inte else { problem_.neumann(boundValues, intersection); - GlobalPosition velocity(unitOuterNormal); + VelocityVector velocity(unitOuterNormal); velocity *= boundValues[pressEqIdx] / density_; diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh b/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh index 22c8ee9a8626bf5c52e911197776158f714edd7a..d78243339451c0439825169ff857a7c191a248ff 100644 --- a/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh +++ b/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh @@ -63,7 +63,8 @@ class DiffusionProblem1P: public OneModelProblem<TypeTag> dim = Grid::dimension, dimWorld = Grid::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; public: /*! @@ -207,7 +208,7 @@ public: * If the <tt>EnableGravity</tt> property is true, this means * \f$\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \f$, else \f$\boldsymbol{g} = ( 0,\dots, 0)^T \f$ */ - const GlobalPosition &gravity() const + const GravityVector &gravity() const { return gravity_; } @@ -239,7 +240,7 @@ private: const Implementation &asImp_() const { return *static_cast<const Implementation *>(this); } - GlobalPosition gravity_; + GravityVector gravity_; // fluids and material properties std::shared_ptr<SpatialParams> spatialParams_; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh index c5bc6b52cbac44e4a4e4c9538baa57b4a9f05b1a..ac7d08e8b3ff752521304b69de97fe48d71f49cb 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh @@ -161,7 +161,8 @@ template<class TypeTag> class FVPressure2P: public FVPressure<TypeTag> using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; protected: @@ -579,7 +580,7 @@ private: { return *static_cast<const Implementation *>(this); } Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar maxError_; Scalar timeStep_; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh index 17c2be50c736d4ef91b5c76bc2c48ee2f5e7add3..a86d3db90a64483d88c60b186d2c2330ab3b28f9 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh @@ -79,7 +79,10 @@ template<class TypeTag> class FVPressure2PAdaptive: public FVPressure2P<TypeTag> using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>; protected: @@ -232,7 +235,7 @@ public: private: Problem& problem_; FVVelocity<TypeTag, typename GET_PROP_TYPE(TypeTag, Velocity)> velocity_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh index f696e8d132b147454c682532c8a89a6c9583e21a..c74e4f96c37ed060ef539a4a62784dd6a7596224 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh @@ -108,7 +108,8 @@ class FVVelocity2P wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases) }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: @@ -305,7 +306,7 @@ public: private: Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh index 105911ff8e4366371d5f86cb972ce5931f78aef7..853d31b804ba3a6662cc14d4737e35c0ceb1d080 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh @@ -76,7 +76,10 @@ class FVVelocity2PAdaptive: public FVVelocity2P<TypeTag> wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases) }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: @@ -139,7 +142,7 @@ public: private: Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh index c526b6a72498165bff5e25112d5e4c205920c8a7..367903eb3bb09087ce2dcb9195142a95a8bcf319 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh @@ -134,7 +134,10 @@ class FvMpfaL2dPressure2p: public FVPressure<TypeTag> using Intersection = typename GridView::Intersection; using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -451,7 +454,7 @@ protected: InnerBoundaryVolumeFaces innerBoundaryVolumeFaces_; //!< Vector marking faces which intersect the boundary private: - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar maxError_; Scalar timeStep_; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh index d4badd94d085b1aca90a6a937e3d4d84d2c50a5b..65785e519048aa33fea940ef989cef4c82b8f775 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh @@ -139,7 +139,7 @@ class FvMpfaL2dPressure2pAdaptive: public FVPressure<TypeTag> using Grid = typename GridView::Grid; using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -494,7 +494,7 @@ protected: InnerBoundaryVolumeFaces innerBoundaryVolumeFaces_;//!< Vector marking faces which intersect the boundary private: - const GlobalPosition& gravity_; //!< vector including the gravity constant + const Dune::FieldVector<Scalar, dimWorld>& gravity_; //!< vector including the gravity constant Scalar maxError_; Scalar timeStep_; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh index 7353319fa45014fae07aee1cffbf9af5a8d357eb..c8f4729ff21db2425e34ab5ff30a221a0ad570cc 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh @@ -90,7 +90,9 @@ template<class TypeTag> class FvMpfaL2dPressureVelocity2p: public FvMpfaL2dPress numPhases = GET_PROP_VALUE(TypeTag, NumPhases) }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh index 1e6e4d2ec46f3d2e25eae9679841654db83be1ca..899999be933598b06a22b615ba63b4c42841a408 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh @@ -99,7 +99,9 @@ template<class TypeTag> class FvMpfaL2dPressureVelocity2pAdaptive: public FvMpfa numPhases = GET_PROP_VALUE(TypeTag, NumPhases) }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh index 3c54096368605f3fa0ebc99656383274e4ce85b6..5c64b358060c54f2da6ae4d3bfde25a6c813adee 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh @@ -52,7 +52,9 @@ class FvMpfaL2dTransmissibilityCalculator using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Problem = typename GET_PROP_TYPE(TypeTag, Problem); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh index b026b3b422ddd8ed87612f4e67c7d9fd2cb90203..c6ae00e20837d4c15323aabfb9d6d852cef601e0 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh @@ -116,7 +116,8 @@ template<class TypeTag> class FvMpfaL2dVelocity2p }; using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -243,7 +244,7 @@ private: protected: TransmissibilityCalculator transmissibilityCalculator_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh index 77d80637b2b32f7c7b302a2198590649e35dfe67..da2958361d8dfafde807bca74c22fee353cd1903 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh @@ -110,8 +110,6 @@ template<class TypeTag> class FvMpfaL2dVelocity2pAdaptive : public FvMpfaL2dVelo numPhases = GET_PROP_VALUE(TypeTag, NumPhases) }; - using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh index cd07e2af37ecc4a756c6571344e8171b5a27df8a..5e65230446aad67f58ff4852fcc0ee164a5b75c9 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh @@ -70,7 +70,7 @@ class FvMpfaL3dInteractionVolumeContainer using Intersection = typename GridView::Intersection; using IntersectionGeometry = typename Intersection::Geometry; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename ElementGeometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh index 35ac01e742ad7632d9e189d0570080e376ed2f3f..53fa18d60591c06d43ae8f4a663f3a0b35434bf0 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh @@ -66,7 +66,7 @@ class FvMpfaL3dInteractionVolumeContainerAdaptive: public FvMpfaL3dInteractionVo using Vertex = typename GridView::Traits::template Codim<dim>::Entity; using ElementGeometry = typename Element::Geometry; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename ElementGeometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh index 6889ca62ea925f32f92c4053c79cdaff052b6ede..86f0fabacb0e3e4299297645d6cb1a84d2ac890a 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh @@ -140,8 +140,8 @@ class FvMpfaL3dPressure2p: public FVPressure<TypeTag> using Geometry = typename Element::Geometry; using IntersectionIterator = typename GridView::IntersectionIterator; - using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -518,7 +518,7 @@ private: const Implementation &asImp_() const { return *static_cast<const Implementation *>(this);} - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar maxError_; Scalar timeStep_; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh index 2b1c9a8e373a2d61ac0c0301c3b0b1d7b197f5d8..f44750df3845d6ef3ca296b7679d5058c048c301 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh @@ -143,8 +143,8 @@ class FvMpfaL3dPressure2pAdaptive: public FvMpfaL3dPressure2p<TypeTag> using Grid = typename GridView::Grid; using Geometry = typename Element::Geometry; - using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -253,7 +253,7 @@ private: const Implementation &asImp_() const { return *static_cast<const Implementation *>(this);} - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh index 44e75af5247eb12c97d2a2de7657d7c4786acbdd..fad573c09b404076a91f1b40f5356a532e89fffd 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh @@ -85,7 +85,10 @@ template<class TypeTag> class FvMpfaL3dPressureVelocity2p: public FvMpfaL3dPress using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume); using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh index b15187cc587dca4295358f3b7110fdfd8b1579be..6cf61d0ad31da4c4029e96063ad0b45d54d90c04 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh @@ -84,7 +84,9 @@ template<class TypeTag> class FvMpfaL3dPressureVelocity2pAdaptive: public FvMpfa using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume); using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh index 26c92a3abcfd60d4dbe2bb1474ac56f4a2c8e09b..09f7a680db0a3fd983db9294ad7039d254c141c2 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh @@ -64,7 +64,9 @@ class FvMpfaL3dTransmissibilityCalculator using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Problem = typename GET_PROP_TYPE(TypeTag, Problem); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh index 2073847f17dd12ca5ffa5730463ec78bcd1eb8e1..bad7a6b44425fef9ba70b1b3e9040296e21331dc 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh @@ -127,8 +127,7 @@ template<class TypeTag> class FvMpfaL3dVelocity2p innerEdgeFace = 2, innerSideFace = 1 }; - using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -256,7 +255,7 @@ public: private: Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const Dune::FieldVector<Scalar, dimWorld>& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh index 32248040725ec055f924e44627ecbf3c6ec896db..1c77a5546467c65aa2eddf93c559373aa84fb6ea 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh @@ -126,8 +126,7 @@ template<class TypeTag> class FvMpfaL3dVelocity2pAdaptive: public FvMpfaL3dVeloc innerEdgeFace = 2, innerSideFace = 1 }; - using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -182,7 +181,7 @@ public: private: Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh index 0ba8eb8e078885b71a77d5ef73bc644d01755b73..8d3aa814fbc9926916535ac0be7fa3cd16da3017 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh @@ -128,7 +128,8 @@ class FvMpfaO2dPressure2p: public FVPressure<TypeTag> using Intersection = typename GridView::Intersection; using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -485,7 +486,7 @@ protected: InnerBoundaryVolumeFaces innerBoundaryVolumeFaces_; private: - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar maxError_; Scalar timeStep_; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh index e310bede75575dd835ef76d06c1d54e817f6fe80..44a705a4c1d2a38d407c15f0a49d151e4d0f236f 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh @@ -90,7 +90,9 @@ template<class TypeTag> class FvMpfaO2dPressureVelocity2p: public FvMpfaO2dPress numPhases = GET_PROP_VALUE(TypeTag, NumPhases) }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh index 5f9aa4853952592b508f359138ae6a8a8769de70..ce41b8eccda6c427713605524aa5c911a0f4448e 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh @@ -114,7 +114,8 @@ template<class TypeTag> class FvMpfaO2dVelocity2P }; using LocalPosition = Dune::FieldVector<Scalar, dim>; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>; using DimVector = Dune::FieldVector<Scalar, dim>; @@ -238,7 +239,7 @@ public: private: Problem& problem_; - const GlobalPosition& gravity_; //!< vector including the gravity constant + const GravityVector& gravity_; //!< vector including the gravity constant Scalar density_[numPhases]; Scalar viscosity_[numPhases]; diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh b/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh index 67e48f3f5ae99b311792173ad16ffaf3bd879554..79f7a75b146dad19a751192bcbb3dcb90d70174e 100644 --- a/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh +++ b/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh @@ -58,7 +58,8 @@ class DiffusionProblem2P: public OneModelProblem<TypeTag> dim = Grid::dimension, dimWorld = Grid::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; // private!! copy constructor DiffusionProblem2P(const DiffusionProblem2P&) @@ -201,7 +202,7 @@ public: * If the <tt>EnableGravity</tt> property is true, this means * \f$\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \f$, else \f$\boldsymbol{g} = ( 0,\dots, 0)^T \f$ */ - const GlobalPosition &gravity() const + const GravityVector &gravity() const { return gravity_; } @@ -243,7 +244,7 @@ private: const Implementation &asImp_() const { return *static_cast<const Implementation *>(this); } - GlobalPosition gravity_; + GravityVector gravity_; // fluids and material properties std::shared_ptr<SpatialParams> spatialParams_; diff --git a/dumux/porousmediumflow/2p/sequential/impes/problem.hh b/dumux/porousmediumflow/2p/sequential/impes/problem.hh index 8dbd6bd375e319ce3c8399c9f24e877aab81b56c..5ae89c762e1ce2ab2153ff05c4afac539bcb8bd6 100644 --- a/dumux/porousmediumflow/2p/sequential/impes/problem.hh +++ b/dumux/porousmediumflow/2p/sequential/impes/problem.hh @@ -60,7 +60,8 @@ class IMPESProblem2P : public IMPETProblem<TypeTag> using Element = typename GridView::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; //Copy constructor IMPESProblem2P(const IMPESProblem2P &) @@ -161,7 +162,7 @@ public: * If the <tt>EnableGravity</tt> property is true, this means * \f$\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \f$, else \f$\boldsymbol{g} = ( 0,\dots, 0)^T \f$ */ - const GlobalPosition &gravity() const + const GravityVector &gravity() const { return gravity_; } /*! @@ -187,7 +188,7 @@ private: const Implementation &asImp_() const { return *static_cast<const Implementation *>(this); } - GlobalPosition gravity_; + GravityVector gravity_; // fluids and material properties std::shared_ptr<SpatialParams> spatialParams_; diff --git a/dumux/porousmediumflow/fluxvariablescache.hh b/dumux/porousmediumflow/fluxvariablescache.hh index def7cf4b17ca25f4fcccfa38d2a5b164b52aa377..59654c98672385a444547ce25a66e3a17c756b66 100644 --- a/dumux/porousmediumflow/fluxvariablescache.hh +++ b/dumux/porousmediumflow/fluxvariablescache.hh @@ -67,6 +67,7 @@ class PorousMediumFluxVariablesCacheImplementation<TypeTag, DiscretizationMethod using IndexType = typename GridView::IndexSet::IndexType; using Stencil = std::vector<IndexType>; using TransmissibilityVector = std::vector<IndexType>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using CoordScalar = typename GridView::ctype; static const int dim = GridView::dimension; @@ -77,7 +78,6 @@ class PorousMediumFluxVariablesCacheImplementation<TypeTag, DiscretizationMethod using ShapeJacobian = typename FeLocalBasis::Traits::JacobianType; using ShapeValue = typename Dune::FieldVector<Scalar, 1>; using JacobianInverseTransposed = typename Element::Geometry::JacobianInverseTransposed; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; public: diff --git a/dumux/porousmediumflow/nonequilibrium/gridvariables.hh b/dumux/porousmediumflow/nonequilibrium/gridvariables.hh index 9e619befea78503939de09484a620df6d0097088..5e3048dc7b3ba457b4507cbb93abcb77e08123a2 100644 --- a/dumux/porousmediumflow/nonequilibrium/gridvariables.hh +++ b/dumux/porousmediumflow/nonequilibrium/gridvariables.hh @@ -54,7 +54,6 @@ class NonEquilibriumGridVariables enum { dim = GridView::dimension }; // Grid and world dimension enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>; static constexpr int numPhases = GET_PROP_TYPE(TypeTag, ModelTraits)::numPhases(); static constexpr bool isBox = FVGridGeometry::discMethod == DiscretizationMethod::box; @@ -78,7 +77,11 @@ public: // instatiate the velocity output using VelocityOutput = typename GET_PROP_TYPE(TypeTag, VelocityOutput); VelocityOutput velocityOutput(*problem_, *this->fvGridGeometry_, *this, curSol); - std::array<std::vector<GlobalPosition>, numPhases> velocity; + + using Scalar = typename SolutionVector::field_type; + using VelocityVector = typename Dune::FieldVector<Scalar, dimWorld>; + + std::array<std::vector<VelocityVector>, numPhases> velocity; for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { diff --git a/dumux/porousmediumflow/problem.hh b/dumux/porousmediumflow/problem.hh index 177a1953fe56e8a4bbea0a191f9c1e27001a446f..6bc30dbf16527208a04de191814ba5822b28392d 100644 --- a/dumux/porousmediumflow/problem.hh +++ b/dumux/porousmediumflow/problem.hh @@ -44,9 +44,13 @@ class PorousMediumFlowProblem : public FVProblem<TypeTag> dimWorld = GridView::dimensionworld }; - using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using GravityVector = Dune::FieldVector<Scalar, dimWorld>; + + public: //! export spatial parameter type using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams); @@ -117,7 +121,7 @@ public: * This is discretization independent interface. By default it * just calls gravity(). */ - const GlobalPosition &gravityAtPos(const GlobalPosition &pos) const + const GravityVector &gravityAtPos(const GlobalPosition &pos) const { return this->asImp_().gravity(); } /*! @@ -129,7 +133,7 @@ public: * property is true, \f$\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \f$ holds, * else \f$\boldsymbol{g} = ( 0,\dots, 0)^T \f$. */ - const GlobalPosition &gravity() const + const GravityVector &gravity() const { return gravity_; } /*! @@ -148,7 +152,7 @@ public: protected: //! The gravity acceleration vector - GlobalPosition gravity_; + GravityVector gravity_; // material properties of the porous medium std::shared_ptr<SpatialParams> spatialParams_; diff --git a/dumux/porousmediumflow/velocityoutput.hh b/dumux/porousmediumflow/velocityoutput.hh index 2237092d969bf94f78635c83c74c7d3657bb13d5..65101339f5871303d31219f993f61ad94eadceab 100644 --- a/dumux/porousmediumflow/velocityoutput.hh +++ b/dumux/porousmediumflow/velocityoutput.hh @@ -67,7 +67,7 @@ class PorousMediumFlowVelocityOutput using IndexType = typename GridView::IndexSet::IndexType; using CoordScalar = typename GridView::ctype; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using ReferenceElements = Dune::ReferenceElements<CoordScalar, dim>; public: @@ -140,6 +140,8 @@ public: const Element& element, int phaseIdx) { + using Velocity = typename VelocityVector::value_type; + if (!velocityOutput_) return; const auto geometry = element.geometry(); @@ -154,7 +156,7 @@ public: if(isBox && dim == 1) { - GlobalPosition tmpVelocity(0.0); + Velocity tmpVelocity(0.0); tmpVelocity = (geometry.corner(1) - geometry.corner(0)); tmpVelocity /= tmpVelocity.two_norm(); @@ -189,7 +191,7 @@ public: if(isBox) { - using ScvVelocities = Dune::BlockVector<Dune::FieldVector<Scalar, dimWorld> >; + using ScvVelocities = Dune::BlockVector<Velocity>; ScvVelocities scvVelocities(fvGeometry.numScv()); scvVelocities = 0; @@ -219,7 +221,7 @@ public: Scalar flux = fluxVars.advectiveFlux(phaseIdx, upwindTerm) / localArea; // transform the volume flux into a velocity vector - GlobalPosition tmpVelocity = localNormal; + Velocity tmpVelocity = localNormal; tmpVelocity *= flux; scvVelocities[scvf.insideScvIdx()] += tmpVelocity; @@ -232,7 +234,7 @@ public: int vIdxGlobal = scv.dofIndex(); // calculate the subcontrolvolume velocity by the Piola transformation - Dune::FieldVector<CoordScalar, dimWorld> scvVelocity(0); + Velocity scvVelocity(0); jacobianT2.mtv(scvVelocities[scv.indexInElement()], scvVelocity); scvVelocity /= geometry.integrationElement(localPos)*cellNum_[vIdxGlobal]; @@ -332,7 +334,7 @@ public: localScvfIdx++; } - Dune::FieldVector <Scalar, dim> refVelocity; + Velocity refVelocity; // cubes: On the reference element simply average over opposite fluxes // note that this is equal to a corner velocity interpolation method if (dim == 1 || geomType.isCube()) @@ -354,7 +356,7 @@ public: else DUNE_THROW(Dune::NotImplemented, "velocity output for cell-centered and prism/pyramid"); - Dune::FieldVector<Scalar, dimWorld> scvVelocity(0); + Velocity scvVelocity(0); jacobianT2.mtv(refVelocity, scvVelocity); scvVelocity /= geometry.integrationElement(localPos); diff --git a/test/discretization/box/test_boxfvgeometry.cc b/test/discretization/box/test_boxfvgeometry.cc index dca65f1e850b3e6ee36833b8106ee6407e79693e..3f04b22cf197815083c553f1562b6c3f72f2077e 100644 --- a/test/discretization/box/test_boxfvgeometry.cc +++ b/test/discretization/box/test_boxfvgeometry.cc @@ -58,13 +58,12 @@ int main (int argc, char *argv[]) try using Grid = Dune::YaspGrid<3>; constexpr int dim = Grid::dimension; - constexpr int dimworld = Grid::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename Grid::ctype, dimworld>; using FVGridGeometry = BoxFVGridGeometry<double, typename Grid::LeafGridView, ENABLE_CACHING>; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; + using GlobalPosition = typename SubControlVolume::GlobalPosition; // make a grid GlobalPosition lower(0.0); diff --git a/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc b/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc index 3f6c269c52149f759232ad118337360158545b7a..32679980bf201a6d76734f1746da6ac65f7c8d52 100644 --- a/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc +++ b/test/discretization/cellcentered/tpfa/test_tpfafvgeometry.cc @@ -58,13 +58,12 @@ int main (int argc, char *argv[]) try using Grid = Dune::YaspGrid<2>; constexpr int dim = Grid::dimension; - constexpr int dimworld = Grid::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename Grid::ctype, dimworld>; using FVGridGeometry = CCTpfaFVGridGeometry<typename Grid::LeafGridView, ENABLE_CACHING>; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; + using GlobalPosition = typename SubControlVolume::GlobalPosition; // make a grid GlobalPosition lower(0.0); diff --git a/test/discretization/cellcentered/tpfa/test_tpfafvgeometry_nonconforming.cc b/test/discretization/cellcentered/tpfa/test_tpfafvgeometry_nonconforming.cc index f20998e0c506389eab8c7dd650bcadafb293a499..f95930fc7c88bbad4b3b4e12cd906d5f1674a0e5 100644 --- a/test/discretization/cellcentered/tpfa/test_tpfafvgeometry_nonconforming.cc +++ b/test/discretization/cellcentered/tpfa/test_tpfafvgeometry_nonconforming.cc @@ -121,8 +121,10 @@ int main (int argc, char *argv[]) try constexpr int dim = Grid::dimension; constexpr int dimworld = Grid::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename Grid::ctype, dimworld>; + using FVGridGeometry = CCTpfaFVGridGeometry<typename Grid::LeafGridView, ENABLE_CACHING>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; //! make a grid GlobalPosition lower(0.0); diff --git a/test/discretization/staggered/test_staggered_free_flow_geometry.cc b/test/discretization/staggered/test_staggered_free_flow_geometry.cc index 3fdacbc911f95ef3958a7f1f78ac6a60b1f86298..a315111787c57bd76dbd027e6686cf1f4d3ad11f 100644 --- a/test/discretization/staggered/test_staggered_free_flow_geometry.cc +++ b/test/discretization/staggered/test_staggered_free_flow_geometry.cc @@ -88,14 +88,13 @@ int main (int argc, char *argv[]) try using Grid = Dune::YaspGrid<2>; constexpr int dim = Grid::dimension; - constexpr int dimworld = Grid::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename Grid::ctype, dimworld>; using FVGridGeometry = StaggeredFVGridGeometry<typename Grid::LeafGridView, /*enable caching=*/ true, TestFVGGTraits<typename Grid::LeafGridView> >; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; + using GlobalPosition = typename SubControlVolume::GlobalPosition; // make a grid GlobalPosition lower(0.0); diff --git a/test/freeflow/navierstokes/angelitestproblem.hh b/test/freeflow/navierstokes/angelitestproblem.hh index 55339910b6214412f784ee08ea9a154821be81ed..85536d84d3ba3a593bb6edabc35d1a0c57090a88 100644 --- a/test/freeflow/navierstokes/angelitestproblem.hh +++ b/test/freeflow/navierstokes/angelitestproblem.hh @@ -85,7 +85,9 @@ class AngeliTestProblem : public NavierStokesProblem<TypeTag> using TimeLoopPtr = std::shared_ptr<TimeLoop<Scalar>>; static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using VelocityVector = Dune::FieldVector<Scalar, dimWorld>; public: AngeliTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) @@ -309,8 +311,8 @@ private: TimeLoopPtr timeLoop_; bool printL2Error_; std::vector<Scalar> analyticalPressure_; - std::vector<GlobalPosition> analyticalVelocity_; - std::vector<GlobalPosition> analyticalVelocityOnFace_; + std::vector<VelocityVector> analyticalVelocity_; + std::vector<VelocityVector> analyticalVelocityOnFace_; }; } //end namespace diff --git a/test/freeflow/navierstokes/channeltestproblem.hh b/test/freeflow/navierstokes/channeltestproblem.hh index 1ba906080c105f8ed1341d538655c7d9ab552d65..79f174764c7313d9129ab2d7403bd47726cdd947 100644 --- a/test/freeflow/navierstokes/channeltestproblem.hh +++ b/test/freeflow/navierstokes/channeltestproblem.hh @@ -93,7 +93,9 @@ class ChannelTestProblem : public NavierStokesProblem<TypeTag> using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using TimeLoopPtr = std::shared_ptr<CheckPointTimeLoop<Scalar>>; diff --git a/test/freeflow/navierstokes/doneatestproblem.hh b/test/freeflow/navierstokes/doneatestproblem.hh index 550ae11f7aca3d001cb7ff00772352e66d86d238..bbd58ba1bdeb53432cdadba4f4ac5a8ef3798dc4 100644 --- a/test/freeflow/navierstokes/doneatestproblem.hh +++ b/test/freeflow/navierstokes/doneatestproblem.hh @@ -87,7 +87,9 @@ class DoneaTestProblem : public NavierStokesProblem<TypeTag> using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector); static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using VelocityVector = Dune::FieldVector<Scalar, dimWorld>; public: DoneaTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) @@ -294,8 +296,8 @@ private: Scalar eps_; bool printL2Error_; std::vector<Scalar> analyticalPressure_; - std::vector<GlobalPosition> analyticalVelocity_; - std::vector<GlobalPosition> analyticalVelocityOnFace_; + std::vector<VelocityVector> analyticalVelocity_; + std::vector<VelocityVector> analyticalVelocityOnFace_; }; } //end namespace diff --git a/test/freeflow/navierstokes/kovasznaytestproblem.hh b/test/freeflow/navierstokes/kovasznaytestproblem.hh index 24d26dbd9ff459fda85e037b28d3fef1d15dc73c..8927693ffae2bb769b38b5eb6d2325ba43a1a7e1 100644 --- a/test/freeflow/navierstokes/kovasznaytestproblem.hh +++ b/test/freeflow/navierstokes/kovasznaytestproblem.hh @@ -82,7 +82,9 @@ class KovasznayTestProblem : public NavierStokesProblem<TypeTag> using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector); static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using VelocityVector = Dune::FieldVector<Scalar, dimWorld>; public: KovasznayTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) @@ -305,8 +307,8 @@ private: Scalar lambda_; bool printL2Error_; std::vector<Scalar> analyticalPressure_; - std::vector<GlobalPosition> analyticalVelocity_; - std::vector<GlobalPosition> analyticalVelocityOnFace_; + std::vector<VelocityVector> analyticalVelocity_; + std::vector<VelocityVector> analyticalVelocityOnFace_; }; } //end namespace diff --git a/test/freeflow/navierstokes/test_channel.cc b/test/freeflow/navierstokes/test_channel.cc index 505abff099579731be8faf0be1c58f59b609a3f2..39f706fb94e597c27a4af5183fa9ac4651430342 100644 --- a/test/freeflow/navierstokes/test_channel.cc +++ b/test/freeflow/navierstokes/test_channel.cc @@ -174,7 +174,9 @@ int main(int argc, char** argv) try // set up two surfaces over which fluxes are calculated FluxOverSurface<TypeTag> flux(*assembler, x); using GridView = typename GET_PROP_TYPE(TypeTag, GridView); - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>; + using Element = typename GridView::template Codim<0>::Entity; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; const Scalar xMin = fvGridGeometry->bBoxMin()[0]; const Scalar xMax = fvGridGeometry->bBoxMax()[0]; diff --git a/test/freeflow/navierstokesnc/densityflowproblem.hh b/test/freeflow/navierstokesnc/densityflowproblem.hh index 217242da9002f6d06ca92c99e87b73964b47eeca..15c5211b2ca2903eaa2da1b934a52c9b80789592 100644 --- a/test/freeflow/navierstokesnc/densityflowproblem.hh +++ b/test/freeflow/navierstokesnc/densityflowproblem.hh @@ -90,11 +90,13 @@ class DensityDrivenFlowProblem : public NavierStokesProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using TimeLoopPtr = std::shared_ptr<CheckPointTimeLoop<Scalar>>; + static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; + public: DensityDrivenFlowProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) : ParentType(fvGridGeometry), eps_(1e-6) diff --git a/test/freeflow/navierstokesnc/msfreeflowtestproblem.hh b/test/freeflow/navierstokesnc/msfreeflowtestproblem.hh index 49c261d39a1b0a8ca084eb4c7da2917344cb8828..c5b5d0fe8a4096b857a109b73aecf18ab4aef396 100644 --- a/test/freeflow/navierstokesnc/msfreeflowtestproblem.hh +++ b/test/freeflow/navierstokesnc/msfreeflowtestproblem.hh @@ -186,8 +186,8 @@ class MaxwellStefanNCTestProblem : public NavierStokesProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using TimeLoopPtr = std::shared_ptr<CheckPointTimeLoop<Scalar>>; diff --git a/test/freeflow/rans/pipelauferproblem.hh b/test/freeflow/rans/pipelauferproblem.hh index 8d5f11d3c589fd8cca4218a7e0a2dc4ce8604faa..a5e08a9e3cd642ffabedeb197b308f841ce43ea7 100644 --- a/test/freeflow/rans/pipelauferproblem.hh +++ b/test/freeflow/rans/pipelauferproblem.hh @@ -104,12 +104,13 @@ class PipeLauferProblem : public ZeroEqProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using TimeLoopPtr = std::shared_ptr<CheckPointTimeLoop<Scalar>>; static const unsigned int phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx); + static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; public: PipeLauferProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/freeflow/ransnc/channeltestproblem.hh b/test/freeflow/ransnc/channeltestproblem.hh index d8ecfbb26520c37fbf2029dd9e33b02c0e963dc1..ed6ca552c60229fa6c3c3387e506cc31b00f218f 100644 --- a/test/freeflow/ransnc/channeltestproblem.hh +++ b/test/freeflow/ransnc/channeltestproblem.hh @@ -114,11 +114,12 @@ class ChannelNCTestProblem : public ZeroEqProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using TimeLoopPtr = std::shared_ptr<CheckPointTimeLoop<Scalar>>; + static constexpr auto dimWorld = GET_PROP_TYPE(TypeTag, GridView)::dimensionworld; static const unsigned int phaseIdx = GET_PROP_VALUE(TypeTag, PhaseIdx); public: diff --git a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh index a8e8a3e435308ee75548c2cf7a6a19e17dae4fad..960e3c5e0676402ba9dbb583eb44377579e6b8d2 100644 --- a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh +++ b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh @@ -118,7 +118,8 @@ class OnePNIConductionProblem : public PorousMediumFlowProblem<TypeTag> temperatureIdx = Indices::temperatureIdx }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); public: diff --git a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh index f8237a8b0720fe791734377cf38027fae0b1ae5d..6b2037bc79d0b287c6b291c2648ebe32deedf9b3 100644 --- a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh +++ b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh @@ -127,7 +127,7 @@ class OnePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag> using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); public: diff --git a/test/porousmediumflow/1p/implicit/1pnispatialparams.hh b/test/porousmediumflow/1p/implicit/1pnispatialparams.hh index 9ed82ca6d2ecc35e7a7688c47d54aeafbe197836..367e9f9c703126e10ac14f4008cc607e8e3ee233 100644 --- a/test/porousmediumflow/1p/implicit/1pnispatialparams.hh +++ b/test/porousmediumflow/1p/implicit/1pnispatialparams.hh @@ -45,7 +45,8 @@ class OnePNISpatialParams using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePNISpatialParams<TypeTag>>; static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/test/porousmediumflow/1p/implicit/1ptestproblem.hh b/test/porousmediumflow/1p/implicit/1ptestproblem.hh index daa94ec6f2a2b1b9b0905008b7f7d9eec3f65252..6bbca35674107f5b83257ebb500279c5574238c7 100644 --- a/test/porousmediumflow/1p/implicit/1ptestproblem.hh +++ b/test/porousmediumflow/1p/implicit/1ptestproblem.hh @@ -109,7 +109,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag> static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: OnePTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1p/implicit/1ptestspatialparams.hh b/test/porousmediumflow/1p/implicit/1ptestspatialparams.hh index 2607a0899d584c0181086c7afca2c0e7b82136ab..792a79fbaf2fd464c527e0b20d3eb4411a254e61 100644 --- a/test/porousmediumflow/1p/implicit/1ptestspatialparams.hh +++ b/test/porousmediumflow/1p/implicit/1ptestspatialparams.hh @@ -64,8 +64,8 @@ class OnePTestSpatialParams dimWorld=GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar,dimWorld>; using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/test/porousmediumflow/1p/implicit/compressible/problem.hh b/test/porousmediumflow/1p/implicit/compressible/problem.hh index 08a583c5cb0e4b1eeed33bc5906fad9b757c0216..57cb404c286fb803643a1962c231ea25f2c1a8e6 100644 --- a/test/porousmediumflow/1p/implicit/compressible/problem.hh +++ b/test/porousmediumflow/1p/implicit/compressible/problem.hh @@ -92,7 +92,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag> using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: OnePTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh b/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh index 48b6c5e60e2db89efcb663335144a491165821a9..1de2a20b2fa4ca08b4d9c2cb1842fe3b1a37810b 100644 --- a/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh +++ b/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh @@ -48,7 +48,7 @@ class OnePTestSpatialParams using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/1p/implicit/fractureproblem.hh b/test/porousmediumflow/1p/implicit/fractureproblem.hh index 50ec649f84bc6fb5f8041b743435cb409d1de343..97b57c92b8839d88b46f5105b281c350eb503e71 100644 --- a/test/porousmediumflow/1p/implicit/fractureproblem.hh +++ b/test/porousmediumflow/1p/implicit/fractureproblem.hh @@ -93,7 +93,8 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); public: diff --git a/test/porousmediumflow/1p/implicit/fracturespatialparams.hh b/test/porousmediumflow/1p/implicit/fracturespatialparams.hh index 6f52dd1a69669677bd8d9c4bd2f3165e7188cd00..e6c06604a479fb28275d6ba62da02aa24b9e8319 100644 --- a/test/porousmediumflow/1p/implicit/fracturespatialparams.hh +++ b/test/porousmediumflow/1p/implicit/fracturespatialparams.hh @@ -59,8 +59,8 @@ class FractureSpatialParams using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, FractureSpatialParams<TypeTag>>; - static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/test/porousmediumflow/1p/implicit/incompressible/problem.hh b/test/porousmediumflow/1p/implicit/incompressible/problem.hh index b46fbdbdd736d0ee4ed458e0b26b98c7074bb01b..03bd696b0bdd523e71c0b78970d78b5d4f200beb 100644 --- a/test/porousmediumflow/1p/implicit/incompressible/problem.hh +++ b/test/porousmediumflow/1p/implicit/incompressible/problem.hh @@ -93,7 +93,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag> using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: OnePTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh b/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh index 03dda497fc46a013aa14fc4b13757d9dac627274..882df6d77f830f6b67e61bee92278e44d50b1a4c 100644 --- a/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh +++ b/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh @@ -48,7 +48,7 @@ class OnePTestSpatialParams using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh index d7302d7a27971d47ad50898357c543efc6a860ba..a52d270b454808251497bb0261d1695900349636 100644 --- a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh +++ b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh @@ -95,7 +95,8 @@ class OnePSingularityProblem : public PorousMediumFlowProblem<TypeTag> using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); using PointSource = typename GET_PROP_TYPE(TypeTag, PointSource); using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: OnePSingularityProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1p/implicit/tubesproblem.hh b/test/porousmediumflow/1p/implicit/tubesproblem.hh index f864b99e6de97a5a32c29fb331f47ef7b1ab79ad..582fcb577823d91380e898a3bb0d37b5bce469d3 100644 --- a/test/porousmediumflow/1p/implicit/tubesproblem.hh +++ b/test/porousmediumflow/1p/implicit/tubesproblem.hh @@ -99,7 +99,7 @@ class TubesTestProblem : public PorousMediumFlowProblem<TypeTag> using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector); using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; enum { isBox = GET_PROP_TYPE(TypeTag, FVGridGeometry)::discMethod == DiscretizationMethod::box }; diff --git a/test/porousmediumflow/1p/sequential/test_1pproblem.hh b/test/porousmediumflow/1p/sequential/test_1pproblem.hh index fae20b6a264d20515d1260b34b0d9b732c2d4dc1..cdc0c03c2d6dcbf8e56cc852bfbd6f9cbaa9256f 100644 --- a/test/porousmediumflow/1p/sequential/test_1pproblem.hh +++ b/test/porousmediumflow/1p/sequential/test_1pproblem.hh @@ -91,7 +91,7 @@ class TestProblemOneP: public DiffusionProblem1P<TypeTag > using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using LocalPosition = Dune::FieldVector<Scalar, dim>; diff --git a/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh b/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh index c649a38882c145c989f1551920c92ceb8ef2159d..5257e50ada7f0cb4f1bd3f9449bf8e1bb739d547 100644 --- a/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh +++ b/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh @@ -48,7 +48,7 @@ class TestOnePSpatialParams: public SequentialFVSpatialParamsOneP<TypeTag> {dim=Grid::dimension, dimWorld=Grid::dimensionworld}; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh b/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh index d2888abc3ba7ac69101ceb721a7effbc0a48f664..df8f8b216843fa1fec81c67b4417c196470cf22e 100644 --- a/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh +++ b/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh @@ -137,7 +137,7 @@ class TestDiffusionProblem: public DiffusionProblem2P<TypeTag> using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using LocalPosition = Dune::FieldVector<Scalar, dim>; public: diff --git a/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh b/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh index 4090049d7d646da7f875686e8d5642b1ef66e9c8..509d3c6915b26594cc180ac040ff4c9abe619084 100644 --- a/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh +++ b/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh @@ -125,7 +125,7 @@ class TestDiffusion3DProblem: public DiffusionProblem2P<TypeTag> using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes); diff --git a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh index 0382c2193bd34276ed74cf218e3da835cbae4b5f..c9dde0908aae58dbac1b6569642c429cc882dffc 100644 --- a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh +++ b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh @@ -76,7 +76,7 @@ class TestDiffusionSpatialParams: public SequentialFVSpatialParams<TypeTag> {dim=Grid::dimension, dimWorld=Grid::dimensionworld}; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh index de20b85caebfad0ca1f697c8941439f684bcf280..03ec4181fc4a8e217e3b858c761adcca07644fa6 100644 --- a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh +++ b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh @@ -72,7 +72,7 @@ class TestDiffusionSpatialParams3d: public SequentialFVSpatialParams<TypeTag> {dim=Grid::dimension, dimWorld=Grid::dimensionworld, numEq=1}; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh index 83254389da858022cac5ba27d7f2a4b33382003a..e2618e16a58814893def96f8ad2fac662fe58164 100644 --- a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh +++ b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh @@ -126,7 +126,7 @@ class OnePTwoCNIConductionProblem : public PorousMediumFlowProblem<TypeTag> //! property that defines whether mole or mass fractions are used static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: OnePTwoCNIConductionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh index 6f4c76918ff23447276a267eb52089c059d45d06..f0d72e82a3b24e45cc27a4dfbd1d5b0ade849d9f 100644 --- a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh +++ b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh @@ -133,7 +133,7 @@ class OnePTwoCNIConvectionProblem : public PorousMediumFlowProblem<TypeTag> //! property that defines whether mole or mass fractions are used static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: OnePTwoCNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh index 0392a229c6063d87013776b2574bc747435e691c..ae77a6c9dbaf240af749381ff84844d0fe0d6a41 100644 --- a/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh +++ b/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh @@ -130,7 +130,7 @@ class OnePTwoCTestProblem : public PorousMediumFlowProblem<TypeTag> static const bool isBox = GET_PROP_TYPE(TypeTag, FVGridGeometry)::discMethod == DiscretizationMethod::box; static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: OnePTwoCTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh b/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh index dda4373600c342e74d67b0f8e52c7e0cc5c6194b..7645002da432a3a840ee7708953a887952343d37 100644 --- a/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh +++ b/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh @@ -124,7 +124,7 @@ class ThermoChemProblem : public PorousMediumFlowProblem<TypeTag> energyEqIdx = Indices::energyEqIdx }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: /*! diff --git a/test/porousmediumflow/2p/implicit/fracture/problem.hh b/test/porousmediumflow/2p/implicit/fracture/problem.hh index 1f20d3b4b65e7675582e6c7480a4b32e4f6879e4..ea3fddd6015a2961a7d7b42710ca1910cfc9ee4b 100644 --- a/test/porousmediumflow/2p/implicit/fracture/problem.hh +++ b/test/porousmediumflow/2p/implicit/fracture/problem.hh @@ -105,8 +105,8 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag> // world dimension dimWorld = GridView::dimensionworld }; - - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: FractureProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh b/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh index facd0a670f37cf51951368c9c26c0e1992b5a436..082df8fd9c60d0884ff177443e7805881e7eac01 100644 --- a/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh +++ b/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh @@ -66,9 +66,7 @@ class FractureSpatialParams using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, FractureSpatialParams<TypeTag>>; - enum { dimWorld=GridView::dimensionworld }; - - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using EffectiveLaw = RegularizedVanGenuchten<Scalar>; diff --git a/test/porousmediumflow/2p/implicit/incompressible/problem.hh b/test/porousmediumflow/2p/implicit/incompressible/problem.hh index 80ed9c41e4449fbcc780eb00c4999e42686dce2a..745289aa9a3261913302d5d1c60b9671ca859392 100644 --- a/test/porousmediumflow/2p/implicit/incompressible/problem.hh +++ b/test/porousmediumflow/2p/implicit/incompressible/problem.hh @@ -96,7 +96,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; enum { diff --git a/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh b/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh index 7006d122738d5c865ac14253e1ce6e44cac0b9f7..ea1d5a081fa8e1e24de4d48da1565ace394dd7ff 100644 --- a/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh +++ b/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh @@ -70,7 +70,7 @@ class TwoPTestSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using EffectiveLaw = RegularizedVanGenuchten<Scalar>; diff --git a/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh b/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh index 4dc1192b5383ac7e73abc2aeff469aa7155654d5..e321c379590a92679a08e33011967564b4e16ccb 100644 --- a/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh +++ b/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh @@ -93,7 +93,8 @@ template<class TypeTag> class BuckleyLeverettAnalytic }; using BlockVector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >; - using GlobalPosition = Dune::FieldVector<Scalar, dimworld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; private: diff --git a/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh b/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh index 76446673ced802fa88ca15ece537af5ae70c27be..20b65a69338419d59923ec9dc18aea1e3f231816 100644 --- a/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh +++ b/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh @@ -70,7 +70,8 @@ class McWhorterAnalytic }; using BlockVector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >; - using GlobalPosition = Dune::FieldVector<Scalar, dimworld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; private: diff --git a/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh b/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh index f7524a2951fa99e63eb3e4492b7aad7838d33116..ec8494cf5bd31f2ac54fe19c8239d40c3782a4d7 100644 --- a/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh +++ b/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh @@ -144,7 +144,7 @@ using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using LocalPosition = Dune::FieldVector<Scalar, dim>; public: diff --git a/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh b/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh index 5ac0286ddccaeee2af778defb6a767fbeb264dac..4cd36ddafaa5f54cfdb02ee7be27ec545999ec52 100644 --- a/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh +++ b/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh @@ -77,7 +77,7 @@ class Test3d2pSpatialParams: public SequentialFVSpatialParams<TypeTag> {dim=Grid::dimension, dimWorld=Grid::dimensionworld, numEq=1}; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using LocalPosition = Dune::FieldVector<CoordScalar, dim>; using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>; diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh b/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh index b64bee1e2c1529b9f9f26c97fa604c3681585718..da694f34e8c682227216d0bce010633623e1660f 100644 --- a/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh +++ b/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh @@ -110,7 +110,7 @@ class TestIMPESAdaptiveProblem: public IMPESProblem2P<TypeTag> using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes); diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh b/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh index ddf2f3d3bb31be37d066d31a7c9e2c0f4abc2e03..a86fcd5d995927b13f4a1ddfd069a2cd044a07c3 100644 --- a/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh +++ b/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh @@ -73,7 +73,7 @@ class TestIMPESAdaptiveSpatialParams: public SequentialFVSpatialParams<TypeTag> {dimWorld=Grid::dimensionworld}; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw); diff --git a/test/porousmediumflow/2p/sequential/test_impesproblem.hh b/test/porousmediumflow/2p/sequential/test_impesproblem.hh index 11de43b0c22617ca70477389ccc617353120f8d8..24b57e8a43d689dc61832a688648351e4d7bfd56 100644 --- a/test/porousmediumflow/2p/sequential/test_impesproblem.hh +++ b/test/porousmediumflow/2p/sequential/test_impesproblem.hh @@ -144,7 +144,7 @@ enum using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes); diff --git a/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh b/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh index 5f2050e151e7082af5e531d3c3685bb10ec6179a..857c905446ed11c88b2c2b3cf93b74cd7fcb3b9f 100644 --- a/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh +++ b/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh @@ -73,7 +73,7 @@ class TestIMPESSpatialParams: public SequentialFVSpatialParams<TypeTag> {dimWorld=Grid::dimensionworld}; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw); diff --git a/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh b/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh index 1e0cdd9f7dd7b5e8b89dcaca0dd3ab488589822b..302c32854fbf533689185ad009be1cceb53c983a 100644 --- a/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh +++ b/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh @@ -158,7 +158,7 @@ enum using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: MPFATwoPTestProblem(TimeManager &timeManager, Grid &grid) : diff --git a/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh b/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh index aa9b3dfb75500338f146a06b12fff0b3172e0444..421386db7c2f9c2c5f306558c5cb35db52163c0f 100644 --- a/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh +++ b/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh @@ -73,7 +73,7 @@ class Test2PSpatialParams: public SequentialFVSpatialParams<TypeTag> }; using Element = typename Grid::Traits::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>; public: diff --git a/test/porousmediumflow/2p/sequential/test_transportproblem.hh b/test/porousmediumflow/2p/sequential/test_transportproblem.hh index 67f89b0d68e56586d26555a0647af682659a6ef3..c8c80c786369dc0627a97558f2a8e8cfe9d59131 100644 --- a/test/porousmediumflow/2p/sequential/test_transportproblem.hh +++ b/test/porousmediumflow/2p/sequential/test_transportproblem.hh @@ -112,8 +112,9 @@ class TestTransportProblem: public TransportProblem2P<TypeTag> using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; - + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using VelocityVector = Dune::FieldVector<Scalar, dimWorld>; public: TestTransportProblem(TimeManager& timeManager, Grid& grid) : ParentType(timeManager, grid) @@ -125,7 +126,7 @@ public: { ParentType::init(); - GlobalPosition vel(0); + VelocityVector vel(0); vel[0] = 1e-5; // compute update vector diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh index e0944b388cb757f8a47516b09dc307540fa3d290..6baa7d3514bda26023255a56af6e0e8efff7871b 100644 --- a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh +++ b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh @@ -106,7 +106,7 @@ class InjectionProblem : public PorousMediumFlowProblem<TypeTag> }; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh index fd2377c04f5bfd8b524208852b9385c95c91de9e..862c7042d6a14de129ff5c839abdbe6ffc71126a 100644 --- a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh +++ b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh @@ -64,7 +64,8 @@ class InjectionProblemSpatialParams static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; using EffectiveLaw = RegularizedVanGenuchten<Scalar>; diff --git a/test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh b/test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh index 82f8048490796b928c5eb07883a1096f0cb18c83..02f7caccab38737242c0ada28f8f0c3b1ee96018 100644 --- a/test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh +++ b/test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh @@ -69,10 +69,10 @@ class InjectionSpatialParams static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; - using EffectiveLaw = RegularizedBrooksCorey<Scalar>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + public: //! export the type used for the permeability using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_spatialparams.hh b/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_spatialparams.hh index b491c264172cb63acf23e5757b74dae126bdb74d..62af464077043a65d7cfe83302f7e171398da6a5 100644 --- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_spatialparams.hh +++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_spatialparams.hh @@ -67,9 +67,11 @@ class TwoPTwoCComparisonSpatialParams using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; + using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCComparisonSpatialParams<TypeTag>>; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; enum {dimWorld=GridView::dimensionworld}; diff --git a/test/porousmediumflow/2p2c/implicit/waterairspatialparams.hh b/test/porousmediumflow/2p2c/implicit/waterairspatialparams.hh index c781559ac7d885d912c56976ebac757ab7238028..7cf346252403998927821247f08f71678e0b7557 100644 --- a/test/porousmediumflow/2p2c/implicit/waterairspatialparams.hh +++ b/test/porousmediumflow/2p2c/implicit/waterairspatialparams.hh @@ -72,10 +72,11 @@ class WaterAirSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, WaterAirSpatialParams<TypeTag>>; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; using EffectiveLaw = RegularizedBrooksCorey<Scalar>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + public: //! export the type used for the permeability using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh index 675cb91e5823926a2852c135a55bf3f4116e10b9..9d7965b0fda8426ba4a4c3b9c4754387beacb204 100644 --- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh +++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh @@ -124,7 +124,7 @@ using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: Adaptive2p2c2d(TimeManager& timeManager, Grid& grid) diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh index 7214627b8b20fe53f44c731957b845fd188418a0..4657fded674b90fd7eba71a448fbbf241cdc3e0e 100644 --- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh +++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh @@ -124,7 +124,7 @@ using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: Adaptive2p2c3d(TimeManager& timeManager, Grid& grid) : diff --git a/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh b/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh index eed9ce4baf09d30424be0bd258fd9531518752e9..7f208d5bea02817295954ec88ce9a8e50fe3b2d7 100644 --- a/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh +++ b/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh @@ -107,7 +107,7 @@ using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: TestDecTwoPTwoCProblem(TimeManager& timeManager, Grid& grid) : diff --git a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh index 52a7e42ee9db2d05cb9276a067381a6c2730a0a1..f1527b6086d1ec214e96aaeb1e5e42143704ba5c 100644 --- a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh +++ b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh @@ -114,7 +114,7 @@ using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); using Element = typename GridView::Traits::template Codim<0>::Entity; using Intersection = typename GridView::Intersection; -using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; +using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: TestMultTwoPTwoCProblem(TimeManager &timeManager, Grid &grid, const GlobalPosition& upperRight = 0) : diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh b/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh index aaf0a9653ea7b2ae97bf84019699874e0c6499f5..ec6ce21c1f23674c13245c9915ab293e28e4c87f 100644 --- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh +++ b/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh @@ -94,7 +94,8 @@ class TwoPNCDiffusionProblem : public PorousMediumFlowProblem<TypeTag> using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables); using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector); using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); //! property that defines whether mole or mass fractions are used diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh b/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh index c7ae2d4ede9dbe8e47f4f86a6a2d37d6ef5785d1..1ef288c4083d11528b78e9e4a5962acc49d3199f 100644 --- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh +++ b/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh @@ -66,7 +66,9 @@ class TwoPNCDiffusionSpatialParams static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; using EffectiveLaw = RegularizedBrooksCorey<Scalar>; diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh b/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh index 62d710d797b99781ff8bb85d5c4b1a77afd15580..ea60ef74e565580c8c108c1ab5e2bf3ab2a2f2b1 100644 --- a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh +++ b/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh @@ -101,7 +101,7 @@ class FuelCellProblem : public PorousMediumFlowProblem<TypeTag> static constexpr int dim = GridView::dimension; static constexpr int dimWorld = GridView::dimensionworld; static constexpr bool isBox = FVGridGeometry::discMethod == DiscretizationMethod::box; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; enum { dofCodim = isBox ? dim : 0 }; public: diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh b/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh index ba016cf7c2b2192e2cd01d1c559423aa66726e1a..058e12057210234531710c2be30de7e60bb2a288 100644 --- a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh +++ b/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh @@ -68,7 +68,9 @@ class FuelCellSpatialParams static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; using EffectiveLaw = RegularizedVanGenuchten<Scalar>; diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh index 076d17a322a07b4b5df63e98bd883e70ef752dca..976f38a2313223639b5ee59539cdf4a05034644c 100644 --- a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh +++ b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh @@ -144,7 +144,7 @@ class DissolutionProblem : public PorousMediumFlowProblem<TypeTag> using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector); using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; public: DissolutionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh index 609ad0b14d95ec62fe70541bbd3818a63d97ff9d..d9dd9ea7094ed08b43e3395b438bdda4b246d62e 100644 --- a/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh +++ b/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh @@ -59,19 +59,19 @@ class DissolutionSpatialparams DissolutionSpatialparams<TypeTag>> { using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; using Element = typename GridView::template Codim<0>::Entity; - using ParentType = FVSpatialParams<FVGridGeometry, Scalar, DissolutionSpatialparams<TypeTag>>; - - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using ParentType = FVSpatialParams<FVGridGeometry, Scalar, DissolutionSpatialparams<TypeTag>>; using EffectiveLaw = RegularizedBrooksCorey<Scalar>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; + public: // type used for the permeability (i.e. tensor or scalar) using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh index f152e72d07371b8a1a2d99e910df9e64e2ea5565..dfa381dd2c498eb8c4373e715a686bcae4a27010 100644 --- a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh +++ b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh @@ -132,7 +132,7 @@ class ThreePNIConductionProblem : public PorousMediumFlowProblem<TypeTag> enum { dimWorld = GridView::dimensionworld }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: ThreePNIConductionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh index e00cf8a679358b31b81c63bba569b11b58c3d9cb..f20bc51e9807ef0cc5b7cfba46b7bff8969a9292 100644 --- a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh +++ b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh @@ -134,7 +134,7 @@ class ThreePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag> enum { dimWorld = GridView::dimensionworld }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: ThreePNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/3p/implicit/3pnispatialparams.hh b/test/porousmediumflow/3p/implicit/3pnispatialparams.hh index 52457e2e5d1c0d4433955ad44c2b33cb9b5e161f..fd1f2b7a26558cbb992dd96e326ddcc671cea2e4 100644 --- a/test/porousmediumflow/3p/implicit/3pnispatialparams.hh +++ b/test/porousmediumflow/3p/implicit/3pnispatialparams.hh @@ -58,6 +58,7 @@ class ThreePNISpatialParams ThreePNISpatialParams<TypeTag>> { using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; @@ -65,11 +66,10 @@ class ThreePNISpatialParams using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThreePNISpatialParams<TypeTag>>; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; - using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + public: // export permeability type using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh b/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh index 95738dc4a61792cf1678ff2638c7b70f45d658a1..4d05ab4d9fc6561318180db29930face9d6cc422 100644 --- a/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh +++ b/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh @@ -136,7 +136,8 @@ class InfiltrationThreePProblem : public PorousMediumFlowProblem<TypeTag> using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: /*! diff --git a/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh b/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh index 7bf1200f04a0ab19b0f4c6d2a17d69b8b89807e6..6ba9a579a50e508405ccf7e5ec4b8485ab90b728 100644 --- a/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh +++ b/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh @@ -72,8 +72,7 @@ class InfiltrationThreePSpatialParams using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, InfiltrationThreePSpatialParams<TypeTag>>; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; diff --git a/test/porousmediumflow/3p3c/implicit/columnxylolspatialparams.hh b/test/porousmediumflow/3p3c/implicit/columnxylolspatialparams.hh index 28e9ea67ccbe48550566be92e5904bfcee204a45..bdd69d578316f0927c4ae5a835f113e330f2296e 100644 --- a/test/porousmediumflow/3p3c/implicit/columnxylolspatialparams.hh +++ b/test/porousmediumflow/3p3c/implicit/columnxylolspatialparams.hh @@ -63,11 +63,11 @@ class ColumnSpatialParams using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; + using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ColumnSpatialParams<TypeTag>>; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; diff --git a/test/porousmediumflow/3p3c/implicit/infiltration3p3cproblem.hh b/test/porousmediumflow/3p3c/implicit/infiltration3p3cproblem.hh index 4ec3a95b63d99c55c056ec7d1fc2c3a20ede0e7e..efb56d09952bb3ba74e8df55d20d1a59014af8b0 100644 --- a/test/porousmediumflow/3p3c/implicit/infiltration3p3cproblem.hh +++ b/test/porousmediumflow/3p3c/implicit/infiltration3p3cproblem.hh @@ -125,7 +125,8 @@ class InfiltrationThreePThreeCProblem : public PorousMediumFlowProblem<TypeTag> using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes); using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: /*! diff --git a/test/porousmediumflow/3p3c/implicit/infiltration3p3cspatialparams.hh b/test/porousmediumflow/3p3c/implicit/infiltration3p3cspatialparams.hh index b9e7242a92cfd084c317f296252a5673c5d9c4b2..26f6dd250562a5862952d8e253c261eb6751d1d4 100644 --- a/test/porousmediumflow/3p3c/implicit/infiltration3p3cspatialparams.hh +++ b/test/porousmediumflow/3p3c/implicit/infiltration3p3cspatialparams.hh @@ -65,6 +65,7 @@ class InfiltrationThreePThreeCSpatialParams InfiltrationThreePThreeCSpatialParams<TypeTag>> { using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar); + using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry); using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; @@ -72,11 +73,10 @@ class InfiltrationThreePThreeCSpatialParams using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, InfiltrationThreePThreeCSpatialParams<TypeTag>>; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; - using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; + public: using MaterialLaw = EffToAbsLaw<EffectiveLaw>; using MaterialLawParams = typename MaterialLaw::Params; diff --git a/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh b/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh index 0790059cca6c9a26211ad9f29e49080a562632e8..440fb7148c63b1ad6f59ba99621c5310ccf3b444 100644 --- a/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh +++ b/test/porousmediumflow/3p3c/implicit/kuevetteproblem.hh @@ -140,7 +140,8 @@ class KuevetteProblem : public PorousMediumFlowProblem<TypeTag> using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, GridVolumeVariables)::LocalView; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; + public: /*! * \brief The constructor. diff --git a/test/porousmediumflow/3p3c/implicit/kuevettespatialparams.hh b/test/porousmediumflow/3p3c/implicit/kuevettespatialparams.hh index afb997fdc6869c29f54e1e07247de02611ce216e..fd468c120d040077df0f0e4e86ef6b35030386bd 100644 --- a/test/porousmediumflow/3p3c/implicit/kuevettespatialparams.hh +++ b/test/porousmediumflow/3p3c/implicit/kuevettespatialparams.hh @@ -66,11 +66,12 @@ class KuevetteSpatialParams using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; + using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, KuevetteSpatialParams<TypeTag>>; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using Problem = typename GET_PROP_TYPE(TypeTag, Problem); + using GlobalPosition = typename SubControlVolume::GlobalPosition; using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh index 5926e6a334f7506269335455e0017f19e7fb2412..d72f170d2df25d3751b7033e7addd01cae64dffa 100644 --- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh +++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh @@ -107,7 +107,7 @@ class SagdProblem : public PorousMediumFlowProblem<TypeTag> using Element = typename GridView::template Codim<0>::Entity; using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView; using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh index 93ed14d8d7a6c19d702b34bb75930193683a778a..1a978881e60f229bf0f3f1372726e1731e43b85d 100644 --- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh +++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh @@ -68,12 +68,14 @@ class SagdSpatialParams using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; + + enum { dimWorld=GridView::dimensionworld }; + + using GlobalPosition = typename SubControlVolume::GlobalPosition; + using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, SagdSpatialParams<TypeTag>>; - enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; - using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>; public: diff --git a/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh b/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh index b96be3b363a22366fcdc14518d13ec9e7b6cf144..35349ebf81fb578a52581b2be10a3a8898da83f1 100644 --- a/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh +++ b/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh @@ -76,7 +76,7 @@ class HeterogeneousSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, HeterogeneousSpatialParams<TypeTag>>; enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; using EffectiveLaw = RegularizedBrooksCorey<Scalar>; diff --git a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_problem.hh b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_problem.hh index 041745c311284f21bf664503a3471d2d0e3d04d9..1de1754967925f9e17a6ad44651260eaa0c57364 100644 --- a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_problem.hh +++ b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_problem.hh @@ -112,7 +112,7 @@ class MPNCComparisonProblem enum {p0Idx = Indices::p0Idx}; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; using PhaseVector = Dune::FieldVector<Scalar, numPhases>; static constexpr bool isBox = GET_PROP_TYPE(TypeTag, FVGridGeometry)::discMethod == DiscretizationMethod::box; diff --git a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_spatialparams.hh b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_spatialparams.hh index c29586371fe4bf9f2d4c30fb0db9131807de4f47..1ab97c8afde639b240005454745e719dfe1dd1a5 100644 --- a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_spatialparams.hh +++ b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/mpnc_comparison_spatialparams.hh @@ -69,9 +69,11 @@ class MPNCComparisonSpatialParams using GridView = typename FVGridGeometry::GridView; using FVElementGeometry = typename FVGridGeometry::LocalView; using SubControlVolume = typename FVElementGeometry::SubControlVolume; + using Element = typename GridView::template Codim<0>::Entity; using ParentType = FVSpatialParams<FVGridGeometry, Scalar, MPNCComparisonSpatialParams<TypeTag>>; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + + using GlobalPosition = typename SubControlVolume::GlobalPosition; using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum {liquidPhaseIdx = FluidSystem::liquidPhaseIdx}; diff --git a/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh b/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh index 9e3294fbc54f084dd367306ff0e835502a5c8f60..20fde3b86e5ca03e7834041ab0a45e270ad87661 100644 --- a/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh +++ b/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh @@ -70,7 +70,7 @@ class CombustionSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, CombustionSpatialParams<TypeTag>>; enum {dimWorld = GridView::dimensionworld}; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; using EffectiveLaw = HeatPipeLaw<Scalar>; diff --git a/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh b/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh index e005846c356adfa56f0dc7c05450191f880f891c..5bb4a8685c8e9a2735267fb43b7d45498dbba85d 100644 --- a/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh +++ b/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh @@ -137,7 +137,7 @@ class ObstacleProblem enum { s0Idx = Indices::s0Idx }; enum { p0Idx = Indices::p0Idx }; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; using PhaseVector = Dune::FieldVector<Scalar, numPhases>; public: diff --git a/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh b/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh index 7594610966231c322e38b5a23d3ad9d2668d16ea..3f0d493b4dd2809d37f4b01221aa02be648444a1 100644 --- a/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh +++ b/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh @@ -72,7 +72,7 @@ class ObstacleSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ObstacleSpatialParams<TypeTag>>; enum {dimWorld=GridView::dimensionworld}; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum {liquidPhaseIdx = FluidSystem::liquidPhaseIdx}; diff --git a/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh b/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh index 21dc1d0de8e29aff2e863c53935936268539186a..27898c4251b5e24d723e7dd80ebeb35fcc97428a 100644 --- a/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh +++ b/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh @@ -79,8 +79,9 @@ class PlotOverLine2D dim = GridView::dimension, dimWorld = GridView::dimensionworld, }; + using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: /*! diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh index 6181baa6e8e150a0eece62135b81e699d414172b..f58dd188f826bda62a22d9c96a555e78a18a5f28 100644 --- a/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh +++ b/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh @@ -104,7 +104,8 @@ class RichardsAnalyticalProblem : public PorousMediumFlowProblem<TypeTag> // Grid and world dimension static const int dimWorld = GridView::dimensionworld; static const int dim = GridView::dimension; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using Geometry = typename GridView::template Codim<0>::Entity::Geometry; public: diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh index a7ed4bcdaf47664d11acd35f96044686b7991fff..d09457dcf09eac7f269fdc8e38634bb6bfeb4f7b 100644 --- a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh +++ b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh @@ -69,8 +69,9 @@ class RichardsAnalyticalSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsAnalyticalSpatialParams<TypeTag>>; enum { dimWorld=GridView::dimensionworld }; + using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using EffectiveLaw = LinearMaterial<Scalar>; diff --git a/test/porousmediumflow/richards/implicit/richardslensproblem.hh b/test/porousmediumflow/richards/implicit/richardslensproblem.hh index 38b57f9dc3bb24b35677684d2e5971993444d3f3..637444fbd838abe6d319bba13c0f1ebdd3f84571 100644 --- a/test/porousmediumflow/richards/implicit/richardslensproblem.hh +++ b/test/porousmediumflow/richards/implicit/richardslensproblem.hh @@ -109,8 +109,9 @@ class RichardsLensProblem : public PorousMediumFlowProblem<TypeTag> // world dimension dimWorld = GridView::dimensionworld }; + using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: /*! diff --git a/test/porousmediumflow/richards/implicit/richardslensspatialparams.hh b/test/porousmediumflow/richards/implicit/richardslensspatialparams.hh index 550029891ec8ec4019c0b9c6bdd0184b1fd1b88b..7cb7a8035d9c5f17b2c64cec7c6aea71c23e6f7d 100644 --- a/test/porousmediumflow/richards/implicit/richardslensspatialparams.hh +++ b/test/porousmediumflow/richards/implicit/richardslensspatialparams.hh @@ -66,8 +66,8 @@ class RichardsLensSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsLensSpatialParams<TypeTag>>; enum { dimWorld=GridView::dimensionworld }; - - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using EffectiveLaw = RegularizedVanGenuchten<Scalar>; diff --git a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh index b4c032237583cb55866e271ed79709e46a5d6302..7e170fa0c626f32d16359b92d5f9f1c6488bde08 100644 --- a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh +++ b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh @@ -120,7 +120,7 @@ class RichardsNIConductionProblem :public PorousMediumFlowProblem<TypeTag> using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: RichardsNIConductionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh index 7721e0ad3086b63c40f451f247e2475a55aced1c..26cdba774f7fa0296f18359e5827f110dc1df35a 100644 --- a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh +++ b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh @@ -129,7 +129,7 @@ class RichardsNIConvectionProblem : public PorousMediumFlowProblem<TypeTag> using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: RichardsNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh index fff94fdd65b1a26fc7f73d264c1a70d35f636e02..5a1d89cdd4335e7e133ff5cadcaeec62d2c8a46c 100644 --- a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh +++ b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh @@ -115,7 +115,7 @@ class RichardsNIEvaporationProblem : public PorousMediumFlowProblem<TypeTag> }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; + using GlobalPosition = typename SubControlVolumeFace::GlobalPosition; public: RichardsNIEvaporationProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh index 1158a9f7a9e5c09e0c8faf8667dd3860faaeb3e1..6373c61fd7c290b8a58c787b0b22fedf43b1d2e7 100644 --- a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh +++ b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh @@ -64,10 +64,11 @@ class RichardsNISpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsNISpatialParams<TypeTag>>; enum { dimWorld=GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>; using EffectiveLaw = RegularizedVanGenuchten<Scalar>; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + public: // export permeability type using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/richardsnc/implicit/richardswelltracerproblem.hh b/test/porousmediumflow/richardsnc/implicit/richardswelltracerproblem.hh index 5a9d377404e352ebbf41dc055b0027cc325fe764..405103285152b9b6b62c45fe47021882bf26a845 100644 --- a/test/porousmediumflow/richardsnc/implicit/richardswelltracerproblem.hh +++ b/test/porousmediumflow/richardsnc/implicit/richardswelltracerproblem.hh @@ -116,7 +116,7 @@ class RichardsWellTracerProblem : public PorousMediumFlowProblem<TypeTag> dimWorld = GridView::dimensionworld }; using Element = typename GridView::template Codim<0>::Entity; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; public: /*! diff --git a/test/porousmediumflow/richardsnc/implicit/richardswelltracerspatialparams.hh b/test/porousmediumflow/richardsnc/implicit/richardswelltracerspatialparams.hh index d14fd6f18d5d288550c71269c7f55c8bb9b80325..7fc75701e34a975a04cfa98383d8f53d04d735d4 100644 --- a/test/porousmediumflow/richardsnc/implicit/richardswelltracerspatialparams.hh +++ b/test/porousmediumflow/richardsnc/implicit/richardswelltracerspatialparams.hh @@ -69,8 +69,8 @@ class RichardsWellTracerSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsWellTracerSpatialParams<TypeTag>>; enum { dimWorld=GridView::dimensionworld }; - - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using EffectiveLaw = VanGenuchten<Scalar>; diff --git a/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh b/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh index 26385a884e8f63c05bb5302e72ef1c799305999c..06dd1b679dafc1541fd62b626bc7b72772b070df 100644 --- a/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh +++ b/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh @@ -48,7 +48,7 @@ class OnePTestSpatialParams using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using GlobalPosition = typename SubControlVolume::GlobalPosition; public: using PermeabilityType = Scalar; diff --git a/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh b/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh index ae7c4754294d4de86b52d1532428cc69decc86af..9af64c57290a369210bff8ebf52fc5db00eae5a3 100644 --- a/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh +++ b/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh @@ -145,8 +145,8 @@ class TracerTestProblem : public PorousMediumFlowProblem<TypeTag> //! property that defines whether mole or mass fractions are used static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); - static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: TracerTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeom) diff --git a/test/porousmediumflow/tracer/constvel/tracertestproblem.hh b/test/porousmediumflow/tracer/constvel/tracertestproblem.hh index 1c519d491e6df07b814a4a37a655384a8d13c0d2..b02825cbbdfd6a04a56bef6f211051f3e6a4b2da 100644 --- a/test/porousmediumflow/tracer/constvel/tracertestproblem.hh +++ b/test/porousmediumflow/tracer/constvel/tracertestproblem.hh @@ -170,9 +170,8 @@ class TracerTest : public PorousMediumFlowProblem<TypeTag> //! property that defines whether mole or mass fractions are used static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); - - static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: TracerTest(std::shared_ptr<const FVGridGeometry> fvGridGeom) diff --git a/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh b/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh index ff4374189776c9eb602c09828cc4964bf7b113f2..ad651eb93e2e0b288f38a364a61d72678359d6ac 100644 --- a/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh +++ b/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh @@ -192,8 +192,8 @@ class MaxwellStefanTestProblem : public PorousMediumFlowProblem<TypeTag> //! property that defines whether mole or mass fractions are used static constexpr bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles); - static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: MaxwellStefanTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/tutorial/ex1/injection2p2cproblem.hh b/tutorial/ex1/injection2p2cproblem.hh index a9331eb5e4ffedbdda739b2f80ca32b842484675..57d77ee510d72d44b08253248f69902e987b98b3 100644 --- a/tutorial/ex1/injection2p2cproblem.hh +++ b/tutorial/ex1/injection2p2cproblem.hh @@ -90,7 +90,8 @@ class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: Injection2p2cProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/tutorial/ex1/injection2pniproblem.hh b/tutorial/ex1/injection2pniproblem.hh index 85253bbdc2bed4a825e5562a1050ce3c19fb9564..13e3e48dc91220189d1aca2cd1d5ae4ba2258201 100644 --- a/tutorial/ex1/injection2pniproblem.hh +++ b/tutorial/ex1/injection2pniproblem.hh @@ -92,7 +92,8 @@ class InjectionProblem2PNI : public PorousMediumFlowProblem<TypeTag> using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: InjectionProblem2PNI(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/tutorial/ex1/injection2pproblem.hh b/tutorial/ex1/injection2pproblem.hh index 5e0b2980d6095617d5d85e2c267c19d4fb75dc18..e7952e73a4ade3e96adf7fc82de00eb6524695c6 100644 --- a/tutorial/ex1/injection2pproblem.hh +++ b/tutorial/ex1/injection2pproblem.hh @@ -89,7 +89,8 @@ class InjectionProblem2P : public PorousMediumFlowProblem<TypeTag> using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: InjectionProblem2P(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/tutorial/ex1/injection2pspatialparams.hh b/tutorial/ex1/injection2pspatialparams.hh index da97f6e8b0bc2f3fe895534215a274c21c7f620a..f5e32046a383714740d39a3ab50401136f7dd599 100644 --- a/tutorial/ex1/injection2pspatialparams.hh +++ b/tutorial/ex1/injection2pspatialparams.hh @@ -66,7 +66,8 @@ class InjectionSpatialParams // get the dimensions of the simulation domain from GridView static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/tutorial/ex2/injection2p2cproblem.hh b/tutorial/ex2/injection2p2cproblem.hh index 159466e91bb015a30185a1e1e90c3048aa568fc3..bf16c238c3bee45caef98921ae21d9194477bd07 100644 --- a/tutorial/ex2/injection2p2cproblem.hh +++ b/tutorial/ex2/injection2p2cproblem.hh @@ -103,7 +103,8 @@ class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView; enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: Injection2p2cProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/tutorial/ex2/injection2p2cspatialparams.hh b/tutorial/ex2/injection2p2cspatialparams.hh index 7f77d6d451e2cc3fd9a11134f526899373d84232..de3b93cd943053eac4dfc42eff3d3eefceb8bfaf 100644 --- a/tutorial/ex2/injection2p2cspatialparams.hh +++ b/tutorial/ex2/injection2p2cspatialparams.hh @@ -70,7 +70,8 @@ class InjectionSpatialParams using GridView = typename FVGridGeometry::GridView; static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/tutorial/ex3/2p2cproblem.hh b/tutorial/ex3/2p2cproblem.hh index a6225799182aacdb44a00457a44cd57cfefa2dae..74fce018b0bd12bb3d377afcd9a29f9c7191dca6 100644 --- a/tutorial/ex3/2p2cproblem.hh +++ b/tutorial/ex3/2p2cproblem.hh @@ -87,8 +87,8 @@ class ExerciseThreeProblemTwoPTwoC : public PorousMediumFlowProblem<TypeTag> enum { dim = GridView::dimension, dimWorld = GridView::dimensionworld }; - - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; // Dumux specific types using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; diff --git a/tutorial/ex3/2pproblem.hh b/tutorial/ex3/2pproblem.hh index 0d79a848bfc5a2a15f04f479c8055e77e5761287..c84eea7c87a468a0784b4b9e7defd97571ca51fa 100644 --- a/tutorial/ex3/2pproblem.hh +++ b/tutorial/ex3/2pproblem.hh @@ -107,7 +107,8 @@ class ExerciseThreeProblemTwoP : public PorousMediumFlowProblem<TypeTag> enum { dim = GridView::dimension, dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; // Dumux specific types using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices; diff --git a/tutorial/ex3/spatialparams.hh b/tutorial/ex3/spatialparams.hh index dfdaf89ec54ab9531cd229d3bc9e5ed7d5a61b1e..5bd6ac3da80295f88bdf95d4cda02e8f4e71e904 100644 --- a/tutorial/ex3/spatialparams.hh +++ b/tutorial/ex3/spatialparams.hh @@ -64,7 +64,8 @@ class ExerciseThreeSpatialParams static constexpr int dim = GridView::dimension; static constexpr int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/tutorial/solution/ex1/injection2p2cproblem.hh b/tutorial/solution/ex1/injection2p2cproblem.hh index fad1fdf151ed88f4ed2bbf74d7d9a39658b21f2d..c0096fbda4f0979a163b7fdfbb055b8062a1cbd3 100644 --- a/tutorial/solution/ex1/injection2p2cproblem.hh +++ b/tutorial/solution/ex1/injection2p2cproblem.hh @@ -90,7 +90,8 @@ class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; enum { contiWEqIdx = Indices::conti0EqIdx + FluidSystem::H2OIdx, // water transport equation index diff --git a/tutorial/solution/ex1/injection2pniproblem.hh b/tutorial/solution/ex1/injection2pniproblem.hh index 20fda3e097452508581184fb22f191af71393d45..d804979059f2eedbca655529d1f1d3625d39bb2a 100644 --- a/tutorial/solution/ex1/injection2pniproblem.hh +++ b/tutorial/solution/ex1/injection2pniproblem.hh @@ -88,7 +88,8 @@ class InjectionProblem2PNI : public PorousMediumFlowProblem<TypeTag> using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem); enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; enum { contiWEqIdx = Indices::conti0EqIdx + FluidSystem::H2OIdx, // water transport equation index diff --git a/tutorial/solution/ex1/injection2pspatialparams.hh b/tutorial/solution/ex1/injection2pspatialparams.hh index 7f1d268e1b153c094c8aa618560c17b3e1a1645e..821ce65ca9e6d05d0cdf6bc8bea59bed6e6d48f8 100644 --- a/tutorial/solution/ex1/injection2pspatialparams.hh +++ b/tutorial/solution/ex1/injection2pspatialparams.hh @@ -64,7 +64,8 @@ class InjectionSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>; using GridView = typename FVGridGeometry::GridView; static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type diff --git a/tutorial/solution/ex2/injection2p2cproblem.hh b/tutorial/solution/ex2/injection2p2cproblem.hh index 7ab57db74602f95f0001c8900d726f465b174fb1..785fdf74840213251e88a194de3f0f0c2e3ee609 100644 --- a/tutorial/solution/ex2/injection2p2cproblem.hh +++ b/tutorial/solution/ex2/injection2p2cproblem.hh @@ -102,7 +102,8 @@ class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView; enum { dimWorld = GridView::dimensionworld }; - using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimension>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: Injection2p2cProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry) diff --git a/tutorial/solution/ex2/injection2p2cspatialparams.hh b/tutorial/solution/ex2/injection2p2cspatialparams.hh index 2e4e6efb50f299e81a586565f6bc605d19383670..f019eea3f364960b610cab73780803640cfccdf4 100644 --- a/tutorial/solution/ex2/injection2p2cspatialparams.hh +++ b/tutorial/solution/ex2/injection2p2cspatialparams.hh @@ -68,7 +68,8 @@ class InjectionSpatialParams using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>; using GridView = typename FVGridGeometry::GridView; static const int dimWorld = GridView::dimensionworld; - using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; public: // export permeability type