Commit graph

56 commits

Author SHA1 Message Date
Ray Speth
2528df0f75 Reorganized source tree structure
These changes make it unnecessary to copy header files around during
the build process, which tends to confuse IDEs and debuggers. The
headers which comprise Cantera's external C++ interface are now in
the 'include' directory.

All of the samples and demos are now in the 'samples' subdirectory.
2012-02-12 02:27:14 +00:00
Ray Speth
a6f939c2fe Applied consistent formatting to all C++ code
Done using astyle:
astyle --style=kr --add-brackets --indent=spaces=4 --indent-col1-comments --unpad-paren --pad-header --align-pointer=type --lineend=linux
2012-02-10 17:24:00 +00:00
Ray Speth
7c171631af Merge branch 'scons' into 'trunk'
Conflicts:
	Cantera/Makefile.in
	Cantera/clib/src/clib_defs.h
	Cantera/clib/src/ctreactor.cpp
	Cantera/clib/src/ctstagn.cpp
	Cantera/clib/src/ctstagn.h
	Cantera/cxx/Makefile.in
	Cantera/cxx/demos/combustor/combustor.cpp
	Cantera/cxx/demos/flamespeed/flamespeed.cpp
	Cantera/cxx/demos/kinetics1/example_utils.h
	Cantera/cxx/demos/kinetics1/kinetics1.cpp
	Cantera/cxx/include/Cantera.h
	Cantera/cxx/include/Cantera.mak.in
	Cantera/cxx/include/Cantera_bt.mak.in
	Cantera/cxx/include/Edge.h
	Cantera/cxx/include/GRI30.h
	Cantera/cxx/include/Interface.h
	Cantera/cxx/include/zerodim.h
	Cantera/fortran/f77demos/Makefile.in
	Cantera/fortran/src/Makefile.in
	Cantera/fortran/src/fct.cpp
	Cantera/fortran/src/fctxml.cpp
	Cantera/fortran/src/flib_defs.h
	Cantera/matlab/Makefile.in
	Cantera/matlab/cantera/Contents.m
	Cantera/matlab/setup_winmatlab.py
	Cantera/matlab/src/ctfunctions.cpp
	Cantera/matlab/src/ctmatutils.h
	Cantera/matlab/src/mixturemethods.cpp
	Cantera/matlab/src/mllogger.h
	Cantera/matlab/src/phasemethods.cpp
	Cantera/matlab/src/reactormethods.cpp
	Cantera/matlab/src/reactornetmethods.cpp
	Cantera/matlab/src/thermomethods.cpp
	Cantera/matlab/src/wallmethods.cpp
	Cantera/matlab/src/xmlmethods.cpp
	Cantera/python/Cantera/Edge.py
	Cantera/python/Cantera/Interface.py
	Cantera/python/Cantera/Phase.py
	Cantera/python/Cantera/importFromFile.py
	Cantera/python/Makefile.in
	Cantera/python/ctml_writer.py
	Cantera/python/setup.py.in
	Cantera/python/src/Makefile.in
	Cantera/python/src/ctkinetics_methods.cpp
	Cantera/python/src/ctonedim_methods.cpp
	Cantera/python/src/pylogger.h
	Cantera/src/Makefile.in
	Cantera/src/base/config.h.in
	Cantera/src/base/ctml.cpp
	Cantera/src/base/ctml.h
	Cantera/src/base/mdp_allo.cpp
	Cantera/src/base/mdp_allo.h
	Cantera/src/base/vec_functions.h
	Cantera/src/base/xml.cpp
	Cantera/src/base/xml.h
	Cantera/src/converters/CKParser.h
	Cantera/src/converters/Element.h
	Cantera/src/converters/Reaction.h
	Cantera/src/converters/RxnSpecies.h
	Cantera/src/converters/Species.h
	Cantera/src/converters/ckr_defs.h
	Cantera/src/converters/ckr_utils.h
	Cantera/src/equil/BasisOptimize.cpp
	Cantera/src/equil/Makefile.in
	Cantera/src/equil/MultiPhase.cpp
	Cantera/src/equil/vcs_MultiPhaseEquil.cpp
	Cantera/src/equil/vcs_VolPhase.cpp
	Cantera/src/equil/vcs_VolPhase.h
	Cantera/src/equil/vcs_linmaxc.cpp
	Cantera/src/equil/vcs_phaseStability.cpp
	Cantera/src/equil/vcs_rxnadj.cpp
	Cantera/src/equil/vcs_solve.cpp
	Cantera/src/equil/vcs_solve.h
	Cantera/src/equil/vcs_solve_TP.cpp
	Cantera/src/equil/vcs_util.cpp
	Cantera/src/equil/vcs_xerror.c
	Cantera/src/kinetics/GasKinetics.cpp
	Cantera/src/kinetics/GasKinetics.h
	Cantera/src/kinetics/InterfaceKinetics.cpp
	Cantera/src/kinetics/InterfaceKinetics.h
	Cantera/src/kinetics/Kinetics.h
	Cantera/src/kinetics/ReactionStoichMgr.h
	Cantera/src/kinetics/RxnRates.h
	Cantera/src/kinetics/StoichManager.h
	Cantera/src/numerics/BandMatrix.cpp
	Cantera/src/numerics/BandMatrix.h
	Cantera/src/numerics/DAE_Solver.h
	Cantera/src/numerics/DAE_solvers.cpp
	Cantera/src/numerics/DenseMatrix.cpp
	Cantera/src/numerics/DenseMatrix.h
	Cantera/src/numerics/FuncEval.h
	Cantera/src/numerics/IDA_Solver.cpp
	Cantera/src/numerics/IDA_Solver.h
	Cantera/src/numerics/Integrator.h
	Cantera/src/numerics/Makefile.in
	Cantera/src/numerics/NonlinearSolver.cpp
	Cantera/src/numerics/NonlinearSolver.h
	Cantera/src/numerics/ResidEval.h
	Cantera/src/numerics/ResidJacEval.cpp
	Cantera/src/numerics/ResidJacEval.h
	Cantera/src/numerics/SquareMatrix.cpp
	Cantera/src/numerics/SquareMatrix.h
	Cantera/src/numerics/ctlapack.h
	Cantera/src/oneD/Domain1D.h
	Cantera/src/oneD/OneDim.cpp
	Cantera/src/oneD/OneDim.h
	Cantera/src/oneD/Resid1D.h
	Cantera/src/oneD/Solid1D.cpp
	Cantera/src/oneD/Solid1D.h
	Cantera/src/oneD/StFlow.cpp
	Cantera/src/oneD/Surf1D.h
	Cantera/src/spectra/LineBroadener.h
	Cantera/src/thermo/Constituents.cpp
	Cantera/src/thermo/GibbsExcessVPSSTP.cpp
	Cantera/src/thermo/IonsFromNeutralVPSSTP.cpp
	Cantera/src/thermo/IonsFromNeutralVPSSTP.h
	Cantera/src/thermo/LatticePhase.cpp
	Cantera/src/thermo/LatticeSolidPhase.cpp
	Cantera/src/thermo/LatticeSolidPhase.h
	Cantera/src/thermo/Makefile.in
	Cantera/src/thermo/MargulesVPSSTP.cpp
	Cantera/src/thermo/MargulesVPSSTP.h
	Cantera/src/thermo/NasaThermo.h
	Cantera/src/thermo/PDSS_IonsFromNeutral.cpp
	Cantera/src/thermo/PDSS_IonsFromNeutral.h
	Cantera/src/thermo/PDSS_SSVol.cpp
	Cantera/src/thermo/Phase.cpp
	Cantera/src/thermo/PseudoBinaryVPSSTP.cpp
	Cantera/src/thermo/PseudoBinaryVPSSTP.h
	Cantera/src/thermo/PureFluidPhase.cpp
	Cantera/src/thermo/ShomateThermo.h
	Cantera/src/thermo/SimpleThermo.h
	Cantera/src/thermo/SpeciesThermoFactory.cpp
	Cantera/src/thermo/State.h
	Cantera/src/thermo/StoichSubstance.h
	Cantera/src/thermo/ThermoFactory.cpp
	Cantera/src/thermo/ThermoPhase.cpp
	Cantera/src/thermo/ThermoPhase.h
	Cantera/src/transport/AqueousTransport.cpp
	Cantera/src/transport/AqueousTransport.h
	Cantera/src/transport/DustyGasTransport.cpp
	Cantera/src/transport/DustyGasTransport.h
	Cantera/src/transport/L_matrix.h
	Cantera/src/transport/LiquidTransport.cpp
	Cantera/src/transport/LiquidTransport.h
	Cantera/src/transport/LiquidTransportData.h
	Cantera/src/transport/MMCollisionInt.cpp
	Cantera/src/transport/MMCollisionInt.h
	Cantera/src/transport/Makefile.in
	Cantera/src/transport/MixTransport.cpp
	Cantera/src/transport/MixTransport.h
	Cantera/src/transport/MultiTransport.cpp
	Cantera/src/transport/MultiTransport.h
	Cantera/src/transport/SimpleTransport.cpp
	Cantera/src/transport/SimpleTransport.h
	Cantera/src/transport/SolidTransport.cpp
	Cantera/src/transport/SolidTransport.h
	Cantera/src/transport/TransportBase.h
	Cantera/src/transport/TransportFactory.cpp
	Cantera/src/transport/TransportFactory.h
	Cantera/src/transport/TransportParams.h
	Cantera/src/transport/WaterTransport.h
	Cantera/src/zeroD/FlowDevice.h
	Cantera/src/zeroD/Reactor.h
	Cantera/src/zeroD/ReactorBase.cpp
	Cantera/src/zeroD/ReactorBase.h
	Cantera/src/zeroD/ReactorNet.h
	Cantera/src/zeroD/Wall.h
	Cantera/user/Makefile.in
	License.rtf
	Makefile.in
	apps/bvp/stagnation.cpp
	configure
	configure.in
	data/transport/misc_tran.dat
	docs/Makefile.in
	docs/install_examples/README.txt
	docs/install_examples/cygwin_gcc434_dbg_f2c_numpy.sh
	docs/install_examples/linux_64_gcc424_dbg_python252_numpy
	docs/install_examples/linux_64_gcc424_opt_python252_numpy
	docs/install_examples/mac_gcc401_python251_numpy
	docs/python/.cvsignore
	ext/Makefile.in
	ext/blas/Makefile.in
	ext/cvode/Makefile.in
	ext/f2c_blas/Makefile.in
	ext/f2c_lapack/Makefile.in
	ext/f2c_math/Makefile.in
	ext/f2c_math/xersve.c
	ext/f2c_recipes/Makefile.in
	ext/lapack/Makefile.in
	ext/math/Makefile.in
	ext/recipes/Makefile.in
	ext/tpx/CarbonDioxide.cpp
	ext/tpx/Makefile.in
	ext/tpx/Sub.cpp
	ext/tpx/utils.cpp
	preconfig
	test_problems/ChemEquil_gri_matrix/gri_matrix.cpp
	test_problems/ChemEquil_gri_pairs/gri_pairs.cpp
	test_problems/ChemEquil_ionizedGas/ionizedGasEquil.cpp
	test_problems/ChemEquil_ionizedGas/runtest
	test_problems/ChemEquil_red1/basopt_red1.cpp
	test_problems/CpJump/CpJump.cpp
	test_problems/Makefile.in
	test_problems/VCSnonideal/Makefile.in
	test_problems/VCSnonideal/NaCl_equil/HMW_NaCl.xml
	test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp
	test_problems/VPsilane_test/silane_equil.cpp
	test_problems/cathermo/DH_graph_1/DH_graph_1.cpp
	test_problems/cathermo/DH_graph_NM/DH_graph_1.cpp
	test_problems/cathermo/DH_graph_Pitzer/DH_graph_1.cpp
	test_problems/cathermo/DH_graph_acommon/DH_graph_1.cpp
	test_problems/cathermo/DH_graph_bdotak/DH_graph_1.cpp
	test_problems/cathermo/HMW_dupl_test/HMW_NaCl_sp1977_alt.xml
	test_problems/cathermo/HMW_dupl_test/HMW_dupl_test.cpp
	test_problems/cathermo/HMW_dupl_test/TemperatureTable.h
	test_problems/cathermo/HMW_dupl_test/sortAlgorithms.cpp
	test_problems/cathermo/HMW_dupl_test/sortAlgorithms.h
	test_problems/cathermo/HMW_graph_CpvT/HMW_NaCl_sp1977_alt.xml
	test_problems/cathermo/HMW_graph_CpvT/HMW_graph_CpvT.cpp
	test_problems/cathermo/HMW_graph_CpvT/TemperatureTable.h
	test_problems/cathermo/HMW_graph_CpvT/sortAlgorithms.cpp
	test_problems/cathermo/HMW_graph_CpvT/sortAlgorithms.h
	test_problems/cathermo/HMW_graph_GvI/HMW_NaCl.xml
	test_problems/cathermo/HMW_graph_GvI/HMW_graph_GvI.cpp
	test_problems/cathermo/HMW_graph_GvI/TemperatureTable.h
	test_problems/cathermo/HMW_graph_GvI/sortAlgorithms.cpp
	test_problems/cathermo/HMW_graph_GvI/sortAlgorithms.h
	test_problems/cathermo/HMW_graph_GvT/HMW_NaCl_sp1977_alt.xml
	test_problems/cathermo/HMW_graph_GvT/HMW_graph_GvT.cpp
	test_problems/cathermo/HMW_graph_GvT/TemperatureTable.h
	test_problems/cathermo/HMW_graph_GvT/sortAlgorithms.cpp
	test_problems/cathermo/HMW_graph_GvT/sortAlgorithms.h
	test_problems/cathermo/HMW_graph_HvT/HMW_NaCl_sp1977_alt.xml
	test_problems/cathermo/HMW_graph_HvT/HMW_graph_HvT.cpp
	test_problems/cathermo/HMW_graph_HvT/TemperatureTable.h
	test_problems/cathermo/HMW_graph_HvT/sortAlgorithms.cpp
	test_problems/cathermo/HMW_graph_HvT/sortAlgorithms.h
	test_problems/cathermo/HMW_graph_VvT/HMW_NaCl_sp1977_alt.xml
	test_problems/cathermo/HMW_graph_VvT/HMW_graph_VvT.cpp
	test_problems/cathermo/HMW_graph_VvT/TemperatureTable.h
	test_problems/cathermo/HMW_graph_VvT/sortAlgorithms.cpp
	test_problems/cathermo/HMW_graph_VvT/sortAlgorithms.h
	test_problems/cathermo/HMW_test_1/HMW_test_1.cpp
	test_problems/cathermo/HMW_test_3/HMW_test_3.cpp
	test_problems/cathermo/Makefile.in
	test_problems/cathermo/VPissp/ISSPTester.cpp
	test_problems/cathermo/ims/IMSTester.cpp
	test_problems/cathermo/issp/ISSPTester.cpp
	test_problems/cathermo/stoichSubSSTP/TemperatureTable.h
	test_problems/cathermo/stoichSubSSTP/sortAlgorithms.cpp
	test_problems/cathermo/stoichSubSSTP/sortAlgorithms.h
	test_problems/cathermo/stoichSubSSTP/stoichSubSSTP.cpp
	test_problems/cathermo/testIAPWS/testIAPWSphi.cpp
	test_problems/cathermo/testWaterPDSS/testWaterPDSS.cpp
	test_problems/cathermo/testWaterTP/testWaterSSTP.cpp
	test_problems/cathermo/wtWater/wtWater.cpp
	test_problems/ck2cti_test/Makefile.in
	test_problems/ck2cti_test/runtest.in
	test_problems/cxx_ex/Makefile.in
	test_problems/cxx_ex/equil_example1.cpp
	test_problems/cxx_ex/example_utils.h
	test_problems/cxx_ex/kinetics_example1.cpp
	test_problems/cxx_ex/kinetics_example2.cpp
	test_problems/cxx_ex/kinetics_example3.cpp
	test_problems/cxx_ex/runtest
	test_problems/cxx_ex/rxnpath_example1.cpp
	test_problems/cxx_ex/transport_example1.cpp
	test_problems/cxx_ex/transport_example2.cpp
	test_problems/min_python/Makefile.in
	test_problems/min_python/minDiamond/Makefile.in
	test_problems/min_python/negATest/negATest.cpp
	test_problems/mixGasTransport/runtest
	test_problems/nasa9_reader/Makefile.in
	test_problems/nasa9_reader/runtest.in
	test_problems/negATest/negATest.cpp
	test_problems/printUtilUnitTest/pUtest.cpp
	test_problems/pureFluidTest/testPureWater.cpp
	test_problems/silane_equil/silane_equil.cpp
	test_problems/surfkin/surfdemo.cpp
	tools/Makefile.in
	tools/bin/cvs2cl.pl
	tools/src/ck2cti.cpp
	tools/templates/f77/demo_ftnlib.cpp
	win32/vc7/Sundials/sundials/sundials_config.h
	win32/vc9/Sundials/SUNDIALS_SHARED/sundials_config.h
	winconfig.h
