Two-phase problem featuring some gravity-driven saturation fingers. More...
#include <fingerproblem.hh>
Public Types | |
typedef CopyRestrictProlong < Grid, MaterialLawParamsContainer > | RestrictProlongOperator |
Public Member Functions | |
FingerProblem (Simulator &simulator) | |
Soil parameters | |
template<class Context > | |
Scalar | temperature (const Context &, unsigned, unsigned) const |
template<class Context > | |
const DimMatrix & | intrinsicPermeability (const Context &, unsigned, unsigned) const |
template<class Context > | |
Scalar | porosity (const Context &, unsigned, unsigned) const |
template<class Context > | |
MaterialLawParams & | materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) |
template<class Context > | |
const MaterialLawParams & | materialLawParams (const Context &context, unsigned spaceIdx, unsigned timeIdx) const |
Boundary conditions | |
template<class Context > | |
void | boundary (BoundaryRateVector &values, const Context &context, unsigned spaceIdx, unsigned timeIdx) const |
Evaluate the boundary conditions for a boundary segment. More... | |
Volumetric terms | |
template<class Context > | |
void | initial (PrimaryVariables &values, const Context &, unsigned, unsigned) const |
Evaluate the initial value for a control volume. More... | |
template<class Context > | |
void | constraints (Constraints &constraints, const Context &context, unsigned spaceIdx, unsigned timeIdx) const |
Evaluate the constraints for a control volume. More... | |
template<class Context > | |
void | source (RateVector &rate, const Context &, unsigned, unsigned) const |
Evaluate the source term for all phases within a given sub-control-volume. More... | |
Auxiliary methods | |
RestrictProlongOperator | restrictProlongOperator () |
return restriction and prolongation operator More... | |
std::string | name () const |
The problem name. More... | |
void | finishInit () |
Called by the Ewoms::Simulator in order to initialize the problem. More... | |
void | endTimeStep () |
Called by the simulator after each time integration. More... | |
static void | registerParameters () |
Two-phase problem featuring some gravity-driven saturation fingers.
The domain of this problem is sized 10cm times 1m and is initially dry. Water is then injected at three locations on the top of the domain which leads to gravity fingering. The boundary conditions used are no-flow for the left and right and top of the domain and free-flow at the bottom. This problem uses the Parker-Lenhard hystersis model which might lead to non-monotonic saturation in the fingers if the right material parameters is chosen and the spatial discretization is fine enough.
|
inline |
|
inline |
Evaluate the boundary conditions for a boundary segment.
values | Stores the fluxes over the boundary segment. |
context | The object representing the execution context from which this method is called. |
spaceIdx | The local index of the spatial entity which represents the boundary segment. |
timeIdx | The index used for the time discretization |
|
inline |
Evaluate the constraints for a control volume.
constraints | Stores the values of the primary variables at a given spatial and temporal location. |
context | The object representing the execution context from which this method is called. |
spaceIdx | The local index of the spatial entity which represents the boundary segment. |
timeIdx | The index used for the time discretization |
|
inline |
Called by the simulator after each time integration.
This method is intended to do some post processing of the solution. (e.g., some additional output)
|
inline |
Called by the Ewoms::Simulator in order to initialize the problem.
If you overload this method don't forget to call ParentType::finishInit()
|
inline |
Evaluate the initial value for a control volume.
values | Stores the primary variables. |
context | The object representing the execution context from which this method is called. |
spaceIdx | The local index of the spatial entity which represents the boundary segment. |
timeIdx | The index used for the time discretization |
|
inline |
|
inline |
|
inline |
|
inline |
The problem name.
This is used as a prefix for files generated by the simulation. It is highly recommend to overwrite this method in the concrete problem which is simulated.
|
inline |
|
inlinestatic |
|
inline |
return restriction and prolongation operator
|
inline |
Evaluate the source term for all phases within a given sub-control-volume.
rate | Stores the values of the volumetric creation/anihilition rates of the conserved quantities. |
context | The object representing the execution context from which this method is called. |
spaceIdx | The local index of the spatial entity which represents the boundary segment. |
timeIdx | The index used for the time discretization |
For this problem, the source term of all components is 0 everywhere.
|
inline |