OGS
PengRobinson.h
Go to the documentation of this file.
1
10#pragma once
11
16
17namespace MaterialPropertyLib
18{
58class PengRobinson final : public Property
59{
60public:
61 explicit PengRobinson(const double Tc, const double pc, const double omega)
62 : Tc_(Tc), pc_(pc), omega_(omega)
63 {
64 const double gas_constant =
66 a_ = 0.457235 * gas_constant * gas_constant * Tc_ * Tc_ / pc_;
67 b_ = 0.077796 * gas_constant * Tc_ / pc_;
68 }
69
71 MaterialPropertyLib::VariableArray const& variable_array,
72 ParameterLib::SpatialPosition const& pos, double const t,
73 double const dt) const override;
75 MaterialPropertyLib::VariableArray const& variable_array,
76 Variable const variable, ParameterLib::SpatialPosition const& pos,
77 double const t, double const dt) const override;
78
79private:
81 const double Tc_;
83 const double pc_;
85 const double omega_;
87 double a_;
89 double b_;
90};
91} // namespace MaterialPropertyLib
Peng-Robinson equation of state.
const double pc_
Critical pressure.
PropertyDataType dValue(MaterialPropertyLib::VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
const double Tc_
Critical temperature.
PengRobinson(const double Tc, const double pc, const double omega)
const double omega_
Acentric factor.
double b_
Parameter b (covolume)
double a_
Parameter a (cohesion pressure)
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