2012-02-10 03:21:33 +00:00
Ray Speth
4e2a48c4e5 Fixed erroneous inequality comparisons between size_t and 0 2012-01-20 23:13:17 +00:00
Ray Speth
255f1f9b9f Fixing compiler warnings, part 3 2012-01-17 04:10:43 +00:00
Ray Speth
69bffa3800 Fixing compiler warnings, part 2 2012-01-17 04:10:26 +00:00
Ray Speth
4babd5898b Fixing compiler warnings, part 1 2012-01-17 04:10:08 +00:00
Ray Speth
453576f0ad Removed MSVC-specific compiler warning suppression 2012-01-17 04:09:18 +00:00
Ray Speth
9e1fdfe39a Eliminated CVS keyword cruft 2012-01-09 17:32:01 +00:00
Harry Moffat
8742d6addb Added MolarityIonicVPSS to the ThermoFactory 2011-11-09 18:39:51 +00:00
Harry Moffat
5d1e55596d Added the RedlichKisterVPSSTP thermo model to the system.
Fixed an error in MultiPhase that Carlos found.
2011-10-31 22:05:07 +00:00
Harry Moffat
b9c9f81761 Made the BandMatrix class and SquareMatrix inherit from a common
parent so that they can be used interchangeably in other software.

Removed PsuedBinaryVPSSTP in favor of MolarityIonicVPSSTP
2011-10-19 20:45:06 +00:00
Harry Moffat
d153aa8c0a Fixed an error in the specification of a list length. 2011-09-23 21:20:09 +00:00
Harry Moffat
ff7e66e5a3 This update adds in a Multicomponent Real Gas capability to Cantera.
The Object is called RedlichKwongMFTP, and it implements a multicomponent real gas approximation.
Most of the functionality has been verified against sample problems involving the CO2-H2O system.
2011-07-23 00:30:35 +00:00
Harry Moffat
361c8f655b Took out namespaces from headers 2011-03-28 20:29:33 +00:00
Harry Moffat
30d59b8c49 Added a new ThermoPhase object.
This one, PhaseCombo_Interaction, is based on the Margules object.
However, it eliminates the ideal solution mixing term. Therefore,
zero mole fractions are possible. Needed for the thermal battery program.
It may have some semblance of physical meaning or it may not. This 
has yet to be worked out.
2011-03-24 18:43:36 +00:00
Harry Moffat
f3bec02808 A reworking of the LatticePhase and LatticeSolidPhase classes. 2011-03-11 00:10:50 +00:00
Harry Moffat
a96f865403 Added FixedChemPotSSTP object.
This is a utility object that will provide a bath species at a certain
chemical potential to the equilibrium solver.
2010-10-27 17:00:46 +00:00
Harry Moffat
ec30757b88 Doxygen changes. 2010-08-09 23:53:33 +00:00
Harry Moffat
09e2a0e71d Doxygen updates 2010-08-09 21:24:21 +00:00
Harry Moffat
1f2afb41e2 More work with LatticeSolidPhase.
Still not ready for prime time.
2010-06-22 15:52:49 +00:00
Harry Moffat
6e9d490dc1 Updates to the LatticeSolidPhase object.
This object is not ready for primetime.
2010-06-21 23:47:34 +00:00
Harry Moffat
6b1a1ac27f Merged changes from the trunk. 2009-12-11 15:27:02 +00:00
Harry Moffat
321d387930 MetalSHEelectrons
Added a built-in type to handle electrons in metals that
    follow the SHE convention.

    Took out electrodeElectron, since it was hidden and not used.

    MetalSHEelectrons have a standard concentration of 1, instead
    of the previous treatment where SHE electrons had a standard
    concentration equal to the concentration of an ideal gas.
