13#ifndef DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_JOHANSEN_HH
14#define DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_JOHANSEN_HH
58 template<
class VolumeVariables>
61 using FluidSystem =
typename VolumeVariables::FluidSystem;
62 static_assert(FluidSystem::numPhases == 2,
"ThermalConductivitySomerton only works for two-phase fluid systems!");
65 const Scalar sw = volVars.saturation(volVars.wettingPhase());
66 const Scalar lambdaW = volVars.fluidThermalConductivity(volVars.wettingPhase());
67 const Scalar lambdaN = volVars.fluidThermalConductivity(1-volVars.wettingPhase());
68 const Scalar lambdaSolid = volVars.solidThermalConductivity();
69 const Scalar
porosity = volVars.porosity();
70 const Scalar rhoSolid = volVars.solidDensity();
72 return effectiveThermalConductivity_(sw, lambdaW, lambdaN, lambdaSolid,
porosity, rhoSolid);
88 static Scalar effectiveThermalConductivity_(
const Scalar Sw,
91 const Scalar lambdaSolid,
93 const Scalar rhoSolid)
96 const Scalar satW = max<Scalar>(0.0, Sw);
98 const Scalar kappa = 15.6;
99 const Scalar rhoBulk = rhoSolid*
porosity;
103 const Scalar lambdaSaturated = lambdaSolid * pow(lambdaW / lambdaSolid,
porosity);
104 const Scalar lambdaDry = (0.135*rhoBulk + 64.7)/(rhoSolid - 0.947*rhoBulk);
105 const Scalar Ke = (kappa*satW)/(1+(kappa-1)*satW);
107 return lambdaDry + Ke * (lambdaSaturated - lambdaDry);
Relation for the saturation-dependent effective thermal conductivity.
Definition: johansen.hh:51
static Scalar effectiveThermalConductivity(const VolumeVariables &volVars)
Effective thermal conductivity in for two phases.
Definition: johansen.hh:59
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:127