12#ifndef DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_JOHANSEN_HH
13#define DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_JOHANSEN_HH
65 template<
class VolumeVariables>
68 using FluidSystem =
typename VolumeVariables::FluidSystem;
69 static_assert(FluidSystem::numPhases == 2,
"ThermalConductivitySomerton only works for two-phase fluid systems!");
72 const Scalar sw = volVars.saturation(volVars.wettingPhase());
73 const Scalar lambdaW = volVars.fluidThermalConductivity(volVars.wettingPhase());
74 const Scalar lambdaN = volVars.fluidThermalConductivity(1-volVars.wettingPhase());
75 const Scalar lambdaSolid = volVars.solidThermalConductivity();
76 const Scalar
porosity = volVars.porosity();
77 const Scalar rhoSolid = volVars.solidDensity();
79 return effectiveThermalConductivity_(sw, lambdaW, lambdaN, lambdaSolid,
porosity, rhoSolid);
95 static Scalar effectiveThermalConductivity_(
const Scalar Sw,
98 const Scalar lambdaSolid,
100 const Scalar rhoSolid)
103 const Scalar satW = max<Scalar>(0.0, Sw);
105 const Scalar kappa = 15.6;
106 const Scalar rhoBulk = rhoSolid*
porosity;
109 const Scalar lambdaSaturated = lambdaSolid * pow(lambdaW / lambdaSolid,
porosity);
110 const Scalar lambdaDry = (0.135*rhoBulk + 64.7)/(rhoSolid - 0.947*rhoBulk);
111 const Scalar Ke = (kappa*satW)/(1+(kappa-1)*satW);
113 return lambdaDry + Ke * (lambdaSaturated - lambdaDry);
Relation for the saturation-dependent effective thermal conductivity.
Definition: johansen.hh:48
static Scalar effectiveThermalConductivity(const VolumeVariables &volVars)
Returns the effective thermal conductivity after Johansen (1975) .
Definition: johansen.hh:66
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:127