15#pragma GCC diagnostic push
16#pragma GCC diagnostic ignored "-Woverloaded-virtual"
48 virtual Real
rho_from_p_T(Real pressure, Real temperature)
const override;
51 Real pressure, Real temperature, Real &
rho, Real & drho_dp, Real & drho_dT)
const override;
53 virtual Real
mu_from_p_T(Real pressure, Real temperature)
const override;
56 Real pressure, Real temperature, Real &
mu, Real & dmu_dp, Real & dmu_dT)
const override;
58 virtual Real
mu_from_rho_T(Real density, Real temperature)
const override;
77 Real & dmu_dT)
const override;
79 virtual std::string
fluidName()
const override;
117 virtual void vaporPressure(Real temperature, Real & psat, Real & dpsat_dT)
const override;
143 virtual Real
p_from_rho_T(Real density, Real temperature)
const override;
156 virtual Real
k_from_p_T(Real pressure, Real temperature)
const override;
159 k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT)
const override;
161 virtual Real
k_from_rho_T(Real density, Real temperature)
const override;
164 virtual Real
alpha(Real delta, Real tau)
const override;
166 virtual Real
dalpha_ddelta(Real delta, Real tau)
const override;
168 virtual Real
dalpha_dtau(Real delta, Real tau)
const override;
172 virtual Real
d2alpha_dtau2(Real delta, Real tau)
const override;
192 const std::array<Real, 5>
_a0{{1.99427042, 0.62105248, 0.41195293, 1.04028922, 0.08327678}};
193 const std::array<Real, 5>
_theta0{{3.15163, 6.11190, 6.77708, 11.32384, 27.08792}};
196 const std::array<Real, 7>
_n1{{0.38856823203161,
203 const std::array<unsigned int, 7>
_d1{{1, 1, 1, 1, 2, 2, 3}};
204 const std::array<Real, 7>
_t1{{0.0, 0.75, 1.0, 2.0, 0.75, 2.0, 0.75}};
205 const std::array<Real, 27>
_n2{
206 {2.1658961543220, 1.5841735109724, -0.23132705405503, 0.058116916431436,
207 -0.55369137205382, 0.48946615909422, -0.024275739843501, 0.062494790501678,
208 -0.12175860225246, -0.37055685270086, -0.016775879700426, -0.11960736637987,
209 -0.045619362508778, 0.035612789270346, -0.0074427727132052, -0.0017395704902432,
210 -0.021810121289527, 0.024332166559236, -0.037440133423463, 0.14338715756878,
211 -0.13491969083286, -0.023151225053480, 0.012363125492901, 0.0021058321972940,
212 -0.00033958519026368, 0.0055993651771592, -0.00030335118055646}};
213 const std::array<unsigned int, 27>
_d2{
214 {1, 2, 4, 5, 5, 5, 6, 6, 6, 1, 1, 4, 4, 4, 7, 8, 2, 3, 3, 5, 5, 6, 7, 8, 10, 4, 8}};
215 const std::array<Real, 27>
_t2{{1.5, 1.5, 2.5, 0.0, 1.5, 2.0, 0.0, 1.0, 2.0,
216 3.0, 6.0, 3.0, 6.0, 8.0, 6.0, 0.0, 7.0, 12.0,
217 16.0, 22.0, 24.0, 16.0, 24.0, 8.0, 2.0, 28.0, 14.0}};
218 const std::array<unsigned int, 27>
_c2{
219 {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 6}};
220 const std::array<Real, 5>
_n3{
221 {-213.65488688320, 26641.569149272, -24027.212204557, -283.41603423999, 212.47284400179}};
222 const std::array<unsigned int, 5>
_d3{{2, 2, 2, 3, 3}};
223 const std::array<unsigned int, 5>
_t3{{1, 0, 1, 3, 3}};
224 const std::array<Real, 5>
_alpha3{{25.0, 25.0, 25.0, 15.0, 20.0}};
225 const std::array<Real, 5>
_beta3{{325.0, 300.0, 300.0, 275.0, 275.0}};
226 const std::array<Real, 5>
_gamma3{{1.16, 1.19, 1.19, 1.25, 1.22}};
227 const std::array<Real, 5>
_eps3{{1.0, 1.0, 1.0, 1.0, 1.0}};
228 const std::array<Real, 3>
_n4{{-0.66642276540751, 0.72608632349897, 0.055068668612842}};
229 const std::array<Real, 3>
_a4{{3.5, 3.5, 3.0}};
230 const std::array<Real, 3>
_b4{{0.875, 0.925, 0.875}};
231 const std::array<Real, 3>
_beta4{{0.3, 0.3, 0.3}};
232 const std::array<Real, 3>
_A4{{0.7, 0.7, 0.7}};
233 const std::array<Real, 3>
_B4{{0.3, 0.3, 1.0}};
234 const std::array<Real, 3>
_C4{{10.0, 10.0, 12.5}};
235 const std::array<Real, 3>
_D4{{275.0, 275.0, 275.0}};
238 const std::array<Real, 5>
_mu_a{{0.235156, -0.491266, 5.211155e-2, 5.347906e-2, -1.537102e-2}};
240 {0.4071119e-2, 0.7198037e-4, 0.2411697e-16, 0.2971072e-22, -0.1627888e-22}};
243 const std::array<Real, 3>
_k_g1{{0.0, 0.0, 1.5}};
244 const std::array<Real, 7>
_k_g2{{0.0, 1.0, 1.5, 1.5, 1.5, 3.5, 5.5}};
245 const std::array<unsigned int, 3>
_k_h1{{1, 5, 1}};
246 const std::array<unsigned int, 7>
_k_h2{{1, 2, 0, 5, 9, 0, 0}};
247 const std::array<Real, 3>
_k_n1{{7.69857587, 0.159885811, 1.56918621}};
249 {-6.73400790, 16.3890156, 3.69415242, 22.3205514, 66.1420950, -0.171779133, 0.00433043347}};
250 const std::array<Real, 12>
_k_a{
251 {3.0, 6.70697, 0.94604, 0.3, 0.3, 0.39751, 0.33791, 0.77963, 0.79857, 0.9, 0.02, 0.2}};
254#pragma GCC diagnostic pop
CO2 fluid properties Most thermophysical properties taken from: Span and Wagner, "A New Equation of S...
virtual Real p_from_rho_T(Real density, Real temperature) const override
Pressure as a function of density and temperature.
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
virtual Real criticalDensity() const override
Critical density.
virtual Real molarMass() const override
Molar mass [kg/mol].
Real meltingPressure(Real temperature) const
Melting pressure.
const std::array< unsigned int, 5 > _d3
virtual Real k_from_p_T(Real pressure, Real temperature) const override
const std::array< Real, 3 > _b4
const std::array< Real, 7 > _k_g2
const std::array< Real, 3 > _n4
virtual Real alpha(Real delta, Real tau) const override
Helmholtz free energy.
const std::array< Real, 3 > _D4
const Real _critical_pressure
Critical pressure (Pa)
virtual Real triplePointPressure() const override
Triple point pressure.
Real saturatedLiquidDensity(Real temperature) const
Saturated liquid density of CO2 Valid for temperatures between the triple point temperature and criti...
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta and tau.
const std::array< unsigned int, 7 > _k_h2
virtual void rho_mu_from_p_T(Real pressure, Real temperature, Real &rho, Real &mu) const override
Combined methods.
const std::array< Real, 7 > _k_n2
const std::array< Real, 27 > _n2
const std::array< unsigned int, 27 > _c2
virtual Real d2alpha_ddelta2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta.
const std::array< Real, 3 > _k_n1
virtual Real mu_from_rho_T(Real density, Real temperature) const override
const std::array< Real, 3 > _a4
const std::array< Real, 12 > _k_a
const std::array< unsigned int, 27 > _d2
const std::array< Real, 5 > _beta3
virtual Real mu_from_p_T(Real pressure, Real temperature) const override
virtual Real criticalTemperature() const override
Critical temperature.
const std::array< Real, 3 > _A4
const std::array< Real, 5 > _theta0
virtual std::vector< Real > henryCoefficients() const override
Henry's law coefficients for dissolution in water.
const std::array< Real, 7 > _t1
virtual Real dalpha_ddelta(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt delta.
const std::array< unsigned int, 3 > _k_h1
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.
const std::array< Real, 5 > _eps3
Real sublimationPressure(Real temperature) const
Sublimation pressure.
virtual Real k_from_rho_T(Real density, Real temperature) const override
const Real _Rco2
Specific gas constant (J/mol/K)
const std::array< Real, 7 > _n1
Coefficients for the residual component of the Helmholtz free energy.
const std::array< Real, 5 > _n3
const std::array< Real, 3 > _beta4
const std::array< Real, 5 > _mu_d
virtual Real triplePointTemperature() const override
Triple point temperature.
virtual Real criticalPressure() const override
Critical pressure.
const Real _critical_density
Critical density (kg/m^3)
const Real _triple_point_temperature
Triple point temperature (K)
virtual Real dalpha_dtau(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt tau.
Real partialDensity(Real temperature) const
Partial density of dissolved CO2 From Garcia, Density of aqueous solutions of CO2,...
const std::array< Real, 3 > _C4
virtual std::string fluidName() const override
Fluid name.
const Real _Mco2
Molar mass of CO2 (kg/mol)
const Real _critical_temperature
Critical temperature (K)
const std::array< Real, 5 > _mu_a
Coefficients for viscosity.
virtual Real d2alpha_dtau2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt tau.
const std::array< unsigned int, 7 > _d1
static InputParameters validParams()
const std::array< Real, 5 > _alpha3
const std::array< unsigned int, 5 > _t3
virtual ~CO2FluidProperties()
const std::array< Real, 5 > _a0
Coefficients for the ideal gas component of the Helmholtz free energy.
const std::array< Real, 3 > _k_g1
Coefficients for the thermal conductivity.
Real saturatedVaporDensity(Real temperature) const
Saturated vapor density of CO2 Valid for temperatures between the triple point temperature and critic...
const std::array< Real, 3 > _B4
const std::array< Real, 27 > _t2
const std::array< Real, 5 > _gamma3
const Real _triple_point_pressure
Triple point pressure (Pa)
Base class equation of state for fluids that use a Helmholtz free energy alpha(delta,...
const InputParameters & parameters() const