template<class TypeTag>
class Dumux::BloodFlowProblem< TypeTag >
Exact solution 1D-3D.
|
| BloodFlowProblem (std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< CouplingManager > couplingManager) |
|
template<class ElementSolution > |
Scalar | extrusionFactor (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const |
| Returns how much the domain is extruded at a given sub-control volume. More...
|
|
void | setName (const std::string &newName) |
| Set the problem name. More...
|
|
|
const std::string & | name () const |
| The problem name. More...
|
|
Scalar | temperature () const |
| Returns the temperature within the domain in [K]. More...
|
|
|
BoundaryTypes | boundaryTypesAtPos (const GlobalPosition &globalPos) const |
| Specifies which kind of boundary condition should be used for which equation on a given boundary segment. More...
|
|
PrimaryVariables | dirichletAtPos (const GlobalPosition &globalPos) const |
| Evaluates the boundary conditions for a Dirichlet control volume. More...
|
|
|
void | addPointSources (std::vector< PointSource > &pointSources) const |
| Applies a vector of point sources which are possibly solution dependent. More...
|
|
template<class ElementVolumeVariables , bool enable = (CouplingManager::couplingMode == EmbeddedCouplingMode::kernel), std::enable_if_t<!enable, int > = 0> |
void | pointSource (PointSource &source, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
| Evaluates the point sources (added by addPointSources) for all phases within a given sub-control-volume. More...
|
|
template<class ElementVolumeVariables , bool enable = (CouplingManager::couplingMode == EmbeddedCouplingMode::kernel), std::enable_if_t< enable, int > = 0> |
void | pointSource (PointSource &source, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
| Specialization for kernel method. More...
|
|
template<class MatrixBlock , class VolumeVariables > |
void | addSourceDerivatives (MatrixBlock &block, const Element &element, const FVElementGeometry &fvGeometry, const VolumeVariables &curElemVolVars, const SubControlVolume &scv) const |
|
PrimaryVariables | initialAtPos (const GlobalPosition &globalPos) const |
| Evaluates the initial value for a control volume. More...
|
|
Scalar | exactSolution (const GlobalPosition &globalPos) const |
| The exact pressure solution. More...
|
|
void | computeSourceIntegral (const SolutionVector &sol, const GridVariables &gridVars) |
|
template<class VtkOutputModule > |
void | addVtkOutputFields (VtkOutputModule &vtk) const |
| Adds additional VTK output data to the VTKWriter. More...
|
|
const CouplingManager & | couplingManager () const |
| Get the coupling manager. More...
|
|
|
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...
|
|
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...
|
|
PrimaryVariables | dirichlet (const Element &element, const SubControlVolumeFace &scvf) const |
| Evaluate the boundary conditions for a dirichlet control volume face. More...
|
|
PrimaryVariables | dirichlet (const Element &element, const SubControlVolume &scv) const |
| Evaluate the boundary conditions for a dirichlet control volume. 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...
|
|
NumEqVector | neumannAtPos (const GlobalPosition &globalPos) const |
| Evaluate the boundary conditions for a neumann boundary segment. More...
|
|
NumEqVector | source (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
| Evaluate the source term for all phases within a given sub-control-volume. More...
|
|
NumEqVector | sourceAtPos (const GlobalPosition &globalPos) const |
| Evaluate the source term 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...
|
|
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...
|
|
Scalar | extrusionFactorAtPos (const GlobalPosition &globalPos) const |
| Return how much the domain is extruded at a given position. 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...
|
|
static constexpr bool | enableInternalDirichletConstraints () |
| If internal Dirichlet contraints are enabled Enables / disables internal (non-boundary) Dirichlet constraints. If this is overloaded to return true, the assembler calls problem.hasInternalDirichletConstraint(element, scv). This means you have to implement the following member function. 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...
|
|
template<class TypeTag >
static constexpr bool Dumux::FVProblem< TypeTag >::enableInternalDirichletConstraints |
( |
| ) |
|
|
inlinestaticconstexprinherited |
If internal Dirichlet contraints are enabled Enables / disables internal (non-boundary) Dirichlet constraints. If this is overloaded to return true, the assembler calls problem.hasInternalDirichletConstraint(element, scv). This means you have to implement the following member function.
bool hasInternalDirichletConstraint(const Element& element, const SubControlVolume& scv) const;
which returns a bool signifying whether the dof associated with the element/scv pair is contraint. If true is returned for a dof, the assembler calls problem.internalDiririchlet(element, scv). This means you have to additionally implement the following member function
PrimaryVariables internalDiririchlet(const Element& element, const SubControlVolume& scv) const;
which returns the enforced Dirichlet values the dof associated with the element/scv pair.
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 \).
template<class TypeTag >
template<class ElementVolumeVariables , bool enable = (CouplingManager::couplingMode == EmbeddedCouplingMode::kernel), std::enable_if_t<!enable, int > = 0>
void Dumux::BloodFlowProblem< TypeTag >::pointSource |
( |
PointSource & |
source, |
|
|
const Element & |
element, |
|
|
const FVElementGeometry & |
fvGeometry, |
|
|
const ElementVolumeVariables & |
elemVolVars, |
|
|
const SubControlVolume & |
scv |
|
) |
| const |
|
inline |
Evaluates 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 and requires some quantities that are specific to the fully-implicit method.
- Parameters
-
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 within the element |
For this method, the values() method of the point sources returns the absolute rate mass generated or annihilated in kg/s. Positive values mean that mass is created, negative ones mean that it vanishes.
template<class TypeTag >
void Dumux::FVProblem< TypeTag >::pointSourceAtPos |
( |
PointSource & |
pointSource, |
|
|
const GlobalPosition & |
globalPos |
|
) |
| const |
|
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
- Parameters
-
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 ] \).
template<class TypeTag >
NumEqVector Dumux::FVProblem< TypeTag >::source |
( |
const Element & |
element, |
|
|
const FVElementGeometry & |
fvGeometry, |
|
|
const ElementVolumeVariables & |
elemVolVars, |
|
|
const SubControlVolume & |
scv |
|
) |
| const |
|
inlineinherited |
Evaluate the source term for all phases within a given sub-control-volume.
This is the method for the case where the source term is potentially solution dependent and requires some quantities that are specific to the fully-implicit method.
- Parameters
-
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 return 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)] \).
template<class TypeTag >
NumEqVector Dumux::FVProblem< TypeTag >::sourceAtPos |
( |
const GlobalPosition & |
globalPos | ) |
const |
|
inlineinherited |
Evaluate the source term for all phases within a given sub-control-volume.
- Parameters
-
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)