Coupling of several regular DuMux problems. More...
Coupling of several regular DuMux problems.
The multi domain module allows coupling regular DuMux problems. Several coupling modes are currently available.
Modules | |
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. | |
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 | couplingjacobianpattern.hh |
Helper function to generate Jacobian pattern for multi domain models. | |
file | multidomain/couplingmanager.hh |
The interface of the coupling manager for multi domain problems. | |
file | multidomain/couplingmanager.hh |
The interface of the coupling manager for multi domain problems. | |
file | multidomain/fvassembler.hh |
A linear system assembler (residual and Jacobian) for finite volume schemes with multiple domains. | |
file | multidomain/fvgridgeometry.hh |
Multidomain wrapper for multiple grid geometries. | |
file | multidomain/fvgridvariables.hh |
Multidomain wrapper for multiple grid variables. | |
file | multidomain/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 | multidomain/io/vtkoutputmodule.hh |
Multidomain wrapper for multiple vtk output modules. | |
file | multidomain/newtonsolver.hh |
file | staggeredcouplingmanager.hh |
The interface of the coupling manager for multi domain problems. | |
file | staggeredtraits.hh |
Linear algebra traits for mixeddimension problems. | |
file | subdomainboxlocalassembler.hh |
An assembler for Jacobian and residual contribution per element (box methods) for multidomain problems. | |
file | subdomaincclocalassembler.hh |
A multidomain local assembler for Jacobian and residual contribution per element (cell-centered methods) | |
file | subdomainstaggeredlocalassembler.hh |
A multidomain assembler for Jacobian and residual contribution per element (staggered method) | |
file | multidomain/traits.hh |
Traits for multidomain problems. | |
Typedefs | |
template<class DomainGridView , class TargetGridView , class DomainMapper , class TargetMapper > | |
using | Dumux::MultiDomainGlue = IntersectionEntitySet< GridViewGeometricEntitySet< DomainGridView, 0, DomainMapper >, GridViewGeometricEntitySet< TargetGridView, 0, TargetMapper > > |
A convenience alias for the IntersectionEntitySet of two GridViewGeometricEntitySets. More... | |
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==DiscretizationMethod::cctpfa)||(GridGeometryI::discMethod==DiscretizationMethod::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. More... | |
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. More... | |
template<class LocalAssemblerI , std::size_t j> | |
decltype(auto) | Dumux::StaggeredCouplingManager< MDTraits >::evalCouplingResidual (Dune::index_constant< faceIdx > domainI, const SubControlVolumeFace &scvfI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const |
evaluates the face residual of a coupled face of domain i which depends on the variables at the degree of freedom with index dofIdxGlobalJ of domain j More... | |
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 More... | |
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 More... | |
using Dumux::MultiDomainGlue = typedef IntersectionEntitySet<GridViewGeometricEntitySet<DomainGridView, 0, DomainMapper>, GridViewGeometricEntitySet<TargetGridView, 0, TargetMapper> > |
A convenience alias for the IntersectionEntitySet of two GridViewGeometricEntitySets.
|
inline |
evaluates the face residual of a coupled face of domain i which depends on the variables at the degree of freedom with index dofIdxGlobalJ of domain j
domainI | the domain index of domain i |
scvfI | the subcontrol volume face whose residual shall be evaluated 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 |
|
inline |
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
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 cell-centered schemes.
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)
Helper function to generate coupling Jacobian pattern (off-diagonal blocks) for the box scheme.
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.
domainGridGeometry | The grid geometry of the domain |
targetGridGeometry | The grid geometry of the target domain |
|
inline |
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
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 |