OGS
ClausiusClapeyron.h
Go to the documentation of this file.
1
13#pragma once
14
17
18namespace MaterialPropertyLib
19{
20class Medium;
21class Phase;
22class Component;
29class ClausiusClapeyron final : public Property
30{
31public:
32 explicit ClausiusClapeyron(std::string name,
33 const double triple_temperature,
34 const double triple_pressure,
35 const double critical_temperature,
36 const double critical_pressure,
37 const double ref_temperature,
38 const double ref_pressure);
39
40 void checkScale() const override;
41
42 PropertyDataType value(VariableArray const& variable_array,
44 double const t,
45 double const dt) const override;
46 PropertyDataType dValue(VariableArray const& variable_array,
47 Variable const variable,
49 double const t,
50 double const dt) const override;
51 PropertyDataType d2Value(VariableArray const& variable_array,
52 Variable const variable1,
53 Variable const variable2,
55 double const t,
56 double const dt) const override;
57
58private:
59 double T_triple_;
60 double p_triple_;
63 double T_ref_;
64 double p_ref_;
65
66 double molarMass(std::variant<Medium*, Phase*, Component*> const scale,
67 VariableArray const& variable_array,
68 ParameterLib::SpatialPosition const& pos, double const t,
69 double const dt) const;
70};
71
72} // namespace MaterialPropertyLib
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
ClausiusClapeyron(std::string name, const double triple_temperature, const double triple_pressure, const double critical_temperature, const double critical_pressure, const double ref_temperature, const double ref_pressure)
PropertyDataType d2Value(VariableArray const &variable_array, Variable const variable1, Variable const variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Default implementation: 2nd derivative of any constant property is zero.
double molarMass(std::variant< Medium *, Phase *, Component * > const scale, VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
virtual PropertyDataType value() const
Definition Property.cpp:76
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 >, Eigen::MatrixXd > PropertyDataType
Definition Property.h:31