28#ifndef DUMUX_MATERIAL_FLUIDMATRIX_TWO_P_INTERFACIAL_AREA_PC_MAX
29#define DUMUX_MATERIAL_FLUIDMATRIX_TWO_P_INTERFACIAL_AREA_PC_MAX
32#include <dune/common/exceptions.hh>
33#include <dune/common/float_cmp.hh>
47 template<
class Scalar>
53 Scalar
pcMax()
const {
return pcMax_; }
56 Scalar
a1()
const {
return a1_; }
59 Scalar
a2()
const {
return a2_; }
62 Scalar
a3()
const {
return a3_; }
67 return Dune::FloatCmp::eq(
pcMax(), p.
pcMax(), 1e-6)
68 && Dune::FloatCmp::eq(
a1(), p.
a1(), 1e-6)
69 && Dune::FloatCmp::eq(
a2(), p.
a2(), 1e-6)
70 && Dune::FloatCmp::eq(
a3(), p.
a3(), 1e-6);
74 Scalar pcMax_, a1_, a2_, a3_;
81 template<
class Scalar =
double>
84 const auto pcMax = getParamFromGroup<Scalar>(paramGroup,
"PcMax");
85 const auto a1 = getParamFromGroup<Scalar>(paramGroup,
"A1");
86 const auto a2 = getParamFromGroup<Scalar>(paramGroup,
"A2");
87 const auto a3 = getParamFromGroup<Scalar>(paramGroup,
"A3");
88 return {pcMax, a1, a2, a3};
102 template<
class Scalar>
105 const Scalar a1 = params.
a1();
106 const Scalar a2 = params.
a2();
107 const Scalar a3 = params.
a3();
108 const Scalar pcMax = params.
pcMax();
109 return a1 * (pcMax-pc) * (1.0-swe) + a2*(pcMax-pc)*(pcMax-pc) * (1.-swe) + a3 * (pcMax-pc)*(1-swe)*(1-swe);
The infrastructure to retrieve run-time parameters from Dune::ParameterTrees.
Definition: brookscorey.hh:35
Implementation of the polynomial of second order relating specific interfacial area to wetting phase ...
Definition: pcmax.hh:44
static Scalar area(const Scalar swe, const Scalar pc, const Params< Scalar > ¶ms)
The interfacial area.
Definition: pcmax.hh:103
static Params< Scalar > makeParams(const std::string ¶mGroup)
Construct from a subgroup from the global parameter tree.
Definition: pcmax.hh:82
Scalar a2() const
Definition: pcmax.hh:59
void setA1(Scalar a1)
Definition: pcmax.hh:57
Params(Scalar pcMax=0, Scalar a1=0, Scalar a2=0, Scalar a3=0)
Definition: pcmax.hh:50
void setA3(Scalar a3)
Definition: pcmax.hh:63
Scalar a3() const
Definition: pcmax.hh:62
bool operator==(const Params &p) const
Definition: pcmax.hh:65
Scalar a1() const
Definition: pcmax.hh:56
void setA2(Scalar a2)
Definition: pcmax.hh:60
void setPcMax(Scalar pcMax)
Definition: pcmax.hh:54
Scalar pcMax() const
Definition: pcmax.hh:53