version 3.10-dev
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. More...

Description

Files

file  multidomain/facet/box/couplingmanager.hh
 
file  facet/box/couplingmapper.hh
 
file  multidomain/facet/box/darcyslaw.hh
 
file  multidomain/facet/box/fickslaw.hh
 
file  multidomain/facet/box/fourierslaw.hh
 
file  multidomain/facet/box/fvelementgeometry.hh
 
file  multidomain/facet/box/fvgridgeometry.hh
 Base class for the finite volume grid geometry for box models in the context of models considering coupling of different domains across the bulk grid facets. This builds up the sub control volumes and sub control volume faces for each element of the grid partition.
 
file  multidomain/facet/box/localresidual.hh
 Calculates the element-wise residual for the box scheme with coupling to a lower-dimensional domain occurring across the element facets.
 
file  multidomain/facet/box/properties.hh
 Properties (and default properties) for all models using the box scheme together with coupling across the grid element facets.
 
file  multidomain/facet/box/subcontrolvolumeface.hh
 Base class for a sub control volume face of the box method in the context of of models considering coupling of different domains across the bulk grid facets.
 
file  multidomain/facet/box/upwindscheme.hh
 Modified upwind scheme for models using the box scheme with coupling across element facets.
 
file  multidomain/facet/cellcentered/localresidual.hh
 Calculates the element-wise residual for cell-centered discretization schemes in models where coupling occurs across the element facets. This extra implementation is necessary as facets that lie on the boundary but couple to a facet element have to be treated differently.
 
file  multidomain/facet/cellcentered/mpfa/couplingmanager.hh
 
file  facet/cellcentered/mpfa/couplingmapper.hh
 
file  multidomain/facet/cellcentered/mpfa/interactionvolume.hh
 
file  multidomain/facet/cellcentered/mpfa/localassembler.hh
 
file  multidomain/facet/cellcentered/mpfa/localsubcontrolentities.hh
 Classes for sub control entities of the mpfa-o method in the context of facet coupling.
 
file  multidomain/facet/cellcentered/mpfa/properties.hh
 Properties (and default properties) for all models using cell-centered finite volume scheme with MPFA together with coupling across the grid element facets.
 
file  multidomain/facet/cellcentered/tpfa/couplingmanager.hh
 
file  facet/cellcentered/tpfa/couplingmapper.hh
 
file  multidomain/facet/cellcentered/tpfa/darcyslaw.hh
 
file  multidomain/facet/cellcentered/tpfa/fickslaw.hh
 
file  multidomain/facet/cellcentered/tpfa/fourierslaw.hh
 
file  multidomain/facet/cellcentered/tpfa/properties.hh
 Properties (and default properties) for all models using cell-centered finite volume scheme with TPFA together with coupling across the grid element facets.
 
file  multidomain/facet/cellcentered/upwindscheme.hh
 Modified upwind scheme for models using cell-centered schemes with coupling across element facets.
 
file  codimonegridadapter.hh
 
file  multidomain/facet/couplingmanager.hh
 
file  facet/couplingmapper.hh
 
file  couplingmapperbase.hh
 
file  enrichmenthelper.hh
 
file  gmshreader.hh
 
file  multidomain/facet/gridmanager.hh
 Contains the grid manager class that creates the grids in the context of hybrid-dimensional coupled models, where the (n-1)-dimensional domains live on the element facets of the n-dimensional domains. Also, it allows to extract a grid data object containing parameters passed to elements and/or boundary segments. All grids are constructed from a single grid file.
 
file  vertexmapper.hh
 

Classes

class  Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::Box >
 Manages the coupling between bulk elements and lower dimensional elements where the coupling occurs across the facets of the bulk grid. This implementation is to be used in conjunction with models using the box scheme in the bulk domain. More...
 
class  Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethods::Box >
 Base class for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). This specialization is for the bulk domain using the box scheme. More...
 
class  Dumux::BoxFacetCouplingDarcysLaw< Scalar, GridGeometry >
 Darcy's law for the box scheme in the context of coupled models where coupling occurs across the facets of the bulk domain elements with a lower-dimensional domain living on these facets. More...
 
class  Dumux::BoxFacetCouplingFicksLaw< TypeTag, referenceSystem >
 Ficks's law for the box scheme in the context of coupled models where coupling occurs across the facets of the bulk domain elements with a lower-dimensional domain living on these facets. More...
 
class  Dumux::BoxFacetCouplingFouriersLaw< TypeTag >
 Fourier's law for the box scheme in the context of coupled models where coupling occurs across the facets of the bulk domain elements with a lower-dimensional domain living on these facets. More...
 
class  Dumux::BoxFacetCouplingFVElementGeometry< GG, enableGridGeometryCache >
 Base class for the element-local finite volume geometry for box models in the context of models considering coupling of different domains across the bulk grid facets. This builds up the sub control volumes and sub control volume faces for an element. More...
 