2009-12-11 01:32:26 +00:00
Harry Moffat
392683283a An initial implemention of a string representation of the
phase eos type.  We've not had this until now. 

The idea here is to have a 1 to 1 mapping between an
eosType int and a string, which can be used for writing output.
2009-12-08 17:36:40 +00:00
Harry Moffat
0e85b295cc An initial implementation of a string function that returns
the eosType(). This is something that we've been lacking.
2009-12-08 17:33:06 +00:00
Harry Moffat
7b3b9b186a Transfering bugfixes from liquidTransport to the main branch.
This mainly involved fixing the copy and assignment operators
for the IonsFromNeutralVPSSTP operator.

Added docs for PDSS_SSVol

Turned on keyword substitution
2009-12-05 19:08:43 +00:00
Harry Moffat
35e4c9ea45 Turned on Keyword substition in all files. 2009-11-09 23:36:49 +00:00
Harry Moffat
686fb46591 Added back in a clear 2009-10-13 01:57:50 +00:00
Harry Moffat
9593d2996e Another update aimed at getting a SimpleTransport model up and running.
SimpleTransport now can read its XML file.
2009-10-13 00:27:48 +00:00
Harry Moffat
a258cdf083 Added an xml storage section to importPhase(). Note this represents a
long standing bug in some ThermoPhase implementations, where the
xml tree was not being storred for the phase node in some cases.
2009-10-11 21:38:42 +00:00
Harry Moffat
7e6f2a1775 Latest version of the IonsFromNeutral object. Hopefully, this
clears up the linking errors that VC9 was experiencing.
2009-09-10 22:51:40 +00:00
Harry Moffat
f7e48f0068 Updates for thermoFactory.
IonsFromNeutralMolecule needs special handling.
2009-09-02 19:20:22 +00:00
Harry Moffat
95b94a7a57 Added IonsFromNeutraVPSSTP to the ThermoFactory. 2009-09-02 19:03:26 +00:00
Harry Moffat
06276fba6d Added a new thermo object in.
IonsFromNeutralVPSSTP : This is initially used for molten salts.
        Molten salt thermo is treated via the neutral molecule
        molten salt expressions. However, ions migrate by themselves.
        therefore, you must treat ions within the transport equations.
        This thermophase object treats the ions as species, and is
        made to be consistent with the neutral molecules thermophase
        object that is used to express the non-ideal thermodynamics
        of the molten salt solution. Currently, MargulesVPSSTP
        is used for this as the LiKCl system is parameterized using
        this excess Gibbs free energy formulation.

    MargulesVPSSTP
        Various upgrades and fillers. It now reads and is initiated
        from the input file.

    setState_TP(), setTemperature(), and setPressure() within 
    VPStandardStateTP() formulations
        There was some circular logic, previously. Now setTemperature() and setPressure()
        are subserviant to setState_TP(). Basically, it doesn't make
        sense to calculate the standard state without first getting
        both the temperature and pressure (not just one and then the other)
        before you calculate the standard state for VPStandardStateTP derivatives.
        Think about the water EOS, which is a real fluid. You don't want
        to be trying to calculate the standard state within the enveloppe where
        neither gas nor liquid is stable.

     PseudoBinaryVPSSTP
        Deprecated.
