25#ifndef DUMUX_TRACER_TEST_SPATIAL_PARAMS_HH
26#define DUMUX_TRACER_TEST_SPATIAL_PARAMS_HH
37template<
class Gr
idGeometry,
class Scalar>
38class TracerTestSpatialParams
39:
public FVSpatialParamsOneP<GridGeometry, Scalar,
40 TracerTestSpatialParams<GridGeometry, Scalar>>
42 using GridView =
typename GridGeometry::GridView;
43 using FVElementGeometry =
typename GridGeometry::LocalView;
44 using SubControlVolume =
typename FVElementGeometry::SubControlVolume;
45 using SubControlVolumeFace =
typename FVElementGeometry::SubControlVolumeFace;
46 using Element =
typename GridView::template Codim<0>::Entity;
48 TracerTestSpatialParams<GridGeometry, Scalar>>;
50 static const int dimWorld = GridView::dimensionworld;
51 using GlobalPosition =
typename Dune::FieldVector<Scalar, dimWorld>;
73 template<
class ElementSolution>
75 const SubControlVolume& scv,
76 const ElementSolution& elemSol)
const
84 const SubControlVolume& scv)
const
89 const SubControlVolume& scv)
const
96 GlobalPosition
velocity(
const SubControlVolumeFace& scvf)
const
98 GlobalPosition vel(1e-5);
99 const auto globalPos = scvf.ipGlobal();
100 const auto& x = globalPos[0];
101 const auto& y = globalPos[1];
103 vel[0] *= x*x * (1.0 - x)*(1.0 - x) * (2.0*y - 6.0*y*y + 4.0*y*y*y);
104 vel[1] *= -1.0*y*y * (1.0 - y)*(1.0 - y) * (2.0*x - 6.0*x*x + 4.0*x*x*x);
110 template<
class ElementVolumeVariables>
112 const FVElementGeometry& fvGeometry,
113 const ElementVolumeVariables& elemVolVars,
114 const SubControlVolumeFace& scvf)
const
116 return velocity(scvf) * scvf.unitOuterNormal() * scvf.area()
117 * elemVolVars[fvGeometry.scv(scvf.insideScvIdx())].extrusionFactor();
The base class for spatial parameters of one-phase problems using a fully implicit discretization met...
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
FVSpatialParamsOneP(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: fv1p.hh:91
const GridGeometry & gridGeometry() const
The finite volume grid geometry.
Definition: fv1p.hh:334
Scalar fluidMolarMass(const Element &element, const SubControlVolume &scv) const
Fluid molar mass.
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:88
Scalar dispersivity(const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
Defines the dispersivity.
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:74
GlobalPosition velocity(const SubControlVolumeFace &scvf) const
Velocity field.
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:96
Scalar fluidMolarMass(const GlobalPosition &globalPos) const
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:92
Scalar volumeFlux(const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf) const
Velocity field.
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:111
TracerTestSpatialParams(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:55
Scalar porosityAtPos(const GlobalPosition &globalPos) const
Defines the porosity .
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:63
Scalar fluidDensity(const Element &element, const SubControlVolume &scv) const
Fluid density.
Definition: porousmediumflow/tracer/constvel/spatialparams.hh:83
Defines a type tag and some properties for models using the box scheme.