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>
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 | ResidualType |
using | SolutionVector |
using | Traits |
using | Scalar |
using | LocalResidual |
TODO get rid of this GetPropType. | |
using | JacobianMatrix |
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. | |
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 time-dependent problems. | |
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. | |
void | assembleResidual (const SolutionVector &curSol) |
compute the residuals using the internal residual | |
void | assembleResidual (ResidualType &r, const SolutionVector &curSol) |
assemble a residual r | |
void | setLinearSystem (std::shared_ptr< JacobianMatrix > A, std::shared_ptr< ResidualType > 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. | |
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. | |
void | setJacobianBuildMode (JacobianMatrix &jac) const |
Sets the jacobian build mode. | |
void | updateAfterGridAdaption () |
Resizes jacobian and residual and recomputes colors. | |
void | updateGridVariables (const SolutionVector &curSol) |
Updates the grid variables with the given solution. | |
void | resetTimeStep (const SolutionVector &curSol) |
Resets the grid variables to the last time step. | |
std::size_t | numDofs (Dune::index_constant< i > domainId) const |
the number of dof locations of domain i | |
const auto & | problem (Dune::index_constant< i > domainId) const |
the problem of domain i | |
const auto & | gridGeometry (Dune::index_constant< i > domainId) const |
the finite volume grid geometry of domain i | |
const auto & | gridView (Dune::index_constant< i > domainId) const |
the grid view of domain i | |
GridVariables< i > & | gridVariables (Dune::index_constant< i > domainId) |
the grid variables of domain i | |
const GridVariables< i > & | gridVariables (Dune::index_constant< i > domainId) const |
the grid variables of domain i | |
const CouplingManager & | couplingManager () const |
the coupling manager | |
JacobianMatrix & | jacobian () |
the full Jacobian matrix | |
ResidualType & | residual () |
the full residual vector | |
const SolutionVector & | prevSol () const |
the solution of the previous time step | |
void | setTimeManager (std::shared_ptr< const TimeLoop > timeLoop) |
Set time loop for instationary problems. | |
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. | |
bool | isStationaryProblem () const |
Whether we are assembling a stationary or instationary problem. | |
LocalResidual< i > | localResidual (Dune::index_constant< i > domainId) const |
Create a local residual object (used by the local assembler) | |
Static Public Member Functions | |
static constexpr bool | isImplicit () |
Returns true if the assembler considers implicit assembly. | |
Protected Attributes | |
std::shared_ptr< CouplingManager > | couplingManager_ |
the coupling manager coupling the sub domains | |
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 |
using Dumux::MultiDomainFVAssembler< MDTraits, CMType, diffMethod, useImplicitAssembly >::ResidualType |
|
inherited |
using Dumux::MultiDomainFVAssembler< MDTraits, CMType, diffMethod, useImplicitAssembly >::SolutionVector |
|
inherited |
|
inline |
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inline |
|
inlineinherited |
|
inlinestaticconstexprinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |