7#ifndef DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_JOHANSEN_HH
8#define DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_JOHANSEN_HH
52 template<
class VolumeVariables>
55 using FluidSystem =
typename VolumeVariables::FluidSystem;
56 static_assert(FluidSystem::numPhases == 2,
"ThermalConductivitySomerton only works for two-phase fluid systems!");
59 const Scalar sw = volVars.saturation(volVars.wettingPhase());
60 const Scalar lambdaW = volVars.fluidThermalConductivity(volVars.wettingPhase());
61 const Scalar lambdaN = volVars.fluidThermalConductivity(1-volVars.wettingPhase());
62 const Scalar lambdaSolid = volVars.solidThermalConductivity();
63 const Scalar
porosity = volVars.porosity();
64 const Scalar rhoSolid = volVars.solidDensity();
66 return effectiveThermalConductivity_(sw, lambdaW, lambdaN, lambdaSolid,
porosity, rhoSolid);
82 static Scalar effectiveThermalConductivity_(
const Scalar Sw,
85 const Scalar lambdaSolid,
87 const Scalar rhoSolid)
90 const Scalar satW = max<Scalar>(0.0, Sw);
92 const Scalar kappa = 15.6;
93 const Scalar rhoBulk = rhoSolid*
porosity;
97 const Scalar lambdaSaturated = lambdaSolid * pow(lambdaW / lambdaSolid,
porosity);
98 const Scalar lambdaDry = (0.135*rhoBulk + 64.7)/(rhoSolid - 0.947*rhoBulk);
99 const Scalar Ke = (kappa*satW)/(1+(kappa-1)*satW);
101 return lambdaDry + Ke * (lambdaSaturated - lambdaDry);
Relation for the saturation-dependent effective thermal conductivity.
Definition: johansen.hh:45
static Scalar effectiveThermalConductivity(const VolumeVariables &volVars)
Effective thermal conductivity in for two phases.
Definition: johansen.hh:53
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:127