version 3.8.0
Loading...
Searching...
No Matches
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.
 
Shape shapeFromString (const std::string &s)
 Get the shape from a string description of the shape.
 
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.
 
template<class Scalar >
Dune::ReservedVector< Scalar, 4 > cornerHalfAngles (Shape shape)
 Returns the corner half angle.
 
template<class Scalar >
constexpr Scalar shapeFactorEquilateralTriangle () noexcept
 Returns the value of the shape factor for an equilateral triangle.
 
template<class Scalar >
constexpr Scalar shapeFactorSquare () noexcept
 Returns the value of the shape factor for a square.
 
template<class Scalar >
constexpr Scalar shapeFactorRectangle (const Scalar inscribedRadius, const Scalar height) noexcept
 Returns the value of the shape factor for a rectangle.
 
template<class Scalar >
constexpr Scalar shapeFactorCircle () noexcept
 Returns the value of the shape factor for a circle.
 
template<class Scalar >
Scalar shapeFactor (Shape shape, const Scalar inscribedRadius)
 Returns the value of the shape factor for a given shape.
 
template<class Scalar >
constexpr Shape shape (const Scalar shapeFactor) noexcept
 Returns the shape for a given shape factor.
 
bool isRegularShape (Shape shape)
 Returns if a shape is regular.
 
template<class Scalar >
Scalar totalCrossSectionalArea (const Shape shape, const Scalar inscribedRadius)
 Returns the cross-sectional area of a given geometry.
 
template<class Scalar >
constexpr Scalar totalCrossSectionalAreaForRectangle (const Scalar inscribedRadius, const Scalar height) noexcept
 Returns the cross-sectional area of a rectangle.
 
std::size_t numCorners (Shape shape)
 Returns the number of corners of a given geometry.
 
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.
 

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