OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PureGas.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2006-2013 by Energy Systems Design Laboratory, University of Alberta
6 //
7 // This software is distributed under the MIT License
8 // For more information, see the README file in /doc/LICENSE
9 //
10 // - Class: PureGas.h
11 // - Description: This class describes properties of pure gases
12 // - Developers: Marc Secanell and Valentin N. Zingan, University of Alberta
13 //
14 // ----------------------------------------------------------------------------
15 
16 #ifndef _FCST_FUELCELLSHOP_MATERIAL_PUREGAS_H_
17 #define _FCST_FUELCELLSHOP_MATERIAL_PUREGAS_H_
18 
19 #define _DUMMY_ 1.e300
20 
22 #include <utils/fcst_constants.h>
23 
35 
36 namespace FuelCellShop
37 {
38  namespace Material
39  {
88  class PureGas : public BaseMaterial
89  {
90  public:
91 
93 
94 
97  virtual ~PureGas();
101  virtual void declare_parameters(ParameterHandler& param) const;
102 
106  virtual void initialize(ParameterHandler& param);
107 
109 
111 
112 
116  const double& get_molar_mass() const
117  {
118  return molar_mass;
119  }
120 
124  const double& get_collision_diameter() const
125  {
126  return collision_diameter;
127  }
128 
132  const double& get_eps_BY_k() const
133  {
134  return eps_BY_k;
135  }
136 
140  const double& get_Prandtl() const
141  {
142  return Prandtl;
143  }
144 
160  virtual enMaterialID get_ID() const = 0;
161 
165  const std::string& get_chemical_formula() const
166  {
167  return chemical_formula;
168  }
169 
174  const std::string& get_dynamic_viscosity_mode() const
175  {
176  return dynamic_viscosity_mode;
177  }
178 
183  const std::string& get_bulk_viscosity_mode() const
184  {
185  return bulk_viscosity_mode;
186  }
187 
192  const std::string& get_thermal_conductivity_mode() const
193  {
195  }
196 
198 
200 
201 
208  const double get_pressure(const double& density, const double& temperature) const;
209 
218  void get_pressure(const std::vector<double>& density, const double& temperature, std::vector<double>& pressure) const;
219 
228  void get_pressure(const std::vector<double>& density, const std::vector<double>& temperature, std::vector<double>& pressure) const;
229 
236  const double get_Dpressure_Ddensity(const double& temperature) const;
237 
246  void get_Dpressure_Ddensity(const std::vector<double>& temperature, std::vector<double>& dst) const;
247 
254  const double get_Dpressure_Dtemperature(const double& density) const;
255 
264  void get_Dpressure_Dtemperature(const std::vector<double>& density, std::vector<double>& dst) const;
265 
267 
269 
277  const double get_density(const double& temperature, const double& pressure, const double& molarMass) const;
278 
280 
282 
290  const double get_Sutherland_dynamic_viscosity(const double& temperature) const;
291 
299  void get_Sutherland_dynamic_viscosity(const std::vector<double>& temperature, std::vector<double>& dynamic_viscosity) const;
300 
307  const double get_DSutherland_dynamic_viscosity_Dtemperature(const double& temperature) const;
308 
316  void get_DSutherland_dynamic_viscosity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
317 
319 
321 
325  const double get_ChapmanEnskog_dynamic_viscosity(const double& temperature) const;
326 
333  void get_ChapmanEnskog_dynamic_viscosity(const std::vector<double>& temperature, std::vector<double>& dynamic_viscosity) const;
334 
341  const double get_DChapmanEnskog_dynamic_viscosity_Dtemperature(const double& temperature) const;
342 
352  void get_DChapmanEnskog_dynamic_viscosity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
353 
355 
357 
365  const double get_dynamic_viscosity(const double& temperature) const;
366 
376  void get_dynamic_viscosity(const std::vector<double>& temperature, std::vector<double>& dynamic_viscosity) const;
377 
385  const double get_Ddynamic_viscosity_Dtemperature(const double& temperature) const;
386 
396  void get_Ddynamic_viscosity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
397 
399 
401 
402 
408  const double get_bulk_viscosity(const double& dynamic_viscosity) const;
409 
417  void get_bulk_viscosity(const std::vector<double>& dynamic_viscosity, std::vector<double>& bulk_viscosity) const;
418 
426  const double get_Dbulk_viscosity_Dtemperature(const double& src) const;
427 
437  void get_Dbulk_viscosity_Dtemperature(const std::vector<double>& src, std::vector<double>& dst) const;
438 
440 
442 
444 
446 
452  const double get_Sutherland_thermal_conductivity(const double& temperature) const;
453 
461  void get_Sutherland_thermal_conductivity(const std::vector<double>& temperature, std::vector<double>& thermal_conductivity) const;
462 
469  const double get_DSutherland_thermal_conductivity_Dtemperature(const double& temperature) const;
470 
478  void get_DSutherland_thermal_conductivity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
479 
481 
483 
484 
492  const double get_ChapmanEnskog_thermal_conductivity(const double& temperature) const;
493 
503  void get_ChapmanEnskog_thermal_conductivity(const std::vector<double>& temperature, std::vector<double>& thermal_conductivity) const;
504 
511  const double get_DChapmanEnskog_thermal_conductivity_Dtemperature(const double& temperature) const;
512 
520  void get_DChapmanEnskog_thermal_conductivity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
521 
523 
525 
526 
534  const double get_thermal_conductivity(const double& temperature) const;
535 
545  void get_thermal_conductivity(const std::vector<double>& temperature, std::vector<double>& thermal_conductivity) const;
546 
553  const double get_Dthermal_conductivity_Dtemperature(const double& temperature) const;
554 
562  void get_Dthermal_conductivity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
563 
565 
567 
568 
576  const double get_molar_enthalpy(const double& temperature) const;
577 
587  void get_molar_enthalpy(const std::vector<double>& temperature, std::vector<double>& molar_enthalpy) const;
588 
595  const double get_Dmolar_enthalpy_Dtemperature(const double& temperature) const;
596 
604  void get_Dmolar_enthalpy_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
605 
612  const double get_D2molar_enthalpy_Dtemperature2(const double& temperature) const;
613 
623  void get_D2molar_enthalpy_Dtemperature2(const std::vector<double>& temperature, std::vector<double>& dst) const;
624 
626 
628 
629 
637  const double get_water_vapor_saturation_pressure(const double& temperature) const;
638 
648  void get_water_vapor_saturation_pressure(const std::vector<double>& temperature, std::vector<double>& water_vapor_saturation_pressure) const;
649 
657  const double get_Dwater_vapor_saturation_pressure_Dtemperature(const double& temperature) const;
658 
668  void get_Dwater_vapor_saturation_pressure_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
669 
671 
673 
674 
688  const double get_collision_integral(const double& temperature) const;
689 
705  void get_collision_integral(const std::vector<double>& temperature, std::vector<double>& collision_integral) const;
706 
714  const double get_Dcollision_integral_Dtemperature(const double& temperature) const;
715 
723  void get_Dcollision_integral_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
724 
726 
728 
729 
735  const double get_specific_heat_capacity(const double& temperature) const;
736 
744  void get_specific_heat_capacity(const std::vector<double>& temperature, std::vector<double>& specific_heat_capacity) const;
745 
752  const double get_Dspecific_heat_capacity_Dtemperature(const double& temperature) const;
753 
761  void get_Dspecific_heat_capacity_Dtemperature(const std::vector<double>& temperature, std::vector<double>& dst) const;
762 
769  const double get_D2specific_heat_capacity_Dtemperature2(const double& temperature) const;
770 
778  void get_D2specific_heat_capacity_Dtemperature2(const std::vector<double>& temperature, std::vector<double>& dst) const;
780 
781  protected:
783 
784 
787  PureGas(const std::string& name);
788 
790 
792  // DATA //
794 
796 
797 
801  double molar_mass;
802 
807 
811  double eps_BY_k;
812 
816  double Prandtl;
817 
819 
821 
822 
827  double A_Sutherland;
828 
833  double B_Sutherland;
834 
839  double c_0;
840 
845  double c_1;
846 
851  double c_2;
852 
857  double c_3;
858 
863  double H_ref;
864 
869  double T_ref;
870 
872 
874 
875 
879  std::string chemical_formula;
880 
886 
891  std::string bulk_viscosity_mode;
892 
899  };
900 
912  class DummyGas : public PureGas
913  {
914  public:
916 
917 
922  :
923  PureGas("DummyGas")
924  {
925  this->molar_mass = 1.0;
926  this->collision_diameter = 1.0;
927  this->eps_BY_k = 1.0;
928  this->Prandtl = 1.0;
929 
930  this->A_Sutherland = 1.0;
931  this->B_Sutherland = 1.0;
932 
933  this->c_0 = 1.0;
934  this->c_1 = - 1.0;
935  this->c_2 = 1.0;
936  this->c_3 = - 1.0;
937 
938  this->H_ref = 1.0;
939  this->T_ref = 1.0;
940 
941  this->chemical_formula = "None";
942  }
943 
947  virtual ~DummyGas() { }
948 
950 
952 
953 
954  virtual enMaterialID get_ID() const
955  {
956  return matNone;
957  }
958 
960 
961  };
962 
974  class Oxygen : public PureGas
975  {
976  public:
978 
979 
981  :
982  PureGas("oxygen")
983  {
984  this->molar_mass = 31.999e-3; // [kg/mol]; Poling, Bruce E., et al. The properties of gases and liquids. Vol. 5. New York: McGraw-Hill, 2001.
985  this->collision_diameter = 3.4330000; // [Angstrom]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
986  this->eps_BY_k = 113.00000; // [K]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
987  this->Prandtl = 0.7130000;
988 
989  this->A_Sutherland = 1.693411300e-6;
990  this->B_Sutherland = 127.0000000000;
991 
992  this->c_0 = 0.8800e3;
993  this->c_1 = - 0.0001e3;
994  this->c_2 = 0.5400e3;
995  this->c_3 = - 0.3300e3;
996 
997  this->H_ref = 0.000;
998  this->T_ref = 298.0;
999 
1000  this->chemical_formula = "O2";
1001  }
1002 
1004  virtual ~Oxygen() { }
1006 
1008  virtual enMaterialID get_ID() const
1009  {
1010  return matOxygen;
1011  }
1013  };
1014 
1027  class Nitrogen : public PureGas
1028  {
1029  public:
1031 
1032 
1034  :
1035  PureGas("nitrogen")
1036  {
1037  this->molar_mass = 28.0134e-3; // [kg/mol]; Mattern, Glenn W. "Industrial Gases." Riegel’s Handbook of Industrial Chemistry. Springer US, 1992. 442-457.
1038  this->collision_diameter = 3.66700000; // [Angstrom]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1039  this->eps_BY_k = 99.8000000; // [K]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1040  this->Prandtl = 0.70700000;
1041 
1042  this->A_Sutherland = 1.406732195e-6;
1043  this->B_Sutherland = 111.0000000000;
1044 
1045  this->c_0 = 1.11e3;
1046  this->c_1 = - 0.48e3;
1047  this->c_2 = 0.96e3;
1048  this->c_3 = - 0.42e3;
1049 
1050  this->H_ref = 0.000;
1051  this->T_ref = 298.0;
1052 
1053  this->chemical_formula = "N2";
1054  }
1055 
1057  virtual ~Nitrogen() { }
1059 
1061 
1062  virtual enMaterialID get_ID() const
1063  {
1064  return matNitrogen;
1065  }
1067  };
1068 
1081  class Hydrogen : public PureGas
1082  {
1083  public:
1085 
1086 
1088  :
1089  PureGas("hydrogen")
1090  {
1091  this->molar_mass = 2.016e-3; // [kg/mol]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1092  this->collision_diameter = 2.915000; // [Angstrom]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1093  this->eps_BY_k = 38.00000; // [K]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1094  this->Prandtl = 0.685000;
1095 
1096  this->A_Sutherland = 6.362365620e-7;
1097  this->B_Sutherland = 72.00000000000;
1098 
1099  this->c_0 = 13.46e3;
1100  this->c_1 = 4.600e3;
1101  this->c_2 = - 6.850e3;
1102  this->c_3 = 3.790e3;
1103 
1104  this->H_ref = 0.000;
1105  this->T_ref = 298.0;
1106 
1107  this->chemical_formula = "H2";
1108  }
1109 
1111  virtual ~Hydrogen() { }
1113 
1115  virtual enMaterialID get_ID() const
1116  {
1117  return matHydrogen;
1118  }
1120  };
1121 
1134  class WaterVapor : public PureGas
1135  {
1136  public:
1138 
1139 
1141  :
1142  PureGas("water")
1143  {
1144  this->molar_mass = 18.015e-3; // [kg/mol]; Poling, Bruce E., et al. The properties of gases and liquids. Vol. 5. New York: McGraw-Hill, 2001.
1145  this->collision_diameter = 2.6410000; // [Angstrom]; Poling, Bruce E., et al. The properties of gases and liquids. Vol. 5. New York: McGraw-Hill, 2001.
1146  this->eps_BY_k = 809.10000; // [K]; Poling, Bruce E., et al. The properties of gases and liquids. Vol. 5. New York: McGraw-Hill, 2001.
1147  this->Prandtl = 0.9500000;
1148 
1149  this->A_Sutherland = _DUMMY_;
1150  this->B_Sutherland = _DUMMY_;
1151 
1152  this->c_0 = 1.790e3;
1153  this->c_1 = 0.107e3;
1154  this->c_2 = 0.586e3;
1155  this->c_3 = - 0.200e3;
1156 
1157  this->H_ref = - 2.41826e5;
1158  this->T_ref = 298.00000;
1159 
1160  this->chemical_formula = "H2O Vapor";
1161  }
1162 
1164  virtual ~WaterVapor() { }
1166 
1168  virtual enMaterialID get_ID() const
1169  {
1170  return matWaterVapor;
1171  }
1173  };
1174 
1187  class Air : public PureGas
1188  {
1189  public:
1191 
1192 
1194  :
1195  PureGas("air")
1196  {
1197  this->molar_mass = 28.97e-3; // [kg/mol]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1198  this->collision_diameter = 3.7110000; // [Angstrom]; The Properties of Gases and Liquids by Poling et al. New York: McGraw-Hill, 2001.
1199  this->eps_BY_k = 78.600000; // [K]; The Properties of Gases and Liquids by Poling et al. New York: McGraw-Hill, 2001.
1200  this->Prandtl = 0.7020000;
1201 
1202  this->A_Sutherland = 1.512041288e-6;
1203  this->B_Sutherland = 120.0000000000;
1204 
1205  this->c_0 = 1.050e3;
1206  this->c_1 = - 0.365e3;
1207  this->c_2 = 0.850e3;
1208  this->c_3 = - 0.390e3;
1209 
1210  this->H_ref = _DUMMY_;
1211  this->T_ref = _DUMMY_;
1212 
1213  this->chemical_formula = "78.1_N2__20.9_O2__0.9_Ar__0.03_CO2__0.002_Ne__0.0005_He__0.0002_CH4__0.0001_Kr__0.00005_H2__0.000009_He";
1214  }
1215 
1217  virtual ~Air() { }
1219 
1221  virtual enMaterialID get_ID() const
1222  {
1223  return matAir;
1224  }
1226  };
1227 
1240  class Helium : public PureGas
1241  {
1242  public:
1244 
1245 
1247  :
1248  PureGas("helium")
1249  {
1250  this->molar_mass = 4.002602e-3; // [kg/mol]; Coplen, Tyler B. "Atomic weights of the elements 1999." Journal of Physical and Chemical Reference Data 30.3 (2001): 701-712.
1251  this->collision_diameter = 2.576000000; // [Angstrom]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1252  this->eps_BY_k = 10.20000000; // [K]; Bird, R. Byron. "Transport phenomena." Applied Mechanics Reviews 55.1 (2002): R1-R4.
1253  this->Prandtl = 0.710000000;
1254 
1255  this->A_Sutherland = 1.484381490e-6;
1256  this->B_Sutherland = 79.40000000000;
1257 
1258  this->c_0 = 5.193e3;
1259  this->c_1 = 0.00000;
1260  this->c_2 = 0.00000;
1261  this->c_3 = 0.00000;
1262 
1263  this->H_ref = _DUMMY_;
1264  this->T_ref = _DUMMY_;
1265 
1266  this->chemical_formula = "He";
1267  }
1268 
1270  virtual ~Helium() { }
1272 
1274  virtual enMaterialID get_ID() const
1275  {
1276  return matHelium;
1277  }
1279  };
1280 
1296  class Argon : public PureGas
1297  {
1298  public:
1300 
1301 
1303  :
1304  PureGas("argon")
1305  {
1306  this->molar_mass = 39.94800e-3; // [kg/mol], Transport Phenomena by Bird
1307  this->collision_diameter = 3.418000000; // [Angstrom], Molecular Theory of Gases and Liquids by Hirschfelder
1308  this->eps_BY_k = 124.0000000; // [K], Molecular Theory of Gases and Liquids by Hirschfelder
1309  this->Prandtl = 0.680000000; // @ 300K from http://www.yutopian.com/Yuan/prop/Ar.html
1310 
1311  //Reference at T = 300K, data from http://www.nist.gov/pml/div685/grp02/srd_134_helium.cfm, L2 norm from 100K - 1000K is 1.28639595331963e-6
1312  this->A_Sutherland = 2.03988705213516e-6; // [Pa s K^-1/2], lambda
1313  this->B_Sutherland = 164.89316; // [K], C, Sutherland's constant for the gaseous material in question
1314 
1315  this->c_0 = 0.520e3; // [J/(kg K)], http://www.engineeringtoolbox.com/specific-heat-capacity-gases-d_159.html
1316  this->c_1 = 0.00000;
1317  this->c_2 = 0.00000;
1318  this->c_3 = 0.00000;
1319 
1320  this->H_ref = _DUMMY_;
1321  this->T_ref = _DUMMY_;
1322 
1323  this->chemical_formula = "Ar";
1324  }
1325 
1327  virtual ~Argon() { }
1329 
1331  virtual enMaterialID get_ID() const
1332  {
1333  return matArgon;
1334  }
1336  };
1337 
1353  class Neon : public PureGas
1354  {
1355  public:
1357 
1358 
1360  :
1361  PureGas("neon")
1362  {
1363  this->molar_mass = 20.18300e-3; // [kg/mol], Transport Phenomena by Bird
1364  this->collision_diameter = 2.789000000; // [Angstrom], Molecular Theory of Gases and Liquids by Hirschfelder
1365  this->eps_BY_k = 35.70000000; // [K], Molecular Theory of Gases and Liquids by Hirschfelder
1366  this->Prandtl = 0.776171079; // @ ~100C
1367 
1368  //Reference at T = 373.15K, data from http://www.kayelaby.npl.co.uk/general_physics/2_2/2_2_3.html, L2 norm from 273.15K - 873.15K is 0.85079117060209e-6
1369  this->A_Sutherland = 2.3955224007011e-6; // [Pa s K^-1/2], lambda
1370  this->B_Sutherland = 93.534827; // [K], C, Sutherland's constant for the gaseous material in question
1371 
1372  this->c_0 = 1.030e3; // [J/(kg K)], http://www.engineeringtoolbox.com/specific-heat-capacity-gases-d_159.html
1373  this->c_1 = 0.00000;
1374  this->c_2 = 0.00000;
1375  this->c_3 = 0.00000;
1376 
1377  this->H_ref = _DUMMY_;
1378  this->T_ref = _DUMMY_;
1379 
1380  this->chemical_formula = "Ne";
1381  }
1382 
1384  virtual ~Neon() { }
1386 
1388  virtual enMaterialID get_ID() const
1389  {
1390  return matNeon;
1391  }
1393  };
1394 
1410  class Acetone : public PureGas
1411  {
1412  public:
1414 
1415 
1417  :
1418  PureGas("acetone")
1419  {
1420  this->molar_mass = 58.07800e-3; // [kg/mol], Transport Phenomena by Bird
1421  this->collision_diameter = 4.600000000; // [Angstrom], The Properties of Gases and Liquids by Poling et al.
1422  this->eps_BY_k = 560.2000000; // [K], The Properties of Gases and Liquids by Poling et al.
1423  this->Prandtl = 0.000000000; //
1424 
1425  //
1426  this->A_Sutherland = 0.0; // [Pa s K^-1/2], lambda
1427  this->B_Sutherland = 0.0; // [K], C, Sutherland's constant for the gaseous material in question
1428 
1429  this->c_0 = 0.00000; //
1430  this->c_1 = 0.00000;
1431  this->c_2 = 0.00000;
1432  this->c_3 = 0.00000;
1433 
1434  this->H_ref = _DUMMY_;
1435  this->T_ref = _DUMMY_;
1436 
1437  this->chemical_formula = "C3H6O";
1438  }
1439 
1441  virtual ~Acetone() { }
1443 
1445  virtual enMaterialID get_ID() const
1446  {
1447  return matAcetone;
1448  }
1450  };
1451 
1467  class Methanol : public PureGas
1468  {
1469  public:
1471 
1472 
1474  :
1475  PureGas("methanol")
1476  {
1477  this->molar_mass = 32.04200e-3; // [kg/mol], Transport Phenomena by Bird
1478  this->collision_diameter = 3.626000000; // [Angstrom], The Properties of Gases and Liquids by Poling et al.
1479  this->eps_BY_k = 481.8000000; // [K], The Properties of Gases and Liquids by Poling et al.
1480  this->Prandtl = 0.000000000; //
1481 
1482  //
1483  this->A_Sutherland = 0.0; // [Pa s K^-1/2], lambda
1484  this->B_Sutherland = 0.0; // [K], C, Sutherland's constant for the gaseous material in question
1485 
1486  this->c_0 = 0.00000; //
1487  this->c_1 = 0.00000;
1488  this->c_2 = 0.00000;
1489  this->c_3 = 0.00000;
1490 
1491  this->H_ref = _DUMMY_;
1492  this->T_ref = _DUMMY_;
1493 
1494  this->chemical_formula = "CH3OH";
1495  }
1496 
1498  virtual ~Methanol() { }
1500 
1502  virtual enMaterialID get_ID() const
1503  {
1504  return matMethanol;
1505  }
1507  };
1508  } // Material
1509 } // FuelCellShop
1510 
1511 #endif
std::string thermal_conductivity_mode
Definition: PureGas.h:897
Air()
Constructor.
Definition: PureGas.h:1193
const double get_DSutherland_dynamic_viscosity_Dtemperature(const double &temperature) const
This function returns the first derivative of the Sutherland dynamic viscosity of a pure gas...
std::string dynamic_viscosity_mode
Definition: PureGas.h:885
double collision_diameter
Collision diameter [Angstrom], .
Definition: PureGas.h:806
const double get_molar_enthalpy(const double &temperature) const
This function returns molar enthalpy [J/mol] of a pure gas.
const double get_ChapmanEnskog_dynamic_viscosity(const double &temperature) const
This function returns Chapman Enskog dynamic viscosity [kg/(m s)] of a pure gas.
Definition: PureGas.h:33
enMaterialID
Definition: PureGas.h:24
std::string bulk_viscosity_mode
Definition: PureGas.h:891
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1115
virtual ~Hydrogen()
Destructor.
Definition: PureGas.h:1111
const double get_DChapmanEnskog_dynamic_viscosity_Dtemperature(const double &temperature) const
This function returns the first derivative of the Chapman Enskog dynamic viscosity of a pure gas...
const std::string & get_bulk_viscosity_mode() const
This function returns bulk_viscosity_mode.
Definition: PureGas.h:183
double eps_BY_k
The maximum energy of attraction divided by the Boltzmann constant, .
Definition: PureGas.h:811
const double & get_Prandtl() const
This function returns Prandtl.
Definition: PureGas.h:140
Methanol()
Constructor.
Definition: PureGas.h:1473
Neon()
Constructor.
Definition: PureGas.h:1359
double c_3
Coefficient of the specific heat capacity at constant pressure formula, .
Definition: PureGas.h:857
const std::string name
Name of the layer.
Definition: base_material.h:155
const double get_collision_integral(const double &temperature) const
This function returns collision integral of a pure gas.
const double get_Dbulk_viscosity_Dtemperature(const double &src) const
This function returns the first derivative of the desired bulk viscosity of a pure gas...
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1168
virtual ~WaterVapor()
Destructor.
Definition: PureGas.h:1164
Argon()
Constructor.
Definition: PureGas.h:1302
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:954
const double get_Dcollision_integral_Dtemperature(const double &temperature) const
This function returns the first derivative of the collision integral of a pure gas.
const double get_Dthermal_conductivity_Dtemperature(const double &temperature) const
This function returns the first derivative of the desired thermal conductivity of a pure gas...
Hydrogen()
Constructor.
Definition: PureGas.h:1087
virtual ~PureGas()
Destructor.
Definition: PureGas.h:34
const double get_ChapmanEnskog_thermal_conductivity(const double &temperature) const
This function returns Chapman Enskog thermal conductivity [W/(m K)] of a pure gas.
const double & get_eps_BY_k() const
This function returns eps_BY_k (K).
Definition: PureGas.h:132
std::string chemical_formula
Chemical formula of the pure gas.
Definition: PureGas.h:879
Definition: PureGas.h:26
const double get_density(const double &temperature, const double &pressure, const double &molarMass) const
This function returns density [kg/m^3] of a pure ideal gas.
This class describes properties of pure Neon.
Definition: PureGas.h:1353
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1331
Definition: PureGas.h:28
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1388
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1062
double H_ref
Coefficient of the molar enthalpy formula .
Definition: PureGas.h:863
This class describes properties of pure Argon.
Definition: PureGas.h:1296
const std::string & get_chemical_formula() const
This function returns chemical_formula.
Definition: PureGas.h:165
const double get_specific_heat_capacity(const double &temperature) const
This function returns specific heat capacity [J/(g C)] at constant pressure of a pure gas...
Definition: PureGas.h:27
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1502
const double get_dynamic_viscosity(const double &temperature) const
This function returns desired dynamic viscosity [kg/(m s)] of a pure gas.
virtual ~Argon()
Destructor.
Definition: PureGas.h:1327
const double & get_collision_diameter() const
This function returns collision_diameter [Angstrom].
Definition: PureGas.h:124
const double get_Sutherland_dynamic_viscosity(const double &temperature) const
This function returns Sutherland dynamic viscosity [kg/(m s)] of a pure gas.
This class describes properties of pure Acetone.
Definition: PureGas.h:1410
DummyGas()
Constructor.
Definition: PureGas.h:921
double Prandtl
Prandtl number, .
Definition: PureGas.h:816
double A_Sutherland
Coefficient of the Sutherland dynamic viscosity formula, .
Definition: PureGas.h:827
virtual ~Helium()
Destructor.
Definition: PureGas.h:1270
double T_ref
Coefficient of the molar enthalpy formula .
Definition: PureGas.h:869
This class describes properties of pure oxygen.
Definition: PureGas.h:974
const double get_Dwater_vapor_saturation_pressure_Dtemperature(const double &temperature) const
This function returns the first derivative of the saturation pressure of water vapor.
This class describes properties of pure Methanol.
Definition: PureGas.h:1467
Definition: PureGas.h:30
This class describes properties of pure nitrogen.
Definition: PureGas.h:1027
double c_0
Coefficient of the specific heat capacity at constant pressure formula, .
Definition: PureGas.h:839
Helium()
Constructor.
Definition: PureGas.h:1246
This class describes properties of pure air.
Definition: PureGas.h:1187
WaterVapor()
Constructor.
Definition: PureGas.h:1140
const std::string & get_thermal_conductivity_mode() const
This function returns thermal_conductivity_mode.
Definition: PureGas.h:192
This class describes properties of a dummy gas, with all properties of 1.0 Use this name in the param...
Definition: PureGas.h:912
Definition: PureGas.h:24
double c_2
Coefficient of the specific heat capacity at constant pressure formula, .
Definition: PureGas.h:851
virtual ~Nitrogen()
Destructor.
Definition: PureGas.h:1057
virtual ~Oxygen()
Destructor.
Definition: PureGas.h:1004
const std::string & get_dynamic_viscosity_mode() const
This function returns dynamic_viscosity_mode.
Definition: PureGas.h:174
const double get_Sutherland_thermal_conductivity(const double &temperature) const
This function returns Sutherland thermal conductivity of a pure gas.
virtual void declare_parameters(ParameterHandler &param) const
Declare parameters.
const double get_thermal_conductivity(const double &temperature) const
This function returns desired thermal conductivity [W/(m K)] of a pure gas.
#define _DUMMY_
Definition: PureGas.h:19
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1221
This class is a base class for all pure gases used in OpenFCST.
Definition: PureGas.h:88
const double get_D2molar_enthalpy_Dtemperature2(const double &temperature) const
This function returns the second derivative of the molar enthalpy of a pure gas. ...
double B_Sutherland
Coefficient of the Sutherland dynamic viscosity formula, .
Definition: PureGas.h:833
const double get_water_vapor_saturation_pressure(const double &temperature) const
This function returns saturation pressure [Pa] of water vapor.
virtual enMaterialID get_ID() const =0
This function returns a number from enMaterialID enumeration.
Acetone()
Constructor.
Definition: PureGas.h:1416
PureGas(const std::string &name)
Constructor.
Nitrogen()
Constructor.
Definition: PureGas.h:1033
Definition: PureGas.h:29
double molar_mass
Molar mass [kg/mol], .
Definition: PureGas.h:801
const double get_DSutherland_thermal_conductivity_Dtemperature(const double &temperature) const
This function returns the first derivative of the Sutherland thermal conductivity of a pure gas...
virtual ~Neon()
Destructor.
Definition: PureGas.h:1384
const double get_Dspecific_heat_capacity_Dtemperature(const double &temperature) const
This function returns the first derivative of the specific heat capacity at constant pressure of a p...
Oxygen()
Constructor.
Definition: PureGas.h:980
This class describes properties of pure helium.
Definition: PureGas.h:1240
virtual ~Methanol()
Destructor.
Definition: PureGas.h:1498
const double get_Dpressure_Dtemperature(const double &density) const
This function returns of a pure ideal gas.
const double get_Dpressure_Ddensity(const double &temperature) const
This function returns of a pure ideal gas.
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1445
const double get_Dmolar_enthalpy_Dtemperature(const double &temperature) const
This function returns the first derivative of the molar enthalpy of a pure gas.
virtual ~DummyGas()
Destructor.
Definition: PureGas.h:947
virtual ~Air()
Destructor.
Definition: PureGas.h:1217
const double get_pressure(const double &density, const double &temperature) const
This function returns pressure (Pa) of a pure ideal gas.
Definition: PureGas.h:32
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1274
virtual enMaterialID get_ID() const
This function returns a number from enMaterialID enumeration.
Definition: PureGas.h:1008
virtual void initialize(ParameterHandler &param)
Initialize parameters.
Definition: PureGas.h:31
const double get_bulk_viscosity(const double &dynamic_viscosity) const
This function returns desired bulk viscosity of a pure gas.
This class describes properties of pure hydrogen.
Definition: PureGas.h:1081
const double get_D2specific_heat_capacity_Dtemperature2(const double &temperature) const
This function returns the second derivative of the specific heat capacity at constant pressure of a ...
const double get_Ddynamic_viscosity_Dtemperature(const double &temperature) const
This function returns the first derivative of the desired dynamic viscosity of a pure gas...
Definition: PureGas.h:25
const double get_DChapmanEnskog_thermal_conductivity_Dtemperature(const double &temperature) const
This function returns the first derivative of the Chapman Enskog thermal conductivity of a pure gas...
Virtual class used to provide the interface for all material classes.
Definition: base_material.h:54
virtual ~Acetone()
Destructor.
Definition: PureGas.h:1441
double c_1
Coefficient of the specific heat capacity at constant pressure formula, .
Definition: PureGas.h:845
This class describes properties of pure WaterVapor.
Definition: PureGas.h:1134
const double & get_molar_mass() const
This function returns molar_mass [kg/mol].
Definition: PureGas.h:116