Commit graph

32 commits

Author SHA1 Message Date
Harry Moffat
4e2aea52c6 Pushed the parameters for the cropping algorithm to the XML input file. 2009-01-24 00:15:00 +00:00
Harry Moffat
6942cb3260 Added pure cropping on the molar gamma_o and gamma_k. this seems to
be the most robust and to-the-point.
2009-01-17 05:42:50 +00:00
Harry Moffat
793daa0194 Reworking of cropping algorithm to adhere to the sand report. 2009-01-17 04:40:28 +00:00
Harry Moffat
f2bf58281c Allowed theta and Theta for the name of XML nodes.
Also Psi and psi work as well.
2009-01-11 21:43:20 +00:00
Harry Moffat
477d0080bc Added the zeta interaction term. 2009-01-09 04:17:31 +00:00
Harry Moffat
51aa98675e Changed one of the getString() functions to getChildValue(),
to get rid of some unnecessary overloading.
2009-01-02 22:34:41 +00:00
Harry Moffat
4d4f43e679 Changed m_speciesData to be a vector of pointers. This is how it is
used anyway.
2008-12-24 18:18:23 +00:00
Harry Moffat
e7e02ffc5e Changes to exit() and additions of cstdlib 2008-12-17 17:01:29 +00:00
Harry Moffat
a8d7e74936 Added m_Mu_nnn to the formulation.
Fixed an error in the update of the pitzer coefficients.
2008-12-07 18:18:49 +00:00
Harry Moffat
39a626b6ce Added complex temperature dependence to Lambda term. 2008-12-06 21:41:03 +00:00
Harry Moffat
cd462115c0 Updated the Psi polynomial to take the normal temperature dependence. 2008-12-06 20:25:01 +00:00
Harry Moffat
dda3f02e71 Started transfering over some of the cropping capabilities from
IdealMolalSoln to HNWSoln.
2008-11-07 01:52:46 +00:00
Harry Moffat
ff61654c6c getFloat() interface changes. 2008-10-31 15:45:34 +00:00
Harry Moffat
e27054daa8 WOrking down the todo list on the eq3 port
Added alpha2 as a changeable parameter to the XML file
   Added temperature dependence for the theta_ij parameter
2008-10-20 20:53:52 +00:00
Harry Moffat
4dcb746101 Small changes to cover the situation where there isn't an
activity coefficient XML section.
2008-09-17 20:05:46 +00:00
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
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
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
e8343d8d9b Took strcasecmp out of code, since it's not in VC++ 2008-01-02 22:39:35 +00:00
Harry Moffat
35d96f6d03 Changed the PITZER_TEMP_COMPLEX1 parameterization to use 5 coefficients
for beta1 and 5 coefficients for beta2. They are now the same as
beta0 and Cphi.
All xml blocks using this parameterization must be modified accordingly.
2007-10-02 00:49:55 +00:00
Harry Moffat
7e693cdf81 Doxygen Update
Worked on the header.
Change of LambdaNeutral XML input section
  changed the attributes to species1 and species2 to be more in tune
  with the conventions in the rest of the input file. I don't think
  this section is used anywhere yet
2007-06-26 17:03:18 +00:00
Harry Moffat
c12e390f02 Doxygen Update
-> Worked on the header
2007-06-18 16:12:41 +00:00
Harry Moffat
faa637d25a Doxygen update -
Update of Header files
2007-06-17 20:56:46 +00:00
Harry Moffat
56155a1d27 Doxygen update
-> Eliminated all of the doxygen warnings. However, there is a long
     way to go in documenting the HMWSoln header file.
2007-06-14 15:05:49 +00:00
Harry Moffat
badc82daf3 Doxygen update
Added function documentation.
Added error checking on input
2007-06-12 19:39:50 +00:00
Dave Goodwin
a04e7309a2 moved files to thermo subdirectory 2007-05-04 14:02:39 +00:00
Harry Moffat
810520f4ac Solaris 10 update
Various std:: additions to stl functions and additions of c include files.
2007-03-20 21:51:12 +00:00
Harry Moffat
72a6de13a4 Uupdaetd the structure of the namespaces so that it would compile. 2006-11-28 18:44:23 +00:00
Harry Moffat
19cd590ac2 Another iteration on trying to unify the water treatment between
the 2 objects.
2006-07-13 20:05:11 +00:00
Harry Moffat
d5affaa953 Took out an unneeded parameter B_Debye in Pitzer model.
Switched to DEBUG_MODE for optional printing.
2006-07-07 18:05:36 +00:00
Harry Moffat
ea1e5cedb8 Added the DebyeHuckel object.
Note, this object needs a bit of work. It's not connected to the
real model of water yet.
2006-07-07 00:27:26 +00:00
Harry Moffat
6aa9287438 Added Pitzer Object 2006-07-06 15:39:34 +00:00