Staggered scheme local assembler using numeric differentiation and implicit time discretization.
More...
template<std::size_t id, class TypeTag, class Assembler>
class Dumux::SubDomainStaggeredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
Staggered scheme local assembler using numeric differentiation and implicit time discretization.
The assembly of the cellCenterResidual is done element-wise, the assembly of the face residual is done half-element-wise.
A sketch of what this means can be found in the following image:
Half-element wise assembly means, that integrals are split into contributions from the left and right part of the staggered control volume. For an example term \(\int_{\Omega}\varrho u\text{d}\Omega\) this reads \(\int_{\Omega}\varrho u\text{d}\Omega = \frac{1}{2}\Omega_\text{left}\varrho_\text{left}u+\frac{1}{2}\Omega_\text{right}\varrho_\text{right}u\).
During assembly, \(\frac{1}{2}\Omega_\text{left}\varrho_\text{left}u\) is added to the residual of the staggered control volume \(\Omega\), when the loops reach the scvf within element \(\Omega_\text{left}\). \(\frac{1}{2}\Omega_\text{right}\varrho_\text{right}u\) is added to the residual of \(\Omega\), when the loops reach the scvf within in element \(\Omega_\text{right}\). Other terms are split analogously.
|
CellCenterResidualValue | assembleCellCenterResidualImpl () |
|
FaceResidualValue | assembleFaceResidualImpl (const SubControlVolumeFace &scvf) |
|
template<class JacobianMatrixDiagBlock , class GridVariables > |
CellCenterResidualValue | assembleCellCenterJacobianAndResidualImpl (JacobianMatrixDiagBlock &A, GridVariables &gridVariables) |
| Computes the derivatives with respect to the given element and adds them to the global matrix. More...
|
|
template<class JacobianMatrixDiagBlock , class GridVariables > |
auto | assembleFaceJacobianAndResidualImpl (JacobianMatrixDiagBlock &A, GridVariables &gridVariables) |
| Computes the derivatives with respect to the given element and adds them to the global matrix. More...
|
|
template<class JacobianBlock , class GridVariables > |
void | assembleJacobianCellCenterCoupling (Dune::index_constant< 1 > domainJ, JacobianBlock &A, const CellCenterResidualValue &origResidual, GridVariables &gridVariables) |
| Computes the derivatives with respect to the given element and adds them to the global matrix. More...
|
|
template<std::size_t otherId, class JacobianBlock , class GridVariables > |
void | assembleJacobianCellCenterCoupling (Dune::index_constant< otherId > domainJ, JacobianBlock &A, const CellCenterResidualValue &res, GridVariables &gridVariables) |
|
template<class JacobianBlock , class ElementResidualVector , class GridVariables > |
void | assembleJacobianFaceCoupling (Dune::index_constant< 0 > domainJ, JacobianBlock &A, const ElementResidualVector &origResiduals, GridVariables &gridVariables) |
| Computes the derivatives with respect to the given element and adds them to the global matrix. More...
|
|
template<std::size_t otherId, class JacobianBlock , class ElementResidualVector , class GridVariables > |
void | assembleJacobianFaceCoupling (Dune::index_constant< otherId > domainJ, JacobianBlock &A, const ElementResidualVector &res, GridVariables &gridVariables) |
|
template<class JacobianMatrixDiagBlock , class GridVariables > |
void | evalAdditionalDerivatives (const std::vector< std::size_t > &additionalDofDependencies, JacobianMatrixDiagBlock &A, GridVariables &gridVariables) |
|
void | bindLocalViews () |
|
void | assembleJacobianAndResidual (JacobianMatrixRow &jacRow, SubSol &res, GridVariablesTuple &gridVariables) |
| Computes the derivatives with respect to the given element and adds them to the global matrix. The element residual is written into the right hand side. More...
|
|
void | assembleResidual (SubSol &res) |
| Assemble the residual only. More...
|
|
CellCenterResidualValue | evalLocalResidualForCellCenter () const |
| Convenience function to evaluate the complete local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
|
|
CellCenterResidualValue | evalLocalResidualForCellCenter (const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars) const |
| Evaluates the complete local residual for the current cell center. More...
|
|
CellCenterResidualValue | evalLocalFluxAndSourceResidualForCellCenter () const |
| Convenience function to evaluate the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume and face variables. More...
|
|
CellCenterResidualValue | evalLocalFluxAndSourceResidualForCellCenter (const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars) const |
| Evaluates the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. More...
|
|
CellCenterResidualValue | evalLocalStorageResidualForCellCenter () const |
| Convenience function to evaluate storage term (i.e, the term with a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume and face variables. More...
|
|
FaceResidualValue | evalLocalResidualForFace (const SubControlVolumeFace &scvf) const |
| Convenience function to evaluate the local residual for the current face. Automatically chooses the the appropriate element volume and face variables. More...
|
|
FaceResidualValue | evalLocalResidualForFace (const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars) const |
| Evaluates the complete local residual for the current face. More...
|
|
FaceResidualValue | evalLocalFluxAndSourceResidualForFace (const SubControlVolumeFace &scvf) const |
| Convenience function to evaluate the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume and face variables. More...
|
|
FaceResidualValue | evalLocalFluxAndSourceResidualForFace (const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars) const |
| Evaluates the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current face. More...
|
|
FaceResidualValue | evalLocalStorageResidualForFace (const SubControlVolumeFace &scvf) const |
| Convenience function to evaluate storage term (i.e, the term with a time derivative) of the local residual for the current face. Automatically chooses the the appropriate element volume and face variables. More...
|
|
const Problem & | problem () const |
|
ElementFaceVariables & | curElemFaceVars () |
| The current element volume variables. More...
|
|
const ElementFaceVariables & | curElemFaceVars () const |
| The current element volume variables. More...
|
|
ElementFaceVariables & | prevElemFaceVars () |
| The element volume variables of the provious time step. More...
|
|
const ElementFaceVariables & | prevElemFaceVars () const |
| The element volume variables of the provious time step. More...
|
|
CouplingManager & | couplingManager () |
|
ElementResidualVector | evalLocalResidual () const |
| Convenience function to evaluate the complete local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
|
|
ElementResidualVector | evalLocalResidual (const ElementVolumeVariables &elemVolVars) const |
| Evaluates the complete local residual for the current element. More...
|
|
ElementResidualVector | evalLocalFluxAndSourceResidual () const |
| Convenience function to evaluate the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
|
|
ElementResidualVector | evalLocalFluxAndSourceResidual (const ElementVolumeVariables &elemVolVars) const |
| Evaluates the flux and source terms (i.e, the terms without a time derivative) of the local residual for the current element. More...
|
|
ElementResidualVector | evalLocalStorageResidual () const |
| Convenience function to evaluate storage term (i.e, the term with a time derivative) of the local residual for the current element. Automatically chooses the the appropriate element volume variables. More...
|
|
void | enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet) |
| Enforces Dirichlet constraints if enabled in the problem. More...
|
|
void | enforceInternalDirichletConstraints (const ApplyFunction &applyDirichlet) |
|
const Assembler & | assembler () const |
| The assembler. More...
|
|
const Element & | element () const |
| The current element. More...
|
|
bool | elementIsGhost () const |
| Returns if element is a ghost entity. More...
|
|
const SolutionVector & | curSol () const |
| The current solution. More...
|
|
FVElementGeometry & | fvGeometry () |
| The global finite volume geometry. More...
|
|
const FVElementGeometry & | fvGeometry () const |
| The finite volume geometry. More...
|
|
ElementVolumeVariables & | curElemVolVars () |
| The current element volume variables. More...
|
|
const ElementVolumeVariables & | curElemVolVars () const |
| The current element volume variables. More...
|
|
ElementVolumeVariables & | prevElemVolVars () |
| The element volume variables of the provious time step. More...
|
|
const ElementVolumeVariables & | prevElemVolVars () const |
| The element volume variables of the provious time step. More...
|
|
ElementFluxVariablesCache & | elemFluxVarsCache () |
| The element flux variables cache. More...
|
|
const ElementFluxVariablesCache & | elemFluxVarsCache () const |
| The element flux variables cache. More...
|
|
LocalResidual & | localResidual () |
| The local residual for the current element. More...
|
|
const LocalResidual & | localResidual () const |
| The local residual for the current element. More...
|
|
ElementBoundaryTypes & | elemBcTypes () |
| The element's boundary types. More...
|
|
const ElementBoundaryTypes & | elemBcTypes () const |
| The element's boundary types. More...
|
|