24#ifndef DUMUX_MATERIAL_THERMALCONDUCTIVITY_JOHANSEN_HH
25#define DUMUX_MATERIAL_THERMALCONDUCTIVITY_JOHANSEN_HH
77 template<
class VolumeVariables>
80 using FluidSystem =
typename VolumeVariables::FluidSystem;
81 static_assert(FluidSystem::numPhases == 2,
"ThermalConductivitySomerton only works for two-phase fluid systems!");
84 const Scalar sw = volVars.saturation(volVars.wettingPhase());
85 const Scalar lambdaW = volVars.fluidThermalConductivity(volVars.wettingPhase());
86 const Scalar lambdaN = volVars.fluidThermalConductivity(1-volVars.wettingPhase());
87 const Scalar lambdaSolid = volVars.solidThermalConductivity();
88 const Scalar
porosity = volVars.porosity();
89 const Scalar rhoSolid = volVars.solidDensity();
91 return effectiveThermalConductivity_(sw, lambdaW, lambdaN, lambdaSolid,
porosity, rhoSolid);
107 static Scalar effectiveThermalConductivity_(
const Scalar Sw,
108 const Scalar lambdaW,
109 const Scalar lambdaN,
110 const Scalar lambdaSolid,
112 const Scalar rhoSolid)
115 const Scalar satW = max<Scalar>(0.0, Sw);
117 const Scalar kappa = 15.6;
118 const Scalar rhoBulk = rhoSolid*
porosity;
121 const Scalar lSat = lambdaSolid * pow(lambdaW / lambdaSolid,
porosity);
122 const Scalar lDry = (0.135*rhoBulk + 64.7)/(rhoSolid - 0.947*rhoBulk);
123 const Scalar Ke = (kappa*satW)/(1+(kappa-1)*satW);
125 return lDry + Ke * (lSat - lDry);
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:139
Relation for the saturation-dependent effective thermal conductivity.
Definition: thermalconductivityjohansen.hh:60
static Scalar effectiveThermalConductivity(const VolumeVariables &volVars)
Returns the effective thermal conductivity after Johansen (1975) .
Definition: thermalconductivityjohansen.hh:78