26#ifndef DUMUX_MATERIAL_FLUIDMATRIX_TWO_P_INTERFACIAL_AREA_EXPONENTIAL_CUBIC
27#define DUMUX_MATERIAL_FLUIDMATRIX_TWO_P_INTERFACIAL_AREA_EXPONENTIAL_CUBIC
30#include <dune/common/exceptions.hh>
31#include <dune/common/float_cmp.hh>
45 template<
class Scalar>
49 : a1_(
a1), a2_(
a2), a3_(
a3) {}
51 Scalar
a1()
const {
return a1_; }
54 Scalar
a2()
const {
return a2_; }
57 Scalar
a3()
const {
return a3_; }
62 return Dune::FloatCmp::eq(
a1(), p.
a1(), 1e-6)
63 && Dune::FloatCmp::eq(
a2(), p.
a2(), 1e-6)
64 && Dune::FloatCmp::eq(
a3(), p.
a3(), 1e-6);
75 template<
class Scalar =
double>
78 const auto a1 = getParamFromGroup<Scalar>(paramGroup,
"A1");
79 const auto a2 = getParamFromGroup<Scalar>(paramGroup,
"A2");
80 const auto a3 = getParamFromGroup<Scalar>(paramGroup,
"A3");
95 template<
class Scalar>
99 const Scalar a1 = params.
a1();
100 const Scalar a2 = params.
a2();
101 const Scalar a3 = params.
a3();
104 return a1 * exp( a2 * swe) + a3 * pc * pc * pc ;
The infrastructure to retrieve run-time parameters from Dune::ParameterTrees.
Definition: brookscorey.hh:35
Implementation of a exponential function relating specific interfacial area to wetting phase saturati...
Definition: exponentialcubic.hh:42
static Params< Scalar > makeParams(const std::string ¶mGroup)
Construct from a subgroup from the global parameter tree.
Definition: exponentialcubic.hh:76
static Scalar area(const Scalar swe, const Scalar pc, const Params< Scalar > ¶ms)
The interfacial area.
Definition: exponentialcubic.hh:96
Definition: exponentialcubic.hh:47
void setA2(Scalar a2)
Definition: exponentialcubic.hh:55
Params(Scalar a1=0, Scalar a2=0, Scalar a3=0)
Definition: exponentialcubic.hh:48
Scalar a1() const
Definition: exponentialcubic.hh:51
void setA1(Scalar a1)
Definition: exponentialcubic.hh:52
bool operator==(const Params &p) const
Definition: exponentialcubic.hh:60
Scalar a2() const
Definition: exponentialcubic.hh:54
Scalar a3() const
Definition: exponentialcubic.hh:57
void setA3(Scalar a3)
Definition: exponentialcubic.hh:58