24#ifndef DUMUX_PLOT_THERMAL_CONDUCTIVITY_LAW_HH
25#define DUMUX_PLOT_THERMAL_CONDUCTIVITY_LAW_HH
34template<
class Scalar>
class GnuplotInterface;
40template<
class Scalar,
class ThermalConductivityModel,
class FS>
43 using FluidSystem = FS;
49 phase0Idx = FluidSystem::phase0Idx,
50 phase1Idx = FluidSystem::phase1Idx
70 lambdaW_ = FluidSystem::thermalConductivity(fluidstate, phase0Idx);
71 lambdaN_ = FluidSystem::thermalConductivity(fluidstate, phase1Idx);
90 Scalar lowerSat = 0.0,
91 Scalar upperSat = 1.0,
92 std::string curveName =
"lambdaeff",
93 std::string curveOptions =
"w l")
95 std::vector<Scalar> sw(numIntervals_+1);
96 std::vector<Scalar> lambda(numIntervals_+1);
97 Scalar satInterval = upperSat - lowerSat;
99 for (
int i = 0; i <= numIntervals_; i++)
101 sw[i] = lowerSat + satInterval * Scalar(i) / Scalar(numIntervals_);
102 VolumeVariables volVars(sw[i], lambdaN_, lambdaW_, lambdaSolid,
porosity, rhoSolid);
103 lambda[i] = ThermalConductivityModel::effectiveThermalConductivity(volVars);
111 class VolumeVariables
114 VolumeVariables(Scalar
saturation, Scalar lambdaN, Scalar lambdaW, Scalar lambdaSolid, Scalar
porosity, Scalar rhoSolid)
118 , lambdaSolid_(lambdaSolid)
120 , rhoSolid_(rhoSolid)
123 using FluidSystem =
typename PlotThermalConductivityModel::FluidSystem;
127 if (phaseIdx == wettingPhase())
130 return 1.0 - saturation_;
133 Scalar fluidThermalConductivity(
const int phaseIdx)
const
135 if (phaseIdx == wettingPhase())
141 int wettingPhase()
const
142 {
return phase0Idx; }
145 {
return porosity_; }
147 Scalar solidThermalConductivity()
const
148 {
return lambdaSolid_; }
150 Scalar solidDensity()
const
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
std::string temperature() noexcept
I/O name of temperature for equilibrium models.
Definition: name.hh:51
std::string saturation(int phaseIdx) noexcept
I/O name of saturation for multiphase systems.
Definition: name.hh:43
std::string pressure(int phaseIdx) noexcept
I/O name of pressure for multiphase systems.
Definition: name.hh:34
std::string porosity() noexcept
I/O name of porosity.
Definition: name.hh:139
Interface for passing data sets to a file and plotting them, if gnuplot is installed.
Definition: gnuplotinterface.hh:57
void addDataSetToPlot(const std::vector< Scalar > &x, const std::vector< Scalar > &y, const std::string &fileName, const std::string &options="with lines")
Adds a data set and writes a data file.
Definition: gnuplotinterface.hh:242
Interface for plotting the non-isothermal two-phase fluid-matrix-interaction laws.
Definition: plotthermalconductivitymodel.hh:42
void addlambdaeffcurve(GnuplotInterface< Scalar > &gnuplot, Scalar porosity, Scalar rhoSolid, Scalar lambdaSolid, Scalar lowerSat=0.0, Scalar upperSat=1.0, std::string curveName="lambdaeff", std::string curveOptions="w l")
Add a effective thermal conductivity-saturation curve to the plot.
Definition: plotthermalconductivitymodel.hh:86
PlotThermalConductivityModel(Scalar temperature=283.15, Scalar pressure=1e5)
Constructor.
Definition: plotthermalconductivitymodel.hh:62
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Definition: compositional.hh:47
void setTemperature(Scalar value)
Set the temperature of all phases.
Definition: compositional.hh:318
void setPressure(int phaseIdx, Scalar value)
Set the fluid pressure of a phase .
Definition: compositional.hh:334