struct  Dumux::BoxFacetCouplingDefaultGridGeometryTraits< GridView >
 The default traits for the finite volume grid geometry of the box scheme with coupling occurring across the element facets. Defines the scv and scvf types and the mapper types. More...
 
class  Dumux::BoxFacetCouplingFVGridGeometry< Scalar, GridView, enableGridGeometryCache, Traits >
 Base class for the finite volume geometry vector for box schemes in the context of coupled models where the coupling occurs across the element facets. This builds up the sub control volumes and sub control volume faces. More...
 
class  Dumux::BoxFacetCouplingFVGridGeometry< Scalar, GV, true, Traits >
 Base class for the finite volume geometry vector for box schemes in the context of coupled models where the coupling occurs across the element facets. This builds up the sub control volumes and sub control volume faces. More...
 
class  Dumux::BoxFacetCouplingFVGridGeometry< Scalar, GV, false, Traits >
 Base class for the finite volume geometry vector for box schemes This builds up the sub control volumes and sub control volume faces. More...
 
class  Dumux::BoxFacetCouplingLocalResidual< TypeTag >
 The element-wise residual for the box scheme. More...
 
class  Dumux::BoxFacetCouplingSubControlVolumeFace< GV, T >
 Class for a sub control volume face in the box method, i.e a part of the boundary of a sub control volume we compute fluxes on. This is a specialization for models considering coupling of different domains across the bulk grid facets. More...
 
class  Dumux::BoxFacetCouplingUpwindScheme< GridGeometry >
 The upwind scheme used for the advective fluxes. This is a modified scheme for models involving coupling with a lower-dimensional domain across the element facets. More...
 
class  Dumux::CCFacetCouplingLocalResidual< TypeTag >
 Calculates the element-wise residual for cell-centered discretization schemes in models where coupling occurs across the element facets. We only overwrite the function for the computation of a flux across a single sub-control volume face, as we need to additionally check if a boundary face couples to a facet element. More...
 
class  Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCMpfa >
 Manages the coupling between bulk elements and lower dimensional elements where the coupling occurs across the facets of the bulk grid. This implementation is to be used in conjunction with models using the cell-centered mpfa scheme. More...
 
class  Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethods::CCMpfa >
 Base class for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). This specialization is for the bulk domain using the cell-centered scheme with multi-point flux approximation. More...
 
struct  Dumux::CCMpfaOFacetCouplingDefaultInteractionVolumeTraits< NodalIndexSet, Scalar >
 The default interaction volume traits class for the mpfa-o method in the context of facet coupling. This uses dynamic types types for matrices/vectors in order to work on general grids. More...
 
class  Dumux::CCMpfaOFacetCouplingInteractionVolume< Traits >
 Forward declaration of the facet coupling MPFA-O interaction volume. More...
 
class  Dumux::MpfaOFacetCouplingInteractionVolumeAssembler< P, EG, EV >
 Specialization of the interaction volume-local assembler class for the schemes using an mpfa-o type assembly in the context of facet coupling. More...
 
class  Dumux::CCMpfaOFacetCouplingInteractionVolumeLocalScv< IvIndexSet, Scalar, dim, dimWorld >
 Class for the interaction volume-local sub-control volume used in the mpfa-o scheme in the context of facet coupling. More...
 
struct  Dumux::CCMpfaOFacetCouplingInteractionVolumeLocalScvf< IvIndexSet >
 Class for the interaction volume-local sub-control volume face used in the mpfa-o scheme in the context of facet coupling. More...
 
class  Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethods::CCTpfa >
 Manages the coupling between bulk elements and lower dimensional elements where the coupling occurs across the facets of the bulk grid. This implementation is to be used in conjunction with models using the cell-centered tpfa scheme. More...
 
class  Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethods::CCTpfa >
 Base class for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). This specialization is for the bulk domain using the cell-centered scheme with two-point flux approximation. More...
 
class  Dumux::CCTpfaFacetCouplingDarcysLawCache< AdvectionType, GridGeometry, isNetwork >
 The cache corresponding to tpfa Darcy's Law with facet coupling. More...
 
class  Dumux::CCTpfaFacetCouplingDarcysLawCache< AdvectionType, GridGeometry, false >
 Specialization of FacetCouplingTpfaDarcysLawCache for non-network grids. More...
 
class  Dumux::CCTpfaFacetCouplingDarcysLawImpl< ScalarType, GridGeometry, false >
 Specialization of CCTpfaFacetCouplingDarcysLawImpl for dim=dimWorld. More...
 
class  Dumux::CCTpfaFacetCouplingDarcysLawCache< AdvectionType, GridGeometry, true >
 Specialization of FacetCouplingTpfaDarcysLawCache for network grids. More...
 
