Commit graph

26 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
9e1fdfe39a Eliminated CVS keyword cruft 2012-01-09 17:32:01 +00:00
Harry Moffat
67529bcba0 doxygen update 2010-08-10 15:34:19 +00:00
Harry Moffat
ef7728b1d3 Merged thermo directory with the LiquidTransportDevelop
thermo directory. 
  The biggest change is the addition of the derivative routines
of the activity wrt mole fraction and mole number.
Also There is an addition of reportCSV() routine, which is 
a method to create a comma separated file from ThermoPhase routines.
The rest are small issues.
2010-05-09 03:18:33 +00:00
Harry Moffat
7abb1dc33a Merged with the trunk. 2010-01-17 19:08:00 +00:00
Harry Moffat
66ea343cea Doxygen update
- no code changed
  - All the easy warning messages are eliminated now from the trunk.
2010-01-17 18:17:55 +00:00
Harry Moffat
6b1a1ac27f Merged changes from the trunk. 2009-12-11 15:27:02 +00:00
Harry Moffat
20c74f21af Added the change for the bugfix to HMWSoln to the main branch.
The function getActivityConcentration in the HMWSoln object had
a bug in it that caused it to be incompatible with standardConcentration
and getActivities(). This meant that the ROP in kinetics managers
for this object was being calculated incorrectly.
2009-12-09 17:29:23 +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
e64a381754 Doxygen update. 2009-10-21 00:10:48 +00:00
Harry Moffat
2bd7816b65 Added in a model for the thermal conductivity of pure water
at all T and P.
Added in a test for the new model.
2009-09-16 02:13:43 +00:00
Harry Moffat
53d21aaf7e Moved WaterPropsIAPWS inside the Cantera namespace. I can't remember why it wasn't in the first place.
Added a WaterProps object to PDSS_Water. This object will be worked into all of the other objects , and also used within the transport directory.
2009-09-15 17:32:20 +00:00
Harry Moffat
276602af3a Moved the water viscosity calculation to WaterProps.cpp.
Changed calcDensity to be a virtual function started at VPStandardStateTP().
   It's a protected function as well.
   At the VPStandardStateTP level, calcDensity() produces an error when called, because the EOS isn't specified. Derived classes must define this function, supplying the EOS.

WaterPropsIAPW: I added documentation to this routine, defining what functions changes the state of the object.

IdealMolalSoln: I had forgotten to update this object to employ the newer setState_TP() strategy that I had used in VPStandardStateTP().
2009-09-15 15:01:39 +00:00
Harry Moffat
70647c85ed Initial Import 2009-07-27 23:17:19 +00:00
Harry Moffat
0e21a0f3c5 Changed old to new style headers 2008-12-17 17:04:46 +00:00
Harry Moffat
71393768bf Replaced coeffThermExp() with an analytical derivative. 2008-09-03 22:40:14 +00:00
Harry Moffat
5fc2c72c39 Made the isothermal compressibility function a real derivative function
instead of a numerical derivative.
2008-09-02 17:23:40 +00:00
Harry Moffat
f650649725 Fixed a segfault when supplied with a null pointer. 2008-08-27 00:01:21 +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
59d198cf50 Doxygen update to WaterProps 2008-01-06 22:38:54 +00:00
Harry Moffat
16c8a59ca5 Bugfix checkin to get the duplMyselfAsThermoPhase() routines working.
Bugs include quite a few errors in the copy constructors and
assignment operator functions, which, for most of them, have been
checked against a sample problem, HMW_dupl_test, for the very first time.

Note, the duplMyselfAsThermoPhase() routines are now working.
2007-06-01 23:44:24 +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
29bd558cc2 First commit of water properties routines. These are
under-the-hood routines for calculation of water electrolyte
thermochemistry.
2006-07-04 00:01:53 +00:00