CoolProp
CoolPropFluid.h
1 /*
2  * CoolPropFluid.h
3  *
4  * Created on: 20 Dec 2013
5  * Author: jowr
6  */
7 
8 #ifndef COOLPROPFLUID_H_
9 #define COOLPROPFLUID_H_
10 
11 #include "DataStructures.h"
12 #include "Helmholtz.h"
13 #include "Solvers.h"
14 
15 #include <numeric>
16 #include <string>
17 #include <vector>
18 #include <map>
19 #include <cassert>
20 #include <iterator>
21 #include "Eigen/Core"
22 #include "PolyMath.h"
23 #include "Ancillaries.h"
24 
25 namespace CoolProp {
26 
28 {
29  std::string EOS, CP0, VISCOSITY, CONDUCTIVITY, ECS_LENNARD_JONES, ECS_FITS, SURFACE_TENSION;
30 };
31 
33 {
34  double GWP20, GWP100, GWP500, ODP, HH, PH, FH;
35  std::string ASHRAE34;
36 };
38 {
39  double T_min, T_max, rhomolar_min, rhomolar_max;
40  std::vector<double> cL, cV;
41  bool enabled;
42  CriticalRegionSplines() : T_min(_HUGE), T_max(_HUGE), rhomolar_min(_HUGE), rhomolar_max(_HUGE), enabled(false){};
43 
44  const void get_densities(double T, double rho_min, double rho_crit, double rho_max, double& rhoL, double& rhoV) const {
45  int Nsoln = -1, Ngood = 0;
46  double rho1 = 0, rho2 = 0, rho3 = 0;
47 
48  // -----------
49  // Liquid part
50  // -----------
51  Ngood = 0;
52  solve_cubic(cL[0], cL[1], cL[2], cL[3] - T, Nsoln, rho1, rho2, rho3);
53  if (Nsoln == 1 && rho1 < rho_max && rho1 > rho_crit) {
54  rhoL = rho1;
55  } else {
56  if (rho1 < rho_max && rho1 > rho_crit) {
57  Ngood++;
58  rhoL = rho1;
59  }
60  if (rho2 < rho_max && rho2 > rho_crit) {
61  Ngood++;
62  rhoL = rho2;
63  }
64  if (Nsoln > 2 && rho3 < rho_max && rho3 > rho_crit) {
65  Ngood++;
66  rhoL = rho3;
67  }
68  if (Ngood > 1) {
69  throw ValueError(format("More than one liquid solution found for critical spline for T=%0.12g", T));
70  };
71  if (Ngood < 1) {
72  throw ValueError(format("No liquid solution found for critical spline for T=%0.12g", T));
73  };
74  }
75 
76  // ----------
77  // Vapor part
78  // ----------
79  Ngood = 0;
80  Nsoln = 0;
81  solve_cubic(cV[0], cV[1], cV[2], cV[3] - T, Nsoln, rho1, rho2, rho3);
82  if (Nsoln == 1 && rho1 > rho_min && rho1 < rho_crit) {
83  rhoV = rho1;
84  } else {
85  if (rho1 > rho_min && rho1 < rho_crit) {
86  Ngood++;
87  rhoV = rho1;
88  }
89  if (rho2 > rho_min && rho2 < rho_crit) {
90  Ngood++;
91  rhoV = rho2;
92  }
93  if (Nsoln > 2 && rho3 > rho_min && rho3 < rho_crit) {
94  Ngood++;
95  rhoV = rho3;
96  }
97  if (Ngood > 1) {
98  throw ValueError(format("More than one vapor solution found for critical spline for T=%0.12g", T));
99  };
100  if (Ngood < 1) {
101  throw ValueError(format("No vapor solution found for critical spline for T=%0.12g", T));
102  };
103  }
104  };
105 };
106 
108 struct EOSLimits
109 {
110  double Tmin, Tmax, rhomax, pmax;
111 };
112 
114 {
115  std::string reference_fluid;
116  CoolPropDbl psi_rhomolar_reducing, f_int_T_reducing;
117  std::vector<CoolPropDbl> psi_a, psi_t, f_int_a, f_int_t;
118 };
119 
121 {
122  std::vector<CoolPropDbl> A, t;
123 };
124 
126 {
127  CoolPropDbl T_reducing, p_reducing;
128  std::vector<CoolPropDbl> A, B, n, m;
129 };
131 {
132  enum ConductivityDiluteEnum
133  {
134  CONDUCTIVITY_DILUTE_RATIO_POLYNOMIALS,
135  CONDUCTIVITY_DILUTE_ETA0_AND_POLY,
136  CONDUCTIVITY_DILUTE_CO2,
137  CONDUCTIVITY_DILUTE_CO2_HUBER_JPCRD_2016,
138  CONDUCTIVITY_DILUTE_ETHANE,
139  CONDUCTIVITY_DILUTE_NONE,
140  CONDUCTIVITY_DILUTE_NOT_SET
141  };
142  int type;
143  ConductivityDiluteRatioPolynomialsData ratio_polynomials;
144  ConductivityDiluteEta0AndPolyData eta0_and_poly;
145 
147  type = CONDUCTIVITY_DILUTE_NOT_SET;
148  }
149 };
150 
152 {
153  CoolPropDbl T_reducing, rhomass_reducing;
154  std::vector<CoolPropDbl> A, t, d, gamma, l;
155 };
156 
158 {
159  CoolPropDbl T_reducing, rhomass_reducing;
160  std::vector<CoolPropDbl> B, t, d;
161 };
163 {
164  enum ConductivityResidualEnum
165  {
166  CONDUCTIVITY_RESIDUAL_POLYNOMIAL,
167  CONDUCTIVITY_RESIDUAL_POLYNOMIAL_AND_EXPONENTIAL,
168  CONDUCTIVITY_RESIDUAL_R123,
169  CONDUCTIVITY_RESIDUAL_CO2,
170  CONDUCTIVITY_RESIDUAL_NOT_SET
171  };
172  int type;
174  ConductivityResidualPolynomialAndExponentialData polynomial_and_exponential;
175 
177  type = CONDUCTIVITY_RESIDUAL_NOT_SET;
178  }
179 };
180 
182 {
183  CoolPropDbl k, R0, gamma, nu, GAMMA, zeta0, qD, T_reducing, p_reducing, T_ref;
185  : // Universal constants - can still be adjusted if need be
186  k(1.3806488e-23), //[J/K]
187  R0(1.03), //[-]
188  gamma(1.239), //[-]
189  nu(0.63), //[-]
190  // Suggested default values - can be over-written
191  GAMMA(0.0496), //[-]
192  zeta0(1.94e-10), //[m]
193  qD(2e9), //[m]
194  // Set to invalid number, can be provided in the JSON file
195  // T_ref default is 1.5*Tc
196  T_reducing(_HUGE),
197  p_reducing(_HUGE),
198  T_ref(_HUGE) {}
199 };
201 {
202  enum ConductivityResidualEnum
203  {
204  CONDUCTIVITY_CRITICAL_SIMPLIFIED_OLCHOWY_SENGERS,
205  CONDUCTIVITY_CRITICAL_R123,
206  CONDUCTIVITY_CRITICAL_AMMONIA,
207  CONDUCTIVITY_CRITICAL_NONE,
208  CONDUCTIVITY_CRITICAL_CARBONDIOXIDE_SCALABRIN_JPCRD_2006,
209  CONDUCTIVITY_CRITICAL_NOT_SET
210  };
211  int type;
213 
215  type = CONDUCTIVITY_CRITICAL_NOT_SET;
216  }
217 };
218 
221 {
222  CoolPropDbl molar_mass, C;
223  std::vector<CoolPropDbl> a, t;
224 };
226 {
227  CoolPropDbl T_reducing,
228  C;
229  std::vector<CoolPropDbl> a, t;
230 };
232 {
233  std::vector<CoolPropDbl> a, t;
234 };
236 {
237  std::vector<CoolPropDbl> a, t;
238  CoolPropDbl T_reducing;
239 };
241 {
243  {
252  VISCOSITY_DILUTE_NOT_SET
253  };
254  ViscosityDiluteType type;
261  type = VISCOSITY_DILUTE_NOT_SET;
262  }
263 };
264 
266 {
267  std::vector<CoolPropDbl> b, t;
268 };
270 {
271  std::vector<CoolPropDbl> n, d, t;
272  CoolPropDbl T_reducing, rhomolar_reducing;
273 };
274 
276 {
278  {
281  VISCOSITY_INITIAL_DENSITY_NOT_SET
282  };
287  type = VISCOSITY_INITIAL_DENSITY_NOT_SET;
288  }
289 };
290 
292 {
293  std::vector<CoolPropDbl> a, d1, d2, t1, t2, f, g, h, p, q, gamma, l;
294  CoolPropDbl T_reduce, rhomolar_reduce;
295 };
297 {
298  std::vector<CoolPropDbl> Aa, Aaa, Aaaa, Ar, Arr, Adrdr, Arrr, Ai, Aii, AdrAdr;
299  int Na, Naa, Naaa, Nr, Nrr, Nrrr, Nii;
300  CoolPropDbl c1, c2, T_reduce, rhomolar_reduce;
301 };
303 {
305  {
315  VISCOSITY_HIGHER_ORDER_NOT_SET
316  };
322  type = VISCOSITY_HIGHER_ORDER_NOT_SET;
323  };
324 };
325 
327 {
328  std::vector<double> c_liq, c_vap;
329  double C, x_crossover, rhosr_critical;
330 };
332 {
333  std::string reference_fluid;
334  CoolPropDbl psi_rhomolar_reducing;
335  std::vector<CoolPropDbl> psi_a, psi_t;
336 };
338 {
339  CoolPropDbl rhomolar_critical, acentric, T_critical, molar_mass, dipole_moment_D;
340 };
341 
343 {
344  public:
346  {
355  VISCOSITY_NOT_HARDCODED
356  };
358  {
364  CONDUCTIVITY_NOT_HARDCODED
365  };
366  ViscosityDiluteVariables viscosity_dilute;
367  ViscosityInitialDensityVariables viscosity_initial;
368  ViscosityHigherOrderVariables viscosity_higher_order;
369  ViscosityECSVariables viscosity_ecs;
370  ViscosityRhoSrVariables viscosity_rhosr;
371  ViscosityChungData viscosity_Chung;
372 
373  ConductivityDiluteVariables conductivity_dilute;
374  ConductivityResidualVariables conductivity_residual;
375  ConductivityCriticalVariables conductivity_critical;
376  ConductivityECSVariables conductivity_ecs;
377 
378  std::string BibTeX_viscosity,
379  BibTeX_conductivity;
386  CoolPropDbl sigma_eta,
387  epsilon_over_k;
391  : viscosity_using_ECS(false),
392  conductivity_using_ECS(false),
393  viscosity_using_Chung(false),
394  viscosity_using_rhosr(false),
395  viscosity_model_provided(false),
396  conductivity_model_provided(false),
397  sigma_eta(_HUGE),
398  epsilon_over_k(_HUGE),
399  hardcoded_viscosity(VISCOSITY_NOT_HARDCODED),
400  hardcoded_conductivity(CONDUCTIVITY_NOT_HARDCODED) {}
401 };
402 
404 {
405  SaturationAncillaryFunction pL, pV, rhoL, rhoV, hL, hLV, sL, sLV;
406  MeltingLineVariables melting_line;
407  SurfaceTensionCorrelation surface_tension;
408 };
409 
411 
419 {
420  public:
421  EquationOfState(){};
423  SimpleState reduce,
424  sat_min_liquid,
425  sat_min_vapor,
426  hs_anchor,
427  max_sat_T,
428  max_sat_p;
430  double R_u,
431  molar_mass,
432  acentric,
433  Ttriple,
434  ptriple;
435  bool pseudo_pure;
438  std::string BibTeX_EOS,
439  BibTeX_CP0;
442 
444  void validate() {
445  assert(R_u < 9 && R_u > 8);
446  assert(molar_mass > 0.001 && molar_mass < 1);
447  };
448  CoolPropDbl baser(const CoolPropDbl& tau, const CoolPropDbl& delta) {
449  return alphar.base(tau, delta);
450  };
451  // First partials
452  CoolPropDbl dalphar_dDelta(const CoolPropDbl& tau, const CoolPropDbl& delta) {
453  return alphar.dDelta(tau, delta);
454  };
455  CoolPropDbl dalphar_dTau(const CoolPropDbl& tau, const CoolPropDbl& delta) {
456  return alphar.dTau(tau, delta);
457  };
458  // Second partials
459  CoolPropDbl d2alphar_dDelta2(const CoolPropDbl& tau, const CoolPropDbl& delta) {
460  return alphar.dDelta2(tau, delta);
461  };
462  CoolPropDbl d2alphar_dDelta_dTau(const CoolPropDbl& tau, const CoolPropDbl& delta) {
463  return alphar.dDelta_dTau(tau, delta);
464  };
465  CoolPropDbl d2alphar_dTau2(const CoolPropDbl& tau, const CoolPropDbl& delta) {
466  return alphar.dTau2(tau, delta);
467  };
468  // Third partials
469  CoolPropDbl d3alphar_dDelta3(const CoolPropDbl& tau, const CoolPropDbl& delta) {
470  return alphar.dDelta3(tau, delta);
471  };
472  CoolPropDbl d3alphar_dDelta2_dTau(const CoolPropDbl& tau, const CoolPropDbl& delta) {
473  return alphar.dDelta2_dTau(tau, delta);
474  };
475  CoolPropDbl d3alphar_dDelta_dTau2(const CoolPropDbl& tau, const CoolPropDbl& delta) {
476  return alphar.dDelta_dTau2(tau, delta);
477  };
478  CoolPropDbl d3alphar_dTau3(const CoolPropDbl& tau, const CoolPropDbl& delta) {
479  return alphar.dTau3(tau, delta);
480  };
481 
482  CoolPropDbl base0(const CoolPropDbl& tau, const CoolPropDbl& delta) {
483  return alpha0.base(tau, delta);
484  };
485  // First partials
486  CoolPropDbl dalpha0_dDelta(const CoolPropDbl& tau, const CoolPropDbl& delta) {
487  return alpha0.dDelta(tau, delta);
488  };
489  CoolPropDbl dalpha0_dTau(const CoolPropDbl& tau, const CoolPropDbl& delta) {
490  return alpha0.dTau(tau, delta);
491  };
492  // Second partials
493  CoolPropDbl d2alpha0_dDelta2(const CoolPropDbl& tau, const CoolPropDbl& delta) {
494  return alpha0.dDelta2(tau, delta);
495  };
496  CoolPropDbl d2alpha0_dDelta_dTau(const CoolPropDbl& tau, const CoolPropDbl& delta) {
497  return alpha0.dDelta_dTau(tau, delta);
498  };
499  CoolPropDbl d2alpha0_dTau2(const CoolPropDbl& tau, const CoolPropDbl& delta) {
500  return alpha0.dTau2(tau, delta);
501  };
502  // Third partials
503  CoolPropDbl d3alpha0_dDelta3(const CoolPropDbl& tau, const CoolPropDbl& delta) {
504  return alpha0.dDelta3(tau, delta);
505  };
506  CoolPropDbl d3alpha0_dDelta2_dTau(const CoolPropDbl& tau, const CoolPropDbl& delta) {
507  return alpha0.dDelta2_dTau(tau, delta);
508  };
509  CoolPropDbl d3alpha0_dDelta_dTau2(const CoolPropDbl& tau, const CoolPropDbl& delta) {
510  return alpha0.dDelta_dTau2(tau, delta);
511  };
512  CoolPropDbl d3alpha0_dTau3(const CoolPropDbl& tau, const CoolPropDbl& delta) {
513  return alpha0.dTau3(tau, delta);
514  };
515 };
516 
518 
522 {
523  protected:
524  // Transport property data
525  std::string ECSReferenceFluid;
526  double ECS_qd;
527  public:
528  CoolPropFluid() : ECS_qd(-_HUGE) {
529  this->ChemSpider_id = -1;
530  };
531  ~CoolPropFluid(){};
532  const EquationOfState& EOS() const {
533  return EOSVector[0];
534  }
536  return EOSVector[0];
537  }
538  std::vector<EquationOfState> EOSVector;
539 
540  std::string name;
541  std::string
543  std::string CAS;
544  std::string formula;
545  std::vector<std::string> aliases;
546  std::string InChI;
547  std::string InChIKey;
548  std::string smiles;
550  std::string TwoDPNG_URL;
551 
555  TransportPropertyData transport;
556  SimpleState crit,
557  triple_liquid,
558  triple_vapor;
559 
560  double gas_constant() {
561  return EOS().R_u;
562  };
563  double molar_mass() {
564  return EOS().molar_mass;
565  };
566 };
567 
568 #if !defined(NO_FMTLIB) && FMT_VERSION >= 90000
569 inline int format_as(ViscosityDiluteVariables::ViscosityDiluteType type) {
570  return fmt::underlying(type);
571 }
572 
573 inline int format_as(TransportPropertyData::ViscosityHardcodedEnum viscosity) {
574  return fmt::underlying(viscosity);
575 }
576 
577 inline int format_as(TransportPropertyData::ConductivityHardcodedEnum conductivity) {
578  return fmt::underlying(conductivity);
579 }
580 #endif
581 
582 } /* namespace CoolProp */
583 #endif /* COOLPROPFLUID_H_ */
Use TransportRoutines::viscosity_o_xylene_hardcoded.
Definition: CoolPropFluid.h:353
Use TransportRoutines::viscosity_CO2_higher_order_hardcoded_LaeseckeJPCRD2017.
Definition: CoolPropFluid.h:313
ViscosityDiluteType
Definition: CoolPropFluid.h:242
The core class for an equation of state.
Definition: CoolPropFluid.h:418
Definition: CoolPropFluid.h:235
bool viscosity_using_rhosr
A flag for whether to use rho*sr CS model of Bell. False for no.
Definition: CoolPropFluid.h:383
ViscosityInitialDensityEmpiricalData empirical
Data for TransportRoutines::viscosity_initial_density_dependence_empirical.
Definition: CoolPropFluid.h:285
SimpleState sat_min_vapor
The saturated vapor state at the minimum saturation temperature.
Definition: CoolPropFluid.h:422
Use TransportRoutines::viscosity_hexane_higher_order_hardcoded.
Definition: CoolPropFluid.h:308
Use TransportRoutines::viscosity_p_xylene_hardcoded.
Definition: CoolPropFluid.h:354
ConductivityHardcodedEnum hardcoded_conductivity
Hardcoded flags for the conductivity.
Definition: CoolPropFluid.h:389
Use TransportRoutines::viscosity_heptane_higher_order_hardcoded.
Definition: CoolPropFluid.h:309
Ancillaries ancillaries
The set of ancillary equations for dewpoint, bubblepoint, surface tension, etc.
Definition: CoolPropFluid.h:554
std::string REFPROPname
The REFPROP-compliant name if REFPROP-"name" is not a compatible fluid name. If not included...
Definition: CoolPropFluid.h:542
bool pseudo_pure
Is a pseudo-pure fluid (true) or pure fluid (false)
Definition: CoolPropFluid.h:435
Definition: CoolPropFluid.h:113
Variables for the dilute gas part.
Definition: CoolPropFluid.h:220
int ChemSpider_id
The ChemSpider identifier for the fluid.
Definition: CoolPropFluid.h:549
Use TransportRoutines::viscosity_m_xylene_hardcoded.
Definition: CoolPropFluid.h:352
Use TransportRoutines::viscosity_water_hardcoded.
Definition: CoolPropFluid.h:347
Use TransportRoutines::conductivity_hardcoded_heavywater.
Definition: CoolPropFluid.h:360
A set of limits for the eos parameters.
Definition: CoolPropFluid.h:108
std::string ECSReferenceFluid
A string that gives the name of the fluids that should be used for the ECS method for transport prope...
Definition: CoolPropFluid.h:525
Use TransportRoutines::viscosity_benzene_higher_order_hardcoded.
Definition: CoolPropFluid.h:311
Definition: CoolPropFluid.h:120
This is generalized class that can be used to manage an ancillary curve, here they are ancillary curv...
Definition: Ancillaries.h:84
ViscosityDiluteCollisionIntegralPowersOfTstarData collision_integral_powers_of_Tstar
Data for TransportRoutines::viscosity_dilute_collision_integral_powers_of_T.
Definition: CoolPropFluid.h:257
ViscosityModifiedBatschinskiHildebrandData modified_Batschinski_Hildebrand
Data for TransportRoutines::viscosity_higher_order_modified_Batschinski_Hildebrand.
Definition: CoolPropFluid.h:319
EOSLimits limits
Limits on the EOS.
Definition: CoolPropFluid.h:429
Definition: CoolPropFluid.h:269
ViscosityRainWaterFriendData rainwater_friend
Data for TransportRoutines::viscosity_initial_density_dependence_Rainwater_Friend.
Definition: CoolPropFluid.h:284
The surface tension correlation class uses correlations for the surface tension that are all of the f...
Definition: Ancillaries.h:24
Use TransportRoutines::viscosity_initial_density_dependence_empirical.
Definition: CoolPropFluid.h:280
std::vector< EquationOfState > EOSVector
The equations of state that could be used for this fluid.
Definition: CoolPropFluid.h:538
Definition: CoolPropFluid.h:37
ConductivityHardcodedEnum
Definition: CoolPropFluid.h:357
Use TransportRoutines::conductivity_hardcoded_methane.
Definition: CoolPropFluid.h:363
bool conductivity_model_provided
A flag for whether thermal conductivity model is provided. False for no.
Definition: CoolPropFluid.h:385
Use TransportRoutines::viscosity_dilute_powers_of_T.
Definition: CoolPropFluid.h:250
Definition: Ancillaries.h:219
std::string formula
The chemical formula, in LaTeX form.
Definition: CoolPropFluid.h:544
Use TransportRoutines::viscosity_dilute_CO2_LaeseckeJPCRD2017.
Definition: CoolPropFluid.h:249
A thermophysical property provider for critical and reducing values as well as derivatives of Helmhol...
Definition: CoolPropFluid.h:521
std::string BibTeX_EOS
The bibtex key for the equation of state.
Definition: CoolPropFluid.h:438
Term in the ideal-gas specific heat equation that is based on Aly-Lee formulation ** Specific heat is...
Definition: Helmholtz.h:1339
CriticalRegionSplines critical_region_splines
A cubic spline in the form T = f(rho) for saturated liquid and saturated vapor curves in the near-cri...
Definition: CoolPropFluid.h:441
double Ttriple
Triple point temperature (K)
Definition: CoolPropFluid.h:430
std::vector< std::string > aliases
A vector of aliases of names for the fluid.
Definition: CoolPropFluid.h:545
Definition: CoolPropFluid.h:231
Definition: CoolPropFluid.h:157
Definition: CoolPropFluid.h:326
ViscosityFrictionTheoryData friction_theory
Data for TransportRoutines::viscosity_higher_order_friction_theory.
Definition: CoolPropFluid.h:320
Use TransportRoutines::viscosity_hydrogen_higher_order_hardcoded.
Definition: CoolPropFluid.h:307
const EquationOfState & EOS() const
Get a reference to the equation of state.
Definition: CoolPropFluid.h:532
Use TransportRoutines::viscosity_dilute_kinetic_theory.
Definition: CoolPropFluid.h:246
Definition: Exceptions.h:45
Definition: CoolPropFluid.h:296
CoolPropDbl sigma_eta
The Lennard-Jones 12-6 parameter.
Definition: CoolPropFluid.h:386
Definition: CoolPropFluid.h:265
Definition: CoolPropFluid.h:337
Use TransportRoutines::viscosity_higher_order_friction_theory.
Definition: CoolPropFluid.h:314
Definition: CoolPropFluid.h:130
Definition: CoolPropFluid.h:200
Definition: CoolPropFluid.h:342
Use TransportRoutines::viscosity_dilute_powers_of_Tr.
Definition: CoolPropFluid.h:251
std::string CAS
The CAS number of the fluid.
Definition: CoolPropFluid.h:543
std::string name
The name of the fluid.
Definition: CoolPropFluid.h:540
std::string InChI
The InChI string for the fluid.
Definition: CoolPropFluid.h:546
BibTeXKeysStruct BibTeXKeys
The BibTeX keys associated.
Definition: CoolPropFluid.h:552
std::string smiles
The SMILES identifier for the fluid.
Definition: CoolPropFluid.h:548
SimpleState triple_vapor
The saturated vapor state at the triple point temperature.
Definition: CoolPropFluid.h:556
Use TransportRoutines::viscosity_ethane_higher_order_hardcoded.
Definition: CoolPropFluid.h:310
Definition: CoolPropFluid.h:331
std::string InChIKey
The InChI key for the fluid.
Definition: CoolPropFluid.h:547
Definition: Helmholtz.h:796
Use TransportRoutines::viscosity_higher_order_modified_Batschinski_Hildebrand.
Definition: CoolPropFluid.h:306
Use TransportRoutines::viscosity_dilute_ethane.
Definition: CoolPropFluid.h:247
Use TransportRoutines::conductivity_hardcoded_helium.
Definition: CoolPropFluid.h:362
Use TransportRoutines::viscosity_toluene_higher_order_hardcoded.
Definition: CoolPropFluid.h:312
Definition: CoolPropFluid.h:27
std::string BibTeX_viscosity
The BibTeX key for the viscosity model.
Definition: CoolPropFluid.h:378
ViscosityHardcodedEnum
Definition: CoolPropFluid.h:345
Use TransportRoutines::viscosity_dilute_collision_integral.
Definition: CoolPropFluid.h:244
bool viscosity_model_provided
A flag for whether viscosity model is provided. False for no.
Definition: CoolPropFluid.h:384
std::string TwoDPNG_URL
The URL to a 2D representation of the molecule (from ChemSpider)
Definition: CoolPropFluid.h:550
ViscosityDiluteGasPowersOfTr powers_of_Tr
Data for TransportRoutines::viscosity_dilute_powers_of_Tr.
Definition: CoolPropFluid.h:259
Use TransportRoutines::viscosity_R23_hardcoded.
Definition: CoolPropFluid.h:350
bool viscosity_using_ECS
A flag for whether to use extended corresponding states for viscosity. False for no.
Definition: CoolPropFluid.h:380
EnvironmentalFactorsStruct environment
The environmental variables for global warming potential, ODP, etc.
Definition: CoolPropFluid.h:553
EquationOfState & EOS()
Get a reference to the equation of state.
Definition: CoolPropFluid.h:535
Definition: CoolPropFluid.h:240
Definition: CoolPropFluid.h:32
ViscosityHigherOrderEnum
Definition: CoolPropFluid.h:304
Use TransportRoutines::viscosity_helium_hardcoded.
Definition: CoolPropFluid.h:349
Definition: CoolPropFluid.h:275
CoolPropDbl T_reducing
Reducing temperature [K[.
Definition: CoolPropFluid.h:227
Definition: CoolPropFluid.h:302
Use TransportRoutines::viscosity_initial_density_dependence_Rainwater_Friend.
Definition: CoolPropFluid.h:279
ViscosityDiluteGasPowersOfT powers_of_T
Data for TransportRoutines::viscosity_dilute_powers_of_T.
Definition: CoolPropFluid.h:258
IdealHelmholtzContainer alpha0
The ideal Helmholtz energy.
Definition: CoolPropFluid.h:437
Use TransportRoutines::conductivity_hardcoded_water.
Definition: CoolPropFluid.h:359
Use TransportRoutines::viscosity_heavywater_hardcoded.
Definition: CoolPropFluid.h:348
ViscosityInitialDensityEnum
Definition: CoolPropFluid.h:277
double ECS_qd
The critical qd parameter for the Olchowy-Sengers cross-over term.
Definition: CoolPropFluid.h:526
Use TransportRoutines::conductivity_hardcoded_R23.
Definition: CoolPropFluid.h:361
This file contains flash routines in which the state is unknown, and a solver of some kind must be us...
Definition: AbstractState.h:19
Definition: CoolPropFluid.h:162
Use TransportRoutines::viscosity_dilute_collision_integral_powers_of_T.
Definition: CoolPropFluid.h:245
bool conductivity_using_ECS
A flag for whether to use extended corresponding states for conductivity. False for no...
Definition: CoolPropFluid.h:381
bool viscosity_using_Chung
A flag for whether to use Chung model. False for no.
Definition: CoolPropFluid.h:382
ViscosityHardcodedEnum hardcoded_viscosity
Hardcoded flags for the viscosity.
Definition: CoolPropFluid.h:388
ResidualHelmholtzContainer alphar
The residual Helmholtz energy.
Definition: CoolPropFluid.h:436
Use TransportRoutines::viscosity_dilute_cyclohexane.
Definition: CoolPropFluid.h:248
void validate()
Validate the EOS that was just constructed.
Definition: CoolPropFluid.h:444
Definition: CoolPropFluid.h:403
Use TransportRoutines::viscosity_methanol_hardcoded.
Definition: CoolPropFluid.h:351
ViscosityDiluteGasCollisionIntegralData collision_integral
Data for TransportRoutines::viscosity_dilute_collision_integral.
Definition: CoolPropFluid.h:255
Definition: DataStructures.h:16