class  Dumux::CCTpfaFacetCouplingDarcysLawImpl< ScalarType, GridGeometry, true >
 Specialization of CCTpfaFacetCouplingDarcysLawImpl for dim<dimWorld. More...
 
class  Dumux::CCTpfaFacetCouplingFicksLawImpl< TypeTag, referenceSystem, false >
 Specialization of CCTpfaFacetCouplingFicksLawImpl for dim=dimWorld. More...
 
class  Dumux::CCTpfaFacetCouplingFicksLawImpl< TypeTag, referenceSystem, true >
 Specialization of CCTpfaFacetCouplingFicksLawImpl for dim<dimWorld. More...
 
class  Dumux::CCTpfaFacetCouplingFouriersLawImpl< TypeTag, false >
 Specialization of CCTpfaFacetCouplingFouriersLawImpl for dim=dimWorld. More...
 
class  Dumux::CCTpfaFacetCouplingFouriersLawImpl< TypeTag, true >
 Specialization of CCTpfaFacetCouplingFouriersLawImpl for dim<dimWorld. More...
 
class  Dumux::CCFacetCouplingUpwindScheme< GridGeometry >
 The upwind scheme used for the advective fluxes. This is a modified scheme for models involving coupling with a lower-dimensional domain across the element facets. More...
 
class  Dumux::CodimOneGridAdapter< Embeddings, bulkGridId, facetGridId >
 Adapter that allows retrieving information on a d-dimensional grid for entities of a (d-1)-dimensional grid. This lower-dimensional grid is assumed to be facet-conforming to the d-dimensional grid. This class can be used in the context of models where a sub-domain lives on the facets of a bulk grid. More...
 
class  Dumux::FacetCouplingManager< MDTraits, CouplingMapper, bulkDomainId, lowDimDomainId, DiscretizationMethod >
 Implementation for the coupling manager between two domains of dimension d and (d-1) for models considering coupling across the bulk domain element facets. The implementations are specificto the discretization method used in the bulk domain, which is extracted automatically from the grid geometry corresponding to the provided bulk domain id. Implementations for the different methods have to be provided and included at the end of this file. More...
 
class  Dumux::FacetCouplingThreeDomainManager< MDTraits, CouplingMapper, bulkDomainId, facetDomainId, edgeDomainId >
 Class that handles the coupling between three sub-domains in models where the coupling between the two occurs across the facets of the d- and (d-1)- dimensional domains. More...
 
class  Dumux::FacetCouplingMapper< BulkFVG, LowDimFVG, bulkId, lowDimId, DiscretizationMethod >
 Implementation for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). The implementations are specific to the discretization method used in the bulk domain, which is extracted automatically from the bulk grid geometry. Implementations for the different methods have to be provided and included at the end of this file. More...
 
class  Dumux::FacetCouplingThreeDomainMapper< BulkFVG, FacetFVG, EdgeFVG, bulkId, facetId, edgeId >
 Specialization of the mapper class for the case of three domains with the grid dimensions d, (d-1) & (d-2). More...
 
class  Dumux::FacetCouplingMapperBase< BulkFVG, LowDimFVG, bulkId, lowDimId >
 Base class for the coupling mapper that sets up and stores the coupling maps between two domains of dimension d and (d-1). More...
 
class  Dumux::VertexEnrichmentHelper< GridView, CodimOneGridView >
 Specialization of the enrichment helper class for 2d grids. In this case, we look for two-dimensional bulk grid elements that are enclosed by (lie in between) two 1-dimensional facet grid elements. More...
 
class  Dumux::FacetCouplingGmshReader< BulkGrid, numGrids >
 Reads gmsh files where (n-1)-dimensional grids are defined on the faces or edges of n-dimensional grids. More...
 
class  Dumux::FacetCouplingGridDataWrapper< Grids >
 Grid data object to store element and boundary segment markers for all grids of the hierarchy. More...
 
class  Dumux::FacetCouplingEmbeddings< Grids >
 Contains the embeddings between grids with codimension one among the grid hierarchy. All these embedments are given in insertion indices as they are read directly from the grid. Therefore, this class furthermore allows access to the insertion indices of entities. Additionally, it gives access to the grid views of the different grids on the hierarchy. More...
 
class  Dumux::FacetCouplingGridManager< Grids >
 Creates the grids in the context of hybrid-dimensional coupled models, where the (n-1)-dimensional domains live on the element facets of the n-dimensional domains. More...
 
class  Dumux::EnrichmentIndicator
 An indicator class used to mark vertices for enrichment. This implementation marks all vertices of a given grid of codimension one for enrichment, except those that are connected to inmersed boundaries. More...
 
class  Dumux::EnrichedVertexDofMapper< GV >
 A vertex mapper that allows for enrichment of nodes. Indication on where to enrich the nodes is done on the basis of a grid of codimension one living on the facets of the bulk grid. More...
 

