Commit graph

2547 commits

Author SHA1 Message Date
Harry Moffat
94c066d1a4 Added a density function to the PDSS objects.
HMWSoln's m_waterSS object is now a PDSS object and not a PDSS_water object.
Added a dummy satPressure() value for PDSS_ConstVol objects of 1.0E-200.
2008-08-27 15:43:51 +00:00
Harry Moffat
f650649725 Fixed a segfault when supplied with a null pointer. 2008-08-27 00:01:21 +00:00
Harry Moffat
a25f41e605 Added isothermalCompressibility functions to the water models.
Added a missing pressure dependence to the PDSS_HKFT object.
2008-08-25 22:58:12 +00:00
Harry Moffat
5479bcf10b Added a check to make sure the delta H formation reaction value is
consistent with G and S. It's actually redundant.
2008-08-25 03:19:59 +00:00
Harry Moffat
6397cc7770 HKFT standard state implementation
-> fleshed out all thermodynamic functions. Still needs some testing.
2008-08-24 04:47:41 +00:00
Harry Moffat
34bae00f15 Interrum update for standing up HKFT standard state
Gibbs free energies are working and checked against excel spread sheet!
2008-08-24 01:56:24 +00:00
Harry Moffat
2d9abce4a1 Added a few directories. 2008-08-23 01:24:17 +00:00
Harry Moffat
5c5d2e74c0 Took out WaterPDSS object 2008-08-23 01:23:37 +00:00
Harry Moffat
1db271fecb Added files. 2008-08-23 01:22:47 +00:00
Harry Moffat
9be8a4acc1 Added a test 2008-08-23 01:16:43 +00:00
Harry Moffat
1dc94a84cb added a test 2008-08-23 01:05:50 +00:00
Harry Moffat
88d1fa57c0 Added a test 2008-08-23 01:00:53 +00:00
Harry Moffat
df4b108323 Added and modified a few files for VPSSMgr changes. 2008-08-23 00:55:58 +00:00
Harry Moffat
e46b6f2b2d PDSS refactor - Addition of VPSSMgr Basically, this makes the specification
of standard states and the specification of activities independent of
each other.


  PDSS Behavior
-------------------------
PDSS is an object that carries out and reports on the evaluation
of the pressure dependent standard state of a single species in a mixture.

VPSSMgr Point of View
--------------------------------------


This is the calculator for the standard states.



From The Point of View of the ThermoPhase Function
---------------------------------------------------------
At the VPStandardStateTP object, the ThermoPhase object is enriched to
include a new object called VPSSMgr. VPSSMgr is
a base class that is responsible for calculating the standard states
of all of the species in the mixture. It is analogous to the
SpeciesThermo virtual base class, which handles all of the reference
state calculations for a class. The VPSSMgr class
usurps all calculations.

There are PDSS objects for each species.
VPStandardStateTP contains a vector of pointers to PDSS, of length
nSpecies in the phase. It owns the list.
VPSSMgr also contains the same vector of pointers to PDSS, of length
nSpecies in the phase. VPSSMgr is a methods class. It
organizes how to calculate the SS values efficiently. It may also have
specific rules for how to handle the pressure dependence (i.e., there
will be a specific class for ideal gases).
The VPSSMgr organizes when to update the internal states of
the PDSS objects.
The determination of which VPSSMgr virtual class to use with
which phase is determined by the phase itself. It know which method to
use.

setState Treatment with Temperature and Pressure
------------------------------------------------------

The VPStandardStateTP object always has the current value of T and P
held within it. It determines when T and P have changed. If it determines
that T or P has changed, it calls VPSSMgr so that VPSSMgr
may update its internal states.
VPSSMgr contains the current T and P, also, separately.
If it determines that T or P has changed, it recalculates its own internal state.


PDSS Object point of View
-----------------------------------------

During the evaluation of the phase thermodynamics, the PDSS object
may be called to evaluate the (T,P) Standard State and RefState information.

The PDSS object may or may not own the reference state calculation. If
it doesn't own the calculation, the ThermoPhase object owns the
calculation through its m_spthermo object.  Then the PDSS objects
uses pointers into the m_spthermo object to satisfy its requirement
to supply (T,P) ss information. It may own or surplant the reference
state calculation. For example, for waterPDSS, there is no specific reference
state calculation, since the regular temperature polynomial process
is ignored (except to set the basis state). The reference state functions
are evaluated the same as other standard state functions.

If PDSS owns the calculation of the reference state thermo, then the
m_spthermo pointer within the PDSS object is zero. It does it's own
reference state calculation.

If PDSS uses the SpeciesThermo object to calculate the reference
state, it needs to know whether the SpeciesThermo object calculations
are current. It checks this. If it is, then it retrieves the result from
storage in VPSSMgr object. If it isn't, then it recalculates the results.

