7#ifndef DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_SOMERTON_TWO_P_HH
8#define DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_SOMERTON_TWO_P_HH
53 template<
class VolumeVariables>
56 using FluidSystem =
typename VolumeVariables::FluidSystem;
57 static_assert(FluidSystem::numPhases == 2,
"ThermalConductivitySomertonTwoP only works for two-phase fluid systems!");
58 static_assert((FluidSystem::isGas(0) && !FluidSystem::isGas(1)) || (!FluidSystem::isGas(0) && FluidSystem::isGas(1)),
59 "ThermalConductivitySomertonTwoP only works if one phase is gaseous and one is liquid!");
61 constexpr int liquidPhaseIdx = FluidSystem::isGas(0) ? 1 : 0;
62 constexpr int gasPhaseIdx = FluidSystem::isGas(0) ? 0 : 1;
64 const Scalar satLiquid = volVars.saturation(liquidPhaseIdx);
65 const Scalar lambdaLiquid = volVars.fluidThermalConductivity(liquidPhaseIdx);
66 const Scalar lambdaGas = volVars.fluidThermalConductivity(gasPhaseIdx);
67 const Scalar lambdaSolid = volVars.solidThermalConductivity();
68 const Scalar
porosity = volVars.porosity();
70 return effectiveThermalConductivity_(satLiquid, lambdaLiquid, lambdaGas, lambdaSolid,
porosity);
85 static Scalar effectiveThermalConductivity_(
const Scalar satLiquid,
86 const Scalar lambdaLiquid,
87 const Scalar lambdaGas,
88 const Scalar lambdaSolid,
94 const Scalar satLiquidPhysical = max<Scalar>(0.0, satLiquid);
96 const Scalar lambdaSaturated = lambdaSolid * pow(lambdaLiquid / lambdaSolid,
porosity);
97 const Scalar lambdaDry = lambdaSolid * pow(lambdaGas / lambdaSolid,
porosity);
99 return lambdaDry + sqrt(satLiquidPhysical) * (lambdaSaturated - lambdaDry);
104template<
class Scalar>
105using ThermalConductivitySomerton [[deprecated(
"Use ThermalConductivitySomertonTwoP. Will be removed after 3.9.")]] = ThermalConductivitySomertonTwoP<Scalar>;
Effective thermal conductivity after Somerton.
Definition: somerton.hh:46
static Scalar effectiveThermalConductivity(const VolumeVariables &volVars)
Effective thermal conductivity in for two phases.
Definition: somerton.hh:54
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:127