25#ifndef DUMUX_PNM_THRESHOLD_CAPILLARY_PRESSURES_HH
26#define DUMUX_PNM_THRESHOLD_CAPILLARY_PRESSURES_HH
35 template<
class Scalar>
36 static constexpr Scalar
pcSnapoff(
const Scalar surfaceTension,
37 const Scalar contactAngle,
38 const Scalar inscribedRadius)
noexcept
42 const Scalar theta = contactAngle;
43 const Scalar cosTheta = std::cos(theta);
44 const Scalar sinTheta = std::sin(theta);
45 return surfaceTension / inscribedRadius * (cosTheta - sinTheta);
53 template<
class Scalar>
54 static constexpr Scalar
pcEntry(
const Scalar surfaceTension,
55 const Scalar contactAngle,
56 const Scalar inscribedRadius,
57 const Scalar shapeFactor)
noexcept
62 const Scalar theta = contactAngle;
63 const Scalar cosTheta = cos(theta);
64 const Scalar sinTheta = sin(theta);
66 const Scalar D = M_PI - 3*theta + 3*sinTheta*cosTheta - (cosTheta*cosTheta) / (4*shapeFactor);
67 const Scalar F = (1 + sqrt(1 + 4*shapeFactor*D / (cosTheta*cosTheta))) / (1 + 2*sqrt(M_PI*shapeFactor));
68 return surfaceTension / inscribedRadius * cosTheta * (1 + 2*sqrt(M_PI*shapeFactor)) * F;
Definition discretization/porenetwork/fvelementgeometry.hh:33
Definition thresholdcapillarypressures.hh:33
static constexpr Scalar pcSnapoff(const Scalar surfaceTension, const Scalar contactAngle, const Scalar inscribedRadius) noexcept
The snap-off capillary pressure of a pore throat.
Definition thresholdcapillarypressures.hh:36
static constexpr Scalar pcEntry(const Scalar surfaceTension, const Scalar contactAngle, const Scalar inscribedRadius, const Scalar shapeFactor) noexcept
The entry capillary pressure of a pore throat.
Definition thresholdcapillarypressures.hh:54