2009-09-02 17:17:52 +00:00
Harry Moffat
70647c85ed Initial Import 2009-07-27 23:17:19 +00:00
Harry Moffat
f0095a7f9b Added headers for a possible ubuntu problem 2009-03-13 03:21:34 +00:00
Harry Moffat
1d4480db10 Added an electrodeElectron ThermoPhase. 2008-12-28 04:56:09 +00:00
Harry Moffat
3afa913954 Added the ThermoPhase MineralEQ3, which allows the importation of EQ3
phases.
2008-12-27 00:27:55 +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
464fc1409d Bug fix / clarification to importPhase()
Created a list of species early on in the new routine,
 formSpeciesXMLNodeList(). This list is the actual list of
species that will make up the phase. This is done before the
id of the SPeciesThermo or VPSSMgr is chosen, so that this id
is chosen based on just the species to be included in the
phase and not on all of the species that are in the database.

The overall amount of code is reduced, and the code is clarified.

Fixed an error in 	VPSSMgr_Water_HKFT.
2008-12-04 02:09:28 +00:00
Harry Moffat
c884917c95 Bug fixes for liquid electrolyte thermo capability.
thermo XML node now takes a couple of extra XML nodes that can specify
explicitly which standardStateManager and which variblePressureStandardState
manager to use.

