28#ifndef DUMUX_INJECTION_PROBLEM_2PNI_HH
29#define DUMUX_INJECTION_PROBLEM_2PNI_HH
32#include <dune/alugrid/grid.hh>
35#include <dune/grid/uggrid.hh>
37#include <dune/grid/yaspgrid.hh>
53#define GRIDTYPE Dune::YaspGrid<2>
59template <
class TypeTag>
class InjectionProblem2PNI;
70template<
class TypeTag>
74template<
class TypeTag>
78template<
class TypeTag>
82template<
class TypeTag>
120template<
class TypeTag>
126 using Element =
typename GridView::template Codim<0>::Entity;
127 using GlobalPosition =
typename Element::Geometry::GlobalCoordinate;
136 pressureIdx = Indices::pressureIdx,
137 saturationIdx = Indices::saturationIdx,
138 temperatureIdx = Indices::temperatureIdx,
141 contiN2EqIdx = Indices::conti0EqIdx + FluidSystem::N2Idx,
142 energyEqIdx = Indices::energyEqIdx,
145 wPhaseIdx = FluidSystem::H2OIdx,
146 nPhaseIdx = FluidSystem::N2Idx,
149 dimWorld = GridView::dimensionworld
157 using SubControlVolumeFace =
typename FVElementGeometry::SubControlVolumeFace;
167 FluidSystem::init(273.15,
174 name_ = getParam<std::string>(
"Problem.Name");
197 NumEqVector values(0.0);
217 BoundaryTypes values;
218 if (globalPos[0] < eps_)
219 values.setAllDirichlet();
221 values.setAllNeumann();
233 PrimaryVariables values;
234 Scalar densityW = 1000.0;
235 values[pressureIdx] = 1e5 + (maxDepth_ - globalPos[dimWorld-1])*densityW*9.81;
236 values[saturationIdx] = 0.0;
237 values[temperatureIdx] = 283.0 + (maxDepth_ - globalPos[dimWorld-1])*0.03;
251 NumEqVector values(0.0);
253 if (globalPos[1] < 13.75 + eps_ && globalPos[1] > 6.875 - eps_)
256 values[contiN2EqIdx] = -1e-3;
263 fs.setPressure(wPhaseIdx, initialValues[pressureIdx]);
264 fs.setPressure(nPhaseIdx, initialValues[pressureIdx]);
265 fs.setTemperature(wPhaseIdx,initialValues[temperatureIdx]);
266 fs.setTemperature(nPhaseIdx,initialValues[temperatureIdx]);
269 values[energyEqIdx] = values[contiN2EqIdx]*FluidSystem::enthalpy(fs, nPhaseIdx);
290 PrimaryVariables values;
291 Scalar densityW = 1000.0;
292 values[pressureIdx] = 1e5 + (maxDepth_ - globalPos[1])*densityW*9.81;
293 values[saturationIdx] = 0.0;
294 values[temperatureIdx] = 283.0 + (maxDepth_ - globalPos[1])*0.03;
296 if (globalPos[0] > 21.25 - eps_ && globalPos[0] < 28.75 + eps_ && globalPos[1] > 6.25 - eps_ && globalPos[1] < 33.75 + eps_)
297 values[temperatureIdx] = 380;
305 static constexpr Scalar eps_ = 1.5e-7;
Defines a type tag and some properties for models using the box scheme.
Properties for all models using cell-centered finite volume scheme with TPFA.
Properties of pure molecular nitrogen .
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
Property tag Indices
Definition: porousmediumflow/sequential/properties.hh:59
Base class for all finite-volume problems.
Definition: common/fvproblem.hh:50
const GridGeometry & gridGeometry() const
The finite volume grid geometry.
Definition: common/fvproblem.hh:588
The DUNE grid type.
Definition: common/properties.hh:57
Property to specify the type of a problem which has to be solved.
Definition: common/properties.hh:69
The type of the spatial parameters object.
Definition: common/properties.hh:221
The type of the fluid system to use.
Definition: common/properties.hh:223
Policy for the H2O-N2 fluid system.
Definition: h2on2.hh:52
A two-phase fluid system with two components water Nitrogen for non-equilibrium models.
Definition: h2on2.hh:69
Base class for all fully implicit porous media problems.
Definition: dumux/porousmediumflow/problem.hh:39
Forward declaration of the problem class.
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:122
BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
Specifies which kind of boundary condition should be used for which equation on a given boundary segm...
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:215
PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const
Evaluates the initial values for a control volume.
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:288
PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const
Evaluates the boundary conditions for a Dirichlet boundary segment.
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:231
const std::string name() const
Returns the problem name.
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:187
NumEqVector neumannAtPos(const GlobalPosition &globalPos) const
Evaluates the boundary conditions for a Neumann boundary segment.
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:249
NumEqVector sourceAtPos(const GlobalPosition &globalPos) const
Returns the source term.
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:195
InjectionProblem2PNI(std::shared_ptr< const GridGeometry > gridGeometry)
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:161
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:64
std::tuple< TwoPNI > InheritsFrom
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:64
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:65
std::tuple< Injection2PNITypeTag, BoxModel > InheritsFrom
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:65
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:66
std::tuple< Injection2PNITypeTag, CCTpfaModel > InheritsFrom
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:66
GRIDTYPE type
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:71
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:86
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:85
Definition of the spatial parameters for the injection problem which uses the isothermal two-phase tw...
Definition: porousmediumflow/2p2c/implicit/injection/spatialparams.hh:45
Declares all properties used in Dumux.
Adaption of the fully implicit scheme to the two-phase flow model.
Base class for all porous media problems.
#define GRIDTYPE
Definition: test/porousmediumflow/2p/implicit/nonisothermal/problem.hh:53
Definition of the spatial parameters for the injection problem which uses the isothermal two-phase tw...