A test for internal Dirichlet constraints. More...
#include <test/porousmediumflow/1p/implicit/internaldirichlet/problem.hh>
A test for internal Dirichlet constraints.
Public Types | |
using | SpatialParams = GetPropType< TypeTag, Properties::SpatialParams > |
Export spatial parameter type. More... | |
Public Member Functions | |
OnePTestProblemInternalDirichlet (std::shared_ptr< const GridGeometry > gridGeometry) | |
BoundaryTypes | boundaryTypesAtPos (const GlobalPosition &globalPos) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary control volume. More... | |
NeumannValues | neumannAtPos (const GlobalPosition &globalPos) const |
Evaluate the boundary conditions for a neumann boundary segment. More... | |
bool | hasInternalDirichletConstraint (const Element &element, const SubControlVolume &scv) const |
Tag a degree of freedom to carry internal Dirichlet constraints. If true is returned for a dof, the equation for this dof is replaced by the constraint that its primary variable values must match the user-defined values obtained from the function internalDirichlet(), which must be defined in the problem. More... | |
PrimaryVariables | internalDirichlet (const Element &element, const SubControlVolume &scv) const |
Define the values of internal Dirichlet constraints for a degree of freedom. More... | |
const std::string & | name () const |
The problem name. More... | |
const std::string & | name () const |
The problem name. More... | |
BoundaryTypes | boundaryTypes (const Element &element, const SubControlVolumeFace &scvf) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment. More... | |
BoundaryTypes | boundaryTypes (const Element &element, const SubControlVolumeFace &scvf) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment. More... | |
BoundaryTypes | boundaryTypes (const Element &element, const SubControlVolumeFace &scvf) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary control volume. More... | |
NumEqVector | neumann (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVarsCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Evaluates the boundary conditions for a Neumann boundary segment. More... | |
NumEqVector | neumann (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVarsCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Evaluates the boundary conditions for a Neumann boundary segment. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
Scalar | temperature () const |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem. More... | |
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
Evaluates the initial value for a control volume. More... | |
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
Evaluates the initial value for a control volume. More... | |
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
Evaluates the initial conditions. More... | |
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
Evaluates the initial conditions. More... | |
void | addPointSources (std::vector< PointSource > &pointSources) const |
Applies a vector of point sources which are possibly solution dependent. More... | |
void | addPointSources (std::vector< PointSource > &pointSources) const |
Applies a vector of point sources. The point sources are possibly solution dependent. More... | |
NumEqVector | source (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
Evaluates the source term within a sub-control volume. More... | |
Scalar | extrusionFactorAtPos (const GlobalPosition &globalPos) const |
Returns how much the domain is extruded at a given position. More... | |
const GlobalPosition | velocity () const |
Returns the velocity. More... | |
PrimaryVariables | dirichlet (const Element &element, const SubControlVolumeFace &scvf) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
void | setName (const std::string &newName) |
Set the problem name. More... | |
Problem parameters | |
std::string | name () const |
The problem name. More... | |
Scalar | temperature () const |
Returns the temperature within the domain in [K]. More... | |
Boundary conditions | |
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
Evaluates the boundary conditions for a Dirichlet control volume. More... | |
Volume terms | |
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
Evaluates the initial value for a control volume. More... | |
Static Public Member Functions | |
static constexpr bool | enableInternalDirichletConstraints () |
Enable internal Dirichlet constraints. More... | |
static PrimaryVariables | exact (const GlobalPosition &globalPos) |
Returns the exact solution at a position. More... | |
Boundary conditions and sources defining the problem | |
BoundaryTypes | boundaryTypes (const Element &element, const SubControlVolume &scv) const |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment. More... | |
NumEqVector | neumann (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Evaluate the boundary conditions for a neumann boundary segment. More... | |
PrimaryVariables | dirichlet (const Element &element, const SubControlVolume &scv) const |
Evaluate the boundary conditions for a dirichlet control volume. More... | |
NumEqVector | sourceAtPos (const GlobalPosition &globalPos) const |
Evaluate the source term for all phases within a given sub-control-volume. More... | |
void | pointSource (PointSource &source, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
Evaluate the point sources (added by addPointSources) for all phases within a given sub-control-volume. More... | |
void | pointSourceAtPos (PointSource &pointSource, const GlobalPosition &globalPos) const |
Evaluate the point sources (added by addPointSources) for all phases within a given sub-control-volume. More... | |
template<class MatrixBlock > | |
void | addSourceDerivatives (MatrixBlock &block, const Element &element, const FVElementGeometry &fvGeometry, const VolumeVariables &volVars, const SubControlVolume &scv) const |
Add source term derivative to the Jacobian. More... | |
NumEqVector | scvPointSources (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
Adds contribution of point sources for a specific sub control volume to the values. Caution: Only overload this method in the implementation if you know what you are doing. More... | |
void | computePointSourceMap () |
Compute the point source map, i.e. which scvs have point source contributions. More... | |
const PointSourceMap & | pointSourceMap () const |
Get the point source map. It stores the point sources per scv. More... | |
void | applyInitialSolution (SolutionVector &sol) const |
Applies the initial solution for all degrees of freedom of the grid. More... | |
template<class Entity > | |
PrimaryVariables | initial (const Entity &entity) const |
Evaluate the initial value for an element (for cell-centered models) or vertex (for box / vertex-centered models) More... | |
template<class ElementSolution > | |
Scalar | extrusionFactor (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const |
Return how much the domain is extruded at a given sub-control volume. More... | |
const GridGeometry & | fvGridGeometry () const |
The finite volume grid geometry. More... | |
const GridGeometry & | gridGeometry () const |
The finite volume grid geometry. More... | |
const std::string & | paramGroup () const |
The parameter group in which to retrieve runtime parameters. More... | |
Implementation & | asImp_ () |
Returns the implementation of the problem (i.e. static polymorphism) More... | |
const Implementation & | asImp_ () const |
Returns the implementation of the problem (i.e. static polymorphism) More... | |
Physical parameters for porous media problems | |
Scalar | temperatureAtPos (const GlobalPosition &globalPos) const |
Returns the temperature \(\mathrm{[K]}\) at a given global position. More... | |
const GravityVector & | gravityAtPos (const GlobalPosition &pos) const |
Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\). More... | |
const GravityVector & | gravity () const |
Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\). More... | |
SpatialParams & | spatialParams () |
Returns the spatial parameters object. More... | |
const SpatialParams & | spatialParams () const |
Returns the spatial parameters object. More... | |
GravityVector | gravity_ |
The gravity acceleration vector. More... | |
std::shared_ptr< SpatialParams > | spatialParams_ |
|
inherited |
Export spatial parameter type.
|
inline |
|
inlineinherited |
Applies a vector of point sources which are possibly solution dependent.
pointSources | A vector of PointSource s that contain source values for all phases and space positions. |
For this method, the values method of the point source has to return the absolute rate values in units \( [ \textnormal{unit of conserved quantity} / s ] \). Positive values mean that the conserved quantity is created, negative ones mean that it vanishes. E.g. for the mass balance that would be a mass rate in \( [ kg / s ] \).
|
inlineinherited |
Applies a vector of point sources. The point sources are possibly solution dependent.
pointSources | A vector of PointSource s that contain source values for all phases and space positions. |
For this method, the values method of the point source has to return the absolute rate values in units \( [ \textnormal{unit of conserved quantity} / s ] \). Positive values mean that the conserved quantity is created, negative ones mean that it vanishes. E.g. for the mass balance that would be a mass rate in \( [ kg / s ] \).
|
inlineinherited |
Add source term derivative to the Jacobian.
|
inlineinherited |
Applies the initial solution for all degrees of freedom of the grid.
sol | the initial solution vector |
|
inlineprotectedinherited |
Returns the implementation of the problem (i.e. static polymorphism)
|
inlineprotectedinherited |
Returns the implementation of the problem (i.e. static polymorphism)
|
inlineinherited |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment.
element | The finite element |
scv | The sub control volume |
|
inlineinherited |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment.
element | The finite element |
scvf | The sub control volume face |
|
inlineinherited |
Specifies which kind of boundary condition should be used for which equation on a given boundary segment.
element | The finite element |
scvf | The sub control volume face |
|
inlineinherited |
Specifies which kind of boundary condition should be used for which equation on a given boundary control volume.
element | The finite element |
scvf | The sub-control volume face |
|
inline |
Specifies which kind of boundary condition should be used for which equation on a given boundary control volume.
globalPos | The position of the center of the finite volume |
|
inlineinherited |
Compute the point source map, i.e. which scvs have point source contributions.
|
inlineinherited |
Evaluate the boundary conditions for a dirichlet control volume.
element | The finite element |
scv | the sub control volume |
The method returns the boundary types information.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
element | The finite element |
scvf | The sub-control volume face |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume for which it is to be set. |
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlineinherited |
Evaluates the boundary conditions for a Dirichlet control volume.
globalPos | The center of the finite volume which ought to be set. |
For this method, the values parameter stores primary variables.
|
inlinestaticconstexpr |
Enable internal Dirichlet constraints.
|
inlinestaticinherited |
Returns the exact solution at a position.
globalPos | The center of the finite volume for which it is to be set. |
|
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.
|
inlineinherited |
Returns how much the domain is extruded at a given position.
This means the factor by which a lower-dimensional entity needs to be expanded to get a full-dimensional cell.
|
inlineinherited |
The finite volume grid geometry.
|
inlineinherited |
Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\).
This method is used for problems where the gravitational acceleration does not depend on the spatial position. The default behaviour is that if the ProblemEnableGravity
property is true, \(\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \) holds, else \(\boldsymbol{g} = ( 0,\dots, 0)^T \).
|
inlineinherited |
Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\).
This is discretization independent interface. By default it just calls gravity().
|
inlineinherited |
The finite volume grid geometry.
|
inline |
Tag a degree of freedom to carry internal Dirichlet constraints. If true is returned for a dof, the equation for this dof is replaced by the constraint that its primary variable values must match the user-defined values obtained from the function internalDirichlet(), which must be defined in the problem.
element | The finite element |
scv | The sub-control volume |
|
inlineinherited |
Evaluate the initial value for an element (for cell-centered models) or vertex (for box / vertex-centered models)
entity | The dof entity (element or vertex) |
|
inlineinherited |
Evaluates the initial value for a control volume.
globalPos | The global position |
|
inlineinherited |
Evaluates the initial value for a control volume.
globalPos | The global position |
|
inlineinherited |
Evaluates the initial conditions.
globalPos | The center of the finite volume which ought to be set. |
|
inlineinherited |
Evaluates the initial conditions.
globalPos | The center of the finite volume which ought to be set. |
|
inlineinherited |
Evaluates the initial value for a control volume.
For this method, the priVars parameter stores primary variables.
|
inline |
Define the values of internal Dirichlet constraints for a degree of freedom.
element | The finite element |
scv | The sub-control volume |
|
inlineinherited |
The problem name.
|
inlineinherited |
The problem name.
|
inlineinherited |
The problem name.
This is used as a prefix for files generated by the simulation.
|
inlineinherited |
Evaluate the boundary conditions for a neumann boundary segment.
This is the method for the case where the Neumann condition is potentially solution dependent
element | The finite element |
fvGeometry | The finite-volume geometry |
elemVolVars | All volume variables for the element |
elemFluxVarsCache | Flux variables caches for all faces in stencil |
scvf | The sub control volume face |
Negative values mean influx. E.g. for the mass balance that would be the mass flux in \( [ kg / (m^2 \cdot s)] \).
|
inlineinherited |
Evaluates the boundary conditions for a Neumann boundary segment.
This is the method for the case where the Neumann condition is potentially solution dependent.
element | The finite element |
fvGeometry | The finite-volume geometry |
elemVolVars | All volume variables for the element |
elemFluxVarsCache | Flux variables caches for all faces in stencil |
scvf | The sub control volume face |
Negative values mean influx. E.g. for the mass balance that would the mass flux in \( [ kg / (m^2 \cdot s)] \).
|
inlineinherited |
Evaluates the boundary conditions for a Neumann boundary segment.
This is the method for the case where the Neumann condition is potentially solution dependent.
element | The finite element |
fvGeometry | The finite-volume geometry |
elemVolVars | All volume variables for the element |
elemFluxVarsCache | Flux variables caches for all faces in stencil |
scvf | The sub control volume face |
Negative values mean influx. E.g. for the mass balance that would the mass flux in \( [ kg / (m^2 \cdot s)] \).
|
inline |
Evaluate the boundary conditions for a neumann boundary segment.
globalPos | The position of the boundary face's integration point in global coordinates |
Negative values mean influx. E.g. for the mass balance that would be the mass flux in \( [ kg / (m^2 \cdot s)] \).
|
inlineinherited |
The parameter group in which to retrieve runtime parameters.
|
inlineinherited |
Evaluate the point sources (added by addPointSources) for all phases within a given sub-control-volume.
This is the method for the case where the point source is solution dependent
source | A single point source |
element | The finite element |
fvGeometry | The finite-volume geometry |
elemVolVars | All volume variables for the element |
scv | The sub control volume |
For this method, the values() method of the point sources returns the absolute conserved quantity rate generated or annihilate in units \( [ \textnormal{unit of conserved quantity} / s ] \). Positive values mean that the conserved quantity is created, negative ones mean that it vanishes. E.g. for the mass balance that would be a mass rate in \( [ kg / s ] \).
|
inlineinherited |
Evaluate the point sources (added by addPointSources) for all phases within a given sub-control-volume.
This is the method for the case where the point source is space dependent
pointSource | A single point source |
globalPos | The point source position in global coordinates |
For this method, the values() method of the point sources returns the absolute conserved quantity rate generated or annihilate in units \( [ \textnormal{unit of conserved quantity} / s ] \). Positive values mean that the conserved quantity is created, negative ones mean that it vanishes. E.g. for the mass balance that would be a mass rate in \( [ kg / s ] \).
|
inlineinherited |
Get the point source map. It stores the point sources per scv.
|
inlineinherited |
Adds contribution of point sources for a specific sub control volume to the values. Caution: Only overload this method in the implementation if you know what you are doing.
|
inlineinherited |
Set the problem name.
This static method sets the simulation name, which should be called before the application problem is declared! If not, the default name "sim" will be used.
newName | The problem's name |
|
inlineinherited |
Evaluates the source term within a sub-control volume.
element | The finite element |
fvGeometry | The element finite-volume geometry |
elemVolVars | The element volume variables |
scv | The sub-control volume for which the source term is evaluated |
|
inlineinherited |
Evaluate the source term for all phases within a given sub-control-volume.
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 conserved quantity rate generated or annihilate per volume unit. Positive values mean that the conserved quantity is created, negative ones mean that it vanishes. E.g. for the mass balance that would be a mass rate in \( [ kg / (m^3 \cdot s)] \).
As a default, i.e. if the user's problem does not overload any source method return 0.0 (no source terms)
|
inlineinherited |
Returns the spatial parameters object.
|
inlineinherited |
Returns the spatial parameters object.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) for an isothermal problem.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature within the domain in [K].
This problem assumes a temperature of 10 degrees Celsius.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) 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 used.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) at a given global position.
This is not specific to the discretization. By default it just calls temperature().
globalPos | The position in global coordinates where the temperature should be specified. |
|
inlineinherited |
Returns the velocity.
The velocity is given for the case of a linear pressure solution with constant permeablity and without gravity.
|
protectedinherited |
The gravity acceleration vector.
|
protectedinherited |