These are :
  <standardStateManager model="provide_specific_model_here">


and
  <variablePressureStandardStateManager model="provide_specific_model_here">

Previously, these were being determined implicitly by querying the
input deck. However, it seems a no brainer to put the capability for
putting explicit instructions in.
2008-09-23 15:57:52 +00:00
Harry Moffat
5c73809c25 More checks against user input errors in the XML file. 2008-09-16 21:22:17 +00:00
Harry Moffat
0f57869240 Changed a setState function to a setState_TR function for consistency
with the rest of Cantera

Added an analytical derivative for dpdT for the water object.

Started adding states for the water object that refer to unstable conditions
within the spinodal curve.
2008-09-03 20:29:29 +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
b72ca7f04a Doxygen work for PDSS
added phaseNode XML pointer to installSpecies routines.
2008-01-30 17:54:12 +00:00
Harry Moffat
666e688bea Bug fix to the newPhase function. 2007-12-20 22:07:34 +00:00
Harry Moffat
0c6c9dedef Added a few ifdefs for WITH_ options. 2007-12-19 22:40:17 +00:00
Harry Moffat
1f97037f69 Bug fix for instantiation of these thermo models via the ThermoFactory
approach.
2007-12-19 17:03:17 +00:00
Dave Goodwin
c438d5846f added spectroscopy support 2007-12-15 17:15:46 +00:00