A linear system assembler (residual and Jacobian) for staggered finite volume schemes. This is basically just a wrapper for the MultiDomainFVAssembler which simplifies the set-up of uncoupled problems using the staggered scheme. More...
#include <dumux/assembly/staggeredfvassembler.hh>
A linear system assembler (residual and Jacobian) for staggered finite volume schemes. This is basically just a wrapper for the MultiDomainFVAssembler which simplifies the set-up of uncoupled problems using the staggered scheme.
| TypeTag | the TypeTag |
| diffMethod | the differentiation method to residual compute derivatives |
| isImplicit | if to use an implicit or explicit time discretization |
Public Types | |
| using | GridGeometry = GetPropType< TypeTag, Properties::GridGeometry > |
| using | GridVariables = GetPropType< TypeTag, Properties::GridVariables > |
| using | CouplingManager = typename ParentType::CouplingManager |
| using | Traits = StaggeredMultiDomainTraits< TypeTag, TypeTag > |
| using | Scalar = typename MDTraits::Scalar |
| using | LocalResidual = GetPropType< SubDomainTypeTag< id >, Properties::LocalResidual > |
| TODO get rid of this GetPropType. More... | |
| using | JacobianMatrix = typename MDTraits::JacobianMatrix |
| using | ResidualType = SolutionVector |
Public Member Functions | |
| StaggeredFVAssembler (std::shared_ptr< const Problem > problem, std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< GridVariables > gridVariables) | |
| The constructor for stationary problems. More... | |
| StaggeredFVAssembler (std::shared_ptr< const Problem > problem, std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< GridVariables > gridVariables, std::shared_ptr< const TimeLoop > timeLoop, const SolutionVector &prevSol) | |
| The constructor for instationary problems. More... | |
| auto & | gridVariables () |
| const auto & | gridVariables () const |
| const GridGeometry & | gridGeometry () const |
| void | assembleJacobianAndResidual (const SolutionVector &curSol) |
| Assembles the global Jacobian of the residual and the residual for the current solution. More... | |
| void | assembleResidual (const SolutionVector &curSol) |
| compute the residuals using the internal residual More... | |
| void | assembleResidual (ResidualType &r, const SolutionVector &curSol) |
| assemble a residual r More... | |
| Scalar | residualNorm (const SolutionVector &curSol) |
| compute the residual and return it's vector norm More... | |
| void | setLinearSystem (std::shared_ptr< JacobianMatrix > A, std::shared_ptr< SolutionVector > r) |
| Tells the assembler which jacobian and residual to use. This also resizes the containers to the required sizes and sets the sparsity pattern of the jacobian matrix. More... | |
| void | setLinearSystem () |
| The version without arguments uses the default constructor to create the jacobian and residual objects in this assembler if you don't need them outside this class. More... | |
| void | setJacobianBuildMode (JacobianMatrix &jac) const |
| Sets the jacobian build mode. More... | |
| void | updateAfterGridAdaption () |
| Resizes jacobian and residual and recomputes colors. More... | |
| void | updateGridVariables (const SolutionVector &curSol) |
| Updates the grid variables with the given solution. More... | |
| void | resetTimeStep (const SolutionVector &curSol) |
| Resets the grid variables to the last time step. More... | |
| std::size_t | numDofs (Dune::index_constant< i > domainId) const |
| the number of dof locations of domain i More... | |
| const auto & | problem (Dune::index_constant< i > domainId) const |
| the problem of domain i More... | |
| const auto & | gridGeometry (Dune::index_constant< i > domainId) const |
| the finite volume grid geometry of domain i More... | |
| const auto & | gridView (Dune::index_constant< i > domainId) const |
| the grid view of domain i More... | |
| GridVariables< i > & | gridVariables (Dune::index_constant< i > domainId) |
| the grid variables of domain i More... | |
| const GridVariables< i > & | gridVariables (Dune::index_constant< i > domainId) const |
| the grid variables of domain i More... | |
| const CouplingManager & | couplingManager () const |
| the coupling manager More... | |
| JacobianMatrix & | jacobian () |
| the full Jacobian matrix More... | |
| SolutionVector & | residual () |
| the full residual vector More... | |
| const SolutionVector & | prevSol () const |
| the solution of the previous time step More... | |
| void | setTimeManager (std::shared_ptr< const TimeLoop > timeLoop) |
| Set time loop for instationary problems. More... | |
| void | setPreviousSolution (const SolutionVector &u) |
| Sets the solution from which to start the time integration. Has to be called prior to assembly for time-dependent problems. More... | |
| bool | isStationaryProblem () const |
| Whether we are assembling a stationary or instationary problem. More... | |
| LocalResidual< i > | localResidual (Dune::index_constant< i > domainId) const |
| Create a local residual object (used by the local assembler) More... | |
Static Public Member Functions | |
| static constexpr bool | isImplicit () |
| Returns true if the assembler considers implicit assembly. More... | |
Protected Attributes | |
| std::shared_ptr< CouplingManager > | couplingManager_ |
| the coupling manager coupling the sub domains More... | |
| using Dumux::StaggeredFVAssembler< TypeTag, diffMethod, isImplicit >::CouplingManager = typename ParentType::CouplingManager |
| using Dumux::StaggeredFVAssembler< TypeTag, diffMethod, isImplicit >::GridGeometry = GetPropType<TypeTag, Properties::GridGeometry> |
| using Dumux::StaggeredFVAssembler< TypeTag, diffMethod, isImplicit >::GridVariables = GetPropType<TypeTag, Properties::GridVariables> |
|
inherited |
|
inherited |
TODO get rid of this GetPropType.
|
inherited |
|
inherited |
|
inherited |
|
inline |
The constructor for stationary problems.
|
inline |
The constructor for instationary problems.
|
inlineinherited |
Assembles the global Jacobian of the residual and the residual for the current solution.
|
inlineinherited |
compute the residuals using the internal residual
|
inlineinherited |
assemble a residual r
|
inlineinherited |
the coupling manager
|
inline |
|
inlineinherited |
the finite volume grid geometry of domain i
|
inline |
|
inline |
|
inlineinherited |
the grid variables of domain i
|
inlineinherited |
the grid variables of domain i
|
inlineinherited |
the grid view of domain i
|
inlinestaticconstexprinherited |
Returns true if the assembler considers implicit assembly.
|
inlineinherited |
Whether we are assembling a stationary or instationary problem.
|
inlineinherited |
the full Jacobian matrix
|
inlineinherited |
Create a local residual object (used by the local assembler)
|
inlineinherited |
the number of dof locations of domain i
|
inlineinherited |
the solution of the previous time step
|
inlineinherited |
the problem of domain i
|
inlineinherited |
Resets the grid variables to the last time step.
|
inlineinherited |
the full residual vector
|
inlineinherited |
compute the residual and return it's vector norm
|
inlineinherited |
Sets the jacobian build mode.
|
inlineinherited |
The version without arguments uses the default constructor to create the jacobian and residual objects in this assembler if you don't need them outside this class.
|
inlineinherited |
Tells the assembler which jacobian and residual to use. This also resizes the containers to the required sizes and sets the sparsity pattern of the jacobian matrix.
|
inlineinherited |
Sets the solution from which to start the time integration. Has to be called prior to assembly for time-dependent problems.
|
inlineinherited |
Set time loop for instationary problems.
|
inlineinherited |
Resizes jacobian and residual and recomputes colors.
|
inlineinherited |
Updates the grid variables with the given solution.
|
protectedinherited |
the coupling manager coupling the sub domains