version 3.8
simplefluidlumping.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3//
4// SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
12#ifndef DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_SIMPLE_FLUID_LUMPING_HH
13#define DUMUX_MATERIAL_FLUIDMATRIX_THERMALCONDUCTIVITY_SIMPLE_FLUID_LUMPING_HH
14
15#include <assert.h>
16#include <algorithm>
17
18namespace Dumux {
19
24template<class Scalar>
26{
27public:
34 template<class VolumeVariables>
35 static Scalar effectiveThermalConductivity(const VolumeVariables& volVars)
36 {
37 using FluidSystem = typename VolumeVariables::FluidSystem;
38 const Scalar sw = volVars.saturation(FluidSystem::phase0Idx);
39 const Scalar lambdaW = volVars.fluidThermalConductivity(FluidSystem::phase0Idx);
40 const Scalar lambdaN = volVars.fluidThermalConductivity(FluidSystem::phase1Idx);
41 const Scalar lambdaSolid = volVars.solidThermalConductivity();
42 const Scalar porosity = volVars.porosity();
43
44 return effectiveThermalConductivity_(sw, lambdaW, lambdaN, lambdaSolid, porosity);
45 }
46
47private:
59 static Scalar effectiveThermalConductivity_(const Scalar sw,
60 const Scalar lambdaW,
61 const Scalar lambdaN,
62 const Scalar lambdaSolid,
63 const Scalar porosity)
64 {
65 // Franz Lindner / Shi & Wang 2011
66 using std::max;
67 const Scalar satW = max<Scalar>(0.0, sw);
68 return porosity * ( (1. - satW) * lambdaN + satW * lambdaW ) + (1.0 - porosity) * lambdaSolid ; ; // arithmetic
69 }
70};
71} // end namespace Dumux
72#endif
Relation for the saturation-dependent effective thermal conductivity.
Definition: simplefluidlumping.hh:26
static Scalar effectiveThermalConductivity(const VolumeVariables &volVars)
Effective thermal conductivity .
Definition: simplefluidlumping.hh:35
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:127
Definition: adapt.hh:17