version 3.10-dev
Dumux::EmbeddedCoupling::EllipseIntegration< Scalar > Class Template Reference

Helper class to integrate over an elliptic domain. More...

#include <dumux/multidomain/embedded/cylinderintegration.hh>

Description

template<class Scalar>
class Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >
Note
This is mostly useful if the integral is known and the integral mass has to be locally distributed to some non-matching domain
The algorithm is based on evenly spaced area elements with rejection sampling. To improve the quality of the integral, increase the sample size.
The area integral of a constant function is exact See Koch et al. (2020) https://doi.org/10.1016/j.jcp.2020.109369

Public Member Functions

 EllipseIntegration (const Scalar relCharLength)
 Constructor. More...
 
void setGeometry (const GlobalPosition &center, const GlobalPosition &firstAxis, const GlobalPosition &secondAxis, int verbosity=0)
 set geometry of an ellipse More...
 
Scalar integrationElement (std::size_t i) const
 obtain ith integration element More...
 
const GlobalPosition & integrationPoint (std::size_t i) const
 obtain ith integration point More...
 
std::size_t size () const
 number of integration points More...
 

Constructor & Destructor Documentation

◆ EllipseIntegration()

template<class Scalar >
Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >::EllipseIntegration ( const Scalar  relCharLength)
inlineexplicit
Parameters
relCharLengthcharacteristic relative integration length (real number between 0 and 1)
Note
half the characteristic length means 2*2=4 times more integration points

Member Function Documentation

◆ integrationElement()

template<class Scalar >
Scalar Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >::integrationElement ( std::size_t  i) const
inline

◆ integrationPoint()

template<class Scalar >
const GlobalPosition & Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >::integrationPoint ( std::size_t  i) const
inline

◆ setGeometry()

template<class Scalar >
void Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >::setGeometry ( const GlobalPosition &  center,
const GlobalPosition &  firstAxis,
const GlobalPosition &  secondAxis,
int  verbosity = 0 
)
inline
Parameters
centerthe center position
firstAxisfirst ellipse axis (length corresponding to axis length)
secondAxissecond ellipse axis (length corresponding to axis length)
verbositythe verbosity level (default: 0 -> no terminal output)

◆ size()

template<class Scalar >
std::size_t Dumux::EmbeddedCoupling::EllipseIntegration< Scalar >::size ( ) const
inline

The documentation for this class was generated from the following file: