A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) with multiple domains.
More...
template<class MDTraits, class CMType,
DiffMethod diffMethod, bool useImplicitAssembly = true>
class Dumux::MultiDomainFVAssembler< MDTraits, CMType, diffMethod, useImplicitAssembly >
A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) with multiple domains.
- Template Parameters
-
MDTraits | the multidimension traits |
diffMethod | the differentiation method to residual compute derivatives |
useImplicitAssembly | if to use an implicit or explicit time discretization |
|
| MultiDomainFVAssembler (ProblemTuple &&problem, GridGeometryTuple &&gridGeometry, GridVariablesTuple &&gridVariables, std::shared_ptr< CouplingManager > couplingManager) |
| The constructor for stationary problems. More...
|
|
| MultiDomainFVAssembler (ProblemTuple &&problem, GridGeometryTuple &&gridGeometry, GridVariablesTuple &&gridVariables, std::shared_ptr< CouplingManager > couplingManager, std::shared_ptr< const TimeLoop > timeLoop) |
| The constructor for instationary problems. More...
|
|
| MultiDomainFVAssembler (ProblemTuple &&problem, GridGeometryTuple &&gridGeometry, GridVariablesTuple &&gridVariables, std::shared_ptr< CouplingManager > couplingManager, std::shared_ptr< const TimeLoop > timeLoop, const SolutionVector &prevSol) |
| The constructor for instationary problems. More...
|
|
template<class DeprecatedGridGeometryTuple , class DeprecatedGridVariablesTuple , bool isStaggered = std::tuple_element_t<0, GridGeometryTuple>::element_type::discMethod == DiscretizationMethod::staggered, bool isDeprecated = !std::is_convertible<DeprecatedGridVariablesTuple, GridVariablesTuple>::value, std::enable_if_t< isStaggered &&isDeprecated, int > = 0> |
| MultiDomainFVAssembler (ProblemTuple &&problem, DeprecatedGridGeometryTuple &&gridGeometry, DeprecatedGridVariablesTuple &&gridVariables, std::shared_ptr< CouplingManager > couplingManager) |
|
template<class DeprecatedGridGeometryTuple , class DeprecatedGridVariablesTuple , bool isStaggered = std::tuple_element_t<0, GridGeometryTuple>::element_type::discMethod == DiscretizationMethod::staggered, bool isDeprecated = !std::is_convertible<DeprecatedGridVariablesTuple, GridVariablesTuple>::value, std::enable_if_t< isStaggered &&isDeprecated, int > = 0> |
| MultiDomainFVAssembler (ProblemTuple &&problem, DeprecatedGridGeometryTuple &&gridGeometry, DeprecatedGridVariablesTuple &&gridVariables, std::shared_ptr< CouplingManager > couplingManager, std::shared_ptr< const TimeLoop > timeLoop, const SolutionVector &prevSol) |
|
template<class DeprecatedGridGeometryTuple , class DeprecatedGridVariablesTuple , bool isStaggered = std::tuple_element_t<0, GridGeometryTuple>::element_type::discMethod == DiscretizationMethod::staggered, bool isDeprecated = !std::is_convertible<DeprecatedGridVariablesTuple, GridVariablesTuple>::value, std::enable_if_t< isStaggered &&isDeprecated, int > = 0> |
| MultiDomainFVAssembler (ProblemTuple &&problem, DeprecatedGridGeometryTuple &&gridGeometry, DeprecatedGridVariablesTuple &&gridVariables, std::shared_ptr< CouplingManager > couplingManager, std::shared_ptr< const TimeLoop > timeLoop) |
|
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) |
|
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 | setJacobianPattern (JacobianMatrix &jac) const |
| Sets the jacobian sparsity pattern. More...
|
|
void | setResidualSize (SolutionVector &res) const |
| Resizes the residual. 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...
|
|
template<std::size_t i> |
std::size_t | numDofs (Dune::index_constant< i > domainId) const |
| the number of dof locations of domain i More...
|
|
template<std::size_t i> |
const auto & | problem (Dune::index_constant< i > domainId) const |
| the problem of domain i More...
|
|
template<std::size_t i> |
const auto & | gridGeometry (Dune::index_constant< i > domainId) const |
| the finite volume grid geometry of domain i More...
|
|
template<std::size_t i> |
const auto & | gridView (Dune::index_constant< i > domainId) const |
| the grid view of domain i More...
|
|
template<std::size_t i> |
GridVariables< i > & | gridVariables (Dune::index_constant< i > domainId) |
| the grid variables of domain i More...
|
|
template<std::size_t i> |
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...
|
|
template<std::size_t i> |
LocalResidual< i > | localResidual (Dune::index_constant< i > domainId) const |
| Create a local residual object (used by the local assembler) More...
|
|