The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a porous medium.
More...
#include <discretefractureproblem.hh>
|
| DiscreteFractureProblem (Simulator &simulator) |
|
template<class Context > |
void | fractureFaceIntrinsicPermeability (DimMatrix &result, const Context &context, int localFaceIdx, int timeIdx) const |
| Returns the intrinsic permeability of a face due to a fracture. More...
|
|
template<class Context > |
const DimMatrix & | fractureIntrinsicPermeability (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the intrinsic permeability tensor at a given position due to a fracture. More...
|
|
template<class Context > |
Scalar | fracturePorosity (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the porosity [] inside fractures for a given control volume. More...
|
|
template<class Context > |
void | intersectionIntrinsicPermeability (DimMatrix &result, const Context &context, int intersectionIdx, int timeIdx) const |
| Returns the intrinsic permeability of an intersection. More...
|
|
void | finishInit () |
| Called by the Ewoms::Simulator in order to initialize the problem. More...
|
|
Scalar | solveTime () const |
| Returns the total wall time spend on solving the system [s]. More...
|
|
Scalar | updateTime () const |
| Returns the total wall time spend on updating the iterative solutions [s]. More...
|
|
template<class Context > |
void | boundary (BoundaryRateVector &values, const Context &context, int spaceIdx, int timeIdx) const |
| Evaluate the boundary conditions for a boundary segment. More...
|
|
template<class Context > |
void | constraints (Constraints &constraints, const Context &context, int spaceIdx, int timeIdx) const |
| Evaluate the constraints for a control volume. More...
|
|
template<class Context > |
void | source (RateVector &rate, const Context &context, int spaceIdx, int timeIdx) const |
| Evaluate the source term for all phases within a given sub-control-volume. More...
|
|
template<class Context > |
void | initial (PrimaryVariables &values, const Context &context, int spaceIdx, int timeIdx) const |
| Evaluate the initial value for a control volume. More...
|
|
template<class Context > |
Scalar | extrusionFactor (const Context &context, int spaceIdx, int timeIdx) const |
| Return how much the domain is extruded at a given sub-control volume. More...
|
|
Scalar | extrusionFactor () const |
|
void | initialSolutionApplied () |
| Callback used by the model to indicate that the initial solution has been determined for all degrees of freedom. More...
|
|
void | beginEpisode () |
| Called at the beginning of an simulation episode. More...
|
|
void | beginTimeStep () |
| Called by the simulator before each time integration. More...
|
|
void | beginIteration () |
| Called by the simulator before each Newton-Raphson iteration. More...
|
|
void | endIteration () |
| Called by the simulator after each Newton-Raphson update. More...
|
|
void | endTimeStep () |
| Called by the simulator after each time integration. More...
|
|
void | endEpisode () |
| Called when the end of an simulation episode is reached. More...
|
|
void | finalize () |
| Called after the simulation has been run sucessfully. More...
|
|
void | timeIntegration () |
| Called by Ewoms::Simulator in order to do a time integration on the model. More...
|
|
Scalar | nextTimeStepSize () |
| Called by Ewoms::Simulator whenever a solution for a time step has been computed and the simulation time has been updated. More...
|
|
bool | shouldWriteRestartFile () const |
| Returns true if a restart file should be written to disk. More...
|
|
bool | shouldWriteOutput () const |
| Returns true if the current solution should be written to disk (i.e. as a VTK file) More...
|
|
void | advanceTimeLevel () |
| Called by the simulator after everything which can be done about the current time step is finished and the model should be prepared to do the next time integration. More...
|
|
std::string | name () const |
| The problem name. More...
|
|
const GridView & | gridView () const |
| The GridView which used by the problem. More...
|
|
const GlobalPosition & | boundingBoxMin () const |
| The coordinate of the corner of the GridView's bounding box with the smallest values. More...
|
|
const GlobalPosition & | boundingBoxMax () const |
| The coordinate of the corner of the GridView's bounding box with the largest values. More...
|
|
const VertexMapper & | vertexMapper () const |
| Returns the mapper for vertices to indices. More...
|
|
const ElementMapper & | elementMapper () const |
| Returns the mapper for elements to indices. More...
|
|
Simulator & | simulator () |
| Returns Simulator object used by the simulation. More...
|
|
const Simulator & | simulator () const |
| Returns Simulator object used by the simulation. More...
|
|
Model & | model () |
| Returns numerical model used for the problem. More...
|
|
const Model & | model () const |
| Returns numerical model used for the problem. More...
|
|
NewtonMethod & | newtonMethod () |
| Returns object which implements the Newton method. More...
|
|
const NewtonMethod & | newtonMethod () const |
| Returns object which implements the Newton method. More...
|
|
template<class Restarter > |
void | serialize (Restarter &res) |
| This method writes the complete state of the problem to the harddisk. More...
|
|
template<class Restarter > |
void | deserialize (Restarter &res) |
| This method restores the complete state of the problem from disk. More...
|
|
void | writeOutput (bool verbose=true) |
| Write the relevant secondary variables of the current solution into an VTK output file. More...
|
|
VtkMultiWriter & | defaultVtkWriter () const |
| Method to retrieve the VTK writer which should be used to write the default ouput after each time step to disk. More...
|
|
|
template<class Context > |
const DimMatrix & | intrinsicPermeability (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the intrinsic permeability tensor at a given position. More...
|
|
template<class Context > |
Scalar | porosity (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the porosity [] of the porous medium for a given control volume. More...
|
|
template<class Context > |
Scalar | heatCapacitySolid (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the heat capacity [J/(K m^3)] of the solid phase with no pores in the sub-control volume. More...
|
|
template<class Context > |
const HeatConductionLawParams & | heatConductionParams (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the parameter object for the heat conductivity law in a sub-control volume. More...
|
|
template<class Context > |
Scalar | tortuosity (const Context &context, int spaceIdx, int timeIdx) const |
| Define the tortuosity. More...
|
|
template<class Context > |
Scalar | dispersivity (const Context &context, int spaceIdx, int timeIdx) const |
| Define the dispersivity. More...
|
|
template<class Context > |
const MaterialLawParams & | materialLawParams (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the material law parameters within a control volume. More...
|
|
template<class Context > |
Scalar | temperature (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the temperature within a control volume. More...
|
|
Scalar | temperature () const |
| Returns the temperature for an isothermal problem. More...
|
|
template<class Context > |
const DimVector & | gravity (const Context &context, int spaceIdx, int timeIdx) const |
| Returns the acceleration due to gravity . More...
|
|
const DimVector & | gravity () const |
| Returns the acceleration due to gravity . More...
|
|
|
DimMatrix | toDimMatrix_ (Scalar val) const |
| Converts a Scalar value to an isotropic Tensor. More...
|
|
template<class TypeTag>
class Ewoms::DiscreteFractureProblem< TypeTag >
The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a porous medium.
Called by the simulator after everything which can be done about the current time step is finished and the model should be prepared to do the next time integration.
References Ewoms::FvBaseProblem< TypeTag >::model().
Called at the beginning of an simulation episode.
Called by the simulator before each Newton-Raphson iteration.
Called by the simulator before each time integration.
template<class TypeTag >
template<class Context >
void Ewoms::FvBaseProblem< TypeTag >::boundary |
( |
BoundaryRateVector & |
values, |
|
|
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Evaluate the boundary conditions for a boundary segment.
- Parameters
-
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 |
The coordinate of the corner of the GridView's bounding box with the largest values.
The coordinate of the corner of the GridView's bounding box with the smallest values.
template<class TypeTag >
template<class Context >
void Ewoms::FvBaseProblem< TypeTag >::constraints |
( |
Constraints & |
constraints, |
|
|
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Evaluate the constraints for a control volume.
- Parameters
-
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 |
Method to retrieve the VTK writer which should be used to write the default ouput after each time step to disk.
template<class TypeTag >
template<class Restarter >
template<class TypeTag >
template<class Context >
Define the dispersivity.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
Returns the mapper for elements to indices.
Called by the simulator after each Newton-Raphson update.
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)
template<class TypeTag >
template<class Context >
Scalar Ewoms::FvBaseProblem< TypeTag >::extrusionFactor |
( |
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Return how much the domain is extruded at a given sub-control volume.
This means the factor by which a lower-dimensional (1D or 2D) entity needs to be expanded to get a full dimensional cell. The default is 1.0 which means that 1D problems are actually thought as pipes with a cross section of 1 m^2 and 2D problems are assumed to extend 1 m to the back.
- Parameters
-
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 |
Called by the Ewoms::Simulator in order to initialize the problem.
If you overload this method don't forget to call ParentType::finishInit()
template<class TypeTag >
template<class Context >
void Ewoms::DiscreteFractureProblem< TypeTag >::fractureFaceIntrinsicPermeability |
( |
DimMatrix & |
result, |
|
|
const Context & |
context, |
|
|
int |
localFaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inline |
Returns the intrinsic permeability of a face due to a fracture.
This method is specific to the finite volume discretizations. If left unspecified, it calls the intrinsicPermeability() methods for the face's interior and exterior finite volume and averages them harmonically. Note that if this function is defined, the intrinsicPermeability() method does not need to be defined by the problem (if a finite-volume discretization is used).
template<class TypeTag >
template<class Context >
const DimMatrix& Ewoms::DiscreteFractureProblem< TypeTag >::fractureIntrinsicPermeability |
( |
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inline |
Returns the intrinsic permeability tensor at a given position due to a fracture.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Context >
Returns the porosity [] inside fractures for a given control volume.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Context >
Returns the acceleration due to gravity .
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
Returns the acceleration due to gravity .
This method is used for problems where the gravitational acceleration does not depend on the spatial position. The default behaviour is that if the EnableGravity property is true, holds, else .
References Ewoms::MultiPhaseBaseProblem< TypeTag >::gravity_.
template<class TypeTag >
template<class Context >
Returns the heat capacity [J/(K m^3)] of the solid phase with no pores in the sub-control volume.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Context >
const HeatConductionLawParams& Ewoms::MultiPhaseBaseProblem< TypeTag >::heatConductionParams |
( |
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Returns the parameter object for the heat conductivity law in a sub-control volume.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Context >
void Ewoms::FvBaseProblem< TypeTag >::initial |
( |
PrimaryVariables & |
values, |
|
|
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Evaluate the initial value for a control volume.
- Parameters
-
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 |
Callback used by the model to indicate that the initial solution has been determined for all degrees of freedom.
template<class TypeTag >
template<class Context >
void Ewoms::MultiPhaseBaseProblem< TypeTag >::intersectionIntrinsicPermeability |
( |
DimMatrix & |
result, |
|
|
const Context & |
context, |
|
|
int |
intersectionIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Returns the intrinsic permeability of an intersection.
This method is specific to the finite volume discretizations. If left unspecified, it calls the intrinsicPermeability() method for the intersection's interior and exterior finite volumes and averages them harmonically. Note that if this function is defined, the intrinsicPermeability() method does not need to be defined by the problem (if a finite-volume discretization is used).
template<class TypeTag >
template<class Context >
const DimMatrix& Ewoms::MultiPhaseBaseProblem< TypeTag >::intrinsicPermeability |
( |
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Returns the intrinsic permeability tensor at a given position.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Context >
const MaterialLawParams& Ewoms::MultiPhaseBaseProblem< TypeTag >::materialLawParams |
( |
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Returns the material law parameters within a control volume.
If you get a compiler error at this method, you set the MaterialLaw property to something different than Opm::NullMaterialLaw. In this case, you have to overload the matererialLaw() method in the derived class!
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Context >
Returns the porosity [] of the porous medium for a given control volume.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
template<class TypeTag >
template<class Restarter >
Returns true if the current solution should be written to disk (i.e. as a VTK file)
The default behavior is to write out the solution for every time step. This method is should be overwritten by the implementation if the default behavior is deemed insufficient.
Returns Simulator object used by the simulation.
Returns the total wall time spend on solving the system [s].
template<class TypeTag >
template<class Context >
void Ewoms::FvBaseProblem< TypeTag >::source |
( |
RateVector & |
rate, |
|
|
const Context & |
context, |
|
|
int |
spaceIdx, |
|
|
int |
timeIdx |
|
) |
| const |
|
inlineinherited |
Evaluate the source term for all phases within a given sub-control-volume.
- Parameters
-
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 |
template<class TypeTag >
template<class Context >
Returns the temperature within a control volume.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
Returns the temperature for an isothermal problem.
This is not specific to the discretization. By default it just throws an exception so it must be overloaded by the problem if no energy equation is to be used.
Converts a Scalar value to an isotropic Tensor.
This is convenient e.g. for specifying intrinsic permebilities: - Parameters
-
val | The scalar value which should be expressed as a tensor |
template<class TypeTag >
template<class Context >
Define the tortuosity.
- Parameters
-
context | Reference to the object which represents the current execution context. |
spaceIdx | The local index of spatial entity defined by the context |
timeIdx | The index used by the time discretization. |
Returns the total wall time spend on updating the iterative solutions [s].
Returns the mapper for vertices to indices.
The documentation for this class was generated from the following file:
|