version 3.10-dev
Dumux::PoreNetwork::Throat Namespace Reference

Enumerations

enum class  Shape {
  scaleneTriangle , equilateralTriangle , square , rectangle ,
  circle , twoPlates , polygon
}
 Collection of different pore-throat shapes. More...
 

Functions

std::string shapeToString (Shape s)
 Get the shape from a string description of the shape. More...
 
Shape shapeFromString (const std::string &s)
 Get the shape from a string description of the shape. More...
 
template<class Scalar >
Scalar averagedRadius (const Scalar poreRadiusOne, const Scalar poreRadiusTwo, const Scalar centerTocenterDist, const Scalar n=0.1)
 Returns the radius of a pore throat. More...
 
template<class Scalar >
Dune::ReservedVector< Scalar, 4 > cornerHalfAngles (Shape shape)
 Returns the corner half angle. More...
 
template<class Scalar >
constexpr Scalar shapeFactorEquilateralTriangle () noexcept
 Returns the value of the shape factor for an equilateral triangle. More...
 
template<class Scalar >
constexpr Scalar shapeFactorSquare () noexcept
 Returns the value of the shape factor for a square. More...
 
template<class Scalar >
constexpr Scalar shapeFactorRectangle (const Scalar inscribedRadius, const Scalar height) noexcept
 Returns the value of the shape factor for a rectangle. More...
 
template<class Scalar >
constexpr Scalar shapeFactorCircle () noexcept
 Returns the value of the shape factor for a circle. More...
 
template<class Scalar >
Scalar shapeFactor (Shape shape, const Scalar inscribedRadius)
 Returns the value of the shape factor for a given shape. More...
 
template<class Scalar >
constexpr Shape shape (const Scalar shapeFactor) noexcept
 Returns the shape for a given shape factor. More...
 
bool isRegularShape (Shape shape)
 Returns if a shape is regular. More...
 
template<class Scalar >
Scalar totalCrossSectionalArea (const Shape shape, const Scalar inscribedRadius)
 Returns the cross-sectional area of a given geometry. More...
 
template<class Scalar >
constexpr Scalar totalCrossSectionalAreaForRectangle (const Scalar inscribedRadius, const Scalar height) noexcept
 Returns the cross-sectional area of a rectangle. More...
 
std::size_t numCorners (Shape shape)
 Returns the number of corners of a given geometry. More...
 
template<class Scalar >
constexpr Scalar wettingLayerCrossSectionalArea (const Scalar curvatureRadius, const Scalar contactAngle, const Scalar cornerHalfAngle) noexcept
 Return the cross-sectional area of a wetting layer residing in a corner of a throat. More...
 

Enumeration Type Documentation

◆ Shape

Enumerator
scaleneTriangle 
equilateralTriangle 
square 
rectangle 
circle 
twoPlates 
polygon 

Function Documentation

◆ averagedRadius()

template<class Scalar >
Scalar Dumux::PoreNetwork::Throat::averagedRadius ( const Scalar  poreRadiusOne,
const Scalar  poreRadiusTwo,
const Scalar  centerTocenterDist,
const Scalar  n = 0.1 
)
inline
Parameters
poreRadiusOneThe radius of the first pore
poreRadiusTwoThe radius of the second pore
centerTocenterDistThe center-to-center distance between the pores
nFitting parameter

Joekar-Niasar et al. (2008) https://doi.org/10.1007/s11242-007-9191-7

◆ cornerHalfAngles()

template<class Scalar >
Dune::ReservedVector< Scalar, 4 > Dumux::PoreNetwork::Throat::cornerHalfAngles ( Shape  shape)
inline

◆ isRegularShape()

bool Dumux::PoreNetwork::Throat::isRegularShape ( Shape  shape)
inline

◆ numCorners()

std::size_t Dumux::PoreNetwork::Throat::numCorners ( Shape  shape)
inline

◆ shape()

template<class Scalar >
constexpr Shape Dumux::PoreNetwork::Throat::shape ( const Scalar  shapeFactor)
inlineconstexprnoexcept

◆ shapeFactor()

template<class Scalar >
Scalar Dumux::PoreNetwork::Throat::shapeFactor ( Shape  shape,
const Scalar  inscribedRadius 
)
inline

◆ shapeFactorCircle()

template<class Scalar >
constexpr Scalar Dumux::PoreNetwork::Throat::shapeFactorCircle ( )
inlineconstexprnoexcept

◆ shapeFactorEquilateralTriangle()

template<class Scalar >
constexpr Scalar Dumux::PoreNetwork::Throat::shapeFactorEquilateralTriangle ( )
inlineconstexprnoexcept

◆ shapeFactorRectangle()

template<class Scalar >
constexpr Scalar Dumux::PoreNetwork::Throat::shapeFactorRectangle ( const Scalar  inscribedRadius,
const Scalar  height 
)
inlineconstexprnoexcept

◆ shapeFactorSquare()

template<class Scalar >
constexpr Scalar Dumux::PoreNetwork::Throat::shapeFactorSquare ( )
inlineconstexprnoexcept

◆ shapeFromString()

Shape Dumux::PoreNetwork::Throat::shapeFromString ( const std::string &  s)
inline

◆ shapeToString()

std::string Dumux::PoreNetwork::Throat::shapeToString ( Shape  s)
inline

◆ totalCrossSectionalArea()

template<class Scalar >
Scalar Dumux::PoreNetwork::Throat::totalCrossSectionalArea ( const Shape  shape,
const Scalar  inscribedRadius 
)
inline

◆ totalCrossSectionalAreaForRectangle()

template<class Scalar >
constexpr Scalar Dumux::PoreNetwork::Throat::totalCrossSectionalAreaForRectangle ( const Scalar  inscribedRadius,
const Scalar  height 
)
inlineconstexprnoexcept

◆ wettingLayerCrossSectionalArea()

template<class Scalar >
constexpr Scalar Dumux::PoreNetwork::Throat::wettingLayerCrossSectionalArea ( const Scalar  curvatureRadius,
const Scalar  contactAngle,
const Scalar  cornerHalfAngle 
)
inlineconstexprnoexcept
Parameters
curvatureRadiusThe radius of curvature within the throat (surfaceTension/pc)
contactAngleThe contact angle within the throat
cornerHalfAngleThe corner half-angle of the the throat's corner of interest

See, e.g, Valvatne & Blunt (2004), eq. A7 https://doi.org/10.1029/2003WR002627