A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) with multiple domains. More...
#include <dumux/experimental/assembly/multistagemultidomainfvassembler.hh>
| MDTraits | the multidimensional traits | 
| diffMethod | the differentiation method to residual compute derivatives | 
| Public Types | |
| using | Traits = MDTraits | 
| using | Scalar = typename MDTraits::Scalar | 
| using | StageParams = Experimental::MultiStageParams<Scalar> | 
| template<std::size_t id> | |
| using | LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual> | 
| TODO get rid of this GetPropType. | |
| template<std::size_t id> | |
| using | GridVariables = typename MDTraits::template SubDomain<id>::GridVariables | 
| template<std::size_t id> | |
| using | GridGeometry = typename MDTraits::template SubDomain<id>::GridGeometry | 
| template<std::size_t id> | |
| using | Problem = typename MDTraits::template SubDomain<id>::Problem | 
| using | JacobianMatrix = typename MDTraits::JacobianMatrix | 
| using | SolutionVector = typename MDTraits::SolutionVector | 
| using | ResidualType = typename MDTraits::ResidualVector | 
| using | CouplingManager = CMType | 
| Public Member Functions | |
| MultiStageMultiDomainFVAssembler (ProblemTuple problem, GridGeometryTuple gridGeometry, GridVariablesTuple gridVariables, std::shared_ptr< CouplingManager > couplingManager, std::shared_ptr< const Experimental::MultiStageMethod< Scalar > > msMethod, const SolutionVector &prevSol) | |
| The constructor for instationary problems. | |
| 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 | 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 | 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. | |
| template<std::size_t i> | |
| std::size_t | numDofs (Dune::index_constant< i > domainId) const | 
| the number of dof locations of domain i | |
| template<std::size_t i> | |
| const auto & | problem (Dune::index_constant< i > domainId) const | 
| the problem of domain i | |
| template<std::size_t i> | |
| const auto & | gridGeometry (Dune::index_constant< i > domainId) const | 
| the finite volume grid geometry of domain i | |
| template<std::size_t i> | |
| const auto & | gridView (Dune::index_constant< i > domainId) const | 
| the grid view of domain i | |
| template<std::size_t i> | |
| GridVariables< i > & | gridVariables (Dune::index_constant< i > domainId) | 
| the grid variables of domain i | |
| template<std::size_t 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 before time integration | |
| template<std::size_t i> | |
| MultiStageFVLocalOperator< LocalResidual< i > > | localResidual (Dune::index_constant< i > domainId) const | 
| Create a local residual object (used by the local assembler) | |
| void | clearStages () | 
| template<class StageParams> | |
| void | prepareStage (SolutionVector &x, StageParams params) | 
| bool | isStationaryProblem () const | 
| TODO get rid of this (called by Newton but shouldn't be necessary) | |
| bool | isImplicit () const | 
| Protected Attributes | |
| std::shared_ptr< CouplingManager > | couplingManager_ | 
| the coupling manager coupling the sub domains | |
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::CouplingManager = CMType | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::GridGeometry = typename MDTraits::template SubDomain<id>::GridGeometry | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::GridVariables = typename MDTraits::template SubDomain<id>::GridVariables | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::JacobianMatrix = typename MDTraits::JacobianMatrix | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual> | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::Problem = typename MDTraits::template SubDomain<id>::Problem | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::ResidualType = typename MDTraits::ResidualVector | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::Scalar = typename MDTraits::Scalar | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::SolutionVector = typename MDTraits::SolutionVector | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::StageParams = Experimental::MultiStageParams<Scalar> | 
| using Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod >::Traits = MDTraits | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | protected |