The element-wise residual for the box scheme. More...
#include <dumux/assembly/fclocalresidual.hh>
The element-wise residual for the box scheme.
| 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... | |
| 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... | |
| 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::FaceCenteredLocalResidual< 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 |
|
inline |
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 |
| 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 |
Compute storage with the model specific storage residual
|
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