12#ifndef DUMUX_IO_PLOT_PC_KR_SW_HH
13#define DUMUX_IO_PLOT_PC_KR_SW_HH
23template<
class Function,
class Range>
27 std::transform(range.begin(), range.end(), result.begin(), [&](
auto x){ return f(x); });
36template<
class PcKrSw,
class V>
46template<
class PcKrSw,
class V>
56template<
class PcKrSw,
class V>
66template<
class PcKrSw,
class V>
76template<
class PcKrSw,
class V>
79 return std::make_tuple(
89template<
class PcKrSw,
class V>
92 return std::make_tuple(
99template<
class S>
class GnuplotInterface;
102template<
class S,
class V>
104 const V& x,
const V& y,
105 const std::string& curveName,
106 const std::string& curveOptions,
107 const std::string& xLabel,
108 const std::string& yLabel)
126template<
class S,
class V>
128 const std::string& curveName =
"pc-sw",
129 const std::string& curveOptions =
"w l",
130 const std::string& xLabel =
"wetting phase saturation [-]",
131 const std::string& yLabel =
"capillary pressure [Pa]")
140template<
class S,
class V>
142 const std::string& curveName =
"dpc-dsw",
143 const std::string& curveOptions =
"w l",
144 const std::string& xLabel =
"wetting phase saturation [-]",
145 const std::string& yLabel =
"derivative of capillary pressure [Pa]")
154template<
class S,
class V>
156 const std::string& curveName =
"dsw-dpc",
157 const std::string& curveOptions =
"w l",
158 const std::string& xLabel =
"capillary pressure [Pa]",
159 const std::string& yLabel =
"derivative of saturation [1/Pa]")
168template<
class S,
class V>
170 const std::string& curveName =
"log10-pc-sw",
171 const std::string& curveOptions =
"w l",
172 const std::string& xLabel =
"wetting phase saturation [-]",
173 const std::string& yLabel =
"log10 of capillary pressure [Pa]")
182template<
class S,
class V>
184 const std::string& curveName =
"relperm",
185 const std::string& curveOptions =
"w l",
186 const std::string& xLabel =
"wetting phase saturation [-]",
187 const std::string& yLabel =
"relative permeability [-]")
197template<
class S,
class V>
199 const std::string& curveName =
"relperm_dsw",
200 const std::string& curveOptions =
"w l",
201 const std::string& xLabel =
"wetting phase saturation [-]",
202 const std::string& yLabel =
"derivative of the relative permeability [-]")
Interface for passing data sets to a file and plotting them, if gnuplot is installed.
Definition: gnuplotinterface.hh:45
void setXlabel(const std::string &label)
Sets the label for the x-axis.
Definition: gnuplotinterface.hh:267
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:230
void setYlabel(const std::string &label)
Sets the label for the y-axis.
Definition: gnuplotinterface.hh:277
PcKrSw(T &&) -> PcKrSw< T >
Deduction guide for the PcKrSw class. Makes sure that PcKrSw stores a copy of T if the constructor is...
Define some often used mathematical functions.
Range evalFunctionForRange(const Function &f, const Range &range)
Definition: plotpckrsw.hh:24
void addDataSetToGnuplot(GnuplotInterface< S > &gnuplot, const V &x, const V &y, const std::string &curveName, const std::string &curveOptions, const std::string &xLabel, const std::string &yLabel)
Definition: plotpckrsw.hh:103