Cantera  2.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VPSSMgr.cpp
Go to the documentation of this file.
1 /**
2  * @file VPSSMgr.cpp
3  * Definition file for a virtual base class that manages
4  * the calculation of standard state properties for all of the
5  * species in a single phase, assuming a variable P and T standard state
6  * (see \ref mgrpdssthermocalc and
7  * class \link Cantera::VPSSMgr VPSSMgr\endlink).
8  */
9 /*
10  * Copyright (2005) Sandia Corporation. Under the terms of
11  * Contract DE-AC04-94AL85000 with Sandia Corporation, the
12  * U.S. Government retains certain rights in this software.
13  */
14 
15 #include "cantera/thermo/VPSSMgr.h"
18 #include "cantera/thermo/PDSS.h"
21 #include "cantera/base/xml.h"
22 
23 using namespace std;
24 
25 namespace Cantera
26 {
27 VPSSMgr::VPSSMgr(VPStandardStateTP* vptp_ptr, SpeciesThermo* spthermo) :
28  m_kk(0),
29  m_vptp_ptr(vptp_ptr),
30  m_spthermo(spthermo),
31  m_tlast(-1.0),
32  m_plast(-1.0),
33  m_p0(-1.0),
34  m_minTemp(-1.0),
35  m_maxTemp(1.0E8),
36  m_useTmpRefStateStorage(false),
37  m_useTmpStandardStateStorage(false)
38 {
39  if (!m_vptp_ptr) {
40  throw CanteraError("VPSSMgr",
41  "null pointer for VPStandardStateTP is not permissible");
42  }
43 }
44 
45 VPSSMgr::VPSSMgr(const VPSSMgr& right) :
46  m_kk(0),
47  m_vptp_ptr(0),
48  m_spthermo(0),
49  m_tlast(-1.0),
50  m_plast(-1.0),
51  m_p0(-1.0),
52  m_minTemp(-1.0),
53  m_maxTemp(1.0E8),
54  m_useTmpRefStateStorage(false),
55  m_useTmpStandardStateStorage(false)
56 {
57  *this = right;
58 }
59 
60 VPSSMgr&
62 {
63  if (&right == this) {
64  return *this;
65  }
66  m_kk = right.m_kk;
67  /*
68  * What we are doing here is to make a shallow copy of the VPStandardStateTP
69  * pointer in the "new" VPSSMgr object using the value from the "old"
70  * VPSSMgr object. This is not appropriate if we are making a copy of a ThermoPhase
71  * object and the VPSSMgr objects are owned by the ThermoPhase object.
72  *
73  * The new object will want to have a different value of m_vptp_ptr than the
74  * value this is being copied here. It will want to refer to the copy of the
75  * VPStandardStateTP object being made that will own the new VPSSMgr object.
76  * However, the assignment object is not the place to carry out this fixup.
77  *
78  * We will have to "fix" up the shallow copies later.
79  */
80  m_vptp_ptr = right.m_vptp_ptr;
81  m_spthermo = right.m_spthermo;
82  m_tlast = -1.0;
83  m_plast = -1.0;
84  m_p0 = right.m_p0;
85  m_minTemp = right.m_minTemp;
86  m_maxTemp = right.m_maxTemp;
88  m_h0_RT = right.m_h0_RT;
89  m_cp0_R = right.m_cp0_R;
90  m_g0_RT = right.m_g0_RT;
91  m_s0_R = right.m_s0_R;
92  m_V0 = right.m_V0;
94  m_hss_RT = right.m_hss_RT;
95  m_cpss_R = right.m_cpss_R;
96  m_gss_RT = right.m_gss_RT;
97  m_sss_R = right.m_sss_R;
98  m_Vss = right.m_Vss;
99 
100  mPDSS_h0_RT = right.mPDSS_h0_RT;
101  mPDSS_cp0_R = right.mPDSS_cp0_R;
102  mPDSS_g0_RT = right.mPDSS_g0_RT;
103  mPDSS_s0_R = right.mPDSS_s0_R;
104  mPDSS_V0 = right.mPDSS_V0;
105  mPDSS_hss_RT = right.mPDSS_hss_RT;
106  mPDSS_cpss_R = right.mPDSS_cpss_R;
107  mPDSS_gss_RT = right.mPDSS_gss_RT;
108  mPDSS_sss_R = right.mPDSS_sss_R;
109  mPDSS_Vss = right.mPDSS_Vss;
110 
111  return *this;
112 }
113 
115 {
116  return new VPSSMgr(*this);
117 }
118 
120  SpeciesThermo* sp_ptr)
121 {
122  m_vptp_ptr = vp_ptr;
123  m_spthermo = sp_ptr;
124 
125  // Take care of STITTbyPDSS objects
126 
127  // Go see if the SpeciesThermo type is a GeneralSpeciesThermo
128  GeneralSpeciesThermo* gst = dynamic_cast<GeneralSpeciesThermo*>(sp_ptr);
129  if (gst) {
130  for (size_t k = 0; k < m_kk; k++) {
131  SpeciesThermoInterpType* st = gst->provideSTIT(k);
132  STITbyPDSS* stpd = dynamic_cast<STITbyPDSS*>(st);
133  if (stpd) {
134  PDSS* PDSS_ptr = vp_ptr->providePDSS(k);
135  stpd->initAllPtrs(k, this, PDSS_ptr);
136  }
137  }
138  }
139 
140 }
141 
142 // Standard States
143 
144 void
146 {
148  std::copy(m_gss_RT.begin(), m_gss_RT.end(), mu);
149  scale(mu, mu+m_kk, mu, GasConstant * m_tlast);
150  } else {
151  throw NotImplementedError("VPSSMgr::getStandardChemPotentials");
152  }
153 }
154 
155 void
156 VPSSMgr::getGibbs_RT(doublereal* grt) const
157 {
159  std::copy(m_gss_RT.begin(), m_gss_RT.end(), grt);
160  } else {
161  throw NotImplementedError("VPSSMgr::getGibbs_RT");
162  }
163 }
164 
165 void
166 VPSSMgr::getEnthalpy_RT(doublereal* hrt) const
167 {
169  std::copy(m_hss_RT.begin(), m_hss_RT.end(), hrt);
170  } else {
171  throw NotImplementedError("VPSSMgr::getEnthalpy_RT");
172  }
173 }
174 
175 void
176 VPSSMgr::getEntropy_R(doublereal* sr) const
177 {
179  std::copy(m_sss_R.begin(), m_sss_R.end(), sr);
180  } else {
181  throw NotImplementedError("VPSSMgr::getEntropy_RT");
182  }
183 }
184 
185 void
186 VPSSMgr::getIntEnergy_RT(doublereal* urt) const
187 {
189  std::copy(m_hss_RT.begin(), m_hss_RT.end(), urt);
190  for (size_t k = 0; k < m_kk; k++) {
191  urt[k] -= m_plast / (GasConstant * m_tlast) * m_Vss[k];
192  }
193  } else {
194  throw NotImplementedError("VPSSMgr::getEntropy_RT");
195  }
196 }
197 
198 void
199 VPSSMgr::getCp_R(doublereal* cpr) const
200 {
202  std::copy(m_cpss_R.begin(), m_cpss_R.end(), cpr);
203  } else {
204  throw NotImplementedError("VPSSMgr::getCp_R");
205  }
206 }
207 
208 void
209 VPSSMgr::getStandardVolumes(doublereal* vol) const
210 {
212  std::copy(m_Vss.begin(), m_Vss.end(), vol);
213  } else {
214  throw NotImplementedError("VPSSMgr::getStandardVolumes");
215  }
216 }
217 const vector_fp&
218 VPSSMgr::getStandardVolumes() const
219 {
221  throw NotImplementedError("VPSSMgr::getStandardVolumes");
222  }
223  return m_Vss;
224 }
225 
226 /*****************************************************************/
227 void
228 VPSSMgr::getEnthalpy_RT_ref(doublereal* hrt) const
229 {
231  std::copy(m_h0_RT.begin(), m_h0_RT.end(), hrt);
232  } else {
233  throw NotImplementedError("VPSSMgr::getEnthalpy_RT_ref");
234  }
235 }
236 
237 void
238 VPSSMgr::getGibbs_RT_ref(doublereal* grt) const
239 {
241  std::copy(m_g0_RT.begin(), m_g0_RT.end(), grt);
242  } else {
243  throw NotImplementedError("VPSSMgr::getGibbs_RT_ref");
244  }
245 }
246 
247 void
248 VPSSMgr::getGibbs_ref(doublereal* g) const
249 {
251  std::copy(m_g0_RT.begin(), m_g0_RT.end(), g);
252  scale(g, g+m_kk, g, GasConstant * m_tlast);
253  } else {
254  throw NotImplementedError("VPSSMgr::getGibbs_ref");
255  }
256 }
257 
258 void
259 VPSSMgr::getEntropy_R_ref(doublereal* sr) const
260 {
262  std::copy(m_s0_R.begin(), m_s0_R.end(), sr);
263  } else {
264  throw NotImplementedError("VPSSMgr::getEntropy_R_ref");
265  }
266 }
267 
268 void
269 VPSSMgr::getCp_R_ref(doublereal* cpr) const
270 {
272  std::copy(m_cp0_R.begin(), m_cp0_R.end(), cpr);
273  } else {
274  throw NotImplementedError("VPSSMgr::getCp_R_ref");
275  }
276 }
277 
278 void
279 VPSSMgr::getStandardVolumes_ref(doublereal* vol) const
280 {
281  getStandardVolumes(vol);
282  //err("getStandardVolumes_ref");
283 }
284 
285 /*****************************************************************/
286 
287 void VPSSMgr::setState_P(doublereal pres)
288 {
289  if (m_plast != pres) {
290  m_plast = pres;
292  }
293 }
294 
295 void VPSSMgr::setState_T(doublereal temp)
296 {
297  if (m_tlast != temp) {
298  m_tlast = temp;
301  }
302 }
303 
304 void VPSSMgr::setState_TP(doublereal temp, doublereal pres)
305 {
306  if (m_tlast != temp) {
307  m_tlast = temp;
308  m_plast = pres;
311  } else if (m_plast != pres) {
312  m_plast = pres;
314  }
315 }
316 
318 {
320 }
321 
323 {
325 }
326 
328 {
329  for (size_t k = 0; k < m_kk; k++) {
330  PDSS* kPDSS = m_vptp_ptr->providePDSS(k);
331  kPDSS->setState_TP(m_tlast, m_plast);
332  }
333  throw NotImplementedError("VPSSMgr::_updateStandardStateThermo()");
334 }
335 
337 {
338  if (m_spthermo) {
339  m_spthermo->update(m_tlast, &m_cp0_R[0], &m_h0_RT[0], &m_s0_R[0]);
340  for (size_t k = 0; k < m_kk; k++) {
341  m_g0_RT[k] = m_h0_RT[k] - m_s0_R[k];
342  }
343  }
344 }
345 
346 
347 /*****************************************************************/
348 
349 void
351 {
352  initLengths();
353 }
354 
355 void
357 {
358  m_kk = m_vptp_ptr->nSpecies();
359  m_h0_RT.resize(m_kk, 0.0);
360  m_cp0_R.resize(m_kk, 0.0);
361  m_g0_RT.resize(m_kk, 0.0);
362  m_s0_R.resize(m_kk, 0.0);
363  m_V0.resize(m_kk, 0.0);
364  m_hss_RT.resize(m_kk, 0.0);
365  m_cpss_R.resize(m_kk, 0.0);
366  m_gss_RT.resize(m_kk, 0.0);
367  m_sss_R.resize(m_kk, 0.0);
368  m_Vss.resize(m_kk, 0.0);
369 
370  // Storage used by the PDSS objects to store their answers.
371  mPDSS_h0_RT.resize(m_kk, 0.0);
372  mPDSS_cp0_R.resize(m_kk, 0.0);
373  mPDSS_g0_RT.resize(m_kk, 0.0);
374  mPDSS_s0_R.resize(m_kk, 0.0);
375  mPDSS_V0.resize(m_kk, 0.0);
376  mPDSS_hss_RT.resize(m_kk, 0.0);
377  mPDSS_cpss_R.resize(m_kk, 0.0);
378  mPDSS_gss_RT.resize(m_kk, 0.0);
379  mPDSS_sss_R.resize(m_kk, 0.0);
380  mPDSS_Vss.resize(m_kk, 0.0);
381 }
382 
383 void VPSSMgr::initThermoXML(XML_Node& phaseNode, const std::string& id)
384 {
385  const PDSS* kPDSS = m_vptp_ptr->providePDSS(0);
386  m_p0 = kPDSS->refPressure();
387  for (size_t i = 0; i < m_kk; i++) {
388  const PDSS* kPDSS = m_vptp_ptr->providePDSS(i);
389  m_minTemp = std::max(m_minTemp, kPDSS->minTemp());
390  m_maxTemp = std::min(m_maxTemp, kPDSS->maxTemp());
391  }
392 }
393 
394 void VPSSMgr::installSTSpecies(size_t k, const XML_Node& s,
395  const XML_Node* phaseNode_ptr)
396 {
397  shared_ptr<SpeciesThermoInterpType> stit(newSpeciesThermoInterpType(s.child("thermo")));
398  stit->validate(s["name"]);
399  m_spthermo->install_STIT(k, stit);
400  if (m_p0 < 0.0) {
402  }
403 }
404 
406  const XML_Node* phaseNode_ptr)
407 {
408  throw NotImplementedError("VPSSMgr::VPSSMgr::createInstallPDSS");
409 }
410 
411 /*****************************************************************/
412 doublereal VPSSMgr::minTemp(size_t k) const
413 {
414  if (k != npos) {
415  return m_vptp_ptr->providePDSS(k)->minTemp();
416  }
417  return m_minTemp;
418 }
419 
420 doublereal VPSSMgr::maxTemp(size_t k) const
421 {
422  if (k != npos) {
423  return m_vptp_ptr->providePDSS(k)->maxTemp();
424  }
425  return m_maxTemp;
426 }
427 
428 doublereal VPSSMgr::refPressure(size_t k) const
429 {
430  if (k != npos) {
431  return m_vptp_ptr->providePDSS(k)->refPressure();
432  }
433  return m_p0;
434 }
435 
437 {
438  throw NotImplementedError("VPSSMgr::reportPDSSType()");
439 }
440 
441 
443 {
444  throw NotImplementedError("VPSSMgr::reportVPSSType()");
445 }
446 
447 }
vector_fp m_V0
Vector containing the species reference molar volumes.
Definition: VPSSMgr.h:773
vector_fp mPDSS_s0_R
species reference entropies - used by individual PDSS objects
Definition: VPSSMgr.h:837
SpeciesThermoInterpType * provideSTIT(size_t k)
Provide the SpeciesthermoInterpType object.
doublereal m_minTemp
minimum temperature for the standard state calculations
Definition: VPSSMgr.h:737
Pure Virtual Base class for the thermodynamic manager for an individual species' reference state...
bool m_useTmpRefStateStorage
Definition: VPSSMgr.h:746
void initLengths()
Initialize the lengths within the object.
Definition: VPSSMgr.cpp:356
vector_fp mPDSS_V0
species reference state molar Volumes - used by individual PDSS objects
Definition: VPSSMgr.h:844
SpeciesThermoInterpType * newSpeciesThermoInterpType(int type, double tlow, double thigh, double pref, const double *coeffs)
Create a new SpeciesThermoInterpType object given a corresponding constant.
vector_fp m_sss_R
Vector containing the species Standard State entropies at T = m_tlast and P = m_plast.
Definition: VPSSMgr.h:803
doublereal m_maxTemp
maximum temperature for the standard state calculations
Definition: VPSSMgr.h:740
An error indicating that an unimplemented function has been called.
Definition: ctexceptions.h:213
virtual void getEnthalpy_RT_ref(doublereal *hrt) const
Definition: VPSSMgr.cpp:228
doublereal maxTemp() const
return the minimum temperature
Definition: PDSS.h:365
Virtual base class for the classes that manage the calculation of standard state properties for all t...
Definition: VPSSMgr.h:235
Declaration file for a virtual base class that manages the calculation of standard state properties f...
virtual void getIntEnergy_RT(doublereal *urt) const
Returns the vector of nondimensional internal Energies of the standard state at the current temperatu...
Definition: VPSSMgr.cpp:186
VPSSMgr & operator=(const VPSSMgr &right)
Assignment operator.
Definition: VPSSMgr.cpp:61
virtual void updateRefStateThermo() const
Updates the internal reference state thermodynamic vectors at the current T of the solution and the r...
Definition: VPSSMgr.cpp:322
const size_t npos
index returned by functions to indicate "no position"
Definition: ct_defs.h:165
virtual doublereal maxTemp(size_t k=npos) const
Maximum temperature.
Definition: VPSSMgr.cpp:420
bool m_useTmpStandardStateStorage
Definition: VPSSMgr.h:779
virtual PDSS * createInstallPDSS(size_t k, const XML_Node &speciesNode, const XML_Node *const phaseNode_ptr)
Install specific content for species k in the standard-state thermodynamic calculator and also create...
Definition: VPSSMgr.cpp:405
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
Definition: VPSSMgr.cpp:383
size_t m_kk
Number of species in the phase.
Definition: VPSSMgr.h:711
vector_fp mPDSS_cpss_R
species standard state heat capacities - used by individual PDSS objects
Definition: VPSSMgr.h:858
virtual void install_STIT(size_t index, shared_ptr< SpeciesThermoInterpType > stit)=0
Install a new species thermodynamic property parameterization for one species.
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:100
doublereal refPressure() const
Return the reference pressure for this phase.
Definition: PDSS.h:355
virtual void initThermo()
Definition: VPSSMgr.cpp:350
doublereal minTemp() const
return the minimum temperature
Definition: PDSS.h:360
void initAllPtrs(size_t speciesIndex, VPSSMgr *vpssmgr_ptr, PDSS *PDSS_ptr)
Initialize and/or Reinitialize all the pointers for this object.
Pure Virtual base class for the species thermo manager classes.
VPSSMgr_enumType
enum for VPSSMgr types that are responsible for calculating the species standard state and reference-...
Definition: mix_defs.h:135
XML_Node & child(const size_t n) const
Return a changeable reference to the n'th child of the current node.
Definition: xml.cpp:573
virtual void getStandardChemPotentials(doublereal *mu) const
Get the array of chemical potentials at unit activity.
Definition: VPSSMgr.cpp:145
virtual void _updateStandardStateThermo()
Updates the standard state thermodynamic functions at the current T and P of the solution.
Definition: VPSSMgr.cpp:327
vector_fp mPDSS_cp0_R
species reference heat capacities - used by individual PDSS objects
Definition: VPSSMgr.h:823
virtual void getCp_R_ref(doublereal *cpr) const
Definition: VPSSMgr.cpp:269
vector_fp m_cp0_R
Vector containing the species reference constant pressure heat capacities at T = m_tlast and P = p_re...
Definition: VPSSMgr.h:758
Declarations for the virtual base class PDSS (pressure dependent standard state) which handles calcul...
A species thermodynamic property manager for a phase.
VPStandardStateTP * m_vptp_ptr
Variable pressure ThermoPhase object.
Definition: VPSSMgr.h:714
virtual void initAllPtrs(VPStandardStateTP *vp_ptr, SpeciesThermo *sp_ptr)
Initialize the internal shallow pointers in this object.
Definition: VPSSMgr.cpp:119
virtual VPSSMgr_enumType reportVPSSMgrType() const
This utility function reports the type of manager for the calculation of ss properties.
Definition: VPSSMgr.cpp:442
virtual void getEnthalpy_RT(doublereal *hrt) const
Get the nondimensional Enthalpy functions for the species at their standard states at the current T a...
Definition: VPSSMgr.cpp:166
virtual VPSSMgr * duplMyselfAsVPSSMgr() const
Duplication routine for objects which derive from VPSSMgr.
Definition: VPSSMgr.cpp:114
doublereal m_plast
The last pressure at which the Standard State thermodynamic properties were calculated at...
Definition: VPSSMgr.h:728
PDSS_enumType
Types of PDSS's.
Definition: mix_defs.h:121
vector_fp mPDSS_g0_RT
species reference Gibbs free energies - used by individual PDSS objects
Definition: VPSSMgr.h:830
virtual void getStandardVolumes_ref(doublereal *vol) const
Get the molar volumes of the species reference states at the current T and P_ref of the solution...
Definition: VPSSMgr.cpp:279
Classes providing support for XML data files.
virtual void setState_T(doublereal T)
Set the temperature (K)
Definition: VPSSMgr.cpp:295
virtual void getEntropy_R(doublereal *sr) const
Get the array of nondimensional Enthalpy functions for the standard state species at the current T an...
Definition: VPSSMgr.cpp:176
Class for the thermodynamic manager for an individual species' reference state which uses the PDSS ba...
virtual doublereal refPressure(size_t k=npos) const
The reference-state pressure for the standard state.
Definition: VPSSMgr.cpp:428
virtual doublereal refPressure(size_t k=npos) const =0
The reference-state pressure for species k.
Base class for exceptions thrown by Cantera classes.
Definition: ctexceptions.h:99
virtual void getGibbs_RT(doublereal *grt) const
Get the nondimensional Gibbs functions for the species at their standard states of solution at the cu...
Definition: VPSSMgr.cpp:156
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
virtual PDSS_enumType reportPDSSType(int index=-1) const
This utility function reports the type of parameterization used for the species with index number ind...
Definition: VPSSMgr.cpp:436
vector_fp mPDSS_sss_R
species standard state entropies - used by individual PDSS objects
Definition: VPSSMgr.h:872
virtual void _updateRefStateThermo() const
Updates the reference state thermodynamic functions at the current T of the solution and the referenc...
Definition: VPSSMgr.cpp:336
vector_fp mPDSS_Vss
species standard state molar Volumes - used by individual PDSS objects
Definition: VPSSMgr.h:879
virtual doublereal minTemp(size_t k=npos) const
Minimum temperature.
Definition: VPSSMgr.cpp:412
vector_fp m_Vss
Vector containing the species standard state volumes at T = m_tlast and P = m_plast.
Definition: VPSSMgr.h:809
vector_fp mPDSS_gss_RT
species standard state Gibbs free energies - used by individual PDSS objects
Definition: VPSSMgr.h:865
size_t nSpecies() const
Returns the number of species in the phase.
Definition: Phase.h:265
virtual void updateStandardStateThermo()
Updates the internal standard state thermodynamic vectors at the current T and P of the solution...
Definition: VPSSMgr.cpp:317
vector_fp m_hss_RT
Vector containing the species Standard State enthalpies at T = m_tlast and P = m_plast.
Definition: VPSSMgr.h:785
vector_fp m_cpss_R
Vector containing the species Standard State constant pressure heat capacities at T = m_tlast and P =...
Definition: VPSSMgr.h:791
vector_fp m_h0_RT
Definition: VPSSMgr.h:752
Header for factory to build instances of classes that manage the standard-state thermodynamic propert...
Headers for a completely general species thermodynamic property manager for a phase (see Managers for...
Header file for a derived class of ThermoPhase that handles variable pressure standard state methods ...
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Definition: ct_defs.h:157
Virtual base class for a species with a pressure dependent standard state.
Definition: PDSS.h:193
Templates for operations on vector-like objects.
vector_fp mPDSS_hss_RT
species standard state enthalpies - used by individual PDSS objects
Definition: VPSSMgr.h:851
void scale(InputIter begin, InputIter end, OutputIter out, S scale_factor)
Multiply elements of an array by a scale factor.
Definition: utilities.h:158
vector_fp m_g0_RT
Vector containing the species reference Gibbs functions at T = m_tlast and P = p_ref.
Definition: VPSSMgr.h:764
doublereal m_p0
Definition: VPSSMgr.h:734
const doublereal GasConstant
Universal Gas Constant. [J/kmol/K].
Definition: ct_defs.h:64
virtual void getStandardVolumes(doublereal *vol) const
Get the molar volumes of each species in their standard states at the current T and P of the solution...
Definition: VPSSMgr.cpp:209
virtual void getCp_R(doublereal *cpr) const
Get the nondimensional Heat Capacities at constant pressure for the standard state of the species at ...
Definition: VPSSMgr.cpp:199
virtual void getEntropy_R_ref(doublereal *er) const
Definition: VPSSMgr.cpp:259
SpeciesThermo * m_spthermo
Pointer to reference state thermo calculator.
Definition: VPSSMgr.h:720
virtual void update(doublereal T, doublereal *cp_R, doublereal *h_RT, doublereal *s_R) const =0
Compute the reference-state properties for all species.
vector_fp mPDSS_h0_RT
species reference enthalpies - used by individual PDSS objects
Definition: VPSSMgr.h:816
void installSTSpecies(size_t k, const XML_Node &speciesNode, const XML_Node *phaseNode_ptr)
Install specific content for species k in the reference-state thermodynamic SpeciesManager object...
Definition: VPSSMgr.cpp:394
doublereal m_tlast
The last temperature at which the standard state thermodynamic properties were calculated at...
Definition: VPSSMgr.h:724
virtual void setState_TP(doublereal T, doublereal P)
Set the temperature (K) and pressure (Pa)
Definition: VPSSMgr.cpp:304
vector_fp m_gss_RT
Vector containing the species Standard State Gibbs functions at T = m_tlast and P = m_plast...
Definition: VPSSMgr.h:797
VPSSMgr(VPStandardStateTP *vptp_ptr, SpeciesThermo *spth=0)
Constructor.
Definition: VPSSMgr.cpp:27
virtual void getGibbs_RT_ref(doublereal *grt) const
Definition: VPSSMgr.cpp:238
virtual void setState_P(doublereal P)
Set the pressure (Pa)
Definition: VPSSMgr.cpp:287
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
Definition: PDSS.cpp:362
virtual void getGibbs_ref(doublereal *g) const
Definition: VPSSMgr.cpp:248
vector_fp m_s0_R
Vector containing the species reference entropies at T = m_tlast and P = p_ref.
Definition: VPSSMgr.h:770