Coupling manager that combines an arbitrary number of binary coupling manager (coupling two domains each)  
 More...
template<class MDTraits, class CouplingMap, class ... CouplingMgrs>
class Dumux::MultiBinaryCouplingManager< MDTraits, CouplingMap, CouplingMgrs >
- Template Parameters
- 
  
    | MDTraits | the multidomain traits |  | CouplingMap | a coupling policy class |  | CouplingMgrs | the binary sub-coupling manager types |  
 
The coupling policy has to provide the interfaces
- CouplingMap::coupledDomains(i): returns a tuple of Dune::index_constants with the coupled domains
- CouplingMap::globalToLocal(i, j): maps the indices i, j to the local index pair of the responsible sub coupling manager
- CouplingMap::managerMap(): returns a two-dimensional array mapping two indices to the coupling manager index 
|  | 
|  | MultiBinaryCouplingManager () | 
|  | 
| template<std::size_t i, std::size_t j> | 
| auto & | subCouplingManager (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ) | 
|  | return the binary sub-coupling manager 
 | 
|  | 
| template<std::size_t i, std::size_t j> | 
| const auto & | subCouplingManager (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ) const | 
|  | return the binary sub-coupling manager 
 | 
|  | 
| template<std::size_t i, std::size_t j, class Apply> | 
| decltype(auto) | subApply (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, Apply &&apply) | 
|  | apply a function to the domainI-domainJ sub coupling manager using its local indices 
 | 
|  | 
| template<std::size_t i, std::size_t j, class Apply> | 
| decltype(auto) | subApply (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const Apply &apply) const | 
|  | apply a function to the domainI-domainJ sub coupling manager using its local indices 
 | 
|  | 
| template<std::size_t i, class Apply> | 
| decltype(auto) | subApply (Dune::index_constant< i > domainI, Apply &&apply) | 
|  | apply a function to a sub coupling manager containing this domain 
 | 
|  | 
| template<std::size_t i, class Apply> | 
| decltype(auto) | subApply (Dune::index_constant< i > domainI, const Apply &apply) const | 
|  | apply a function to a sub coupling manager containing this domain 
 | 
|  | 
| void | updateSolution (const typename MDTraits::SolutionVector &curSol) | 
|  | Update the solution vector before assembly. 
 | 
|  | 
| template<std::size_t id, class JacobianPattern> | 
| void | extendJacobianPattern (Dune::index_constant< id > domainI, JacobianPattern &pattern) const | 
|  | extend the jacobian pattern of the diagonal block of domain i by those entries that are not already in the uncoupled pattern 
 | 
|  | 
| template<std::size_t i, class Entity, std::size_t j> | 
| const auto & | couplingStencil (Dune::index_constant< i > domainI, const Entity &entity, Dune::index_constant< j > domainJ) const | 
|  | Return the coupling element stencil for a given bulk domain element. 
 | 
|  | 
| template<std::size_t i, class LocalAssemblerI, std::size_t j> | 
| decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvfI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const | 
|  | 
| template<std::size_t i, class LocalAssemblerI, std::size_t j> | 
| decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const | 
|  | 
| template<std::size_t i, class LocalAssemblerI, std::size_t j> | 
| decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, const SubControlVolume< i > &scvI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const | 
|  | 
| template<std::size_t i, class LocalAssemblerI, std::size_t j, class PrimaryVariables> | 
| void | updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, const std::size_t dofIdxGlobalJ, const PrimaryVariables &priVars, int pvIdxJ) | 
|  | Update the coupling context for the bulk face residual w.r.t to the lowDim dofs. 
 | 
|  | 
| template<std::size_t i, class Assembler = int> | 
| void | bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &element, const Assembler &assembler=0) | 
|  | Bind the coupling context for a low dim element TODO remove Assembler. 
 | 
|  | 
| template<std::size_t i> | 
| decltype(auto) | numericEpsilon (Dune::index_constant< i > domainI, const std::string ¶mGroup) const | 
|  | return the numeric epsilon used for deflecting primary variables of coupled domain i. 
 | 
|  | 
| template<std::size_t i, class LocalAssemblerI, class JacobianMatrixDiagBlock, class GridVariables> | 
| void | evalAdditionalDomainDerivatives (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, const typename LocalAssemblerI::LocalResidual::ElementResidualVector &origResiduals, JacobianMatrixDiagBlock &A, GridVariables &gridVariables) | 
|  | evaluate additional derivatives of the element residual of a domain with respect to dofs in the same domain that are not in the regular stencil (see CouplingManager::extendJacobianPattern) 
 | 
|  | 
| template<std::size_t i, class LocalAssemblerI, class UpdatableElementVolVars, class UpdatableFluxVarCache> | 
| void | updateCoupledVariables (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, UpdatableElementVolVars &elemVolVars, UpdatableFluxVarCache &elemFluxVarsCache) | 
|  |