test problem for diffusion models from the FVCA5 benchmark. More...
#include <test/porousmediumflow/1p/sequential/test_diffusionproblem.hh>
test problem for diffusion models from the FVCA5 benchmark.
The problem corresponds to Test 2 of the FVCA5 benchmark session, http://www.latp.univ-mrs.fr/fvca5/benchmark/index.html.
Public Types | |
using | SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes) |
using | PrimaryVariables = typename SolutionTypes::PrimaryVariables |
using | ScalarSolution = typename SolutionTypes::ScalarSolution |
Public Member Functions | |
TestDiffusionProblem (Grid &grid) | |
void | init () |
for this specific problem: initialize the saturation and afterwards the model More... | |
void | boundaryTypes (BoundaryTypes &bcTypes, const Intersection &intersection) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment. More... | |
void | boundaryTypesAtPos (BoundaryTypes &bcTypes, const GlobalPosition &globalPos) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment. More... | |
void | dirichlet (PrimaryVariables &values, const Intersection &intersection) const |
Evaluate the boundary conditions for a dirichlet control volume. More... | |
void | dirichletAtPos (PrimaryVariables &values, const GlobalPosition &globalPos) const |
Evaluate the boundary conditions for a dirichlet control volume. More... | |
void | neumann (PrimaryVariables &values, const Intersection &intersection) const |
Evaluate the boundary conditions for a neumann boundary segment. More... | |
void | neumannAtPos (PrimaryVariables &values, const GlobalPosition &globalPos) const |
Evaluate the boundary conditions for a neumann boundary segment. More... | |
void | sourceAtPos (PrimaryVariables &values, const GlobalPosition &globalPos) const |
Evaluate the source term for all phases within a given sub-control-volume. More... | |
void | initial (PrimaryVariables &values, const Element &element) const |
Evaluate the initial value for a control volume. More... | |
void | initialAtPos (PrimaryVariables &values, const GlobalPosition &globalPos) const |
Evaluate the initial value for a control volume. More... | |
void | preTimeStep () |
Called by TimeManager just before the time integration. More... | |
void | postTimeStep () |
Called by TimeManager whenever a solution for a timestep has been computed and the simulation time has been updated. More... | |
void | advanceTimeLevel () |
Called by the time manager 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... | |
Scalar | maxTimeStepSize () const |
Returns the user specified maximum time step size. More... | |
Scalar | timeStepSize () const |
Returns the current time step size [seconds]. More... | |
void | setTimeStepSize (Scalar dt) |
Sets the current time step size [seconds]. More... | |
Scalar | nextTimeStepSize (Scalar dt) |
Called by TimeManager whenever a solution for a timestep has been computed and the simulation time has been updated. More... | |
void | setOutputTimeInterval (const Scalar timeInterval) |
Sets a time interval for Output. More... | |
void | setOutputInterval (int interval) |
Sets the interval for Output. More... | |
bool | shouldWriteOutput () const |
Returns true if the current solution should be written to disk (i.e. as a VTK file) More... | |
void | writeOutput (bool verbose=true) |
Write the fields current solution into an VTK output file. More... | |
void | episodeEnd () |
Called when the end of an simulation episode is reached. More... | |
const std::string & | name () const |
The problem name. More... | |
void | setName (const std::string &newName) |
Set the problem name. More... | |
const GridView & | gridView () const |
The GridView which used by the problem. 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... | |
const GlobalPosition & | bBoxMin () const |
The coordinate of the corner of the GridView's bounding box with the smallest values. More... | |
const GlobalPosition & | bBoxMax () const |
The coordinate of the corner of the GridView's bounding box with the largest values. More... | |
TimeManager & | timeManager () |
Returns TimeManager object used by the simulation. More... | |
const TimeManager & | timeManager () const |
Returns TimeManager object used by the simulation. More... | |
Variables & | variables () |
Returns variables object. More... | |
const Variables & | variables () const |
Returns variables object. More... | |
Model & | model () |
Returns numerical model used for the problem. More... | |
const Model & | model () const |
Returns numerical model used for the problem. More... | |
Problem parameters | |
void | timeIntegration () |
Time integration function called by the time manager. More... | |
Scalar | temperature (const Element &element) const |
Returns the temperature within the domain. More... | |
Scalar | referencePressure (const Element &element) const |
Returns the reference pressure for evaluation of constitutive relations. More... | |
const GravityVector & | gravity () const |
Returns the acceleration due to gravity. More... | |
SpatialParams & | spatialParams () |
Returns the spatial parameters object. More... | |
const SpatialParams & | spatialParams () const |
Returns the spatial parameters object. More... | |
PressureModel & | pressureModel () |
Returns the pressure model used for the problem. More... | |
const PressureModel & | pressureModel () const |
Returns the pressure model used for the problem. // TODO doc me! More... | |
Problem parameters | |
bool | shouldWriteRestartFile () const |
void | calculateFVVelocity () |
void | addOutputVtkFields () |
Scalar | temperatureAtPos (const GlobalPosition &globalPos) const |
Returns the temperature within the domain. More... | |
Scalar | referencePressureAtPos (const GlobalPosition &globalPos) const |
Returns the reference pressure for evaluation of constitutive relations. More... | |
void | source (PrimaryVariables &values, const Element &element) const |
void | boundaryTypesAtPos (BoundaryTypes &bcTypes, const GlobalPosition &globalPos) const |
Returns the type of boundary condition. More... | |
void | dirichletAtPos (PrimaryVariables &values, const GlobalPosition &globalPos) const |
set dirichlet condition (saturation [-]) More... | |
void | neumannAtPos (PrimaryVariables &values, const GlobalPosition &globalPos) const |
set neumann condition for phases (flux, [kg/(m^2 s)]) More... | |
Scalar | exact (const GlobalPosition &globalPos) const |
Dune::FieldVector< Scalar, dim > | exactGrad (const GlobalPosition &globalPos) const |
Restart mechanism | |
void | serialize () |
This method writes the complete state of the problem to the harddisk. More... | |
void | restart (double tRestart) |
This method restores the complete state of the problem from disk. More... | |
VtkMultiWriter & | resultWriter () |
VtkMultiWriter & | resultWriter () const |
using Dumux::TestDiffusionProblem< TypeTag >::PrimaryVariables = typename SolutionTypes::PrimaryVariables |
using Dumux::TestDiffusionProblem< TypeTag >::ScalarSolution = typename SolutionTypes::ScalarSolution |
using Dumux::TestDiffusionProblem< TypeTag >::SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes) |
|
inline |
|
inline |
|
inlineinherited |
Called by the time manager 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.
|
inlineinherited |
The coordinate of the corner of the GridView's bounding box with the largest values.
|
inlineinherited |
The coordinate of the corner of the GridView's bounding box with the smallest values.
|
inlineinherited |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment.
bcTypes | The boundary types for the conservation equations |
intersection | The intersection for which the boundary type is set |
|
inlineinherited |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment.
bcTypes | The boundary types for the conservation equations |
globalPos | The position of the center of the boundary intersection |
|
inline |
Returns the type of boundary condition.
BC for saturation equation can be dirichlet (saturation), neumann (flux), or outflow.
|
inline |
|
inlineinherited |
Evaluate the boundary conditions for a dirichlet control volume.
values | The dirichlet values for the primary variables |
intersection | The boundary intersection |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluate the boundary conditions for a dirichlet control volume.
values | The dirichlet values for the primary variables |
globalPos | The position of the center of the boundary intersection |
For this method, the values parameter stores primary variables.
|
inline |
set dirichlet condition (saturation [-])
|
inlineinherited |
Returns the mapper for elements to indices.
|
inlineinherited |
Called when the end of an simulation episode is reached.
|
inline |
|
inline |
|
inlineinherited |
Returns the acceleration due to gravity.
If the EnableGravity
property is true, this means \(\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \), else \(\boldsymbol{g} = ( 0,\dots, 0)^T \)
|
inlineinherited |
The GridView which used by the problem.
|
inline |
for this specific problem: initialize the saturation and afterwards the model
|
inlineinherited |
Evaluate the initial value for a control volume.
values | The initial values for the primary variables |
element | The element |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluate the initial value for a control volume.
values | The dirichlet values for the primary variables |
globalPos | The position of the center of the finite volume for which the initial values ought to be set (in global coordinates) |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Returns the user specified maximum time step size.
Overload in problem for custom needs.
|
inlineinherited |
Returns numerical model used for the problem.
|
inlineinherited |
Returns numerical model used for the problem.
|
inlineinherited |
The problem name.
This is used as a prefix for files generated by the simulation. It could be either overwritten by the problem files, or simply declared over the setName() function in the application file.
|
inlineinherited |
Evaluate the boundary conditions for a neumann boundary segment.
values | The neumann values for the conservation equations [kg / (m^2 *s )] |
intersection | The boundary intersection |
For this method, the values parameter stores the mass flux in normal direction of each phase. Negative values mean influx.
|
inlineinherited |
Evaluate the boundary conditions for a neumann boundary segment.
values | The neumann values for the conservation equations [kg / (m^2 *s )] |
globalPos | The position of the center of the boundary intersection |
For this method, the values parameter stores the mass flux in normal direction of each phase. Negative values mean influx.
|
inline |
set neumann condition for phases (flux, [kg/(m^2 s)])
|
inlineinherited |
Called by TimeManager whenever a solution for a timestep has been computed and the simulation time has been updated.
|
inlineinherited |
Called by TimeManager whenever a solution for a timestep has been computed and the simulation time has been updated.
This is used to do some janitorial tasks like writing the current solution to disk.
|
inlineinherited |
Returns the pressure model used for the problem.
|
inlineinherited |
Returns the pressure model used for the problem. // TODO doc me!
// TODO doc me!
|
inlineinherited |
Called by TimeManager just before the time integration.
|
inlineinherited |
Returns the reference pressure for evaluation of constitutive relations.
element | The element |
|
inline |
Returns the reference pressure for evaluation of constitutive relations.
|
inlineinherited |
This method restores the complete state of the problem from disk.
It is the inverse of the serialize() method.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
Set the problem name.
This function sets the simulation name, which should be called before the application problem is declared! If not, the default name "sim" will be used.
|
inlineinherited |
Sets the interval for Output.
The default is 1 -> Output every time step
|
inlineinherited |
Sets a time interval for Output.
The default is 0.0 -> Output determined by output number interval (setOutputInterval(int)
)
|
inlineinherited |
Sets the current time step size [seconds].
|
inlineinherited |
Returns true if the current solution should be written to disk (i.e. as a VTK file)
The default behaviour is to write out every the solution for very time step. This file is intented to be overwritten by the implementation.
|
inline |
|
inline |
|
inlineinherited |
Evaluate the source term for all phases within a given sub-control-volume.
values | The source and sink values for the conservation equations |
globalPos | The position of the center of the finite volume for which the source term ought to be specified in global coordinates |
For this method, the values parameter stores the rate mass generated or annihilate per volume unit. Positive values mean that mass is created, negative ones mean that it vanishes.
|
inlineinherited |
Returns the spatial parameters object.
|
inlineinherited |
Returns the spatial parameters object.
|
inlineinherited |
Returns the temperature within the domain.
element | The element |
|
inline |
Returns the temperature within the domain.
This problem assumes a temperature of 10 degrees Celsius.
|
inlineinherited |
Time integration function called by the time manager.
For stationary diffusion problems this function just finishes the simulation.
|
inlineinherited |
Returns TimeManager object used by the simulation.
|
inlineinherited |
Returns TimeManager object used by the simulation.
|
inlineinherited |
Returns the current time step size [seconds].
|
inlineinherited |
Returns variables object.
|
inlineinherited |
Returns variables object.
|
inlineinherited |
Returns the mapper for vertices to indices.
|
inlineinherited |
Write the fields current solution into an VTK output file.