Typedefs

template<class ScalarType , class GridGeometry >
using Dumux::CCTpfaFacetCouplingDarcysLaw = CCTpfaFacetCouplingDarcysLawImpl< ScalarType, GridGeometry,(int(GridGeometry::GridView::dimension)< int(GridGeometry::GridView::dimensionworld)) >
 Darcy's law for cell-centered finite volume schemes with two-point flux approximation in the context of coupled models where the coupling occurs across the facets of the bulk domain elements with a lower-dimensional domain living on these facets. More...
 
template<class TypeTag , ReferenceSystemFormulation referenceSystem = ReferenceSystemFormulation::massAveraged>
using Dumux::CCTpfaFacetCouplingFicksLaw = CCTpfaFacetCouplingFicksLawImpl< TypeTag, referenceSystem,(int(GetPropType< TypeTag, Properties::GridGeometry >::GridView::dimension)< int(GetPropType< TypeTag, Properties::GridGeometry >::GridView::dimensionworld)) >
 Fick's law for cell-centered finite volume schemes with two-point flux approximation in the context of coupled models where the coupling occurs across the facets of the bulk domain elements with a lower-dimensional domain defined on these facets. More...
 
template<class TypeTag >
using Dumux::CCTpfaFacetCouplingFouriersLaw = CCTpfaFacetCouplingFouriersLawImpl< TypeTag,(int(GetPropType< TypeTag, Properties::GridGeometry >::GridView::dimension)< int(GetPropType< TypeTag, Properties::GridGeometry >::GridView::dimensionworld)) >
 Fouriers's law for cell-centered finite volume schemes with two-point flux approximation in the context of coupled models where the coupling occurs across the facets of the bulk domain elements with a lower-dimensional domain defined on these facets. More...
 

Functions

template<class VolumeVariables , class Problem , class SolutionVector , class FVGeometry >
void Dumux::FacetCoupling::makeInterpolatedVolVars (VolumeVariables &volVars, const Problem &problem, const SolutionVector &sol, const FVGeometry &fvGeometry, const typename FVGeometry::GridGeometry::GridView::template Codim< 0 >::Entity &element, const typename FVGeometry::GridGeometry::GridView::template Codim< 0 >::Entity::Geometry &elemGeom, const typename FVGeometry::GridGeometry::GridView::template Codim< 0 >::Entity::Geometry::GlobalCoordinate &pos)
 Free function that allows the creation of a volume variables object interpolated to a given position within an element. This is the standard implementation which simply interpolates the solution to the given position and then performs a volume variables update with the interpolated solution. More...
 

Typedef Documentation

◆ CCTpfaFacetCouplingDarcysLaw

template<class ScalarType , class GridGeometry >
using Dumux::CCTpfaFacetCouplingDarcysLaw = typedef CCTpfaFacetCouplingDarcysLawImpl< ScalarType, GridGeometry, ( int(GridGeometry::GridView::dimension) < int(GridGeometry::GridView::dimensionworld) ) >

◆ CCTpfaFacetCouplingFicksLaw

template<class TypeTag , ReferenceSystemFormulation referenceSystem = ReferenceSystemFormulation::massAveraged>
using Dumux::CCTpfaFacetCouplingFicksLaw = typedef CCTpfaFacetCouplingFicksLawImpl< TypeTag, referenceSystem, ( int(GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimension) < int(GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimensionworld) ) >

◆ CCTpfaFacetCouplingFouriersLaw

template<class TypeTag >
using Dumux::CCTpfaFacetCouplingFouriersLaw = typedef CCTpfaFacetCouplingFouriersLawImpl< TypeTag, ( int(GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimension) < int(GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimensionworld) ) >

Function Documentation

◆ makeInterpolatedVolVars()

template<class VolumeVariables , class Problem , class SolutionVector , class FVGeometry >
void Dumux::FacetCoupling::makeInterpolatedVolVars ( VolumeVariables &  volVars,
const Problem &  problem,
const SolutionVector &  sol,
const FVGeometry &  fvGeometry,
const typename FVGeometry::GridGeometry::GridView::template Codim< 0 >::Entity &  element,
const typename FVGeometry::GridGeometry::GridView::template Codim< 0 >::Entity::Geometry &  elemGeom,
const typename FVGeometry::GridGeometry::GridView::template Codim< 0 >::Entity::Geometry::GlobalCoordinate &  pos 
)
Note
This assumes element-wise constant parameters for the computation of secondary variables. For heteregeneous parameter distributions a default implementation cannot be defined and an adequate overload of this function has to be provided!
For cell-centered schemes this is an unnecessary overhead because all variables are constant within the cells and a volume variables update can usually be realized more efficiently. This function is mainly to be used for the box scheme!