PDSS has its own storage for the current state of T and P.
2008-08-23 00:53:54 +00:00
Harry Moffat
e48c64b645 Reverted the file back, because it was failing the test suite. 2008-08-22 15:23:44 +00:00
Harry Moffat
f52b57986d house cleaning and docs:
-> got rid of m_n. I could not see that it was used anywhere.
2008-08-22 14:50:52 +00:00
Harry Moffat
b99df1b110 Added a std:: to transform 2008-08-22 14:41:07 +00:00
Harry Moffat
4963b88f1e F2c issue is resolved. 2008-08-22 03:18:07 +00:00
Harry Moffat
a2f48d98fe Added vcs_MultiPhaseEquil.h back. Test problems within vcs were failing. 2008-08-22 03:13:59 +00:00
Harry Moffat
146f856b4a Changed proc to procedure 2008-08-22 02:55:58 +00:00
Harry Moffat
03cef87ff8 Incremental update 2008-08-22 02:54:28 +00:00
Harry Moffat
dd783be288 Incremental update 2008-08-21 16:40:58 +00:00
Harry Moffat
96930d57d6 Incremental update on HKFT implementation
Added thermalExpansionCoeff() and its temp derivative to objects.
2008-08-21 01:46:11 +00:00
Harry Moffat
045aa04116 Incremental update 2008-08-20 23:34:55 +00:00
Harry Moffat
fe742e32e9 intermediate checkin - putting in HKFT standard state 2008-08-20 22:31:22 +00:00
Harry Moffat
2c29a41bcf Adding in HKFT parameterization 2008-08-20 19:52:29 +00:00
Harry Moffat
f36a5c4863 Added an init() check to setTemperature(). 2008-08-20 18:50:35 +00:00
Dave Goodwin
737c4aa49b *** empty log message *** 2008-08-20 12:49:57 +00:00
Harry Moffat
d2358f1818 On the road to a better scheme for handling the deletion of
multispecies phases.
2008-08-18 23:17:18 +00:00
Harry Moffat
180b693de5 rebaselined. 2008-08-17 21:25:44 +00:00
Harry Moffat
e72d7a7cf6 Working towards a more robust treatment of phase stability. 2008-08-17 21:19:04 +00:00
Dave Goodwin
3793f5dfac *** empty log message *** 2008-08-13 20:59:12 +00:00
Harry Moffat
6f985cdc78 vcs_VolPhase update: Made more members private 2008-08-07 23:40:52 +00:00
Harry Moffat
0b6ccbcbef vcs_volPhase upgrade: more members are private 2008-08-01 16:05:38 +00:00
Harry Moffat
070f994c6e Added a test for finding an input file. Previous behavior was to core
dump.
2008-08-01 16:04:58 +00:00
Harry Moffat
681a4aea6a vcs_VolPhase: Made more members private 2008-07-31 22:33:19 +00:00
Harry Moffat
a04b9570ac trivial changes 2008-07-30 19:03:39 +00:00
Harry Moffat
fae139765e Propagated the FTN_TRAILING_UNDERSCORE concept to the dpolft_ and
dpcoef_ fortran functions referenced in funcs.cpp . The previous
treatment didn't honor the value of  FTN_TRAILING_UNDERSCORE.
So, if a different source for the SLATEC routines than the one in
ext/math was used, this may have caused some conflict.

Also, worked up the doxygen documentation for routines in funcs.cpp.

This Fix was suggested by Dave Glaze.
2008-07-30 16:48:25 +00:00
Harry Moffat
2ba2271125 Turned on the setting of FTN_TRAILING_UNDERSCORE, LAPACK_FTN_STRING_LEN_AT_END,
LAPACK_NAME_LOWERCASE, and LAPACK_FTN_TRAILING_UNDERSCORE in the
config.h.in file. Previously they defaulted to being "defined". Now
they are user-configurable, with the default being that they are
"defined".
2008-07-30 15:48:52 +00:00
Harry Moffat
a441bbf272 Put in a scale factor for mole number within the nondimensionalization
routines. Now, the code can solve equilibrium problems for virtually
any range of total mole numbers.
2008-07-29 16:23:29 +00:00
Harry Moffat
e91bdbe60d Bug fixes related to deleting multispecies phases. 2008-07-25 20:12:05 +00:00
Harry Moffat
3df90ebff6 vcs_volPhase update: more members are private 2008-07-22 19:40:57 +00:00
Harry Moffat
081f98bdbd vcs_VolPhase upgrade: making more data private 2008-07-22 16:23:55 +00:00
Harry Moffat
7f28666169 vcs_VolPhase upgrade: more private data 2008-07-22 15:10:01 +00:00
Harry Moffat
f494e6ee78 vcs_Volphase update: eliminating more members and simplifying. 2008-07-03 23:24:04 +00:00
Harry Moffat
2fe5039614 vcs_volPhase update: Made more members private. 2008-06-27 16:33:49 +00:00
Harry Moffat
92450201d1 Fixed a compile error that was found on a mac build using intel's 10.1
compilers.
2008-06-27 15:16:32 +00:00
Harry Moffat
62133ce1b4 vcs_VolPhase update: Made more members private 2008-06-26 17:51:11 +00:00
Harry Moffat
4e051200f8 Rebaselined test problem. 2008-06-26 17:49:59 +00:00
Harry Moffat
d16c113e55 Fixed an error that appeared under gcc 4.2.1 2008-06-26 15:05:30 +00:00