Coupling of several regular DuMux problems. More...
The multi domain module allows coupling regular DuMux problems. Several coupling modes are currently available.
| Topics | |
| Boundary coupling mode | |
| Couples problems of different or equal dimension that touch at the domain boundary. Examples are equal-dimension multi-physics problems like Darcy-Stokes coupling or PNM (pore network model)-Darcy coupling. | |
| Coupling for dual network approach for pore network models | |
| Coupling for dual network approach for pore network models. | |
| Embedded mixed-dimension coupling mode | |
| Couples problems of different dimensions where one or more lower-dimensional problems (lowdim) are embedded in a higher-dimensional domain (bulk). Examples are embedded one-dimensional networks for the simulation of blood tissue perfusion, or root-soil interaction, and embedded fracture models. | |
| Conforming mixed-dimension facet coupling mode | |
| Couples problems of different dimensions where one or more lower-dimensional problems (lowdim) live on the facets of the higher-dimensional domain (bulk). Examples are discrete facet conforming fracture models and problems with physics on a domain surface. | |
| Files | |
| file | multistagemultidomainfvassembler.hh | 
| A linear system assembler (residual and Jacobian) for finite volume schemes with multiple domains. | |
| file | subdomaincclocalassembler.hh | 
| A multidomain local assembler for Jacobian and residual contribution per element (cell-centered methods) | |
| file | subdomaincvfelocalassembler.hh | 
| An assembler for Jacobian and residual contribution per element (CVFE methods) for multidomain problems. | |
| file | assemblerview.hh | 
| Subdomain-specific views on multidomain assemblers. | |
| file | couplingjacobianpattern.hh | 
| Helper function to generate Jacobian pattern for multi domain models. | |
| file | couplingmanager.hh | 
| The interface of the coupling manager for multi domain problems. | |
| file | couplingmanager.hh | 
| Freeflow coupling managers (Navier-Stokes mass-momentum coupling) | |
| file | couplingmanager_cvfe.hh | 
| Freeflow coupling managers (Navier-Stokes mass-momentum coupling) | |
| file | couplingmanager_staggered.hh | 
| Freeflow coupling managers (Navier-Stokes mass-momentum coupling) | |
| file | typetraits.hh | 
| Some useful type traits. | |
| file | fvassembler.hh | 
| A linear system assembler (residual and Jacobian) for finite volume schemes with multiple domains. | |
| file | fvgridgeometry.hh | 
| Multidomain wrapper for multiple grid geometries. | |
| file | fvgridvariables.hh | 
| Multidomain wrapper for multiple grid variables. | |
| file | fvproblem.hh | 
| Multidomain wrapper for multiple problems. | |
| file | glue.hh | 
| A class glueing two grids of potentially different dimension geometrically. Intersections are computed using axis-aligned bounding box trees. | |
| file | vtkoutputmodule.hh | 
| Multidomain wrapper for multiple vtk output modules. | |
| file | multibinarycouplingmanager.hh | 
| Coupling manager that combines an arbitrary number of binary coupling manager (coupling two domains each) | |
| file | newtonconvergencewriter.hh | 
| This class provides the infrastructure to write the convergence behaviour of the Newton method for multidomain simulations into a VTK file. | |
| file | newtonsolver.hh | 
| Newton solver for coupled problems. | |
| file | staggeredcouplingmanager.hh | 
| The interface of the coupling manager for multi domain problems. | |
| file | staggeredtraits.hh | 
| Linear algebra traits for mixeddimension problems. | |
| file | subdomaincclocalassembler.hh | 
| A multidomain local assembler for Jacobian and residual contribution per element (cell-centered methods) | |
| file | subdomaincvfelocalassembler.hh | 
| An assembler for Jacobian and residual contribution per element (CVFE methods) for multidomain problems. | |
| file | subdomainfclocalassembler.hh | 
| An assembler for Jacobian and residual contribution per element (face-centered staggered methods) for multidomain problems. | |
| file | subdomainstaggeredlocalassembler.hh | 
| A multidomain assembler for Jacobian and residual contribution per element (staggered method) | |
| file | traits.hh | 
| Traits for multidomain problems. | |
| Classes | |
| struct | Dumux::CouplingManagerSupportsMultithreadedAssembly< CM > | 
| Type trait that is specialized for coupling manager supporting multithreaded assembly.  More... | |
| class | Dumux::Experimental::MultiStageMultiDomainFVAssembler< MDTraits, CMType, diffMethod > | 
| A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) with multiple domains.  More... | |
| class | Dumux::Experimental::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm > | 
| A base class for all multidomain local assemblers.  More... | |
| class | Dumux::Experimental::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DM > | 
| The cell-centered scheme multidomain local assembler.  More... | |
| class | Dumux::Experimental::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric > | 
| Cell-centered scheme multidomain local assembler using numeric differentiation. | |
| class | Dumux::Experimental::SubDomainCVFELocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm > | 
| A base class for all CVFE subdomain local assemblers.  More... | |
| class | Dumux::Experimental::SubDomainCVFELocalAssembler< id, TypeTag, Assembler, DM > | 
| The CVFE scheme multidomain local assembler.  More... | |
| class | Dumux::Experimental::SubDomainCVFELocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric > | 
| CVFE scheme multi domain local assembler using numeric differentiation. | |
| class | Dumux::MultiDomainAssemblerSubDomainView< MDAssembler, domainId > | 
| Subdomain-specific view on a multidomain assembler. Allows retrieval of sub-domain specific objects w/o passing a domain id.  More... | |
| class | Dumux::CouplingManager< Traits > | 
| The interface of the coupling manager for multi domain problems.  More... | |
| class | Dumux::CVFEFreeFlowCouplingManager< Traits > | 
| The interface of the coupling manager for free flow systems.  More... | |
| class | Dumux::FCStaggeredFreeFlowCouplingManager< Traits > | 
| The interface of the coupling manager for free flow systems.  More... | |
| class | Dumux::MultiDomainFVAssembler< MDTraits, CMType, diffMethod, useImplicitAssembly > | 
| A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) with multiple domains.  More... | |
| class | Dumux::MultiDomainFVGridGeometry< MDTraits > | 
| A multidomain wrapper for multiple grid geometries.  More... | |
| class | Dumux::MultiDomainFVGridVariables< MDTraits > | 
| A multidomain wrapper for multiple grid variables.  More... | |
| class | Dumux::MultiDomainFVProblem< MDTraits > | 
| A multidomain wrapper for multiple problems.  More... | |
| class | Dumux::MultiDomainVtkOutputModule< MDTraits, Module > | 
| A multidomain wrapper for multiple vtk output modules.  More... | |
| class | Dumux::MultiBinaryCouplingManager< MDTraits, CouplingMap, CouplingMgrs > | 
| Coupling manager that combines an arbitrary number of binary coupling manager (coupling two domains each)  More... | |
| class | Dumux::MultiDomainNewtonConvergenceWriter< MDTraits > | 
| Writes the intermediate solutions for every Newton iteration.  More... | |
| class | Dumux::MultiDomainNewtonSolver< Assembler, LinearSolver, CouplingManager, Reassembler, Comm > | 
| Newton solver for coupled problems.  More... | |
| class | Dumux::StaggeredCouplingManager< MDTraits > | 
| Base coupling manager for the staggered discretization.  More... | |
| class | Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit > | 
| A base class for all multidomain local assemblers.  More... | |
| class | Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DM, implicit > | 
| The cell-centered scheme multidomain local assembler.  More... | |
| class | Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true > | 
| Cell-centered scheme multidomain local assembler using numeric differentiation and implicit time discretization. | |
| class | Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false > | 
| Cell-centered scheme multidomain local assembler using numeric differentiation and explicit time discretization. | |
| class | Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::analytic, true > | 
| Cell-centered scheme local assembler using analytic differentiation and implicit time discretization. | |
| class | Dumux::SubDomainCVFELocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit > | 
| A base class for all CVFE subdomain local assemblers.  More... | |
| class | Dumux::SubDomainCVFELocalAssembler< id, TypeTag, Assembler, DM, implicit > | 
| The CVFE scheme multidomain local assembler.  More... | |
| class | Dumux::SubDomainCVFELocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true > | 
| CVFE scheme multi domain local assembler using numeric differentiation and implicit time discretization. | |
| class | Dumux::SubDomainCVFELocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false > | 
| CVFE scheme multi domain local assembler using numeric differentiation and explicit time discretization. | |
| class | Dumux::SubDomainFaceCenteredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit > | 
| A base class for all face-centered staggered local assemblers.  More... | |
| class | Dumux::SubDomainFaceCenteredLocalAssembler< id, TypeTag, Assembler, DM, implicit > | 
| The face-centered staggered scheme multidomain local assembler.  More... | |
| class | Dumux::SubDomainFaceCenteredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true > | 
| Face-centered staggered scheme multi domain local assembler using numeric differentiation and implicit time discretization. | |
| class | Dumux::SubDomainFaceCenteredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false > | 
| Face-centered staggered scheme multi domain local assembler using numeric differentiation and explicit time discretization. | |
| class | Dumux::SubDomainStaggeredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, isImplicit > | 
| A base class for all multidomain local assemblers (staggered)  More... | |
| class | Dumux::SubDomainStaggeredLocalAssemblerImplicitBase< id, TypeTag, Assembler, Implementation > | 
| A base class for all implicit multidomain local assemblers (staggered)  More... | |
| class | Dumux::SubDomainStaggeredLocalAssembler< id, TypeTag, Assembler, DM, implicit > | 
| The staggered multidomain local assembler.  More... | |
| class | Dumux::SubDomainStaggeredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true > | 
| Staggered scheme local assembler using numeric differentiation and implicit time discretization. | |
| Typedefs | |
| template<class Traits> | |
| using | Dumux::FreeFlowCouplingManager = typename Detail::FreeFlowCouplingManagerSelector<Traits>::type | 
| The interface of the coupling manager for free flow systems. | |
| template<class DomainGridView, class TargetGridView, class DomainMapper, class TargetMapper> | |
| using | Dumux::MultiDomainGlue | 
| A convenience alias for the IntersectionEntitySet of two GridViewGeometricEntitySets. | |
| Functions | |
| template<bool isImplicit, class CouplingManager, class GridGeometryI, class GridGeometryJ, std::size_t i, std::size_t j, typename std::enable_if_t<((GridGeometryI::discMethod==DiscretizationMethods::cctpfa)||(GridGeometryI::discMethod==DiscretizationMethods::ccmpfa)), int > = 0> | |
| Dune::MatrixIndexSet | Dumux::getCouplingJacobianPattern (const CouplingManager &couplingManager, Dune::index_constant< i > domainI, const GridGeometryI &gridGeometryI, Dune::index_constant< j > domainJ, const GridGeometryJ &gridGeometryJ) | 
| Helper function to generate coupling Jacobian pattern (off-diagonal blocks) for cell-centered schemes. | |
| template<class DomainGG, class TargetGG> | |
| MultiDomainGlue< typename DomainGG::GridView, typename TargetGG::GridView, typename DomainGG::ElementMapper, typename TargetGG::ElementMapper > | Dumux::makeGlue (const DomainGG &domainGridGeometry, const TargetGG &targetGridGeometry) | 
| Creates the glue object containing the intersections between two grids obtained from given grid geometries. | |
| member functions concerning variable caching for element residual evaluations | |
| template<std::size_t i, std::size_t j, class LocalAssemblerI> | |
| void | Dumux::CouplingManager< Traits >::updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ, const PrimaryVariables< j > &priVarsJ, int pvIdxJ) | 
| updates all data and variables that are necessary to evaluate the residual of the element of domain i this is called whenever one of the primary variables that the element residual depends on changes in domain j | |
| template<std::size_t i, std::size_t j, class LocalAssemblerI> | |
| decltype(auto) | Dumux::CouplingManager< Traits >::evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const | 
| evaluates the element residual of a coupled element of domain i which depends on the variables at the degree of freedom with index dofIdxGlobalJ of domain j | |
| member functions concerning variable caching for element residual evaluations | |
| template<std::size_t i, std::size_t j, class LocalAssemblerI> | |
| void | Dumux::CVFEFreeFlowCouplingManager< Traits >::updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ, const PrimaryVariables< j > &priVarsJ, int pvIdxJ) | 
| updates all data and variables that are necessary to evaluate the residual of the element of domain i this is called whenever one of the primary variables that the element residual depends on changes in domain j | |
| using Dumux::FreeFlowCouplingManager = typename Detail::FreeFlowCouplingManagerSelector<Traits>::type | 
| using Dumux::MultiDomainGlue | 
| 
 | inline | 
