The element-wise residual for control-volume finite element schemes. More...
#include <dumux/assembly/cvfelocalresidual.hh>
The element-wise residual for control-volume finite element schemes.
TypeTag | the TypeTag |
Public Types | |
using | ElementResidualVector = typename ParentType::ElementResidualVector |
Public Member Functions | |
void | evalFlux (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
evaluate flux residuals for one sub control volume face and add to residual More... | |
NumEqVector | evalFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
evaluate flux residuals for one sub control volume face More... | |
void | evalStorage (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More... | |
ElementResidualVector | evalStorage (const Problem &problem, const Element &element, const GridGeometry &gridGeometry, const GridVariables &gridVariables, const SolutionVector &sol) const |
Compute the storage term for the current solution. More... | |
ElementResidualVector | evalStorage (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars) const |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More... | |
void | evalStorage (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More... | |
Main interface | |
| |
ElementResidualVector | evalStorage (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars) const |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More... | |
ElementResidualVector | evalFluxAndSource (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const ElementBoundaryTypes &bcTypes) const |
Discretization specific interface | |
| |
void | evalStorage (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &prevElemVolVars, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems. More... | |
void | evalSource (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const SubControlVolume &scv) const |
Compute the source local residual, i.e. the deviation of the source term from zero. More... | |
void | evalFlux (ElementResidualVector &residual, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementBoundaryTypes &elemBcTypes, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Compute the flux local residual, i.e. the deviation of the flux term from zero. More... | |
NumEqVector | evalFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Compute the flux local residual, i.e. the deviation of the flux term from zero. More... | |
Model specific interface | |
| |
NumEqVector | computeStorage (const Problem &problem, const SubControlVolume &scv, const VolumeVariables &volVars) const |
Calculate the source term of the equation. More... | |
NumEqVector | computeSource (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const |
Calculate the source term of the equation. More... | |
NumEqVector | computeFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf, const ElementFluxVariablesCache &elemFluxVarsCache) const |
Calculate the flux term of the equation. More... | |
Interfaces for analytic Jacobian computation | |
template<class PartialDerivativeMatrix > | |
void | addStorageDerivatives (PartialDerivativeMatrix &partialDerivatives, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const VolumeVariables &curVolVars, const SubControlVolume &scv) const |
Compute the derivative of the storage residual. More... | |
template<class PartialDerivativeMatrix > | |
void | addSourceDerivatives (PartialDerivativeMatrix &partialDerivatives, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const VolumeVariables &curVolVars, const SubControlVolume &scv) const |
Compute the derivative of the source residual. More... | |
template<class PartialDerivativeMatrices , class T = TypeTag> | |
std::enable_if_t< GetPropType< T, Properties::GridGeometry >::discMethod !=DiscretizationMethods::box, void > | addFluxDerivatives (PartialDerivativeMatrices &derivativeMatrices, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Compute the derivative of the flux residual. More... | |
template<class JacobianMatrix , class T = TypeTag> | |
std::enable_if_t< GetPropType< T, Properties::GridGeometry >::discMethod==DiscretizationMethods::box, void > | addFluxDerivatives (JacobianMatrix &A, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Compute the derivative of the flux residual for the box method. More... | |
template<class PartialDerivativeMatrices > | |
void | addCCDirichletFluxDerivatives (PartialDerivativeMatrices &derivativeMatrices, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Compute the derivative of the Dirichlet flux residual for cell-centered schemes. More... | |
template<class PartialDerivativeMatrices > | |
void | addRobinFluxDerivatives (PartialDerivativeMatrices &derivativeMatrices, const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &curElemVolVars, const ElementFluxVariablesCache &elemFluxVarsCache, const SubControlVolumeFace &scvf) const |
Compute the derivative of Robin type boundary conditions ("solution dependent Neumann") More... | |
Interfaces accessed by local residual implementations | |
const Problem & | problem () const |
the problem More... | |
const TimeLoop & | timeLoop () const |
bool | isStationary () const |
returns true if the residual is stationary More... | |
Implementation & | asImp () |
const Implementation & | asImp () const |
using Dumux::CVFELocalResidual< TypeTag >::ElementResidualVector = typename ParentType::ElementResidualVector |
|
inlineinherited |
Compute the derivative of the Dirichlet flux residual for cell-centered schemes.
|
inlineinherited |
Compute the derivative of the flux residual for the box method.
|
inlineinherited |
Compute the derivative of the flux residual.
|
inlineinherited |
Compute the derivative of Robin type boundary conditions ("solution dependent Neumann")
|
inlineinherited |
Compute the derivative of the source residual.
|
inlineinherited |
Compute the derivative of the storage residual.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Calculate the flux term of the equation.
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
elemVolVars | The volume variables associated with the element stencil |
scvf | The sub-control volume over which we integrate the flux |
elemFluxVarsCache | the flux variable caches for the element's flux stencils |
|
inlineinherited |
Calculate the source term of the equation.
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
elemVolVars | The volume variables associated with the element stencil |
scv | The sub-control volume over which we integrate the source term |
|
inlineinherited |
Calculate the source term of the equation.
problem | The problem to solve |
scv | The sub-control volume over which we integrate the storage term |
volVars | The volume variables associated with the scv |
|
inline |
evaluate flux residuals for one sub control volume face
|
inlineinherited |
Compute the flux local residual, i.e. the deviation of the flux term from zero.
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
elemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
elemFluxVarsCache | The flux variable caches for the element stencil |
scvf | The sub control volume face the flux term is integrated over |
|
inline |
evaluate flux residuals for one sub control volume face and add to residual
|
inlineinherited |
Compute the flux local residual, i.e. the deviation of the flux term from zero.
residual | The residual vector to fill |
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
elemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
elemBcTypes | the boundary types for the boundary entities of an elements |
elemFluxVarsCache | The flux variable caches for the element stencil |
scvf | The sub control volume face the flux term is integrated over |
|
inlineinherited |
|
inlineinherited |
Compute the source local residual, i.e. the deviation of the source term from zero.
residual | The residual vector to fill |
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
curElemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
scv | The sub control volume the source term is integrated over |
Compute source with the model specific storage residual
subtract source from local rate (sign convention in user interface)
|
inline |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
prevElemVolVars | The volume averaged variables for all sub-control volumes of the element at the previous time level |
curElemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
|
inlineinherited |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
prevElemVolVars | The volume averaged variables for all sub-control volumes of the element at the previous time level |
curElemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
|
inline |
Compute the storage term for the current solution.
This can be used to figure out how much of each conservation quantity is inside the element.
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the storage term ought to be calculated |
gridGeometry | The finite-volume grid geometry |
gridVariables | The grid variables (volume and flux variables) |
sol | The solution vector |
|
inline |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.
residual | The residual vector to fill |
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
prevElemVolVars | The volume averaged variables for all sub-control volumes of the element at the previous time level |
curElemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
scv | The sub control volume the storage term is integrated over |
Compute storage with the model specific storage residual
|
inline |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.
residual | The residual vector to fill |
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
prevElemVolVars | The volume averaged variables for all sub-control volumes of the element at the previous time level |
curElemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
scv | The sub control volume the storage term is integrated over |
|
inlineinherited |
Compute the storage local residual, i.e. the deviation of the storage term from zero for instationary problems.
residual | The residual vector to fill |
problem | The problem to solve |
element | The DUNE Codim<0> entity for which the residual ought to be calculated |
fvGeometry | The finite-volume geometry of the element |
prevElemVolVars | The volume averaged variables for all sub-control volumes of the element at the previous time level |
curElemVolVars | The volume averaged variables for all sub-control volumes of the element at the current time level |
scv | The sub control volume the storage term is integrated over |
Compute storage with the model specific storage residual
|
inlineinherited |
returns true if the residual is stationary
|
inlineinherited |
the problem
|
inlineinherited |
the timeloop for instationary problems calling this for stationary leads to undefined behaviour