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

Description

Files

file  circleaveragepointsourcetraits.hh
 Point source traits for average-based coupling modes.
 
file  circlepoints.hh
 Helper function to compute points on a circle.
 
file  couplingmanager1d3d.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain.
 
file  couplingmanager1d3d_average.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain.
 
file  couplingmanager1d3d_kernel.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain.
 
file  couplingmanager1d3d_line.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain.
 
file  couplingmanager1d3d_projection.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain with spatially resolved interface.
 
file  couplingmanager1d3d_surface.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain.
 
file  couplingmanager2d3d.hh
 Coupling manager for embedded fractures.
 
file  couplingmanagerbase.hh
 Coupling manager for low-dimensional domains embedded in the bulk domain. Point sources on each integration point are computed by an AABB tree.
 
file  cylinderintegration.hh
 Integration over cylindrical and elliptic cylindrical domains Lowest order integration formulas that are mostly useful to evenly distribute mass in a cylindrical domain.
 
file  embedded/extendedsourcestencil.hh
 Extended source stencil helper class for coupling managers.
 
file  integrationpointsource.hh
 An integration point source class, i.e. sources located at a single point in space associated with a quadrature point.
 
file  localrefinementquadrature.hh
 A quadrature rule using local refinement to approximate partitioned elements.
 
file  pointsourcedata.hh
 Data associated with a point source.
 

Classes

class  Dumux::Embedded1d3dCouplingManager< MDTraits, CouplingMode >
 Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree. More...
 
class  Dumux::Embedded1d3dCouplingManager< MDTraits, Embedded1d3dCouplingMode::Average >
 Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree. More...
 
class  Dumux::Embedded1d3dCouplingManager< MDTraits, Embedded1d3dCouplingMode::Kernel >
 Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree. More...
 
class  Dumux::Embedded1d3dCouplingManager< MDTraits, Embedded1d3dCouplingMode::Line >
 Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree. More...
 
class  Dumux::Detail::SegmentNetwork< GridGeometry >
 Segment representation of a 1d network grid. More...
 
class  Dumux::Detail::NetworkIndicatorFunction< Network >
 Get the closest segment for a given surface point. More...
 
class  Dumux::Detail::DebugIntersectionVTKOutput
 Simple legacy VTK writer for outputting debug data on the coupling interface. More...
 
class  Dumux::Embedded1d3dCouplingManager< MDTraits, Embedded1d3dCouplingMode::Projection >
 Manages the coupling between bulk elements and lower dimensional elements. More...
 
class  Dumux::Embedded1d3dCouplingManager< MDTraits, Embedded1d3dCouplingMode::Surface >
 Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree. More...
 
class  Dumux::EmbeddedCouplingManager2d3d< MDTraits >
 Coupling manager for embedded fractures. More...
 
class  Dumux::EmbeddedCouplingManagerBase< MDTraits, Implementation, PSTraits >
 Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree. More...
 
class  Dumux::EmbeddedCoupling::CylinderIntegration< Scalar >
 Helper class to integrate over a cylinder domain. More...
 
class  Dumux::EmbeddedCoupling::EllipticCylinderIntegration< Scalar >
 Helper class to integrate over an elliptic cylinder domain. More...
 
class  Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >
 Helper class to integrate over an elliptic domain. More...
 
class  Dumux::EmbeddedCoupling::ExtendedSourceStencil< CouplingManager >
 A class managing an extended source stencil. More...
 
class  Dumux::IntegrationPointSource< GlobalPosition, SourceValues, IdType >
 An integration point source class with an identifier to attach data and a quadrature weight and integration element. More...
 
class  Dumux::IntegrationPointSourceHelper
 A helper class calculating a DOF-index to point source map. More...
 
class  Dumux::LocalRefinementSimplexQuadrature< Geometry, IndicatorFunction >
 A quadrature rule using local refinement to approximate partitioned elements. More...
 
class  Dumux::PointSourceData< MDTraits >
 A point source data class used for integration in multidimensional models. More...
 
class  Dumux::PointSourceDataCircleAverage< MDTraits >
 A point source data class used for integration in multidimensional models. More...
 

Functions

template<class GlobalPosition , class Scalar >
void Dumux::EmbeddedCoupling::circlePoints (std::vector< GlobalPosition > &points, const std::vector< Scalar > &sincos, const GlobalPosition &center, const GlobalPosition &normal, const Scalar radius)
 
template<class Scalar = double>
std::vector< Scalar > Dumux::EmbeddedCoupling::circlePointsSinCos (const std::size_t numPoints)
 returns a vector of sin and cos values of a circle parametrization More...
 
template<class GlobalPosition , class Scalar >
std::vector< GlobalPosition > Dumux::EmbeddedCoupling::circlePoints (const GlobalPosition &center, const GlobalPosition &normal, const Scalar radius, const std::size_t numPoints=20)
 returns a vector of points on a circle More...
 

Function Documentation

◆ circlePoints() [1/2]

template<class GlobalPosition , class Scalar >
std::vector< GlobalPosition > Dumux::EmbeddedCoupling::circlePoints ( const GlobalPosition &  center,
const GlobalPosition &  normal,
const Scalar  radius,
const std::size_t  numPoints = 20 
)
Parameters
centerthe circle center
normalthe normal to the circle plane
radiusthe circle radius
numPointsthe number of points

◆ circlePoints() [2/2]

template<class GlobalPosition , class Scalar >
void Dumux::EmbeddedCoupling::circlePoints ( std::vector< GlobalPosition > &  points,
const std::vector< Scalar > &  sincos,
const GlobalPosition &  center,
const GlobalPosition &  normal,
const Scalar  radius 
)
Parameters
pointsa vector of points to be filled
sincosvector with [sin(a0), cos(a0), sin(a1), cos(a1), ...] for each circumferential sample point ai
centerthe circle center
normalthe normal to the circle plane
radiusthe circle radius
Note
This version allows for a more efficient circle point generator if the circumferential positions are fixed and can be reused. In this case, sine and cosine of the corresponding angles can be precomputed.

◆ circlePointsSinCos()

template<class Scalar = double>
std::vector< Scalar > Dumux::EmbeddedCoupling::circlePointsSinCos ( const std::size_t  numPoints)
Parameters
numPointsthe number of points