| domainI | the domain index of domain i | 
| localAssemblerI | the local assembler assembling the element residual of an element of domain i | 
| domainJ | the domain index of domain j | 
| dofIdxGlobalJ | the index of the degree of freedom of domain j which has an influence on the element residual of domain i | 
| Dune::MatrixIndexSet Dumux::getCouplingJacobianPattern | ( | const CouplingManager & | couplingManager, | 
| Dune::index_constant< i > | domainI, | ||
| const GridGeometryI & | gridGeometryI, | ||
| Dune::index_constant< j > | domainJ, | ||
| const GridGeometryJ & | gridGeometryJ ) | 
Helper function to generate coupling Jacobian pattern (off-diagonal blocks) for control-volume finite element schemes (CVFE)
Helper function to generate coupling Jacobian pattern (off-diagonal blocks) for the staggered scheme (degrees of freedom on faces)
Helper function to generate coupling Jacobian pattern (off-diagonal blocks) for the staggered scheme (degrees of freedom on cell centers)
| MultiDomainGlue< typename DomainGG::GridView, typename TargetGG::GridView, typename DomainGG::ElementMapper, typename TargetGG::ElementMapper > Dumux::makeGlue | ( | const DomainGG & | domainGridGeometry, | 
| const TargetGG & | targetGridGeometry ) | 
| domainGridGeometry | The grid geometry of the domain | 
| targetGridGeometry | The grid geometry of the target domain | 
| 
 | inline | 
| domainI | the domain index of domain i | 
| localAssemblerI | the local assembler assembling the element residual of an element of domain i | 
| domainJ | the domain index of domain j | 
| dofIdxGlobalJ | the index of the degree of freedom of domain j whose solution changed | 
| priVarsJ | the new solution at the degree of freedom of domain j with index dofIdxGlobalJ | 
| pvIdxJ | the index of the primary variable of domain j which has been updated | 
| 
 | inline | 
| domainI | the domain index of domain i | 
| localAssemblerI | the local assembler assembling the element residual of an element of domain i | 
| domainJ | the domain index of domain j | 
| dofIdxGlobalJ | the index of the degree of freedom of domain j whose solution changed | 
| priVarsJ | the new solution at the degree of freedom of domain j with index dofIdxGlobalJ | 
| pvIdxJ | the index of the primary variable of domain j which has been updated |