Compare commits

...

3309 commits

Author SHA1 Message Date
Bryan W. Weber
ba330a797e Create FUNDING.yml
Links to NumFOCUS donate page
2019-11-23 13:15:21 -05:00
Ingmar Schoegl
e320ec785e [Examples] add version info to ic_engines.py 2019-11-18 18:07:09 -05:00
Ingmar Schoegl
088c52fff2 [ck2cti] fix surface reactions with explicit reverse rate 2019-11-18 17:53:59 -05:00
Ingmar Schoegl
719cb3d2b7 [Data] remove zero T2 value from TROE 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
197c69a476 [YAML] preserve zero in Troe T2 input 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
5bc81bf397 Finalize cleanup of warning messages 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
334a496267 [YAML] read exact Troe/SRI parameters 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
456bc32f23 [Transport] reformat warnings 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
72082d026a [Equil] reformat warnings 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
7d72cc9baa [Thermo] reformat warnings 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
f67d9113db [Kinetics] issue warning for zero T2 Troe coefficient 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
2fdbce42b2 [OneD] reformat warnings 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
f5f7227e79 [Thermo] reformat NasaPoly2::validate warning 2019-11-10 22:56:20 -05:00
Ingmar Schoegl
1cc87f4372 [Base] introduce warn_user 2019-11-10 22:56:20 -05:00
Ray Speth
02c433b9a2 [Doc/Input] Document phase-level setting for Motz-Wise in YAML files 2019-11-09 11:53:16 -05:00
Ray Speth
d4f9717c1c [Input] Fix handling of global Motz-Wise flag in cti2yaml 2019-11-09 11:53:16 -05:00
Bryan W. Weber
efb246d73a [cti2yaml] Add failing test of Motz-Wise option
The global Motz-Wise option is not added to the phase specification
2019-11-09 11:53:16 -05:00
Ingmar Schoegl
21de00c549 [Kinetics] update unit tests to probe falloff type 2019-11-08 15:18:26 -05:00
Ingmar Schoegl
e2bfba328c [Kinetics] deprecate magic numbers for falloff reactions 2019-11-08 15:18:26 -05:00
Ingmar Schoegl
58063b498a [Kinetics] deprecate magic number types in RxnRates.h 2019-11-08 15:18:26 -05:00
Ingmar Schoegl
91c7bf14d7 [Base] finalize introduction of Solution object in C++ layer 2019-11-08 15:12:36 -05:00
Ingmar Schoegl
cf315f7c5e [oneD] change thermo type passed to StFlow constructor
- allow for 'ThermoPhase`, and cast to 'IdealGasPhase' internally
2019-11-08 15:12:36 -05:00
Ingmar Schoegl
2a9554c134 [Base] consolidate shared_ptr access in Solution 2019-11-08 15:12:36 -05:00
Ingmar Schoegl
58fc8f770c Replace doublereal by double 2019-11-08 15:12:36 -05:00
Ingmar Schoegl
d730b4c5e8 Deprecate (previously) used convenience wrapper classes
- IdealGasMix.h and Interface.h
2019-11-08 15:12:36 -05:00
Ingmar Schoegl
eda3b2fbfb Deprecate (previously) unused convenience wrapper classes
- Edge.h, IncompressibleSolid.h and Metal.h
2019-11-08 15:12:36 -05:00
Ingmar Schoegl
9f6cba3c33 [samples] replace convenience wrapper classes by C++ Solution 2019-11-08 15:12:36 -05:00
Ingmar Schoegl
a0350925a7 [test_problems] replace convenience wrapper classes by C++ Solution
- Remove dependence on IdealGasMix.h
2019-11-08 15:12:36 -05:00
Ingmar Schoegl
40ae5b5fb5 [Base] implement initialization of C++ Solution from input files
- implement constructor that loads ThermoPhase, Kinetics, and Transport
from input files (wrapping factory class methods)
- logic for selection of transport manager follows Python object
- add convenience methods to type-cast frequently used classes
2019-11-08 15:12:36 -05:00
Ingmar Schoegl
43d02e95e3 [Scons] prevent installation to source directory 2019-11-07 10:35:53 -05:00
Ray Speth
ce47733c42 [Test] Fix coverage consistency issue in getMixDiffCoeffsMole 2019-11-02 15:43:05 -04:00
Ray Speth
6dbcd94029 [Doc] Fix alphabetization of thermo and species thermo models 2019-11-02 10:42:35 -04:00
Ray Speth
71ba021467 Add sticking coefficients to CTI API docs 2019-11-02 10:42:35 -04:00
CyberDrudge
65f7b16f01 Implemented function to list data files
Update function to list data files

Follow Style Guidelines

Add doc for listing files
2019-11-01 22:18:59 -04:00
Ray Speth
a5b28ba799 [Input] Fix conversion of Ion transport in cti2yaml 2019-11-01 22:16:45 -04:00
Ray Speth
bddb339198 [Input] Fix handling of skip_undeclared_third_bodies in cti2yaml 2019-11-01 22:16:45 -04:00
Bryan W. Weber
69393e9307 [cti2yaml] Add failing ch4_ion test 2019-11-01 22:16:45 -04:00
Ingmar Schoegl
eb02fa9726 Update issue templates
Fixes #698. Further:
- Add SUPPORT.md
- Move community help files to .github folder
2019-11-01 22:16:06 -04:00
Ingmar Schoegl
54c12fc59c [Thermo] add support for concentration string in findIsomers 2019-10-29 21:26:57 -04:00
Ingmar Schoegl
4f42164443 [Thermo] add unit tests for add_species_alias and find_isomers 2019-10-29 21:26:57 -04:00
Ingmar Schoegl
3ef99f966c [Thermo] add functions findIsomer/addSpeciesAlias 2019-10-29 21:26:57 -04:00
Ingmar Schoegl
a85396ef11 [Input/Scons] make gri30 consistent with latest online version
Updated version keeps input and thermo separate, which requires minor
changes in the build scripts.
2019-10-29 21:00:36 -04:00
Ingmar Schoegl
1e01054bf5 [Thermo] eliminate SolutionArray._extra_arrays 2019-10-25 15:06:31 -04:00
Ingmar Schoegl
cd67962004 [Thermo] add ability to sort SolutionArray objects 2019-10-25 15:06:31 -04:00
Steven DeCaluwe
f02ca90e2c Updating citation info for li ion battery example. 2019-10-24 22:16:52 -04:00
Ingmar Schoegl
76901b7f50 [ReactorNet] improve handling of max_time_step
* implement ReactorNet::maxTimeStep to allow for external queries
* implement getter/setter for property ReactorNet.max_time_step
* deprecate ReactorNet.set_max_time_step
2019-10-24 20:31:54 -04:00
Ingmar Schoegl
3b7eb0dc8d [Scons] use consistent phase names (CTI/XML vs YAML) 2019-10-23 21:39:53 -04:00
Ray Speth
a221c632f4 [Test] Add tests for ck2yaml 2019-10-23 13:54:59 -04:00
Ray Speth
5cca4f22df [Input] Preserve comment after last reaction in ck2yaml 2019-10-23 13:54:59 -04:00
Ray Speth
8665eda3c1 [Input] Fix error message for unrecognized section in ck2yaml 2019-10-23 13:54:59 -04:00
Ray Speth
a085bc1f43 [Input] Check that all species have thermo before writing YAML file 2019-10-23 13:54:59 -04:00
Ray Speth
6c8adf47b3 [Input] Normalize YAML reaction equation for Chebyshev reactions
Fix the reaction equation to always include the (+M). Previously, if the (+M)
was omitted, an invalid reaction string was generated.
2019-10-23 13:54:59 -04:00
Ingmar Schoegl
ee41824b1e [SpeciesThermo] address review comments 2019-10-23 13:53:56 -04:00
Ingmar Schoegl
650db397b2 [SpeciesThermo] load piecewise-Gibbs from YAML 2019-10-23 13:53:56 -04:00
Ingmar Schoegl
d43774e721 [SpeciesThermo] enable cython constructors for Nasa9PolyMultiTempRegion
Further:
* Add unit tests for ShomatePoly2 and Mu0Poly
2019-10-23 13:53:56 -04:00
Ingmar Schoegl
cb0e1f1509 [SpeciesThermo] add unit tests 2019-10-23 13:53:56 -04:00
Ingmar Schoegl
cf8d2efa09 [SpeciesThermo] assign nCoeffs in C++ layer 2019-10-23 13:53:56 -04:00
Ingmar Schoegl
5ab15e15ce [SpeciesThermo] add initial Cython classes
- n_coeffs remains to be addressed (needed: number of zones)
2019-10-23 13:53:56 -04:00
Ingmar Schoegl
dc66407cf2 [Thermo] address code review comments 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
63da219947 [Thermo] deprecate name/id support in Phase::speciesIndex 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
7c08e17f08 [Thermo] deprecate Phase::id and Phase::setID
* Merge usage of 'id' and 'name' in the context of Phase objects
* Raise deprecation warnings for Phase::id and Phase::setID
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
6e5d45273a [Thermo] replace 'phase_id' by 'name'
* 'name' corresponds to the YAML entry
* rename Solution keyword 'phaseid' to 'name' (instead of 'phase_id')
* rename ck2yaml argument '--id' to '--name' (instead of '--phase-id')
* ensure that C++ Phase::m_id is always the same as Phase::m_name
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
5928d63746 [Thermo] address discussion and review comments
* rename C++ object to 'Solution' (from 'SolutionBase')
* remove 'phaseID' from 'Solution' ('id' remains assigned to 'Phase')
* remove 'type' from C++ object (no polymorphism anticipated)
* assign 'name' to 'Solution' (link back from 'Phase' until deprecated)
* clarify 'phase' as 'phase_id' in Python interface
* address various feedback in review comments
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
b5e4f25454 [Input] rename --id to --phase in ck2yaml options
The option --phase is consistent with the resulting yaml entry in 'phases'.
The --id option is still supported, with a warning being issued.
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
3bf09fbd7f [Base] rename Base.h/.cpp to SolutionBase.h/.cpp 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
af04f97d0e [Base] use FutureWarning for deprecated keywords 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
fef352b9d5 [Base] update docstrings for Solution and Interface objects
* Reflects changes to `phase` and `adjacent` keyword
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
d8e09a9550 [Base] clarify keyword arguments of _SolutionBase initializers
* Replace `phaseid` by `phase`
* Replace `phases` by `adjacent`
* Add deprecation warnings and update unit tests
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
dbac2fc79c [Base] replace Solution property ID by phase in Python
* Clarifies the meaning of ID
* Creates a PEP8 compliant attribute that does not conflict with
a built-in function name that is also consistent with the YAML entry.
* Change associated member function names in C++ SolutionBase
* Deprecate `ID` in Python (to be removed after Cantera 2.5)
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
b926a31faf [Base] break out thermo/kinetics manager types to Python 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
f71954ac96 [Base] associate phase ID with SolutionBase object 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
b5137d40a3 [Base] remove redundant unique_name attribute
* Resolve conflation of gas.ID and gas.name in unit tests
* Also fixes #691
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
799ef81518 [Base] link managers back to SolutionBase 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
486e2ba9b8 [Base] add unit test probing methods of C++ SolutionBase 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
afd36b1c1e [Base] create SolutionBase object in C++
* Add Base.h/Base.cpp with definition of SolutionBase
* Link C++ object into Cython interface
* Add unique_name and type attributes to Cython _SolutionBase
2019-10-23 13:45:29 -04:00
Ray Speth
c149c4ed73 [CI] Copy doc archive to cantera.org
In order to generate links to pages in the development docs, the
cantera-website build process needs a local copy of the current dev docs,
which this provides in a format which can be easily downloaded.
2019-10-14 10:22:37 -04:00
Bryan W. Weber
55fe2233b1 [Thermo/YAML] Rename water-IAPWS95 to liquid-water-IAPWS95
The water-IAPWS95 instantiates either WaterSSTP or PDSS_water objects,
both of which are intended for liquid phases only. Clarify the phase
name to liquid-water-IAPWS95 to allow a future phase that could
represent the full liquid<->vapor phase space.
2019-10-06 16:45:21 -04:00
Ingmar Schoegl
fe7be79552 [Thermo] improve error messages
Incorporate reviewer suggestions for error messages (user feedback) in
PureFluid.TPX setter and SolutionArray.restore_data
2019-10-02 22:16:55 -04:00
Ingmar Schoegl
074fd2cd74 [Thermo] adopt review comments for SolutionBase.restore_data 2019-10-02 22:16:55 -04:00
Ingmar Schoegl
2b61d3ad4a [Thermo] add read_hdf and update docstrings 2019-10-02 22:16:55 -04:00
Ingmar Schoegl
213612bd33 [Thermo] recreation of SolutionArray objects from stored data
This commit implements new methods for SolutionArray:
* `restore_data` can restore data previously exported by `collect_data`
* `read_csv` restores data previously saved by `write_csv`
* unit tests are added for SolutionArray's based on ThermoPhase and PureFluid
2019-10-02 22:16:55 -04:00
Ingmar Schoegl
378c6da18b [Thermo] add setter TPX to PureFluid
* setter for `PureFluid.TPX` property is added to allow for automatic
restoration of consistent thermodynamic data
* alternative to 'TP', 'TX' or 'PX' which may not uniquely describe
a valid thermodynamic state
* add unit test
2019-10-02 22:16:55 -04:00
Ray Speth
69f33a8631 [Input] Check that Chebyshev coefficient matrix is rectangular 2019-09-27 17:11:18 -04:00
Ray Speth
ecce98c1dc [Kinetics] Fix Chebyshev rate evaluation with only 1 point in T or P 2019-09-27 17:11:18 -04:00
Ray Speth
b44f189569 [Thermo] Avoid NaN in entropy with small negative mass fractions
Avoid NaN results in entropy_mole calculations when there are small negative
mass fractions. Consistent with the approach used elsewhere,
e.g. IdealGasPhase::getPartialMolarEntropies.
2019-09-24 17:38:15 -04:00
Paul
c4aff04418 Updated URL in references to Cantera's license. 2019-09-23 22:02:33 -04:00
Ingmar Schoegl
9ce255302e Implement faster fallback for non-canonical/lowercase name lookup 2019-09-23 21:53:06 -04:00
Ingmar Schoegl
5e692e893a Isolate lowercase fallback in speciesIndex 2019-09-23 21:53:06 -04:00
Ingmar Schoegl
717635d3e6 Add case-sensitive/lowercase logic to Phase::species
Further:
* revert unit tests to previous species definitions (some case mis-matches)
* remove non-essential comments
* opt to maintain case-sensitive species maps with lowercase as fallback
2019-09-23 21:53:06 -04:00
Ingmar Schoegl
76dd997692 [Thermo] update unit tests to handle case sensitive species names 2019-09-23 21:53:06 -04:00
Ingmar Schoegl
2231141e32 [Thermo] add flag that makes species names case sensitive
* store species information with case sensitive names
* retain lookup for non-case sensitive species names, e.g. Phase::speciesIndex
* implement flag that enforces case sensitive species names as a member
variable of Phase
* add exception handling for species that are not uniquely defined unless case
sensitive (e.g. Cs and CS in nasa.cti if cs is specified and case sensitivity
is not enforced)
* deprecate Phase::species(std::string&)
2019-09-23 21:53:06 -04:00
Ingmar Schoegl
e0fe5eed59 [Thermo] fix compiler warning for RedlichKwongMFTP 2019-09-23 21:53:06 -04:00
Ray Speth
265a1860cc [1D] Disable free flame domain width check when auto=False
Solving with auto=True and then solving with auto=False would leave the domain
width check in place, but without the logic for automatically increasing the
domain width, resulting in unexpected solver failures.
2019-08-13 12:48:45 -04:00
Ingmar Schoegl
7ac09108c9 Update .gitignore 2019-08-13 11:33:40 -04:00
Ingmar Schoegl
eff23b6f82 Update ic_engine example using new cantera capabilities 2019-08-13 11:33:40 -04:00
Ingmar Schoegl
eea04255fd [Thermo] add write_hdf to SolutionArray objects
* The commit implements saving of data extracted from SolutionArrays
 to HDF containers using pandas infrastructure.
 * Two methods are introduced: `write_hdf` and `to_pandas`.
 * Both methods only work if the pandas module can be imported; an
 exception is raised only if the method is called without a working
 pandas installation.
2019-08-13 11:32:51 -04:00
band-a-prend
5184ebccba Fix "catching polymorphic type" GCC 8 warnings
The "catching polymorphic type" warnings appear during compilation with GCC 8:

src/base/global.cpp: In function ‘void Cantera::setLogger(Cantera::Logger*)’:
src/base/global.cpp:28:19: warning: catching polymorphic type ‘class std::bad_alloc’ by value [-Wcatch-value=]
     } catch (std::bad_alloc) {
                   ^~~~~~~~~

src/equil/vcs_MultiPhaseEquil.cpp: In member function ‘int Cantera::vcs_MultiPhaseEquil::equilibrate_HP(doublereal, int, double, double, int, int, doublereal, int, int)’:
src/equil/vcs_MultiPhaseEquil.cpp:228:31: warning: catching polymorphic type ‘class Cantera::CanteraError’ by value [-Wcatch-value=]
         } catch (CanteraError err) {
                               ^~~

src/equil/vcs_MultiPhaseEquil.cpp: In member function ‘int Cantera::vcs_MultiPhaseEquil::equilibrate_SP(doublereal, double, double, int, int, doublereal, int, int)’:
src/equil/vcs_MultiPhaseEquil.cpp:354:31: warning: catching polymorphic type ‘class Cantera::CanteraError’ by value [-Wcatch-value=]
         } catch (CanteraError err) {
                               ^~~

This commit fix this warnings via caught by reference.
2019-08-10 15:07:44 -04:00
band-a-prend
1606ce1565 Remove m_iter variable and deprecate setIterator function
Remove m_iter variable and deprecate setIterator function
because only Newton (CV_NEWTON) iteration method is used.
2019-08-09 18:08:47 -04:00
band-a-prend
6a8d7f7de3 Fix building Cantera against Sundials 4.x library
The changelog of Sundials 4.0.0 states:

"With the introduction of SUNNonlinSol modules, the input parameter iter
to CVodeCreate has been removed along with the function CVodeSetIterType
and the constants CV_NEWTON and CV_FUNCTIONAL.
Similarly, the ITMETH parameter has been removed from the Fortran interface
function FCVMALLOC. Instead of specifying the nonlinear iteration type
when creating the CVODE(S) memory structure, CVODE(S) uses
the SUNNONLINSOL_NEWTON module implementation of a Newton iteration by default."

so the appropreate conditional changes are added to control
the code execution via CT_SUNDIALS_VERSION preprocessor variable
to omit the parameters of Sundials solver that are no longer required.
2019-08-09 18:08:47 -04:00
band-a-prend
3b948e17d4 Simple fix for Sundials 3.2 compatibility
The Sundials 3.1 and 3.2 are compatible with each other
so this patch just allows to pass check for the installed Sundials 3.2
2019-08-09 18:08:47 -04:00
Ingmar Schoegl
97356a48df Add set_equivalence_ratio to SolutionArray objects 2019-08-09 17:39:10 -04:00
Ray Speth
27f30c6a2d Use more precise atomic masses for deuterium and tritium 2019-08-09 15:15:30 -04:00
Bryan W. Weber
fc01d7f3de Make format of atomic weights struct consistent
In the atomic weights struct in Elements.cpp, ensure that there is no
space before the closing brace of an element and that there is one
space between the longest element name and a 3-digit weight.
2019-08-09 15:15:30 -04:00
Bryan W. Weber
ded50547f9 Update test results changed by constants and elements
Update reference values and blessed files in regression tests.
2019-08-09 15:15:30 -04:00
Bryan W. Weber
b5a7575bc0 [Doc] Fix element function exception documentation
For several elements-related functions, the documentation listed
incorrect or incomplete exceptions that could be thrown from that
function.
2019-08-09 15:15:30 -04:00
Ray Speth
a7363e4b54 Update mass of electron "element" to 2018 CODATA value 2019-08-09 15:15:30 -04:00
Ray Speth
7461c3c960 Fix data for thallium in elements.xml
The entry for element with atomic number 81 incorrectly had the atomic symbol
and standard entropy for titanium.
2019-08-09 15:15:30 -04:00
Bryan W. Weber
dc96fb5fe8 Update atomic weights with 2018 IUPAC/CIAAW data
Use data from the periodic table at
http://www.ciaaw.org/atomic-weights.htm and
https://iupac.org/wp-content/uploads/2018/12/IUPAC_Periodic_Table-01Dec18.pdf
Elements without any atomic weight in either table do not have a stable
isotope. These are deleted from elements.xml and have their atomic
weight set to -1.0 in Elements.cpp. Add elements after plutonium that
were not previously listed. None of these elements have stable
isotopes.

These elements are retained/added so their symbols, names, and atomic
numbers can still be retrieved and the mapping of atomic number to
index - 1 in the struct is maintained.

Modify the element weight lookup functions to throw errors when an
element with no weight is requested (i.e., the weight is -1.0 in the
struct).
2019-08-09 15:15:30 -04:00
Bryan W. Weber
541fddb15e Rearrange the physical constants 2019-08-09 15:15:30 -04:00
Bryan W. Weber
3e6e57edbf Change all doublereal in ct_defs to double 2019-08-09 15:15:30 -04:00
Bryan W. Weber
3e4842be9e Update physical constants with CODATA 2018 values
These values include the redefinition of the kilogram. The data were
released on 20 May, 2019.
2019-08-09 15:15:30 -04:00
Ingmar Schoegl
bbdc790257 Address error C2512 when compiling with Visual Studio
Using a default value, VS2019 (VC 14.1) complains about a missing default constructor for UnitSystem.
2019-08-05 21:56:25 -04:00
Ingmar Schoegl
bc8b4be654 [Reactor] clarify FlowDevice interface
* differentiated Valve::setValveCoeff from PressureController::setPressureCoeff
 and introduced MassFlowController::setMassFlowCoeff for consistency.
 * introduced FlowDevice::setTimeFunction and FlowDevice::setPressureFunction to
 differentiate time-dependent and pressure-dependent functions.
 * introduced arbitrary pressure dependence for PressureController
 * deprecated FlowDevice::setFunction which is replaced by time and pressure
 specific functions.
 * introduced properties Valve.valve_coeff / PressureController.pressure_coeff /
 MassFlowController.mass_flow_coeff in Cython interface and deprecated
 Valve.set_pressure_coeff / PressureController.set_pressure_coeff
 * deprecated corresponding function calls in clib interface
 * deprecate FlowDevice.setParameters (which was only used by MATLAB interface)
2019-08-05 17:01:05 -04:00
agarwalrounak
7523022d71 Update diamond.cti and diamond_cvd.py
Replace data/inputs/diamond.cti with test_problems version that has
more information. This results in a change in the default pressure and
mole fractions of the gas phase, which in turn changes the result of
one of the regression tests. This is fixed by setting the composition
and pressure of the gas phase in the test to their original values. The
default state from the CTI file matches from the paper.

In addition, there was a difference in the reversibility of reaction u
between the files. Since the thermo for C(d) specifies that the
reaction is irreversible, this is the sense of the reaction that is
chosen.

Include plotting in the diamond_cvd.py and use open properly.
2019-08-05 14:09:03 -04:00
Bryan W. Weber
bfa5a66ed3 [SCons] Remove fmt from linking
We use the header-only version of fmt now, so no need to link to the
compiled library.
2019-08-01 18:10:00 -04:00
Bryan W. Weber
c0f019407e [SCons] Link to yaml-cpp when using system libs
Similar to the system_sundials option, libyaml-cpp must be added to the
linker line when the system libraries are used.
2019-08-01 18:10:00 -04:00
Sebastian Pinnau
dda89663ea [SCons] Add yaml-cpp to shared libraries if building with system yaml-cpp
If building Cantera with system_yamlcpp=y the yaml-cpp library needs to be
specified in the linker flags.

Fixes #668
2019-08-01 18:10:00 -04:00
Kyle Niemeyer
6852087ff5 Fixed typo in ctml_writer.py
"explcit" -> "explicit"
2019-08-01 15:56:45 -04:00
band-a-prend
582eb42b2f cantera: Fix passing 'python_prefix' variable into installation path
The '${python_prefix}' substring for installation prefix path
was accepted as mapping key for '.format()' function resulting in
a 'KeyError' failure of 'cantera/interfaces/cython/SConscript' script
in case of `env[libdirname] == 'lib64'`.

Moreover the early applied pull request[1] didn't take into account
the additional setting of installation prefix path in the cases
when 'libdirname' takes values different from 'lib64'.

This patch resolves both those issues.

[1]: https://github.com/Cantera/cantera/pull/661
2019-08-01 15:53:20 -04:00
Ingmar Schoegl
d263566670 [Reactor] Deprecating magic numbers.
* add deprecation warning for int ReactorBase::type() (to be changed after Cantera 2.5)
 * introduce temporary std::string ReactorBase::typeStr() (to be renamed after Cantera 2.5)
 * deprecate all functions using the old call and introduce associated temporary functions
2019-08-01 15:37:48 -04:00
Ingmar Schoegl
77295b2103 Update AUTHORS list 2019-08-01 15:37:48 -04:00
Bryan W. Weber
296e2912e5 [Test] Update to not use deprecated PureFluid.h
Update test_problems for rankine and pureFluid to avoid using the
deprecated PureFluid.h convenience wrapper classes. Update the
rankine.cpp test problem to match the rankine.cpp sample. Switch
both test_problems updated here to use writelog instead of
printf/cout.
2019-07-30 13:24:11 -04:00
Bryan W. Weber
ed59ae9516 [Samples] Update to not use PureFluid wrapper
Update rankine.cpp sample to avoid using the deprecated PureFluid wrapper
classes. Update the small changes in the blessed output.
2019-07-30 13:24:11 -04:00
Bryan W. Weber
386c215b3b [Thermo] Deprecate PureFluid, use PureFluidPhase instead
The convenience wrapper PureFluid class can be replaced by
PureFluidPhase::initThermoFile or other methods of creating ThermoPhase
instances.
2019-07-30 13:24:11 -04:00
Ray Speth
409227cd05 [CI] Make test errors show up as CI failures for macOS builds 2019-07-30 13:24:11 -04:00
Bryan W. Weber
5f08b362aa
[CTI/YAML] Check convert arguments in cti2yaml
Check that one, and only one, of the filename/text arguments are
specified.
2019-06-29 17:02:41 -04:00
Bryan W. Weber
27438751ce
[CTI/YAML] Change cti2yaml to use pathlib
cti2yaml converts input and output file names to pathlib.Path objects.
This makes it easier to manage paths for test data files
2019-06-29 17:02:41 -04:00
Bryan W. Weber
8d57424188
[Test] Write converted test files to the work dir
The previous behavior was to write the test files to the current working
directory
2019-06-29 17:02:41 -04:00
Bryan W. Weber
2e54811549
[Test] Remove relative directory for data files
The relative directory wasn't the same for the installed Cython
interface
2019-06-29 17:02:41 -04:00
Bryan W. Weber
1e2a9f23a3
[Test] Avoid using path in source tree in tests
The relative path that is eliminated here relied on being in the source
directory structure, breaking tests of the installed Cython interface
2019-06-29 17:02:41 -04:00
Bryan W. Weber
a4ad2f5d66
[Cython/Test] Install test subdirs in Cython interface
The tests now include subdirectories with data files, so those should be
installed with the rest of the data files
2019-06-29 17:02:41 -04:00
band-a-prend
674c37ce3c cantera: Sconstruct 'libdirname' env PathVariable
Some distributions (e.g. Fedora/RHEL) use 'lib64' instead of 'lib'
on 64-bit systems or could use some other library directory name
instead of 'lib' depends on architecture and profile
(e.g. Gentoo 'libx32' on x32 profile).
If user didn't set 'libdirname' configuration variable then
set it to default value 'lib'

This commit is related to early closed issue:
https://github.com/Cantera/cantera/issues/318
2019-06-28 15:25:41 -04:00
Ray Speth
c840142bff Bump version to 2.5.0a3 2019-06-27 18:29:21 -04:00
Steven DeCaluwe
2d2004da7e Exposing getDeltaEnthalpies to Matlab interface.
The general intent here was to enable calculating reaction enthalpies in the
Matlab toolbox, as part of the li-ion battery simulations in PR #563.

This required several changes:

- Create getDeltaEnthalpies.m in Matlab toolbox/@Kinetics, as well as similar
methods for Gibbs free energy and entropy of reaction
- Add kin_getDelta to kineticsmethods.cpp.
- Add getPartialMolarEnthalpies to metalPhase class (it returns all zeros).

Note that similar methods are not enabled for the corresponding
'Standard State' methods, for the time being.  Mainly because it is
difficult for me to envision a significant use case, but also because of
some lingering confusion between 'standard' and 'reference' states in
Cantera's codebase.
2019-06-27 18:03:07 -04:00
bryanwweber
8502d18ff7 Initialize m_units in AnyMap default constructor
Without this initialization, VS2017 (VC 14.1) complains there is a missing default constructor for UnitSystem.
2019-06-27 16:00:01 -04:00
bryanwweber
946ed901a0 Bump yaml-cpp submodule commit
For VS2017, we need fixes from jbeder/yaml-cpp#597 to compile the submodule
2019-06-27 16:00:01 -04:00
Ray Speth
a247d0f4eb [Reactor] Use correct phase state after mass flow rate evaluation
A user-defined mass flow rate function can modify the ThermoPhase object used by
a reactor, for example if it depends on calculating some property of a different
reactor. To make sure that the reactor governing equations are evaluated
correctly, the ThermoPhase state needs to be set after all user-defined
functions have been called.
2019-06-27 10:47:05 -04:00
Ray Speth
edcc9c59fd [Input] Fix CTI to YAML conversion of phases with no elements 2019-06-26 20:20:23 -04:00
Steven DeCaluwe
67087f874d Updating matlab Li ion battery sample.
Corrected one typo (stray mid-line comment symbol) and converted
hard-coded faraday constant to the corresponding Matlab toolbox function
(added with PR #640).
2019-06-26 20:20:23 -04:00
wbessler
cceb12b01b Further improved Li-ion battery example
MATLAB example: better comments, faster calculation, consistent signs; CTI file: thermally-activated kinetics
2019-06-26 20:20:23 -04:00
wbessler
bc6dd4ddc0 Improved lithium-ion battery cti file and Matlab example
Extended and clarified comments, corrected density data, improved functionality
2019-06-26 20:20:23 -04:00
Ingmar Schoegl
ae792dde00 implemented limited advance step 2019-06-26 13:48:01 -04:00
Ingmar Schoegl
bbab606a20 take care of uninitialized value warning during compilation 2019-06-26 13:48:01 -04:00
Bryan W. Weber
360ac9b79e Copy editing for YAML docs
Improve consistency of formatting. Eliminate duplicate hyperlink targets
by making them anonymous links.
2019-06-25 23:31:23 -04:00
Ray Speth
dced8fbcad [Test] Make testing of deprecated methods possible
Fatal deprecation warnings are useful for identifying inadvertent use of
deprecated features. However, we still want to retain tests of deprecated
features until those features are removed.
2019-06-25 22:30:59 -04:00
Ray Speth
df5a3ae08f [Test] Fix inadvertent reset of "fatal deprecation warnings" flag
Calling appdelete() to erase the input file cache also resets the value of
Application::m_fatal_deprecation_warnings to false.
2019-06-25 22:30:59 -04:00
Ray Speth
a573b32770 [CI] Move Ubuntu builds from 14.04 (Trusty) to 16.04 (Xenial) 2019-06-25 22:30:59 -04:00
Ray Speth
2e8b860ccd [Input] Check for reactions with multiple sets of parameters 2019-06-25 22:30:59 -04:00
Ray Speth
d705ff760a [Input] Fix Species.listFromYaml when reading from a subsection 2019-06-25 22:30:59 -04:00
Ray Speth
674701b0c2 [Samples] Fix include path for compiling C++ samples with 'scons samples' 2019-06-25 22:30:59 -04:00
Ray Speth
f2f05e5ed1 [CI] Use Miniconda instead of Homebrew for macOS dependencies
Installation of Homebrew packages fails when the brew version in the Travis
image gets too far out of date, but updating Homebrew as part of the CI builds
takes ages and frequently fails. The best solution seems to be to just not use
it in the first place.
2019-06-25 22:30:59 -04:00
Ray Speth
165f11dfca [Input] Add information about conversion to generated YAML input files 2019-06-25 22:30:59 -04:00
Ray Speth
44c5094bb2 [Input] Implement 'skip-undeclared-third-bodies' option in YAML format 2019-06-25 22:30:59 -04:00
Ray Speth
a7aa6e721a Create YAML versions of input files as part of build process 2019-06-25 22:30:59 -04:00
Ray Speth
baacc563b8 [Input] Add cti2yaml for converting CTI files to the new YAML format 2019-06-25 22:30:59 -04:00
Ray Speth
b77f368ead [Input] Instantiate BinarySolutionTabulatedThermo from YAML 2019-06-25 22:30:59 -04:00
Ray Speth
53faf54ceb [Thermo] Add ThermoPhase.standardConcentrationUnits method
This method returns the units of the concentration-like terms appearing
in rate expressions, and are needed in order to convert rate constants
from user-specified input units to Cantera's MKS+kmol system.
2019-06-25 22:30:59 -04:00
Ray Speth
0b04881b8d [Input] Handle "declared-species" option for adding reactions from YAML 2019-06-25 22:30:59 -04:00
Ray Speth
69371e5751 [Python] Implement Reaction constructors from YAML files/strings 2019-06-25 22:30:59 -04:00
Ray Speth
8037497dd3 [Python] Implement Species constructors from YAML files/strings 2019-06-25 22:30:59 -04:00
Ray Speth
040ffe4711 [Doc] Add comments to AnyMap and AnyValue classes 2019-06-25 22:30:59 -04:00
Ray Speth
891a4e74d3 Make YAML generated by ck2yaml prettier 2019-06-25 22:30:59 -04:00
Ray Speth
8eb52a7afb [Input] Create ElectrochemicalReaction objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
d66abc5234 [Doc] Add API documentation for the YAML input format 2019-06-25 22:30:59 -04:00
Ray Speth
672b55a72f Add AnyValue::getMapWhere function 2019-06-25 22:30:59 -04:00
Ray Speth
d77a5979a8 [Input] Provide context for more errors in YAML processing 2019-06-25 22:30:59 -04:00
Ray Speth
b1273301cc [Input] Create Metal objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
088e0031fd [Input] Create LatticePhase and LatticeSolidPhase from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
f1937bfada [Input] Create IdealSolidSolnPhase objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
3011374ff6 [Input] Create ConstDensityThermo objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
ecc1cf0db2 [Input] Create PureFluid objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
9e98aef969 [Input] Create RedlichKwongMFTP objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
0d1196bd46 [Input] Create InterfaceKinetics and InterfaceReaction objects from YAML 2019-06-25 22:30:59 -04:00
Ray Speth
b0209bdf37 [Input] Store additional reaction data in 'input' map 2019-06-25 22:30:59 -04:00
Ray Speth
26bd71af53 [Input] Create Surface and Edge phases from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
9ffab53a17 [Fortran] Add functions for constructing objects based on filenames
Bypass reading and manipulation of XML files in Fortran, so that XML, CTI,
and YAML input files can all be used.
2019-06-25 22:30:59 -04:00
Ray Speth
901ec2f12c [Matlab] Construct objects directly from input file names
Bypass reading and manipulation of XML files within Matlab, so that XML, CTI,
and YAML input files can all be used.
2019-06-25 22:30:59 -04:00
Ray Speth
6a8c378846 [clib] Add functions for creating objects directly from input files
These methods work with YAML, CTI, and XML input files.
2019-06-25 22:30:59 -04:00
Ray Speth
fd088889cd [Transport] Add tests based on YAML input files 2019-06-25 22:30:59 -04:00
Ray Speth
338a38b87c [Input] Store additional species transport data in TransportData object 2019-06-25 22:30:59 -04:00
Ray Speth
48a32ae8bf [Thermo] Enable creation of ThermoPhase objects from YAML file names 2019-06-25 22:30:59 -04:00
Ray Speth
580b75b2d2 [Input] Add new aliases for transport models
These names are consistent with the style used in YAML input files
2019-06-25 22:30:59 -04:00
Ray Speth
45d5099979 Create PDSS_HKFT objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
3028c14a10 Improve setting of default energy and pressure units
Only treat activation energies as a special case, rather than all molar
energies. Units of activation energy can be set either explicitly or by setting
units for energy and quantity. Only the case where activation energies are given
as temperatures needs to be specified explicitly.

Allow setting of default energy units, which allows calories to be used.

Also add dyn/cm^2 as an option for pressure units.
2019-06-25 22:30:59 -04:00
Ray Speth
56612115f3 [Input] Create HMWSoln objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
7d964dae47 [Input] Create MaskellSolidSoln objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
d8a1337933 [Input] Create RedlichKister objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
4f30f1156d [Input] Fix reference pressure on constant cp thermo created from YAML
Also make 298.15 the default reference temperature
2019-06-25 22:30:59 -04:00
Ray Speth
72d345619f [Input] Create PDSS_SSVol objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
1e8b8b538c [Input] Create IdealGasVPSS and PDSS_IdealGas objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
a3024d7699 [Input] Create IonsFromNeutral objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
8b47274765 [Input] Create DebyeHuckel and PDSS_Water objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
07aadbce6c [Test] Add more checks to DebyeHuckel.fromScratch
Change species molar volumes to match DH_NaCl_bdotak.xml
2019-06-25 22:30:59 -04:00
Ray Speth
fb1054a259 Fix AnyMap compilation issues with some compilers
Some versions of G++ complained about being unable to decide between the const
and non-const functions. Rewriting without the use of the deprecated
std::mem_fun is the simplest fix.
2019-06-25 22:30:59 -04:00
Ray Speth
e7c6495ec7 [Input] Create IdealMolalSoln objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
1bdbf2a010 [Input] Create Margules and PDSS_ConstVol objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
89838c3ffb [Input] Use YAML 'equation-of-state' field to create PDSS objects 2019-06-25 22:30:59 -04:00
Ray Speth
6dac1b0409 [Input] Allow mapping for Arrhenius parameters, and use this as the default
Pressure-dependent Arrhenius reactions now use a list of mappings instead
of a more complicated nested list structure.
2019-06-25 22:30:59 -04:00
Ray Speth
fdfbc58a1e [Input] Search current directory for referenced YAML input files 2019-06-25 22:30:59 -04:00
Ray Speth
2c58dd78c6 [Input] Create FixedChemPot objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
d7734e3f19 [Input] Allow "=" as a delimiter for reversible reactions in YAML 2019-06-25 22:30:59 -04:00
Ray Speth
cae5c498ca [Input] Create WaterSSTP objects from YAML definitions 2019-06-25 22:30:59 -04:00
Ray Speth
98a9566fc4 [Input] Create StoichSubstance objects from YAML definitions
The (fixed) density is now read from the species definition, rather than the
phase definition.
2019-06-25 22:30:59 -04:00
Ray Speth
a5bf674419 [Input] Cache parsed YAML files to speed up repeated reads 2019-06-25 22:30:59 -04:00
Ray Speth
40c403c07d Add ability to instantiate Transport objects from YAML files 2019-06-25 22:30:59 -04:00
Ray Speth
6d6f34bee3 [Input] Read species Transport data from YAML / AnyMap 2019-06-25 22:30:59 -04:00
Ray Speth
96124f8455 [Input] Store phase definition parameters in the ThermoPhase object 2019-06-25 22:30:59 -04:00
Ray Speth
59b0f64e26 [Python] Add ability to instantiate objects from YAML files 2019-06-25 22:30:59 -04:00
Ray Speth
8a0eed3be5 [Python] Use shared_ptr for C++ objects owned by Solution 2019-06-25 22:30:59 -04:00
Ray Speth
be4d9cbc55 [Input] Add ck2yaml script for converting Chemkin files to YAML 2019-06-25 22:30:59 -04:00
Ray Speth
f0dc990764 Create a complete Kinetics object from a YAML input file 2019-06-25 22:30:59 -04:00
Ray Speth
f4d45f8a85 Create a complete ThermoPhase object from a YAML input file 2019-06-25 22:30:59 -04:00
Ray Speth
c8b737035d [Thermo] Add method for setting the state using an AnyMap
Analogous to ThermoPhase::setStateFromXML, but more flexible
2019-06-25 22:30:59 -04:00
Ray Speth
3251a3533e Add AnyMap::erase method 2019-06-25 22:30:59 -04:00
Ray Speth
0264c66f79 Add const version of AnyMap operator[]
Reduces the need to use the at() function
2019-06-25 22:30:59 -04:00
Ray Speth
7d3488a973 Add AnyMap.keys_str function 2019-06-25 22:30:59 -04:00
Ray Speth
afd5d82280 [Input] Provide context lines in YAML parsing error messages 2019-06-25 22:30:59 -04:00
Ray Speth
a32e32b7d7 Remove AnyMap traversal using "/" as a path delimiter
This feature was unused, and interfered with the use of "/" as a delimiter
for YAML keys indicating keys in other input files.
2019-06-25 22:30:59 -04:00
Ray Speth
e28c9add21 Add variants of AnyValue.asMap for accessing lists of maps 2019-06-25 22:30:59 -04:00
Ray Speth
71bf44d11f [Input] Parse YAML entries for Species objects 2019-06-25 22:30:59 -04:00
Ray Speth
84fa231ea2 [Input] Read local 'units' definitions in reaction and thermo entries
Move 'convert' functions that work with missing keys to AnyMap class.
2019-06-25 22:30:59 -04:00
Ray Speth
6e3053dd1c Add function for setting default units from a std::map
This is the form that will be used when reading units from a YAML
input file.
2019-06-25 22:30:59 -04:00
Ray Speth
4c5040e829 [Input] Parse YAML entries for piecewise Gibbs (Mu0Poly) species thermo 2019-06-25 22:30:59 -04:00
Ray Speth
f0bb0d2262 Make AnyMap iterable 2019-06-25 22:30:59 -04:00
Ray Speth
86c73dad20 [Input] Parse YAML entries for constant cp species thermo 2019-06-25 22:30:59 -04:00
Ray Speth
74eec731f1 Add a version of UnitSystem.convert that handles default values 2019-06-25 22:30:59 -04:00
Ray Speth
7211f08891 [Input] Parse YAML entries for NASA 9-coefficient polynomials 2019-06-25 22:30:59 -04:00
Ray Speth
7ff6e8fac2 [Input] Parse YAML entries for Shomate polynomials 2019-06-25 22:30:59 -04:00
Ray Speth
2b41486850 [Input] Parse YAML entries for NASA 7-coefficient polynomials 2019-06-25 22:30:59 -04:00
Ray Speth
3eaa32dea3 [Thermo] Make SpeciesThermoInterpType objects default constructible
Also provide setters for all all parameters which were set by the
constructor.
2019-06-25 22:30:59 -04:00
Ray Speth
aef101fee7 [Input] Parse YAML entries for Chebyshev reactions 2019-06-25 22:30:59 -04:00
Ray Speth
7a97ff9917 Add optional length check when converting AnyValue to vector 2019-06-25 22:30:59 -04:00
Ray Speth
24d1e86440 Improve "missing key" error message for AnyMap 2019-06-25 22:30:59 -04:00
Ray Speth
b54ea8bd82 [Input] Parse YAML entries for Plog reactions 2019-06-25 22:30:59 -04:00
Ray Speth
d476ad8e59 Use Boost to demangle type names in AnyValue casting errors 2019-06-25 22:30:59 -04:00
Ray Speth
cb31c297cf [Input] Parse YAML entries for falloff and chemically activated reactions 2019-06-25 22:30:59 -04:00
Ray Speth
8b502d4065 [Input] Parse YAML entries for three body reactions 2019-06-25 22:30:59 -04:00
Ray Speth
0220e11ef9 Allow conversion from long int to double in AnyValue.asMap 2019-06-25 22:30:59 -04:00
Ray Speth
de80f06887 [Input] Parse YAML entries for elementary reactions 2019-06-25 22:30:59 -04:00
Ray Speth
224c46ebbb Add functions for converting units from AnyValue instances 2019-06-25 22:30:59 -04:00
Ray Speth
65121becac Add special handling of activation energies to class Units 2019-06-25 22:30:59 -04:00
Ray Speth
da097631e3 UnitSystem class supports default source units for conversions 2019-06-25 22:30:59 -04:00
Ray Speth
c9b7de3b70 Add support for metric prefixes to class Units 2019-06-25 22:30:59 -04:00
Ray Speth
b8cb2c30f8 Add 'Units' class for doing conversions with dimensionality checks
Introduces a new, more natural notation for writing unit strings,
for use in YAML input files. Unlike 'toSI', conversions are checked for
dimensional consistency.
2019-06-25 22:30:59 -04:00
Ray Speth
ea88d4f9fb Add "get" functions to AnyMap
Simplify the common use case of checking for a key and using a default
value when it is missing.
2019-06-25 22:30:59 -04:00
Ray Speth
530adbb931 Add automatic conversions to vector<AnyValue> 2019-06-25 22:30:59 -04:00
Ray Speth
e5bd0b136f Allow AnyValue to convert implicitly from long int to double 2019-06-25 22:30:59 -04:00
Ray Speth
00f6b88fa4 [Input] Implement construction of AnyMap from YAML string/file 2019-06-25 22:30:59 -04:00
Ray Speth
e85e0e2108 Fix constness of some AnyMap functions 2019-06-25 22:30:59 -04:00
Ray Speth
ed24198e63 Add option to compile yaml-cpp or use system library 2019-06-25 22:30:59 -04:00
Ray Speth
4bd1ca1cde Add yaml-cpp submodule 2019-06-25 22:30:59 -04:00
Ray Speth
56cb190a64 Fix units of site density in sofc.cti 2019-06-25 22:30:59 -04:00
Bryan W. Weber
444ef91e0f Build the samples on the CI services
Requires libomp on macOS from homebrew. OpenMP with Visual C/C++ requires
the loop index to be a signed type (from OpenMP < 3.0).
2019-06-17 10:29:20 -04:00
Bryan W. Weber
142f533229 Correct flag and libs for OpenMP on macOS
Apple's clang on macOS requires the libomp to link. Apple symlinks gcc
to clang, so it can't be detected as clang by executable name
2019-06-17 10:29:20 -04:00
Bryan W. Weber
3588be16f3 CMake use Accelerate even if OpenMP is also used
For samples, make sure that OpenMP and Accelerate are not exclusive
options on macOS
2019-06-17 10:29:20 -04:00
Bryan W. Weber
007ecf0c7c Include boost_inc_dir when building the samples 2019-06-17 10:29:20 -04:00
Bryan W. Weber
857bb0a769 Include Func1.h in zerodim.h
zerodim.h used to have Func1.h included indirectly, so make it explicit.
2019-06-17 10:29:20 -04:00
Bryan W. Weber
9a5c2708e5 Replace the compiler variables during conda build
The build compilers should not be specified into the sample templates
2019-06-13 14:36:54 -04:00
Bryan W. Weber
265032da8f Remove build-system specific env vars on macOS
The isysroot and mmacosx-min-version flags are needed to build the
Cantera library, but not to actually use it on macOS. They should be
removed because users don't need these and should use the SDK installed
with XCode.
2019-06-13 14:36:54 -04:00
Steven DeCaluwe
ba8ac1d519 Mark ConstDensityThermo for deprecation.
The thermophase ConstDensityThermo instantiates a class with
constant density_mass  Such a model is of dubious physical
validity/applicability and has minimal foreseeable use cases.
This commit marks it for deprecation, and adds a message in
ctml_writer.py (where the model has the misleading alias
'incompressible_solid') refering the interested user to consider
appropriate alternate thermophase classes 'lattice' or
'IdealSolidSoln.'
2019-06-12 17:54:48 -04:00
Steven DeCaluwe
fb3dee36c5 Removing references to incompressible_solid in sofc.cti
Removes references to incompressible_solid phase in the codebase.
This phase type references ConstDensityThermo phase, which is a
non-physical model and is to be deprecated, with Cantera 2.5. In
order to enable deprecation, the following changes are hereby made:

- Changes oxide_bulk phase type from incompressible_solid to lattice in sofc.cti
- Changes test_convert.py so that it interrogates the density_mole of the bulk_oxide, rather than density_mass
2019-06-12 17:54:48 -04:00
Steven DeCaluwe
813d5064ae Enabling Lattice thermo phase via cti interface. 2019-06-12 17:54:48 -04:00
Steven DeCaluwe
0ed2b38594 Adding faradayconstant.m to Matlab toolbox 2019-06-08 17:33:30 -04:00
Thanasis Mattas
6a42e5942e rearranging methods to aid src reading 2019-06-08 17:25:55 -04:00
Thanasis Mattas
ea3bb0af90 Some documentation corrections at xml.h 2019-06-08 17:25:55 -04:00
Ingmar Schoegl
5d62f3bacc added factories for FlowDevice and Wall objects 2019-05-28 19:21:28 -04:00
Ingmar Schoegl
751afa3c2b addresses issue #615 2019-05-09 22:21:35 -04:00
CyberDrudge
fbe4ce5c1b Remove Unnecessary comments 2019-05-09 12:22:44 -04:00
Ingmar Schoegl
f078f53f39 Enable additional states / equations in onedim 2019-04-17 00:06:26 -04:00
Nick
848a3bf0e3 Add InterfaceKinetics.advance_coverages integrator options to the cython interface, and test 2019-04-10 22:14:27 -04:00
Nick
d2cb02f254 add integrator parameters to the InterfaceKinetics::advanceCoverages & ImplicitSurfChem constructor to allow users to modfiy 2019-04-10 22:14:27 -04:00
Bryan W. Weber
654e582bc0
Add NumFOCUS donation link to README
Also update some URLs to HTTPS
2019-03-20 09:28:59 -04:00
Bryan W. Weber
d25637d0ea
Update NumFOCUS donation link in docs sidebar 2019-03-20 09:15:39 -04:00
g3bk47
471041a27a Additional check for Troe coefficients being zero
This will prevent floating point exceptions (sometimes enabled by third-party
codes) in case c[1] or c[2] are zero but will not change the current behaviour
if c[1] and c[2] are not zero.
2019-03-18 14:39:50 -04:00
Bryan W. Weber
4026c17915 Add /usr/local/include to cmake incdirs
By default, CMake uses the system SDK on macOS as the system root by
setting the isysroot flag to clang. This setting removes /usr/local from
the include search path.
2019-03-15 14:44:43 -04:00
Bryan W. Weber
cb008a95d7 Add the Accelerate framework to the CMake builds of the samples 2019-03-15 14:44:43 -04:00
Ray Speth
337f33baad [CI] Use Travis Homebrew addon instead of manual brew commands
This should reduce the time needed to set up the build environment and avoid
build failures associated with errors while updating irrelevant homebrew
packages.
2019-03-14 14:08:54 -04:00
Ray Speth
968dc24925 [Python] Fix compatibility with Cython < 0.27
After setting the "language_level" directive (6c0866ef), nested comprehension
expressions erroneously triggered an error message from the Cython compiler
saying "local variable 's' referenced before assignment". While the problem has
been fixed in Cython 0.27 and newer, this commit restores compatibility with
older Cython versions as well.
2019-03-14 14:03:51 -04:00
Ray Speth
5e226535de Fix regression in compatibility with Sundials 2.4.0
Regression was introduced in 9c50f752 when adding compatibility with
Sundials 3.x.

Fixes #613
2019-03-14 14:03:51 -04:00
Bryan W. Weber
6c0866efb8 Add Cython language_level directive to _cantera.pyx
This fixes the warnings generated by recent versions of Cython that
the language_level will be changed in the future. By setting this
directive, all the code in the .pyx files should be written in
Python 3 syntax. This required several changes to the import
syntax in the files to fix relative vs. absolute imports
2019-03-11 17:00:13 -04:00
Ray Speth
d6d91f4d98 [Thermo] Fix updating state of PDSS_IonsFromNeutral objects
Setting T and P now updates the state of the underlying "neutral
molecule phase".

Also removed the unimplemented setState_TR method.
2019-03-06 19:50:16 -05:00
Ray Speth
bdc81684b1 [Thermo] Fix BinarySolutionTabulatedThermo initial mole fraction thermo
The value of m_xlast should only be set to a valid value by _updateThermo,
after it has calculated values for the tabulated enthalpy and entropy.
2019-03-06 19:48:45 -05:00
Ray Speth
aceb896f62 [Thermo] Fix BinarySolutionTabulatedThermo updates when only T changes
In the case where temperature changes but the mole fractions are the same, we
still need to apply the enthalpy and entropy offsets to the tabulated species.
2019-03-06 19:48:45 -05:00
Ray Speth
47005a5008 [Thermo] Fix overriding of IdealSolidSolnPhase::_updateThermo
Since IdealSolidSolnPhase::_updateThermo wasn't a virtual method, and
the signatures didn't match (const vs non-const), calls to this method
from IdealSolidSolnPhase weren't being overridden by
BinarySolutionTabulatedThermo::_updateThermo as expected.
2019-03-06 19:48:45 -05:00
Ray Speth
1f70f7751c Move sofc.cti from examples to main data directory 2019-03-05 16:09:55 -05:00
Ray Speth
ec7f779434 [Input] Include more significant digits for Redlich-Kwong coefficients
ctml_writer was severely truncating Redlich-Kwong coefficients when converting
from CTI to XML formats, keeping only 5 significant digints in the "a"
coefficients and two decimal digits in the "b" coefficients, which is less than
what is used even in the example CTI files. The use of the "%f" format also
meant that the precision depended on input units.
2019-03-05 16:09:55 -05:00
Ray Speth
6c82b61c3d [Kinetics] Always use temperature of "reacting" phase
This is always the lowest-dimensional phase, e.g. surface or edge for
heterogeneous systems.
2019-03-05 15:03:48 -05:00
Ray Speth
5601ee9067 [Python] Add 'kinetics_species_name' and 'kinetics_species_names' 2019-03-05 15:03:48 -05:00
Ray Speth
5ad656e342 [ck2cti] Fix Chebyshev rate constant when using local quantity units
Since the leading Chebyshev coefficient has effective units like
log(cm^3/kmol), it needs to be converted directly to the default units of
the CTI file.

Analogous to the fix for PLOG reactions in #435.
2019-02-28 22:37:38 -05:00
Ray Speth
540777c32b [ck2cti] Fix handling of reaction units settings not on last line
Fixes a regression introduced in d56b6205fa.
2019-02-25 11:06:12 -05:00
Ray Speth
0fdbe24aaf Provide error message after failure to create large Sundials matrix
If Sundials tries to create an excessively large matrix, it returns a null
pointer. To avoid a subsequent segfault, throw an exception which makes the
cause of the error clear.

WIP: Better error message for too-large Sundials matrix

TEMP: fixup for cvodes error messages
2019-02-25 11:06:12 -05:00
Ray Speth
90d2ec41ca [Thermo] Eliminate redundant coefficient storage in ShomatePoly2 2019-02-25 11:06:12 -05:00
Ray Speth
8bcb62f727 Fix GRI3.0 transport coefficients
The old (C++) ck2cti program unnecessarily rounded some species transport
coefficients. This updates the coefficients in the input files derived from GRI
3.0, and updates the test comparisons for affected tests.
2019-02-25 11:05:40 -05:00
Ray Speth
8689809d9e Remove unused XML input files
The XML versions of these files that are actually installed/used are the ones
generated during the build process from their CTI equivalents.
2019-02-25 11:05:40 -05:00
Ray Speth
ce9a17dd92 Bump version to 2.5.0a2 2019-02-25 09:14:33 -05:00
Bryan W. Weber
7691d7f9d3
Remove execute bits from test data files 2019-02-22 09:17:20 -05:00
Ray Speth
b8367d6fe8 [Thermo] Eliminate redundant coefficient storage in NasaPoly2 2019-02-21 11:21:03 -05:00
Ray Speth
50997a1651 [Python] Fix documentation of Reaction.listFromCti 2019-02-20 22:50:43 -05:00
Ray Speth
77b467929c [Thermo] Fix calculation of initial density of IdealSolidSolnPhase
The density of IdealSolidSolnPhase and BinarySolutionTabulatedThermo objects was
not being computed as part of construction, causing code that interacted with
them using setState/restoreState, such as the 'Solution' constructors in Matlab
and Python, to fail.
2019-02-20 21:39:22 -05:00
Ray Speth
7cf58af69e [Thermo] Always initialize BinarySolutionTabulatedThermo member variables 2019-02-20 21:39:22 -05:00
Steven DeCaluwe
f0c797c482 Updates to samples/matlab/lithium_ion_battery.m
Added some context and higher level functionality  to
lithium_ion_battery.m sample, such that it now uses some of the
already-present functionality to calculate and plot the open
circuit voltage for a lithium ion battery for a range of active
material compositions.
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
e4789d7102 Fixing BinarySolutionTabulatedThermo::_updateThermo
Previously, BinarySolutionTabulatedThermo::_updateThermo created a new
`speciesThermoInterpType` intance every time the thermo was updated,
storing the tabulated thermo lookups as the reference state thermo.

This has now been changed such that the reference state is used only
to represent the temperature effects on the thermo, with the tabulated
terms added to this reference state.  This should be a more efficient
implementation.
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
84b4147a99 Fixing return type of BinarySolutionTabulatedThermo::interp
The function `BinarySolutionTabulatedThermo::interp` now returns type
`std::pair<double, double>`, rather than `static double`
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
8169c26271 Updates to ctml_writer.py associated with BinarySolutionTabulatedThermo class.
-Removes option to read tabulated thermo from an external csv file (this is now
handled from within cti or xml).
-Renames `rateCoeff` keyword to the more appropriate `rate_coeff_type`, and fixing
keyword order so that this new keyword is listed last.
-Removes `else` statement from `if isinstance(self._standardState, standardState)
-Removes unused `_pure` attribute from `IdealSolidSolution` and
`BinarySolutionTabulatedThermo`
-Changes default on `tabulated_species` keyword to `None`.
-Removing superfluous `standardState:_build` from ctml_writer.py
- Removes unnecessary conc_dim() definition in `table` class.
- Removes unnecessary units defintion for mole fractions in `table` class.
- Improves grammar in error message for case when thermo table is
not provided for `tabulated_species`.
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
11271d90b2 Fixing unit conversion of tabulated data in BinarySolutionTabulatedThermo
Previously the model imported the tabulated data assuming it was given
in J, mol, K units, and ignoring any user input in the cti file, w/r/t
units.  This fixes that, by amending the `getFloatArray` calls in
thermo/BinarySolutionTabulatedThermo.cpp
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
366d1942ef Updating keyword order in ctml_writer.py species::__init__
The keyword `standardState` was added to species::__init__ in
ctml_writer.py.  This moves this keyword entry to the end of the
list of keywords, so that species instances of the class do not
need to reorder their keyword order.
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
05fdd356f2 Updates to BinarySolutionTabulatedThermo and test file.
-Fixes small typo id incclude/cantera/base/utilities.h docstring
-Removes `m_formGC` from BinarySolutionTabulatedThermo class, and
instead utilizes version and functionality inherited from parent
class `IdealSolidSolnPhase`.
-Moves samples/matlab/lithium_ion_battery/lithium_ion_battery.cti
to data/inputs/lithium_ion_battery.cti
-Fixes typo in test/data/BinarySolutionTabulatedThermo.cti
-Updates expected_result values in several test cases in
test/thermo/BinarySolutionTabulatedThermo_Test.cpp
2019-02-20 21:39:22 -05:00
Steven DeCaluwe
ae555fb063 Add description for BinarySolidSolutionTabulatedThermo class 2019-02-20 21:39:22 -05:00
Steven DeCaluwe
3c9bbc4ec9 Fix IdealMolalSolution::standardConcentration
Standard concentrations in the IdealMolalSolution phase depend on
a user-specified m_formGC parameter, where m_formGC=0 results in a
standard concentration of 1.0, m_formGC = 1 is supposed to result in
a standard concentration for species k  equal to 1 divided by the
molar volume of species k, and m_formGC = 2 is supposed to result in
a standard concentration equal to 1 divided by the molar volume of the
solvent species (which is species 0).

Current behavior is that m_formGC = 1 and m_formGC = 2 *both* result
in a standard concentration of 1 divided by molar vlume of the solvent.

This commit fixes how this is handled, cleans up the switch statement
(the three cases were written somewhat inconsistently), and throws
an error if m_formGC is set < 0 or > 2.
2019-02-20 21:39:22 -05:00
Manik Mayur
b8d5eb405a Add MATLAB example files for BinarySolutionTabulatedThermo class 2019-02-20 21:39:22 -05:00
Jamie
a7449c6cc8 Add tests for BinarySolutionTabulatedThermo class 2019-02-20 21:39:22 -05:00
Manik Mayur
224ef720e6 Add BinarySolutionTabulatedThermo class 2019-02-20 21:39:22 -05:00
Ray Speth
d04fd8cc39 [ck2cti] Show name of species with undefined elements in error message 2019-02-18 18:39:15 -05:00
CyberDrudge
aa9721dbe9
Use Cantera Error in leftover examples
Update diffusion_flame_batch.py and diffusion_flame_extinction.py
to use CanteraError where appropriate. Define a new
FlameExtinguished exception to distinguish between extinction and
other failures. This allows things like OSErrors to still be
raised to the user while dealing with exceptions we can handle.
Closes #569.
2019-02-18 13:38:50 -05:00
CyberDrudge
9d4c0eda03
Fix typo in Matlab documentation for cp_mass
Fixes #590
2019-02-17 08:12:53 -05:00
lavdwall
cb5620996c Add solvePseudoSteadyStateProblem() in cython interface 2019-02-11 13:46:48 -05:00
Ray Speth
e3424d8ed4 [ck2cti] Fix over-zealous detection of section 'end' labels 2019-02-04 18:49:45 -05:00
Ray Speth
33e198f7e5 [Thermo] Generalize check for missing Redlich-Kwong coefficients
A check in the "updateAB" function will be executed regardless of how the phase
is instantiated.
2019-02-04 18:49:45 -05:00
Ray Speth
f385f48190 [CI] Change Codecov to use Linux build instead of macOS
Something changed such that the macOS Travis builds are no long able to upload
coverage data to Codecov. However, uploading from the Linux builds instead seems
to work fine.
2019-02-04 18:49:45 -05:00
Ray Speth
ebb93cb5a2 [Thermo] Fix setting of temperature-dependent Redlich-Kwong parameters
Using negative values to indicate unspecified parameters doesn't work, since
either constant in "a = a0 + a1*T" can be negative and still produce a positive
value for "a". Instead, NaN can be used for this purpose.
2019-02-04 18:49:34 -05:00
Ray Speth
3ff5d87b81 [Doc] Fix descriptions and units of coverage dependency parameters 2019-02-04 16:38:40 -05:00
Ray Speth
46b7cf180a [SCons] Make dependency on copying Eigen headers explicit
SCons seems to miss this dependency sometimes, resulting in confusing failures
while trying to compile DenseMatrix.cpp.
2019-02-04 16:38:40 -05:00
Ray Speth
dc09040274 [Samples] Fix compilation of Blasius BVP sample with 'scons samples' 2019-02-04 16:38:40 -05:00
Ray Speth
1ec9ce2c01 [1D/samples] Fix C++ flame speed example
Fixes a regression introduced in 6f45b241.
2019-02-04 16:38:40 -05:00
Ray Speth
35be561d99 [Matlab] Eliminate unnecessary copy-constructor-like option 2019-02-04 16:38:40 -05:00
Ray Speth
9f5dfbdb12 Document units of Margules interaction parameters 2019-02-04 16:38:40 -05:00
CyberDrudge
d9b95b2efb
[Examples] Fix refinement check in ic_engine.py
The previous refinement check didn't work because the loop never
reached n2 == 4. Replace is checks with == checks.
2019-02-01 17:03:31 -05:00
CyberDrudge
05eaa0a5e4
[Examples] Use CanteraError in ic_engine.py
Related to #569, swap catching bare Exception for the
more specific CanteraError
2019-02-01 17:03:21 -05:00
Ray Speth
4b3bb8f8fc [Thermo] Fix incorrect documentation in the PDSS class
PDSS objects do not interact with the MultiSpeciesThermo object for a phase,
but at most a single SpeciesThermoInterpType object.
2019-01-23 16:43:44 -05:00
Ray Speth
27c64b76f8 [Thermo] VPStandardStateTP does not use reference thermo objects
Since VPStandardStateTP and derived classes do not use the reference state
thermodynamic properties in the m_spthermo object, we can just install
placeholder objects there, and eliminate the wrapper clas STITbyPDSS.
2019-01-23 16:43:44 -05:00
Ray Speth
311ae76510 [Thermo] Allow species without thermo data
In some models, SpeciesThermoInterpType objects on individual species are not
used. Instead of requiring the specification of placeholder thermo data, this
allows the base SpeciesThermoInterpType class to be used, which will throw an
exception if it is inadvertently used.
2019-01-23 16:43:44 -05:00
Ray Speth
af56138e14 [Thermo] Clean up implementation of MaskellSolidSolnPhase
Eliminate several member variables which shadow variables of the
VPStandardState class, and actually contained the same information
calculated a different way.
2019-01-23 16:43:44 -05:00
Ray Speth
4d5cd502a2 [Input] Improve error message for Chemkin files with unrecognized sections 2019-01-10 15:17:33 -05:00
Ray Speth
cbe763836e [Input] Fix file name in error message for errors in surface mechanisms 2019-01-10 15:17:33 -05:00
Ray Speth
1bb081d769 [CI] Pin to SCons 3.0.1 to prevent AppVeyor from skipping tests
With SCons 3.0.3 on AppVeyor, the 'scons test' command exits immediately without
any output.
2019-01-10 15:17:33 -05:00
Ray Speth
a347ad36c4 [Input] Fix handling of skipped species in NASA9 input files
Fixes #582
2019-01-10 15:17:33 -05:00
Ray Speth
d56b6205fa [Input] Improve detection of invalid lines in reaction entries
Previously, lines which did not contain a reaction equation or a known keyword
and did not contain any slashes would be silently skipped. This caused reactions
mistakenly written using '->' as the arrow to be ignored without warning.

Fixes #583
2019-01-10 15:17:33 -05:00
Ray Speth
b633544477 [Python/1D] Retain user-specified products in counterflow premixed flame
When using the 'auto' solver option, user-provided arguments to
set_initial_guess were not being saved for subsequent calls to set_initial_guess
within Sim1D.solve, causing the solution to always be for equilibrated products.
2019-01-09 11:44:03 -05:00
arghdos
e3230801c9 Expose getting/setting of max-steps to python interface & test 2019-01-07 22:33:03 -05:00
Ray Speth
19577abfbe Deprecate rarely-used vector functions 2018-12-14 11:27:24 -05:00
Ray Speth
6a859215f8 Replace timesConstant with C++11 lambda 2018-12-14 11:27:24 -05:00
Ray Speth
6f45b241b5 Remove code deprecated in Cantera 2.4 2018-12-14 11:27:24 -05:00
Steven DeCaluwe
0257c4868e Adding test suite coverage for critcal property lookups in RedlichKwongMFTP 2018-12-11 11:08:47 -05:00
Steven DeCaluwe
68a89d0322 Adding critProperties database for RedlichKwongMFTP
Adds capability for RedlichKwongMFTP to read a database of critical properties
for Tc and Pc of common species, so that users do not need to input pureFluidParameters
for every single species, thereby reducing burden during creation of new cti files.

For any species where pureFluidParameters are not provided by the user, function
getCoeffs scans the database looking for matches.  Any unmatched species will throw
an error.  Currently only scans by species name string, and is only intended for
common species with well-known critical properties.

Current operation is quite slow if the table is consulted for a large number of
species.  In the future, should also implement the capability to write the updated
pureFluidParameters back into the xml file, so the user only has to perform the lookup
once.
2018-12-11 11:08:47 -05:00
Ray Speth
27d9b6413a [CTML] Remove parsing of vestigial "allow_discontinuous_thermo" option 2018-12-02 23:54:52 -05:00
Ray Speth
442433ad37 [Doc] Note that setting blas_lapack_libs does not make Eigen optional 2018-12-02 23:54:52 -05:00
Ray Speth
9aa507a098 [Kinetics] Make some member functions const 2018-12-02 23:54:04 -05:00
Ray Speth
84535483f9 Check for additional invalid string-to-double conversions 2018-12-02 23:54:04 -05:00
decaluwe
3e9b0e0c07 Updating include/cantera/RedlichKwongMFTP.h to reflect new tests.
Text in the header file previously commented that the RedlichKwongMFTP
thermo class had no test suite coverage and was at risk for deprecation.
As this is no longer the case, this PR removes that language.
2018-12-01 00:00:18 -05:00
Bryan W. Weber
1b5f0f4fe9 Update AUTHORS list with authors from all Cantera organization repos 2018-11-30 23:58:32 -05:00
Nick
9f3dc70949 [SCons] Use RPATH for linking shared libraries
Prevents issues with missing shared libraries at runtime on non-Windows
systems. Can be disabled by setting the SCons flag 'use_rpath_linkage=n'.
2018-11-30 23:52:36 -05:00
Nick Curtis
c93bddf9a0
Fix #578 2018-11-29 20:31:49 -05:00
Steven C. DeCaluwe
ded7c674e6
Fixing my name
Capital C, y'all...
2018-11-16 15:01:48 -07:00
Ray Speth
b2acc43a81 [ck2cti] Improve error messages for unparsable transport entries
Print the full transport line to aid in identifying the problem
2018-11-14 10:39:35 -05:00
Ray Speth
4f4a2bd071 [ck2cti] Improve error messages for invalid reaction entries
Print the full text of the problematic reaction entry

Print the underlying exception message ahead of the traceback
2018-11-11 23:12:02 -05:00
Ray Speth
c1d721dc94 [Python/Doc] Fix specified units of Boundary1D.mdot 2018-11-11 23:11:41 -05:00
Ray Speth
600580ead4 [Samples] Install build scripts for Blasius BVP example 2018-11-11 22:17:20 -05:00
Ray Speth
c26db356e3 [Samples] Remove unused methods of class BoundaryValueProblem 2018-11-11 22:17:20 -05:00
Ray Speth
b9a5913af0 [Samples] Fix Blasius example to work after removal of Domain1D::residual 2018-11-11 22:17:20 -05:00
Ray Speth
22efbe25dc [1D] rdt is automatically set appropriately during Jacobian evaluation 2018-11-11 22:17:20 -05:00
Ray Speth
8c213da932 [1D] Fix grid refinement for classes not derived from StFlow
This includes user-developed flow classes, as well as the BoundaryValueProblem
class used in the 'blasius' example.
2018-11-11 22:17:20 -05:00
Ray Speth
ca8700fdd4 Expand '~' as user homedir shortcut when adding data directories
This matches the behavior used when searching for specific input files.
2018-11-11 22:17:20 -05:00
Ray Speth
4fe58661e1 Consider forward slash as directory separator when expanding homedir 2018-11-11 22:17:20 -05:00
Ray Speth
c988f57e01 [Transport] Remove unused constants from WaterTransport.h 2018-11-11 22:17:20 -05:00
Ray Speth
1acb00bc99 [Transport] Remove unused private members of WaterTransport 2018-11-11 22:17:20 -05:00
Ray Speth
680af58950 [CI] Fix a problem with Homebrew on Travis
See travis-ci/travis-ci#8826 for details.
2018-11-07 19:50:37 -05:00
bangshiuh
acd75e20fe [Transport] Add IonGasTransport::electricalConductivity 2018-11-07 16:11:23 -05:00
bangshiuh
7986046bdd [Python/Transport] Make mobilities accessible via Python interface
Also add test_mobility and test_update_temperature to TestIonTransport
2018-11-07 16:11:23 -05:00
bangshiuh
8e7e27ad62 [Transport] fix temperature update in IonGasTransport::getMobilities 2018-11-07 16:11:23 -05:00
bangshiuh
87b042a231 add test for O2- mix. diff. 2018-10-09 16:33:40 -04:00
bangshiuh
7f13f4d832 add O2/O2- collision data to deal with resonant charge transfer effect 2018-10-09 16:33:40 -04:00
Bryan W. Weber
e0d3509597
Update CONTRIBUTING.md
Fix link to NumPy dev guidelines and Python 2/3 support
2018-10-09 16:11:34 -04:00
Bryan W. Weber
d7292b3345
[CI/Doc] Install sphinxcontrib-katex from the master branch on GitHub 2018-09-30 20:57:11 -04:00
Bryan W. Weber
d143e8e1f0
[Doc] Fix documentation header to match main site 2018-09-30 20:19:57 -04:00
Bryan W. Weber
7e56bbaafe
[SCons] Add documentation location to post-install message 2018-09-30 20:15:43 -04:00
band-a-prend
72d2fc4f8c
[SCons/Doc] Fix too long time offline render of Sphinx Docs pages
Add asynchronous ('async', 'media' and conditional 'defer' attributes) loading of remote javascript
and css files within Cantera 2.4.0 Sphinx Documentation to avoid too long render of pages
in case of offline usage of documentation.
2018-09-29 23:21:50 +03:00
band-a-prend
59eabbe454
[SCons/Doc] Fix installation of Sphinx docs
Fix installation of Cantera Sphinx Documentation
via similar way as it was done for Doxygen documentation
https://github.com/Cantera/cantera/commit/8f2468d
2018-09-26 02:18:32 +03:00
Ray Speth
7142a7b0c4 [SCons] Do checks for full and minimal Python modules simultaneously 2018-09-19 17:59:59 -04:00
Ray Speth
09ee87068a [Python/Test] Use assertRaisesRegex to make tests more specific 2018-09-19 17:59:59 -04:00
Ray Speth
0f1da269fc [SCons] Simplify handling of PYTHONPATH in the test suite 2018-09-19 17:59:59 -04:00
Ray Speth
d01992c79c [Python] Remove workarounds for Python 3.2 compatibility 2018-09-19 17:59:59 -04:00
Ray Speth
9279e0828e [SCons] Expand environment variables and ~/ when used in cantera.conf 2018-09-19 17:59:59 -04:00
Ray Speth
4de4aa3f65 Fix some warnings when using ctml_writer with Python 3 2018-09-19 17:59:59 -04:00
Ray Speth
43565c90f5 [SCons] Allow specifying non-absolute paths for 'python_cmd'
This allows e.g. 'python_cmd=python3' without needing to know what
directory that actually comes from.
2018-09-19 17:59:59 -04:00
Ray Speth
dd7c97cb1d [Python] Remove legacy code that provided Python 2.7 support
This removes Python 2.7 support from the "full" Python module. The
"minimal" Python module (the ctml_writer and ck2cti scripts) and the
SCons build system still support Python 2.7.

Remove 'from __future__' imports, specification of base class
'object', and arguments to 'super()'.

Make use of 'str' being the unicode string type.

Eliminate special cases which require checking the version.

Fix some deprecation warnings issued by legacy capabilities.
2018-09-19 17:59:59 -04:00
Ray Speth
0707caaee6 [SCons] Check for a supported version of Python 2018-09-19 17:59:59 -04:00
Ray Speth
d2a1bf1e6a [CI] Use updated upstream packages to build docs
The issues which forced the use of patched versions of these packages
have been resolved.
2018-09-19 17:59:59 -04:00
Ray Speth
33591282f5 [SCons] Use Cython from the targeted copy of Python
Use the Cython module from the Python installation specified by
'python_cmd', rather than the Python installation that is running
SCons. This allows complilation of Cantera for Python versions that
aren't supported by SCons (e.g. Python 3.4).
2018-09-19 17:59:59 -04:00
Ray Speth
d6da006e3e [SCons] Only build the Python package for Python 3.x 2018-09-19 17:59:59 -04:00
Ray Speth
dcb7f34b4a [SCons] Remove non-functional python_array_home option
This option has been broken since before Cantera 2.3.0, so must have
been unused.
2018-09-19 17:59:59 -04:00
Ray Speth
e2cfb7f505 [CI] Use Python 3 exclusively for Travis and Appveyor builds 2018-09-19 17:59:59 -04:00
Ray Speth
9df98d6ac1 [SCons] show any unexpected output from command to check numpy version 2018-09-19 17:59:59 -04:00
g3bk47
1166c74127 add std:: to "inner_product" and "accumulate"
This only works because the "dot" function is always called with std::vector<T>::iterator as input so that "argument dependent lookup" introduces the std namespace to the function. If the dot function is called like this "dot(v.data(), v.data()+v.size(), v.data())", where "v" is a std::vector and the input are plain pointers, the compiler will not find "inner_product". The same is true for the use of "accumulate".
2018-09-14 13:56:48 -04:00
Ray Speth
b0b66d7211 [Python] Make transport properties accessible with the Water() function 2018-09-07 23:24:23 -04:00
Ray Speth
0ade0acf18 [Transport] Relax requirements of thermo model for WaterTransport
The ThermoPhase object used by the WaterTransport model can be any
reasonably-accurate equation of state for water.
2018-09-07 23:24:23 -04:00
Ray Speth
426c2bc56e [Transport] Move calculations into WaterTransport class
Calculating viscosity and thermal conductivity in the WaterProps class
was just an unnecessary level of indirection.
2018-09-07 23:24:23 -04:00
Ray Speth
ff4958a720 [Transport] Migrate wtWater test to GTest test suite 2018-09-07 23:24:23 -04:00
Ray Speth
b0deb41708 [Transport] Make WaterTransport constructible using newTransportMgr
This makes it possible to specify the WaterTransport model in XML input files,
and to use the model from Python and Matlab.

Resolves #289
2018-09-07 23:24:23 -04:00
Ray Speth
d9f9f69fc3 [SCons/Test] Regression tests also look for input files in test/data
This allows the elimination of a number of duplicate input files.
2018-09-07 23:24:23 -04:00
Ray Speth
f46df83841 [Thermo] Make WaterSSTP constructible using newPhase
This makes it possible to create a WaterSSTP phase using an XML input file, and
use this model from Python and Matlab.
2018-09-07 23:24:23 -04:00
Ray Speth
ef40d4418d [Doc] Fix some Doxygen warnings 2018-08-28 16:45:49 -04:00
Ray Speth
b7f3ab561b Fix compiler warnings issued by Visual Studio 2015 2018-08-28 16:45:49 -04:00
Ray Speth
fc7c85f8d1 [clib] Fix some size_t related compiler warnings 2018-08-28 16:45:49 -04:00
Ray Speth
719dbcc650 Fix warnings about Cabinet::s_storage
Recent versions of clang++ warn that instantiation of a templated variable is
required at a certain point where no definition is available. Declaring such a
definition to be available is fine with older versions of clang++ as well, but
causes linker errors with g++, so this change is only applied when using
clang++.
2018-08-28 16:45:49 -04:00
Ray Speth
833d79aeb6 Fix compiler warning about declaration of BandMatrix::PivData 2018-08-28 16:45:49 -04:00
Ray Speth
51263193de Bump version to 2.5.0a1 2018-08-28 16:45:49 -04:00
Ray Speth
e4362d37e7 [Kinetics] Check for non-existent species in reaction orders
When the nonreactant_orders option was enabled, specifying reactant orders for
species which were not present in the phase previously resulted in out-of-bounds
memory access.
2018-08-28 16:40:43 -04:00
Ray Speth
c4e89ac5da [Doc] Fix another error in SRI reaction docstring 2018-08-27 20:27:04 -04:00
g3bk47
a1f9a178e0 Correct doxygen string for SRI reactions
Should be "T^e" instead of "exp(\frac{-e}{T})" according to CHEMKIN theory guide and actual code in https://github.com/Cantera/cantera/blob/master/src/kinetics/Falloff.cpp#L101 .
2018-08-27 20:15:35 -04:00
Ray Speth
8f2468da52 [SCons/Doc] Fix installation of Doxygen docs
Fixes regression introduced in b84d3e3, where the organization of files in the built
documentation changed.

Fixes #553
2018-08-24 09:24:45 -04:00
Ray Speth
fefc008ed2 [Matlab] Fix definition of isFlow
Caused most Matlab flame simulations to fail, e.g. those using
CounterFlowDiffusionFlame.m or flame.m. Fixes regression introduced in c1067aa.

Fixes #554
2018-08-23 16:45:28 -04:00
Ray Speth
7a697a4047 [Matlab] Fix warnings about use of deprecated AxiStagnFlow class 2018-08-23 16:31:17 -04:00
Ray Speth
f1d8d9b1b9 Bump version for 2.4.0 release 2018-08-20 18:52:09 -04:00
Ray Speth
0417d31d0e [Thermo] Fix constness of PureFluidPhase setTemperature and setDensity 2018-08-20 18:45:57 -04:00
Ray Speth
af51a61ab1 [Python] Fix building MSI for Python 3.7 module
Workaround for https://bugs.python.org/issue34251 for Python 3.7.0
2018-08-20 18:45:57 -04:00
Bryan W. Weber
af4ccaee09 Fix typos in system_googletest build config option 2018-08-20 18:45:46 -04:00
Bryan W. Weber
323c7370db
Update deploy location for dev docs 2018-08-20 15:10:04 -04:00
Bryan W. Weber
ff91457b5a
Clean the correct folder after building the minimal Python interface 2018-08-20 15:06:54 -04:00
Bryan W. Weber
1ca6c5eb40
Change all github.io links to cantera.org links 2018-08-20 15:06:28 -04:00
Ray Speth
dc5ec06a0c [Python/Examples] Rewrite combustor.py to be more useful
This updated example eliminates the complicated and inefficient "hydrogen
radical igniter" as a method for starting a well-stirred reactor.
2018-08-17 14:17:51 -04:00
Ray Speth
2f67c9969d [Python/Examples] Add a more useful example of time-dependent mass flow rate
In this example, a time-dependent mass flow rate function is used to inject a
specific fuel mass into a reactor. This is a more practical use case for this
capability than the fictitious hydrogen radical igniter used in combustor.py.
2018-08-17 14:17:51 -04:00
Ray Speth
a68c048bfa [Thermo] Relax warning threshold for heat capacity discontinuities
Discontinuities in heat capacity, in contrast to enthalpy and entropy, are less
of a problem and are not always indicative of problems with a mechanism. As
such, a looser tolerance on this quantity is reasonable.

This threshold eliminates warnings from the nDodecane_Reitz.cti input file included with Cantera.
2018-08-17 14:17:51 -04:00
Ray Speth
d3f49e74cb [Python] Fix display of information from errors in callback functions 2018-08-17 14:17:51 -04:00
Ray Speth
820b9de4b0 [Test/1D] Try to make TestIonBurnerFlame more reliable 2018-08-14 14:58:18 -04:00
Ray Speth
331e11366a [1D/Python] Respect 'refine_grid' option when using 'auto' solver 2018-08-14 14:31:32 -04:00
Ray Speth
57b38ce40f [1D] Use tighter tolerances and bounds for charged species
Looser tolerances can lead to instabilities, especially in cases where negative
concentrations of charged species are found at the end of the first solving
stage.
2018-08-14 14:31:13 -04:00
Ray Speth
e7a48375dc Bump version to 2.4.0b2 2018-08-10 22:51:18 -04:00
Ray Speth
166249869b [Python/1D] Rename IonFlameBase.set_solvingStage to set_solving_stage
Lowercase with underscores matches the PEP8 style used elsewhere
2018-08-10 18:15:36 -04:00
Ray Speth
a54ab2f3ef [Doc] Update docs related to StFlow restructuring 2018-08-10 18:15:36 -04:00
Ray Speth
ac8612f36b [Doc] Add IonFlow and related classes to Sphinx docs 2018-08-10 18:15:36 -04:00
bangshiuh
ee633f3e16 [1D] Change Poisson equation to first-order difference 2018-08-10 18:15:36 -04:00
bangshiuh
3ade3335de [1D] Deprecate class FreeFlame and class AxiStagnFlow 2018-08-10 18:15:36 -04:00
bangshiuh
5082a212c4 [1D/Examples] Add example burner_ion_flame 2018-08-10 18:15:36 -04:00
bangshiuh
2527869536 [1D/Python] Create BurnerIonFlame and add test
Create a base class (IonFlameBase) for both IonFreeFlame and BurnerIonFlame, and
use the set_axisymmetric_flow() and set_free_flow() methods to select the flow
type.

Also combines FreeFlow and AxisymmetricStagnationFlow classes into class
IdealGasFlow.
2018-08-10 18:15:36 -04:00
bangshiuh
a5762ea6b6 [1D] Add function to set flow type and make IonFlow inherit from StFlow 2018-08-10 18:15:36 -04:00
Ray Speth
c1067aa6e9 [1D] Move functions from FreeFlame and AxiStagnFlow into StFlow
This makes it possible to implement alternative constitutive relations
(e.g. ionized or non-ideal gases) as a derived class from StFlow and have them
support all of the standard flame configurations (freely propagating, burner
stabilized, counterflow).
2018-08-10 18:15:36 -04:00
Bryan W. Weber
045f3d37bf [Doc] Fix CSS font specification for Alabaster theme
The font themes must be specified as a string rather than a list.
2018-08-10 11:20:31 -04:00
Ray Speth
fb68cae145 [Thermo] Keep PureFluidPhase state data consistent
Previously, calls to setTemperature, setDensity, and setState_TR did not result
in the underlying Substance object being updated. In addition, the
isothermalCompressibility and thermalExpansionCoeff methods did not synchronize
the state.

Now, setting the state of the PureFluidPhase object always sets the state of the
Substance object, and no synchronization is required in property calculation
functions.
2018-08-03 15:18:30 -04:00
Ray Speth
b5b542d10b [Test/Matlab] Run TestImport on all platforms
This portion of the Matlab test suite was being skipped on some platforms and/or
Matlab versions. Switching to the 'classdef' style of tests fixes the problem.
2018-08-02 18:17:22 -04:00
Ray Speth
4911539b56 [1D] Refine grid after expanding domain width
The test for a sufficiently wide domain short circuits the normal control logic
which makes a call to refine() after each successful steady-state solve. This
caused failures for certain cases where sucessive solutions on wider grids with
only a few points still failed to satisfy the gradient criterion at the edges of
the domain.
2018-08-02 17:51:31 -04:00
Ray Speth
5f556acd34 [Doc/CI] Only upload docs from Cantera/cantera
Decrypting the SSH key will fail from any other fork
2018-07-30 19:40:36 -04:00
Ray Speth
1864e8fd6c [Doc/CI] Fix Doxygen exclude pattern to not exclude all files on Travis
On Travis, the build directory '/home/travis/build/cantera' matched the (no
longer needed) exclude pattern of ' /build/*', causing all source files to be
skipped.
2018-07-30 19:40:24 -04:00
Ray Speth
677efd82d5 [Test/Matlab] Collect pass/fail data for individual tests 2018-07-30 11:25:27 -04:00
Ray Speth
bdaabc0428 [Test/Matlab] Improve behavior when Matlab tests fail
Outright failures of the Matlab test suite which result in the test log file not
being written no longer cause SCons to abort. Instead, they are logged as a
major test failure, similar to the behavior of the Python test suite.
2018-07-30 11:25:27 -04:00
Ray Speth
fd57936b18 [ck2cti] Fix spurious 'unexpected output' warnings
When calling ck2cti via the C++ wrapper function, the output of the
'convertMech' function (usually an empty list) would be printed. Fixes a bug
introduced in db90a7c.
2018-07-30 11:25:27 -04:00
Ray Speth
e79cf6f8cb [Transport] Add temperature dependence of rotational relaxation
Results in increase in mixture-averaged thermal conductivity of ~1% or less, and
a similar increase in laminar flame speeds, at least for some test cases.
2018-07-30 10:47:49 -04:00
Ray Speth
c3ba264284 [1D] Fix IonFlame instability due to negative electron concentration 2018-07-30 10:47:49 -04:00
Bryan W. Weber
053267e254 [Doc] Generate XML output with Doxygen
This output will be useful to generate links from the website pages to
the C++ documentation; see Cantera/cantera-website#16
2018-07-29 17:47:14 -04:00
Bryan W. Weber
b84d3e3f79 [Doc] Enable generation of subdirectories to store the output
The files kinetics.h and onedim.h are present as high-level application 
include files and as lower-level implementation include files. Doxygen 
generates HTML documentation for all files in the same folder, and on 
case-insensitive file systems, the documetation for the application and 
the implementation files will shadow each other. This commit enables the 
option to put documentation files into subfolders in the root directory, 
hopefully separating these "duplicate" files
2018-07-29 17:47:14 -04:00
Bryan W. Weber
0d559778a7 [Doc] Update the Mathjax version for Doxygen 2018-07-29 17:47:14 -04:00
Bryan W. Weber
33840414e5 [CI] Fix Appveyor warnings about scripts not on PATH
Apparently new versions of NumPy include scripts that Pip feels the need
to warn aren't on the PATH. However, we don't use these scripts, so
disable the warning
2018-07-29 17:47:14 -04:00
Bryan W. Weber
7e1b6a1489 [Doc/CI] Build the docs after testing and upload to cantera.org
Use an ssh key with write access to cantera.org to rsync the built docs. Only
runs on non-pull-request builds of the master branch.

The sphinxcontrib-doxylink and sphinxcontrib-katex packages have bugs
that are fixed in our forks, so we have to install from the forks.
2018-07-29 17:47:14 -04:00
Bryan W. Weber
d33e67c36c [Doc] Put titles on raw links to main site 2018-07-29 17:47:14 -04:00
Bryan W. Weber
c28bc0235f Fix missing raw string in Cython docstring 2018-07-29 17:47:14 -04:00
Bryan W. Weber
d2252037c6 Fix docstring of Matlab CounterFlowDiffusionFlame.m 2018-07-29 17:47:14 -04:00
Bryan W. Weber
549463683d Fix Sphinx and Doxygen warning messages about moved content 2018-07-29 17:47:14 -04:00
Bryan W. Weber
4ea9d35a2b Add the CTI API documentation back to the main index page 2018-07-29 17:47:14 -04:00
Bryan W. Weber
3fae1c1a9a Remove pages moved to the new website 2018-07-29 17:47:14 -04:00
Bryan W. Weber
9670c5dac6 Remove most content from Sphinx docs index page
It's all moved elsewhere on the new site.
2018-07-29 17:47:14 -04:00
Bryan W. Weber
2f3a0122d6 [Doc] Fix some style typos in the Doxygen docs 2018-07-29 17:47:14 -04:00
Bryan W. Weber
dbc3df1687 Switch Sphinx docs to KaTeX instead of MathJax 2018-07-29 17:47:14 -04:00
Bryan W. Weber
e8d28b0e89 Redo layout.html to match the style of and to add links to the main site
We need to replace most of the Sphinx-defaults with things that look
like our new Nikola website and that link to places in the Nikola
website.
2018-07-29 17:47:14 -04:00
Bryan W. Weber
2a7aed8968 Switch to the alabaster theme for API documentation 2018-07-29 17:47:14 -04:00
Bryan W. Weber
3052701250 Remove Mathjax todo that has already been done 2018-07-29 17:47:14 -04:00
Bryan W. Weber
21db5d84f3 Move Matlab docs out of the code-docs subfolder
Now that examples are gone, it's not needed anymore.
2018-07-29 17:47:14 -04:00
Bryan W. Weber
b68a87d624 Make Matlab doc sections more consistent with Python sections 2018-07-29 17:47:14 -04:00
Bryan W. Weber
d57f1d147d Minor formatting change in GRI30 Matlab docstring 2018-07-29 17:47:14 -04:00
Bryan W. Weber
7a69386b8d Remove unused SConscript functions for building Python examples 2018-07-29 17:47:14 -04:00
Bryan W. Weber
e7f346cddf Fix references to examples in docstrings
Seems like the best bet is an absolute link, since the examples are no
longer in the Sphinx-generated docs
2018-07-29 17:47:14 -04:00
Bryan W. Weber
e81cac9582 [Examples] Remove building Matlab examples into the docs
They have moved to the new website
2018-07-29 17:47:14 -04:00
Bryan W. Weber
71072c43db Remove unneeded files from the Matlab samples 2018-07-29 17:47:14 -04:00
Bryan W. Weber
cc9c8e5633 Remove "Migrating" docs
It's been a few versions since we changed the Python module.
2018-07-29 17:47:14 -04:00
Bryan W. Weber
7b6d04c381 [Examples] Remove building Python examples into the documentation 2018-07-29 17:47:14 -04:00
Ray Speth
1b605133d8 [Transport/Test] Add test of CK_Mode 2018-07-11 15:41:42 -04:00
Ray Speth
435f28641e [Transport] Indicate value of CK_Mode flag in transportType string 2018-07-11 15:40:28 -04:00
Ray Speth
35aa8be61e [Transport] Fix to enable 'CK_Mix' and 'CK_Multi' model specifications
These model strings were being treated in TransportFactory in a way that
effectively resulted in creation of regular 'Mix' and 'Multi' transport objects.
2018-07-11 14:13:16 -04:00
Ray Speth
333d388f90 [SCons] Improve transition from system_googletest to googletest option 2018-07-09 15:24:25 -04:00
Ray Speth
9bad354553 Mark googletest-based tests as failures if googletest is not available 2018-07-09 15:24:25 -04:00
band-a-prend
fb4a36b1ca [SCons] implement 'googletest' option
New scons build option introduced to replace 'system_googletest'
and allow to not use 'googletest' module while running test
(all tests that require this module could be omited)

New option description:
'googletest',

"""Select whether to use gtest/gmock from system
   installation ('system'), from a Git submodule ('submodule'), to decide
   automatically ('default') or don't look for gtest/gmock ('none')
   and don't run tests that depend on gtest/gmock.
   If this option is set then it suppress the deprecated 'system_googletest' option."""

Old option is still presented and mentioned as 'deprecated'.
Option 'googletest' supresses the old 'system_googletest' one.
2018-07-09 15:24:25 -04:00
BangShiuh
5c783c708f [Transport/Test] Add tests for IonTransport properties 2018-06-15 10:44:46 -04:00
BangShiuh
1245a694e5 [Test/1D] change TestIonFlame to use IonGasTransport 2018-06-15 10:44:46 -04:00
BangShiuh
fa9b9374cf [1D] Add polyfit for electron transport profile 2018-06-15 10:44:46 -04:00
bangshiuh
f7852ad84c [Transport] Add use Blancs law to calculate mobilities 2018-06-15 10:44:46 -04:00
bangshiuh
eeb27d84a9 [1D] Remove charge neutrality solver option from IonFlow 2018-06-15 10:44:46 -04:00
BangShiuh
3a0f46eb56 [Transport] Add class IonGasTransport 2018-06-15 10:44:46 -04:00
BangShiuh
b7e32e4604 [Transport] add dispersion coefficient and quadrupole polarizability 2018-06-15 10:44:46 -04:00
Ray Speth
4b4128aebd [Doc] Note requirement to call modifySpecies and modifyReaction
Modifying Reaction and Species objects alone does not affect Kinetics or
ThermoPhase objects unless the modified objects are passed back to
modifyReaction or modifySpecies.
2018-06-07 16:24:19 -04:00
Ray Speth
a1c12b4a3b [Transport] Implement UnityLewisTransport::getMixDiffCoeffsMass 2018-06-07 13:52:26 -04:00
Ray Speth
d4492f3ea3 [Transport] Note required correction velocity for unity Lewis transport 2018-06-07 13:52:26 -04:00
Ray Speth
3c3ef10f93 [1D/Test] Add flame test for unity Lewis number transport 2018-06-07 13:52:26 -04:00
Armin Wehrfritz
29a3c19399 [Transport] Add test for unity Lewis number transport model 2018-06-07 13:52:26 -04:00
Armin Wehrfritz
d38d9da32c [Transport] Add unity Lewis number transport model 2018-06-07 13:52:26 -04:00
Ray Speth
3c978cdff6 [Equil] Deprecate get/setElementPotentials 2018-06-06 11:54:14 -04:00
Ray Speth
74167cc3eb [Equil] Don't use saved element potentials as initial guess
Saved element potentials are only valid at equilibrium, and may not be a good
guess for calls to equilibrate() after the state has changed.

By always using the estimation method for the element potentials at the start of
the ChemEquil algorithm, the results of equilibrate() are repeatable, and do not
depend on the results of previous calls to equilibrate().

Resolves #524
2018-06-06 11:54:14 -04:00
Bryan W. Weber
dab739013e Remove unnecessary include for fmtlib 2018-05-30 14:16:27 -04:00
Ray Speth
309871ae88 Use header-only form of libfmt
Avoids problems when trying to link to static versions of libfmt.a which were
built without -fPIC.
2018-05-30 14:16:27 -04:00
Bryan W. Weber
51d0d43a45 [fmt] Bump fmt submodule to version 5.0.0 2018-05-30 14:16:27 -04:00
Bryan W. Weber
e42b952a8a [SCons] Add INFO output for Eigen
Prints whether system or private installation is used and the version of
Eigen
2018-05-30 14:16:27 -04:00
Ray Speth
3be3f7dad5 Make updates for libfmt 5.0.0 backwards compatible 2018-05-30 14:16:27 -04:00
Bryan W. Weber
99d4972e6b Disable fmtlib fmt macro that shadows existing Group::fmt function 2018-05-30 14:16:27 -04:00
Bryan W. Weber
6b3c912ec3 Fix MemoryWriter is no longer available from fmtlib
In fmtlib 5.0.0, MemoryWriter was removed. The recommendation is to
replace it with memory_buffer
2018-05-30 14:16:27 -04:00
Bryan W. Weber
c8305375ef
[SCons] Remove <> from unknown git commit string
The shell was interpreting these as redirect operators during compilation
2018-05-23 17:36:22 -04:00
Bryan W. Weber
3fac5f2bc6
[SCons] Catch any Exception when checking git commit fails
It doesn't matter why the check failed, just that it did and we don't know
the commit
2018-05-23 17:35:49 -04:00
Ray Speth
b26dc65c41 [Doc] Provide links to docs for old versions of Cantera 2018-05-19 22:04:57 -04:00
Ray Speth
55490de871 Fix compiler warning about m_Faraday_dim 2018-05-19 22:04:57 -04:00
Ray Speth
07eed363fe Use std::sort to eliminate need for vcs_optMax 2018-05-19 22:04:57 -04:00
Ray Speth
df6ecb101b [Doc] Fix notation for mixture-averaged diffusion coefficient
Flame equations are formulated using Dkm *prime* (Eq. 12.180 from Kee et al),
not plain Dkm (Eq. 12.178).
2018-05-19 22:04:57 -04:00
Ray Speth
172e9ffead [Samples] Remove verbose output from demo F77 wrapper 2018-05-19 22:04:57 -04:00
vishesh devgan
84acdb1a30 [Doc] hydrogen combustion example blank page removed
Resolves #518
2018-05-19 11:01:54 -04:00
Jeff Santner
a9ad75e974 [Python] Add get_equivalence_ratio function 2018-05-18 13:06:51 -04:00
Ray Speth
277aa0b913 [ck2cti] Allow convertMech function to be called multiple times
Each call to convertMech now creates a new Parser object to do the conversion,
rather than requiring the user to do so themselves.

Fixes #528.
2018-05-16 13:50:33 -04:00
Nick
cc93ce62ca Add cython func defn to expose species viscosity & test equivalence to single-species species viscosity 2018-04-24 21:54:36 -04:00
Bryan W. Weber
b1a010e3a3
[CI] Don't use the --egg option to pip to install SCons
--egg is removed in pip >= 10.0.0 and is no longer necessary to
to install SCons with more recent versions of setuptools
2018-04-21 14:47:51 -04:00
Bryan W. Weber
0b8f0283aa
[CI] Don't use a cache directory for pip installations
pip2 and pip3 used the same cache directory, resulting in a cache
invalidation warning because the Python 2 version of a package is not
compatible with Python 3. Using --no-cache-dir is recommended in
pypa/pip#5250
2018-04-21 14:47:51 -04:00
Ray Speth
5b4a977df7 [Equil] Improve control of logging in ChemEquil solver
Use the 'loglevel' argument to the 'equilibrate' function to set the logging
level of the ChemEquil (element potential) solver, instead of relying on the
undocumented, static 'ChemEquil_print_lvl' variable which can only be set from
the C++ interface.
2018-04-14 16:16:51 -04:00
Ray Speth
d09161716f Fix duplicate key check in parseCompString
The check was being done at a stage where the token being checked could be just
a part of a key (if the key contained a colon), where this partial key could
correspond to another valid key.

Fixes #525
2018-04-13 15:33:35 -04:00
Ray Speth
66ba4b5b50 [Doc] Add update of git submodules to code checkout instructions 2018-04-03 09:22:04 -04:00
Ray Speth
39c4103504 Fix Appveyor builds which fail during dependency installation 2018-03-23 17:11:37 -04:00
Chris Neal
0120f2fc5e Updated readme header & added badges 2018-03-22 19:13:36 -04:00
Bryan W. Weber
ed648d308d
[CI] Fix macOS TravisCI builds
Homebrew switched their default Python recipe to Python 3, so install
python@2 recipe. Also, directly specify which version of Python should
run SCons to prevent picking up the wrong version of Python as the
sys.executable.
2018-03-13 14:32:09 -04:00
Bryan W. Weber
fde5051131
[Test/1D] Test that solving in inconsistent transport state errors
If Soret diffusion and mixture-averaged transport properties are
enabled, test that an exception is thrown. Also test that
multicomponent diffusion and Soret diffusion can be enabled/disabled
in either order. Also test that the automatic flame solver
correctly disables Soret diffusion.
2018-03-13 14:32:09 -04:00
Bryan W. Weber
4bd5e92694
[1D] Check for Soret diffusion in auto flame solver
Don't use Soret diffusion for the initial solve steps, and re-enable it
at the end if the user desires
2018-03-13 14:32:09 -04:00
Bryan W. Weber
a03afbd56e
[1D] Throw an exception if transport state is inconsistent
The user can enable Soret (thermal) diffusion or multicomponent
transport in either order, but attempts to solve flame problems with
Soret enabled and the mixture-averaged transport approximation will
result in an error
2018-03-13 10:11:52 -04:00
Ray Speth
c9b0bce8b9 [Thermo] Preserve constant property pair when multiplying Quantity 2018-03-09 22:28:48 -05:00
wandadars
de3ec3d53e Added section about Gitter chat 2018-03-01 12:03:44 -05:00
wandadars
8de267f25c Clarified fix number request line 2018-03-01 12:03:44 -05:00
Christopher Neal
e052a44e92 fixed broken link to compilation instructions page 2018-03-01 12:03:44 -05:00
Ray Speth
aac8eb92af [Test] Use XML input files for test_set_equivalence_ratio_sulfur
Prevents sporadic timeouts when running tests on Appveyor
2018-02-23 15:21:27 -05:00
Ray Speth
3d59914e6f Update version numbers for Cantera 2.4.0
Includes pre-reserved DOI for Zenodo
2018-02-17 16:05:44 -05:00
Ray Speth
d28032e845 Bump development version to 2.4.0b1 2018-02-15 23:59:59 -05:00
Ray Speth
6d22be2a6b Mark unused/untested classes as deprecated
Deprecated thermo classes: Adsorbate, MetalSHEelectrons, MineralEQ3,
MolarityIonicVPSSTP, PhaseCombo_Interaction

Deprecated kinetics classes: AqueousKinetics

Deprecated transport classes: LTPSpecies, LiquidTranInteraction,
LiquidTransport, LiquidTransportData, LiquidTransportParams, SimpleTransport,
SolidTransport, SolidTransportData, Tortuosity

See #267
2018-02-15 23:50:11 -05:00
Ray Speth
20f891f1a4 Upgrade Eigen submodule to Eigen 3.3.4
Also switch to the official git mirror of the mercurial repository
2018-02-14 22:25:16 -05:00
Ray Speth
a22db9fa22 [Matlab] Check that Reactor contents are Solution objects
Fix documentation error that incorrectly indicated that Mixture objects could
also be used.
2018-02-14 22:25:16 -05:00
Ray Speth
322b1fc375 Update Sundials submodule to Sundials 3.1.0 2018-02-14 22:22:42 -05:00
Ray Speth
82c959d3a3 [SCons] Avoid spurious dependencies when copying headers from ext 2018-02-14 22:22:42 -05:00
Ray Speth
9c50f7528c Add support for Sundials 3.1.0 (also 3.0.0) 2018-02-14 22:22:42 -05:00
Ray Speth
50a3fecb23 Rename Sundials-related macros to avoid name conflicts 2018-02-14 22:22:42 -05:00
Bryan W. Weber
a0ac2b0cc6
[Doc] Update Doxygen MathJax link
The MathJax CDN is shutting down
2018-02-13 16:22:16 -05:00
Bryan W. Weber
66597b72ff
[Doc] Update about page with link to license 2018-02-10 11:53:25 -05:00
Bryan W. Weber
c29fbc808e
[Doc] Add Graphviz to optional documentation dependencies 2018-02-10 11:53:25 -05:00
Bryan W. Weber
1a394a3402
[Doc] Update compiling dependencies
Especially Cython must be installed for Python where SCons is installed
2018-02-10 11:53:25 -05:00
Bryan W. Weber
8195403fef
[Doc] DeCaluwe has a capital C
We don't need any Belgian forebears haunting us
2018-02-10 11:53:25 -05:00
Bryan W. Weber
05fa4df3b9
[Doc] Move citation information out of FAQ to About page 2018-02-10 11:53:24 -05:00
Bryan W. Weber
2abc57e2f1
[Doc] Add 'about' page to docs
Includes info about NumFOCUS sponsorship and donation link, as well as
the steering committee
2018-02-10 11:53:24 -05:00
Bryan W. Weber
c78a11b32f
[Doc] Add that projects can use C language to home page 2018-02-10 11:53:24 -05:00
Bryan W. Weber
0d20b50543
[Doc] Add Donation link to sidebar 2018-02-10 11:53:24 -05:00
Bryan W. Weber
977a1c7736
[Doc] Update Welcome text on homepage 2018-02-10 11:53:24 -05:00
Bryan W. Weber
8caf5e5aca
[Doc] Give the Python and Matlab example index pages more specific names 2018-02-10 11:53:23 -05:00
Bryan W. Weber
581cfb7c04
[Doc] Move Python migrating page to bottom of TOC 2018-02-10 11:53:23 -05:00
Bryan W. Weber
419a09c414
[Doc] Update install instructions in FAQ 2018-02-10 11:53:23 -05:00
Bryan W. Weber
ec5aecd3d6
[Doc] Update example links in FAQ 2018-02-10 11:53:23 -05:00
Bryan W. Weber
af4a78ddde
[Doc] Add NumFOCUS badge to README 2018-02-10 11:53:23 -05:00
Bryan W. Weber
e6b4761c6b
Happy New Year! 2018-02-10 11:53:22 -05:00
Bryan W. Weber
e846505f57
[Doc] Use Sphinx Mathjax extension 2018-02-08 16:41:08 -05:00
Ray Speth
bde6e05452 [ck2cti] Detect badly formatted values of 4th Troe coefficient
Fixes #499
2018-02-07 22:58:50 -05:00
Ray Speth
70016b97b3 [ck2cti] Suppress some output from error messages when quiet=True 2018-02-07 22:08:36 -05:00
Ray Speth
f47e98a594 [ck2cti] Fix over-zealous detection of new input file sections
Species names starting with the short form of input file section names
(e.g. 'tran') were incorrectly identified as indicating the start of that
section if they occurred at the start of a line.
2018-02-07 21:27:21 -05:00
Matteo Giani
d86a7c176e Fixed Typo: MATLAB_PATH -> MATLABPATH (#501) 2018-02-07 17:34:28 -05:00
Ray Speth
987a247bd0 [Matlab] Replace calls to removed 'z' method with 'gridPoints' 2018-01-24 16:31:52 -05:00
Ray Speth
536158b402 [Matlab] Remove broken demo running script 2018-01-24 16:31:42 -05:00
Ray Speth
a31b7d1bb5 [Matlab] Remove spurious arguments from scripts for running examples 2018-01-24 16:09:49 -05:00
arghdos
411be3e6cf make ck2cti more deterministic in its output (#497) 2018-01-24 10:23:20 -05:00
Bryan W. Weber
46f8ef52a7
Remove MacPorts install instructions from documentation
The MacPorts recipe is broken
2018-01-21 19:44:20 -05:00
Ray Speth
4affcd1efb [ck2cti] Add line number to more transport error messages 2018-01-19 11:50:55 -05:00
Ray Speth
552ba97a2b [ck2cti] Always write surface reactions to CTI file
Surface reactions were not being written to the CTI file if there were no
gas-phase reactions present.

Also update the count of reactions printed in the output summary to include
surface reactions.
2018-01-19 10:34:24 -05:00
Ray Speth
831b92dac4 [Doc/Kinetics] Clarify values returned by getFwdRateConstants 2018-01-06 21:27:42 -05:00
Ray Speth
ebc478f8ec [Thermo] Show values in setDensity / setTemperature exceptions 2018-01-06 21:27:42 -05:00
Ray Speth
24940aeef7 [1D] Fix occasional test failures with IonFlame 2018-01-06 21:27:42 -05:00
Ray Speth
67aa9eb4e3 [Test] Update SOFC test tolerances
This test was failing on some OS/compiler combinations
2018-01-06 21:27:42 -05:00
Ray Speth
7eb4eaa13a [Python/1D] Detect blowoff of burner-stabilized flames
For burner-stabilized flames under blowoff conditions (laminar flame speed less
than burner velocity), the solver can get stuck regridding indefinitely due to
the dependence of the calculated flame speed on the grid spacing (where the
calculated flame speed is artificially high when the grid is coarse).

To obtain solutions more quickly in this case, we check to see if the flame has
moved off of the burner surface (i.e. zero temperature gradient at the burner)
and if so, jump ahead to the non-reacting solution throughout the domain.

Fixes #386
2018-01-06 21:26:53 -05:00
Ray Speth
dfd4b7e671 [Python/1D] Automatically increase domain width for free flame
If the domain is narrow with respect to the flame width, there can be
significant temperature gradients at the boundary, which lead to either
incorrect flame speeds or solver failures.

When the 'auto' option to FreeFlame.solve is specified, the solver will now
check the gradients at the ends of the domain after each steady-state solve and
increase the width if necessary.

Fixes #385
2018-01-06 21:26:53 -05:00
Ray Speth
7a314d3124 [Python/1D] Callbacks can be disabled by setting to None 2018-01-06 21:26:53 -05:00
Ray Speth
4b352751f5 [Python/1D] Make callbacks accessible outside Cython 2018-01-06 21:26:53 -05:00
Bryan W. Weber
3e39a0bc3d [CI] Remove python_package options from Travis build command 2017-12-18 15:47:03 -05:00
Bryan W. Weber
4e6af27edf [SCons] Remove the error when python_package and pythonX_package match
Make it a warning instead of an error
2017-12-18 15:47:03 -05:00
Bryan W. Weber
5d599bb680 [SCons] Configure the minimal Python interface build
Adds a new internal-only option for the pythonX_package variables,
'minimal-default'. This value is set when pythonX_package has not been
configured by the user (i.e., it started as default) and checking for
Cython or NumPy fails, so we can't build the full interface.
2017-12-18 15:47:03 -05:00
Bryan W. Weber
9c9ee9e919 [SCons] If python_package is set to default, print fewer warnings
If python_package is default and pythonX_package is present (where X is
the same version of Python as python_package), prefer the
pythonX_package options and don't warn quite so much
2017-12-18 15:47:03 -05:00
Bryan W. Weber
9f4590bc6f [SCons] Switch the order of python version and cython checks
Check for the python_package version of Python and configure the
pythonX_package option before checking for Cython
2017-12-18 15:47:03 -05:00
Bryan W. Weber
c233ddcd30 If both pythonX_package options are set ignore the python_package option 2017-12-18 15:47:03 -05:00
Bryan W. Weber
43b42e9942 [SCons] Delete unnecessary python_message variable 2017-12-18 15:47:03 -05:00
Bryan W. Weber
f824b20fe2 The usersitepackages variable is not used anymore so don't set it 2017-12-18 15:47:03 -05:00
arghdos
3933a943dc Add missing number prefix 2017-12-06 15:00:50 -05:00
Steven DeCaluwe
89fded32d4 Fixes ConstDensityThermo::standardConcentration()
`ConstDensityThermo::standardConcentration(k)` is now calculated
as `density()/molecularWeight(k)`, rather than the previously
incorrect `molarDensity()`.

Note that this causes a problem for any species where
`molecularWeight(k)=0` (i.e. vacancies).  Such species should be
avoided, in this phase model.

For that reason, `sofc-test.xml` is changed so that the oxide bulk
is modeled as an `IdealSolidSolution`
2017-12-06 10:57:15 -05:00
Ray Speth
6cd7bf160f Bump development version to 2.4.0a2 2017-12-06 10:52:59 -05:00
Ray Speth
1eebd3efdb [Equil] Fix invalid memory access in VCS solver
Before bba0d8edf, the vector m_molNumSpecies_new was of a size greater than
m_nsp, with elements m_nsp through the end always filled with zeros. Thus the
check removed here always passed. In bba0d8edf, the vector size was reduced to
be the correct size (m_nsp), so this resulted in this check accessing
unallocated memory, causing the check to fail randomly in the TestKOH_Equil
test. The resulting exception was always caught internally, so the solver wasn't
returning incorrect results, but the non-determinism was leading to unexpected
changes in code coverage reports.
2017-12-05 22:26:45 -05:00
Bryan W. Weber
17dfa2dd48
Use pip2 explicitly to install dependencies on TravisCI
Apparently, some change in Homebrew caused pip to go missing on macOS,
so use pip2 to fix that
2017-12-03 09:23:44 -05:00
Bryan W. Weber
07409dea59
The conda GCC compilers aren't called gcc, they're called gnu-cc
Check for gnu-cc in the CC variable to catch this case
2017-12-03 09:23:44 -05:00
Bryan W. Weber
7054a7bb3d
If Cython can't be imported, the cython_version is undefined
This results in a NameError and building fails. Change to check for one
exception at a time, with the relevant error message.
2017-12-03 09:23:44 -05:00
Ray Speth
4a4886f63e Generate setup_cantera.csh for use with csh/tcsh
Resolves #453
2017-12-02 20:03:15 -05:00
Ray Speth
deeaaed03f [Reactor] Fix using pure substances near temperature limits
Fixes #475
2017-12-02 19:19:51 -05:00
Ray Speth
2ac8a0ef08 [Thermo] Use min/max temperatures from equation of state
The values in the liquidvapor.cti should be ignored, since this thermo data is
not actually applicable -- it is just used to set the reference state.
2017-12-02 19:19:51 -05:00
Ray Speth
501b5fd1f5 [test/ck2cti] Add tests for negative reaction orders 2017-12-02 19:18:59 -05:00
Ray Speth
4771874c75 [ck2cti] Allowing negative reaction orders requires '--permissive' option 2017-12-02 19:18:59 -05:00
Jeff Santner
8f02c777a5 [ck2cti] Allow negative reaction orders, with warning 2017-12-02 19:18:59 -05:00
Ray Speth
0d01d031a9 [Examples] Prevent spurious empty figures in IC engine example 2017-12-02 17:41:05 -05:00
Ray Speth
6f564e6101 [Examples] Fix error in IC Engine example CO calculation 2017-12-02 17:35:25 -05:00
Bryan W. Weber
831239633d Fix dependency problem with matlab library
Building in parallel would error out because the macOS Matlab library
was relying on the static Cantera library before that was finished.
2017-11-26 16:48:40 -05:00
Bryan W. Weber
2f03a1e531 Reformat postInstallMessage code to be easier to read in SConstruct 2017-11-26 16:48:40 -05:00
Bryan W. Weber
26216e9adc Fix 3to2 conversion of NonIdealShockTube example
The triple quoted strings made 3to2 think that was the module docstring,
so it was putting __future__ imports in the wrong places
2017-11-26 16:48:40 -05:00
Bryan W. Weber
77ee76c5f3 Simplify checking for 3to2
Switch to importing the lib3to2 as a check, which is platform agnostic
and doesn't depend on how 3to2 was installed. Also, take advantage of
the fact that the 3to2 converter recurses by default to avoid spawning
a bunch of subprocesses. Finally, don't depend on the location of the
3to2 script and just use the library directly to do the conversion.
2017-11-26 16:48:40 -05:00
Bryan W. Weber
11943bbc6f Update options for Travis Python tests 2017-11-26 16:48:40 -05:00
Bryan W. Weber
6ca67b4845 Update documentation for new Python configuration options 2017-11-26 16:48:40 -05:00
Bryan W. Weber
2bc4d09da3 Fix substitution of setup_cantera and ctpath.m
Use Python 3 variables by default, and Python 2 only if Python 3 isn't
being built
2017-11-26 16:48:40 -05:00
Bryan W. Weber
94ea9b585f Update SConstruct to recognize that Python 3 might be running SCons
Update and make more consistent the specification of Python package
building. Since SCons can be run by Python 3 now, we cannot assume that
the Python running SCons is Python 2. This changes a bunch of
assumptions in SConstruct about where things should be built or
installed. This commit addresses those assumptions by making the options
for Python 2 and Python 3 symmetric.
2017-11-26 16:48:40 -05:00
Bryan W. Weber
1635cd2e04 Use the minimal Python interface for tests when others are not built
If no full or minimal Python interface is being built, copy the minimal
interface into the build directory and use the sys.executable to run it,
so the tests that require CTML or CTI conversion can run.
2017-11-26 16:48:40 -05:00
Bryan W. Weber
136c86636e Make the minimal Python interface compatible with Python 3
Use relative imports in the package, compatible with Python 2 and 3
2017-11-26 16:48:40 -05:00
Bryan W. Weber
d1f9b9393a Remove testing related files if test-clean is specified 2017-11-26 16:48:40 -05:00
Bryan W. Weber
16fd18315c Remove HAS_NO_PYTHON configuration variable
This variable is not needed since in the two places its used we do a
runtime check of the presence of the Python interface anyways
2017-11-26 16:48:40 -05:00
emccorkle
684262e945 [SCons] Fix Python 3.6 compatibility
The build was failing with:
  TypeError: 'mappingproxy' object does not support item assignment
2017-10-28 20:12:14 -04:00
Evan McCorkle
60d2075492 Update to gtest-1.8.0.
This release included the merger of gtest and gmock. Cantera is now
building gmock in addition to gtest in order to take advantage of
gmock matchers.
2017-10-28 20:07:14 -04:00
Evan McCorkle
83ffd844d1 Added test coverage for AnyValue move/copy assignment. 2017-10-25 09:30:22 -04:00
Evan McCorkle
87a7deb35d Added macro to conditionally exclude boost from API. 2017-10-25 09:30:22 -04:00
Evan McCorkle
686250e51f Partial pimpl for AnyValue to hide boost on API.
- boost now only included in AnyMap.inl.h (within include/cantera)
2017-10-25 09:30:22 -04:00
Evan McCorkle
f8d183220c Move AnyValue template definitions to inl file 2017-10-25 09:30:22 -04:00
Evan McCorkle
713b9cc23c Wrapped common uses of boost string algorithms.
- Limits propagation of boost header and namespace.
2017-10-25 09:30:22 -04:00
Evan McCorkle
6844e52713 Allow building tests with msvc-12.0.
Fixes the appearance of C2797 (list initialization inside member
initializer list or non-static data member initializer is not
implemented). This was preventing building/running tests with
msvc_version=12.0. It was fixed using Visual Studio 2013 (12.0)
Update 5.
2017-10-20 20:33:38 -04:00
Evan McCorkle
e921cb89c8 Allow default build with msvc-12.0.
Fixes the appearance of C2536 (cannot specify explicit initializer for
arrays). This was preventing a build with msvc_version=12.0. It was
fixed using Visual Studio 2013 (12.0) Update 5.
2017-10-20 20:33:38 -04:00
Ray Speth
680d0841b5 [Doc] Fix typo in BibTeX entry 2017-10-08 20:42:35 -04:00
Ray Speth
405750f61d Fix compilation errors due to implicit dependence on <functional>
Some recent versions of libstdc++ require this header for the declaration of
std::function
2017-10-05 22:58:19 -04:00
Ray Speth
21c2215117 [Equil] Eliminate switching between dimensional / nondimensional in VCS
The solver always works in nondimensional units
2017-10-05 22:58:19 -04:00
Ray Speth
b92bd24f92 [Test] Add an extra test of the equilibrium solvers
Testing the TP property pair helps identify whether issues arise from that
algorithm or the wrapper algorithms for other property pairs
2017-10-05 22:58:19 -04:00
Ray Speth
3820ca3147 [Equil] Eliminate "total moles" scaling in VCS solver 2017-10-05 22:58:19 -04:00
Ray Speth
1b97c49d8d [Thermo] Make species size local to SurfPhase 2017-10-05 22:58:19 -04:00
Ray Speth
7d0bc71448 [SCons] Make build scripts compatible with SCons 3.0.0 and Python 3 2017-10-05 13:48:54 -04:00
Ray Speth
0c0a38d4fe Make ctml_writer more tolerant of files with non-ascii characters
This is an issue specifically when using Python 3 to run ctml_writer
2017-10-05 13:48:54 -04:00
bangshiuh
a99004d8ef add docstring and fix evalResidual 2017-09-22 18:47:18 -04:00
bangshiuh
2472e080c3 [1D] split updateProperties and add evalResidual 2017-09-22 18:47:18 -04:00
bangshiuh
a8cbfd2c41 [1D] IonFlow add total number density func 2017-09-22 18:47:18 -04:00
bangshiuh
1be8374342 [1D] delete unnecessary constrain and improve the code structure 2017-09-22 18:47:18 -04:00
Ray Speth
e78aac7b70 [Examples] Clean up NonIdealShockTube example
Eliminate pandas dependency and simplify some Matplotlib usage
2017-09-18 20:26:11 -04:00
Steven DeCaluwe
2a601c148f [Examples] Add NonIdealShockTube
Import NonIdealShockTube example from Jupyter notebook

Clean up some of the code in the aforementioned file, adding better/more
descriptive commenting, add additional analysis to compare ideal gas and real
gas implementations of the n-dodecane mechanism, and add documentation for RK
constant calculation
2017-09-18 20:26:11 -04:00
g3bk47
acbd65d192 Add test for set_equivalence_ratio with sulfur 2017-09-13 10:42:34 -04:00
g3bk47
48eaedbbb4 Modify set_equivalence_ratio to support sulfur combustion
Modify set_equivalence_ratio to support sulfur combustion
2017-09-13 10:42:34 -04:00
Ray Speth
89bca5fcd1 [ck2cti] Convert surface species with specific site occupancies
Entries in the species list like "C3H6(S)/2/" are now correctly identified as a
species named "C3H6(S)" which occupies 2 surface sites.

Fixes #444
2017-08-22 00:29:35 -04:00
Ray Speth
9c3b500ec8 [ck2cti] Provide better line number in reaction-related error messages 2017-08-22 00:10:19 -04:00
Ray Speth
4b5a37a336 [ck2cti] Improve error message when failing to parse a reaction
Show the original reaction expression rather than the one where all
recognized tokens have already been replaced.
2017-08-22 00:06:22 -04:00
Ray Speth
739d4e4830 [Equil] Eliminate redundant variables from VCS_SOLVE
Most of these were originally members of VCS_PROB
2017-08-21 21:33:00 -04:00
Ray Speth
7eb939dc5f [Equil] Eliminate SpeciesThermo and VPhaseList from VCS_SOLVE
This means that the VCS_SPECIES_THERMO and vcs_VolPhase classes no longer need
to be able to be copied.
2017-08-21 21:31:45 -04:00
Ray Speth
4e53c893cf [Equil] More simplification of VCS_SOLVE initialization 2017-08-21 21:31:33 -04:00
Ray Speth
da3ba35945 [Equil] Eliminate some redundant variables in VCS_SOLVE 2017-08-21 21:29:33 -04:00
Ray Speth
bba0d8edf0 [Equil] Simplify initialization of VCS_SOLVE 2017-08-21 21:29:19 -04:00
Ray Speth
8522095dea [Equil] Refactor to eliminate class VCS_PROB
Move data in the VCS_PROB class to VCS_SOLVE
2017-08-21 21:29:19 -04:00
Ray Speth
da801f4cbc [Equil] remove unused VCS_SOLVE::reportCSV 2017-08-21 21:29:09 -04:00
Ray Speth
08726b0904 [Test/Equil] Make some tests specific to the VCS solver
These tests are expected to succeed with the VCS solver. Errors that occur in
these tests should be reported as such, rather than ending up with the unrelated
errors that would be expected from the "gibbs" solver.
2017-08-21 21:29:09 -04:00
Ray Speth
ee323bbafc [Equil] Clean up some debug logging code 2017-08-15 19:27:26 -04:00
Ray Speth
d9418bb8fb [1D] Make all 1D-related objects noncopyable 2017-08-15 18:42:53 -04:00
Ray Speth
279c5c8556 [Reactor] Make all reactor-related objects noncopyable 2017-08-15 18:42:53 -04:00
Ray Speth
4934079d69 [Test/Transport] Move simpleTransport test to GTest suite 2017-08-15 18:42:53 -04:00
Ray Speth
7020fa72bf [Transport] Make SimpleTransport constructible without XML 2017-08-15 17:54:15 -04:00
Ray Speth
4b5af64050 [Transport] Allow construction of LTPSpecies without XML 2017-08-15 15:24:29 -04:00
Ray Speth
ea69a014a5 Add compatibility with fmt 4.0.0 2017-08-14 17:02:42 -04:00
Ray Speth
d035557531 [Thermo] Make adding undefined elements the default behavior
(except when importing a phase from a CTI or XML input file)
2017-08-13 23:59:49 -04:00
Ray Speth
a520f782db [Thermo] Make PDSS_SSVol contstructible wihout XML 2017-08-13 23:59:49 -04:00
Ray Speth
be8e51d217 [Thermo] Fix incorrect units in PDSS documentation 2017-08-13 23:59:49 -04:00
Ray Speth
286217d1d3 [Thermo] Fix invalid memory usage in PDSS_SSVol 2017-08-13 23:59:49 -04:00
Ray Speth
a19b2bd4cc [Thermo] Fix apparent visibility of methods of PDSS_SSVol
Public members of the base class are still public
2017-08-13 23:59:49 -04:00
Ray Speth
ee663c9b37 [Thermo] Fix documentation for PDSS_SSVol polynomials
The polynomials as implemented are cubic, not quadratic or fourth order
2017-08-13 23:59:49 -04:00
Ray Speth
822cdc7d38 [Thermo] Always use PDSS_ConstVol for constant volume standard state
Remove the redundant (and questionable) implementation of this from the
PDSS_SSVol class. Also fix some values in PDSS_SSVol that were not updated
except in the constant volume case.
2017-08-13 23:59:49 -04:00
Ray Speth
4c630fc592 [Thermo] Make PDSS_HKFT constructible without XML
Also fixes PDSS_HKFT to actually make use of the units specified for each input
constant.
2017-08-13 23:59:49 -04:00
Ray Speth
0ca788bd69 [Thermo] Look up standard entropy when adding undefined elements 2017-08-13 23:59:49 -04:00
Bryan W. Weber
c88ddce0d6 [Test/1D] Test getRefineCriteria 2017-08-09 18:46:47 -04:00
Bryan W. Weber
4b44c66182 [1D/Cython] Adds Python interface to getRefineCriteria 2017-08-09 18:46:47 -04:00
Bryan W. Weber
bce4210e1b [1D] Adds getRefineCriteria function 2017-08-09 18:46:47 -04:00
Ray Speth
572af616e7 [Thermo] Remove optional debug printing from HMWSoln 2017-08-07 21:47:10 -04:00
Ray Speth
e9f08fc58e [Thermo] Move implementation of HMWSoln into a single file 2017-08-07 21:33:02 -04:00
Ray Speth
3790115b99 [Thermo] Make HMWSolution constructible without XML 2017-08-07 21:32:15 -04:00
Ray Speth
4b69c7f265 [Thermo] Remove unused ionic radius from HMWSoln 2017-08-07 20:58:18 -04:00
Ray Speth
d07908f9c9 [Thermo] Clean up HMWSoln variables used in cutoff calculation 2017-08-07 20:58:18 -04:00
Ray Speth
1bd950fef5 [XML] Make searches for child nodes case insensitive 2017-08-07 20:58:17 -04:00
Ray Speth
6ca782030d [Thermo] Remove unused data from HMWSoln
The model implemented does not use the weak acid / "electrolyte species type"
concept, so there is no reason to read data about this from the input file.
2017-08-07 20:57:34 -04:00
Ray Speth
cfc3b728f5 [Thermo] Remove m_formGC and m_formPitzer switches from HMWSoln
These switches only had one possible value, so were not actually useful.
2017-08-07 20:57:34 -04:00
Ray Speth
e33fe6904d [Thermo] Solvent is always the first species
No useful capabilities are provided by allowing the solvent species to vary, and
there are many places where the solvent was already implicitly assumed to be the
first species.
2017-08-07 20:57:34 -04:00
Ray Speth
e3afaf5e61 [Thermo] Make IonsFromNeutral constructible without XML 2017-08-07 20:57:34 -04:00
Ray Speth
7fab7f3cd3 Add boolean and integer types to AnyMap 2017-08-07 20:57:34 -04:00
Ray Speth
c85ba586d2 [Thermo] Remove unused variable MolarityIonicVPSSTP::indexSpecialSpecies_ 2017-08-07 20:57:34 -04:00
Ray Speth
4856d1328b [Thermo] Make IonsFromNeutralVPSSTP::neutralMoleculePhase_ a shared_ptr
Also make it non-public and add getters and setters
2017-08-07 20:57:34 -04:00
Ray Speth
338b21694f [Test] Add regression checks to IonsFromNeutralConstructor.fromXML 2017-08-07 20:57:34 -04:00
Ray Speth
aa02d24235 [Thermo] Allow instantiation of IdealSolidSolnPhase without XML 2017-08-07 20:57:34 -04:00
Ray Speth
8a4142d4bc [Python] Raise exception when setting composition with empty array 2017-08-07 15:39:13 -04:00
Ray Speth
4c489c175d [Kinetics] Fix duplicate reaction check to handle unchanged species 2017-08-02 16:46:24 -04:00
Ray Speth
513b43200c [Kinetics] Fix indexing error in Kinetics::checkDuplicates 2017-08-02 16:46:24 -04:00
Ray Speth
45891a2118 [CI] Use system Python 3 on Travis 2017-07-31 21:15:36 -04:00
Ray Speth
9e5da87a2a [CI] Force Travis builds to use Trusty 2017-07-31 21:15:32 -04:00
Ray Speth
3f69f6ac8a [SCons] Make issues importing NumPy easier to diagnose 2017-07-31 17:26:09 -04:00
Ray Speth
3d03795c4f [Python] Set minimum NumPy version to 1.8.1.
Minimum set based on a regression in NumPy 1.8.0 which affects the SolutionArray
class.

This makes Trusty Tahr (14.04) the oldest supported version of Ubuntu (using the
Ubuntu-provided NumPy package).

Resolves #445.
2017-07-30 14:39:57 -04:00
Ray Speth
d4338249fb [Thermo] Remove debug exception from Phase::entropyElement298
Returning the special value ENTROPY298_UNKNOWN is (apparently) the expected
behavior if no actual value was provided, and should not result in an exception.
2017-07-30 14:28:18 -04:00
Ray Speth
8d953a9424 [Python] Make Python module compatible with Cython 0.26
Cython 0.26 unexpectedly removed automatic conversions of C++ containers to
Python containers. Explicit casting provides the old behavior.

Fixes #465
2017-07-30 14:28:18 -04:00
Ray Speth
3676672eec [Thermo] Allow instantiation of LatticeSolidPhase without XML 2017-07-17 23:41:44 -04:00
Ray Speth
04f10972c8 [Thermo] Store sub-lattices as shared_ptr in LatticeSolidPhase
Also eliminates undefined behavior associated with unchecked cast to
LatticePhase*, since, at least in the Li7Si3_ls.xml example file, the
sub-lattices can be represented as other ThermoPhase types,
e.g. StoichSubstance.
2017-07-17 23:41:44 -04:00
Ray Speth
d744bd9fb8 [Thermo] Allow instantiation of LatticePhase without XML 2017-07-17 23:41:44 -04:00
Ray Speth
6bfd82e0be [Thermo] Remove unused "vacancy species" from LatticePhase 2017-07-17 23:41:44 -04:00
Ray Speth
f3ba29f0bc [Thermo] Fix default molar volume in LatticePhase
Molar volume is the inverse of molar "site" density
2017-07-17 23:41:44 -04:00
Ray Speth
37be501a68 [Test] Modify DebyeHuckel test to utilize PDSS_Water class 2017-07-17 23:41:44 -04:00
Ray Speth
a5b0bdf695 [Python] Make activity coefficients and activities accessible 2017-07-17 23:41:44 -04:00
Ray Speth
90d18dd337 Remove some unused, inaccessible variables 2017-07-17 23:41:44 -04:00
Ray Speth
9c084d5c84 Fix compiler warnings associated with AnyMap 2017-07-17 23:41:44 -04:00
Ray Speth
f69ef44600 [Thermo] Allow instantiation of MargulesVPSSTP without XML 2017-07-17 23:41:44 -04:00
Ray Speth
4818c87344 [Thermo] Remove unused members of MargulesVPSSTP 2017-07-17 23:41:44 -04:00
Ray Speth
44b24ca873 [ctml_writer] Fix handling of third body names containing parentheses
Replace the heuristic used to remove the third body terms from the
reactant and product lists to handle species names that include
parentheses.
2017-07-12 09:16:24 -04:00
Ray Speth
6d591b82ef [ck2cti] Fix reactions with pathologically named third bodies
This changes the order in which tokens are identified to be strictly
descending in length, so that third bodies are identified correctly
even when the third body expression could potentially be interpreted
as containing a standalone species name.
2017-07-12 09:16:24 -04:00
Richard West
55a8910686 A failing unit test for chemkin files with weird names in PDep rates.
Reactions of the type
 A (+B) <=> C (+B)
ought to work, as long as they are provided a pressure-dependent rate
expression. This commit adds three examples to the test file. The first
works OK, the second two cause problems.

(For what it's worth, this currently crashes the official chemkin.
 Or at least the parentheses do; I've not tested the plus.
 Ansys have created a defect record and say they will fix the issue.)
2017-07-12 09:16:24 -04:00
Tilman Bremer
b41038f84b stylevalue 'setlinewidth' is deprecated, replaced it together with the whole style argument by 'penwidth' 2017-07-11 18:59:03 -04:00
Bryan W. Weber
35ac1acfa8 Clarify Valve coefficient vs function 2017-07-11 18:26:55 -04:00
Bryan W. Weber
fec6c34ed8 Remove more references to importPhase in Matlab docs 2017-07-11 18:26:55 -04:00
Bryan W. Weber
05809bb027 Fix small typos in docs 2017-07-11 18:26:55 -04:00
Steven DeCaluwe
04be9888ed Update importKinetics to identify unspecified electrochemical reactions
Add test coverage for beta default value for electrochem reactions
2017-07-06 18:14:09 -04:00
Bryan W. Weber
6bf74d179b
Handle bad representations of geometry flags
If geometry flags are specified rather that can't be cast to integers,
intercept the ValueError raised by Python and raise a more sensible
exception.

Fixes #446
2017-06-14 17:39:52 -04:00
Bryan W. Weber
d920f2eb2c
Switch SourceForge links to point to GitHub
Fixes #442
2017-06-14 17:33:38 -04:00
Bryan W. Weber
c125878a40
Disable external SUNDIALS libraries when building the Matlab toolbox
Resolves #431
2017-06-14 09:08:39 -04:00
Ray Speth
c092484f4d [Matlab] Deprecate npflame_init in favor of CounterFlowDiffusionFlame 2017-06-10 16:44:50 -04:00
KyleLinevitchJr
43bd96b5ba [Matlab] Make counterflow diffusion flame simulation more general
The CounterFlowDiffusionFlame (CFDF) code is able to perform more general cases
of npflame_init for multiple species fuel and oxidizer streams. The
stoichiometric mixture fraction in the CFDF code uses the Bilger definition of
mixture fraction, using the conservation of elements C, H, and O. This method is
used in the python module, but not the MATLAB npflame_init function.

Also, the CFDF code uses the fuel stream density to calculate the fuel stream
velocity and the oxidizer stream density to calculate the oxidizer stream
velocity, where as the npflame_init code uses the fuel density for both velocity
calculations.

The elementMassFraction code is a MATLAB version of the python function:
elemental_mass_fraction, which is needed to run the CFDF code.

Update the diffflame.m example to use the more general CFDF function since the
input parameters are different than the npflame_init function. This example is
the same as the diffusion_flame.py sample in the Python module.
2017-06-10 16:44:50 -04:00
Ray Speth
94a4439bd4 [1D] Impose upper temperature bound based on thermo data
This fixes some platform-specific test failures when compiling in debug mode,
where estimated temperatures during the Newton iterations were too high,
resulting in non-finite reaction rates.
2017-05-16 13:55:40 -04:00
Ray Speth
22ecade329 [1D] Use named offsets for solution components 2017-05-16 13:55:40 -04:00
bangshiuh
1057d20731 [1D] Fix IonFlow docstrings and simplify testIonFlame 2017-05-16 13:55:40 -04:00
bangshiuh
6b6d758f23 [1D] Use named offset constants instead of raw numbers 2017-05-16 13:55:40 -04:00
bangshiuh
9dd0134e31 [1D] Add function for importing transport of electron 2017-05-16 13:55:40 -04:00
bangshiuh
e2f718c65b [1D/Python] Add IonFlow to Python interface, with example and test 2017-05-16 13:55:40 -04:00
bangshiuh
3b12c6d662 [1D] Introduction of IonFlow flame class
tested successfully with gri30
2017-05-16 13:55:40 -04:00
Ray Speth
3accd415e8 [Doc] Fix building Matlab Sphinx docs
Forgot to remove references to deprecated code that has been removed
2017-05-13 00:16:34 -04:00
Jeff Santner
2a38b0a765 Allow user to set flame location
A very small change that allows the user to set the initial location of the flame. The original hard-coded values for "locs" are retained as the default, but the user can now modify locs.
2017-05-12 22:57:29 -04:00
Ray Speth
52dbe8c007 [1D] Correct handling of boundary conditions when energy equation is disabled 2017-03-29 18:46:30 -04:00
Ray Speth
bfdc2b9e1d [Thermo] Allow instantiation of DebyeHuckel without XML 2017-03-25 23:42:46 -04:00
Ray Speth
974bbc7da4 Add electron to the built-in elements as an "isotope" 2017-03-25 23:42:46 -04:00
Ray Speth
56022e8989 Introduce class AnyMap 2017-03-25 23:42:46 -04:00
Ray Speth
2c3512c22a [Thermo] Fix PDSS_HKFT initialization when one property is not given
Calculating one of G0, H0, or S0 requires the parent ThermoPhase object, so this
calculation has to be delayed until m_tp has been set.
2017-03-02 19:53:23 -05:00
Steven DeCaluwe
51f419fbad Enabling charge-transfer/electrochemical surface reactions
The previous formulation will only consider a rection as electrochemical
if a beta value is supplied for that reaction *and* the reaction is an
'edge_reaction.'  This is problematic for two reasons: (1) many/most
charge-transfer reactions of interest occur at two-phase boundaries (see,
for example, Li-ion batteries and PEM fuel cells), not the three-phase-
boundary-like edges (which are most relevant for SOFCs).  (2) determining
whether a reaction is electrochemical or not should not rely at all upon
user input - the program itself should check to see whether charge is
transferred between phases, and the appropriate steps should be taken
during rate-of-progress calcuations.

This commit addresses the former issue.  Currently, if a charge-transfer
reaction is written as a surface_reaction, the code does not apply the
voltage correction to the forward rate.  By default, then, the entire
voltage correction is applied to the reverse reaction, which is the same
as setting beta = 0; not a good 'default' behavior (beta = 0.5 is a more
appropriate default).  With this change, surface reactions can now be
supplied with a beta value in cti or xml formats, and will be recognized
as a charge transfer reaction.

Longer term, it would be better to change the constructor routines such
that charge transfer is automatically detected and handled, rather than
relying upon user-specified flags.
2017-02-25 19:13:38 -05:00
decaluwe
f9d5f16b72 Adding test coverage for ThermoPhase class RedlichKwongMFTP 2017-02-25 11:36:31 -05:00
Ray Speth
95a52b2d34 [Test] Fix test compilation with G++ 4.6
G++ 4.6 doesn't support non-static data member initializers
2017-02-23 23:03:14 -05:00
Ray Speth
afafa34c06 [Thermo] Remove unimplemented options for m_formGC from DebyeHuckel 2017-02-22 22:18:40 -05:00
Ray Speth
a6ac446021 [Thermo] Allow instantiation of IdealMolalSoln without XML 2017-02-22 22:18:40 -05:00
Ray Speth
f8ef4a8b2b [Thermo] Allow instantiation of RedlichKisterVPSSTP without XML 2017-02-22 22:18:40 -05:00
Ray Speth
31d54c3b11 [Thermo] Allow instantiation of MaskellSolidSolnPhase without XML 2017-02-22 22:18:40 -05:00
Ray Speth
b033d44d3e [Thermo] Make PDSS_ConstVol configurable without XML 2017-02-22 22:18:40 -05:00
Ray Speth
2b73fe24ba Deprecate class MixedSolventElectrolyte
No existing tests, no known example input files, and not constructible via
ThermoFactory.

See #267.
2017-02-22 22:18:40 -05:00
Ray Speth
6154e1b4bd Remove unused list of thermo models from ThermoFactory 2017-02-22 22:18:40 -05:00
Ray Speth
5efea12959 [Thermo] Allow instantiation of IdealSolnGasVPSS without XML
This is also the first test of PDSS_IdealGas that doesn't use XML
2017-02-22 22:18:40 -05:00
Ray Speth
3ea2a6caf3 [Thermo] Remove special case for aqueous phases in VPStandardStateTP
The flag 'm_useTmpRefStateStorage' used when one of the species was PDSS_Water
reduced functionality and provided no performance benefit.
2017-02-22 22:18:40 -05:00
Ray Speth
461b63e462 [SCons] Add option to pass flags to GTest 2017-02-22 22:18:40 -05:00
Ray Speth
3c771ded2b [Thermo] Add PDSS objects to VPStandardStateTP without XML
Added PDSSFactory class to generalize PDSS object creation
2017-02-22 22:18:40 -05:00
Ray Speth
c28ca48cf8 Add option to specify synonyms for Factory model names 2017-02-22 22:18:40 -05:00
Ray Speth
04cac2b277 [Thermo] Refactor construction of PDSS objects
Introduce a default constructor for PDSS objects, and avoid
passing in unnecesary arguments to initialization functions.
2017-02-22 22:18:40 -05:00
Ray Speth
ff46dc93b5 [Thermo] Fix inconsistencies in PDSS_IonsFromNeutral
The definitions of p0, Tmin, and Tmax were circular -- they queried the
STITbyPDSS object which just referenced the same PDSS_IonsFromNeutral
object. Instead, pull these properties from the associated "neutral molecule"
phase.

The overrides of setTemperature and temperature were unnecessary and likely to
cause problems.
2017-02-22 22:18:40 -05:00
Ray Speth
fca22d94e5 [SCons] Print error message if GTest exits abnormally 2017-02-22 22:18:40 -05:00
Ray Speth
574462fd3c [Thermo] Move common PDSS functions up to PDSS_Nondimensional 2017-02-22 22:18:40 -05:00
Ray Speth
3a119381e8 [Thermo] Fix creation of IonsFromNeutralVPSSTP objects
Added a mock input file derived from the initialization code in
IonsFromNeutralVPSSTP and PDSS_IonsFromNeutral.
2017-02-22 22:18:40 -05:00
Ray Speth
dfb32f0c7e [Thermo] Fix errors in entropy calculation in PDSS_IdealGas 2017-02-22 22:18:40 -05:00
Ray Speth
35679c2e9e [Thermo] Make m_species a non-pointer member of ThermoPhase 2017-02-22 22:18:40 -05:00
Steven DeCaluwe
dd521de254 Cleaning up pressure implementation in MixtureFugacityTP and derived classes.
Cleaning up `RedlichKwongMFTP:pressure()` and removing `m_Pcurrent` as a cached
value in `RedlichKwongMFTP` and `MixtureFugacityTP`.  The stored value was only
ever called in one location `RedlichKwongMFTP:getPartialMolarVolumes()`, and
the function call it replaced (`RedlichKwongMFTP:pressure()`) is not all that
involved.
2017-02-22 17:58:54 -05:00
Steven DeCaluwe
ecbd819e91 Commenting out sanity check in `RedlichKwongMFTP::pressure' and removing m_Pcurrent 2017-02-22 17:58:54 -05:00
Ray Speth
11a0727d5c [Test] Fix reproducibility of values used in add_species_sequential test
Exact floating point equality can be assured only in the case where the species
are added in the same order, since this affects summations involved in
calculating the mixture molecular weight. This resulted in test failures with
certain versions of the Intel compiler.

Resolves #433.
2017-02-21 20:53:29 -05:00
Ray Speth
a02753ae79 [Test/ck2cti] Test pdep reactions with custom units 2017-02-20 19:14:12 -05:00
Richard West
7b7aea2038 Preserve units in PLOG entries in ck2cti
When converting chemkin into cti using ck2cti, the units were not preserved
in PLOG (pdep_arrhenius) reactions. Now they are.
2017-02-20 19:02:36 -05:00
Ray Speth
db1f1af0a0 [Thermo] Fix RedlichKwongMFTP in temperature-independent case
If the "a" coefficients for all species were temperature independent, the array
containing "a" at the current temperature was never being populated. Fixes a
regression introduced in 19c17d1.
2017-02-17 16:38:47 -05:00
Ray Speth
70e10632d4 [SCons] Fix implicit dependencies on 'build' step
The 'install' and 'test' targets had some undeclared dependencies on the 'build'
target, such that running 'scons install' or 'scons test' without having first
run 'scons build' would result in incomplete installation or test failures,
respectively.

Fixes #432.
2017-02-17 11:51:12 -05:00
Ray Speth
0a1257daed Stream input to ctml_writer to avoid command line length limits
Resolves #416.
2017-02-13 19:37:24 -05:00
Ray Speth
b39537bfcb [Thermo] Merge functionality of VPSSMgr into VPStandardStateTP
Remove the now-unused VPSSMgr class and descendants.
2017-02-13 13:25:46 -05:00
Ray Speth
50ed3f2e72 [Thermo] PDSS objects store their own data 2017-02-13 13:25:46 -05:00
Ray Speth
7b529ac2d6 [Thermo] Fix error in PDSS_Water reference state calculations
The water property calculator needs to be given the correct phase guess,
otherwise it will return in an invalid state.
2017-02-13 13:25:46 -05:00
Ray Speth
38d291c683 [Thermo] Fix reference pressure assumptions in VPSSMgr classes
The reference pressure (p0) must be species-specific, since for certain PDSS
classes (e.g. PDSS_Water) p0 is a function of temperature, while for other
classes (PDSS_ConstVol) it is a constant.

VPSSMgr_Water_ConstVol further assumed that the reference pressure for all
species was 1 atm, ignoring the setting in the PDSS object. Fixing this changed
test results for HMW_test_1 and HMW_test_3.

Added a test that specifically compares VPSSMgr_Water_ConstVol with
VPSSMgr_General.
2017-02-13 13:25:46 -05:00
Ray Speth
0249ce89b8 [Test] Add tests for 'OneWayFlow' and 'scale' reaction path options 2017-02-12 22:32:39 -05:00
Ray Speth
092e00744b [Kinetics] Add test that reaction path fluxes are correct 2017-02-12 22:32:39 -05:00
Ray Speth
5a0fb579a8 [Kinetics] Prevent double counting in reaction path diagrams
This fixes the double counting that occurs in reactions like:

    H + HO2 => 2 OH

Fixes #377
2017-02-12 22:32:39 -05:00
Ray Speth
3093e6e6d4 [Kinetics] Restore old handling of repeated species in path diagrams
Fixes an error introduced in 37f71bd9 which caused these reactions to be
ignored. However, flux calculations for reactions such as H + HO2 -> 2 OH are
still incorrect.
2017-02-12 22:32:39 -05:00
Ray Speth
0d982c8f58 Fix use of 'scale' and 'OneWayFlow' options in ReactionPathDiagram
Fixes #378
2017-02-12 22:32:39 -05:00
Ray Speth
7673f7cb52 Remove code deprecated in Cantera 2.3.0 2017-02-12 19:22:33 -05:00
Ray Speth
66998a5ae1 [SCons] Keep SCons initial PATH when propagating PATH
Fixes errors on Windows when Visual Studio is not on the PATH but has been
found by SCons instead.
2017-02-12 17:39:13 -05:00
Ray Speth
eae9250f2e [SCons] Print propagated environment variables in 'verbose' mode 2017-02-11 16:39:00 -05:00
Ray Speth
3c82c3a6c6 [SCons] Propagate PATH environment variable by default 2017-02-11 16:36:44 -05:00
Ray Speth
e5edc319de [SCons] Fix propagation of user-specified environment variables
The listify function no splits on commas
2017-02-11 16:35:07 -05:00
Ray Speth
19c17d149b [Thermo] Allow instantiation of RedlichKwongMFTP without XML
This also adds the first test which instantiates a RedlichKwongMFTP object, and
removes some unused member variables and private methods from the class.
2017-02-05 15:51:24 -05:00
Ray Speth
507a3a9985 [Thermo] Allow instantiation of WaterSSTP without XML 2017-02-03 23:46:03 -05:00
Ray Speth
86dca05369 [Thermo] Make PureFluidPhase configurable without XML
The 'setSubstance' method allows setting the equation of state to use, which
could only be done before using the 'setParametersFromXML' method.
2017-02-03 21:56:29 -05:00
Ray Speth
62c67e4ad1 [TPX] Add factory function for Substance from species name
This function had been defined but not declared.
2017-02-03 21:53:50 -05:00
Ray Speth
ed8de04e5b [Python] Fix setting mass/mole fractions for single-species phases 2017-01-31 17:41:50 -05:00
Ray Speth
6a52908d85 [Python/1D] Make current solution residuals accessible 2017-01-31 16:58:24 -05:00
Ray Speth
78d5809d6f [Samples] Add C++ OpenMP example 2017-01-28 15:07:15 -05:00
Ray Speth
3f6f580b25 Fix issues parsing some composition strings
The parser was having issues in cases where there was both a space following the
colon and a comma following the value.
2017-01-28 00:04:36 -05:00
Ray Speth
5fcbfde40e Make error message from newSpeciesThermoInterpType more informative 2017-01-27 18:17:22 -05:00
Ray Speth
2678b57d58 [Doc] Update docstring for Kinetics::checkDuplicates 2017-01-27 18:17:22 -05:00
Bryan W. Weber
c982f50421
[Matlab/Doc] Fix docs for enthalpies_RT function 2017-01-25 07:41:43 -05:00
Ray Speth
0fd2f7c4d0 [Kinetics] Check for unmatched duplicate reactions
Reactions which are marked as duplicates but have no matching reactions are
considered errors.

Fixes #389
2017-01-23 14:34:18 -05:00
Ray Speth
7979a2b52a Add Matlab function for checking git commit 2017-01-23 14:33:31 -05:00
Ray Speth
8e89bbb8d2 Add methods for accessing the git commit used when compiling 2017-01-20 22:43:56 -05:00
Ray Speth
17c1f9dc14 [SCons] Make definition of CANTERA_DATA local to application.cpp 2017-01-20 17:58:40 -05:00
Ray Speth
ac5337130a [Kinetics] Validate balance of surface sites for interface reactions
The number of surface sites should be the same for the reactants and products.

Fixes #412
2017-01-20 17:40:34 -05:00
Ray Speth
886d7b7cdc Move MixMaster into a separate Python module and Git repository
MixMaster has been moved to https://github.com/Cantera/mixmaster
2017-01-20 16:16:32 -05:00
Ray Speth
26651cc72c Bump development version to 2.4.0a1 2017-01-20 16:16:32 -05:00
Ray Speth
0281d14e39 [Doc] Update paths to compilation instructions in INSTALL 2017-01-19 21:11:14 -05:00
Ray Speth
d2aeb8fa28 [Doc] Note availability of Windows binaries for Python 3.6 2017-01-19 21:05:02 -05:00
Ray Speth
8329edf45f [Doc] Update versions of Ubuntu for which Cantera is packaged
We can no longer build on stock 14.04 due to the requirement for Cython >= 0.23.
2017-01-12 22:28:53 -05:00
Ray Speth
4b974219b5 [SCons] Fix installation location for Debian Python packages 2017-01-12 20:23:58 -05:00
Ray Speth
6546c08f29 Bump version and copyright year for 2.3.0 release 2017-01-12 14:00:35 -05:00
Ray Speth
2c38d26407 [Doc] Remove references to old Google Code mirror 2017-01-12 13:43:39 -05:00
Bryan W. Weber
4beaa1b19b [Doc] Clarify lapack_ftn_string_len_at_end docs 2017-01-12 13:43:39 -05:00
Bryan W. Weber
24f166ede6 [Doc] Add link to numpy.org 2017-01-12 13:43:39 -05:00
Bryan W. Weber
0098b17f93 [Doc] Sundials -> SUNDIALS 2017-01-12 13:43:39 -05:00
Bryan W. Weber
7b0305f81e [Doc] Mention TDM-GCC and discourage regular MinGW 2017-01-12 13:43:39 -05:00
Bryan W. Weber
81f9daf1e7 [Doc] Update Xcode version 2017-01-12 13:43:39 -05:00
Bryan W. Weber
cfe2455cda [Doc] Move compiling docs and split into files 2017-01-12 13:43:39 -05:00
Bryan W. Weber
d735cf0017 Switch MATLAB tests to use Solution
Instead of deprecated importPhase
2017-01-12 13:43:39 -05:00
Bryan W. Weber
74a583a6d0 Add TOC to the compiling docs 2017-01-12 13:43:39 -05:00
Bryan W. Weber
608f457614 [Doc] Add Build Commands section 2017-01-12 13:43:39 -05:00
Bryan W. Weber
25db36e8cd [Doc] Rewrite and reformat configuration options section 2017-01-12 13:43:39 -05:00
Bryan W. Weber
32046f9037 [Doc] Fix various small typos in compiling docs 2017-01-12 13:43:39 -05:00
Bryan W. Weber
1db519e8c0 [Doc] Reformat and move docs for options to config-options.rst 2017-01-12 13:43:39 -05:00
Bryan W. Weber
48f43cf015 [SCons/Doc] Update/reformat docs for SCons options 2017-01-12 13:43:39 -05:00
Bryan W. Weber
e317ceef84 Clarify SCons options explanations 2017-01-12 13:43:39 -05:00
Bryan W. Weber
14dac26318 Rewrite OS X dependencies 2017-01-12 13:43:39 -05:00
Bryan W. Weber
d0acf0230a [Docs] Rewrite Windows dependency information 2017-01-12 13:43:39 -05:00
Bryan W. Weber
d84f482400 [Docs] Fix small typos in Compiling docs 2017-01-12 13:43:39 -05:00
Bryan W. Weber
cf5e45d697 [Docs] Remove instruction to install Sundials via system installer
The source of Sundials is built automatically, so it isn't necessary to install it
separately.
2017-01-12 13:43:39 -05:00
Bryan W. Weber
bffd4d2de1 [Docs] Rewrite Linux compiling requirements section
Reframe in terms of requirements for each distro. Add OpenSUSE.
2017-01-12 13:43:39 -05:00
Bryan W. Weber
983b2cc015 [Matlab/Doc] Fix typos in docs for some ThermoPhase getters
These actually return scalars, although the docstrings
said they returned vectors
2017-01-03 21:57:06 -05:00
Steven DeCaluwe
d655cf0eae Correcting RedlichKwongMFTP::getActivityConcentrations
Implementing correct 'activity concentrations' routine, based on
fugacity coefficients, and cleaning up extraneous comments, whitespace, etc.
2017-01-02 09:03:07 -05:00
Ray Speth
1593c2fc5f [Doc] Update Homebrew installation instructions
Homebrew installation does not need pip-installed Cython.

External Sundials is automatically disabled when using Matlab, and does not
incur any penalties.
2016-12-30 13:26:50 -05:00
Ray Speth
e7923cedbb [SCons] Remove unnecessary configuration tests 2016-12-30 13:26:50 -05:00
Ray Speth
4669b9cf5a Fix miscellaneous spelling errors 2016-12-30 13:26:50 -05:00
Bryan W. Weber
3014b7af89 [SCons] Fail the numpy check more gracefully
An import error with NumPy caused the build to fail when it shouldn't.
This fixes that and fixes #414. Also implement a minimum version
warning check with NumPy. The warning message is printed if the NumPy
version that's found is less than the version we test with.
2016-12-30 13:23:54 -05:00
Bryan W. Weber
04b5498a24 [SCons] Refactor Cython check to error if min_version not met
Previously, the warning message would print, but the full package would be built anyways.
This caused errors later in the build process that this check is supposed to handle.
2016-12-30 13:23:54 -05:00
Bryan W. Weber
c7555f1eae [SCons] Deprecate the new Python interface option 2016-12-30 13:23:54 -05:00
Ray Speth
d9ff992817 Fix temporary cti filename for MinGW 2016-12-29 22:06:27 -05:00
Santosh Shanbhogue
3593fad14a Fix ct2ctml when string passed as 'source' argument
Make ct2ctml create a temp cti file for a large source argument

Fixes #416
2016-12-29 22:06:27 -05:00
Ray Speth
e515afd9e1 [Doc] Fix Ubuntu build dependencies for Python 3 module
Cython for Python 2 is used (under SCons) to generate the C++ code for the
extension module, which is then compiled separately for Python 2 and/or Python
3.
2016-12-23 20:04:46 -05:00
Santosh Shanbhogue
46009e4a95 Fix cantera.pc to pass correct compiler options 2016-12-21 23:42:31 -05:00
Ray Speth
268585b896 [Doc] Describe usage of ck2cti as a command-line module 2016-12-21 21:23:50 -05:00
Ray Speth
d0a5003eac [SCons] Fix compiler flags included in cantera.pc
Missing '-std=c++0x' or equivalent would lead to compilation errors.
2016-12-21 21:23:50 -05:00
EmilAtz
1e08d7499c Deprecation of MatLab importPhase function
Addition of comments in importPhase to warn for function deprecation.
2016-12-21 15:39:54 -05:00
EmilAtz
5b2406470c Adjustment of importPhase to Solution in MatLab documentation
Searched for importPhase and updated respective locations to Solution.
Modified wording around changes.
2016-12-21 15:39:54 -05:00
EmilAtz
d707e059e0 [matlab/doc] Update importPhase to Solution for matlab input-tutorial
Updated to importPhase to Solution to match current function usage
2016-12-21 15:39:54 -05:00
Ray Speth
2284bc9186 [Transport] Fix transport geometry flag check for charged species
Electrons should not be counted when determining the number of atoms in a
molecule and the corresponding allowable molecular geometries.
2016-12-17 19:09:37 -05:00
Ray Speth
b20c0c6699 [Doc] Fix depth of ck2cti docs 2016-12-10 19:23:21 -05:00
Ray Speth
733ec18601 [CI] Upload coverage data to codecov.io 2016-12-10 18:44:30 -05:00
Ray Speth
fa699be425 [SCons] Clang can also generate coverage info 2016-12-10 18:44:30 -05:00
Bryan W. Weber
b495fe8913 [SCons] Fix missing comma in finding 3to2 on non-Windows 2016-12-09 20:13:22 -05:00
Bryan W. Weber
9f198f028e [CI] Add Python 3 to build 2016-12-09 20:13:22 -05:00
Bryan W. Weber
ca6f8f4fd1 [CI] Parallel build on Windows requires pywin32 2016-12-09 20:13:22 -05:00
Bryan W. Weber
29e935c1d0 [CI] Add 3to2 and VERBOSE options 2016-12-09 20:13:22 -05:00
Bryan W. Weber
2024d0f08a [SCons] Fix calling 3to2 on Windows with conda 3to2 package
Fixes #408
2016-12-09 20:13:22 -05:00
Bryan W. Weber
086e640e46 [SCons] Use subprocess.check_output in getCommandOutput 2016-12-09 20:13:22 -05:00
Santosh Shanbhogue
d1df40af87 Separate transport data from comments in parseTransportData 2016-12-09 19:59:52 -05:00
Santosh Shanbhogue
3f382e2590 Add test to catch superflous entries in a tranport file 2016-12-09 19:59:52 -05:00
Santosh Shanbhogue
06578612eb Identify species with bad transport entries 2016-12-09 19:59:52 -05:00
Bryan W. Weber
c7db81f33c [Doc] Document the ReactorSurface class in Python
Fixes #407
2016-12-09 19:51:46 -05:00
arghdos
84e6775ee3 remove special treatment of falloff #'s, resolves #404 2016-12-06 21:30:20 -05:00
Santosh Shanbhogue
08b14b24ed [Doc] Add more links to Jupyter notebooks 2016-12-03 13:24:09 -05:00
Ray Speth
730107cdba [CI] Return exit code from 'scons test' to make Appveyor status correct
Resolves #382
2016-11-29 22:05:51 -05:00
Ray Speth
4c1ab0c49d [CI] Fix errors upgrading pip in-place on Appveyor 2016-11-29 22:04:55 -05:00
Ray Speth
1b4ea04277 [Doc] Update prereqs for using Windows binaries 2016-11-29 20:36:50 -05:00
Ray Speth
8ee7d432e1 [Doc] Warn OS X users about out-of-date system Numpy 2016-11-29 20:36:50 -05:00
Ray Speth
c6412a56a4 [Doc] Add DOI reserved for 2.3.0 release 2016-11-29 20:36:50 -05:00
Ray Speth
4cc8d72e10 [Doc] Update OS/Python versions for which binary installers are provided 2016-11-29 20:36:50 -05:00
Ray Speth
95e1ee49dc Bump version to 2.3.0b1 2016-11-29 20:36:50 -05:00
Ray Speth
89e729f6b8 [Doc] Update versions of supported dependencies 2016-11-29 20:36:50 -05:00
Kyle Niemeyer
dcebc5f01f [Doc] Fixed conda link in README
Original link in README for conda (https://anaconda.org/cantera/repo?type=conda&label=main) seems to be broken, so replaced with new link (https://anaconda.org/Cantera/cantera).
2016-11-29 09:53:35 -05:00
Bryan W. Weber
4829310f11 Add messages to the assertion statements in thermo.pyx
Fixes #335
2016-11-27 23:28:21 -05:00
Ray Speth
0787e4194e [Base] Fix parsing composition strings when last name contains a colon
If the last species name in a composition string contained a colon, it would not
be parsed correctly.
2016-11-27 17:41:37 -05:00
Ray Speth
aa4d07f543 [Thermo] Allow discontinuous thermo warnings to be suppressed
Resolves #354
2016-11-26 00:57:23 -05:00
Ray Speth
469cc63d99 Remove unused code from ReactionPathBuilder 2016-11-25 23:42:01 -05:00
Ray Speth
d7819af947 [SCons] Make versioning of cantera_shared optional
Also, disable by default on MinGW to work around a SCons bug
2016-11-25 23:42:00 -05:00
Ray Speth
1e87756a97 [CI] Run 'scons build' in parallel
Both Travis and Appveyor make at least two cores available
2016-11-25 23:41:56 -05:00
Ray Speth
8e6d53d18b Enable parsing of composition strings when species names contain colons 2016-11-25 18:19:38 -05:00
Ray Speth
1db103cd87 Fix Phase.species_index when species name contains a colon 2016-11-25 18:19:38 -05:00
Ray Speth
3300611379 Allow colons in species names in CTI phase definitions 2016-11-25 18:19:38 -05:00
Bryan W. Weber
05ad05c904 [ck2cti/Test] Add tests for explicit reverse reaction equal to zero 2016-11-25 18:18:38 -05:00
Bryan W. Weber
a9814a1216 [ck2cti] Don't include reactions with explicit reverse rate equal to zero 2016-11-25 18:18:38 -05:00
Bryan W. Weber
6b32c73eee [ck2cti] Use logging.error when a thermo entry can't be read.
This matches the use when a reaction line can't be read.
2016-11-25 18:18:38 -05:00
Bryan W. Weber
ce90a798c5 [ck2cti] Raise ValueError in compatible_quantities instead of Exception 2016-11-25 18:18:38 -05:00
Bryan W. Weber
990f995796 [ck2cti] Minor spacing updates to improve legibility 2016-11-25 18:18:38 -05:00
Bryan W. Weber
bed546ad92 [ck2cti] Remove unused isnumberlike function 2016-11-25 18:18:38 -05:00
Bryan W. Weber
e250d23435 [ck2cti] remove duplicate sys import 2016-11-25 18:18:38 -05:00
Kyle Niemeyer
3782543de5 Add Code of Conduct
Adopt a Code of Conduct for interactions on the GitHub repo and User Group, to
set expectations on how people should behave and interact with each other, and
encourage/attract new members of the community.
2016-11-22 20:24:45 -05:00
Ray Speth
d55ffa9b5c Add note about license and copyright of contributions 2016-11-22 18:42:47 -05:00
Bryan W. Weber
0c400a9a6f Add CONTRIBUTING.md 2016-11-22 18:42:47 -05:00
Bryan W. Weber
8ef33161a1 Add PULL_REQUEST_TEMPLATE.md 2016-11-22 18:42:47 -05:00
Bryan W. Weber
557e752fcb Add ISSUE_TEMPLATE.md 2016-11-22 18:42:47 -05:00
Ray Speth
50ad75f2a2 [Reactor] Make ReactorNet uncopyable 2016-11-14 20:34:45 -05:00
Ray Speth
b7fad42cda [Thermo] Check for null species thermo when adding species 2016-11-14 19:46:23 -05:00
Ray Speth
6dc92b618f [Doc] Eliminate some Doxygen and Sphinx warnings 2016-11-14 17:43:45 -05:00
Ray Speth
c677d13866 [SCons] Fix compilation when system Eigen is specified
Also add note about adding /usr/include/eigen3 if needed
2016-11-14 17:00:12 -05:00
Ray Speth
5861bc174d [Test] Remove unused files from test_problems directory 2016-11-14 00:16:34 -05:00
Ray Speth
0d241fd64a Use toSI instead of explicit constant for unit conversions 2016-11-13 22:58:15 -05:00
Ray Speth
955d5de98a [Equil] Eliminate use of 'goto' in vcs_MultiPhaseEquil 2016-11-13 22:23:04 -05:00
Bryan W. Weber
7d3ebdd358 [SCons] Check for NumPy using python_cmd if specified 2016-11-12 17:40:11 -05:00
Bryan W. Weber
adcd5dec3c [SCons] Use python3_array_home option 2016-11-12 17:40:11 -05:00
Ray Speth
170f1d0fad [1D/Python] Avoid unnecessary solve if first attempt succeeded 2016-11-12 16:15:38 -05:00
Ray Speth
4753ae4a86 [1D/Python] Add adjoint laminar flame speed sensitivity calculation
This is approximately an order of magnitude faster than the 'forward' method for
calculating these sensitivities. It also eliminates the need to adjust the
solver tolerances.
2016-11-12 14:48:01 -05:00
Ray Speth
0bfdf146c0 [1D] Include transport derivatives when computing Jacobian for adjoint 2016-11-12 14:48:01 -05:00
Ray Speth
ca8b101acc [1D] Add general support for calculating adjoint sensitivities 2016-11-12 14:48:01 -05:00
Ray Speth
b9ac39bf68 [Numerics] Failures in BandMatrix raise exceptions
Store the 'info' flag returned by the underlying LAPACK function so that callers
can catch the exception and retrieve this information if desired.

Eliminate automatic 'bandmatrix.csv' output.
2016-11-11 23:18:22 -05:00
Ray Speth
43f7bc8cdf [Numerics] Remove trailing commas when printing Array2D and BandMatrix 2016-11-11 23:06:35 -05:00
Ray Speth
454f156764 [Numerics] Deprecate GeneralMatrix::nRowsAndStruct 2016-11-11 23:06:35 -05:00
Ray Speth
2d623e893e [Python] Fix documentation for Sim1D.set_steady_callback 2016-11-11 23:06:35 -05:00
Ray Speth
d34b94230f [Thermo] Deprecate ThermoPhase::setSpeciesThermo 2016-11-11 23:06:35 -05:00
Ray Speth
67ac725731 [Thermo] Eliminate manual memory management in VPStandardStateTP 2016-11-11 23:06:35 -05:00
Ray Speth
56b6b2a233 Deprecate deepStdVectorPointerCopy 2016-11-11 23:06:35 -05:00
Ray Speth
5641fa83e9 [clib/Matlab] Add function for getting Cantera version 2016-11-11 23:06:35 -05:00
Ray Speth
583b715fca [Test] Remove obsolete note on limitation for surfSolver test input 2016-11-11 23:06:35 -05:00
Ray Speth
8e7978959d [Doc] Fix typo in installation docs 2016-11-11 23:06:35 -05:00
Ray Speth
902ab5cccd [clib] Improve consistency of function names 2016-11-11 23:06:35 -05:00
Ray Speth
8b9499160a [clib] Remove wrapper for deprecated 'showErrors' function 2016-11-11 23:06:35 -05:00
Ray Speth
9c44db371a [SCons] Fix option to build with PCH disabled 2016-11-11 23:06:35 -05:00
Ray Speth
828fba5611 [CTI] Improve error messages associated with problematic reactions 2016-11-11 23:06:35 -05:00
Bryan W. Weber
44b2186146 [1D] Remove default argument from setMaxGridPoints 2016-11-11 17:40:46 -05:00
Bryan W. Weber
4fb0d52d4b [Test] Remove printed output from tests 2016-11-11 17:40:46 -05:00
Bryan W. Weber
06a739d26e [Test/1D] Add tests for max_grid_points 2016-11-11 17:40:46 -05:00
Bryan W. Weber
3fd46f7a1f [Cython/1D] Modify the auto solver so the minimal code is in the try block.
This ensures we only catch an error from a single solve call so it is handled properly.
2016-11-11 17:40:46 -05:00
Bryan W. Weber
c91bdee2e2 [Cython/1D] Raise an error if the auto solver exceeds the max number of grid points 2016-11-11 17:40:46 -05:00
Bryan W. Weber
0b9a741597 [1D] Change the default max number of grid points to 1000.
The previous default was 3000, which was very high for most domains.
2016-11-11 17:40:46 -05:00
Bryan W. Weber
0a363a108d [1D] Exceeding the max number of grid points should be an error 2016-11-11 17:40:46 -05:00
Bryan W. Weber
a82dd5a483 [Cython/1D] Add Cython interface for getting/setting max_grid_points 2016-11-11 17:40:46 -05:00
Bryan W. Weber
6acf755670 [1D] Add maxPoints and maxGridPoints functions 2016-11-11 17:40:46 -05:00
Bryan W. Weber
4e1c45c2aa [Test] Fix typo in test_multiComponent 2016-11-10 15:16:10 -05:00
Bryan W. Weber
e235f69543 [Cython/Test] Make python tests portable 2016-11-10 15:16:10 -05:00
Bryan W. Weber
fc9270786f [Cython/Test] Add working directory attributes to CanteraTest class 2016-11-10 15:16:10 -05:00
Bryan W. Weber
32ab413683 Add *.gch files to gitignore 2016-11-10 15:16:10 -05:00
Bryan W. Weber
ea4b3502c3 [Cython/Test] Install extra data files from main data directory 2016-11-10 15:16:10 -05:00
Ray Speth
361ca83891 [CI] Upgrade pip when building on AppVeyor
Warning messages from older pip versions cause AppVeyor to think that the build
has failed and abort.
2016-11-05 16:24:33 -04:00
Ray Speth
deeb6198a0 [Test] Add test of clib 2016-11-04 19:15:07 -04:00
Ray Speth
fb9a4b1d61 Deprecate RootFind 2016-11-04 11:36:13 -04:00
Ray Speth
da87260062 [Thermo] Replace RootFind with Boost in RedlichKwongMFTP
As previously implemented, calling densSpinodalLiquid or densSpinodalGas would
crash since the pointer fdpdv_ was uninitialized, and furthermore could not even
be initialized with an instance of the spinodalFunc class because this class was
abstract.

Also fix densSpinodalLiquid and densSpinodalGas to actually calculate the roots
of the equation of state which are used as bounds for the search interval.
2016-11-04 11:36:13 -04:00
Ray Speth
145335880f [SCons] Move PCH-related files out of include to avoid installing them 2016-11-04 11:36:13 -04:00
Ray Speth
baa0a24905 [SCons] Fix permissions error when installing to stage directory 2016-11-02 21:37:42 -04:00
Ray Speth
19c71f5397 Update libfmt submodule to version 3.0.1
Fixes compilation problems on Cygwin
2016-11-02 19:40:28 -04:00
Ray Speth
334b154eef [SCons] Prevent full rebuild after change to precompiled header 2016-11-02 18:36:50 -04:00
Ray Speth
b7e4902035 [Doc] Describe boundary conditions for 1D flames 2016-11-02 18:36:50 -04:00
Ray Speth
530d503848 [Doc] Describe governing equations for 1D flames 2016-11-02 18:36:50 -04:00
Ray Speth
a01032cd2d Resolve some compiler warnings 2016-11-02 18:36:50 -04:00
Bryan W. Weber
d59cae1e3c Add config.h.build to gitignore 2016-10-31 17:14:26 -04:00
Bryan W. Weber
7ef43421b4 Fix typo in application.h 2016-10-31 17:14:26 -04:00
Bryan W. Weber
6690b964be Fix rcond unintialized warning 2016-10-31 17:14:26 -04:00
Bryan W. Weber
174db13165 Fix typo in docs for findInputFile 2016-10-31 17:14:26 -04:00
Bryan W. Weber
1cdc6b6d7e Add C-Lib and Matlab interface to getDataDirectories 2016-10-31 17:14:26 -04:00
Bryan W. Weber
d1c2ec48e7 Add function to get the data directories Cantera searches 2016-10-31 17:14:26 -04:00
Ray Speth
b01f9cd1e7 [1D] Remove temperature state variable from Surf1D and ReactingSurf1D 2016-10-30 21:35:20 -04:00
Ray Speth
0740131272 [1D] Remove 'dummy' variable from 1D boundaries
Affects Empty1D, Symm1D, OutletRes1D, Outlet1D
2016-10-30 21:35:20 -04:00
Ray Speth
52727a9550 [1D] Eliminate unnecessary state variables from Inlet1D
We do not need to solve the trivial equations 'T = Tin' and 'mdot = mdot_in'.
2016-10-30 21:35:20 -04:00
Ray Speth
f959fa67c9 [Samples/Doc] Generate CMakeLists.txt files for C++ and F90 samples 2016-10-28 23:39:33 -04:00
Ray Speth
af076bad0b [Samples] Replace printf with writelog 2016-10-28 19:05:24 -04:00
Ray Speth
388dbafb39 Deprecate wrapString 2016-10-28 18:38:23 -04:00
Ray Speth
7a24dc3817 Replace lowercase with boost string algorithms 2016-10-28 18:20:11 -04:00
Ray Speth
2a8ac43308 [SCons] Add fmt.h to system.h and improve PCH dependency handling 2016-10-28 12:40:53 -04:00
Ray Speth
e3dfc35ca1 [SCons] Use precompiled header to speed up compilation with MSVC
Update Appveyor config to turn off debug info so PCH can be used
2016-10-28 12:05:46 -04:00
Ray Speth
cbcce07981 [SCons] Use precompiled header to speed up compilation with GCC/Clang 2016-10-27 19:59:35 -04:00
Ray Speth
b25784dc09 Replace stripws with boost::algorithm::trim_copy 2016-10-27 11:28:03 -04:00
Ray Speth
367bdba551 Use boost::algorithm::split to implement tokenizeString 2016-10-27 11:28:03 -04:00
Ray Speth
2db7ebc55c [clib] Update declaration for stflow_setTransport 2016-10-24 19:00:36 -04:00
Ray Speth
cd65b01b06 [Doc] Fix indentation 2016-10-24 18:58:33 -04:00
Ray Speth
510f06497c [Reactor/Doc] Describe governing equations for surface species 2016-10-24 18:58:33 -04:00
BangShiuh
859eb6b94a [1D] Deprecate 'withSoret' argument of setTransport 2016-10-24 18:57:05 -04:00
Ray Speth
c770edf6b8 Update CI configurations to handle Boost dependency 2016-10-24 08:10:37 -04:00
Ray Speth
ecb2868a18 [Reactor] Suppress recoverable errors in RHS function by default
Accumulate errors and show them if the integrator actually fails. In "verbose"
mode, the errors are shown as they occur.
2016-10-23 22:42:53 -04:00
Ray Speth
7724c841a1 Handle _cantera.h header file produced by newer versions of Cython 2016-10-23 17:19:11 -04:00
Ray Speth
95764fdf6e [Reactor] Add tests for reactors using pure fluid phases 2016-10-23 17:17:28 -04:00
Ray Speth
4b57ee3d4c [SCons/Doc] Formalize dependency on Boost 2016-10-22 19:03:20 -04:00
Ray Speth
1dc0cedcd9 [Reactor] Use Boost's bracket_and_solve_root function
This algorithm is more robust than the simple Newton's method that it
replaces. Among its advantages is that it works with PureFluidPhase models.

Resolves #257
2016-10-22 16:17:57 -04:00
Ray Speth
28202f9fa2 [Reactor] Allow Reactor to function without requiring a Kinetics object 2016-10-22 15:50:01 -04:00
BangShiuh
04f9596cc5 [Transport] replace sumxw with mmw in GasTransport::getMixDiffCoeffs
The sumxw is redundant, so I replace it with mmw.
2016-10-21 23:17:11 -04:00
Ray Speth
3f3b96587b [Thermo] Fix finite-difference properties in two-phase region
These properties are actually infinite in the two-phase region, but attempting
to compute them by finite difference would incorrectly give a finite result, so
they need to be treated as a special case.
2016-10-21 13:28:51 -04:00
Ray Speth
a92245f683 [Thermo] Fix calculation of derivative properties of pure fluids
Calculating specific heat capacities (cp or cv) for states near the saturation
curve would give incorrect results if the finite difference method used points
within the saturation region. To avoid this, we now check the points used for
computing the properties and use values outside the saturation region to compute
the derivatives.

Fixes #273
2016-10-21 13:28:51 -04:00
Ray Speth
b1a1ce6e23 [Thermo] Fix pure fluid thermal expansion coefficient calculation 2016-10-19 19:51:31 -04:00
Ray Speth
f6df8f31b3 [TPX] Move function implementations out of Sub.h 2016-10-19 17:40:50 -04:00
BangShiuh
6d5e28ec46 [1D] Use c_offset_Y instead of literal value "4" 2016-10-19 17:40:04 -04:00
Ray Speth
478a62d2af [Thermo] Make tolerances used in state setters more consistent 2016-10-19 12:55:18 -04:00
Ray Speth
5b1a4a60bb [Thermo] Fix silent failures in HP/UV/SV/SP convergence
In cases where the specified state was non-physical (i.e. corresponded to a
negative temperature), the iteration would exit when the temperature reached a
small enough value. Computing the error in temperature relative to the current
temperature avoids this problem.

Fixes #264
2016-10-19 10:58:22 -04:00
Ray Speth
89d0c5601f [Python] Add CanteraError class for execptions
Anything that raises a CanteraError in C++ will now raise CanteraError in
Python, instead of the more generic RuntimeError.

This change increases the required Cython version to 0.23 or newer.
2016-10-18 22:58:14 -04:00
Ray Speth
940b7ea01f [Matlab] Always allocate string buffers of an appropriate size
Never use fixed size buffers which can force content to be truncated

Resolves #118.
2016-10-18 11:21:42 -04:00
Ray Speth
8a9eabeeac [clib] Add buffer length argument to all functions returning strings
If the buffer is not long enough, the string is truncated and the return value
is the required buffer length. Otherwise, the return value is 0.
2016-10-18 11:21:42 -04:00
Ray Speth
c16c15367f [Matlab] Fix ThermoPhase 'clear' method
This function was actually being directed into 'thermoget' and calling the
'newFromXML' method (on a non-existent XML tree) instead of calling the 'del'
method.
2016-10-18 11:21:42 -04:00
Ray Speth
5f0e20bf93 [clib] Rename some functions to increase consistency 2016-10-17 19:15:38 -04:00
Ray Speth
100d6db87b [clib] Combine "phase_" and "th_" prefixes as "thermo_" 2016-10-17 19:15:38 -04:00
Ray Speth
bdda7b5eaf [clib] Remove some redundant/unusable/unnecessary functions 2016-10-17 19:15:36 -04:00
Ray Speth
a8c6158543 [Matlab] Remove partial implementations of unneeded methods 2016-10-17 18:42:27 -04:00
Ray Speth
ad7a02d0e9 Add support for Sundials 2.7.0 2016-10-15 20:50:15 -04:00
Ray Speth
fd3f2c72fb [clib] Remove ctbdry.h which declared only undefined functions 2016-10-15 20:50:15 -04:00
Ray Speth
b51c1b8e4e [clib] Fix const-ness of clib function arguments 2016-10-15 20:50:15 -04:00
Ray Speth
40630a3ab4 Fix const-ness of some function arguments 2016-10-15 20:50:15 -04:00
g3bk47
83989824ea [1D] made Domain1D::grid(size_t) a const member function 2016-10-15 18:24:35 -04:00
g3bk47
e83b095c3a [Kinetics] added const version of Kinetics::reaction 2016-10-15 18:24:35 -04:00
Ray Speth
50d0f9913f [Test] Make reaction rate comparisons more granular 2016-10-15 13:36:38 -04:00
Ray Speth
e7ac87918d Update .gitignore 2016-10-15 11:44:52 -04:00
Ray Speth
ce502d5268 Fix Travis links in README.rst 2016-10-14 20:05:13 -04:00
Ray Speth
9f115c4526 [Doc] Add MSVC redistributable to installation instructions 2016-10-14 18:52:56 -04:00
Ray Speth
cb2876c33c [Doc] Add some information about compiling to the "simple" c++ example 2016-10-14 17:31:40 -04:00
Ray Speth
ac771aaac5 [Doc] Adjust example docstrings to get better automatic summaries 2016-10-14 17:20:18 -04:00
Ray Speth
0c1eb4cd89 [Doc] Include summaries of each example in index of Matlab examples 2016-10-14 17:06:45 -04:00
Ray Speth
994d7e9a53 [Doc] Adjust example docstrings to get better automatic summaries 2016-10-14 17:06:45 -04:00
Ray Speth
a35a0cb510 [Doc] Include summaries of each example in index of Python examples 2016-10-14 17:06:45 -04:00
Ray Speth
5af1dfd29c Add notices to documentation for classes with no tests or examples
See #267
2016-10-13 18:40:03 -04:00
Ray Speth
c8d3aa23d2 [Samples] Remove unused function 'writeCanteraHeader' 2016-10-13 18:40:03 -04:00
Ray Speth
e6bf450620 [Kinetics] Simplify logic in C_AnyN::multiply 2016-10-13 18:40:03 -04:00
Ray Speth
6ca9dc2cc3 [Kinetics] Remove unused m_finalized member variable 2016-10-13 18:40:03 -04:00
Ray Speth
0b5e209b40 [Kinetics] Remove unused private members of class Kinetics 2016-10-13 18:40:03 -04:00
Ray Speth
f17750e483 Make species names case-preserving instead of case-sensitive
This improves interoperability when working with mechanisms which use differing
conventions for naming species using uppercase or lowercase.
2016-10-13 18:40:03 -04:00
Ray Speth
deee889baf [clib] Make clib headers public 2016-10-13 18:40:03 -04:00
Ray Speth
5d7c8f393b [CTML] Remove unnecessary 'global' declarations 2016-10-13 18:40:03 -04:00
Ray Speth
ae6e7fdff7 Add license/copyright info to files that were missing it 2016-10-10 22:48:23 -04:00
Ray Speth
ecbfecd7fd Replace existing copyright notices with uniform copyright/license info 2016-10-10 22:19:01 -04:00
Ray Speth
822e03e938 Update copyright statement in License.txt 2016-10-10 21:20:53 -04:00
Ray Speth
a4be32474e Add institutional affiliations to AUTHORS 2016-10-10 21:18:54 -04:00
Ray Speth
cc0e19a7a7 Add header to AUTHORS and merge authors & contributors 2016-10-10 21:18:54 -04:00
Ray Speth
c0d007ab1d Fix Travis build on OS X
Installing SCons using pip has stopped working. Installing using Homebrew works
fine.
2016-10-10 00:32:48 -04:00
Ray Speth
9c368d57b3 [Cython] translate_exception should raise RuntimeError
This is more consistent with the behavior of Cython for other exception types,
where unknown types of std::exception are translated to Python RuntimeError
exceptions.
2016-10-09 17:58:44 -04:00
Bryan W. Weber
9bba45b01e Fix minor docs typo in Matlab enthalpy_mole 2016-10-04 11:34:04 -04:00
Ray Speth
8a86fed0ca [Python] Move composite classes out of Cython
This makes it easier to add more features to these composite classes without
increasing the size of the compiled Cython extension.
2016-09-19 18:57:19 -04:00
Ray Speth
e332fcbba2 [clib] Make clib actually usable as a C (not C++) interface
- Cannot include any C++ headers or use C++ types (e.g. 'bool')
- Functions arguments cannot have default values
- "extern C" needs to be wrapped by "#ifdef __cplusplus"
2016-09-19 18:48:40 -04:00
Ray Speth
09629e27ee Rewrite README.rst 2016-09-11 00:08:05 -04:00
Ray Speth
11f6c2f993 Consolidate duplicate species checks in Phase::addSpecies 2016-09-10 21:45:24 -04:00
Ray Speth
e49f843797 [Python] Prevent adding species to in-use Thermo objects 2016-09-09 22:50:17 -04:00
Ray Speth
178b452a49 [Transport] Automatically reinitialize after change in number of species
This makes it possible for GasTransport objects to work reasonably well with
ThermoPhase objects that have had species added to them. The main changes
required are to make the initialization functions idempotent.
2016-09-09 22:50:17 -04:00
Ray Speth
46b97beee7 [Transport] Restore temperature after fitting properties 2016-09-09 22:50:17 -04:00
Ray Speth
1660167bd7 Allow adding species / reactions from Python
This enables the base functionality, but does not protect against any erroneous
usage.
2016-09-09 22:50:17 -04:00
Ray Speth
85e2e9968b [Thermo] Deprecate RedlichKisterVPSSTP::Vint 2016-09-08 17:21:20 -04:00
Ray Speth
340c1bf60a Remove some unused variables 2016-09-08 17:21:20 -04:00
Ray Speth
dd7a374914 Add Appvyeor config file 2016-09-06 20:34:24 -04:00
David Sondak
6138a39faa Remove dummy element from elements.xml
Resolves #363
2016-08-30 20:31:31 -04:00
Ray Speth
abf71c4cb1 Allow non-positive atomic weights for custom elements 2016-08-30 20:28:35 -04:00
Ray Speth
f0cdb6df8c [Doc] Fix typo in custom element declaration 2016-08-30 14:46:37 -04:00
Ray Speth
fe747f34c0 [ck2cti] Provide better error message for reactions with missing data
For falloff / chemically activated reactions (with "(+M)" appearing in the
reaction equation), check that the alternate rate expression has been
provided. Previously, this would only generate an inscrutable error when
importing the XML file.
2016-08-29 23:34:04 -04:00
Ray Speth
bd53bbd742 [ck2cti] Clear current thermo entry after finding skipped species
This fixes error messages generated regarding bad thermo entries to exclude
preceding skipped (but valid) thermo entries.
2016-08-29 22:48:53 -04:00
Ray Speth
fdd1c06470 [Doc] Add directions for installing using conda 2016-08-28 23:39:14 -04:00
Ray Speth
0bd88927f5 [Equil] Fix ElemRearrange when unused elements are present
The solver could get stuck in an infinite loop when there were elements that
were not used in any species.
2016-08-17 21:15:34 -04:00
Bryan W. Weber
5435af2d9e
Fix configuration Fortran environment
SCons was using gfortran to build and ifort to link
when ifort was specified in cantera.conf. This ensures
the check function has the correct Fortran in the
environment to compile the test.
2016-08-15 21:40:24 -04:00
Bryan W. Weber
8ada40f0be
[Matlab] Add interface to setChemistry 2016-08-12 11:53:53 -04:00
Bryan W. Weber
0e835e4aa2
[Cython/Test] Add Python test for chemistry_enabled 2016-08-12 10:54:59 -04:00
Bryan W. Weber
108b42361f
[Cython] Add interface to new chemistry state methods 2016-08-12 10:54:58 -04:00
Bryan W. Weber
c344b4c0f8
Add methods Reactor::setChemistry and chemistryEnabled
These functions mirror the setEnergy and energyEnabled methods.
The enableChemistry and disableChemistry methods are deprecated.
2016-08-12 10:54:58 -04:00
Bryan W. Weber
fea1a36294
Rename minimal Python interface package
The name 'Cantera (minimal)' conflicts with PEP 503 because of the
parentheses.
2016-08-11 19:10:16 -04:00
Ray Speth
2b2f733bd9 Migrate Travis CI linux builds to container-based environment 2016-08-02 22:37:03 -04:00
Ray Speth
13c8ba6ed0 Update Travis CI config to also build on OS X 2016-08-02 22:36:15 -04:00
Ray Speth
ee7c4ed463 [Kinetics] Remove dead code from InterfaceKinetics 2016-07-30 23:49:38 -04:00
Ray Speth
4582e724ee Eliminate compiler warnings issued by Visual Studio 2015 2016-07-30 23:09:17 -04:00
Ray Speth
92ae2bdfba [Test] Remove unused diamondSurf_dupl test 2016-07-29 18:57:29 -04:00
Ray Speth
ac7a9bd238 Deprecate copy constructors for eventually-noncopyable objects
The following classes (and their children) will be non-copyable and
non-assignable after Cantera 2.3:
  - ThermoPhase
  - Kinetics
  - Transport
  - Species
  - SpeciesThermoInterpType
  - MultiSpeciesThermo
  - VPSSMgr
  - PDSS
  - ResidJacEval
  - RootFind
2016-07-29 18:57:29 -04:00
Ray Speth
64983aaf16 Remove some unnecessary copy constructors and assignment operators
The implicitly-defined copy constructors and assignment operators work fine for
these classes.
2016-07-29 18:39:45 -04:00
Ray Speth
fe15a4fe9c [Base] Make Application::Messages non-copyable 2016-07-29 15:05:52 -04:00
Ray Speth
e851e5e9d8 [Kinetics] Fix initialization of use_motz_wise_correction 2016-07-29 15:05:52 -04:00
Ray Speth
af3de9aa4d [Numerics] Fix BandMatrix assignment operator 2016-07-29 15:05:52 -04:00
Ray Speth
e70e5bf5be [SCons] Fix default Python module installation path on Debian/Ubuntu
If Cantera is being installed to /usr/local, then on Debian-based distros, we
want the Python module to end up in /usr/local/lib/pythonX.Y/dist-packages,
which is actually the default behavior. However, /usr/local/... is *not* the
default installation prefix for Python modules on some other distros (On Fedora,
at least, it's /usr/) so using the default needs to be conditioned on the actual
distro.
2016-07-29 14:52:42 -04:00
Ray Speth
dac5345b56 [Base] Move CANTERA_DATA environment variable up in search path
The paths added from the CANTERA_DATA environment variable should be searched
before hard-coded paths which are determined based on the installation location.
2016-07-29 11:30:56 -04:00
Ray Speth
f733fac104 [Kinetics] Deprecate InterfaceKinetics::checkPartialEquil 2016-07-28 22:38:05 -04:00
Ray Speth
a8bf1aa628 [Kinetics] Remove unused members of InterfaceKinetics 2016-07-28 22:38:05 -04:00
Ray Speth
7f121a9270 [Reactor] Use setCoveragesNoNorm when evaluating ReactorSurface 2016-07-28 22:38:05 -04:00
Ray Speth
e90dbcb27e Remove unnecessary reaction from ptcombust.cti
The current methods for handling negative species do not have the problem
described.
2016-07-28 22:38:05 -04:00
Ray Speth
fd9d60f1ec [ck2cti] Add support for MWON and MWOFF keywords 2016-07-28 18:40:10 -04:00
Ray Speth
1e5eb8c871 [Kinetics] Add option for Motz & Wise correction to sticking reactions 2016-07-28 18:38:40 -04:00
Ray Speth
593ab8a573 [Kinetics] Refactor handling of sticking reactions 2016-07-28 11:52:46 -04:00
Ray Speth
cc2725ca37 Bump version to 2.3.0a3 2016-07-27 19:00:02 -04:00
Santosh Shanbhogue
036eeb1678 [Python/Examples] Added option to plot results for premixed twin flame 2016-07-27 17:02:02 -04:00
Santosh Shanbhogue
1dc7071ba6 [Python/Examples] Updated premixed counterflow twin flame example
Corrected method of calculating strain-rate, and added functionality to compute
consumption speed
2016-07-27 17:02:02 -04:00
Ray Speth
791c9d1599 [Test] Relax tolerance on Polyfit.exact_fit test
Done to avoid spurious test failures on some platforms.
2016-07-25 16:13:59 -04:00
Ray Speth
5ec525d516 [Python/Test] Fix spurious test failures caused by assertAlmostEqual 2016-07-25 16:11:26 -04:00
Ray Speth
6b588c5140 [Python/1D] Fix default transport model selection
Broken in bd8a5d0, since the base Transport class no longer returns a false
value for the transport_model property.
2016-07-25 15:35:25 -04:00
Ray Speth
3b522dcfb0 [Python/1D] Print exception messages after failed auto-solve attempts
This helps with debugging cases where the solver fails, especially, if the
failures are not convergence-related and cannot be resolved by successive
attempts at solving the problem.
2016-07-25 15:33:07 -04:00
Ray Speth
feca44aa2d [SCons] Install to lib64 directory on operating systems that use this
Resolves #318.
2016-07-25 14:42:46 -04:00
Ray Speth
908e620325 [SCons] Generate versioned shared objects for cantera_shared.so
See #318.
2016-07-25 14:42:45 -04:00
Ray Speth
9b318f3c90 [SCons] Always link cantera_shared to its dependencies
This is not strictly required on Linux, but it doesn't hurt.

See #318.
2016-07-25 14:42:45 -04:00
Ray Speth
9a309ee410 [Equil] Deprecate some unused VCS-related functions 2016-07-22 13:51:29 -04:00
Ray Speth
ba3a0ee3e9 [Equil] Deprecate broken version of VCS phase stability check feature
Resolves #331.
2016-07-22 13:51:16 -04:00
Ray Speth
bc609ce2da [SCons] Fix Makefiles generated for C++ examples
- Use CXXFLAGS to pass flags to C++ compiler (not CCFLAGS)
- Set CXXFLAGS based on flags that Cantera was compiled with (which will include
  things like -pthread and -std=c++0x as necessary
- Remove incorrect / unused target for the target binary
- Add the generated binary to things remove by 'make clean'
2016-07-22 13:09:54 -04:00
Ray Speth
3261b4108a [SCons] Link Fortran sample programs to the correct standard library 2016-07-20 18:43:41 -04:00
Ray Speth
91161f0bc2 [SCons] Make check for Fortran compiler more robust
If we can compile and run an F90 program that is sufficient. The
previous test required the C compiler to be able to link to the
Fortran standard library, which isn't actually necessary, and would
fail in some cases (such as brew-installed gfortran on OS X).
2016-07-19 18:31:17 -04:00
Ray Speth
8ef4f6445f [SCons] Validate values of target_arch 2016-07-19 17:41:16 -04:00
Ray Speth
aa42aa5c81 [ck2cti] Add tests for surface mechanism conversion 2016-07-15 17:57:13 -04:00
Ray Speth
cff277d350 [ck2cti] Add support for sticking reactions 2016-07-15 17:57:13 -04:00
Ray Speth
ff3429faa9 [ck2cti] Support different units in different REACTIONS sections
This is helpful when combining gas and surface mechanisms which may be written
using different energy units.
2016-07-15 17:57:13 -04:00
Ray Speth
de9bb5b1c9 [ck2cti] Add support for surface coverage dependencies 2016-07-15 17:57:13 -04:00
Ray Speth
db90a7c0a1 [ck2cti] Support conversion of surface mechanism files 2016-07-14 22:19:33 -04:00
Ray Speth
bdb088da53 [SCons] Check for numpy before deciding to build the Python3 module 2016-07-13 17:11:34 -04:00
Ray Speth
e2d7e178b3 [SCons/Matlab] Link statically to libstdc++ on Linux
Matlab 2016a now uses some C++11 features, and symbols included in some of the
Matlab libraries conflict with the versions from system libraries that Cantera
is compiled with and expects to find, resulting in difficult-to-diagnose memory
errors.
2016-07-13 17:11:34 -04:00
Ray Speth
69f25b41dc [Matlab] Fix default threshold value when displaying phase info
At some point (after version 2014b), Matlab started passing an additional
argument to 'display', which broke the logic for setting the default
threshold. This caused all composition data to be excluded from the report shown
by typing the name of the phase object.
2016-07-13 17:11:34 -04:00
Ray Speth
00d254a1c2 [Python] Add function to write CSV file from SolutionArray 2016-07-13 17:11:34 -04:00
Ray Speth
faa4c36e1d [Python/Examples] Update examples to use new SolutionArray features 2016-07-09 19:15:07 -04:00
Ray Speth
8ffbbea93f [Python/Examples] Save correct system state after integration step 2016-07-09 19:15:07 -04:00
Ray Speth
b4f2f82fe3 [Python/Examples] Rename 'gri3' to more generic 'gas' 2016-07-09 19:15:07 -04:00
Ray Speth
001b7e91eb [Python] Add species slicing support to SolutionArray 2016-07-09 19:15:07 -04:00
Ray Speth
f2ac1f2347 [Python] Allow SolutionArray to carry 'extra' variables 2016-07-09 19:15:07 -04:00
Ray Speth
59e0f5a6d9 [Python/Examples] Update examples to use SolutionArray 2016-07-09 19:15:07 -04:00
Ray Speth
beb2056926 [Python/Test] Add tests for SolutionArray 2016-07-09 19:15:07 -04:00
Ray Speth
69bec844fd [Python] Fix setting composition using arrays with singleton dimensions 2016-07-09 19:15:07 -04:00
Ray Speth
deafbf8888 [Python] Allow setting SolutionArray using mass/mole fraction arrays 2016-07-09 19:15:07 -04:00
Ray Speth
00b104af50 [Python/Doc] Add documentation for class SolutionArray 2016-07-09 19:15:07 -04:00
Ray Speth
2d32a35eab [Python] Make SolutionArray compatible with InterfacePhase 2016-07-09 19:15:06 -04:00
Ray Speth
366ff043ff [Python] Make SolutionArray compatible with PureFluid 2016-07-09 19:15:06 -04:00
Ray Speth
5c23ea3b4c [Python] Implement SolutionArray.append 2016-07-09 19:15:06 -04:00
Ray Speth
b51b844fb4 [Python] Add more properties to SolutionArray
Add Kinetics and Transport properties, as well as pass-throughs for properties
and functions which are independent of the state.
2016-07-09 19:15:06 -04:00
Ray Speth
21a1be8e0a [Python] Add Solution.state to allow faster iteration over states 2016-07-09 19:15:06 -04:00
Ray Speth
78d275b2a2 [Python] Basic implementation of SolutionArray for thermo properties 2016-07-09 19:15:06 -04:00
Ray Speth
63ab59a586 [Doc] Remove references to CTI class for redlich_kwong 2016-07-08 00:15:54 -04:00
Ray Speth
0d7cc10f99 [Doc] Fix some Doxygen warnings 2016-07-07 23:37:03 -04:00
Ray Speth
bd8a5d0bc9 [Transport] Replace numerical constants for Transport types with strings 2016-07-07 22:52:25 -04:00
Ray Speth
45099255de Deprecate Factory pointer argument to "newFoo" convenience functions 2016-07-07 21:36:11 -04:00
Ray Speth
7f21aa0f45 [Kinetics] Replace numerical constants for Kinetics types with strings 2016-07-07 21:36:11 -04:00
Ray Speth
3b0cf9f832 [Thermo] Make SSVolume_Model_enumType local to class PDSS_SSVol 2016-07-07 21:36:11 -04:00
Ray Speth
0f71bbcec5 [Thermo] Replace numerical constants for ThermoPhase types with strings
Deprecate ThermoPhase::eosType and related methods
2016-07-07 21:36:11 -04:00
Ray Speth
0de6c01384 [Thermo] Deprecate numerical constants for PDSS types 2016-07-05 23:01:14 -04:00
Ray Speth
39c234ac4b [Thermo] Deprecate numerical constants for VPSSMgr types 2016-07-05 22:49:56 -04:00
Ray Speth
62524e8820 [Equil/Test] Fix failures involving use of global variables
Direct use of "global" variables defined in the shared library results in
inconsistent behavior.
2016-07-05 17:12:13 -04:00
Ray Speth
72d8bb014a [SCons] Fix license file generation when using system version of fmt 2016-07-05 15:11:33 -04:00
Ray Speth
97e84aaf9b [SCons] Fix auto-update of fmt submodule 2016-07-05 14:25:28 -04:00
Ray Speth
d4ddabc76c Use system-installed version of fmt library if available
Resolves #348.
2016-07-05 14:17:01 -04:00
Ray Speth
4e23793ebd Update fmt to version 3.0.0 and fix compatibility issues
Resolves #349.
2016-07-05 13:52:46 -04:00
Ray Speth
f985169e93 Introduce basic registration capabilities for factories 2016-07-04 16:01:31 -04:00
Ray Speth
64bb049647 [Numerics] Handle zero-size timestep in CVodesIntegrator::advance
This permits simpler integration loops starting from t=0
2016-07-04 16:01:31 -04:00
Ray Speth
7e4e4fd0d3 Remove unused input data files 2016-06-30 20:23:48 -04:00
Ray Speth
e12738a5c4 [CTI/Doc] Species and element names must be separated by spaces
Documentation claimed commas could be used as well, but this did not actually
work.

Resolves #341.
2016-06-29 18:13:41 -04:00
Ray Speth
b26b8c4bab [Doc] Correct documentation relating to species "size" 2016-06-29 16:36:47 -04:00
Ray Speth
b31e9a1bf1 Miscellaneous cleanup 2016-06-28 18:03:04 -04:00
Ray Speth
cd958a343b [1D] Make better use of local variables 2016-06-28 17:35:40 -04:00
Ray Speth
ce9a17fb76 [Reactor] Make better use of local variables 2016-06-28 16:58:51 -04:00
Ray Speth
4b8f8b692a [Reactor] Deprecate Wall-based method for adding surface chemistry
The new method using class ReactorSurface should be used instead.
2016-06-28 14:37:59 -04:00
Ray Speth
a7aec575a9 [Matlab] Make ReactorSurface available in Matlab 2016-06-28 14:37:59 -04:00
Ray Speth
c3b9a0c821 [Python] Make ReactorSurface available from Python 2016-06-28 14:16:18 -04:00
Ray Speth
3f766370b9 [Reactor] Add ReactorSurface to simplify use of surface reactions
This separates the handling of interactions between reactors (mediated by
Wall objects) and surfaces on which surface reactions occur (handled by
ReactorSurface). This simplifies the implementation within reactor, and
reduces the complexity of user code involving surface reactions by
eliminating the need to set up a Reservoir object for the opposite side
of a Wall object that is only being used for surface reactions.
2016-06-28 14:16:18 -04:00
Ray Speth
a8c6fe09d9 [Transport] Make better use of local variables 2016-06-27 17:11:00 -04:00
Ray Speth
fd4cbb8718 [Doc] Fix spelling errors 2016-06-27 14:30:49 -04:00
Ray Speth
b88e2cb00d [Matlab] Deprecate constants.m 2016-06-27 14:16:48 -04:00
Ray Speth
ffeef2240a [Matlab] Deprecate Domain1D::z (duplicate of Domain1D::gridPoints) 2016-06-27 14:11:19 -04:00
Ray Speth
668634c969 [Thermo] Deprecate classes tpx::leekesler and tpx::RedlichKwong
These are implementations of tpx::Substance which cannot actually be
instantiated from within the PureFluidPhase wrapper class.

The broken implementation of a CTML class for redlich_kwong is removed here.

A functional implementation of the Redlich-Kwong equation of state remains in
class RedlichKwongMFTP.

Resolves #263
2016-06-26 20:31:48 -04:00
Ray Speth
36cff8e368 [CTML] Fix docstring of class liquid_vapor
See Issue #263
2016-06-26 20:30:22 -04:00
Ray Speth
a338610934 [Thermo] Correct docstring for ThermoPhase::initThermoFile 2016-06-24 23:14:17 -04:00
Ray Speth
b0bf17dbc6 [Doc] Update compilation instructions
- Support for Python 3.1 has been dropped.
- Recommend pip instead of easy_install.
2016-06-24 17:57:26 -04:00
Ray Speth
5fbe2303ca [Python] Fix test suite to work with Python 3.2
The u'foo' syntax which can be used in Python 2.7 and 3.3+ does not work with
Python 3.2.
2016-06-24 17:15:14 -04:00
Ray Speth
c557fa84cd [SCons] Reformat libexecstream license and add to merged license file 2016-06-24 15:51:44 -04:00
Ray Speth
e71f22aba1 [SCons] Install license file with licenses for 3rd-party code 2016-06-24 15:27:20 -04:00
Ray Speth
e41a667dba Remove unused scripts from build system 2016-06-23 17:18:49 -04:00
Ray Speth
2c005759b7 [Thermo] Combine SpeciesThermo and GeneralSpeciesThermo
The new class is named MultiSpeciesThermo, so that (eventually) the name
SpeciesThermo can be used for the single-species class SpeciesThermoInterpType.

Currently, trivial wrappers for classes named SpeciesThermo and
GeneralSpeciesThermo to maintain backwards compatibiity for Cantera 2.3.
2016-06-23 17:00:15 -04:00
Ray Speth
3d6368b70a [Thermo] Deprecate unused SpeciesThermoInterpType methods
Deprecate modifyParameters and the default constructor for all classes
derived from SpeciesThermoInterpType.
2016-06-23 13:45:51 -04:00
Ray Speth
c64b714386 [Reactor] Add flow-device-specific methods for setting coefficients 2016-06-23 11:53:20 -04:00
Ray Speth
7d18120c4d [ck2cti] Allow elements/isotopes with custom atomic weights
Resolves #344
2016-06-22 20:22:58 -04:00
Ray Speth
b7e1a5f0bd [Transport] Use correct scaling factor when fitting conductivity
Fixes #345
2016-06-20 19:07:56 -04:00
Ray Speth
e100ef9a09 [Python] Fix exception handling when setting soret_enabled
The C++ exception is now correctly translated to a Python exception, instead of
causing the program to abort.
2016-05-31 18:55:07 -04:00
Ray Speth
bbb5eed396 Remove unnused code from 'ext' 2016-05-14 22:00:22 -04:00
Ray Speth
df43a474cd [SCons] Modify build system to exclude unused Fortran and f2c code
Cantera no longer requires BLAS / LAPACK (but can use them if available), so it
is never necessary to compile any of the external Fortran or f2c-converted code.
2016-05-14 22:00:22 -04:00
Ray Speth
efb068e319 [Numerics] Modify polyfit to use Eigen instead of fortran/f2c code 2016-05-14 22:00:22 -04:00
Ray Speth
230688d31d [Test] Add test of polyfit function 2016-05-14 22:00:22 -04:00
Ray Speth
799695f0de Disable SquareMatrix LAPACK operations when LAPACK is not available
Because SquareMatrix is unused within Cantera and deprecated, it is not
necessary to implement alternatives for these functions.
2016-05-14 22:00:22 -04:00
Ray Speth
01d3679664 [Numerics] Deprecate matrix-type argument to GeneralMatrix 2016-05-14 22:00:22 -04:00
Ray Speth
f260e858c0 [Numerics] Deprecate class SquareMatrix 2016-05-14 22:00:22 -04:00
Ray Speth
a7d854f3b9 [Equil] Eliminate direct calls to LAPACK functions 2016-05-14 21:59:27 -04:00
Ray Speth
961ca06cd5 Eliminate the use of SquareMatrix in favor of DenseMatrix 2016-05-14 21:59:27 -04:00
Ray Speth
b49c2e4c2d [Numerics] Use Eigen instead of internal LAPACK for DenseMatrix operations 2016-05-14 21:56:17 -04:00
Ray Speth
bf67cce25f [SCons] Make Eigen available to Cantera
Check for a system copy of Eigen, and if that is not found, install
Eigen's headers with the Cantera headers. Add the header 'eigen_dense.h'
to provide a single header to include from other locations.
2016-05-14 21:56:17 -04:00
Ray Speth
41a357aec0 Add Eigen submodule (mirrored on Github at Cantera/eigen-mirror) 2016-05-14 21:56:17 -04:00
Ray Speth
41ae065a6e Use Sundials to solve BandMatrix instead of using internal LAPACK 2016-05-14 21:56:17 -04:00
Ray Speth
efe43b389e [1D] Add callback hooks to make debugging 1D solver easier
This allows one to define functions in Python which will be called after each
successful time step or steady state solve, from which the state of the solver
can be inspected.
2016-05-14 17:24:16 -04:00
Ray Speth
11db445caf [Thermo/Doc] Explain why Phase::setMolecularWeight exists 2016-05-14 16:43:35 -04:00
Ray Speth
14b9454819 [C++] Clean up of top-level headers
These headers should only include general functionality, i.e. base classes and
factory methods. Users working directly with derived types can include the
relevant headers directly.

Deprecate some top-level headers which are not really useful.
2016-05-14 16:10:10 -04:00
Ray Speth
a2aade2419 [Doc] Add C++ example showing initializaton of Kinetics and Transport 2016-05-14 15:01:09 -04:00
Ray Speth
828cca3c42 [1D] Simplify initial conditions for twin flame 2016-05-14 13:45:27 -04:00
Ray Speth
ed72984361 [Test/1D] Add test for twin flame 2016-05-14 13:06:45 -04:00
Santosh Shanbhogue
f699748d0e [1D/Python] Add a Twin Premixed Counterflow Flame class and example
Resolves #340
2016-05-14 11:48:53 -04:00
Ray Speth
920ff1d897 [Kinetics] Make better use of local variables 2016-05-12 16:33:33 -04:00
Ray Speth
248874de83 [Doc] Add description of sticking reaction parameterization 2016-05-11 14:45:36 -04:00
Ray Speth
77e6f9c0d0 Deprecate Array2D::axpy 2016-05-10 22:21:28 -04:00
Ray Speth
fc33778451 Use correct value for gas constant
Even if it's just for part of an initial guess
2016-05-10 22:16:46 -04:00
Ray Speth
46684646ee [Thermo] DebyeHuckel::_nonpolarActCoeff is a static method
Definition now corresponds to documentation
2016-05-10 22:13:43 -04:00
Ray Speth
94be25ae97 Remove duplicate definitions of LTPerror and LTPmodelError 2016-05-10 22:10:49 -04:00
Ray Speth
812290dc37 [Thermo] Deprecate ThermoPhase::installSlavePhases
For the only class in which this is used (LatticeSolidPhase), all initialization
can be performed in the initThermo method.
2016-05-10 20:20:35 -04:00
Ray Speth
491816f706 [Thermo] Remove overload IdealSolidSolnPhase::logStandardConc 2016-05-10 18:33:41 -04:00
Ray Speth
8ff82c06ce [Reactor] Add componentName function to ReactorNet and Reactor classes 2016-05-09 22:42:45 -04:00
Ray Speth
3a129677df [Test/Reactor] Add test to calculate sensitivity of ignition delay
Compare result of calculating sensitivity by modifying Species object
with result using CVODES to integrate sensitivity equations
2016-05-09 13:24:54 -04:00
Ray Speth
cf13b318f4 [Reactor] Implement enthalpy of formation sensitivity analysis 2016-05-08 18:24:14 -04:00
Ray Speth
f081fa3f91 [Doc] Add NumPy import to Python tutorial 2016-05-05 10:16:13 -04:00
Ray Speth
4eea27b0a4 Update cppformat (now fmt)
Update to current master (pre-3.0), and change remote repository to reflect name
change from cppformat to fmt. Needed to be updated now because one of the
submodules referenced in the 1.1.0 release no longer exists due to the change in
the Github organization name from cppformat to fmtlib.
2016-05-03 15:03:52 -04:00
Ray Speth
2561ab82e3 [Equil] Check index bounds for known problems in VCS_SOLVE
See #187
2016-05-03 15:03:52 -04:00
Ray Speth
aa5f26bda6 [Thermo] Check dynamic_cast to PDSS_Water
Resolves #6
2016-05-03 15:03:52 -04:00
Ray Speth
ca2a330d5f [XML] Include file name in XML-related errors
Resolves #40
2016-05-03 15:03:51 -04:00
Ray Speth
26b937651b [XML] Improve error message generated by XML_NoChild 2016-05-03 15:03:51 -04:00
Ray Speth
6003af01a3 [XML] Add version of XML_Node::build that takes file name directly 2016-05-03 15:03:51 -04:00
Ray Speth
c7a1a57fbd [Reactor] Eliminate re-ordering of sensitivity parameters
Passing the full parameter vector to evalEqs for each reactor and wall
eliminates the need to re-order the parameter vector. Instead, each reactor and
wall just needs to know the indices of its sensitivity parameters, which are now
returned by ReactorNet::registerSensitivityReaction.
2016-05-01 20:35:34 -04:00
Ray Speth
e13faa1071 [Base] Fix vec2str to actually use provided format string 2016-04-30 16:47:55 -04:00
Ray Speth
0e2ea0964b [Thermo] Add function 'resetHf298'
Using this instead of modifyHf298 to reset the thermo data to its original
state avoids round-off errors that otherwise make modifications to the
species thermo data irreversible.
2016-04-30 16:43:37 -04:00
Ray Speth
0f669153fb [Thermo] Remove unnecessary overrides of modifyOneHf298SS 2016-04-30 16:43:37 -04:00
Ray Speth
92e9e08097 [Test] Show largest error component in assertArrayNear 2016-04-29 22:11:17 -04:00
Ray Speth
e454c51925 [Numerics] Show messages from std::exception in CVODES residual function 2016-04-28 22:01:26 -04:00
Ray Speth
cd77a94588 [Numerics] Fix memory leak in CVodesIntegrator
Memory allocated in CVodesIntegrator::sensInit was not being released.
2016-04-20 14:35:57 -04:00
Ray Speth
032bb9c363 [Reactor] Move sensitivity parameter vector into FuncEval
This eliminates the need for class FuncData, and makes it possible to
introduce sensitivity parameters which have a nominal values other than 1.0.
2016-04-19 16:08:52 -04:00
Ray Speth
51b0e46277 [Thermo] ThermoPhase::modifyOneHf298SS always invalidates cached data 2016-04-18 22:20:06 -04:00
Ray Speth
3566542c0b [Equil] Replace PropertyCalculator with simple lambdas 2016-04-18 20:29:02 -04:00
Ray Speth
f4ad150905 [1D] Sim1D::setProfile checks range of position array 2016-04-18 20:00:15 -04:00
Ray Speth
6a928b57f9 Replace getValue with std::map.at where possible
Deprecate the two-argument version of getValue, since the C++11 at method does
the same thing.
2016-04-18 19:34:40 -04:00
Ray Speth
6e3812a828 [Thermo] Remove unnecessary temporary work vectors 2016-04-18 17:52:08 -04:00
Ray Speth
9e9ae783f8 Don't use a vector where a scalar will suffice 2016-04-18 15:36:23 -04:00
Ray Speth
336271c395 [Doc] Clean up redundant "@return returns ..." 2016-04-18 14:58:15 -04:00
Ray Speth
a026c6ad8b [Thermo] Add compatibility check for phases added to MultiPhase
PureFluidPhase and WaterSSTP are not compatible with MultiPhase since they are
already multi-phase mixtures.

Resolves #306
2016-04-18 14:40:28 -04:00
Ray Speth
32b3543cbe [Thermo] Introduce Phase::compositionChanged
This function is called after any change in composition, and can be used by
phases to update quantities that are affected by the composition change, instead
of needing to overload all of the different functions which update the
composition.
2016-04-17 23:58:34 -04:00
Ray Speth
ac2361ee53 [Thermo] Deprecate IdealSolidSolnPhase::referenceConcentration 2016-04-17 22:49:28 -04:00
Ray Speth
994c9d1afb [CTML] Deprecate addInteger and CTML_Version 2016-04-16 23:55:51 -04:00
Ray Speth
56f49ef444 Miscellaneous jargon cleanup 2016-04-16 22:32:49 -04:00
Ray Speth
80fcc92129 [Thermo] Deprecated constructPhaseFile and constructPhaseXML methods
These methods were only defined for HMWSoln and IonsFromNeturalVPSSTP, and just
do the same thing as initThermoFile and importPhase (respectively).
2016-04-16 22:08:39 -04:00
Ray Speth
111b4909c9 [Thermo] Deprecate class SemiconductorPhase
Can't be constructed from ThermoFactory, and constructor from file is not
implemented. Also, the getChemPotentials method uses the m_work array, which is
never initialized because the private method initLengths() is never called.

See #267
2016-04-16 21:06:49 -04:00
Ray Speth
f583bd4530 [Doc] Convert HTML tags to Markdown in Doxygen docs 2016-04-16 20:58:38 -04:00
Ray Speth
aa3780b094 [Thermo] Reference source of formula used in WaterPropsIAPWS::psat_est 2016-04-16 17:44:09 -04:00
Ray Speth
af19481b65 [Doc] Remove some incorrect copy/pasted docstrings 2016-04-16 17:26:49 -04:00
Ray Speth
9c907af1b8 [Python] Add ThermoPhase.set_equivalence_ratio 2016-04-16 16:22:06 -04:00
Ray Speth
1ba5f6b879 [Kinetics] Allow adding species after reactions for homogeneous kinetics
This enables incremental mechanism construction for gas phase kinetics. For
surface kinetics, adding new species changes the kinetics species index of
existing species in other phases, so this feature is disabled.
2016-04-16 11:52:08 -04:00
Ray Speth
9c4a0baa55 [Thermo] Simplify adding species for most phase types
Where possible, extend arrays as species are added rather than requiring a
later call to initThermo(). For phases that do not require any data except
that which is included in the Species objects themselves (notably, this
includes IdealGasPhase), species can now be added dynamically without
affecting the phase state.
2016-04-15 20:56:24 -04:00
Ray Speth
7ee47585ae [Test] Fix compiler warnings in tests 2016-04-15 17:33:11 -04:00
Ray Speth
1f231d1dd0 [Kinetics] Eliminate need for 'finalize' method
All reaction-sized arrays are now allocated as reactions are added, which means
that the finalize() method is unnecessary and reactions can be continuously
added, even after the Kinetics object has been used for rate calculations.
2016-04-15 17:05:10 -04:00
Ray Speth
4428a62f3c [Thermo] Add ability to modify species data for existing Phase objects 2016-04-15 15:32:38 -04:00
Ray Speth
13fa0c7a4f Add invalidateCache() function to ThermoPhase and Kinetics
This can be used to invalidate cached data after a change to underlying data
such as species thermo coefficients or reaction rate coefficients. Needs to be
user-accessible so that dependent objects can be updated manually.
2016-04-15 15:32:38 -04:00
Ray Speth
eda9fc8f23 [Equil] Add vcs_VolPhase::eos_name; deprecate string16_EOSType 2016-04-15 15:31:23 -04:00
Ray Speth
5bf57795fc [Doc] Add slicing and dict-based compositions to Python tutorial 2016-04-15 13:00:48 -04:00
Ray Speth
fb346d85bc [Doc] Add detailed descriptions to classes ChebyshevRate and Plog
The descriptions are essentially taken from the CTI guide (reactions.rst)
2016-04-15 12:31:19 -04:00
Ray Speth
7124385292 [Test] Make deprecation warnings fatal in test suites
This ensures that deprecated methods aren't being called anywhere in the test
suite, without having to manually scan the test output for warning messages.
2016-04-15 12:04:08 -04:00
Ray Speth
9a848fbd0e [Equil] Deprecate unused internal VCS functions 2016-04-14 23:29:33 -04:00
Ray Speth
70824559ce [Test/Equil] Update tests to sometimes use VCS 'estimate_equil' option 2016-04-14 21:51:53 -04:00
Ray Speth
ef441e4182 [CTML] Deprecate getFloatDefaultUnits
This function is unnecessarily complicated and rarely needed.
2016-04-14 19:41:44 -04:00
Ray Speth
a288d5c6f7 [1D] Make Jacobian atol independent of compiler optimizations
If compiling with -funsafe-math-optimizations, this method of attempting to
calculate the floating point epsilon value would fail.
2016-04-14 19:00:00 -04:00
Ray Speth
f2b68d8c34 [Examples] General cleanup of C++ flamespeed example 2016-04-14 15:31:50 -04:00
Ray Speth
b50ef03838 [Examples] Update C++ flamespeed to use current best-practices
Wider, uniform initial grid; initial profiles with zero-gradient section
on both ends of the domain; skip initial fixed-temperature solve.
2016-04-14 15:31:49 -04:00
Ray Speth
c0c9a4ef31 [Test] Add more tests of DenseMatrix 2016-04-13 21:11:05 -04:00
Ray Speth
7af1b4b60f [Numerics] Fix invalid memory access in DenseMatrix increment
This method now works for rectangular matrices
2016-04-13 21:11:05 -04:00
Ray Speth
bd24aeb926 [Numerics] Fix DenseMatrix::mult to work for rectangular matrices 2016-04-13 21:11:05 -04:00
Ray Speth
b94e272291 [Numerics] Fix invalid memory access in DenseMatrix::mult
Results were incorrect for rectangular matrices
2016-04-13 21:11:04 -04:00
Ray Speth
155105c916 Update .gitignore 2016-04-13 21:11:04 -04:00
Ray Speth
9ed23a57ab Move non-trivial functions out of header files 2016-04-08 19:13:09 -04:00
Ray Speth
9e5362a762 [ck2cti] Add support for Chemkin-style extended elemental composition
Support for elemental composition written on additional lines indicated by
Fortran line-continuation character ('&').
2016-04-08 16:27:32 -04:00
Ray Speth
d1a58e1b25 [Equil] Fix formatting of some VCS debug output
The lack of space between adjacent fields would cause test failures when
comparing output files when using some versions of MinGW (due to 3-digit
exponents).
2016-04-08 16:27:27 -04:00
Ray Speth
1a64a230b1 [Test] Add test of VCS equilibrium solver with higher loglevel
This improves the overall coverage of the test suite, since otherwise much
of the logging code in the VCS solver is not executed.
2016-04-08 15:40:22 -04:00
Ray Speth
919045e88c [Test] Remove unnecessary files from cxx_ex 2016-04-07 23:22:47 -04:00
Ray Speth
b7f9f230a7 [Equil] Replace (vcs_)print_stringTrunc with usage of cppformat 2016-04-06 23:08:37 -04:00
Ray Speth
ec38f58e73 [SCons] Install data file for LiC6 electrode example 2016-04-06 22:24:26 -04:00
Ray Speth
8b62a59403 [SCons] Generate SConstruct and Makefile for LiC6 electrode example 2016-04-06 22:16:48 -04:00
Ray Speth
0a3927a077 [SCons] SConstruct for C++ demos inherits compiler and options
Use the same values for the compiler name and the compiler flags as were used
when compiling Cantera.
2016-04-06 22:07:51 -04:00
Ray Speth
ee1b07ac6b Fix some compiler warnings regarding unused variables 2016-04-05 12:52:01 -04:00
Ray Speth
511a39fc73 [Equil] Standardize VCS solver to always use MKS units 2016-04-05 12:52:01 -04:00
Ray Speth
a60217cfc6 [Equil] Make better use of local variables 2016-04-05 12:52:01 -04:00
Ray Speth
60eed786fa [SCons] Fix fallback behavior with explicitly-specifed Fortran compiler
If the user has explicitly specified a Fortran compiler, we shouldn't fall back
to using a different one if the specified one cannot be found.
2016-04-05 12:52:01 -04:00
Ray Speth
4799d19b39 [Doc] Drop references to the "legacy" vs "new" Python modules 2016-04-02 22:13:42 -04:00
Ray Speth
6d91b44ed6 [SCons] Fix setting of prefix when building Debian packages
'prefix' shouldn't be changed after it's used, but should be set by the
debian/rules script
2016-04-01 16:25:58 -04:00
Ray Speth
31c66378c6 [SCons] Fix Cantera.mak when blas_lapack_dir is empty
Previously, if no library directory needed to be specified for BLAS/LAPACK, the
link line would end up containing '-L -llapack -lblas' which is interpreted as
adding the directory '-llapack' to the linker search path.
2016-04-01 15:48:12 -04:00
Ray Speth
05198ddcfb Fix get_modified_time to avoid race condition on Windows
If multiple processes tried to read the same input file simultaneously,
get_modified_time would fail. With this change, get_modified_time
does not need to actually open the file in order to read the metadata.
2016-03-30 20:35:15 -04:00
Ray Speth
2bfbd73a12 [Python] Add Reaction.__contains__ method 2016-03-28 18:03:02 -04:00
Ray Speth
4c5301d6cd [1D] Initialize number-of-steps counter at start of solve
Fixes the enforcement of the maximum number of steps constraint if solve() is
called again after an exception.
2016-03-28 17:13:24 -04:00
Ray Speth
233399f899 [ck2cti] Fix conversion of NASA9 thermo with only one temperature range 2016-03-28 12:48:10 -04:00
Ray Speth
2e3726fe5f [Thermo] Mark overrides of ThermoPhase methods as virtual consistently 2016-03-28 00:01:39 -04:00
Ray Speth
bec0c88e32 [Thermo] Remove unnecessary overloads of getElectrochemPotentials 2016-03-27 23:18:26 -04:00
Ray Speth
881fcbaf6f Improve use of local variables in src/numerics 2016-03-27 22:52:49 -04:00
Ray Speth
0995725a13 [1D] Deprecate unused methods of Domain1D 2016-03-27 22:19:38 -04:00
Ray Speth
1aa28f9310 Let the constructor for std::string do its job 2016-03-27 22:19:38 -04:00
Ray Speth
9c632cf123 [1D] Remove unused / unimplemented methods from StFlow 2016-03-27 22:19:37 -04:00
Ray Speth
d52a0fdbcb [1D] Eliminate redundant parts of StFlow::showSolution 2016-03-27 21:19:45 -04:00
Ray Speth
2e56f6dee3 [SCons] Allow compiler options which contain commas
Compiler options such as '-Wl,-z,rlero' were incorrectly being split into
multiple options by SCons. Compiler options must now be separated by spaces when
specified on the SCons command line.

Fixes #320
2016-03-27 20:21:56 -04:00
Ray Speth
92ccda85fc [1D/Examples] Use 'auto' to simplify 1D examples 2016-03-27 17:07:37 -04:00
Ray Speth
2315da5230 [1D/Test] Add more tests for counterflow premixed flames 2016-03-27 17:07:37 -04:00
Ray Speth
dfb4d62e12 [1D/Test] Add test for ImpingingJet and ReactingSurface1D 2016-03-27 17:07:37 -04:00
Ray Speth
3e371c8093 [1D] Add tests for burner stabilized flames 2016-03-27 17:07:37 -04:00
Ray Speth
522d263979 [1D/Test] Test diffusion flames where non-extinct solutions are expected
Several of the tested sets of parameters are ones where the solver would
previously only find the non-reacting solution.
2016-03-27 17:07:36 -04:00
Ray Speth
1730036976 [1D/Test] Add more cases to test FreeFlame for basic convergence
The additional test cases are selected from conditions under which the solver
would previously fail
2016-03-27 17:07:36 -04:00
Ray Speth
77c744204e [1D] Try harder to find non-extinct diffusion flames when using 'auto'
Increasing the density of grid points is more likely to lead to a non-extinct
solution, but takes longer to solve. To give good average-case performance,
first try solving on a grid with few points, then increase the number of points
until a reacting solution is found, if possible.
2016-03-27 17:07:36 -04:00
Ray Speth
b56094b183 [1D/Examples] eliminate unnecessary setting of tolerances
For most problems, these new default tolerances for both time stepping and
steady state solves are more likely to converge than tighter tolerances, but
still give well-resolved results. Tighter tolerances are required in some cases,
e.g. when evaluating sensitivity coefficients by finite difference.
2016-03-27 17:07:36 -04:00
Ray Speth
059e657fe4 [1D/Examples] Use new default values for Jacobian and time stepping settings
These values were selected for optimal performance across a large set of flames
in each configuration and using mechanisms of various sizes to give good average
performance. It should not generally be necessary for users to change these
values.
2016-03-27 17:07:36 -04:00
Ray Speth
6c466f65fa [1D] Use better guess for CounterflowDiffusionFlame initial position
The new formula is based on a set of test flames where the density ratio of the
fuel and oxidizer streams was varied by changing temperature and fuel
composition and the flame position was calculated as the centroid of the H2O
mass fraction profile.
2016-03-27 17:07:36 -04:00
Ray Speth
5e35ca5486 [1D] Allow replacing flow domain grid after creating Sim1D
This makes it possible to try solving on a different grid if the initial
solution attempt fails without needing to recreate the Sim1D object.
2016-03-27 17:07:36 -04:00
Ray Speth
77e3775c08 [1D] Provide reasonable initial grid for ImpingingJet 2016-03-27 17:07:36 -04:00
Ray Speth
9353a79da2 [1D] Switch to "steady mode" before attempting steady-state solve
The solver could previously get left in transient mode if an exception occurred
during time stepping, making it impossible to make a new attempt at solving the
steady-state problem.
2016-03-27 17:07:36 -04:00
Ray Speth
85c3bf5ba6 [1D] Improve initial guess for FreeFlame velocity profile
If mdot is not specified, use the estimated mdot value when providing
the initial guess for the velocity.
2016-03-27 17:07:36 -04:00
Ray Speth
d2793c07a1 [1D/Python] Introduce 'auto' option to Sim1D.solve
Specifying this option allows the user to automatically execute the efficient
sequence of solving on the initial grid, enabling the energy equation, refining,
tightening tolerances, and enabling multicomponent transport in a single call to
Sim1D.solve.
2016-03-27 17:07:36 -04:00
Ray Speth
7d14677db2 [1D] Add tests for setting and getting tolerances 2016-03-27 17:07:36 -04:00
Ray Speth
f13e2715bb [1D] Add accessor functions for steady and relative tolerances
The existing functions for getting tolerances are difficult to use because
they return the tolerances based on the steady/unsteady mode of the solver
which the user shouldn't have to care about (and can't easily set).
2016-03-27 17:07:36 -04:00
Ray Speth
809223f670 [1D/Python] Fix range of components used when settings species tolerances
Boundaries do not necessarily have species variables, so setting species
tolerances will now raise an exception. This approach also avoids making
the assumption that the index of the first species equation is 4 in flow
domains.
2016-03-27 17:07:36 -04:00
Ray Speth
80b8cd7e2b [1D] Remove Bdry1D::m_nv which shadowed Domain1D::m_nv 2016-03-27 17:07:36 -04:00
Ray Speth
c799edff90 [Python/1D] Fix error in setting tolerances for specific components
Keyword arguments other than 'default' and 'Y' could not previously be
specified.
2016-03-27 17:07:36 -04:00
Ray Speth
9f3821db82 [1D] Use most prevalent species to impose sum-of-mass-fractions constraint
Previously, the first species was always used, which could cause problems with
negative mass fractions in cases where the first species has a mass fraction
near zero.
2016-03-27 17:07:36 -04:00
Ray Speth
011a64aaa2 [Cython] Add wrapper for SurfPhase::setCoveragesNoNorm 2016-03-27 17:07:36 -04:00
Ray Speth
b99ba44f13 Fix SurfPhase::setCoveragesNoNorm to retain negative coverages
This prevents Jacobian singularities due to (trivial) negative coverages,
e.g. in ReactingSurf1D.
2016-03-27 17:07:36 -04:00
Ray Speth
af5bbf74a4 [1D] Improve Jacobian evaluation for ReactingSurf1D
Don't normalize coverages when evaluating the residual normally -- only as part
of recovering from a failed timestep, like what is done in StFlow.
2016-03-27 17:07:36 -04:00
Ray Speth
8e81292558 [1D] Provide reasonable default grid for CounterflowDiffusionFlame 2016-03-27 17:07:36 -04:00
Ray Speth
87a8419380 [1D] Provide reasonable initial grid for BurnerFlame 2016-03-27 17:07:36 -04:00
Ray Speth
1f3e8dd0d7 [1D] Raise exception if previous solution does not exist 2016-03-27 17:07:36 -04:00
Ray Speth
7ba668109e [1D] Increase default value for maximum timestep
This accelerates convergence of the solver in some cases.
2016-03-27 17:07:36 -04:00
Ray Speth
81074b2b4a [1D] Add function for restoring last successful steady-state solution 2016-03-27 17:07:36 -04:00
Ray Speth
29b704916c [1D] Set limit on number of timesteps without reaching steady state 2016-03-27 17:07:36 -04:00
Ray Speth
532e132788 [1D] Add accessors for solver statistics
Previously, this information was only available in the text output of the
'showStats' function.
2016-03-27 17:07:35 -04:00
Ray Speth
11b665b00a [1D] Keep track of number of time steps taken before each steady-state solve 2016-03-27 17:07:35 -04:00
Ray Speth
2d82c78c37 [1D] Retain negative species when retrieving solution state
This can be useful when debugging issues with the 1D solver.
2016-03-27 17:07:35 -04:00
Ray Speth
318fa04cf7 [1D] Reset negative species concentrations after a failed time step 2016-03-27 17:07:35 -04:00
Ray Speth
22537b9493 [1D] Use fixed point temperature closer to unburned gas temperature
This improves convergence in cases where the domain is too short to achieve full
oxidation and the maximum temperature within the domain is significantly lower
than the flame temperature computed from equilibrium.
2016-03-25 12:21:19 -04:00
Ray Speth
5a08cf043f [1D] Make FreeFlame mdot guess pressure dependent
This gives a better guess for both high and low pressure flames, since velocity
is roughly constant while mass flux can vary by orders of magnitude.
2016-03-25 12:21:19 -04:00
Ray Speth
832ee88692 [1D] Add ability to access last successful timestepped solution
This can be helpful when debugging 1D solver failures.
2016-03-25 12:21:19 -04:00
Ray Speth
5a576a7c75 [1D] Tighten default negative species bounds 2016-03-25 12:21:19 -04:00
Ray Speth
011c9cb6c3 [1D] Improve finite-difference Jacobian
Preserve the sign of elements of the solution vector when perturbing them in
order to avoid triggering discontinuous behavior as the cross zero (which is
caused by the way rate evaluation is handled for negative species
concentrations).
2016-03-25 12:21:19 -04:00
Ray Speth
d76704912b [1D] Fix transient mask after Jacobian update
The transient mask should only be zeroed when doing a full evaluation of the
residual function, since the partial evaluations done while evaluating the
Jacobian will not fill in all elements of the mask. This error was causing
Jacobian update in MultiNewton::solve to always effectively generate the
steady-state Jacobian, even when in time-stepping mode.
2016-03-25 12:21:19 -04:00
Ray Speth
73246130fa [1D] Fix docstrings for OneDim::eval and StFlow::eval 2016-03-25 12:21:19 -04:00
Ray Speth
d20ab891e8 [1D] add function for getting info about a solution component 2016-03-25 12:21:19 -04:00
Ray Speth
39a6819bf3 [1D] Only reset Jacobian age after successful *steady-state* solve 2016-03-25 12:21:19 -04:00
Ray Speth
f0a1e25cd9 [1D] Better initial grid for CounterflowPremixedFlame 2016-03-25 12:21:19 -04:00
Ray Speth
a9293c3168 [1D] Use nonzero initial guess for FreeFlame mass flow rate
This helps avoids timestepping errors in the first timestep
2016-03-25 12:21:19 -04:00
Ray Speth
de8348ecb2 [1D] Use a better default initial grid for FreeFlame
This initial grid is designed to work well with how the initial profile and
temperature fixed point are set. The only parameter that needs to be
user-specified is the width of the domain.
2016-03-25 12:21:19 -04:00
Ray Speth
7484827f2b [1D] Modify fixed temperature selection to keep grid more uniform
The previous method for setting the fixed temperature point could add a point
very close to an existing grid point, which could then make convergence on the
initial grid difficult.
2016-03-25 12:21:19 -04:00
Ray Speth
ac246a2f97 [Doc] Argument for Falloff parameters is 'params' not 'coeffs'
Resolves #327
2016-03-23 11:52:04 -04:00
Ray Speth
60efb22b87 [Kinetics] Always initialize FalloffReaction.falloff
Fixes #326
2016-03-23 11:42:32 -04:00
imitrichev
a175c72f2c Add compilation guidelines for Fedora, and other notes
Other notes include packages required for python3 module and packages
required to use prebuilt system blas and lapack.
Cantera installation was tested to be successful on Fedora 20 and Fedora 22.

Resolves #324
2016-03-06 19:19:29 -05:00
imitrichev
8b3557ee4d Clarified surface coverage modification equation
Now it is shown it is identical to equation from Sphinx cti
module docs (eq. also used in Surface CHEMKIN)

Resolves #322
2016-03-06 19:11:16 -05:00
imitrichev
a68cdecd94 [Test] Add test for specifying non-reactant orders in CTI files 2016-02-27 14:14:51 -05:00
imitrichev
7e71645efb [CTI/CTML] Add 'nonreactant_orders' option to allow non-reactant orders
The flag 'allow_nonreactant_orders' in class Reaction is set to 'true' when
using this option in cti/ctml.

Resolves #317
Resolves #321
2016-02-27 14:10:35 -05:00
Ray Speth
f0e6d090dc [Fortran] Fix for multiple definitions of '_xml' function
This was causing linker errors when trying to link with the Fortran library.
2016-02-24 18:59:23 -05:00
pwcnorthrop
1183479f88 Add RedlichKister tests and sample case for LiC6 electrode
See #293
2016-02-17 23:34:36 -05:00
pwcnorthrop
125d2e0e23 Add RedlichKisterVPSSTP::s_update_dlnActCoeff_dlnX_diag()
Fixes bug in RedlichKisterVPSSTP::getlnActCoeffdlnX_diag() which would always return 0

Resolves #293
2016-02-17 23:34:36 -05:00
Bryan W. Weber
db769a47c7 Bump in-progress version to 2.3.0a2 2016-02-06 07:44:10 -05:00
Bryan W. Weber
5b483a8c22 The cantera_version should not be an option 2016-02-06 07:44:10 -05:00
Bryan W. Weber
58551b4813 [Doc] Cantera supports Python 3.5 2016-02-06 07:44:09 -05:00
Bryan W. Weber
848650f4fb [Doc] Fix copyright year 2016-02-06 07:44:09 -05:00
Ray Speth
b55c8fe813 Replace overly-specific exception types with CanteraError
Deprecate exception types which are now unused.
2016-02-04 19:34:26 -05:00
Ray Speth
f44b5fed57 Replace usage of int2str with cppformat and deprecate int2str 2016-02-04 19:11:49 -05:00
Ray Speth
f91afda8cb Replace usage of fp2str with cppformat and deprecate fp2str 2016-02-04 19:11:45 -05:00
Ray Speth
b0230fb146 Modify BandMatrix to avoid unnecessary casts from size_t to int 2016-02-04 14:45:36 -05:00
Ray Speth
9a8d24463d [Test] Add tests for class BandMatrix 2016-02-04 14:45:36 -05:00
Ray Speth
4c58f11dd8 Improve use of local variables in src/base 2016-02-04 14:45:36 -05:00
Ray Speth
484da253da Use cppformat instead of stringstream in some places 2016-02-04 14:45:21 -05:00
Ray Speth
785b829b5d [Doc] Update SCons installation instructions
- 64-bit Windows installers are now available.
- Download URL has changed.
2016-02-03 19:57:06 -05:00
Ray Speth
84ede11e6a Remove unimplemented method SimpleTransport::updateViscosities_C 2016-02-02 23:14:35 -05:00
Ray Speth
51e0c9158a [Python/1D] Generalize initial profile generation for diffusion flames
The calculation of the stoichiometric mixture composition now works for
arbitrary fuel and oxidizer mixtures, including multi-component fuels and fuels
containing oxygen. In addition, it is not necessary to specify any additional
arguments when generating the initial profile.
2016-02-02 15:03:11 -05:00
Ray Speth
28156cc511 [Doc] Use proper memory management in C++ examples 2016-02-01 19:23:44 -05:00
Ray Speth
a374d8b0fe [Doc] Fix formatting in C++ guide 2016-02-01 15:23:23 -05:00
Ray Speth
98d1bacd01 [Doc] Update versions of Python and Ubuntu with prebuilt binaries 2016-02-01 14:49:16 -05:00
Ray Speth
89dc89823b [Doc] Current Windows Python installers already include pip 2016-02-01 14:47:44 -05:00
Ray Speth
e07b7b22dc [1D] Make diffusion flame profile generation work with lowercase 'o2' 2016-01-29 18:19:13 -05:00
Ray Speth
4379a076ab [Python] Print values which cause exceptions in the error message 2016-01-29 16:36:54 -05:00
Ivan Mitrichev
c3d154fd72 [ctml] fix molecular geometry (nonlin -> nonlinear)
Fix list of allowed values. Remove incorrect default value.

Resolves #316.
2016-01-29 16:30:40 -05:00
Ray Speth
8b64b6f4f7 [Matlab] Fix printing of error messages 2016-01-29 15:38:13 -05:00
Bryan W. Weber
97697e09e1 Overwritten -> Overridden 2016-01-25 13:14:50 -05:00
Bryan W. Weber
02f0e273d9 Add a note about the state setters to PureFluidPhase 2016-01-25 13:14:50 -05:00
Bryan W. Weber
bff8d10609 [Matlab] Add interface to the new PureFluid property pairs 2016-01-25 13:14:50 -05:00
Bryan W. Weber
c1f287d648 [C API] Add interface to the new PureFluid property pairs 2016-01-25 13:14:50 -05:00
Bryan W. Weber
71e2101cdf [Test] Add tests for new PureFluid property pairs 2016-01-25 13:14:50 -05:00
Bryan W. Weber
4220692d0d Whitespace fixup in test_purefluid.py 2016-01-25 13:14:50 -05:00
Bryan W. Weber
49cb039536 [Cython] Add interface for new PureFluid property pairs 2016-01-25 13:07:34 -05:00
Bryan W. Weber
af81729504 [Cython] Add units to PureFluid property docstrings 2016-01-25 13:07:34 -05:00
Bryan W. Weber
50a97063b7 Reduce relative tolerance of state setter in Substance
Reduce the relative tolerance from 3.e-8 to 1.e-8.
2016-01-25 13:07:34 -05:00
Bryan W. Weber
63cfed1503 Add functions to set property pairs specified in Sub.cpp
Add functions to set the unimplemented property pairs specified
in the Substance::Set function of Sub.cpp
2016-01-25 13:07:34 -05:00
Bryan W. Weber
31316b7079 Switch PureFluidPhase to use double instead of doublereal 2016-01-25 13:07:34 -05:00
Bryan W. Weber
9970b4bcc5 Fix typo in ThermoPhase.h 2016-01-25 13:07:34 -05:00
Bryan W. Weber
28e8fa1d2d Whitespace fixup in comments in ThermoPhase.h 2016-01-25 13:07:34 -05:00
Ray Speth
efd6d232c7 [Cython] Fix conversion of element-related strings to Python strings 2016-01-24 23:27:39 -05:00
Bryan W. Weber
c72f1b607a [Test] Add test for elements with multiple matches depending on old string splitting method 2016-01-22 18:18:43 -05:00
Bryan W. Weber
f95f118515 Make the name of an element in Python always lowercase 2016-01-22 18:18:43 -05:00
Ray Speth
9276f56008 Use full string (minus white space) when matching element names/symbols
Also make check for element names case-insensitive.
2016-01-22 18:18:43 -05:00
Bryan W. Weber
9577409516 [Doc] Add documentation for new Element class and functions 2016-01-22 18:18:43 -05:00
Bryan W. Weber
b351c624da [Test] Add tests for new Element class and functions 2016-01-22 18:18:43 -05:00
Bryan W. Weber
ba8c906cd8 [Cython] Add interface to new Element information functions 2016-01-22 18:18:43 -05:00
Bryan W. Weber
c324386fb2 Add functions to get more information about elements.
Add functions to get the atomic number, name, symbol, and weight
of elements looked up by the atomic number, name, or symbol.
2016-01-22 18:18:43 -05:00
Bryan W. Weber
f3bc7a5d5b Replace LookupWtElements with getElementWeight function
Deprecate LookupWtElements. Also split the atomic weights
database into one for named elements and for named isotopes.
2016-01-22 18:18:42 -05:00
Bryan W. Weber
af48524593 [Doc] Fix missing file after rename in Matlab docs 2016-01-22 17:37:41 -05:00
Bryan W. Weber
82d4b50bef [Doc] Fix warnings in Sphinx/Matlab docs 2015-12-27 16:50:18 -05:00
Bryan W. Weber
ee9d5750a3 [Matlab] Add missing PureFluid constructors for fluids defined in liquidvapor.xml 2015-12-26 14:54:37 -05:00
Bryan W. Weber
cf49649dd8 [Matlab] Move lowercase air.m to uppercase Air.m to be consistent with the other PureFluid functions 2015-12-26 14:49:47 -05:00
Bryan W. Weber
9977fd6f49 [Matlab] Switch PureFluids to use liquidvapor xml file 2015-12-26 14:45:56 -05:00
Ray Speth
0703770638 [Python] Regularly flush stdout when printing from C++
This prevents excessive output buffering when output is being redirected and the
only source of printing is Cantera's c++ functions, e.g. when running the 1D
solver.
2015-12-15 11:41:54 -05:00
Ray Speth
1c09f7f14b [Thermo] Make continuity check for enthalpy dimensionally consistent
All quantities here are nondimensional, so taking h+cp*T makes no sense, and
caused the test to pass even for suspicously discontinuous thermo data (although
the bad data would generally get flagged by the tests for cp and/or s).
2015-12-15 11:41:54 -05:00
Ray Speth
4887775109 Eliminate unnecessary counter member variables 2015-12-01 15:54:55 -05:00
Ray Speth
2dfa43ffa7 Fix indexing error in ImplicitSurfChem::eval
This method was not working in the case where there was more than one surface
phase, since 'loc' was always set to zero.
2015-11-24 13:31:45 -05:00
Ray Speth
a75a8f2c82 [Test] Move testIAPWSPres into the gtest suite 2015-11-24 10:59:15 -05:00
Ray Speth
61a457121a [Test] Move testIAPWSTripP into the gtest suite 2015-11-24 10:59:14 -05:00
Ray Speth
1cc0d42988 [Test] Move tests for WaterPropsIAPWSphi to gtest suite
Remove test-related functions from the implementation.
2015-11-24 10:59:14 -05:00
Ray Speth
7562d79bad Remove unnecessary calls to ostream.close() 2015-11-23 18:06:54 -05:00
Trevor Hickey
b751087859 Removes uneeded .close() calls
These calls are not needed. ofstream's destructor will close the file.

Resolves #298.
2015-11-23 18:03:01 -05:00
Ray Speth
59f8fbc09d [Test] Relax tolerances on SOFC regression test
Test was failing with MinGW
2015-11-23 16:53:20 -05:00
Ray Speth
4e551f69ab Remove old version of CVODE
We now use the current version from the Sundials git submodule
2015-11-23 16:53:20 -05:00
Ray Speth
b4a1fb2db1 [SCons/Numerics] Use ext/sundials if system Sundials not installed 2015-11-23 16:53:20 -05:00
Ray Speth
34e38ab007 Add submodule for Sundials 2015-11-23 16:28:15 -05:00
Ray Speth
bab07860e3 [Transport] Fix segfault when species transport data is missing
Resolves #312.
2015-11-23 10:56:02 -05:00
Ray Speth
a7db9a7411 Fix LD_LIBRARY_PATH order when running tests
build/lib needs to be first in case LD_LIBRARY_PATH contains another Cantera
installation.

Resolves #310.
2015-11-22 17:04:05 -05:00
Bryan W. Weber
10981277ae [Doc] Add link to Working with Input Files section 2015-11-19 08:02:07 -05:00
Bryan W. Weber
61736bd2ef [Doc] Update docs for ck2cti
Update documentation to give short tutorial and reflect most recent
version. Add notes for common errors encountered. Remove old ck2cti
docs from Matlab and Cython interface documentation, prefering
cti/input-files.rst. Resolves #295.
2015-11-18 18:09:12 -05:00
Bryan W. Weber
ee14246b12 [Doc] Put physical constant units into consistent form 2015-11-18 18:09:12 -05:00
Ray Speth
4977b2773f [SCons] Fix documentation of 'optimize' option 2015-11-18 12:59:16 -05:00
Ray Speth
6885edb8f8 Remove checks for NO_FTN_STRING_LEN_AT_END
This variable is never defined (and would not work correctly even if it were).
2015-11-18 11:56:40 -05:00
Ray Speth
e58bd09859 Eliminate debug_verbose option and DEBUG_MODE macro
Vebose printing can always be enabled at runtime by setting flags on various
classes.
2015-11-18 11:02:30 -05:00
Ray Speth
ee95c60813 Simplify error handling to eliminate need for global error stack
All of the functions for manipulating the global error stack
(CanteraError::save, setError, showErrors, etc.) are deprecated. The ability to
store an error is retained only for use in the C and Fortran interfaces so that
the last error message can be retrieved after a function returns an error code.
2015-11-16 19:50:55 -05:00
Ray Speth
eb8695dffa Remove unnecessary overrides of cv_mole 2015-11-15 17:00:46 -05:00
Ray Speth
8a5bad1e70 Eliminate lowercase 'l' as a variable name 2015-11-13 21:38:43 -05:00
Ray Speth
03db1d3942 [SCons] Fix installation location for Python module location on OS X
Fixes #296
2015-11-13 20:51:16 -05:00
Ray Speth
48c6c6b8ad [Python] Fix full-state (e.g. TPX) properties of PureFluid
The implementations which come from ThermoPhase expect "X" to mean mole
fractions, but for PureFluid "X" means vapor fraction. No setter is provided
since all three properties cannot be specified simultaneously.

Resolves #307
2015-11-12 18:20:31 -05:00
Ray Speth
f5ff849b47 Replace std::copy with simpler direct assignment where possible 2015-11-12 17:35:30 -05:00
Ray Speth
69eeb20283 Remove duplicate check for thermo node 2015-11-12 15:50:31 -05:00
Ray Speth
f79419cc49 Remove abandoned header file 'solvers.h' 2015-11-12 15:40:50 -05:00
Ray Speth
f6e2f0db73 Remove accidentally-added header file 2015-11-12 15:39:46 -05:00
Ray Speth
5e69a9949a Use ThermoPhase::RT() where convenient 2015-11-12 15:36:17 -05:00
Ray Speth
0d0c96257b [Thermo] Remove unnecessary override of getChemPotentials_RT 2015-11-12 15:15:48 -05:00
Ray Speth
f6d19ccd59 [Thermo] Remove unnecessary overrides of VPStandardStateTP methods
setPressure, setTemperature, and setState_TP are all implemented generally in
VPStandardStateTP. The specialization in child classes is always handled in
calcDensity().
2015-11-12 15:04:45 -05:00
Ray Speth
a9379e6f71 [Thermo] Remove unimplemented versions of setToEquilState 2015-11-12 12:42:46 -05:00
Ray Speth
ac9dfa055c [Thermo] Synchronize Mixture/Multiphase state before printing report
Do not assume that the states of the individual ThermoPhase objects still
correspond to the state of the mixture object. See #306.
2015-11-12 12:42:35 -05:00
Ray Speth
66a3b5b48a Remove unnecessary and bogus 'inline' declarations 2015-11-12 12:22:09 -05:00
Ray Speth
94185c7fbd Miscellaneous Doxygen doc and comment cleanup 2015-11-12 12:22:09 -05:00
Ray Speth
0540cf26d0 Clean up Doxygen docs and comments in Reactor classes 2015-11-12 11:41:34 -05:00
Ray Speth
34ff39e3df Clean up Doxygen docs and comments in OneD classes 2015-11-12 11:41:34 -05:00
Ray Speth
75d9ef93c5 Clean up Doxygen docs and comments for numerics classes 2015-11-12 11:41:34 -05:00
Ray Speth
0c8bf1fd08 Clean up Doxygen docs and comments for Transport classes 2015-11-12 11:41:34 -05:00
Ray Speth
fe4035647f Clean up remaining Thermo comments 2015-11-12 11:41:34 -05:00
Ray Speth
f8b12adef4 Clean up comments in 'base' source and header files 2015-11-09 19:35:52 -05:00
Ray Speth
5a0a6b855c Clean up Doxygen comments in VPSSMgr and descendants 2015-11-09 17:59:22 -05:00
Ray Speth
cd1f1fd5ac [Doc] Clean up Doxygen documentation for ThermoPhase classes
Remove redundant documentation from overloaded methods which does not add any
additional information.

Reformat to to make indentation and line lengths more consistent.
2015-11-09 17:59:22 -05:00
Ray Speth
78b471fbf9 Clean up doxygen comments for SpeciesThermoInterpType classes 2015-11-09 17:59:22 -05:00
Ray Speth
75b0c71044 Clean up comments in Kinetics 2015-11-09 17:59:22 -05:00
Ray Speth
5bf3b0fc67 Clean up comments in other equilibrium-related classes 2015-11-09 17:59:22 -05:00
Ray Speth
618c485c55 Clean up comments in VCS equilibrium solver 2015-11-09 17:34:46 -05:00
Ray Speth
4382ae6c85 Clean up comments in Thermo class source files 2015-11-09 17:34:46 -05:00
Steven DeCaluwe
14864e840b Extend NoNorm option for setCoverages to the Matlab toolbox
Because normalizing the species coverages leads to incorrect Jacobian
calculations, it is sometimes necessary to not normalize the coverages.
As for bulk species mass/mole fractions, this option is currently only
available when passing the coverages as a vector (i.e., not available
for string identifiers).
2015-11-07 21:14:03 -05:00
Ray Speth
70fe821c19 Deprecate FuncEval::getInitialConditions and related functions 2015-11-06 14:40:48 -05:00
Thomas Fiala
de133f1a3d [Reactor] Divide residuals by sqrt(n_vars) in advance_to_steady_state 2015-11-03 15:46:07 -05:00
Thomas Fiala
304364c203 [Reactor] Add documentation for advance_to_steady_state
Also, update tutorials to use this feature.
2015-11-03 15:46:07 -05:00
Thomas Fiala
57e3ee8c1a [Reactor] Implement the Cython function advance_to_steady_state
Resolves #95
Resolves #303
2015-11-03 15:41:58 -05:00
Thomas Fiala
16ab7dff51 [Reactor] Implement functions getState for reactors and reactor networks
These are simpler forms of getInitialConditions.
2015-11-03 14:34:28 -05:00
Ray Speth
592a40a1de [SCons] Remove unused configuration options 2015-10-29 22:26:52 -04:00
Ray Speth
c983d730a6 [SCons] Remove 'include/cantera/ext' when running 'scons clean' 2015-10-29 12:27:47 -04:00
Ray Speth
84566a3a7d [SCons] Fix incorrect directory created in build tree
The 'Mkdir' command was creating a (literal) '#include' directory, rather than
taking the '#' to mean the top of the source tree. The 'Mkdir' command is
unnecessary anyway, since the 'Copy' command will create the necessary
subdirectory.

Fixes #304.
2015-10-29 12:27:47 -04:00
Bryan W. Weber
afde0a7b52 [Doc] Remove old F77 and F90 SCons options from Intel instructions 2015-10-28 15:33:13 -04:00
Bryan W. Weber
d4fb85d4c3 [Doc] Clarify cloning instructions
Clarify the instructions on how to clone the repository and which tags or branches should be checked out to get certain releases of the software.
2015-10-28 15:31:33 -04:00
Bryan W. Weber
b395c68236 [SCons] Fix Cantera.mak cannot be written if extra_inc_dirs or extra_lib_dirs is specified 2015-10-28 12:55:23 -04:00
Bryan W. Weber
6cca4cf55c [Doc] Recommend to use pip to install optional Python packages on Ubuntu 2015-10-26 10:32:31 -04:00
imitrichev
f7a0e14f3e Remove unused field m_logA from class SurfaceArrhenius 2015-10-25 15:41:59 -04:00
imitrichev
40e09043bc Added methods to InterfaceKinetics to get effective rate parameters
Effective rate parameters are used in SurfaceArrhenius reactions.

Resolves #297.
2015-10-25 15:41:31 -04:00
Ivan Mitrichev
02fc127c13 Cython minimum version is 0.19
Also, setuptools is required to build/install the python module.

Resolves #302.
2015-10-25 14:15:45 -04:00
Bryan W. Weber
2e79a0978e [Doc] Update Homebrew install instructions.
Update the Homebrew install instructions with a recommendation on how to install the Matlab toolbox and add additional options that are supported during the install process.
2015-10-25 09:15:31 -04:00
Ray Speth
f910f8c3ee Bump development version to 2.3.0a1 2015-10-24 20:21:32 -04:00
Ray Speth
02ee03ffb2 [Doc] Mention IPython and Matplotlib in installation instructions 2015-10-24 17:47:49 -04:00
Ray Speth
92311f0b67 [Doc] Mention '--with-python3' option for Homebrew installer 2015-10-24 17:47:49 -04:00
Bryan W. Weber
eee1de7368 Merge pull request #300 from bryanwweber/fix-matlab-purefluid-functions
Fix Matlab PureFluid functions and documentation
2015-10-24 15:16:40 -04:00
Bryan W. Weber
0be9e7eef7 [Matlab] Fix spacing in private functions 2015-10-24 08:05:52 -04:00
Bryan W. Weber
0b5c97ad4f [Doc] Correct docs for setState_*sat in Matlab
Correct the documentation to clarify that a vector must be passed in to
these functions, not a single value.
2015-10-24 08:05:45 -04:00
Bryan W. Weber
5aabfe9704 [Matlab] Fix setState_sat*.m functions
Fix the setState_satLiquid and setState_satVapor functions so that they call the main set
method instead of the underlying C++ layer. Resolves #299.
2015-10-24 07:56:10 -04:00
Ray Speth
87aaa6ad1e Use math functions from C++11 standard library 2015-10-19 13:14:40 -04:00
Ray Speth
0542e694a9 [Thermo] Merge classes StoichSubstance and StoichSubstanceSSTP
Use the implementation of StoichSubstanceSSTP (descended from
SingleSpeciesTP) but change the name to StoichSubstance.
2015-10-19 00:17:40 -04:00
Ray Speth
ffab95f3ef Automatically check out cppformat submodule if needed 2015-10-18 18:54:09 -04:00
Ray Speth
4a411b76bb Use git submodule for googletest 2015-10-18 18:54:09 -04:00
Ray Speth
c0eca16b34 Exclude cppformat from Doxygen docs 2015-10-17 22:43:20 -04:00
Ray Speth
e094967ebb [Doc] Update version requirements 2015-10-17 22:35:37 -04:00
Ray Speth
c8e380d88c [SCons] Invalid command line arguments set a non-zero return code 2015-10-17 19:00:18 -04:00
Ray Speth
90b0ee152b Fix compilation with GCC 4.6 and 4.7
The standard libraries for these versions of GCC do not have 'emplace'
methods for associative containers.
2015-10-17 18:58:50 -04:00
Ray Speth
7c9bc364f5 [SCons] Add helpful error message when cppformat submodule is missing 2015-10-17 18:58:50 -04:00
Ray Speth
0647823ada Replace DATA_PTR macro with calls to data() 2015-10-17 18:58:50 -04:00
Ray Speth
8b16eb489f Eliminate unnecessary aliases for member variables in HMWSoln 2015-10-17 18:58:50 -04:00
Ray Speth
91d3002df1 Make use of "make_shared" where possible 2015-10-17 18:58:50 -04:00
Ray Speth
a945ef2c23 Make use of initializer lists where appropriate 2015-10-17 18:58:50 -04:00
Ray Speth
f9375e1a09 Use locks/mutexes from the standard library instead of Boost.Thread
This eliminates the need to link against any of the compiled Boost libraries,
and means that we can always build in thread-safe mode
2015-10-17 18:58:50 -04:00
Ray Speth
a03f370cfd Make use of emplace and emplace_back methods 2015-10-14 18:45:23 -04:00
Ray Speth
c3a16ec1fb Update AssertThrowMsg and AssertFinite to use cppformat 2015-10-14 18:45:23 -04:00
Ray Speth
fb4eece9f8 Use std::unique_ptr instead of raw pointers where appropriate 2015-10-14 18:45:23 -04:00
Ray Speth
0690626ab8 Make m_sub a regular member of WaterSSTP instead of a pointer 2015-10-14 18:45:23 -04:00
Ray Speth
ffc4ba07da Make m_phi a regular member of WaterPropsIAPWS instead of a pointer 2015-10-14 18:45:23 -04:00
Ray Speth
3c05e801a4 Remove unused variable MetalSHEelectrons::xdef_ 2015-10-14 18:45:23 -04:00
Ray Speth
3f6d8b0aca Use cppformat instead of int2str and fp2str 2015-10-14 18:45:23 -04:00
Ray Speth
78e2d13da7 Eliminate some special cases by using std::vector.data()
Unlike &vec[0], vec.data() is a valid operation even when vec is empty,
removing the need to allocate space in vectors just so we can get an
address that won't be used.
2015-10-14 18:45:23 -04:00
Ray Speth
2589a27b6c Use range-based for and auto to simplify some loops 2015-10-14 18:45:23 -04:00
Ray Speth
c2ba24c0c2 Fix possible memory leak in newPhase
If importPhase threw an exception, then the ThermoPhase object allocated here
would not be deleted. Switching to a smart pointer fixes this problem.
2015-10-14 18:45:23 -04:00
Ray Speth
f335350c35 Always use std::shared_ptr
Since we compile as c++11, std::shared_ptr is guaranteed to exist.
2015-10-14 18:45:23 -04:00
Ray Speth
e131766b71 Replace auto_ptr with unique_ptr
auto_ptr is deprecated in c++11
2015-10-14 18:45:23 -04:00
Ray Speth
0b2c7b59b8 Replace printf with writelogf in all library code 2015-10-14 18:45:23 -04:00
Ray Speth
6f4c73c9d4 [SCons] Change compiler flag to work with GCC 4.6 2015-10-14 18:45:23 -04:00
Ray Speth
67e6d6c766 [Test] Always reset configuration on Travis CI 2015-10-14 18:45:23 -04:00
Ray Speth
c88aaf9fc2 [SCons] Optionally show contents of config.log after errors
This makes it easier to debug issues that occur on automated builds where
the config.log file is hard to access directly.
2015-10-14 18:45:22 -04:00
Ray Speth
e5b5d591b0 Fix compilation errors in C++11 mode under Cygwin 2015-10-14 18:45:22 -04:00
Ray Speth
1f1f14b523 Fix MinGW compilation error in C++11 mode 2015-10-14 18:45:22 -04:00
Ray Speth
71bb73b728 Eliminate unnecessary calles to std::string.c_str() 2015-10-14 18:45:22 -04:00
Ray Speth
e669f912a5 Use cppformat in Phase and ThermoPhase 2015-10-14 18:45:22 -04:00
Ray Speth
745db409a6 Add a constructor for CanteraError that uses format strings 2015-10-14 18:45:22 -04:00
Ray Speth
16143b47b6 Replace most uses of sprintf with cppformat 2015-10-14 18:45:22 -04:00
Ray Speth
1411419b0f [1D] Eliminate sprintf-style string formatting 2015-10-14 18:45:22 -04:00
Ray Speth
59b14724ed Allow writelog to do string formatting
If multiple arguments are supplied, the string is treated as a Python-style
format string and the extra arguments are used to populate the format string.
2015-10-14 18:45:22 -04:00
Ray Speth
41527b1ea7 Rename two-argument version of writelog 'debuglog'
This is a prerequisite to allowing writelog to take an arbitrary number
of arguments.
2015-10-14 18:45:22 -04:00
Ray Speth
0daf89c7d3 [Doc] Update checkout instructions to handle git submodules 2015-10-14 18:45:22 -04:00
Ray Speth
61a755ff51 Use cppformat to implement writelogf
This represents the first use of variadic templates in Cantera.
2015-10-14 18:45:22 -04:00
Ray Speth
61c522d7a7 Set compiler options to enable C++11 2015-10-14 18:45:22 -04:00
Ray Speth
caf9c6f062 Use cppformat in ThermoPhase::report and overrides 2015-10-14 18:45:22 -04:00
Ray Speth
952ed7d39a Compile cppformat and include it in the Cantera library 2015-10-14 18:45:22 -04:00
Ray Speth
6e34ef025f Add cppformat submodule 2015-10-14 18:45:22 -04:00
Ray Speth
dcfcb528b8 [Doc/Reactor] Improve description for wall heat transfer terms 2015-10-14 18:08:13 -04:00
Ray Speth
f92e4b5f3c [Doc] Add link to guidelines for creating good examples for bug reports 2015-10-14 17:10:19 -04:00
Ray Speth
8591a7ee5c [Python] Fix handling of bad input to 'stringify'
Cases where a string is required but a non-string is provided will now generate
an exception instead of substituting the empty string.
2015-10-14 12:58:08 -04:00
Ray Speth
512dffe859 [Test] Fix csv test comparisons to work with Numpy 1.10
Drop support for Numpy 1.3 (which lacks the skip_header argument to genfromtxt).
2015-10-08 13:20:07 -04:00
Ray Speth
fbf93bf270 [Doc] Add Doxygen docstrings for wrapper classes
Without at least a basic docstring, these classes are excluded from the Doxygen
documentation.
2015-10-07 13:54:47 -04:00
Ray Speth
3914ede44a [Test/Python] Fix warnings about unclosed files 2015-10-07 12:59:46 -04:00
Ray Speth
58110351af [Test] Fix deprecation warnings in Python tests
This also fixes support for Numpy 1.10, which removes the 'skiprows' keyword.
2015-10-07 12:59:27 -04:00
Ray Speth
92d3ba0bf7 [Test] Enable DeprecationWarning in Python test suite 2015-10-07 11:45:55 -04:00
Ray Speth
3d27dfa1a1 [Reactor] Eliminate unused variable ReactorNet::m_iown 2015-10-05 18:48:14 -04:00
Ray Speth
a956f3904a [Thermo] Deprecate get/setReferenceComposition and xMol_Ref 2015-10-05 15:25:05 -04:00
Ray Speth
5926d2db7c [ck2cti] Handle reactions containing 'hv' pseudospecies
Convert to an irreversible reaction and ignore the photon.
2015-10-05 14:59:35 -04:00
Ray Speth
b38a9332e2 Treat duplicate keys in composition strings as errors
For example, 'H2:0.5, O2:0.5, H2:0.1', which would previously have been treated
as equivalent to 'O2:0.5, H2:0.1'.
2015-10-05 13:02:16 -04:00
Ray Speth
0e4b0cba0f [Matlab] Fix error handling for nAtoms to avoid false positives
Species can have negative "atoms" of an "element" in the case where the element
is an electron and the species is a positive ion.
2015-09-08 12:26:58 -04:00
Ray Speth
54a71b8f68 Remove unused exp3to2 script 2015-09-08 12:26:58 -04:00
Ray Speth
5ed6d9a2af [Test] Fix compilation errors with VS2015 2015-09-08 12:26:58 -04:00
Ray Speth
67172cd478 [Test] Disable problematic test with old CVODE 2015-09-08 12:26:55 -04:00
Ray Speth
567a854377 Fix a compilation error when using '-std=c++11' 2015-09-04 18:37:55 -04:00
Ray Speth
d69daab39f [Test] Fix error in test comparison when numbers disappear 2015-09-04 18:37:43 -04:00
Ray Speth
62730b1ff7 Remove unimplemented derivative calculation functions 2015-08-28 15:51:13 -04:00
Ray Speth
ab4add0ba2 Cantera does not write temporary files 2015-08-27 23:38:55 -04:00
Ray Speth
a77b79b00c [Python] Check for compatibility before adding Quantities 2015-08-24 17:31:04 -04:00
Ray Speth
25b1dc90f2 [Python] Set default constant property pair in Quantity.equilibrate 2015-08-24 17:31:04 -04:00
Ray Speth
8299646059 [Python] Add example demonstrating use of class Quantity 2015-08-24 17:31:04 -04:00
Ray Speth
032537710f [Python] Quantity.equilibrate updates the Quantity's state 2015-08-24 17:31:04 -04:00
Ray Speth
d559af9d38 [Python] Add docs for class Quantity 2015-08-24 17:31:04 -04:00
Ray Speth
94f94dd0e6 [Python] Basic implementation of class Quantity 2015-08-24 17:31:04 -04:00
Ray Speth
6e138d0ae4 [Reactor] Always check that input/output are finite
This causes problems to be caught early, where they can at least sometimes be
handled as recoverable intergrator errors, rather than letting NaN values
propagate through the solution.
2015-08-24 12:27:07 -04:00
Ray Speth
86835a5eeb [Thermo] Show large negative species concentrations in phase report
Non-trivial negative concentrations generally indicate a problem, and shouldn't
be hidden.
2015-08-23 19:35:23 -04:00
Ray Speth
60b98b362c [Kinetics] Prevent positive feedback in negative species concentrations
For binary (or higher order) reactions, multiple negative (but small, i.e. with
respect to integration tolerances) species concentrations should not produce
positive reaction rates that would drive those concentrations to even more
negative values.
2015-08-23 19:29:49 -04:00
Ray Speth
bb2d1c0993 [Thermo] Prevent setting thermodynamic state variables to NaN
Throwing an exception when a state variable is being set to NaN transforms some
reactor network integration errors from unrecoverable errors into recoverable
errors.
2015-08-23 17:09:17 -04:00
Ray Speth
2b7bcf2b3e [Python] Prevent renaming of Python extension module
In Cygwin, some versions of SCons append a 'cyg' prefix to DLL names, which
breaks the Python extension module that is supposed to be named just
'_cantera.dll'.
2015-08-13 22:22:33 -04:00
Ray Speth
7bcbbaafd9 [Thermo] Use consistent implementation for convenience constructors
The constructor with the signature (inputFile, [id]) just calls initThermoFile.
The constructor with the signature (phase XML node, [id]) just calls importPhase
(note that the id argument is unused, since the correct XML node must already be
given).
2015-08-05 12:34:22 -04:00
Ray Speth
7fe8f0f3b7 [Thermo] Refactor common initialization out of constructors 2015-08-05 12:09:02 -04:00
Ray Speth
ff60328ecd [Thermo] Fix IdealGasPhase constructor from XML_Node 2015-08-04 12:01:45 -04:00
Ray Speth
78412b3d72 Increase number of points used in multiprocessing example
This helps average out some performance variability to make the effect of
multiprocessing more clear.
2015-08-03 23:15:07 -04:00
Ray Speth
6514f7a8e1 Fix multiprocessing example when using Python 3
In Python 3, 'map' returns an object which evalutes the function as it is
consumed, not when 'map' is called. Therefore, the correct comparison to
pool.map(...) is list(map(...)).
2015-08-03 23:00:54 -04:00
Ray Speth
7ca9327f7d Fix multiprocessing example to actually get the indicated property 2015-08-03 22:57:03 -04:00
Ray Speth
ea1f7c015b Deprecate PDSS construction directly from XML files
The constructors from existing XML_Nodes are the ones that are actually used.
2015-08-03 17:16:38 -04:00
Bryan W. Weber
2334410b5b Uninstall all files properly 2015-08-02 23:06:16 -04:00
Bryan W. Weber
19f4468728 Clean up after setuptools builds 2015-08-02 23:06:16 -04:00
Bryan W. Weber
ca3a09a3d4 Add setuptools directories to python_minimal .gitignore 2015-08-02 23:06:16 -04:00
Bryan W. Weber
1174de9232 Reformat Cython setup.py.in and add metadata
Conform to 4 space tabs. Add classifiers about Cantera. Add long
description.
2015-08-02 23:06:16 -04:00
Bryan W. Weber
b979cea3d2 Switch Cython and python interfaces to setuptools
Replace distutils with setuptools in the Cython and python_minimal
interfaces. Add console_scripts option to generate OS specific scripts to run
ck2cti, mixmaster, and ctml_writer

Remove script files that are obsoleted by console_scripts from
setuptools. Remove installation of the script modules from SConstruct.

Fix Python installers so that when a prefix directory is specified on the
command line, setuptools doesn't throw an error. The setuptools documentation at
[1] prefers setting PYTHONUSERBASE rather than PYTHONPATH. Use normpath to avoid
bugs in setuptools on Windows [2].  Specify an empty "--prefix" if the compiler
is clang to fix a bug with Homebrew Python on Mac OSX [3].

[1]: https://pythonhosted.org/setuptools/easy_install.html#custom-installation-locations
[2]: http://stackoverflow.com/q/31629398
[3]: https://github.com/Homebrew/homebrew-python/issues/187
2015-08-02 23:06:16 -04:00
Bryan W. Weber
5f8bd40c0d Add functions to main scripts to be entry_points
Add functions to ck2cti, ctml_writer, and a new file __main__.py to
mixmaster to be the entry_points locations that setuptools scripts
will call.
2015-08-02 23:06:16 -04:00
Bryan W. Weber
c6ccffe44f Move imports in ck2cti to the top of the file 2015-08-02 23:06:16 -04:00
Bryan W. Weber
eb2df78260 Fix syntax error in a Python example 2015-08-02 23:06:16 -04:00
Bryan W. Weber
0b5a46fe03 Remove execute bit from files that don't need it 2015-08-02 23:06:16 -04:00
Ray Speth
bfb20e1f50 Consistently use vector_fp and vector_int typedefs 2015-08-02 23:06:16 -04:00
Ray Speth
ceefc5ecb0 Consistently use ThermoPhase::RT() 2015-08-02 23:06:16 -04:00
Ray Speth
9cdfd12172 Move definition of polyfit to polyfit.cpp 2015-08-02 23:06:16 -04:00
Ray Speth
acdf9cf0ed Clean up interstitial whitespace
Remove extra space around operators, between words, etc.
2015-08-02 23:06:16 -04:00
Ray Speth
6a04193646 Fix un-bracketed if, for, and else statements 2015-08-02 23:06:15 -04:00
Ray Speth
02f9497b20 Remove functions which just explicitly call base class functions 2015-08-02 23:06:15 -04:00
Ray Speth
801334c84e Merge nested if statements 2015-08-02 23:06:15 -04:00
Ray Speth
546eede80c Fix pointer logic errors in initThermoXML
Affects DebyeHuckel and HMWSoln
2015-08-02 23:06:15 -04:00
Ray Speth
f90bf978df Use += and -= where appropriate 2015-08-02 23:06:15 -04:00
Ray Speth
e4c45b6429 General whitespace cleanup
Remove unnecessary blank lines and trailing whitespace. Replace tabs with
spaces.
2015-08-02 23:06:15 -04:00
Ray Speth
619cd20f14 Fix badly-formatted else/else if/catch clauses 2015-08-02 23:06:15 -04:00
Ray Speth
d24dfea036 Remove unnecessary public/private/protected labels 2015-08-02 23:06:15 -04:00
Ray Speth
f219b49e63 Remove unnecessary newlines in function signatures 2015-08-02 23:06:15 -04:00
Ray Speth
d086be8d3d Eliminate do-while loops in favor of regular while loops 2015-08-02 23:06:15 -04:00
Ray Speth
a6e390dfc5 Standardize always-true while loop condition to "true" 2015-08-02 23:06:15 -04:00
Ray Speth
187fd27cef Remove unnecessary use of (void) 2015-08-02 23:06:14 -04:00
Ray Speth
09207eacfb Eliminate use of 'memset' 2015-08-02 23:06:14 -04:00
Ray Speth
c3c80f79fb Remove extraneous parentheses 2015-08-02 23:06:14 -04:00
Ray Speth
89c751f217 Fix compilation problems when debug_verbose=y 2015-08-02 23:06:14 -04:00
Ray Speth
65741171f4 [Doc] Fix typos in NASA polynomial formulas 2015-07-23 16:46:08 -04:00
Ray Speth
d8772f261b [Reactor] Cannot add sensitivity reactions to initialized ReactorNet
Before, the attempt to add the reaction was silently ignored. Now, this raises
an exception.
2015-07-21 14:54:13 -04:00
Ray Speth
6cc5652de6 Remove commented-out code 2015-07-20 17:20:46 -04:00
Ray Speth
de005c083e Eliminate VCS_DATA_PTR macro 2015-07-20 16:17:31 -04:00
Ray Speth
bf2ceed60e Remove some leftover debugging ifdefs 2015-07-20 15:47:17 -04:00
Ray Speth
c49c969184 [Kinetics] Remove unused code for reactant and product "groups" 2015-07-20 14:04:53 -04:00
Ray Speth
4f1250ef53 [Kinetics] Remove unneeded variables for reaction equation
Extract this data from the reaction objects directly as needed.
2015-07-20 13:53:47 -04:00
Ray Speth
62f2af5534 [Kinetics] Eliminate unnecessary variable m_rxntype 2015-07-20 13:01:05 -04:00
Ray Speth
f623e44d32 [Kinetics] Eliminate unnecessary m_rrxn and m_prxn variables
This information can be extracted from the Reaction objects as-needed.
2015-07-20 12:56:56 -04:00
Ray Speth
ca90c671ac [Thermo/Doc] Fix description of Shomate temperature polynomial
The docstring for this function was incorrectly copied from NasaPoly1.
2015-07-17 18:21:25 -04:00
Ray Speth
b7a5aff900 [Thermo] Convert Shomate coefficients when creating objects
Do conversion to nondimensional units once when creating the ShomatePoly object,
instead of every time that properties are calculated.
2015-07-17 18:18:03 -04:00
Ray Speth
761f54f241 Eliminate unnecessary counter variable Kinetics::m_ii 2015-07-16 15:37:41 -04:00
Ray Speth
571eaeda24 [Samples] Fix compilation errors and warnings in the C++ examples 2015-07-16 12:38:34 -04:00
Ray Speth
e21a7ce7d7 Fix incorrect index check in GeneralSpeciesThermo::reportParams
The SpeciesThermoInterpType no longer knows the species index, so
it isn't actually returned by the reportParameters function.
2015-07-16 12:28:46 -04:00
Ray Speth
c08c365ebb Remove unimplemented option to use QR factorization in BandMatrix 2015-07-16 10:52:42 -04:00
Ray Speth
be0324e2cf Remove link to old dev list 2015-07-16 10:42:52 -04:00
Ray Speth
e8292d387e Fix definition of elemental mole fraction
The elemental mole fractions should be invariant under composition changes which
conserve atoms.
2015-07-16 10:41:39 -04:00
Ray Speth
97b32069cf Remove leftover "fenv" cruft 2015-07-15 12:46:48 -04:00
Ray Speth
6a9dd7f9d6 Remove unused 'csvdiff' application 2015-07-15 12:20:22 -04:00
Ray Speth
d308944509 [Test] Remove unused, platform-specific 'runtest' scripts 2015-07-15 12:17:11 -04:00
Ray Speth
f1f10b6526 Remove unused, deprecated code marked for removal after Cantera 2.2 2015-07-15 12:08:50 -04:00
Ray Speth
ad4ed9e065 Remove unnecessary printing from SurfPhase::setCoverages 2015-07-15 11:40:13 -04:00
Ray Speth
d4299fc6da [Test] Fix VCS-LiSi test to not use deprecated "testProb" constructor 2015-07-15 11:35:22 -04:00
Ray Speth
546289f737 Remove deprecated code with functional alternatives 2015-07-13 18:59:09 -04:00
Ray Speth
9e8b8e4f63 Fix incorrect references to SpeciesThermo from VPSSMgr 2015-07-13 18:48:56 -04:00
Ray Speth
7d36e1eb13 [Python/1D] Fix FlameBase.write_csv
Also add a test for this method
2015-07-08 23:57:22 -04:00
Ray Speth
d44f46aab8 [Reactor] Add bounds check on sensitivity parameter index 2015-07-07 21:00:16 -04:00
Thomas Fiala
b7f2451f06 [Doc] Improve documentation for reactor networks and add more examples
Resolves #281
2015-07-07 19:48:15 -04:00
Ray Speth
ce21b08d41 [Python] Document ThermoPhase DP, DPX, and DPY properties 2015-07-03 00:14:35 -04:00
Ray Speth
07f25621f3 [SCons] Fix include order when compiling Cython module 2015-07-01 12:24:49 -04:00
Ray Speth
9a4bc3c34f [Doc] Fix typo in Planck constant units
Fixes #280.
2015-07-01 12:04:36 -04:00
Ray Speth
812cbc4bc4 Fix user-provided BLAS/LAPACK dir in Cantera.mak
Fixes an error introduced in 5720d7cf90.
2015-06-30 23:22:46 -04:00
Ray Speth
94316d8416 [Python/Examples] Demonstrate a non-trivial velocity function
This shows how the velocity function can be used to implement a wall where the
expansion rate coefficient is a function of time.

Also extend the integration interval for this example to actually demonstrate
ignition of both mixtures.
2015-06-24 15:20:00 -04:00
Ray Speth
d373e0751e Remove unnecessary explicit specification of namespace Cantera 2015-06-24 14:45:55 -04:00
Ray Speth
079ef0caf9 Update comments regarding critical / saturation properties 2015-06-24 13:26:47 -04:00
Ray Speth
140da430c0 Check for non-existent species in setMass/MoleFractionsByName 2015-06-24 13:05:28 -04:00
Ray Speth
c4bb938b1b [Equil] Hide verbose output at default log level 2015-06-24 13:05:28 -04:00
Ray Speth
f252ff16cb [Test] Move "ChemEquil_gri_pairs" to GTest suite
Also extend test to cover MultiPhase and VcsNonideal solvers as well.
2015-06-24 13:05:28 -04:00
Ray Speth
4273fe865d [Doc] Update list of SCons options shown in Sphinx docs 2015-06-23 23:15:40 -04:00
Ray Speth
0590b2cda8 [Reactor] Deprecate possibly-ambiguous names in componentIndex
Resolves #274.
2015-06-22 18:12:05 -04:00
Ray Speth
eb75e8b6cc [SCons] Fix BLAS/LAPACK-related variables in Cantera.mak
* Fix logic for when BLAS/LAPACK libraries need to be explicitly listed
* ctlapack and ctblas are no longer separate libraries
2015-06-22 16:53:04 -04:00
Ray Speth
4efad93a6d [Kinetics] Fix handling of integral, explicit reaction orders
If any of the reaction orders differ from the corresponding stoichiometric
coefficients, the reaction needs to be handled as the general case, instead of
just when the orders are non-integral.
2015-06-22 11:56:56 -04:00
Ray Speth
6f7241b08b Remove dead code from class Application 2015-06-21 19:01:15 -04:00
Ray Speth
1d7104a96b Fix race condition when Python 2 and Python 3 tests run in parallel 2015-06-19 14:23:45 -04:00
Ray Speth
c446686c85 [SCons] Fix test summary when tests are run in parallel 2015-06-19 11:53:07 -04:00
Ray Speth
be24e9daf1 [Reactor] Move reactor contents check into ReactorBase::contents
The check introduced in f6f868fe28 takes place too late, as the pointer to
ReactorBase.m_thermo has already been dereferenced at this point. Most compilers
let this pass, but it is techincally incorrect.
2015-06-18 17:51:46 -04:00
Ray Speth
f6f868fe28 [Reactor] Check for Reactor contents before installing FlowDevice
Fixes #279.
2015-06-18 14:37:54 -04:00
Ray Speth
c0fa589b8c [Reactor] Fix segfaults in updateMassFlowRate due to unset parameters
The downstream and upstream Reactors, the "master" flow controller, and the
coefficient arrays were being read without checking that they had been
initialized.

Fixes #278.
2015-06-18 12:18:59 -04:00
Kyle Niemeyer
cd545af5ed [Python/Thermo] Added functions for getting species thermo parameters
Resolves #275; Closes #276; Closes #277
2015-06-17 22:57:51 -04:00
Ray Speth
30d1d5ea99 [Test] Move "ChemEquil_gri_matrix" to GTest suite
This also modifies the test to explicitly test each of the equilibrium solvers,
so that failures in any one solver aren't hidden by the fact that a different
solver works for a particular initial condition.
2015-06-17 14:38:11 -04:00
Ray Speth
c2344377ac [Test] Move "ChemEquil_red1" to GTest suite
The old version of this test didn't actually check any meaninful results. The
ChemEquil and VCS solvers are both able to solve this problem, but the
MultiPhase solver currently fails. Also, the BasisOptimize function may fail
depending on the order that the elements are specified in the input file.
2015-06-16 16:16:21 -04:00
Ray Speth
e34b2739b2 [Test] Move "negATest" to GTest suite 2015-06-16 16:16:21 -04:00
Bryan W. Weber
60827267b7 Add MATLAB interface to the setState_RP function 2015-06-15 17:47:37 -04:00
Bryan W. Weber
ca6e228e22 Move setPressure to a more logical location 2015-06-15 17:47:37 -04:00
Bryan W. Weber
0b92ef20e5 Add the missing getters to the Python tests 2015-06-15 17:47:37 -04:00
Bryan W. Weber
20455056f8 Add Python interface for setState_RP + tests 2015-06-15 17:47:37 -04:00
Bryan W. Weber
8e58a45edb Overload setState_RP for IdealGasPhase
Use the ideal gas law to compute the temperature corresponding to the
given density and pressure.
2015-06-15 17:47:37 -04:00
Bryan W. Weber
5d215b7e86 Add base class functions to set density and pressure simultaneously
They have the names setState_RP, setState_RPX, and setState_RPY. These
base class functions mirror the TP, TPX, TPY set, except that RP is not
implemented, because it depends on the EOS of the system. We cannot use
the normal setPressure because it sets the state by calculating the
density, but RP will specify the density.
2015-06-15 17:46:51 -04:00
Ray Speth
2f7e05040c [ck2cti] Improve handling of single T-range thermo data 2015-06-15 16:47:54 -04:00
Ray Speth
b25167e4b9 [ck2cti] Print the current thermo entry when an error is encountered 2015-06-15 16:26:41 -04:00
Ray Speth
6994d56587 [Doc] Sphinx reads version info from config.h 2015-06-14 20:00:54 -04:00
Ray Speth
484eff996b Use short form of cantera_version when looking for data directory 2015-06-14 19:51:00 -04:00
Ray Speth
eefffa78b9 [SCons] Use defined 'cantera_version' when building MSI 2015-06-14 19:47:33 -04:00
Ray Speth
7f847c3877 [SCons] Miscellaneous cleanup of SConstruct/SConscript files 2015-06-13 23:29:58 -04:00
Ray Speth
31d04f04b0 [Thermo] Remove unnecessary copy constructors & assignment operators
These just did the same thing as the compiler-generated ones, so there's
no reason for these to exist.
2015-06-13 22:41:37 -04:00
Ray Speth
76344ea628 [SCons] Attempt auto-detection of libraries for Boost.Thread 2015-06-12 19:19:57 -04:00
Ray Speth
430c59634a [Doc] Extend sphinxdoc theme instead of overwriting CSS file
Overwriting the CSS file caused styles to fall out-of-date with the HTML
generated by newer versions of Sphinx. This way, we just need to maintain a few
customizations to the base theme.
2015-06-12 18:34:44 -04:00
Ray Speth
8d4e9bff6e [Reactor] Make argument to ReactorNet.step optional and deprecated
The value of this argument has almost no effect on the integrator, and
frequently confuses users since the ReactorNet can end up at a time either
greater or less than the specified time. By removing this argument, the
distinction betwen step() and advance(t) becomes much more clear.
2015-06-11 14:03:20 -04:00
Ray Speth
392b0f5692 [Reactor] Do not use argument to step/advance to set the max time step
Allow CVODES to take arbitrarily large timesteps by default. If a maximum time
step is desired, it can be set explicitly.
2015-06-11 14:03:20 -04:00
Ray Speth
fa90d095f0 [Travis] Use newer Cython version so that Python module works
Don't build Python 3 module for Python 3.2 (no longer supported).
2015-06-11 11:38:40 -04:00
Ray Speth
a6b3c23750 [SCons] Remove unnecessary check for Python 3 Cython module
We use the Python 2 version of Cython to generate the .cpp file which is
separately compiled for both Python 2 and Python 3.
2015-06-10 22:56:49 -04:00
Ray Speth
aa7f5a2728 Add build script for Travis CI 2015-06-10 19:34:24 -04:00
Steven DeCaluwe
7426fca71a Adding RedlichKwongMFTP::cv_mole 2015-06-09 13:01:57 -06:00
Ray Speth
217d780233 Fix calls to CanteraError with blank or incorrect first argument
The first argument should be the function name from which the exception was
thrown. Leaving this blank makes it difficult to track down the location of the
exception.
2015-06-09 12:03:57 -04:00
Ray Speth
8dcde36d20 Fix invalid iterator usage in Application::close_XML_File
The iterator 'b' is invalidated by calling erase(b), which means that the
subsequent call to ++b results in undefined behavior. This was identified by
segfaults in the Matlab unit test on OS X.
2015-06-08 17:20:54 -04:00
Ray Speth
2256cd03de [Doc] Homebrew formula no longer supports '--devel' option
The '--devel' option is apparently only meant for pointing at tagged development
releases, rather than the tip of a branch.
2015-06-08 13:46:37 -04:00
Ray Speth
9ca2c16bc3 [SCons] Fix running test suite with minimal Python module 2015-06-08 11:52:02 -04:00
Ray Speth
c512e2bcbb [Doc] Update installation instructions for Cantera 2.2.0 2015-06-05 15:29:06 -04:00
Ray Speth
416490ad7a Bump version to 2.2.0 2015-06-04 18:41:20 -04:00
Ray Speth
6190cf21e5 [Ubuntu] Fix stage prefix used for Python 3 module 2015-06-04 18:41:20 -04:00
Ray Speth
835b81a6f8 [MixMaster] Display more useful error messages
Include the full text of the original exception, and print this to the terminal
as well.
2015-06-02 11:05:35 -04:00
Ray Speth
a677409283 [MixMaster] Fix displaying of errors when using Python 2 2015-06-02 11:05:35 -04:00
Ray Speth
bd830b4685 Update year in recommended citation to 2015 2015-06-01 17:01:25 -04:00
Ray Speth
0f55a3bdff [Python/Doc] Add section on kinetics to the tutorial 2015-06-01 17:01:25 -04:00
Ray Speth
eafcc1d991 [Python/Thermo] Add setter for PureFluid.X in the two-phase region 2015-05-30 11:30:11 -04:00
Ray Speth
c7e79e64b4 [Doc] Add local tables of contents for thermo and kinetics 2015-05-29 17:32:23 -04:00
Ray Speth
911c2f180d Remove unused, redundant 'g_DEBUG_MODE' variable
This is exactly the same as the DEBUG_MODE_ENABLED macro
2015-05-29 16:29:57 -04:00
Ray Speth
78f60e2d5f [Thermo] Improve error message generated by Substance::set_xy 2015-05-29 12:45:17 -04:00
Ray Speth
e292caa187 [Python] Add Kinetics.reactions() method which returns all Reactions 2015-05-28 12:38:50 -04:00
Ray Speth
859aee18ef [Python] ThermoPhase.species() returns all Species objects 2015-05-28 12:38:50 -04:00
Ray Speth
808f088ffd Merge namespace VCSnonideal with namespace Cantera 2015-05-27 18:27:25 -04:00
Ray Speth
5214672ab3 Merge namespace ctml with namespace Cantera 2015-05-27 18:09:07 -04:00
Ray Speth
8845e789ba [1D] Deprecate non-functional fix/solve species options 2015-05-27 17:17:08 -04:00
Ray Speth
57e73dcb74 [Doc] Fix some Doxygen warnings 2015-05-26 17:05:40 -04:00
Ray Speth
8e2e4ae60b Deprecate class RxnOrders 2015-05-26 16:58:18 -04:00
Ray Speth
dcf7a2bdff [Python] Replace _have_sundials() with __sundials_version__
Resolves #259.
2015-05-26 16:47:38 -04:00
Ray Speth
b42013009f Update .gitignore 2015-05-26 14:47:40 -04:00
Ray Speth
0552c8a46e [Python/Reactor] Fix ReactorNet.verbose property
Fixes #260
2015-05-26 11:42:29 -04:00
Ray Speth
1c878c16de Fix issues indicated by compiler warnings 2015-05-26 11:42:20 -04:00
Ray Speth
6a094c658f [Doc] Update description of CTI and CTML formats 2015-05-25 21:08:49 -04:00
Ray Speth
341b137766 [Doc] Capitalize proper nouns and acronyms 2015-05-25 20:58:44 -04:00
Ray Speth
51c8d7365a [Doc] Fix spelling errors 2015-05-25 20:57:19 -04:00
Ray Speth
2b8a597037 [Doc] Mention 'brew tap --repair' and 'brew doctor' 2015-05-25 15:45:02 -04:00
Ray Speth
468369df13 [Python] Include docs for all classes in Sphinx docs 2015-05-25 00:22:03 -04:00
Ray Speth
ae5132060e [Python] Adjust names to avoid namespace clutter 2015-05-25 00:00:52 -04:00
Ray Speth
0f6f9c8f5a [Python] Add functions for evaluating rate constants 2015-05-24 20:03:21 -04:00
Ray Speth
af3e34ccb0 [Python] Add repr functions to Species/Reaction classes 2015-05-24 19:45:26 -04:00
Ray Speth
2610af703f Remove declared but undefined function 'vcs_second' 2015-05-24 18:23:24 -04:00
Ray Speth
aa2b732954 Fix directories searched for input files on Windows
Update to use the registry key for Cantera 2.2. The 'templates'
subdirectory no longer exists.

Fix documentation to not incorrectly claim that COMMONPROGRAMFILES
will be searched for input files.
2015-05-24 18:23:24 -04:00
Ray Speth
6bec1029e7 [Python/Doc] clarify reaction path properties that can be set 2015-05-24 18:23:23 -04:00
Ray Speth
b84c1e5685 Remove unused fields of ElectroChemicalReaction 2015-05-24 18:23:23 -04:00
Ray Speth
eb74329d1b Deprecate some unused/unfinished classes 2015-05-24 18:23:22 -04:00
Ray Speth
b5b1e89814 [Kinetics] Move 'rmcVector' down to ElectrodeKinetics 2015-05-23 22:42:44 -04:00
Ray Speth
813cc36f8e Fix undefined variables in ElectrodeKinetics with DEBUG_MODE enabled 2015-05-23 22:33:21 -04:00
Ray Speth
772427014a Bump version to 2.2.0b1 2015-05-11 17:23:37 -04:00
Ray Speth
8ce62988a1 [SCons] Remove previously-deprecated configuration options 2015-05-11 17:23:37 -04:00
Ray Speth
ba9c9c768f [Kinetics] Use the name 'ThreeBodyReaction' consistently 2015-05-11 16:35:46 -04:00
Ray Speth
946b7abfc5 [Python] Implement 'allow_negative_pre_exponential_factor' property 2015-05-11 16:26:32 -04:00
Ray Speth
f5b2fc37df [Python] Use name 'pre_exponential_factor' consistently 2015-05-11 16:16:44 -04:00
Ray Speth
9e9f03288a [Kinetics] Implement modifyReaction for InterfaceKinetics 2015-05-08 11:07:41 -04:00
Ray Speth
35e5e93c6e [Kinetics] Implement modifyReaction for AqueousKinetics 2015-05-08 11:07:11 -04:00
Ray Speth
cb88a2b1e0 Remove declarations for undefined methods from InterfaceKinetics 2015-05-07 23:09:01 -04:00
Ray Speth
62cd325036 [Kinetics] Implement modifyReaction for gas-phase reactions 2015-05-07 18:31:40 -04:00
Ray Speth
a3ec8c0848 [Doc] Use https for MathJax CDN
This is needed to make MathJax work when loading the documentation over an https
URL, since some browsers block scripts from non-https sites when loading a page
over https.
2015-05-07 11:29:22 -04:00
Ray Speth
11f4b1b7f7 [Doc] CTI to XML conversion does not generate new files 2015-05-06 21:15:02 -04:00
Ray Speth
14b41ea338 [Python/Doc] Update docs for Solution and Interface 2015-05-06 21:15:02 -04:00
Ray Speth
c214d912e5 [Doc] Add labels to enable linking to Python/Matlab examples
The labels are "py-example-scriptname.py" and "matlab-example-scriptname.m",
respectively.
2015-05-06 21:15:02 -04:00
Ray Speth
d470486bee [Python] Reactants and products can be specified in Reaction constructor 2015-05-06 21:15:01 -04:00
Ray Speth
9824edcb86 [Python] Update docs for Species and Reaction 2015-05-06 21:15:01 -04:00
Ray Speth
646654b7d0 [Python] Fix declarations of some methods which can throw exceptions 2015-05-06 21:15:01 -04:00
Ray Speth
658ce5d73b [Python] Return 'None' if thermo or transport are undefined 2015-05-06 21:15:00 -04:00
Ray Speth
a4252480aa [Python] Add setter for Species.transport 2015-05-06 21:15:00 -04:00
Ray Speth
00ed585f18 [Python] Adding example demonstrating submechanism extraction 2015-05-06 21:14:59 -04:00
Ray Speth
092937fd06 [Kinetics] Fix handling of undeclared third bodies in Falloff reactions 2015-05-06 21:14:59 -04:00
Ray Speth
08f0fb5bf6 [1D/Examples] Use np.genfromtxt in fixed-T flame example 2015-05-06 21:14:59 -04:00
Ray Speth
27726c3072 [Python/1D] Use initial gas composition as state of flame inlet
This eliminates the need to set the inlet temperature and composition explicitly
for configurations where only one composition needs to be specified (i.e. all
premixed configurations).
2015-05-06 21:14:58 -04:00
Ray Speth
14b2e8f5cf [Kinetics] Fix 'skip_undeclared_species' behavior 2015-05-06 21:14:58 -04:00
Ray Speth
982846acf7 [Python] Add mechanism reduction example using Species and Reactions 2015-05-05 15:02:57 -04:00
Ray Speth
d8ed6135ea [Python] Skip undeclared third bodies when adding Reactions
This needs to be the default behavior, since reactions can currently only be
added from the constructor.
2015-05-05 13:47:50 -04:00
Ray Speth
26c0c3f587 [Doc] Update docs for GasTransportData 2015-05-05 11:44:34 -04:00
Ray Speth
d68c41197e [Python/Doc] Document GasTransportData 2015-05-05 11:34:07 -04:00
Ray Speth
18e2ab7c8d [Python/Doc] Document Reaction and derived classes 2015-05-05 11:34:07 -04:00
Ray Speth
fe0c864f45 [Doc] Fix missing separator before static/class methods in Sphinx docs 2015-05-05 11:00:25 -04:00
Ray Speth
ce15158bf9 [Doc] Fix CSS used for method names in Sphinx docs
This appears to be necessary for Sphinx >= 1.3.0
2015-05-05 11:00:25 -04:00
Ray Speth
dd62e6061e [Python] Add setters for InterfaceReaction properties 2015-05-05 11:00:25 -04:00
Ray Speth
4022e408af [Doc] Document interface reaction coverage dependencies
Specifically, that the activation energy term is given in temperature
units.
2015-05-05 11:00:25 -04:00
Ray Speth
be2d08f7c2 Remove a leftover debugging print statement 2015-05-05 11:00:25 -04:00
Ray Speth
4ea96b810d [Python] Document Species, SpeciesThermo, and derived classes 2015-05-05 11:00:25 -04:00
Ray Speth
9af5d5835a [Python] Handle 'charge' and 'size' arguments to class Species 2015-05-05 11:00:25 -04:00
Ray Speth
56195cc67d [Python] Fix a typo in the name of class 'CoverageDependency' 2015-05-05 11:00:25 -04:00
Ray Speth
184bff328d [Python] Add ability to get/set species transport data 2015-05-05 11:00:25 -04:00
Ray Speth
fd659c09ea [1D] Fix saving multiple flame profiles to a single XML file
Broken by the change in b0e5b13913. Modify the save_restore test
to cover this case.
2015-05-02 21:24:51 -04:00
Ray Speth
decf251a8b Improve error messages generated by XML_NoChild and XML_TagMismatch 2015-05-02 20:07:46 -04:00
Ray Speth
c1fda5ca3c [Python] Wall coverages can be set using a dict or string 2015-05-02 20:07:46 -04:00
Ray Speth
0562f18100 [Reactor] Wall coverages may be set using a compositionMap or string 2015-05-02 20:07:45 -04:00
Ray Speth
31491c82cc [Python] Interface.coverages can be set using a string or dict 2015-05-02 20:07:45 -04:00
Ray Speth
522c563810 [Thermo] Surface coverages can be set using a compositionMap 2015-05-02 20:07:44 -04:00
Ray Speth
9e4e73da90 [Python] Convert both dicts and strings to compositionMap 2015-05-02 20:07:44 -04:00
Ray Speth
f4715c671f [Python] Add method for setting Chebyshev rate coefficient parameters 2015-05-02 20:07:36 -04:00
Ray Speth
7a21855574 [Kinetics] Switch parameter order in ChebyshevRate constructor
The usual order of arguments is temperature then pressure.
2015-04-30 22:34:25 -04:00
Ray Speth
6458b0c50d [Python] Enable direct construction of PlogReaction 2015-04-30 22:32:11 -04:00
Ray Speth
2fff28f37c [Kinetics] Fix Plog::rates to suppress all artificial rates 2015-04-30 19:24:16 -04:00
Ray Speth
a6038b32f6 [Python] Add functions for constructing falloff / chemact reactions 2015-04-29 22:48:44 -04:00
Ray Speth
6648b9ec34 [Kinetics] Falloff initialization checks for correct number of parameters 2015-04-29 22:12:00 -04:00
Ray Speth
0a2b4816ef [Python] Add setters for constructing elementary and third-body reactions
This allows creating reactions of these types without needing an XML or
CTI input file.
2015-04-29 19:35:13 -04:00
Ray Speth
498f53c350 [Python] Allow direct creation of derived-type Reaction objects 2015-04-29 19:32:35 -04:00
Ray Speth
c371751f65 Remove obsolete references to Subversion 2015-04-29 18:06:40 -04:00
Ray Speth
c1304e9ee6 Add support for Sundials 2.6
Resolves #256.
2015-04-29 18:03:17 -04:00
Ray Speth
a1e4735743 [Python] Fix premature deallocation when slicing Solution objects
Testing the value of self.parent in _SolutionBase.__dealloc__ was ineffective
because this attribute can already be cleared when __dealloc__ is called,
causing the borrowed C++ objects to be deleted prematurely. A C data member
needs to be used to determine whether this object is responsible for deleting
the underlying C++ objects.
2015-04-29 14:38:45 -04:00
Ray Speth
25c2d6c781 [Python] Enable creation of Kinetics objects from Reaction objects 2015-04-29 13:05:12 -04:00
Ray Speth
23642ded3c [Kinetics] Use current site density sticking reaction rate coefficient
The conversion of sticking coefficients to Arrhenius expressions includes the
site density on the surface phase, which may not be set when the reaction is
being added to the Kinetics object. We now defer the calculation of this
dependency until the rate coefficient is being evaluated so that the current
value for the site density can be used.
2015-04-29 11:55:07 -04:00
Ray Speth
bc4c71f8ee [Thermo] Ensure that site density is always positive
A site density of zero causes divide-by-zero errors in SurfPhase and
EdgePhase. This change makes it possible to initialize SurfPhase and
EdgePhase objects without XML phase descriptions.
2015-04-28 17:13:11 -04:00
Ray Speth
c994917bae [Kinetics] Add functions for creating Reaction objects from CTI/XML 2015-04-28 17:13:11 -04:00
Ray Speth
b6ac3ce995 [CTI] Allow CTI files containing only reaction definitions
The reactions in these files can be referenced by other CTI/XML files, or used
directly to create Reaction objects. The absence of a phase definition requires
that either (a) all reactions are in bulk phases, or (b) the rate constants are
given in kmol, meter, second units since it is impossible to determine the
dimensionality of the concentration for each species.
2015-04-28 17:13:11 -04:00
Ray Speth
caf71b839c [ctml] Refactor 'stick' to be a class instead of a function
This has no impact on the normal use case, but helps separate some properties
which are not relevant for bulk-phase reactions.
2015-04-28 17:13:11 -04:00
Ray Speth
4049bb4bb2 Fix out-of-bounds memory access in CvodesIntegrator::getErrorInfo
Out-of-bounds memory was being accessed in cases where the system had fewer
state variables than the specified maximum number of error estimates to display.
2015-04-28 17:13:11 -04:00
Ray Speth
de1884db71 [Python] Add access to interface reactions 2015-04-26 14:36:46 -04:00
Ray Speth
27e05d72f7 [Test] Add a test which includes a coverage-dependent rate constant 2015-04-26 11:44:19 -04:00
Ray Speth
eb088793e6 [Kinetics] Fix indices used in calculating coverage-dependent rates
The coverage dependent rate calculation is passed the array of coverages,
which include only the interface species, so the species index in the
interface phase is what is needed here.
2015-04-26 11:42:21 -04:00
Ray Speth
550caaca9e [Kinetics] Fix setupInterfaceReaction to parse coverage dependencies 2015-04-26 11:41:01 -04:00
Ray Speth
a15d9c17e2 [Python] Add access to Chebyshev reactions 2015-04-24 18:53:48 -04:00
Ray Speth
a9c6eb6fda [Kinetics] Add methods for inspecting ChebyshevRate objects 2015-04-24 18:53:02 -04:00
Ray Speth
b12c90b315 [Doc] Add missing docstrings for ChebyshevRate and Plog 2015-04-24 18:13:46 -04:00
Ray Speth
5fb9f95004 [Python] Add access to p-log reactions 2015-04-24 17:33:04 -04:00
Ray Speth
d3d303c4e9 [Kinetics] Add Plog::rates() for informational purposes 2015-04-24 16:43:37 -04:00
Ray Speth
4151c10884 [Kinetics] Simplify Plog by using Arrhenius objects internally 2015-04-24 14:49:42 -04:00
Ray Speth
e7946478df [Python] Add access to falloff and chemically activated reactions 2015-04-24 14:04:07 -04:00
Ray Speth
d2418c0c2a [Kinetics] Add methods for inspecting Falloff objects 2015-04-23 18:10:15 -04:00
Ray Speth
9d4a3e0f75 [Kinetics] Reaction objects have Falloff objects
This approach actually makes use of the fact that we have a Falloff type.
2015-04-23 18:10:15 -04:00
Ray Speth
873724c135 [Kinetics] Move member function definitions out of Falloff.h 2015-04-23 18:10:15 -04:00
Ray Speth
bbe2e1c79b [Python] Add access to properties of simple reaction types
This includes ElementaryReaction and ThirdBodyReaction
2015-04-23 18:10:15 -04:00
Ray Speth
af93dc774d [Python] add ctypedef for Composition 2015-04-22 14:09:46 -04:00
Ray Speth
dc3af8a58d [Python] Add ability to create ThermoPhase objects from Species
This makes it possible to create a phase without ever generating a CTI
or XML description. Does not yet work with phase types that require
additional parameters.
2015-04-22 14:08:24 -04:00
Ray Speth
9fdf7c0c59 [Doc] Describe NASA9 parameterization in CTI guide
Also note availability of data in the NASA9 form using the ThermoBuild web tool
and explain how to convert it to the CTI format.
2015-04-22 14:08:24 -04:00
Ray Speth
3ad02817c5 [Kinetics] Refactor KineticsFactory::newKinetics
Eliminate redundant implementations, eliminate unnecessary static arrays,
and fix cases which were missing in the newKinetics(string) version.
2015-04-22 14:08:24 -04:00
Ray Speth
25953f94d4 [Transport] Make transport XML node optional
The default is equivalent to specifying <transport model="None">
2015-04-22 14:08:24 -04:00
Ray Speth
a4ba47594c [Python] Add functions for creating Species objects from CTI/XML 2015-04-22 14:08:24 -04:00
Ray Speth
64c66437eb [Python] Improve handling of 'bytes' objects being passed in 2015-04-22 14:08:21 -04:00
Ray Speth
f3eaef1675 [CTI] Strip leading whitespace when converting CTI strings
Leading whitespace would normally result in a Python IndentationError.
2015-04-20 18:34:39 -04:00
Ray Speth
b0e5b13913 Remove redundant, unnamed root XML node from parsed documents
XML_Node::build will make that node the root node (i.e. the 'ctml' node)
of the tree, instead of giving that node a child node containing the actual
root node.
2015-04-20 18:34:39 -04:00
Ray Speth
39b93d3690 Allow XML documents without an XML declaration node 2015-04-20 18:34:38 -04:00
Ray Speth
96cf312ec6 [Thermo] Always add species using Species objects
Deprecate the non-Species-based addSpecies and addUniqueSpecies
functions.
2015-04-20 18:34:38 -04:00
Ray Speth
2ca603838d [Thermo] Extract 'newSpecies(XML_Node&) from thermo initialization
VPStandardStateTP phases now use the same pathway for adding species as
other phase in importPhase. Deprecate the now-unused 'installSpecies'
function.
2015-04-20 18:34:37 -04:00
Ray Speth
d27b9ef9b1 [Thermo] Species size defaults to 1.0
This mostly affects surface phases, where a species size of 0 causes
several problems.
2015-04-20 18:34:37 -04:00
Ray Speth
a471e4316a [Thermo] Phase::addSpecies takes shared_ptr by value
This helps to clarify that addSpecies stores a copy of the shared_ptr.
2015-04-20 18:34:37 -04:00
Ray Speth
a63874e4b4 [Transport] Refactor TransportData initialization 2015-04-20 18:34:36 -04:00
Ray Speth
d6f7fd855a [Python] Add access to SpeciesThermo(InterpType) objects 2015-04-20 18:34:36 -04:00
Ray Speth
71f912d211 [Python] Add basic access to Species objects 2015-04-17 19:06:43 -04:00
Ray Speth
aee6cc14ac [Transport] Remove 'name' variable from TransportData
This was used only for validation error messages, but in that case we can just
use the Species object which is available during validation.
2015-04-17 19:06:43 -04:00
Ray Speth
7d170a9989 [Thermo] newSpeciesThermoInterpType argument is the 'thermo' XML node
No data from the outer 'species' node is needed to instantiate the
SpeciesThermoInterpType object, so this function can just take the 'thermo' node
directly.
2015-04-17 19:06:43 -04:00
Ray Speth
1b0970a494 [Thermo] Remove species name argument from STIT factory functions
This argument was used only in error messages, which can be reported more
uniformly if implemented at a higher level.
2015-04-17 19:06:43 -04:00
Ray Speth
ec1d7d7382 Fix compilier warnings about unused variables 2015-04-14 16:08:10 -04:00
Ray Speth
55ad11a565 [Doc] Mention '-v' flag to 'brew install' as a debugging tool 2015-04-14 15:29:28 -04:00
Ray Speth
d1cda15f42 Improve performance of importing phases
Replace the O(k) implementation of Phase::speciesIndex with one that is
O(log(k)). This function is called frequently as part of Kinetics object
initialization. Optimize for the more common case where the species name is not
qualified with a phase name.
2015-04-14 15:29:28 -04:00
Ray Speth
bde0f1466d [Thermo] Add index-based accessor for Species objects 2015-04-14 15:29:28 -04:00
Ray Speth
882a4986da Remove 'thermo' argument from Species constructor
Since the Species object now stores its SpeciesThermoInterpType contents as a
shared_ptr, it is undesirable to have the Species constructor take this as a raw
pointer argument.
2015-04-14 15:29:28 -04:00
Ray Speth
43952b30fc [Thermo] Use shared_ptr<Species> in ThermoPhase 2015-04-14 15:29:28 -04:00
Ray Speth
8f36e524fe Do species indexing in GeneralSpeciesThermo instead of STIT
This means that GeneralSpeciesThermo no longer modifies the
SpeciesThermoInterpType objects, permitting them to be shared between
ThermoPhase objects.
2015-04-14 15:29:28 -04:00
Ray Speth
5195e4f9b8 [Thermo] Use shared_ptr to STIT objects in Species and SpeciesThermo
Exclusive ownership of the SpeciesThermoInterpType objects is no longer assumed.
2015-04-14 15:29:28 -04:00
Ray Speth
35dbe37bf7 [Thermo] Deprecate SpeciesThermo::install
The install_STIT method should be used instead.
2015-04-14 15:29:28 -04:00
Ray Speth
a1599ac921 [Thermo] Add 'index' argument to GeneralSpeciesThermo::install_STIT
This is a prerequisite to removing the species index as a property of the
SpeciesThermoInterpType object and making it independent of any specific
ThermoPhase object.
2015-04-14 15:29:28 -04:00
Ray Speth
1dd7b214b5 [Thermo] Deprecate unused method 'getUnitsStandardConc'
First step in resolving Issue #96
2015-04-14 15:18:20 -04:00
Ray Speth
df971368a9 Remove some unnecessary files 2015-04-14 14:53:48 -04:00
Ray Speth
258fb8ed57 [Matlab] Add missing 'clear' functions
Without these functions, it was impossible to use these classes
without leaking memory. Even with these functions, the memory is
released only when these functions are explicitly called, as
old-style Matlab classes have no notion of a destructor.

Fixes #252.
2015-04-11 10:54:52 -04:00
Ray Speth
2161060743 [Matlab] Fix clear(Reactor) to delete the reactor instead of copying 2015-04-10 23:44:55 -04:00
Ray Speth
c540e67d50 [Thermo] Deprecate non-functional 'testProb' constructors
These "test problem" constructors don't actually do anything, and most of them
can't be used because the corresponding input files don't exist.
2015-04-09 19:04:08 -04:00
Ray Speth
23ad04f882 [Transport] Deprecate non-functional AqueousTransport class
This class has been broken since 2009. Note the vectors m_visccoeffs,
m_condcoeffs, and m_diffcoeffs, which are used but never initialized.
2015-04-09 18:54:05 -04:00
Ray Speth
b495262aff [Matlab] 'cleanup' now deletes all Cantera objects
'cleanup' previously only deleted ThermoPhase, Kinetics, Transport, Domain1D,
Sim1D, and XML_Node objects, while missing all objects associated with reactor
networks (Reactor, ReactorNet, FlowDevice, Wall), MultiPhase, Func1, and
reaction paths (ReactionPathBuilder, ReactionPathDiagram).

Fixes #251.
2015-04-08 23:08:42 -04:00
Ray Speth
f59bcdf057 [Thermo/Doc] Fix incorrect SurfPhase docstrings
These docstrings were just copied from unimplemented virtual methods in class
ThermoPhase.
2015-04-08 19:44:16 -04:00
Ray Speth
ecb6242b79 Fix spelling errors 2015-04-08 19:36:55 -04:00
Ray Speth
7fdef37e4b Replace Google Code URLs 2015-04-07 18:24:55 -04:00
Ray Speth
7ff9836648 [Doc] Update compilation instructions to reflect Github migration 2015-04-07 18:20:47 -04:00
Ray Speth
2c26e50244 Update README formatting and resource locations 2015-04-07 18:06:05 -04:00
Ray Speth
6545481928 Move README to README.rst so Github will format it nicely 2015-04-07 18:01:06 -04:00
Ray Speth
eb18f34f47 [Python] Fix class docstrings of composite classes
These were being hidden by incorrectly placed __slots__ attributes (the
docstring must appear first).
2015-04-07 17:58:26 -04:00
Ray Speth
a981622981 [Python] Add transport_model override option to Solution constructor
This keyword argument allows the transport model specified in a CTI/XML file to
be overridden when creating the object. Can be used to speed up Solution
initialization by specifying 'transport_model=None', which is especially useful
for large mechanisms where transport initialization scales as species number
squared.
2015-04-07 17:58:26 -04:00
Ray Speth
79b3a8ae39 [ck2cti] Allow arbitrary reactant stoichiometries
There is no reason to disallow more than 3 reactants
2015-04-07 17:58:26 -04:00
Ray Speth
c757c3bc76 Add include guard to smart_ptr.h 2015-03-10 22:41:53 +00:00
Ray Speth
57856254f7 Change Python module URL to point to cantera.org 2015-03-10 22:41:49 +00:00
Ray Speth
d5aba63018 Update 'AUTHORS' file to acknowledge additional contributors 2015-03-10 22:41:45 +00:00
Ray Speth
8780ef68b0 [Doc] Update supported software versions 2015-03-10 22:41:41 +00:00
Ray Speth
6898976218 [Doc] Update compilation documentation 2015-03-10 22:41:37 +00:00
Ray Speth
a609631981 [Doc] Add glossary defining various abbreviations 2015-03-10 22:41:33 +00:00
Ray Speth
838f435ca9 [Kinetics] Deprecate class ExchangeCurrent
Unused duplicate of class Arrhenius
2015-03-10 22:41:29 +00:00
Ray Speth
4890cccb03 [Doc] Update phase report examples to show compact species output 2015-03-10 22:41:23 +00:00
Ray Speth
86f0058a0c [Doc] Fix some inconsistencies in the Python tutorial
Resolves Issue 255.
2015-03-10 22:41:19 +00:00
Ray Speth
ab2beb4c64 [Reactor] Check that contents are assigned before starting integration 2015-02-28 00:24:38 +00:00
Ray Speth
eca79a5332 [Examples/1D] Use uniform initial grids in flame simulation examples 2015-02-28 00:24:32 +00:00
Ray Speth
603e321a37 [Cython] Fix treatment of writelogendl()
Both writelog and writelogendl should be passed through PySys_WriteStdout to
ensure that they are printed in the correct order. Problems with this were
identified in the 1D solver log when using Python 3.
2015-02-28 00:24:29 +00:00
Ray Speth
5534c15bc5 [Examples] Use IdealGasConstPressureReactor in sensitivity example 2015-02-28 00:24:25 +00:00
Ray Speth
ff3a1cc385 [Cython/Reactor] Fix setting reactor name through the constructor
This parameter wasn't being passed from Reactor to ReactorBase
2015-02-28 00:24:22 +00:00
Ray Speth
a15cb7d95c [Doc] Improve OS X installation instructions
Reflect changes due to 10.10 and current Xcode versions. Improve organization
and describe some steps in greater detail. Thanks to Ingmar Schoegl for
suggesting some of the improvements.

Resolves Issue 254.
2015-02-28 00:24:19 +00:00
Ray Speth
88dcff9c47 [Doc] Update instructions for installing Windows dependencies with pip 2015-02-28 00:24:15 +00:00
Ray Speth
7cdeedb91b [Transport] Provide transitional 'TransportFactory::initTransport'
There are user-provided classes derived from GasTransport which still call this
method, so a version of it that calls the new method for initializing
GasTransport objects needs to be provided until after Cantera 2.2.
2015-02-26 21:59:37 +00:00
Ray Speth
2e53890adf Minor cleanup of constructors and destructors 2015-02-26 21:58:42 +00:00
Ray Speth
5592a52e0f Remove unnecessary use of 'extern' 2015-02-26 21:54:11 +00:00
Ray Speth
cf3ad30537 [Kinetics] Changing a rate multiplier invalidates existing ROPs 2015-02-26 21:54:04 +00:00
Ray Speth
cc17716182 Cleanup trailing whitespace 2015-02-26 21:52:52 +00:00
Ray Speth
72e0d650b4 [ck2cti] Automatically add the 'negative_A' flag where necessary 2015-02-26 00:13:39 +00:00
Ray Speth
74f1cf05b1 [ck2cti] Narrow implicit end-of-section test
Assume that the new section label must be the first word on a line
2015-02-26 00:13:34 +00:00
Ray Speth
26c6d93168 [Kinetics] Fix options for skipping undeclared species / third bodies 2015-02-26 00:13:29 +00:00
Ray Speth
e3c598a619 [Doc] Fix formatting problem in OS X installation instructions 2015-02-25 19:48:38 +00:00
Ray Speth
60c221c845 [Kinetics] Combine ThirdBodyMgr and Enhanced3BConc as ThirdBodyCalc
The old classes are now deprecated. The name change was needed to avoid
collisions with no-longer-necessary template parameter.
2015-02-20 23:44:41 +00:00
Ray Speth
dab74d2d10 [Thermo] Deprecate mean_Y and sum_xlogQ methods of class Phase 2015-02-20 23:44:36 +00:00
Ray Speth
2ed8552939 [Thermo] Add a version of Phase::mean_X that takes vector_fp
This simplifies all internal calls to this function
2015-02-20 23:44:21 +00:00
Ray Speth
afb5b13eb4 [Python/Reactor] Use constant pressure reactor instead of adding Wall
This shows the preferred method for simulating a constant pressure reactor,
rather than using a Wall with a high expansion rate coefficient which introduces
unnecessary stiffness to the problem.
2015-02-20 23:43:38 +00:00
Ray Speth
0ad8d45baf [Thermo] Deprecate classes PseudoBinaryVPSSTP and electrodeElectron 2015-02-20 23:43:29 +00:00
Ray Speth
09ce99dc83 [Thermo] Eliminate redundant assignment of m_kk
m_kk is automatically set as species are added to a phase.
2015-02-20 23:43:12 +00:00
Ray Speth
42e7061bd8 [Thermo] Remove unnecessary counter variables
These counter variables just stored the length of another std::vector
member variable.
2015-02-20 23:43:04 +00:00
Ray Speth
17bb09a2da [Equil] Remove unused member variables from VCS_SPECIES_THERMO 2015-02-20 23:42:54 +00:00
Ray Speth
0f6fde82bd [Test] Update NasaPoly1Test to use the new SpeciesThermo constructor 2015-02-20 00:11:41 +00:00
Ray Speth
999a6e4615 [Thermo] Add missing variable to GeneralSpeciesThermo copy constructor
(and assignment operator)
2015-02-20 00:11:37 +00:00
Ray Speth
b4492cb8a3 [Thermo] Whitespace cleanup in MaskellSolidSolnPhase 2015-02-20 00:11:30 +00:00
Ray Speth
d7cbb30086 Eliminate unnecessary manual memory management of XML_Node
This also eliminates memory leaks that would occur if an exception were raised
in these methods.
2015-02-20 00:11:19 +00:00
Ray Speth
70b51c797c Fix function named specified in checkReactionBalance exception message 2015-02-20 00:11:16 +00:00
Ray Speth
e545d123c2 [Kinetics] Relax tolerance on reaction element balance
This allows use of some mechanisms with imprecise fractional product
stoichiometries.
2015-02-20 00:11:12 +00:00
Ray Speth
79cf2dcba7 Remove empty comment blocks 2015-02-20 00:11:05 +00:00
Ray Speth
10b73473f9 [Test] Add tests for elemental mass/mole fraction and mixture fraction 2015-02-17 23:24:00 +00:00
Thomas Fiala
faf222ca57 [1D/Python] Add method for calculating mixture fraction in diffusion flames 2015-02-17 23:23:57 +00:00
Thomas Fiala
4bc4fda90c Add C++ and Cython support for computing elemental mass/mole fractions 2015-02-17 23:23:51 +00:00
Thomas Fiala
6b5b8e7735 [1D] Add convenience functions for heat release rate 2015-02-16 17:24:34 +00:00
Ray Speth
170d50676a [Doc] Document definition of the sensitivity coefficient 2015-02-12 04:04:55 +00:00
Ray Speth
71d57330b6 [Thermo] Deprecate methods of IdealGasPhase that only worked for StatMech 2015-02-12 04:04:51 +00:00
Ray Speth
7acf0378c6 [Thermo] Improve usage of local variables
Also eliminate some unnecessary temporary variables.
2015-02-12 04:04:18 +00:00
Ray Speth
004798aef4 Remove unused header files 2015-02-12 04:04:15 +00:00
Ray Speth
86393cda42 [ck2cti] Allow conversion of standalone species thermo databases
This is useful when the species definitions are going to be used to define
phases in other input files.
2015-01-22 00:04:28 +00:00
Ray Speth
efb80dfe05 Remove unnecessary delimiter lines between functions
A single line of white space is sufficient and consistent. Also moved a couple
Doxygen strings out of source files.
2015-01-22 00:04:24 +00:00
Ray Speth
b8a99b4b83 Remove unnecessary explicit calls to default constructors 2015-01-22 00:04:12 +00:00
Ray Speth
0a3332aa43 [Thermo] Add simpler constructors for SpeciesThermoInterpType objects
These objects do not need to know the index of the species within the phase, so
the new constructors do not take that as an argument.

For the NASA polynomial constructors, the order of the coefficients arrays in
the new constructors has been modified to match the conventional ordering of the
coefficients as written in thermo database files.
2015-01-22 00:04:06 +00:00
Ray Speth
8d9f59a042 [Test] Modifiy regex for floats to avoid spurious matches like '3-4' 2015-01-22 00:04:05 +00:00
Ray Speth
598e47d644 [Thermo] NasaPoly1 stores coefficients in the conventional order 2015-01-22 00:04:03 +00:00
Ray Speth
b63d759918 [1D] Remove unused members of class StFlow 2015-01-15 21:15:24 +00:00
Ray Speth
020f3e756c [1D] Only update radiation flux for specified range grid points 2015-01-15 21:15:22 +00:00
Ray Speth
af447cb85f [1D] Avoid repeated search for indices of radiating species
Also, look for both uppercase and lowercase species names
2015-01-15 21:15:20 +00:00
Ray Speth
bade514587 [1D] Fix up getters/setters/default values for radiation values 2015-01-15 21:15:18 +00:00
Andreas Rücker
49c963143e [1D] Add simple radiation model for flames
Implements the radiation model of Liu & Rogg (1991). Optically thin limit,
gray-gas approximation using Planck mean absorption coefficients. Considers
emissions from CO2 and H2O, with the temperature-dependent absorption
coefficients calculated using polynomial fits to results from RADCAL
(Grosshandler, 1993).
2015-01-15 21:15:15 +00:00
Ray Speth
217a001a08 [Doc] Correct title of "Chemically Reacting Flow" 2015-01-15 21:15:12 +00:00
Ray Speth
ad1cd8c7bb Remove unnecessary numerical constants 2015-01-15 21:15:07 +00:00
Ray Speth
a9754874dc [Doc] Document MacPorts installation option
Thanks to Thomas Fiala for writing the Cantera portfile and getting it added to
MacPorts.
2015-01-13 23:07:06 +00:00
Ray Speth
fdf7db716e [Transport] Construct gas phase Transport without GasTransportParams
Since most of the members of class GasTransportParams were copied to
MixTransport or MultiTransport, they have instead been made members of
GasTransport and populated directly, making class GasTransportParams
unnecessary.
2015-01-13 23:07:00 +00:00
Ray Speth
44a99de4e0 [Test] Add tests for manually-constructed Transport objects 2015-01-13 23:06:59 +00:00
Ray Speth
bdc568d416 [Transport] Make constructors for MixTransport and MultiTransport public 2015-01-13 23:06:57 +00:00
Ray Speth
9f6c9e3a46 [ck2cti] Fix reading some input files containing non-unicode characters
In Python 3, attempting to convert some mechanisms would give errors like the
following:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 348:
invalid start byte
2015-01-12 19:55:37 +00:00
Ray Speth
94d924e32d [Transport] Use gas transport data from Species objects
This makes initialization of GasTransport objectsindependent of the XML input
format.
2015-01-08 23:36:26 +00:00
Ray Speth
2a50dc50f7 [Thermo] Add accessor for Species objects 2015-01-08 23:36:24 +00:00
Ray Speth
8022e9e01e [Transport] Add gas phase transport parameters to Species objects 2015-01-08 23:36:22 +00:00
Ray Speth
5f33f426b8 Remove bogus transport data from stoichSolidKinetics test input file 2015-01-08 23:36:19 +00:00
Ray Speth
07fd8e26c0 [Transport] Move gas transport initialization to class GasTransport
Model-specific initialization code belongs in the classes implementing
the corresponding model, not in TransportFactory.
2015-01-07 23:30:57 +00:00
Ray Speth
141e7d9b40 [1D] Make argument to Inlet1D::setMoleFractions const
Fixes Issue 246.
2015-01-06 23:37:31 +00:00
Ray Speth
e94ec95988 [Python] Specify python executable to be used in shebang line for scripts
This fixes a bug in the Windows installer where the path to python.exe on the
machine where the installer is built is used, and also allows us generate
different shebang lines for the Python 2 and Python 3 modules.

Fixes Issue 247.
2015-01-06 23:37:30 +00:00
Ray Speth
e05da2a6a5 [Transport] Fix conversion of dipole moments from Debye to SI units
The existing formulas for converting Debye to SI units did not maintain the
correct dimensionality for the dipole moment. The updated formulas do not change
the results of any calculations, but the dipole moment is now correctly
expressed in Coulomb-meters.
2015-01-06 23:37:28 +00:00
Ray Speth
79baacc605 [Doc] Fix Doxygen subsection groupings 2015-01-06 23:37:25 +00:00
Ray Speth
d5907088a7 [Doc] Note availability of packages for Ubuntu 14.10 (Utopic Unicorn) 2015-01-06 23:37:22 +00:00
Steven DeCaluwe
8070d661d2 Tidying up cp_Ref calcualtions in MultiTransport 2014-12-16 19:40:23 +00:00
Steven DeCaluwe
1f6d0d898a Forgot to delete old definition of 'cp' in previous commmit. 2014-12-16 13:32:11 +00:00
Steven DeCaluwe
661758d64d Correcting Cp_ref calculation in MultiTransport, which previously
assumed an ideal gas phase.
2014-12-16 13:32:08 +00:00
Ray Speth
f3b66ec5f7 [Doc] Add search box to Doxygen documentation
This also fixes a bug where jquery.js was not being copied to the directory with
the generated documentation on some operating systems (Debian-based Linux
distributions).
2014-12-12 01:37:12 +00:00
Ray Speth
ca9b7625d0 [Doc] Remove reference to non-existent 'State.h' 2014-12-12 01:37:06 +00:00
Ray Speth
ac6f7fefdf [Python] Clarify properties of class Mixture which can be set 2014-12-12 01:37:00 +00:00
Ray Speth
28210182fb [SCons] Describe allowable values for msvc_version 2014-12-12 01:36:59 +00:00
Ray Speth
ddfc15bb77 Allow CANTERA_DATA to include multiple directories 2014-12-12 01:36:56 +00:00
Ray Speth
693d5caaf6 Clean up flamespeed demo 2014-12-12 01:36:53 +00:00
Ray Speth
8c7e694dbf Fix compiler warnings in flamespeed demo 2014-12-12 01:36:51 +00:00
Ray Speth
c5ed13be9f Remove resolved todo on flamespeed.cpp
This example now works as a result of the changes to multicomponent transport
evaluation in r3147 and r3148.
2014-12-12 01:36:49 +00:00
Ray Speth
4e6205fa8c Eliminate memory leak in demoequil.cpp 2014-12-12 01:36:48 +00:00
Ray Speth
7d19ee9488 Remove unneeded work array management from MultiNewton 2014-12-12 01:36:45 +00:00
Ray Speth
edac95d06d Remove unnecessary manual memory management from examples 2014-12-12 01:36:41 +00:00
Ray Speth
0ad587f50b Remove some unnecessary temporary references 2014-12-12 01:36:35 +00:00
Ray Speth
0e51465722 [Doc] Describe specification of reaction orders in CTI files 2014-12-05 23:33:42 +00:00
Ray Speth
ba42bc6da2 [Doc] Remove suppression of Doxygen autolinking
In those cases where the name is actually a reference to the class, we actually
want Doxygen to apply formatting to the name and link to the class's
documentation, so we shouldn't suppress that behavior with the prepended '%'.
2014-12-05 23:33:24 +00:00
Ray Speth
3812215ce2 [Doc/Python] Add docstrings for some 1D methods and properties 2014-12-05 23:33:22 +00:00
Ray Speth
d76b67f5fb [ck2cti] Check for formatting errors in elemental composition
Formatting errors (e.g. values in incorrect columns) result in an empty
elemental composition. Raise an exception if this occurs.
2014-12-05 23:33:20 +00:00
Ray Speth
26cb89b228 [Doc] Update compilation and installation instructions for OS X
These instructions apply to OS X 10.9 and 10.10 and XCode 5 and 6.
2014-12-05 23:33:18 +00:00
Ray Speth
4ca0bedecd Remove unnecessary use of const_cast 2014-12-05 23:33:17 +00:00
Ray Speth
d830012340 Remove unnecessary explicit calls to operator() and operator= 2014-12-05 23:33:15 +00:00
Ray Speth
cdf764be4a [Transport] Allow CK_Mix and CK_Multi transport models in 1D flames 2014-11-19 20:27:57 +00:00
Ray Speth
34fa3aa5df [Doc] Add more documentation for class Reaction and its children 2014-11-19 20:27:51 +00:00
Ray Speth
c1e4430c8a [Doc] Fix formatting of Doxygen comments for Reaction classes 2014-11-19 20:27:38 +00:00
Ray Speth
7a4d13a5c2 [Test] Display failing test program exit codes in test log 2014-11-15 19:27:44 +00:00
Ray Speth
404a9b03d2 [Test] Use exit code to indicate failure in surfSolver test 2014-11-15 19:27:12 +00:00
Ray Speth
4e99746457 [Kinetics] Allow explicit specification of the sticking species 2014-11-15 19:26:37 +00:00
Ray Speth
ced2d20dd8 Use XML_Node::attrib when it is more clear than using operator[] 2014-11-15 00:47:31 +00:00
Ray Speth
de3d212062 [SCons] Deprecate unnecessary build options 2014-11-15 00:47:30 +00:00
Ray Speth
5958578c40 [Kinetics] Check for negative and non-reactant reaction orders
Allow non-reactant orders for electrochemical reactions

Allow negative orders specifically requested, e.g. by setting the
'negative_orders' option in the CTI definition of the reaction.
2014-11-15 00:47:25 +00:00
Ray Speth
e09db92756 [Doc] Fix some Doxygen warnings 2014-11-15 00:47:19 +00:00
Ray Speth
7438e791b5 Update comments in Kinetics::addReaction 2014-11-15 00:47:18 +00:00
Ray Speth
a2c415aaa5 [Kinetics] Add reactions using Reaction instead of ReactionData
Deprecate class ReactionData and all related functions.
2014-11-15 00:47:15 +00:00
Ray Speth
e3022a8057 [Kinetics] Check Reaction objects for orders on reversible reactions 2014-11-15 00:47:13 +00:00
Ray Speth
82fbff7a05 [Kinetics] Validate rate coefficient data for Reaction objects 2014-11-15 00:47:09 +00:00
Ray Speth
6727902c3f [Kinetics] Allow skipping third-body efficiencies when using Reaction 2014-11-15 00:47:04 +00:00
Ray Speth
ffe3eb5e5a [Kinetics] Check for undeclared species when using Reaction objects
Skip the reaction or raise an exception based on the
'm_skipUndeclaredSpecies' flag
2014-11-15 00:46:59 +00:00
Ray Speth
d72c2e7132 [Kinetics] Add reaction balance check to Kinetics
This applies to reactions added using Reaction objects. Previously, the
check would only be performed for reactions added from an XML tree.
2014-11-15 00:46:57 +00:00
Ray Speth
e2f15e97d4 [Kinetics] Add duplicate reaction checks using Reaction objects 2014-11-15 00:46:54 +00:00
Ray Speth
c39b93c424 [Kinetics] Automatically generate reaction equation strings 2014-11-11 00:12:28 +00:00
Ray Speth
f51ed2aa02 [Kinetics] Add factory functions for Reaction classes 2014-11-11 00:12:26 +00:00
Ray Speth
c8ecedb140 [Test] Make reaction equation test independent of species ordering 2014-11-11 00:12:21 +00:00
Ray Speth
53fb3bd341 [Test] Prevent infinite loop in TestSofcKinetics
If an infinite loop occurs in the Newton solver, it indicates a problem, but
this way the test will finish (and fail).
2014-11-11 00:12:19 +00:00
Ray Speth
a3645ee925 [Test] Set reaction type in surfkin test input file
Surface reactions must have the XML attribute 'type="surface"'. This is set
automatically by the CTI 'surface_reaction' class.
2014-11-11 00:12:15 +00:00
Ray Speth
69650b8ec2 [Kinetics] InterfaceReaction supports sticking coefficients 2014-11-11 00:12:13 +00:00
Ray Speth
c4e6790fda [Kinetics] Implement addReaction from Reaction for InterfaceKinetics 2014-11-11 00:12:08 +00:00
Ray Speth
b19d7342fa [Kinetics] Refactor InterfaceKinetics::addReaction 2014-11-11 00:12:03 +00:00
Ray Speth
e4d2ed9b78 [Kinetics] Add SurfaceArrhenius constructor from Arrhenius 2014-11-11 00:11:59 +00:00
Ray Speth
028bca0d73 [Kinetics] Implement addReaction from Reaction for AqueousKinetics 2014-11-11 00:11:55 +00:00
Ray Speth
be585aab3e [Kinetics] Implement direct constructor for ChebyshevRate 2014-11-11 00:11:33 +00:00
Ray Speth
191e9bcc42 [Kinetics] Implement direct constructor for P-log reactions 2014-11-11 00:11:31 +00:00
Ray Speth
b4afcd3e8e [Kinetics] Implement addReaction using Reaction objects for GasKinetics
This covers elementary, third-body, and falloff reaction types
2014-11-11 00:11:25 +00:00
Ray Speth
c0944f1700 [Kinetics] Basic implementation of class Reaction and descendants 2014-11-11 00:11:17 +00:00
Ray Speth
82dca88af2 Fix VPSSMgr error messages
Display the actual name of the species rather than the name of the species XML
node, which is always just "species".

Make method names in error messages match the methods where they are generated.
2014-11-11 00:11:05 +00:00
Ray Speth
39b751d655 [Equil] Always use the member function versions of 'equilibrate'
The various free functions are deprecated, along with the now unnecessary
headers 'equil.h' and 'equilibrium.h'.
2014-11-08 00:53:45 +00:00
Ray Speth
8c934ab678 [Equil] Implement equilibrate as a method of MultiPhase
This differs from the current equilibrate method in that it can use either of
the multiphase equilibrium solvers.
2014-11-08 00:53:42 +00:00
Ray Speth
e16e998dd7 [Equil] Implement equilibrate as a method of ThermoPhase
The Cython interface now calls this equilibrate function.

Unlike the free function 'equilibrate', this new equilibrate method actually
does what the documentation describes regarding the 'solver' argument. This
means that there are cases where failures of the MultiphaseEquil solver were
previously being hidden by a subsequent successful solution using the ChemEquil
solver. These tests have been marked as known failures.
2014-11-08 00:53:39 +00:00
Ray Speth
4bcbe862a9 Fix copy constructor and assignment operator for SpeciesThermo classes 2014-11-08 00:53:36 +00:00
Ray Speth
926b78cc7d Deprecate Cabinet::assign 2014-11-08 00:53:35 +00:00
Ray Speth
363d3ec3f0 Remove HMWSoln 'testProb' constructor
This constructor was used only in HMW_test_1, and it just set the same
parameters that were already read from the XML input file.
2014-11-08 00:53:33 +00:00
Ray Speth
eb71d8cdd0 Deprecate "copyData" method of array classes 2014-11-08 00:53:30 +00:00
Ray Speth
24c509f539 [Kinetics] Fix some cases where duplicate reactions were not detected
Also add several tests which check that the various kinds of duplicate
reactions are being identified as errors or allowed as intended.
2014-11-07 02:15:03 +00:00
Ray Speth
ecf4301208 Remove redundant, inaccessible Tortuosity classes 2014-11-07 02:14:59 +00:00
Ray Speth
8b8a95a2ff Deprecate unused stringUtils functions 2014-11-07 02:14:57 +00:00
Ray Speth
a6a10b854c [Reactor] Add damping factor to setState Newton iteration
This resolves convergence issues in somes cases where the iteration would
oscillate around the true solution.
2014-11-07 02:14:55 +00:00
Ray Speth
74a522bdda [Test] Add tests for parseCompString
These tests are added as the first part of the new gtest test suite 'general'
2014-11-07 02:14:54 +00:00
Ray Speth
07f8d520ee Improved implementation of parseCompString
Improvements:

- Tolerate formatting irregularities such as spaces befpre or after the colon
  (e.g. 'H2: 1.0')

- Allow names containing commas and semicolons

- Detect errors such as no value being supplied for the last element (e.g. 'H2')

- Single implementation handles both the case where a list of valid names is
  supplied and when any name is allowed
2014-11-07 02:14:52 +00:00
Ray Speth
37f71bd912 [Kinetics] Deprecate 'reactants' and 'products' methods
These methods are rarely used, and they expose a now-unused internal data
structure that isn't even correct for all reactions.
2014-11-07 02:14:50 +00:00
Ray Speth
7eb726d3d9 [Kinetics] Remove unnecessary copy constructors and assignment operators
The data members of C1, C2, C3, C_AnyN, and StoichManagerN are all copyable and
assignable, so it's better to just let the compiler supply these.
2014-11-01 00:13:52 +00:00
Ray Speth
fd777096b2 [Kinetics] Remove unused variables from StoichManagerN 2014-11-01 00:13:51 +00:00
Ray Speth
b2afb1a7a9 [Kinetics] Handle stoichiometry and reaction order in StoichManagerN
In the previous implementation, the higher-level classes were making unnecessary
assumptions about the optimizations used in StoichManagerN for reactions with
unity stoichometric coefficients.
2014-11-01 00:13:49 +00:00
Ray Speth
557ffffc5b [Kinetics] Combine ReactionStoichMgr with class Kinetics
Class ReactionStoichMgr is now deprecated, as all of its functions were just
pass-throughs between Kinetics and StoichManagerN.
2014-11-01 00:13:46 +00:00
Ray Speth
f1387be98a Formatting cleanup of importKinetics 2014-11-01 00:13:44 +00:00
Ray Speth
50a08db7c0 [Kinetics] Move some function definitions out of RxnRates.h
The performance-sensitive update_C and updateRC methods remain in the header
file.
2014-11-01 00:13:42 +00:00
Ray Speth
0fd5f14288 [SCons] Rename 'cython' test suite to 'python'
Since the old Python module is gone, we don't need this one to have a different
name.
2014-11-01 00:13:41 +00:00
Ray Speth
fbe8a7cd3f Make common interface to shared_ptr available
Use configure-time checks to find an available implementation of shared_ptr from
the standard library (C++11), TR1 (C++03), or Boost.
2014-11-01 00:13:39 +00:00
Ray Speth
06732a6581 [Kinetics] Merge SRI5 and SRI3 implementations 2014-10-30 21:10:12 +00:00
Ray Speth
9c008a753b [Kinetics] Merge Troe3 and Troe4 implementations 2014-10-30 21:10:09 +00:00
Ray Speth
79d9accaa9 [Kinetics] Clean up documentation of Falloff classes 2014-10-30 21:10:07 +00:00
Ray Speth
d1295a5249 [Kinetics] Make Falloff class declarations public 2014-10-30 21:10:04 +00:00
Ray Speth
3b71d75ada [Kinetics] Add class BulkKinetics
This class serves as a common base for GasKinetics and AqueousKinetics,
eliminating most of the redundancy between the two classes.
2014-10-30 21:09:59 +00:00
Ray Speth
6f0fb5cf8d [Kinetics] Refactor and deprecate installReagents 2014-10-29 23:32:27 +00:00
Ray Speth
a8659c86cc [Kinetics] Removed unnecessary initializations 2014-10-29 23:32:24 +00:00
Ray Speth
3ab37254eb [Kinetics] Move m_rfn and m_rkcn up to Kinetics 2014-10-29 23:32:19 +00:00
Ray Speth
987bb8f115 [Kinetics] Remove unused variable 'm_fwdOrder' 2014-10-29 23:32:16 +00:00
Ray Speth
ba87385c86 [Kinetics] Finish deprecating duplicate "reactionNumber" function
Remove the private implementations outright.
2014-10-29 23:32:12 +00:00
Ray Speth
d5262e8bee [Kinetics] Move stoich manager and related functions up to Kinetics 2014-10-29 23:32:07 +00:00
Ray Speth
5ca49efff1 [ck2cti] Adjust number of species per line dynamically 2014-10-29 23:32:04 +00:00
Ray Speth
7c6ef9d3c4 [ck2cti] Eliminate trailing whitespace in species list 2014-10-29 23:32:01 +00:00
Ray Speth
2e23362206 [ck2cti] Remove 'reaction' section label when there are no reactions 2014-10-29 23:31:58 +00:00
Ray Speth
c1b64968a6 [ck2cti] Keep full precision of NASA 9-coefficient thermo data
The 9-coefficient format keeps 10 digits for each coefficient, compared to 9 for
the 7-coefficient format.
2014-10-29 15:36:31 +00:00
Ray Speth
da35e24151 [SCons] Re-cythonize after changes to header files 2014-10-29 15:36:28 +00:00
Ray Speth
e02a7b0249 [Doc] Describe paths to examples for Homebrewed installation 2014-10-22 22:04:24 +00:00
Ray Speth
dd00d1bc9e [Doc] Add instructions on adding Homebrewed Cantera to the Matlab path 2014-10-22 21:48:24 +00:00
Ray Speth
f8f1c1d46d [Doc] Update OS X installation instructions to fix finding Sundials 2014-10-22 21:48:23 +00:00
Ray Speth
6287c2c311 [Kinetics] Remove unused m_index member of Kinetics classes 2014-10-22 21:48:19 +00:00
Ray Speth
584c57d569 [Kinetics] move "reaction type" up to Kinetics 2014-10-22 21:48:15 +00:00
Ray Speth
d65dbe3da2 [Kinetics] Move common Kinetics features up to the base class 2014-10-22 21:48:11 +00:00
Ray Speth
e7236df51f Formatting cleanup of InterfaceKinetics 2014-10-22 21:48:09 +00:00
Ray Speth
a208c54d1c Add a version of XML_Node::getChildren with a simpler interface 2014-10-22 21:48:04 +00:00
Ray Speth
424a04bffc [Test] Limit number of lines printed after failed test comparison 2014-10-17 23:44:59 +00:00
Ray Speth
7d9a6eeefc Deprecate class SpeciesThermoFactory 2014-10-17 23:44:56 +00:00
Ray Speth
e390beacbe Handle MineralEQ3 adjustment without using ThermoPhase object 2014-10-17 23:44:52 +00:00
Ray Speth
4dd3e1d2bc Use Species objects when adding species from XML 2014-10-17 23:44:47 +00:00
Ray Speth
11caddea1e Implement factory functions for SpeciesThermoInterpType 2014-10-17 23:44:42 +00:00
Ray Speth
5bc4a12e2e Add options for handling Species containing undefined elements 2014-10-17 23:44:37 +00:00
Ray Speth
26b6f190f3 Introduce class Species 2014-10-17 23:44:31 +00:00
Ray Speth
53abe2ee9a [Thermo] Always use GeneralSpeciesThermo
The specialized SpeciesThermo derived types offer no performance benefit now
that GeneralSpeciesThermo manages calculation of the temperature terms
efficiently.
2014-10-15 02:03:06 +00:00
Ray Speth
5cb1d6b338 [Test] Add some SpeciesThermoInterpType tests 2014-10-15 02:03:03 +00:00
Ray Speth
6c3fc200b6 Clean up implementation of GeneralSpeciesThermo 2014-10-15 02:03:01 +00:00
Ray Speth
5166336a32 [Thermo] Add continuity check to NasaPoly2 2014-10-15 02:02:58 +00:00
Ray Speth
0da3424249 [Thermo] Improve performance of GeneralSpeciesThermo
Compute the temperature polynomial only once for each parameterization type. By
doing this, we essentially get performance parity with the specialized
SpeciesThermo types (NasaThermo, ShomateThermo, SimpleThermo).
2014-10-15 02:02:55 +00:00
Ray Speth
227b342d1b Fix Nasa9PolyMultiTempRegion::updateProperties to use the correct polynomial 2014-10-15 02:02:53 +00:00
Ray Speth
40470c46af [Thermo] Separate temperature polynomial calculation from property update 2014-10-15 02:02:48 +00:00
Ray Speth
930bcceddc Clean up formatting of SpeciesThermoInterpType 2014-10-15 02:02:46 +00:00
Harry Moffat
e5c3377dd2 Changed the name of a few internal variables. 2014-10-10 01:40:40 +00:00
Ray Speth
b50ab99326 [Test] Fix fileLog class used in DH_graph_1
The class was missing the implementation of writeendl, which caused the
base class method to be called, occasionally leading to confusing test failures.

Not setting the mode of the output file caused it not to be automatically created,
so the log file usually wasn't even being written.
2014-10-08 16:54:55 +00:00
Ray Speth
044235c065 [SCons] Remove unnecessary uses of pjoin 2014-10-08 16:54:49 +00:00
Ray Speth
43f022384c Add version of installVPThermoForSpecies without unused arguments
Deprecate the old version of SpeciesThermoFactory::installVPThermoForSpecies.
2014-10-08 16:54:44 +00:00
Ray Speth
c4a5f2667f Remove CTML_VERSION macros
CTML_VERSION_1_4_1 was never used, and defining CTML_VERSION_1_4 broke reading
values written by the addInteger and addFloat functions with the getInteger and
getFloat functions, respectively.
2014-10-08 16:54:42 +00:00
Ray Speth
0db18ad0b1 [SCons/Test] Re-run tests if shared library changes 2014-10-08 16:54:39 +00:00
Ray Speth
17c3b019c0 [Kinetics] Deprecate unused methods for writing hard-coded mechanisms 2014-10-08 16:54:35 +00:00
Ray Speth
609a7e07ac [Kinetics] Deprecate unused methods of rate coefficient implementations 2014-10-08 16:54:31 +00:00
Ray Speth
c31aadc57f [Doc] Give better examples for using 'const_cp' 2014-10-08 16:54:26 +00:00
Ray Speth
4457b4297c [Doc] Describe syntax for specifying coverage dependencies 2014-10-08 16:54:21 +00:00
Ray Speth
4fe752f5f2 [Kinetics] Fix calculation of coverage-dependent reaction rates
The formula used was not consistent with the standard formulation for
coverage-dependent reaction rates, which uses 10 as the base for the
temperature-independent term with the coverage in the exponential (see
Eq. 11.113 of Kee et al.).

The impact of this change should be minor, as most coverage-dependent reaction
rates appear not to use this term of the parameterization.
2014-10-08 16:54:18 +00:00
Ray Speth
b1e89a09a8 [Doc] Fix errors in NASA9 formula documentation
Also, remove duplicate (erroneous) documentation from Nasa9PolyMultiTempRegion
and replace this with a reference to the docs for Nasa9Poly1.
2014-10-08 16:54:14 +00:00
Ray Speth
f58fb95404 [Doc] Fix version number shown in Doxygen documentation 2014-10-08 16:54:09 +00:00
Bryan W. Weber
9ed87e857c [Cython] Allow None when setting the quality of a PureFluid
Allow None as an option for the quality as well as the
temperature and pressure when setting the state of a PureFluid.
Completes r3213.
2014-10-08 12:42:15 +00:00
Bryan W. Weber
7c60182142 Allow None when setting the state of a PureFluid
Allow None as an option when setting the temperature and quality or
pressure and quality of a PureFluid. This mimics similar functionality
for Solutions.
2014-10-08 12:37:41 +00:00
Ray Speth
5624794faf Remove unusable Adsorbate::install method
This method shouldn't exist, since it's not part of the base class
(SpeciesThermoInterpType) interface.
2014-10-03 22:15:11 +00:00
Ray Speth
55fab6ca83 Deprecate unused return value of importPhase 2014-10-03 22:15:08 +00:00
Ray Speth
6d4271fdfe [Test] Improve visibility of total test suite failures
Treat crashes when running the GTest test programs and the Python test suite as
being more severe than individual test failures.
2014-10-03 22:15:06 +00:00
Ray Speth
a5149ae665 [1D] Reduce default minimum grid size
The new value is OK even for high pressure flames - it is less than the mean
free path in air at 100 bar and 300 K.
2014-10-03 22:15:03 +00:00
Ray Speth
4910b1bc1c Fix compilation with Visual Studio 2013
Fixes regression introduced in r3125.

Resolves Issue 240.
2014-10-03 16:48:21 +00:00
Ray Speth
787c90adeb [Thermo] Make header files for SpeciesThermoInterpType descendants public 2014-10-03 01:45:58 +00:00
Ray Speth
5b1b08849c Additional uses for getValue with default value 2014-10-03 01:45:54 +00:00
Ray Speth
a74fda8ad2 Introduce 'getValue' to avoid making std::map members mutable 2014-10-03 01:45:49 +00:00
Ray Speth
91f3a2b073 Fix statements that called the assignment operator twice 2014-10-03 01:45:41 +00:00
Ray Speth
ceeaaecae7 [Test] fix some size_t warnings 2014-10-03 01:45:38 +00:00
Ray Speth
23921c7889 [Test] Run 'appdelete' at end of GTest tests
This makes it easier to find memory leaks when using Valgrind by suppressing
false positives associated with data cached by Cantera.
2014-10-01 17:52:28 +00:00
Ray Speth
ab4813c592 [Test] Fix memory leaks in CtiConversionTest and ChemkinConversionTest 2014-10-01 17:52:26 +00:00
Ray Speth
afe9ccb03e Remove unnecessary checks before deleting pointers 2014-10-01 17:52:23 +00:00
Ray Speth
1a5f75dd2d [Test] Use Cantera shared library for tests, when possible
On Linux systems, link tests against the Cantera shared library, rather than the
static library to reduce the size of the compiled test suite. This saves over 1
GB of disk space when compiling with debug symbols enabled, and also reduces the
run time of the test suite.

This does not work on Windows, where the shared library only exports the Cantera
C interface.
2014-10-01 17:52:21 +00:00
Ray Speth
4544fd3392 [Test] Build tests with optimization disabled
Compiling the tests takes longer than running them, so it actually saves time to
compile the tests with optimizations disabled.
2014-10-01 17:52:18 +00:00
Ray Speth
b0085eb58e [CTI] Check for correct number of coverage parameters
This detects errors such as providing two sets of coverage parameters as a
single list, rather than as a list with separate entries for each set of
coverage parameters.
2014-09-29 19:13:21 +00:00
Ray Speth
c0dc7bb922 [SCons] Setting 'msvc_version' implies 'toolchain=msvc' 2014-09-29 19:13:18 +00:00
Ray Speth
5c26f7b003 [Test] Preliminary tests for constructing a phase without an input file 2014-09-27 00:09:16 +00:00
Ray Speth
79461c34e8 [Thermo] Add default value for 'id' argument of 'newPhase' 2014-09-27 00:09:11 +00:00
Ray Speth
4baccc732c [Thermo] Simplify interface for adding elements to a Phase
Phase::addElements(string name, ...) is the single entry point for adding
elements. It always perform the uniqueness check, and can do the extra
additional work required to add elements to a phase that already has species,
removing the need for "freezing" the phase's elements. Parsing the XML tree for
elements is now handled in "installElements". The variant element-adding methods
are deprecated.
2014-09-27 00:09:05 +00:00
Ray Speth
473827a8a6 [Thermo] Check to make sure parameterizations are of the correct type 2014-09-27 00:09:02 +00:00
Ray Speth
1cb688150e [Thermo] Fix SpeciesThermoDuo to pass on the parameterization type 2014-09-27 00:08:59 +00:00
Ray Speth
a8f4c76097 [Thermo] Check to make sure thermo data is installed for all species 2014-09-27 00:08:54 +00:00
Ray Speth
89888e6697 [Thermo] Fix derived classes to always call parent's initThermo()
Remove unnecessary reimplementations that only called the parent's method.
2014-09-27 00:08:46 +00:00
Ray Speth
f46b61a740 Make "string&" arguments "const string&"
This way, these functions can accept constant strings, including string
literals.
2014-09-26 13:45:12 +00:00
Ray Speth
53102e8d70 [Test] Convert 'fracCoeff' test to GTest 2014-09-26 13:45:06 +00:00
Ray Speth
992782d1e2 [Test] Show test class and test name for failing GTest tests 2014-09-26 13:45:02 +00:00
Ray Speth
f3fc8f2ce2 [Thermo] Use findXMLPhase in initThermoFile
This allows many constructors which take a filename to work with CTI files
directly, and to make use of the parsed XML cache.
2014-09-26 13:44:57 +00:00
Ray Speth
337c573958 [Test] Move NASA9poly test to GTest test suite 2014-09-24 23:18:01 +00:00
Ray Speth
5ecdc1a4e1 [Equil] Deprecate VCS 'UseCanteraCalls' flag
When this flag is removed, the behavior will be as if the flag's value were
'true'.
2014-09-24 23:17:58 +00:00
Ray Speth
5298f703c3 [Doc] Add note about running 'scons install' as Administrator on Windows 2014-09-24 23:17:55 +00:00
Ray Speth
ca68fbc075 Rename Cabinet member variables to avoid using reserved identifiers
Names containing double underscores are reserved for the C++ implementation.
2014-09-24 23:17:50 +00:00
Ray Speth
de9928977c [ck2cti] Preserve mechanism header comment block 2014-09-24 23:17:47 +00:00
Ray Speth
a3bba51f06 [ck2cti] Preserve comments in the REACTIONS section 2014-09-24 23:17:44 +00:00
Ray Speth
21e9892909 [Transport] Fix handling of default value for acentric_factor
If acentric_factor isn't specified in the CTI, don't include it when generating
the XML.
2014-09-23 02:20:57 +00:00
Ray Speth
8b4c5336ba [Cython/Reactor] Add Reactor keyword argument 'volume' 2014-09-23 02:20:55 +00:00
Ray Speth
f14cd6d471 [Cython/Reactor] Raise exception for unrecognized keyword arguments 2014-09-23 02:20:53 +00:00
Ray Speth
ab6ae72e0d Add missing reaction to "h2o2" mechanism
This mechanism, which is supposed to be the H2 mechanism extracted from GRI-3.0,
was actually missing the reaction H+O2+M <-> HO2+M. This updates the original
input file, regenerates h2o2.cti, and updates the blessed output file for one
test (which changed because the newer version of ck2cti actually retains the
given precision of the transport properties).
2014-09-23 02:20:49 +00:00
Ray Speth
dd9bb68eaf [SCons] Clean up additional data files 2014-09-23 02:20:47 +00:00
Ray Speth
8bb65e4cee Add user-specified directories to the beginning of the search path
This way, users are able to override the defaults.
2014-09-23 02:20:45 +00:00
Ray Speth
83ae446142 Remove redundant copy of h2o2.xml 2014-09-23 02:20:43 +00:00
Ray Speth
8e7588671f [Cython/Reactor] Print messages from exceptions raised in Python callbacks
Unlike the normal case for CallbackError, where the error message is visible
when it is re-raised in Python, errors occuring during reactor network
integration aren't necessarily terminal, so they can't simply be re-raised after
returning to Python. But we still want to display the information they contain,
so we need to extract that information from the Python exception objects in the
what() function that is called by cvodes_rhs.
2014-09-23 02:20:41 +00:00
Ray Speth
eb468b6a48 [SCons] Fix setting 'python_module_loc' with minimal Python module 2014-09-18 22:59:05 +00:00
Ray Speth
606a18e951 [Cython/Thermo] Add mass/mole_fraction_dict methods
This complements the ability to set the composition using a dict when working
with phases with different sets of species.
2014-09-18 22:59:02 +00:00
Ray Speth
09db5a498a [Thermo] Add getMass/MoleFractionsByName functions with thresholds
This makes it easier to set the composition of a phase based on the composition
of another phase with a different set of species. The threshold argument allows
species with negligible concentrations to be skipped.

Deprecate the unused getMoleFractionsByName function that didn't return a
value.
2014-09-18 22:58:59 +00:00
Ray Speth
022c31fe49 [Doc] Add installation instructions for Ubuntu PPA 2014-09-17 16:02:34 +00:00
Ray Speth
459ff956c2 [MixMaster] Fix crash when using Tcl 8.6
Tcl/Tk changed some operations which previously resulted in undefined behavior
into errors, including one case that occurred when updating the "Mixtures" menu
in MixMaster.

MixMaster now modifies the existing Menu when adding an item, rather than
completely regenerating it, which avoids this problem.

Fixes Issue 235.
2014-09-15 18:05:04 +00:00
Ray Speth
1ea0122c15 [Transport] Check for invalid 'geometry' flags
For those cases where the number of atoms in a molecule precludes certain
geometries, check to make sure that that the geometry flag is set
appropriately.
2014-09-15 18:05:00 +00:00
Ray Speth
2fc09337c0 Deprecate XML_Node::operator() 2014-09-15 18:04:57 +00:00
Ray Speth
4081d41841 [1D] Change 'save' behavior to avoid endlessly appending solutions
Instead of changing the solution 'id' provided by the user to avoid
duplicates, replace the solution with the same id.
2014-09-15 18:04:54 +00:00
Ray Speth
2a69d99d83 [1D] Update thermo properties during Jacobian updates
In combination with the previous commit, this significantly improves the
convergence behavior of the solver when using multicomponent transport
properties. In many cases, the solver is now able to directly solve the
multicomponent problem directly from the mixture-averaged solution without any
timestepping.
2014-09-07 21:17:05 +00:00
Ray Speth
92f8fc4292 [1D] Change multicomponent diffusion calculation to improve convergence
Change the formulation of multicomponent diffusion fluxes to avoid using the
equivalent Fickian diffusion coefficient. That formulation leads to negative
diffusivities for some species at some grid points, which generate numerical
instabilities while timestepping. This formulation produces a more dense
Jacobian, but with a much better eigenvalue spectrum.
2014-09-07 21:17:03 +00:00
Ray Speth
a837dfdc6d [1D] Add 'clearStats' function for clearing accumulated solver stats 2014-09-07 21:17:00 +00:00
Ray Speth
959cbb7d7a Remove unimplemented method MultiPhaseEquil::printInfo 2014-09-07 21:16:57 +00:00
Ray Speth
38b5434fc4 [ck2cti] Expand paths containing '~' and '~user' 2014-09-07 21:16:54 +00:00
Ray Speth
8e0335e9b1 [ck2cti] Add line numbers for errors parsing transport data 2014-09-07 21:16:52 +00:00
Ray Speth
f4e277573d [Doc] Improve description of CTI format and CTI/CTML relationship 2014-09-07 21:16:49 +00:00
Ray Speth
e65539833d [ck2cti] Fix error message produced when the input file is unreadable 2014-09-07 21:16:46 +00:00
Harry Moffat
e0527bc899 Allowed interfacial reactions without metal phases to work within this class.
Fixed an error in getExchangeCurrentDensityFormulation().
2014-09-03 22:27:51 +00:00
Harry Moffat
42a934a37e InterfaceKinetics rewrite -> next iteration. Addition of Affinity input terms. 2014-09-03 16:46:53 +00:00
Harry Moffat
021c8f9880 InterfaceKinetics rewrite -> addition of BV and Affinity reactions, next interation. 2014-09-03 04:55:27 +00:00
Ray Speth
6a07722675 [Thermo] Remove unnecessarily overridden methods in PureFluidPhase 2014-09-02 22:34:25 +00:00
Thomas Fiala
d6dd968891 [1D/Examples] Add new diffusion flame examples
These two examples show how to run sequences of diffusion flames while varying
certain parameters (pressure or strain rate). They make use of scaling rules to
provide improved initial guesses for the continuation runs, increasing
computational efficiency.

Resolves Issue 229.
2014-09-02 22:34:23 +00:00
Ray Speth
1e2ba1f0d2 [1D/Python] Fix spurious 'divide by zero' warning 2014-09-02 22:34:21 +00:00
Thomas Fiala
46231379c1 [1D/Python] Add solver warnings for diffusion flame solutions
Adds warnings that check if the solution of a counterflow diffusion flame is
reasonable (not extinct, and not too close to the boundaries of the domain).

Resolves Issue 231.
2014-09-02 22:34:18 +00:00
Ray Speth
22a6bb9ef2 [1D/Python] Fix initial profile generation for diffusion flames
Don't assume that the leftmost grid point is z = 0.
2014-09-02 22:34:16 +00:00
Ray Speth
1e5eba4819 [Doc] Add OS X installation instructions using Homebrew 2014-09-02 22:34:13 +00:00
Ray Speth
fb0e9e4816 [Doc] Add installation instructions for Windows binaries 2014-09-02 22:34:11 +00:00
Ray Speth
0fd419028a [Doc] Add local tables of contents to Reactor and 1D documentation
This makes these pages, which document many classes, easier to navigate.
2014-09-02 22:34:08 +00:00
Bryan W. Weber
671d6eb576 Fix WiX complains that @Action is deprecated 2014-08-28 22:06:09 +00:00
Bryan W. Weber
73fa1a17a0 Fix bdist complains about invalid version number 2014-08-28 22:06:05 +00:00
Thomas Fiala
68e84bdff7 [Python/1D] Add strain rate calculation for diffusion flames
Allows calculation of strain rate based on various definitions.

Resolves Issue 230.
2014-08-28 16:55:44 +00:00
Ray Speth
0886de8650 Include CVodes error text in resulting CanteraErrors
Failures in 'integrate' and 'advance' now include the error text provided by
CVodes directly, rather than just the numerical error code. This is especially
helpful in cases where the direct output from CVodes to stderr is lost
(e.g. when running from the Matlab GUI).
2014-08-28 16:55:41 +00:00
Ray Speth
002c158761 Cleanup include statements
Move includes from header to implementation files where possible, and remove
unnecessary includes.
2014-08-28 16:54:13 +00:00
Ray Speth
5505b791b7 Make get_XML_Node search for both XML and CTI input file formats
This makes it possible to use species and reactions from external CTI files,
rather than only external XML files, since the datasrc extension assumed in the
cti->xml conversion is .xml.
2014-08-28 16:54:08 +00:00
Bryan W. Weber
f0bb0f8492 [Doc] Fix some Sphinx warnings
Comments are also added to note places where the function
signatures embedded by Cython produce warnings in Sphinx.
These warnings should be ignored until Sphinx supports this.
2014-08-26 22:04:59 +00:00
Thomas Fiala
dfab2edb3d Properly clean up after a build.
Fixes Issue 232.
2014-08-26 22:04:55 +00:00
Bryan W. Weber
32d5d7b8b2 [Matlab] Fix build warnings about Contents.m 2014-08-26 22:04:50 +00:00
Bryan W. Weber
6bf39e87c4 [Matlab] Minor fixes to docs and screen output
Fix missing parameter docs in Matlab ReactorNet setTolerances. Fix missing semicolon in ThermoPhase display
2014-08-26 22:04:46 +00:00
Harry Moffat
979bdffe6e InterfaceKinetics rewrite -> implementation of BV and affinity reactions
next iteration
2014-08-26 20:55:38 +00:00
Harry Moffat
9e05e85b66 Fixed a typo in HAVE_FENV_H implementation 2014-08-26 20:54:52 +00:00
Harry Moffat
08fe85b4cd Check for fenv.h availability. Apparently, MS visual doesn't have C99 support before 2013, so previous commit didn't compile on MSVISUAL.
If fenv.h not available, program now error exits if fenv functions are requested.
2014-08-26 17:55:44 +00:00
Bryan W. Weber
b7bce3f66d Fix errors in MATLAB compiling on Windows. Fixes Issue 85. 2014-08-26 12:15:01 +00:00
Ray Speth
71cabc86ef [SCons] Express dependencies for rebuilding Doxygen documentation 2014-08-25 22:18:56 +00:00
Ray Speth
85abe2e008 [SCons] Update documentation for SCons commands 2014-08-25 20:02:34 +00:00
Bryan W. Weber
eeab08d683 Allow auto conversion of Python examples on Windows
3to2 cannot be called as an executable on Windows, but it can be called
as a script. Assume that the 3to2 script is installed in
PYTHONROOT\Scripts, which is the default for installation by pip.
2014-08-25 18:41:56 +00:00
Harry Moffat
3a6d72346d Made a member public for now, until further development is done. 2014-08-21 23:27:12 +00:00
Harry Moffat
e6863bfdae InterfaceKinetics rewite: added rmcVector and identifyMetalPhases routine.
added utility to clean tests. tests don't rerun when they should!
2014-08-21 21:40:26 +00:00
Harry Moffat
69c09709d1 Interfacekinetics rewrite:
Decided to break out an ElectrodeKinetics object for now. We'll see how it goes.
2014-08-21 00:49:41 +00:00
Harry Moffat
0d9b7d7868 Updated doxygen make generation capability.
Started to modify doxygen content to get rid of the large number of warnings.
2014-08-21 00:48:04 +00:00
Harry Moffat
81556ea8aa Rewrite of InterfaceKinetics - next iteration. 2014-08-14 00:00:00 +00:00
Harry Moffat
6741d8f7c6 InterfaceKinetics rewrite -> addition of general BV reactions and affinity formulation. 2014-08-12 23:02:47 +00:00
Harry Moffat
fcbf41ac73 Changed the default to not crop the printout of any small numbers. 2014-08-12 22:45:53 +00:00
Harry Moffat
8ea3da7247 Took out duplicate operator= 2014-08-05 23:44:31 +00:00
Harry Moffat
e129d02d93 Added in real number overflow exception control.
There are a series of activity coefficients for published battery models
 which actually overflows. Cantera was treating this as a nonerror and changing
the return results without comment. This is not correct. Made the behavior a
user controlled capability.
2014-08-05 23:42:24 +00:00
Harry Moffat
cdec2e90c7 Fixes need to restore capability to solve banded systems with nonlinear solver 2014-08-05 23:11:58 +00:00
Harry Moffat
9a9455a93a Changed the blessed file. The report function has changed the number of significant figures reported. 2014-08-05 22:07:04 +00:00
Steven DeCaluwe
ccc4dda228 Adding helper functions to HighPressureGasTransport.cpp 2014-08-05 15:01:13 +00:00
Steven DeCaluwe
1aae8967cc More cleanup of HighPressureGasTransport.cpp 2014-08-05 15:01:11 +00:00
Steven DeCaluwe
ad5ee88446 Cleaning up whitespace and other issues in HighPressureGasTransport.cpp 2014-08-05 15:01:09 +00:00
Ray Speth
907bbd8b79 Allow importing phases from XML or CTI strings 2014-07-30 16:59:51 +00:00
Ray Speth
a22a767be1 Fix some compiler warnings 2014-07-30 16:59:45 +00:00
Ray Speth
56ccc667df Fix some uninitialized member variables 2014-07-30 16:59:39 +00:00
Ray Speth
7ebfbed486 [Doc] Add note about required SCons version for VS2013 2014-07-30 16:59:36 +00:00
Ray Speth
4a1aee131d [Cython/Examples] Update surf_pfr to show reactor network reinitialization 2014-07-30 16:59:34 +00:00
Ray Speth
2b67ec4538 [Test] Add surface kinetics test based on the sofc.py example 2014-07-30 16:59:30 +00:00
Ray Speth
0440e3fcf1 [Python/Examples] Update adiabatic.py to use features of the Cython module 2014-07-30 16:59:27 +00:00
Ray Speth
4236c97259 [Test] Add multiphase equilibrium tests based on 'adiabatic.py' example 2014-07-30 16:59:23 +00:00
Ray Speth
03a4f63729 [Cython] Use __slots__ to prevent accidental invalid attribute assignment 2014-07-30 16:59:17 +00:00
Ray Speth
c8bb3a0c52 [Cython] Fix some tests that weren't actually working correctly
These tests were setting values to incorrectly named properties,
so they weren't actually testing the functionality that they should
have been.
2014-07-30 16:59:14 +00:00
Ray Speth
28d389b120 [Scons] On Windows, print compilation architecture during build process
This helps in debugging certain compilation / linker issues
2014-07-30 16:59:11 +00:00
Ray Speth
169e6f1c11 [SCons] Remove outdated references to ct2ctml.log 2014-07-30 16:59:09 +00:00
Ray Speth
dc31982a2b [MixMaster] Remove broken/orphaned gri30.py 2014-07-30 16:59:07 +00:00
Ray Speth
232e28d2c8 Check file modification time before reusing cached XML 2014-07-30 16:59:04 +00:00
Ray Speth
063c2a261a Eliminate redundancy between get_XML_File and get_CTML_Tree
get_CTML_Tree and getCtmlTree are now deprecated in favor of get_XML_File
2014-07-30 16:58:55 +00:00
Ray Speth
6866725b57 Simplify implementation of get_XML_File
This is easier now that we don't have to write the XML file to disk
when importing from a CTI file.
2014-07-30 16:58:52 +00:00
Ray Speth
73af17bd54 Fix ambiguous call to 'pow'
This caused compilation errors with MSVC.
2014-07-29 00:51:00 +00:00
Steven DeCaluwe
9c3ac51818 Adding cpp and header files for HighPressureGasTransport module 2014-07-28 21:04:11 +00:00
Steven DeCaluwe
14019cfd2e Adding HighPressureGas transport module. 2014-07-28 21:02:18 +00:00
Steven DeCaluwe
8954090881 Modifying TransportFactory::fitProperties to eliminate an assumption
that the phase of interest is an ideal gas.
2014-07-28 18:18:41 +00:00
Ray Speth
6c3867ca79 [SCons] Let SCons choose the default version of MSVC
The near-requirement of using the same version of MSVC as Python was compiled
with has been relaxed by the move to compiling the Python extension in SCons
rather than letting Distutils do it.
2014-07-25 18:33:02 +00:00
Ray Speth
b141760015 [Doc] Update instructions for checking out the code 2014-07-25 18:33:00 +00:00
Ray Speth
67539df9f2 Fix #includes to work with Visual Studio 2013 2014-07-25 18:32:57 +00:00
Ray Speth
4f3dd0624f [SCons] Fix build errors when path to Python contains spaces 2014-07-25 18:32:54 +00:00
Ray Speth
93719f0261 [Doc] Fix syntax highlighting in CTI guide 2014-07-25 18:32:47 +00:00
Ray Speth
a6350348a1 [Doc] Fix 'currentmodule' directive for ctml_writer functions 2014-07-25 18:32:42 +00:00
Ray Speth
6867381781 [CTI] Document options for controlling mechanism validation
Add documentation for the validate() function, and remove documentation
for the non-existent 'no_validation' flag.
2014-07-25 18:32:39 +00:00
Ray Speth
1e078d4fd3 [Kinetics] Change temperatures used for P-log validation
For rate expressions with negative activation energies, evaluating at
unphysically low temperatures (e.g. 1 K) could lead to overflows in calculating
exp(Ea/RT) that are not indicative of problems at more reasonable temperatures.
2014-07-25 18:32:37 +00:00
Ray Speth
8f4ab714ac [Samples] Modify surf_pfr to keep pressure constant
The structure of this calculation previously led to an apparent increase in
pressure along the length of the reactor.  This is a good example of when to use
a PressureController.
2014-07-25 18:32:34 +00:00
Ray Speth
1cd82d40af Remove 'SQUARE' and 'DSIGN' macros 2014-07-25 18:32:29 +00:00
Ray Speth
8aab7f527a Use std::max_element instead of reimplementing it 2014-07-25 18:32:26 +00:00
Ray Speth
41a6e78ff1 Remove incorrect comments from 'newTransportMgr' functions 2014-07-25 18:32:24 +00:00
Ray Speth
d5b873b697 [1D] Fix mass flux reported by Inlet1D for freely-propagating flames 2014-07-18 18:10:56 +00:00
Ray Speth
bc70da4252 [Matlab] Change log level for Transport construction 2014-07-18 18:10:54 +00:00
Ray Speth
884dd36b9c [Reactor] Remove unused reactor connectivity calculation 2014-07-18 15:14:12 +00:00
Ray Speth
1b1703cc56 [Reactor] Remove unused variable ReactorBase::m_init 2014-07-18 15:14:07 +00:00
Bryan W. Weber
ad3ac0a1ad [Matlab/Doc] Add automatically generated Contents.m to the toolbox. 2014-07-18 14:37:47 +00:00
Bryan W. Weber
cd8e9242a6 [Doc] Allow differentiation of classes from functions in the Matlab docs 2014-07-18 14:37:42 +00:00
Bryan W. Weber
c6ac27b07c [Doc/Matlab] Add documentation for all Matlab functions 2014-07-18 14:35:41 +00:00
Bryan W. Weber
0a0d5f2947 [Matlab] Add option to specify transport modeling to @Solution constructor. Add options to specify information about @Wall on construction. Verify job number for @Domain1D 2014-07-18 14:35:28 +00:00
Bryan W. Weber
a067fcbc37 [Samples/Matlab] Fix bugs in conhp and conuv Matlab samples 2014-07-18 14:35:22 +00:00
Bryan W. Weber
6cd78c0233 [Matlab] Move @Solution/soundspeed.m and set.m to @ThermoPhase. Delete duplicated 1D/nComponents.m method 2014-07-18 14:35:15 +00:00
Bryan W. Weber
a8304e146e [Matlab] Fix small bugs. Add clear method to Transport, qdot and vdot to Wall. 2014-07-18 14:35:05 +00:00
Bryan W. Weber
0c1688a361 [Matlab] Switch to explicit class specific hndl functions. Deprecate generic hndl functions 2014-07-18 14:34:54 +00:00
Bryan W. Weber
519bf12faa [Matlab] Update built-in thermo imports to use Solution rather than importPhase 2014-07-18 14:34:47 +00:00
Bryan W. Weber
411f6d51a9 [Matlab] Deprecate molarMass methods in favor of molecularWeight methods to be consistent with the rest of Cantera 2014-07-18 14:34:41 +00:00
Bryan W. Weber
34274257b9 [Matlab] Remove unnecessary returns from set methods in 1D classes 2014-07-18 14:34:31 +00:00
Bryan W. Weber
b95614760a [Matlab] Remove unnecessary returns from set methods in @ThermoPhase class 2014-07-18 14:34:21 +00:00
Bryan W. Weber
ab251257e5 [Matlab] Trivial changes to variable names and whitespace for consistency 2014-07-18 14:33:09 +00:00
Bryan W. Weber
f4041d6fb2 [Doc] Add the ability to pseudo-autodocument MATLAB code to the SConscript file 2014-07-18 14:32:53 +00:00
Bryan W. Weber
a03b7d6123 [ck2cti/test] Add test for empty reaction section in CK input file 2014-07-17 15:36:53 +00:00
Bryan W. Weber
47b8c49aed [Doc] Fix names of the physical constants in the Cython documentation 2014-07-16 16:15:21 +00:00
Bryan W. Weber
61f10970d2 [ck2cti] Fix bug when validating converted mechanisms if the output file name is not specified to ck2cti 2014-07-16 16:15:14 +00:00
Bryan W. Weber
947a262d90 [ck2cti] Allow the case where a reaction section is specified but empty 2014-07-16 16:14:48 +00:00
Ray Speth
d46bc31d2c Simplify SolveSP printing functions
Remove unused arguments. Merge printIteration and PrintFinal.
2014-07-10 22:36:54 +00:00
Ray Speth
45f6e84ebf Improved error messages that just reported 'confused' 2014-07-10 22:36:43 +00:00
Ray Speth
5ebdb7e924 Use execeptions to simplify usage of ElemRearrange 2014-07-10 22:36:36 +00:00
Ray Speth
7af153c75f [Cython/Kinetics] stoich_coeff methods accept species by name
reactant_stoich_coeff and product_stoich_coeff now accept either the species
name or the "kinetics species index".
2014-07-10 22:36:28 +00:00
Ray Speth
bd14358a68 [1D] Remove empty overrides of Domain1D::_finalize 2014-07-10 22:36:06 +00:00
Ray Speth
c4beab316f Remove unnecessary class forward declarations 2014-07-10 22:34:44 +00:00
Ray Speth
040958a5f5 Add some deprecation warnings 2014-07-10 22:34:33 +00:00
Ray Speth
868573080d [Python/1D] Add premixed counterflow flame configuration 2014-07-10 22:34:24 +00:00
Ray Speth
829c9b38cf [Python] Move some classes from Cython to pure Python
The classes implementing specific flame geometries don't directly interact with
any of the underlying C++ implementation, so they can be moved out of the
compiled Cython extension. This reduces the size of the compiled extension, and
makes it easier to implement additional flame types in Python.
2014-07-10 22:34:12 +00:00
Ray Speth
a2e3e97a1f [1D] Check that specified grid is monotonically increasing 2014-07-10 22:34:05 +00:00
Ray Speth
27e2aa16b8 [Python/1D] Allow setting Inlet mole fractions using a dict 2014-07-10 22:33:30 +00:00
Ray Speth
c7e2f5fcbc [Doc] Add recommended citation for Cantera 2014-07-10 22:33:25 +00:00
Ray Speth
19e3a09980 Allow '~/' as alias for user's home directory when importing cti/xml 2014-07-10 22:33:20 +00:00
Ray Speth
d5870c4e4b [Python] Allow Func1 to accept nearly-scalar types
This includes lists, tuples, and numpy arrays with a single element
2014-06-20 18:45:22 +00:00
Ray Speth
8bee138553 [Kinetics] Add access to reactant and product strings
In C++, these are the reactantString() and productString() methods.  In Python,
these are the 'reactants' and 'products' properties.

Resolves Issue 110.
2014-06-20 18:45:17 +00:00
Ray Speth
a470502932 [Transport] Replace transport_log.xml with regular text logging
Write plain text to the common Cantera logger to be more consistent with the
verbose/debug logging from other parts of Cantera. This simplifies several of
the transport initialization functions, and eliminates the need for class
XML_Writer.
2014-06-20 18:44:59 +00:00
Ray Speth
284c0d0345 Remove unimplemented 'potentialEnergy' methods from IdealMolalSoln 2014-06-20 18:44:53 +00:00
Ray Speth
3349a28d38 Update some deprecation warnings. 2014-06-20 18:44:39 +00:00
Ray Speth
e778afad32 Remove deprecated functions 2014-06-20 18:44:33 +00:00
Ray Speth
63dd02073c [Doc] Fix a few Doxygen warnings 2014-06-20 18:44:23 +00:00
Ray Speth
147d630f48 [Doc] Remove references to nonexistent source file 'importCTML.cpp' 2014-06-20 18:43:51 +00:00
Ray Speth
7064fd1964 [Cython/Examples] Add reactor example with ODEs implemented in Python 2014-06-20 18:43:47 +00:00
Ray Speth
fc9ba22772 [Cython] Add methods for setting unnormalized mass/mole fractions 2014-06-20 18:43:42 +00:00
Ray Speth
a33eca6684 [Python/Samples] Add Peridic CSTR example to Python module
Translated from the Matlab sample
2014-06-16 22:01:54 +00:00
Ray Speth
dd297256ff [Matlab/Samples] Update to use IdealGasReactor 2014-06-16 22:01:31 +00:00
Ray Speth
049c9a1960 [Matlab/Samples] Fix broken default argument checks
There are no classes named 'GasMix' or (lowercase) 'solution', so these checks
would always fail and the input argument would always be silently ignored.
2014-06-16 22:01:13 +00:00
Ray Speth
6c3fdb7963 [Matlab/Samples] Remove duplicate examples
'ignite2.m' was essentially a duplicate of 'ignite.m'
'ignite3.m' was essentially a duplicate of 'ignite_uv.m'
2014-06-16 22:00:46 +00:00
Ray Speth
fd0db67172 [Matlab/Samples] Move reactor ODE functions into samples directory
These functions are used by some of the examples, and show how custom
reactor-like models can be implemented in Matlab. They are useful mostly as a
basis for user modifications.
2014-06-16 22:00:41 +00:00
Ray Speth
b4826c9b9c [Matlab/Reactor] Use 'nonorm' when setting mass fractions 2014-06-16 22:00:30 +00:00
Ray Speth
01987b4438 [Thermo] Implement missing SurfPhase functions
Adding the entropy_mole, cp_mole, and cv_mole functions fixes the silent failure
of the report() function for surface phases.
2014-06-16 22:00:25 +00:00
Ray Speth
6ffbaa5f77 [Reactor] Remove unneeded variables from ReactorBase 2014-06-10 16:23:43 +00:00
Ray Speth
48101ea1f4 [Reactor] Remove unneeded functions from ReactorBase 2014-06-10 16:23:24 +00:00
Ray Speth
8b5ca80303 [Reactor] Implement reactor network reinitialization
Adds ReactorNet::reinitialize, which skips all one-time initialization and
re-uses the same CVODES integrator. The Reactor::syncState() method is
introduced for applying new initial conditions for individual Reactor objects.

This approach increases efficiency when solving many similar problems with short
integration times, for example when being used as the chemistry term integrator
in an operator-split CFD code.
2014-06-10 16:23:03 +00:00
Ray Speth
1437aade8c [Reactor] Refactor updateState and getInitialConditions implementations
Extract common parts related to surface species
2014-06-10 16:22:46 +00:00
Ray Speth
67de2fa793 [Reactor] Refactor re-implementations of Reactor::initialize
The base class methods does almost all the initialization needed for the derived
classes, so call that first and then do any additional steps needed.
2014-06-10 16:22:37 +00:00
Ray Speth
0da063cdef [Reactor] Refactor wall / surface chemistry evaluation
This creates a single implementation of the calculation of the contributions of
walls and surface chemistry to the governing equations for all reactor types.
2014-06-10 16:21:56 +00:00
Ray Speth
54c14c3ac1 Remove orphaned 'Cantera_legacy.h' file 2014-06-10 16:21:46 +00:00
Ray Speth
2b9f3b9913 Remove unused Doxygen input files 2014-06-10 16:21:37 +00:00
Ray Speth
1ea1e705f3 Remove redundant 'NotImplemented' exception class 2014-06-10 16:21:16 +00:00
Ray Speth
2558ec222d [Test] Use 'assertIn' and 'assertNotIn' where possible 2014-06-10 16:21:01 +00:00
Ray Speth
7f83a49e07 [Test] Fix some incorrect assertions 2014-06-10 16:20:53 +00:00
Ray Speth
baa787f7ac [Test] Use context handler form for 'assertRaises' 2014-06-10 16:20:31 +00:00
Ray Speth
be9882a765 [ck2cti] Import the resulting mechanism to complete validation
This relaxes the need to perform redundant validation in ck2cti.
2014-06-06 00:18:18 +00:00
Ray Speth
c29ae666c0 [CTI] Allow non-integer atomicity
This allows specification of lumped species with average compositions,
such as C10.6H21.8.
2014-06-06 00:18:13 +00:00
Ray Speth
83e38480d6 Throw exceptions instead of calling std::exit after an error
By throwing an exception, Cantera is better behaved when used within other
applications, e.g. as in the case of the Matlab and Python interfaces.
2014-06-06 00:17:58 +00:00
Ray Speth
40290736e0 [Reactor/Samples] Cleanup of kinetics1.cpp
Change this example to use IdealGasConstPressure reactor, which
is the preferred reactor model for this kind of simulation.
2014-06-06 00:17:53 +00:00
Ray Speth
51d0654e47 [Reactor] Add IdealGas reactor types to zerodim.h 2014-06-06 00:17:49 +00:00
Ray Speth
a583949457 [Reactor] ReactorNet::addReactor takes a reference instead of a pointer
This reflects how the function is usually used. The old signature is now
deprecated, as is the extra argument for transfering "ownership" to the
ReactorNet object.
2014-06-06 00:17:41 +00:00
Harry Moffat
199cd4ceba Changes in InterfaceKinetics to allow for downstream hooks to add in the capability to model
arbitrarily fit open circuit potentials for intercalating electrodes.
2014-06-05 22:43:41 +00:00
Harry Moffat
f2130b5e3f Added a missing function 2014-06-05 22:41:55 +00:00
Harry Moffat
f3a0092b42 Fixed a error introduced by Speth that caused the brine phase pop problems to fail. 2014-06-05 22:40:20 +00:00
Ray Speth
ea3f74eb27 [Thermo] 'report' only prints species with non-trivial mole fractions
The threshold for printing species is a new, optional parameter to the
'report' function. If any species are excluded, the total number of
minor species and their aggregate mass and mole fraction are printed.
2014-06-03 16:54:15 +00:00
Ray Speth
dbfe428437 Fix compiler warnings
These were mostly related to changes from r2957.
2014-06-03 16:53:40 +00:00
Ray Speth
d38e4553ec Eliminate 'goto' in VCS_SOLVE::vcs_inest 2014-06-03 16:53:34 +00:00
Ray Speth
b5396837b2 Make use of std::min, std::max, and clip 2014-06-03 16:52:43 +00:00
Ray Speth
d3667cae3c [Doc] Fix reference that wasn't being parsed correctly 2014-06-03 16:52:22 +00:00
Ray Speth
a5d735f047 [Reactor] Disable verbose output by default, even in "debug mode" 2014-06-03 16:52:09 +00:00
Ray Speth
0e9ca0fc4b [Reactor] Eliminate tracking of Reservoirs by ReactorNet
Since Reservoirs don't have any equations to solve, there is no reason to add
them to a ReactorNet.
2014-06-03 16:52:00 +00:00
Ray Speth
2d1003271d [Reactor] Replace ReactorNet::m_size with m_start
A small simplification since the offset into the global solution vector is
usually what we're interested in.
2014-06-03 16:51:47 +00:00
Ray Speth
fb588d873b Remove deprecated / unfinished 'spectra' classes 2014-05-30 19:23:37 +00:00
Ray Speth
46a36c11cb Eliminate redundant VCS vector functions
These functions just duplicated features of the standard library.
2014-05-30 19:23:25 +00:00
Ray Speth
c6cefd6df8 Replace IntStarStar with Array2D 2014-05-30 19:23:16 +00:00
Ray Speth
b569b842d0 Replace DoubleStarStar with Array2D 2014-05-30 19:23:03 +00:00
Ray Speth
3e39423a42 [Doc] Fix name of 'ck2cti' in man page 2014-05-30 19:22:58 +00:00
Ray Speth
2ee3edbe39 [SCons] Move man pages to 'share'
This fixes compatibility with Homebrew. With the default prefix '/usr/local',
this puts the man pages in /usr/local/share/man/man1/, which is usually on the
man path on other OSes as well.
2014-05-29 18:34:49 +00:00
Ray Speth
548b5ca468 Remove cti2ctml binary
Use of cti2ctml binary can be replaced with using ctml_writer.py script
directly.
2014-05-29 18:34:44 +00:00
Ray Speth
f85e49a87b [Doc] Update methods for doing manual cti to ctml conversions 2014-05-29 18:34:38 +00:00
Ray Speth
f80db6c08d Make function signatures independent of DEBUG_MODE 2014-05-27 02:54:34 +00:00
Ray Speth
ddfc7db080 Make helper functions for pieces of vcs_solve_TP main loop 2014-05-27 02:54:24 +00:00
Ray Speth
ad12f392ce Some cleanup of vcs_solve_TP
Use local variables where possible. Remove unreachable code.
Move repeated code out of if/else blocks. Flatten nested if statements.
2014-05-27 02:54:11 +00:00
Ray Speth
32276b1fda Refactor vcs_solve_TP to eliminate goto
This contains just the changes to the flow control to give the same
behavior as the original implementation. Additional refactoring
still to come.
2014-05-27 02:54:07 +00:00
Ray Speth
3e3557e756 [Test] Add more tests of the VCS equilibrium solver
These tests are based on the 'plasma_equilibrium.py' example, and include
a fairly large number of phases, some of which are only present for certain
temperature ranges.
2014-05-27 02:54:02 +00:00
Ray Speth
40e748a2d1 Set printLvl = loglevel for VCS solver since it doesn't use loglevel 2014-05-27 02:53:47 +00:00
Ray Speth
373e4ae565 Remove goto and manual memory management from MultiPhase::equilibrate 2014-05-27 02:53:42 +00:00
Ray Speth
4b9e4da822 Fix some compiler warnings 2014-05-27 02:53:35 +00:00
Ray Speth
712293e415 Change debug code to avoid ifdefs where possible
Use "if (DEBUG_MODE_ENABLED)" instead of "#ifdef DEBUG_MODE". This makes
it easier to see the flow control logic, and the compiler will optimize
out the always-false conditionals when DEBUG_MODE_ENABLED is 0, so there
isn't any speed penalty.
2014-05-27 02:53:22 +00:00
Ray Speth
7ec4531ae0 Removed debugging code that didn't actually do anything 2014-05-27 02:53:16 +00:00
Ray Speth
6c0cea5ee4 Standardize function used for writing a line of repeated characters 2014-05-27 02:53:06 +00:00
Ray Speth
789574ac80 Remove commented-out code 2014-05-27 02:52:21 +00:00
Ray Speth
4dcdc01fb8 [VCS] Use local variable declarations where possible 2014-05-23 22:47:03 +00:00
Ray Speth
217b396ec5 [Python] Fix to conversion of samples from Python 3 to Python 2
Some calls to the print function weren't being converted to print statements
correctly by 3to2, so now we use the alternative fix, which is to use the
backported print function.

Fixes Issue 216.
2014-05-23 22:46:59 +00:00
Ray Speth
87553767d5 Eliminate 'goto' from 'isDuplicateReaction' 2014-05-21 16:35:14 +00:00
Ray Speth
90a821caf6 Eliminate 'goto' from ChemEquil::estimateEP_Brinkley 2014-05-21 16:35:09 +00:00
Ray Speth
44e7dd91ad [Equil] Eliminate 'mlequ' and 'gaussj' in favor of using LAPACK 2014-05-21 16:35:02 +00:00
Ray Speth
ef781b44e6 Restructure ChemEquil::equilibrate to eliminate 'goto' statements 2014-05-21 16:34:57 +00:00
Ray Speth
c81de1d08e Make PDSS::temperature() virtual
This reflects how it's used, being overridden in several derived classes.
2014-05-21 16:34:51 +00:00
Ray Speth
08e9d94ad6 [Thermo] Remove unimplemented overrides of getParameters/setParameters 2014-05-21 16:34:39 +00:00
Harry Moffat
675df76b1c Fixed a long standing problem with the combination of storred XML files and duplicator functions.
Now the complete XML file is storred within the ThermPhase object starting with the root node.
This is needed for later processing of kinetics and transport mechanisms when the ThermoPhase
file is duplicated and the original file is deleted.

xml() is now a const function, and still returns the same pointer.
setXMLdata() is a new function will stores the xml data.
2014-05-20 19:02:20 +00:00
Harry Moffat
b6f9009d28 Fixed a bad bug in deepStdVectorPointerCopy 2014-05-20 16:16:07 +00:00
Ray Speth
75e9d10bdf [SCons] Print path to Python interpreter when building 2014-05-08 23:02:07 +00:00
Ray Speth
f61747973c [Thermo] Extract common implementations out of PDSS descendants
The descendants either calculate molar properties from nondimensonal properties
or vice versa. Add two derived classes to PDSS to implement these behaviors, and
have the leaf classes derive from whichever one of these makes sense.
2014-05-08 23:01:59 +00:00
Ray Speth
0eeae5d9c0 [Thermo] Remove unnecessary manual memory management from PDSS_Water 2014-05-08 23:01:53 +00:00
Ray Speth
edaef6a0b7 [Thermo] Remove redundant methods of PDSS descendants
The removed methods repeated the implementation of the base class.
2014-05-08 23:01:43 +00:00
Ray Speth
7fff65cecd Remove previously-deprecated 'PrintCtrl' and 'LogPrintCtrl' classes. 2014-05-08 23:01:32 +00:00
Ray Speth
54ded64e4b Miscellaneous whitespace cleanup 2014-05-08 23:01:12 +00:00
Ray Speth
2df0396879 [ck2cti] Relax formatting requirement for Chebyshev coefficients.
Allow coefficient data to begin on the same line as the declaration of the
order of the polynomial in each dimension.

Fixes Issue 219.
2014-05-07 21:57:34 +00:00
Ray Speth
d6a3ea4aa7 [ck2cti] Allow stoichiometric coefficients ending in decimal points
Fixes Issue 220.
2014-05-07 21:57:22 +00:00
Ray Speth
c621d5f9db [SCons] Fix dependency resolution for some Python files 2014-05-07 21:56:57 +00:00
Ray Speth
9cddf5aaed Add test to check that error messages from ctml_writer are propagated 2014-05-06 14:39:54 +00:00
Ray Speth
bc0346eae7 Avoid deadlocks in cti to ctml conversions on Windows 2014-05-06 14:39:48 +00:00
Ray Speth
2a9ab96609 Use NotImplementedError instead of 'err' member functions 2014-05-06 14:39:13 +00:00
Ray Speth
27e16e5bf1 Fix signature of SingleSpeciesTP::setMassFractions and setMoleFractions
This eliminates warnings generated by Visual Studio about the mismatch
in constness between the base and derived class functions.
2014-05-06 14:39:05 +00:00
Ray Speth
5cb1c787ad [CTI] Allow omitting third body in Chebyshev reaction equations 2014-05-06 14:39:01 +00:00
Ray Speth
87bea8ae30 [CTI] Relax formatting requirements for third bodies in reaction strings
Allow 'A + B (+M)' in addition to 'A + B (+ M)'
2014-05-06 14:38:50 +00:00
Ray Speth
8cfac61a83 Use configuration checks to determine names for 'isnan' and 'finite' 2014-05-03 17:39:33 +00:00
Ray Speth
0a1909e682 [SCons] Print config.log when SCons is in verbose mode 2014-05-03 17:39:19 +00:00
Ray Speth
9ff22eebc5 [Doc] Update version specified in git/svn checkout commands 2014-04-28 18:18:17 +00:00
Ray Speth
3944dda878 Fix path to Cantera.mak in sample Fortran Makefiles
Use relative path if the Cantera install directory contains spaces, as the
Makefile 'include' statement doesn't seem to have a way to escape the space
otherwise.
2014-04-28 18:18:10 +00:00
Ray Speth
4e68860165 Generate cantera.pc and Cantera.mak when using MinGW 2014-04-28 18:17:46 +00:00
Steven DeCaluwe
710393308d Editing Pitzer's acentric factor initialization 2014-04-25 11:49:34 +00:00
Steven DeCaluwe
06a88b70eb Added gas-phse kinetics to RedlichKwongMFTP class 2014-04-25 11:49:32 +00:00
John Hewson
b84f19c439 In InterfaceKinetics added some comments and clarified function names.
Formerly getExchangeCurrentQuantities() is now
updateExchangeCurrentQuantities().  This method updates things like
m_StandardConc for computing reaction rates.

Formerly applyExchangeCurrentDensityFormulation() is now
convertExchangeCurrentDensityFormulation().  This method converts
rate expressions from A/m2 to kmol/m2/s.
2014-04-22 22:25:59 +00:00
Harry Moffat
f1863b103a Some changes to make XML sections of liquid transport more orderly, uniform, and processed in
only one place.
2014-04-20 02:12:35 +00:00
Harry Moffat
3df834565b Added more error checking for ill-formed csv files 2014-04-20 01:59:46 +00:00
Harry Moffat
7b2563c5ae Worked on comments. Took out "Pure" and substituted standard state. 2014-04-19 01:33:27 +00:00
Harry Moffat
96b01a6c79 Added better error handling for the XML routine.
Added a couple of TODOs
2014-04-19 01:31:21 +00:00
Harry Moffat
c16227a919 Added error handling statement 2014-04-19 01:29:36 +00:00
Harry Moffat
e977eba704 Added initializations for quantities that showed up as UMR's in cantrilbat 2014-04-19 01:20:05 +00:00
Harry Moffat
6e40841d94 Added missing member functions for partial molar quantities 2014-04-18 23:53:38 +00:00
Harry Moffat
dfbeeb374e Added additional checks for badly formed csv files. 2014-04-18 23:43:47 +00:00
Harry Moffat
446b39c877 Fixed error for two line csv files 2014-04-18 16:44:44 +00:00
Ray Speth
4e363c1073 Reduce confusion related to Fortran 90 sample Makefile
For some compilers (gfortran), there is no space in the argument for specifying
a module directory, e.g. '-Jdir', while for others (ifort), there is,
e.g. '-module dir'. This substitutes the correct prefix directly into the
compiler command line to avoid the confusion associated with having a variable
defined with a meaningful trailing space.
2014-04-14 18:37:54 +00:00
Ray Speth
403cbc74fc Remove outdated 'mixmaster' script
This script was for the legacy Python module only.
2014-04-14 18:37:49 +00:00
Ray Speth
115679ac17 [Doc] Add note about how to fix Sundials CMakeLists.txt
The Sundials CMakeLists.txt was not correctly updated for the 2.5.0 release, and
builds a version of Sundials that still claims to be 2.4.0. This leads to
compilation errors since some Sundials functions have changed signatures between
2.4 and 2.5, and Canteran needs to distinguish between the two.
2014-04-14 18:37:43 +00:00
Ray Speth
b4b97e622a [Thermo] Remove manual memory management from ShomatePoly2 2014-04-14 18:37:36 +00:00
Ray Speth
1df2ed5611 Add a missing #include 2014-04-14 18:37:24 +00:00
Ray Speth
79bbdf3aff [Thermo] Make use of initializers in SpeciesThermoInterpType classes 2014-04-14 18:37:12 +00:00
Ray Speth
588728addc [Equil] Make vcs_MultiPhaseEquil::m_vprob a normal member variable 2014-04-14 18:37:06 +00:00
Ray Speth
818a22be05 [Equil] Make vcs_MultiPhaseEquil::m_vsolvePtr a normal member variable
There is no reason for this to be a pointer.
2014-04-14 18:36:58 +00:00
Ray Speth
197a70aab2 Fix to coverage data collection
Skip all the test_problem subdirectories to avoid generating a command line that
is too long for some versions of lcov to handle properly.
2014-04-14 18:36:50 +00:00
Ray Speth
fcf7edf694 Implement Sub::name and Sub::formula in the base class
Eliminates the need for redundant implementations in all the derived
classes. Also, make the return value a "const char*" to eliminate the dangerous
cast.
2014-04-14 18:36:32 +00:00
Ray Speth
f8ff70ed38 [ck2cti] Make 'PCHEB' and 'TCHEB' keywords case insensitive
Fixes Issue 213.
2014-04-08 19:39:16 +00:00
Ray Speth
c887c1b6fb Remove unnecessary calls to parseCompString 2014-04-08 19:39:06 +00:00
Ray Speth
53820ed4a3 [Test] Remove remnants of the old Python test suite 2014-04-08 16:27:19 +00:00
Ray Speth
8e91a34b82 [Test] Fix reported number of passed tests
The file used to identify the results of the individual Python 3 tests was being
truncated. Updating it incrementally seems to avoid the problem.
2014-04-08 16:27:06 +00:00
Ray Speth
f8ee065368 [Test] Fix test status report if Python test crashes 2014-04-08 16:27:01 +00:00
Ray Speth
051381d862 [Python] Allow setting composition of sliced Solution objects
The following syntax:

    >>> phase['H2','O2'].X = [1.0, 0.5]

Is equivalent to:

    >>> phase.X = 'H2:1.0, O2:0.5'
2014-04-08 16:26:47 +00:00
Ray Speth
d19f975940 [Python] Allow setting composition using a dict
The following syntax makes it easier to set the composition programmatically,
e.g. inside a for loop:

    phase.Y = {'H2':0.1, 'O2':0.4, 'AR':0.5}
2014-04-08 16:26:34 +00:00
Ray Speth
6449415933 [Thermo] Simplify setState specialization of SingleSpeciesTP
We don't need to override every function that sets the mass/mole fractions, just
the ones that would have actually done something.
2014-04-08 16:26:29 +00:00
Ray Speth
14ea7e64c6 [Thermo] make compositonMap a const argument 2014-04-08 16:26:20 +00:00
Ray Speth
d2ff7dbaaa [SCons] 'clean' removes auto-generated .rst files from examples 2014-04-08 16:26:11 +00:00
Ray Speth
beeaa21644 Deprecate unused stringUtils functions 2014-04-02 15:26:42 +00:00
Ray Speth
43546f870f fpValueCheck detects (invalid) decimal ponts in exponents 2014-04-02 15:26:31 +00:00
Ray Speth
4a6dd84f81 [Thermo] Check composition strings for invalid float literals 2014-04-02 15:26:20 +00:00
Ray Speth
14fe11d661 [Thermo] Miscellaneous cleanup of ThermoFactory 2014-03-28 23:13:11 +00:00
Ray Speth
3530050dc4 [Thermo] Remove redundant overrides of ThermoPhase::eosType() 2014-03-28 23:12:53 +00:00
Ray Speth
48042fd4ae [SCons] Workaround SCons dependency bug with Cygwin 2014-03-28 23:12:45 +00:00
Ray Speth
9e4ae0d050 Deprecate unused global 'error' function 2014-03-28 23:12:36 +00:00
Ray Speth
a17085661f [Fortran] Remove unhelpful error handling in _fkin() 2014-03-28 23:12:25 +00:00
Ray Speth
4587883d5e Remove try/catch from ReactorNet::evalJacobian
This function isn't actually called by CVODE (which uses its own difference
quotient method for calculating the Jacobian), so the note here isn't correct.
2014-03-28 23:12:17 +00:00
Ray Speth
b2c050e545 [Doc] Add FAQ on debugging compilation issues 2014-03-28 23:12:11 +00:00
Ray Speth
5c99f683df [SCons] Add 'dump' command line target, and update FAQ 2014-03-28 23:12:06 +00:00
Ray Speth
50344cb34f [ck2cti] Improve error messages associated with missing input files 2014-03-27 01:29:50 +00:00
Ray Speth
da63482fea [ck2cti] Add tests calling ck2cti from C++ 2014-03-27 01:29:43 +00:00
Ray Speth
9e8ae80d2d [ctml_writer] Direct error/debug messages to stderr
Since stdout may be used for writing the actual output file, direct all error
and debug messages to stderr, so that they can be shown to the user when
ctml_writer is invoked via ct2ctml_string.
2014-03-27 01:29:39 +00:00
Ray Speth
2468b47ae7 [Thermo] Remove unimplemented overrides of ThermoPhase methods
ThermoPhase already provides an implementation of these methods that raises
an exception to indicate that the method is unimplemented. Therefore,
derived classes which do not implement a method do not need to do this.
2014-03-27 01:29:27 +00:00
Ray Speth
f1066aa072 [Thermo] Remove redundant versions of intEnergy_mole and gibbs_mole 2014-03-27 01:29:13 +00:00
Ray Speth
5b77bbb719 [1D] Add bounds checks to setRefineCriteria 2014-03-24 21:38:22 +00:00
Ray Speth
18c756b499 [1D/Cython] Add flame speed sensitivity analysis example 2014-03-24 04:03:49 +00:00
Ray Speth
aa4dcf393c [1D] Avoid Jacobian update after successful solve
Calling solve() again after a successful solution no longer automatically
triggers a Jacobian update. This enables relatively efficient sensitivity
analysis by sequentially perturbing the reaction multipliers and re-solving
the system. Since the perturbed system is close to the orignal, the solution
can be found after only a few steps, even when using the original Jacobian.
2014-03-24 04:03:44 +00:00
Ray Speth
17500064c2 [Test/Python] Add interface for running individual tests 2014-03-24 04:03:39 +00:00
Ray Speth
1fd98a2f08 [Test] Allow 'runCythonTests' to be called from any working directory 2014-03-24 04:03:35 +00:00
Ray Speth
de8a19ed0f Remove spaces adjacent to '::' in member function definitions 2014-03-24 04:03:30 +00:00
Ray Speth
95eb7ab3ba Remove newline after '::' in member function definitions
This inconsistency makes it hard to directly search the code for a specific
member function definition.
2014-03-24 04:03:09 +00:00
Ray Speth
90c2d58973 [Numerics] move 'm_factored' up to GeneralMatrix 2014-03-24 04:03:01 +00:00
Ray Speth
4467b898a5 [Numerics] Remove unused BandMatrix::err method 2014-03-24 04:02:56 +00:00
Ray Speth
7fef1b0051 [Numerics] BandMatrix does not silently do LU when QR is specified
Change GeneralMatrix to allow derived classes to not implement QR
factorization. BandMatrix does not implement QR because this LAPACK
does not contain a QR algorithm for this matrix type.
2014-03-24 04:02:51 +00:00
Ray Speth
1ec72f3171 Add 'NotImplementedError' 2014-03-24 04:02:46 +00:00
Ray Speth
150a7845f8 [Numerics] Simplify solving DenseMatrix with multiple RHS 2014-03-24 04:02:41 +00:00
Ray Speth
e2dc48e45e Remove unnecessary includes of ctlapack.h 2014-03-24 04:02:34 +00:00
Ray Speth
5b6e52b5d1 [Transport] Abstract use of LAPACK in MultiTransport 2014-03-24 04:02:29 +00:00
Ray Speth
4d1622ee96 [Kinetics] Eliminate unnecessary variable solveSP::m_JacCol 2014-03-24 04:02:23 +00:00
Ray Speth
44c53a6f27 [Kinetics] Abstract use of LAPACK in solveSP and solveProb 2014-03-24 04:02:18 +00:00
Ray Speth
8933203a20 [Numerics] Fix invalid dereference in SquareMatrix::factor
The work array hasn't always been allocated, so taking its address isn't
necessarily valid. Also, dlange doesn't use the work array in the '1' norm
case anyway.
2014-03-24 04:02:12 +00:00
Ray Speth
4e72cf0334 [Numerics] BandMatrix and SquareMatrix support solving multiple RHS 2014-03-24 04:02:06 +00:00
Victor Brunini
a641992960 Add validate() functions to CachedValue.
To both check and update the cached state values. Reduces
a lot of code duplication in the use of CachedValues.

I'd like to make state1, state2, and stateNum private so
that they can only be accessed with one of the validate functions,
and also add some asserts to the validate functions that do not
use all of the state variables to ensure that the unused ones are
set to their default values to prevent the case where the wrong
validate() function is called and incorrectly determines that the
cached state is valid.

First pass at making the state variables private caused a test failure
for test_problems/statmech. The m_spthermo->update() call in
IdealGasPhase::_updateThermo() throws an exception for this test right
now that gets caught in equilibrate(). When using validate() the cached
state variable is updated before the m_spthermo->update() call and subsequently
it thinks that the thermo does not need to be updated, whereas when
cached.state1 is being set after the m_spthermo->update() call it does not get
set. The current blessed output for that test is just the text of the exception
that gets caught, so I suspect the test may not work as is.
2014-03-19 00:14:18 +00:00
Victor Brunini
935a20fc87 Some HMWSoln optimizations.
Mostly replacing some repeated divisions with 1
division and then multiplication by the inverse.
Saved ~10% on test problem of interest.
2014-03-18 23:29:09 +00:00
Victor Brunini
4c4836fd18 HMWSoln caching fixes.
Forgot to update the cached state number in a few places in
my last commit.

Also uncovered a potential bug with m_A_Debye. m_A_Debye is only
set by A_Debye_TP() but is used by s_updatePitzer_lnMolalityActCoeff()
which could end up using an un-updated value for m_A_Debye through the
call chain:

setState_TP() -> calcDensity() -> getPartialMolarVolumes() ->
  s_update_lnMolalityActCoeff() -> s_updatePitzer_lnMolalityActCoeff()

I changed both s_updatePitzer_lnMolalityActCoeff() and s_NBS_CLM_lnMolalityActCoeff()
to call A_Debye_TP() rather than using m_A_Debye directly to ensure that they
are always using an up to date value.
2014-03-18 21:05:10 +00:00
Victor Brunini
a704df09d8 Convert recent changes to new caching method. 2014-03-18 18:52:29 +00:00
Ray Speth
a92d0ef03e [Test] Fix platform-dependent output in test-IAPWSPres 2014-03-18 01:42:38 +00:00
Ray Speth
6b6ccfaf7f [SCons] Allow 'clean' to be specified along with other targets 2014-03-18 01:42:34 +00:00
Ray Speth
7556b828f9 Introduce a more general method of caching results
The ValueCache class is intended to standardize the method for implementing
value caching in Cantera, and to reduce the need to introduce additional member
variables to store cached variables and the thermodynamic state at which the
cached values were computed.

The initial usage is to replace the use of the m_tlast variable in IdealGasPhase
as an example.
2014-03-18 00:48:38 +00:00
Victor Brunini
2b92ad5684 WIP on additional caching.
I'll convert this over to the new caching framework once
Ray adds it.
2014-03-17 16:03:22 +00:00
Ray Speth
3eba9641ab [SCons] Continue running test suite if Python tests crash
If the Python test suite crashes, it won't save a results file, but we can still
run the rest of the tests and report this specific failure.
2014-03-17 02:05:17 +00:00
Ray Speth
d501189ce9 [SCons] Allow boost_thread_lib to specify multiple libraries 2014-03-17 02:05:13 +00:00
Ray Speth
338a54f101 [SCons] Simplify implementation of changes in r2810
Use the correct platform-independent path separator instead of assuming that it
is ':'.

Determine the PYTHONPATH variable in a single place for each Python version.
2014-03-17 02:05:09 +00:00
Harry Moffat
26750d9af0 Reblessed two tests whose results slightly changed. 2014-03-16 03:00:54 +00:00
Harry Moffat
eb1fc02ba7 Modified License statement slightly to comply with copywrite assertion paperwork. 2014-03-16 02:58:48 +00:00
Harry Moffat
e032e9e56b Took out a print statement that caused crashes on some systems that don't define PYTHONPATH
Thanks Ray for pointing this out.
2014-03-16 02:52:55 +00:00
Harry Moffat
39651964a7 Added back Statmech and PecosTransport.
Rarefied gas dynamics is an import application area for Sandia, and
    it represents a potentially important development direction for Cantera.
    These classes provide inroads into that area.
2014-03-15 02:57:00 +00:00
Harry Moffat
3d5aa42e77 Fixed the LD_LIBRARY_PATH and PYTHONPATH specifications for scons's test suite on multiuser linux boxes.
The user's environmental variables are now passed down to the tests. Previously they had been ignored.
All of the python tests (minimal and full) had been failing for over a year or so for any installations which actually use the
LD_LIBRARY_PATH and PYTHONPATH environmental variables, which pretty much consists of all multiuser linux
machines.
2014-03-14 23:56:55 +00:00
Victor Brunini
b0ecf96cb6 Trying out a cleaner way knowing when expensive state functions need to be recomputed. 2014-03-13 23:50:31 +00:00
Ray Speth
89eab1bb48 [Thermo] Remove redundant implementations of logStandardConc
For the cases where logStandardConc just calls standardConcentration,
rely on the default implementation in class ThermoPhase.
2014-03-13 21:35:49 +00:00
Ray Speth
d0b3ad3d4b [SCons] Remove deprecated 'legacy_headers' option 2014-03-13 21:35:44 +00:00
Ray Speth
6266986d7b [SCons] Add specific targets for building the docs
Documentation can be built independently of the code by using the 'scons sphinx'
and 'scons doxygen' commands, as an alternative to using the options
'sphinx_docs=y' and 'doxygen_docs=y' to 'scons build'.
2014-03-13 21:35:39 +00:00
Ray Speth
e09c6ca304 Update compilation instructions 2014-03-13 21:35:32 +00:00
Ray Speth
f46f755057 [SCons] Remove unnecessary include directories 2014-03-13 21:35:24 +00:00
Ray Speth
2fb9ff630d Remove abandoned StatMech and PecosTransport classes 2014-03-13 21:35:11 +00:00
Victor Brunini
48ec4dc65c HMWSoln::s_update_lnMolalityActCoeff() performance improvement.
Only do the expensive update if state has changed.
2014-03-13 18:35:00 +00:00
Victor Brunini
e62ce054ce Style changes to be consistent with the rest of Cantera.
Thanks for the code review.
2014-03-13 16:49:10 +00:00
Ray Speth
df908229b1 [ctml_writer] Fix handling of units in some fields
When using Python 3, using -1 as the dummy value for density and site_density
causes probems, because the (ordered) comparison between a density specified
with units (as a tuple) and 0 is not allowed. Instead, use None as the
placeholder value.
2014-03-13 02:19:28 +00:00
Ray Speth
755164397d [ctml_writer] Improve error reporting
Print a more useful traceback for cases where exceptions are raised in ctml_writer.
2014-03-13 02:19:23 +00:00
Ray Speth
4458933420 Fix alignment of ThermoPhase::report output on Windows
Windows uses 3 digits in the exponent, for which there wasn't enough
space being allocated in the columns for the specific properties.
2014-03-13 02:19:19 +00:00
Ray Speth
b65a27e513 [SCons] Extract common default compiler flags 2014-03-13 02:19:15 +00:00
Ray Speth
94301d22ba [Scons] Use compiler-independent method for handling NDEBUG 2014-03-13 02:19:12 +00:00
Ray Speth
0ba2294af0 [SCons] Remove unnecessary compiler flags
These flags all correspond to default compiler behavior
2014-03-13 02:19:08 +00:00
Ray Speth
9b37d7d961 [SCons] Fix default compiler options with non-default compiler paths
Try to identify the compiler based on a substring match rather than the
exact string, which will still work when the full path to the compiler
is given, or a version-tagged binary is used.
2014-03-13 02:19:05 +00:00
Ray Speth
62177ebc4d [SCons] Improve detection of MinGW as the default compiler 2014-03-13 02:19:01 +00:00
Victor Brunini
584abf0d10 Performance improvements for HMWSoln and MaskellSolidSolnPhase.
HMWSoln: avoid recomputing lambdas if ionic strength hasn't changed.

MaskellSolidSolnPhase: Avoid recomputing activity coefficients if
r and T haven't changed.
2014-03-12 20:37:04 +00:00
Ray Speth
ec6b65513b [Python] Add multiprocessing example 2014-03-08 21:47:14 +00:00
Ray Speth
98c480c7c7 [Python] Fix docstring of Sim1D.restore
Resolves Issue 210.
2014-03-08 21:47:09 +00:00
Ray Speth
6a51eb88dc [Thermo] Move modifyOneHf298SS and m_tlast to ThermoPhase
This eliminates many duplicate implementations of this function and
declarations of this variable.
2014-03-08 21:46:58 +00:00
Victor Brunini
ee94266939 MaskellSolidSolnPhase: throw in unimplemented functions. 2014-03-07 17:21:14 +00:00
Victor Brunini
1565bad198 MaskellSolidPhaseSoln thermo updates.
Fix sign error in chemical potentials and update
activity coefficients accordingly.

Correct implementation of getActivityConcentrations()

Additional unit tests.
2014-03-07 17:14:13 +00:00
Victor Brunini
0981391ac4 Implement and test MaskellSolidSolnPhase::getActivityCoefficients(). 2014-03-07 00:53:33 +00:00
Victor Brunini
7abb459bbe Implement MaskellSolidSolnPhase::standardConcentrations() and getActivityConcentrations() 2014-03-06 22:30:19 +00:00
Victor Brunini
5898bf025f Implement MaskellSolidSolnPhase::getPartialMolarVolumes()
User VPStandardStateVP as base class and just return
the standard state molar volumes.
2014-03-06 20:23:23 +00:00
Harry Moffat
b328e396b0 screwed up and didn't check in a complete fix 2014-03-06 17:37:41 +00:00
Harry Moffat
7078ac4d18 Added constructor info to prevent segfaults
However, need to flesh the whole class out to be useful in Electrode objects.
2014-03-06 17:03:23 +00:00
Harry Moffat
a58fc91f01 Added back a routine that caused numerous downstream failures. 2014-03-06 04:02:01 +00:00
Victor Brunini
e7a24f7acd Unit test ThermoPhase::getElementPotentials and setElementPotentials. 2014-03-06 01:06:25 +00:00
Victor Brunini
d983660c77 Fix ThermoPhase::getElementPotentials and setElementPotentials
Broken in r2719.
2014-03-06 00:40:50 +00:00
Victor Brunini
32ce311bed Fix Issue 209.
installShomateThermoFromXML now checks that
7 coefficients are supplied in the floatArray and
throws if that is not the case.

Also update MaskeLLSolidSolnPhase_Test xml files
to correctly contain 7 coefficients to not trigger
the newly added throw.
2014-03-06 00:08:58 +00:00
Ray Speth
30bf2c806f [Scons/Test] Allow test suite to continue if gtest crashes
If a gtest program crashes, register that as a single test failure.
Previously, the entire test suite would be aborted because the
attempt to open the test results file (gtest-foo.xml) would fail.
2014-03-05 03:25:19 +00:00
Ray Speth
c5eb2f57dd [Python] Make Cantera objects explicitly non-picklable and uncopyable.
Attempting to copy or pickle Cantera objects with an underlying C++ object
previously led to unexpected errors. These operations will not raise excptions
indicating the unimplemented feature.

Resolves Issue 205.
2014-03-04 17:39:21 +00:00
Ray Speth
c7ba8bfb84 Remove abandoned autotools build system 2014-03-04 17:38:53 +00:00
Ray Speth
10200524c2 Fix linker error when using MSVC
Regression was introduced in r2755.
2014-03-03 03:50:04 +00:00
Victor Brunini
93fcf181b1 Initial pass at implementing Maskell solid solution ThermoPhase.
Based on Maskell, Shaw, and Tye, Electrochimica Acta 28(2) 225-230 1983.
Includes unit tests checking calculation of the chemical potential values
and parsing of the mixing enthalpy parameter from an XML file.
2014-02-28 00:38:09 +00:00
Ray Speth
a313873b03 [Doc] Point to SourceForge for downloads 2014-02-24 03:25:46 +00:00
Ray Speth
c3be6cc7fa Mention downloads on Sourceforge in README 2014-02-24 03:25:42 +00:00
Ray Speth
608184ecea [SCons] Fix 'command too long' error with MinGW compilation 2014-02-24 03:25:38 +00:00
Ray Speth
ea040e1a5e [SCons] Always link to static standard libraries with MinGW 2014-02-24 03:25:34 +00:00
Ray Speth
6e72f8930f [SCons] Fix Cython module compilation with MinGW 2014-02-24 03:25:30 +00:00
Ray Speth
a02d3193de [SCons] Remove unused 'rpfont' configuration variable 2014-02-24 03:25:25 +00:00
Ray Speth
ae5fa4a042 [SCons] Add test for Fortran library
Check for both the Fortran compiler and the corresponding Fortran library before
deciding whether to build the F90 interface. This will automatically disable the
F90 interface on platforms that provide gfortran but don't put libgfortran in a
standard location.
2014-02-24 03:25:19 +00:00
Ray Speth
7edc16d7c1 [SCons] Use more generic flag for warning suppression
Older versions of Clang don't support '-Wno-unused-result'.
2014-02-24 03:25:15 +00:00
Ray Speth
0ff3afe5ea [SCons] Fix warning suppression in external code 2014-02-21 19:08:54 +00:00
Ray Speth
dba9ddd858 Fix miscellaneous integer sign/size warnings 2014-02-21 19:08:47 +00:00
Ray Speth
0392147540 Fix integer sign/size warnings in XML-related functions 2014-02-21 19:08:40 +00:00
Ray Speth
6f8da1a27e Fix 'unused variable' warnings 2014-02-21 19:08:33 +00:00
Ray Speth
2ead29097c [Thermo] Make signatures of overridden Hf298 functions consistent 2014-02-21 19:08:19 +00:00
Ray Speth
b5c5835ca9 Remove superfluous use of 'inline'
Member functions defined in the class body are always 'inline'.
2014-02-21 19:08:13 +00:00
Ray Speth
4a83d6450b Remove unnecessary include of windows.h 2014-02-21 19:08:07 +00:00
Ray Speth
9153c00d94 Remove broken/unused GMRES implementation 2014-02-21 19:08:03 +00:00
Ray Speth
3e073aae27 [SCons] Force relink of Python extension when necessary 2014-02-21 19:07:58 +00:00
Ray Speth
8471200fc1 [Doc] Add class Mixture to Sphinx docs 2014-02-21 19:07:54 +00:00
Ray Speth
16927ae538 [SCons] Workaround for SCons bug under Cygwin
See SCons Issue 2911.
http://scons.tigris.org/issues/show_bug.cgi?id=2911
2014-02-20 03:01:05 +00:00
Ray Speth
aad284cce7 [SCons] Fix library linking issues under Cygwin 2014-02-20 03:01:01 +00:00
Ray Speth
44847515ca Fix compilation errors with isnan/isinf using Cygwin's GCC 2014-02-20 03:00:56 +00:00
Ray Speth
13259299ba [SCons] Correctly identify Cygwin builds
The correct preprocessor macro to use is the one provided by the
compiler, '__CYGWIN__'.
2014-02-20 03:00:52 +00:00
Ray Speth
ca0ea8bc35 [SCons] Simplify treatment of sydep1.h and signal1.h
We don't actually have system-dependent versions of these headers,
so just put the templates in place directly.
2014-02-20 03:00:45 +00:00
Ray Speth
03c891ba18 [SCons] Fix a missing SCons dependency 2014-02-20 03:00:41 +00:00
Bryan W. Weber
3de3842e3c [MixMaster] Fix variable ambiguity in DataFrame.py.
Fix file not closed bug in importCSV. Import from XML is broken due
to missing XML module.
2014-02-19 22:45:00 +00:00
Ray Speth
771ff96e86 [MixMaster] Fixes to use Cython function names
DataFrame.importCSV and dataFrame.importData were still using function names
from the old Python module.
2014-02-14 16:40:58 +00:00
Ray Speth
377d3877f7 [MixMaster] Fix usage of numpy.zeros and numpy.ones 2014-02-14 16:40:54 +00:00
Ray Speth
78f6314cd9 Remove misleading reference to 'preconfig' 2014-02-13 22:26:49 +00:00
Ray Speth
4ca1d9dd1d [Matlab] Fix detection of errors when importing Kinetics
Cast the unsigned return type of newKineticsFromXML to a signed type so that the
check on the Matlab side (which looks at the sign of the return value) can
detect and report errors.
2014-02-13 22:26:45 +00:00
Ray Speth
452a9160f0 [Doc] Fix line lengths in Cython migration guide 2014-02-13 22:26:40 +00:00
Ray Speth
bc4d68eb20 [Cython] Add saveState/restoreState info to the migration guide 2014-02-13 22:26:36 +00:00
Victor Brunini
92a3d13752 Prevent hidden overloaded virtual function compiler warning. 2014-02-12 21:30:09 +00:00
Ray Speth
43360663c2 [SCons/Test] Include GTest unit tests individually in test result summary 2014-02-06 22:59:10 +00:00
Ray Speth
fb2f52b2ec General cleanup of class ThermoPhase 2014-02-06 22:59:07 +00:00
Ray Speth
14b1bf093b Remove option to disable 'h298modify_capability' at compile-time 2014-02-06 22:58:56 +00:00
Ray Speth
03be898300 [ck2cti] Skip non-ASCII characters in input files 2014-02-06 22:58:53 +00:00
Ray Speth
3015e90088 General cleanup of ctml functions 2014-02-06 22:58:49 +00:00
Victor Brunini
171681bf13 Cache result of expensive function call in HMWSoln for reuse.
Went from 440s runtime down to 65s for test case of interest.
2014-02-03 19:48:02 +00:00
Ray Speth
eaceaf7b86 [SCons] Use SCons to compile the Cython extension
Fixes issues with mismatched compilers between the Cython extension and the
cantera library, especially on OS X. Improves build dependency resolution to
eliminate unnecessary recompilation of _cantera.cpp.
2014-01-31 23:15:17 +00:00
Ray Speth
d516d46f33 Remove unnecessary use of static_cast<int> 2014-01-31 23:15:09 +00:00
Ray Speth
3dc335565c Fix missing include in application.cpp
Causes compilation errors on OS X 10.8.
2014-01-31 03:44:27 +00:00
Ray Speth
d4a9ca0847 [SCons] Fix simultaneous compilation of Python 2 and Python 3 modules
Use separate SCons Environments so the 'py_include_dirs' variable (which
contains the Numpy include directory) can be distinct for each Python module.
2014-01-30 00:48:03 +00:00
Ray Speth
6a9fee8805 [Test] Register premature termination of Python tests as a failure 2014-01-30 00:47:58 +00:00
Ray Speth
e59a7a7eeb [1D] Eliminate deprecated methods of Domain1D 2014-01-30 00:47:52 +00:00
Ray Speth
f9278b7e68 Remove unused 'install_tsc' script 2014-01-30 00:47:44 +00:00
Ray Speth
ff9584105b Do implicit CTI to XML conversions without generating .xml files
When instantiating a phase from a .cti file, do the conversion in memory,
without writing the XML representation to disk. This eliminates the unrequrested
XML files that Cantera normally generates, and also avoids errors when running
Cantera from a directory where the user does not have write permissons.
2014-01-30 00:47:37 +00:00
Ray Speth
aae8982924 Clean up end-of-file whitespace 2014-01-30 00:47:24 +00:00
Ray Speth
4c504a4ff2 [Test] Simplify reported names of failing Cython tests 2014-01-24 20:40:43 +00:00
Ray Speth
e7944771c5 [Test] Fix failure count to include Python tests which report 'ERROR' 2014-01-24 20:40:37 +00:00
Ray Speth
3c703eb4ed [Cython/1D] Use 'Mix' transport if no transport model is provided 2014-01-24 20:40:32 +00:00
Ray Speth
c34877a96f [ck2cti] Fix support for species names containing '+' and '='
This addesses a parsing error that would occur if a mechanism contained both
'foo' and 'foo+', where reactions written as 'foo+bar' would be parsed as a
reaction with 'foo+' and 'bar'.

See Issue 182.
2014-01-24 20:40:26 +00:00
Ray Speth
d9af4af88f [Fortran] Fix compiler used for building Fortran sample programs 2014-01-23 04:20:48 +00:00
Ray Speth
a33c57d1f1 [1D] Remove unused method 'setAdiabaticFlame' 2014-01-23 04:20:42 +00:00
Ray Speth
904459c6b8 [1D] Remove unused 'importSolution' function 2014-01-23 04:20:35 +00:00
Ray Speth
e51ca819fe [SCons] Fix an error when not using Sundials
'has_sundials_lapack' is only defined if we are using Sundials.
2014-01-21 18:06:47 +00:00
Ray Speth
2144738ea1 [SCons] Fix minor typo in warning message 2014-01-21 17:22:14 +00:00
Ray Speth
1ff7bc2f3b [SCons] Remove check for <tr1/tuple>
Updated gtest version makes this special case unnecessary.
2014-01-21 17:22:09 +00:00
Ray Speth
b95d87e1f7 [Test] Update gtest to 1.7.0 2014-01-21 17:21:50 +00:00
Ray Speth
cf0ff0c6fd [1D] Move m_zfixed and m_tfixed variables from Domain1D to FreeFlame
FreeFlame is the only subclass of Domain1D where these variables are used.
2014-01-21 17:21:43 +00:00
Ray Speth
f45e627745 Fix compiler warnings about implicit double -> int conversions 2014-01-21 17:21:37 +00:00
Bryan W. Weber
4badbd1fb3 [SCons/0D] Update to enable Sundials linked with external BLAS/LAPACK.
With help from Nick Curtis and Ray Speth.
2014-01-20 15:19:53 +00:00
Victor Brunini
8c4312f31e Fix potential segmentation fault and invalid read. 2014-01-14 16:51:20 +00:00
Ray Speth
22eac2abcd [Sphinx/Cython] Add call signatures to constructors 2014-01-11 00:20:33 +00:00
Ray Speth
a3d8684d94 [Samples] Explicitly set transport model to 'Mix' for clarity 2014-01-11 00:20:27 +00:00
Ray Speth
d3422e70dd [SCons] Fix count of skipped tests
Exclude the partial tests of the Cython module which are included in the full
test.
2014-01-11 00:20:21 +00:00
Ray Speth
e31eb0ccf0 [SCons] Include Python unit tests individually in test result summary 2014-01-09 23:12:32 +00:00
Ray Speth
a75a9c6e21 [SCons] Install Python 3 module to stage directory 2014-01-09 23:12:27 +00:00
Ray Speth
2a37111d33 [SCons] Add Boost libraries when building the shared library 2014-01-09 23:12:18 +00:00
Ray Speth
dfc542be76 Fix some issues identified by compiler warnings 2014-01-09 23:12:11 +00:00
Ray Speth
f3b1555a6b [Cython] By default, use same interpreter for mechanism conversions
Fixes failures when only the Python 3 module is present.
2014-01-09 23:12:03 +00:00
Ray Speth
f3e0280716 Improve error handling when calling ck2cti and ctml_writer
Only look for modules in the new location (inside the cantera package), and
print the path if they aren't found, to aid in debugging.
2014-01-08 17:10:53 +00:00
Ray Speth
562eed68d9 Fix missing include in csvdiff
"std::exit" is declared in <cstdlib>. Fixes compilation errors on OS X 10.9.
2014-01-08 17:10:48 +00:00
Bryan W. Weber
a689717a7a [Matlab] Add isothermalCompressibility and thermalExpansionCoeff functions
Resolves Issue 157.
2014-01-08 17:10:41 +00:00
Ray Speth
a8d8f3f0ca [SCons] Check for <tr1/tuple>
This header is used by GTest. If not present, define 'GTEST_USE_OWN_TR1_TUPLE'
to use an alternative version. Fixes a compilation error on OS X.
2014-01-08 17:10:34 +00:00
Ray Speth
908b63fccd [Cython] Fix compilation issue when using Clang 2014-01-08 17:10:29 +00:00
Bryan W. Weber
1d1ad21840 [ck2cti] Fix for support of unterminated thermo sections
Fixes the case where the next section header contains a modifier, e.g. 'thermo
all' or 'reactions <units>'.

See Issue 199.
2014-01-06 18:47:02 +00:00
Bryan W. Weber
b5c2881f64 [ck2cti] Add extra info about handling of extra thermo parameters
See Issue 199.
2014-01-06 18:46:55 +00:00
Bryan W. Weber
e3ab2dbf8a [ck2cti] Improve handling of duplicate species
Warn when a species is given multiple times in the input list. Do not add the
duplicate species to speciesList.

Resolves Issue 199.
2014-01-06 18:46:49 +00:00
Bryan W. Weber
7deb45a840 [Matlab] Check for sparse arrays in the Solution 'set' function
Resolves Issue 140.
2014-01-06 18:46:43 +00:00
Bryan W. Weber
120c6e742c [Matlab] Add fwdRateConstants and revRateConstants functions
Resolves Issue 125.
2014-01-06 18:46:36 +00:00
Bryan W. Weber
16335a0932 [Matlab] Allow nAtoms to take string inputs for species and elements
Resolves Issue 159.
2014-01-06 18:46:30 +00:00
Ray Speth
3a308a041f [Matlab] Remove broken rxnEqs function
"ReactionEqn" is the working alternative. See Issue 118.
2014-01-06 18:46:25 +00:00
Ray Speth
a2d26cd80a [Kinetics] Simplifiy implementation of Kinetics::nTotalSpecies 2014-01-06 18:46:19 +00:00
Ray Speth
1b20128ad5 [1D] Miscellanous cleanup of class OneDim 2014-01-06 18:46:14 +00:00
Ray Speth
dede8dcd42 [1D] Remove redundant Domain1D::setGrid function
This is a duplicate of Domain1D::setupGrid.
2014-01-06 18:46:09 +00:00
Ray Speth
2653c0a16b [1D] Move OneDim::needJacUpdate to the correct source file 2014-01-06 18:46:03 +00:00
Ray Speth
fc008d067d [Transport] Move implementation of MultiTransport into a single file 2014-01-06 18:45:57 +00:00
Ray Speth
907bfa0a10 Eliminated possibility of throwing from XML_Node destructor 2014-01-06 18:45:52 +00:00
Ray Speth
07cf85b851 [Thermo] Made constants used in WaterProps 'static const' 2014-01-06 18:45:47 +00:00
Ray Speth
ff75f77add Remove unnecessary m_nchildren variable from XML_Node 2014-01-06 18:45:41 +00:00
Ray Speth
b7885ea84a Simplify XML_Node::addChild implementations 2014-01-06 18:45:36 +00:00
Ray Speth
76a9c5e79c Remove unnecessary overload of XML_Node::addChild 2014-01-06 18:45:31 +00:00
Ray Speth
607955b9f2 Remove unnecessary conditional surrounding 'delete' statements 2014-01-06 18:45:19 +00:00
Harry Moffat
7e88d49734 Took out change of user NASA polynomials.
This violates basic paradigm of what the user inputs the user gets.
If this is necessary, this needs to be a cpp utility program that is run before the main simulation.
2014-01-03 20:57:40 +00:00
Bryan W. Weber
f8850963a0 Use b instead of n for temperature exponent
Resolves Issue 198.
2014-01-02 22:23:38 +00:00
Ray Speth
d5a9da2b57 [Samples] Improve output of 'combustor' sample C++ program
Switch to integrating using 'advance' instead of step to make output comparable,
independent of small changes in the integrator. Output only selected species and
trim the integration period to reduce the size of the output file (from 3 MB to
25 kB).
2014-01-02 22:23:32 +00:00
Ray Speth
e79e453e77 [SCons] Fix Matlab-related paths in post-install message 2014-01-02 22:23:26 +00:00
Ray Speth
201043e98c [Kinetics] Fix reaction path output when arrow_width > 0
Fixes Issue 197.
2013-12-20 19:21:45 +00:00
Ray Speth
8a8926849f [SCons] Fix running the Python 3 test suite 2013-12-20 19:21:41 +00:00
Ray Speth
38532f800f Fix linker error in IDA_Solver 2013-12-20 19:21:36 +00:00
Ray Speth
59fb3ed1bc [Doc] Fix punctuation in messages in SConstruct 2013-12-18 17:47:07 +00:00
Bryan W. Weber
421e5356cb [Doc] Fix some formatting in cython/tutorial.rst
See Issue 196.
2013-12-18 17:47:03 +00:00
Bryan W. Weber
6973579b88 [Doc] Correct typo in migrating.rst
See Issue 196.
2013-12-18 17:46:57 +00:00
Bryan W. Weber
5dddf942c8 [Doc] Add note about specifying species in the stoichiometric_solid example in phases.rst
See Issue 196.
2013-12-18 17:46:52 +00:00
Bryan W. Weber
e7e1c7ce6f [Doc] Fix typo in Chebyshev docs
See Issue 196.
2013-12-18 17:46:47 +00:00
Bryan W. Weber
f07e1b6bcd [Doc] Update Kee reference in SRI formulation
See Issue 196.
2013-12-18 17:46:42 +00:00
Bryan W. Weber
f86af29884 [Doc] Add note about specifiying third body efficiencies
See Issue 196.
2013-12-18 17:46:37 +00:00
Bryan W. Weber
10cead4950 [Doc] Fix typos and formatting in reactions.rst
Add +M to the three-body reaction's reactants.
Update formatting of species names in the following paragraph.
Update formatting of 'units' arguments.

See Issue 196.
2013-12-18 17:46:32 +00:00
Bryan W. Weber
b02bb4287a [Doc] Update docstrings in ctml_writer for the NASA thermo classes
See Issue 196.
2013-12-18 17:46:27 +00:00
Bryan W. Weber
d1fa4395f7 [Doc] Fix typos in thermo parameterizations
See Issue 196.
2013-12-18 17:46:21 +00:00
Bryan W. Weber
5698913073 [Doc] Add element class link. Add Kee 1986 transport reference
See Issue 196.
2013-12-18 17:46:16 +00:00
Bryan W. Weber
ef23860994 [Doc] Fix typos in doc/sphinx/cti/phases.rst
See Issue 196.
2013-12-18 17:46:11 +00:00
Bryan W. Weber
a1ea2a803d [Doc] Update mixture models docs to support Cantera 2.1
See Issue 196.
2013-12-18 17:46:06 +00:00
Bryan W. Weber
87e48fdb6a [Doc] Fix examples in phases.rst to work with Cantera 2.1
See Issue 196.
2013-12-18 17:46:00 +00:00
Bryan W. Weber
5bbe9a6a22 [Doc] Fix typos and formatting in input-files.rst
See Issue 196.
2013-12-18 17:45:55 +00:00
Bryan W. Weber
e78d31f933 [Doc] Update formatting of cantera.conf text
See Issue 196.
2013-12-18 17:45:50 +00:00
Bryan W. Weber
d7482de464 [Doc] Slight grammar change in FAQ
See Issue 196.
2013-12-18 17:45:45 +00:00
Bryan W. Weber
1b6533900e [Doc] Fix 'git svn clone --std-layout' is not an option error
See Issue 196.
2013-12-18 17:45:40 +00:00
Ray Speth
ddd82bd3c1 [SCons] Refactor Python test preparation 2013-12-18 17:45:35 +00:00
Ray Speth
7e64056082 [SCons] Add options to run subsets of the Python test suite
New test targets are automatically generated from the test_foo.py
scripts, with the new targets named like 'cython2-test-foo'.
2013-12-18 17:45:30 +00:00
Ray Speth
a8e884d34e [SCons] Check for incompabible BLAS/LAPACK when building Matlab toolbox
Matlab's practice of substituting an "8 byte integer" BLAS/LAPACK
library for the "4 byte integer" BLAS/LAPACK libraries that Cantera is
designed to use causes Cantera to crash. This can only be avoided by
statically linking Cantera to BLAS and LAPACK, e.g. by using the
BLAS/LAPACK implementations included with Cantera.

Since the Matlab toolbox itself needs to be a shared library, it is
not usually possible to link statically link it with vendor-provided
BLAS/LAPACK libraries, since they are not compiled with the
appropriate options, i.e. '-fPIC'.

Resolves Issue 34.
2013-12-18 17:45:25 +00:00
Ray Speth
28dbcf072e [Kinetics] Remove the deprecated 'WF93' Falloff function 2013-12-16 23:22:09 +00:00
Bryan W. Weber
fc2d7e4ce0 [Reactor] Change 'species' to 'component' in context of sensitivities
Change the variable named *species* to be named *component*. This
better matches the utility of this variable, since it can be used to
retrieve any of the state variables. Also, update the corresponding
documentation.
2013-12-16 23:22:04 +00:00
Bryan W. Weber
1a2404aea5 [Reactor] Make default wall area 1.0 m^2
This makes the default consistent with the documentation in the Python
module.

Fixes Issue 194.
2013-12-16 23:21:58 +00:00
Ray Speth
e1a49487b7 [Kinetics] Remove deprecated getActivationEnergies function
Resolves Issue 147.
2013-12-16 23:21:52 +00:00
Ray Speth
28bbbf514c Remove deprecation warning about Sundials < 2.4 from CVodesIntegrator 2013-12-16 23:21:45 +00:00
Ray Speth
54d11a016a Remove support for old Sundials versions
Supported Sundials versions are 2.4 and 2.5.
2013-12-14 00:18:17 +00:00
Ray Speth
f1b28158bf [Reactor] Fix behavior of componentIndex with ambigous names
The name 'H' can mean either the species by that name or the entahlpy
of the reactor, in the case of ConstPressureReactor, and the previous
behavior always returned the index of the enthalpy.

This changes the behavior to preferentially return the species, and
adds alternative names for reactor state variables that are less
likely to generate namespace collisions: 'mass', 'volume',
'int_energy', 'enthalpy', 'temperature', 'distance', 'velocity'. The
single character names are still supported.

Resolves Issue 193.
2013-12-14 00:18:12 +00:00
Ray Speth
5b7a8d1b4e [Python/Doc] Improved documentation of sensitivity parameters 2013-12-14 00:18:07 +00:00
Ray Speth
12f3b2739c [Doc] Add ideal gas reactor classes to the Sphinx documentation 2013-12-14 00:18:04 +00:00
Ray Speth
d959b34541 [Doc] Fix typos in documentation of reactor model
Resolves Issue 191.
2013-12-14 00:18:00 +00:00
Ray Speth
1215f05da7 [Kinetics] Remove deprecated GRI30 class
Resolves Issue 134.
2013-12-14 00:17:54 +00:00
Ray Speth
3541a8d0bb [Test] Skip tests which require ctml_writer when python_package=none 2013-12-09 01:36:27 +00:00
Ray Speth
72515dcc99 [Test] Eliminate text-based comparison of XML files
The order of XML attributes within a node has no meaning, and is not
consistent when the attributes are represented as a Python dict, as in
ctml_writer.py. As a result, comparing the text representation of the
XML generates spurious errors when the order changes.
2013-12-09 01:36:24 +00:00
Ray Speth
f63f8ae57e Remove deprecated HTML logging functionality 2013-12-09 01:36:11 +00:00
Ray Speth
e7e5d739a1 [Test] Fix some issues with PYTHONPATH 2013-12-09 01:36:03 +00:00
Ray Speth
cf4ae23587 [Python] Remove support for obsolete 'numarray' and 'numeric' packages 2013-12-09 01:35:58 +00:00
Ray Speth
b5e540c903 [Python] Remove the legacy Python module 2013-12-09 01:35:08 +00:00
Ray Speth
07739c4b1f [Cython] Move CTI/CTML converter tests from old Python module to Cython module 2013-12-09 01:34:50 +00:00
Ray Speth
57f1506d0b [Cython] Move reactor tests from old Python module to Cython module 2013-12-09 01:34:46 +00:00
Ray Speth
59564659b3 [Cython] Move equilibrium tests from old Python module to Cython module 2013-12-09 01:34:41 +00:00
Ray Speth
6ec7d04839 [Cython] Move pure fluid tests from old Python module to Cython module 2013-12-09 01:34:36 +00:00
Ray Speth
24e3f99da4 [Cython] Move kinetics tests from old Python module to Cython module 2013-12-09 01:34:30 +00:00
Ray Speth
70a728c8f7 [Cython] Move thermo tests from old Python module to Cython module 2013-12-09 01:34:25 +00:00
Ray Speth
24a8d07b60 [SCons] Minor cleanup of SConstruct 2013-12-09 01:34:20 +00:00
Ray Speth
9dd30c7116 [Test] Adjust integrator tolerances for some reactor tests
Tests of the old-style ConstPressureReactor with surface reactions were
failing on Windows when using the old (non-Sundials) version of CVODE.
2013-12-09 01:34:16 +00:00
Ray Speth
b280af2af1 [SCons] Fix PYTHONPATH used by test suite
This was broken by changes made in r2535.
2013-12-09 01:34:11 +00:00
Ray Speth
3e4ccd4027 [Thermo] Make modification of discontinuous NASA polynomials optional
Adding the attribute allow_discontinuities="true" to a phase's
'thermo' node (CTML) or adding 'allow_discontinuous_thermo' to a
phase's 'options' argument (CTI) will disable the automatic adjustment
of the provided polynomials so that enthalpy and entropy are
continuous at the midpoint temperature.
2013-12-09 01:34:06 +00:00
Ray Speth
6b68564245 Bump trunk version to 2.2a 2013-12-09 01:33:58 +00:00
Ray Speth
9651b16b16 [ctml] Fix constructor for stoichiometric_solid phase
Error introduced in r2579
2013-12-06 23:45:22 +00:00
Ray Speth
a289e6f613 [ck2cti] Add support for species names containing '+' and '=' 2013-12-06 23:15:24 +00:00
Ray Speth
4107b268ce [ck2cti/Test] Eliminate confusing messages from expected errors
Suppress error messages from tests of ck2cti that use bad input to
test that input validation is working correctly.
2013-12-06 23:15:21 +00:00
Ray Speth
a786135f13 [ck2cti] Add support for truncated section header names
Accept truncated section names such as 'REAC' for 'REACTIONS' and
'ELEM' for 'ELEMENTS'.
2013-12-06 23:15:18 +00:00
Ray Speth
b29a6b1c7b [Cython] Direct log output to sys.stdout
This fixes the problem of some output (notably from the 1D solver)
going to std::cout when that is not the primary output location,
e.g. when using IDLE or the IPython QtConsole.
2013-12-06 23:15:14 +00:00
Ray Speth
5dd2f3164a [Thermo] Fix printed labels in phase report when show_thermo=False 2013-12-06 23:15:11 +00:00
Ray Speth
025da8b4c0 [Matlab] Remove broken ck2ctml function
There are three problems with this function. It does not work, since
it calls ctmethods with the wrong number of arguments. Even if that
were fixed, it wouldn't do what it claims, as the method it calls
generates a CTI file, not an XML file. Finally, it is redundant, as
the 'ck2cti' function can be used for generating the CTI file, and the
CTI to XML conversion is handled automatically when importing the
phase.

Therefore, this function is being removed.
2013-12-06 23:15:08 +00:00
Ray Speth
af0b0f2211 [Python/Test] Run tests that were being accidentally ignored 2013-12-05 20:54:11 +00:00
Ray Speth
1a291b47fe [CTI] Add optional 'note' field to Phase definitions
The note field is preserved when converting to XML, and can be used to
store extra information used by applications other than Cantera.
2013-12-05 20:54:08 +00:00
Ray Speth
7f35228e3f [Cython] Expose global 'appdelete' method
Occasionally useful for debugging memory leaks
2013-12-05 20:54:06 +00:00
Ray Speth
fb9de92058 [Docs] Fix typos in a few equations 2013-12-05 20:54:03 +00:00
Ray Speth
75bc6312ab [Matlab/Samples] Fix tolerances on flame example 2013-12-05 20:54:01 +00:00
Ray Speth
681a08fc8d Fix issues with pure fluids near temperature limits
Fixes Issue 186.
2013-11-12 23:44:51 +00:00
Ray Speth
81a8274e99 [Cython] Add 'atomic_weight' method and 'atomic_weights' property
Resolves Issue 185.
2013-11-12 23:44:46 +00:00
Ray Speth
bbaf0ff7a0 Fix CXX flags for VS2012
Resolves Issue 184.
2013-11-12 23:44:42 +00:00
Ray Speth
d7c939e60c [Cython/Doc] Migration guide covers transport model and Soret effect 2013-11-03 21:06:54 +00:00
Ray Speth
6d7ec8df43 [Matlab] Fix 'thermalConductivity' method 2013-11-03 20:46:38 +00:00
Ray Speth
8b435f6dcb [SCons] Fix a problem with Cantera.mak and user-provided BLAS/LAPACK
All cases need to define the mak_blas_lapack_libs_dep variable that
was introduced in r2535.
2013-10-21 01:55:47 +00:00
Ray Speth
e1074722c5 [SCons] Restore 'single_library' build option
The 'single_library=y' build option must be retained in order to support
compilation on Windows and OS X.
2013-10-04 16:22:55 +00:00
Ray Speth
5fff5ce99f [Thermo] Slightly simplify adding species
Eliminate the freezeSpecies and init methods of class Phase, instead adjusting
array sizes as new species are added.
2013-10-04 16:22:35 +00:00
Harry Moffat
5720d7cf90 Fixed an error where the users data was changed before it was used.
Eliminated some deprecations which were not sanctioned.

Worked on Cantera.mak. There is a problem with scons eliminating $ from strings.
2013-09-06 22:52:59 +00:00
Harry Moffat
cfa4493b51 Worked on fixing errors in the code that caused problems with downstream code.
Took out single_species compilation option

took out some deprecated warnings

Fixed an error in copy constructors for thermo.

Still an error with PYTHONPATH and the test suite

 -- more to come.
2013-09-02 00:58:28 +00:00
Ray Speth
0295f975e0 [Reactor] Refactor handling of sensitivity parameters in evalEqs 2013-07-30 15:57:48 +00:00
Ray Speth
957c88fcff Bump version to 2.1.0 2013-10-24 02:40:14 +00:00
Ray Speth
be1573e85e [SCons] Fix undefined build variable when building MSI 2013-10-24 02:40:12 +00:00
Ray Speth
904e3e66e9 [ck2cti] Accept reaction units declared in either order
That is, energy followed by quantity or quantity followed by energy.
2013-10-21 22:13:00 +00:00
Ray Speth
c885a88817 Use fully qualified names for isnan, isinf, and finite
Specify the versions in the global namespace, to avoid ambiguity
between these and the versions in namespace std that are available in
C++11.
2013-10-21 22:12:57 +00:00
Ray Speth
94f1b35b79 [ck2cti] Partial support for scientific notation in stoichiometric coefficients
This won't work for positive exponents, because the '+' will still be
interpreted as a delimiter between terms of the reaction expression.
2013-10-21 01:55:18 +00:00
Ray Speth
6d5b7999de [SCons] Use specified 'python_compiler' to link Python module
Fixes Issue 179.
2013-10-15 17:06:35 +00:00
Ray Speth
f871dd8cf0 [SCons] Add 'python_compiler' option for Cython module compilation 2013-10-15 14:59:31 +00:00
Ray Speth
335e8fcd07 [Samples] Fix missing includes in C++ sample programs 2013-10-07 15:17:28 +00:00
Ray Speth
584392d856 [SCons] Fix linking boost_thread in more places 2013-09-30 16:02:39 +00:00
Ray Speth
c028f4cc5c [SCons] Link boost_thread when building cti2ctml
Fixes compilation errors with some versions of Boost.
2013-09-30 01:54:18 +00:00
Ray Speth
2de0ae6350 [SCons/Cython] Fix library_dirs to include BLAS/LAPACK directory 2013-09-30 01:54:12 +00:00
Ray Speth
ddb8bf8eb8 [OneD] Make StFlow::componentIndex virtual 2013-09-30 01:54:06 +00:00
Ray Speth
8498123689 [ck2cti] Show line number for some parsing errors 2013-09-30 01:54:00 +00:00
Ray Speth
f95bc8fb43 [Equil] Avoid floating point overflow from pressure term
Since computing the residual norm effectively requires p**2, the
correct limit to avoid an overflow is sqrt(DBL_MAX), or roughly
exp(300).

This change fixes crashes due to SIGFPE in cases where floating point
exceptions have been enabled, and also fixes a few cases where the
solver did not previously converge.
2013-09-30 01:53:54 +00:00
Ray Speth
2ac98393bd [Equil] Remove a calculation with an unused result 2013-09-30 01:53:48 +00:00
Ray Speth
a6f4c111e7 [Cython] Add declarations for free functions to _cantera.pxd 2013-09-30 01:53:40 +00:00
Ray Speth
0458eb736f [Cython] Add __init__.pxd to allow 'from cantera cimport ...' 2013-09-28 18:18:23 +00:00
Ray Speth
a6ce399374 [Cython] Move extra Cython-related headers to main include directory 2013-09-28 18:18:12 +00:00
Ray Speth
332569114e [Cython] Install headers needed for derived Cython modules 2013-09-25 23:05:21 +00:00
Ray Speth
7520170f30 [Cython] Improve support for building derived Cython modules
The .pxd file now contains declarations for all of the cdef classes,
and is installed with the module.
2013-09-25 22:57:36 +00:00
Ray Speth
55ece82319 [clib] Fix bounds check on getMolecularWeights
The incorrect bounds check here caused problems with phases where
there were more elements than species.

Fixes Issue 173.
2013-09-19 14:49:09 +00:00
Ray Speth
dab827d763 [ck2cti] Make permissive mode default when run from Matlab or C++ 2013-09-12 16:04:13 +00:00
Ray Speth
8a58b12698 [ck2cti] Fix to work with Cython module when called from Matlab or C++ 2013-09-12 16:04:04 +00:00
Ray Speth
721f0266be [SCons] Fix some dependency issues for building "ctpath.m" 2013-09-06 20:34:18 +00:00
Ray Speth
7683677cac Bump version to 2.1.0b3 2013-09-01 00:33:55 +00:00
Ray Speth
b0635fe748 [SCons] Fix compilation of Python 3 module when PYTHONHOME is set 2013-09-01 00:33:49 +00:00
Ray Speth
9f90edc313 [SCons] Update version information for Windows installer 2013-09-01 00:33:43 +00:00
Ray Speth
fc878f09fd [SCons] Include Sundials library and header files in Windows installer 2013-09-01 00:33:37 +00:00
Ray Speth
1969a4d399 [SCons] Add configuration option for specifying required Boost libraries.
The set of Boost libraries which are required by Cantera, through the use of
Boost.Thread, depends on the Boost version. The static libraries are needed
when compiling anything that links to Cantera, so these libraries are copied
to the Cantera installation directory on Windows, where compiling Boost from
source is a burden.
2013-09-01 00:33:32 +00:00
Ray Speth
93e672046a [Doc] Update docs for ReactionData and SurfaceArrhenius 2013-09-01 00:33:27 +00:00
Ray Speth
cf0a418027 [Reactor] Fix segfault when requesting sensitivities at t = 0 2013-09-01 00:33:19 +00:00
Ray Speth
7447c5957d [Thermo] Fix deleting objects that have manually-added species 2013-09-01 00:33:06 +00:00
Ray Speth
717a2367b1 [Transport] Add electricalConductivity method to all language interfaces
Thanks to user 'hencken' for the patch.

Resolves Issue 171.
2013-08-23 17:43:55 +00:00
Ray Speth
f61cbeafcb [Equil] Fix infinite loop in VCS equilibrium solver
The threshold being removed here was introduced in r714, which was merged into
trunk in r1115.

Fixes Issue 113.
2013-08-23 17:43:44 +00:00
Ray Speth
4534bbd21b [Doc] Add all Matlab examples to the Sphinx docs 2013-08-22 21:46:37 +00:00
Ray Speth
1cedf904df [Doc] Add all Python examples to the Sphinx docs 2013-08-22 21:46:27 +00:00
Ray Speth
8d7f48d031 [Cython] Minor reorganization of examples 2013-08-22 21:46:17 +00:00
Ray Speth
1592ee37df Add a note indicating the location of the Cython examples 2013-08-22 21:46:09 +00:00
Ray Speth
3d5ac35c6f [Test] Avoid exact comparisons of floating point numbers 2013-08-21 19:49:37 +00:00
Ray Speth
32ea4fd924 [SCons] Fix to skip Python startup messages
This fixes an issue when the Python interpreter prints startup messages that
appear before the expected output lines. Known to be a problem with the Anaconda
Python distribution.
2013-08-16 17:25:04 +00:00
Ray Speth
d60629ead5 [Cython] Fix syntax errors in MixMaster for Python 3
Backticks are not allowed in Python 3 (equivalent to repr)
2013-08-14 17:56:05 +00:00
Ray Speth
a22ceda566 [Scons] Fix build order dependencies for python modules 2013-08-14 17:55:51 +00:00
Ray Speth
6126521ff3 [SCons] Eliminate spurious warnings about environment variables 2013-08-09 15:35:07 +00:00
Ray Speth
4d88fa8e34 Bump version to 2.1.0b2 2013-08-02 23:31:36 +00:00
Ray Speth
dfe5945cd6 [Matlab] Add access to class FlowReactor 2013-08-02 23:17:54 +00:00
Ray Speth
ea3ac2fc91 [Test] Fix file name used for Cython pdep tests 2013-08-02 23:17:49 +00:00
Ray Speth
3fe2cd9bbb [Cython] Fix format strings for compatibility with Python 2.6 2013-08-02 23:17:45 +00:00
Ray Speth
988f300e6b [SCons] Add PYTHONPATH to list of default environment variables
Simplifies compilation when Python packages needed for compilation (e.g. Cython)
are not installed in system-wide locations.
2013-08-02 23:17:42 +00:00
Ray Speth
957ddc97ae Fix calls to ck2cti that pass through the C++ interface 2013-08-02 23:17:40 +00:00
Ray Speth
c32b54a47d [ck2cti] Fix for reading files with no final 'END' keyword 2013-08-02 23:17:38 +00:00
Ray Speth
10aa8ba060 [Kinetics] Allow negative Troe parameters 2013-08-01 18:57:33 +00:00
Ray Speth
cc75faf402 [Matlab] Add support for additional reactor types
Matlab interface now supports ConstPressureReactor, IdealGasReactor, and
IdealGasConstPressureReactor.
2013-07-31 18:14:47 +00:00
Ray Speth
03786fd07b [Python] Add support for IdealGasReactor and IdealGasConstPressureReactor 2013-07-31 18:14:45 +00:00
Ray Speth
9b6354b0c0 [SCons] Fix generation of ctpath.m
Was failing because of dependency on dynamically-generated 'python_module_loc'
variable.
2013-07-31 18:14:42 +00:00
Ray Speth
615c3124fb [Reactor] Fix sensitivity parameter order for constant pressure reactors
This matches the behavior of Reactor, where the parameter order is
determined by the order of the reactions in the mechanism.
2013-07-30 15:57:37 +00:00
Ray Speth
8724bc9f04 [Cython] Fix generation of MSI installer when using Python 2.x
The old patch to distutils only worked on Python 3.x, since distutils
uses old-style classes which do not support property objects.
2013-07-29 01:38:01 +00:00
Ray Speth
f320290c51 [SCons] Fix Python module path in setup_cantera and post-install message
In particular, this fixes paths for Linux distros that put Python modules in
'lib64/pythonX.Y/site-packages'.

Also fixes the reported installation path for the Python module on Windows.
2013-07-29 01:37:57 +00:00
Ray Speth
9a8dbf75f8 CTI to XML conversion works with either new or old Python module 2013-07-29 01:37:54 +00:00
Ray Speth
b7d4fbbe54 [clib] Fix error handling for MultiPhase objects 2013-07-26 21:33:59 +00:00
Ray Speth
35aed42fbd [Equil] Raise exceptions instead of aborting execution 2013-07-26 21:33:57 +00:00
Ray Speth
5bd01da0fa Fix deprecation warnings in SOFC example 2013-07-26 21:33:54 +00:00
Ray Speth
c76ddefa5f Fix spelling errors 2013-07-26 21:33:50 +00:00
Ray Speth
e65cd38214 Bump version to 2.1.0b1 2013-07-23 15:53:31 +00:00
Ray Speth
5fcf64c100 Maintenance branch for 2.1 release 2013-07-23 15:46:17 +00:00
Ray Speth
6fbf5d35ed [Cython] Make critial / saturation properties available for all phase types
Any ThermoPhase class which overrides the appropriate methods will work,
and classes that don't will raise an exception.
2013-07-23 15:31:09 +00:00
Ray Speth
2723da7410 Remove deprecation of class Interface
The note accompanying the deprecation references nonexistent classes,
so there's not actually a working alternative to this class.
2013-07-23 15:31:05 +00:00
Ray Speth
297029ea7a Deprecate AdsorbateThermo::install
This method shouldn't be used, as it isn't part of the base class
interface.
2013-07-23 15:31:02 +00:00
Ray Speth
d129d74289 [Thermo] Move shared methods to SpeciesThermoInterpType base class
Almost every class derived from SpeciesThermoInterpType used the same
implementation of the minTemp, maxTemp, refPressure, and speciesIndex,
so it makes more sense to just implement these in the base class.
2013-07-23 15:30:56 +00:00
Ray Speth
4d406f2ff4 [Doc] Update compilation instructions related to Cython module 2013-07-23 15:30:53 +00:00
Ray Speth
fa1d9e1ca9 [Cython] Use scipy when necessary to support older Python versions
Fixes an incompatibility with Python 2.6 and 3.1. Scipy is not
required when using Python 2.7 or 3.2+.
2013-07-23 15:30:51 +00:00
Ray Speth
346f9e196f [Cython] Use unittest2 when necessary to support Python 2.6 2013-07-23 15:30:47 +00:00
Ray Speth
ab7775e67e [Cython] Fix Python 2.6 compatibility issues with sys.version_info
The "major" attribute is a new feature in Python 2.7.
2013-07-18 22:39:26 +00:00
Ray Speth
c846d8237e [SCons] Check Cython version for Python 3.x 2013-07-18 22:39:23 +00:00
Ray Speth
c575bf6fb2 [SCons] Check Cython version for Python 2.x 2013-07-18 22:39:21 +00:00
Ray Speth
0fddd6a129 [Thermo] Fix errors in setState_SPorSV
This corrects the behavior in cases where the correct temperature is below the
nominal minimum temperature for the phase.

Add test cases for this and analogous cases for the maximum temperature and
setState_HPorUV.

Fixes Issue 151.
2013-07-18 19:07:14 +00:00
Ray Speth
000e374b6c [ctml_writer] Fix a Python 2.6 compatibility issue
Python 2.6 needs some extra help when trying to execute code
containing Windows (CRLF) line endings.
2013-07-18 19:07:10 +00:00
Ray Speth
a20fd58000 [1D] Fix save/restore when mechanism size differs
The failures were caused when attempting to restore the tolerance vectors, which
have a value for each species. Since these tolerances are usually the same for
all species, the last value in the array can be used to extend the array to the
required length.

Also add some tests for this feature.
2013-07-18 00:04:13 +00:00
Ray Speth
07ec92f712 [Doc] Start section for FAQs 2013-07-18 00:04:10 +00:00
Ray Speth
2fdd822369 [Doc] Put new Python module docs before legacy docs 2013-07-18 00:04:08 +00:00
Ray Speth
700ebd0abf [Matlab/Examples] Don't call non-existent methods
The current simulation time is a property of the reactor network, not the
individual reactors.
2013-07-16 22:10:01 +00:00
Ray Speth
13e707999f [Matlab/Examples] Make constant pressure reactor example more explicit
Both the reactor and the adjacent reservoir need to have the same pressure. This
example relied on the fact that the default pressure of the 'air' phase is 1
atm, which caused it to break if the user changed the pressure of the reactor
gas.
2013-07-16 22:09:59 +00:00
Ray Speth
5d6a97f89a [Cython/Examples] Update to use IdealGasReactor 2013-07-16 22:09:55 +00:00
Ray Speth
a616d4f55f [Test] Fix dependencies so Cython tests run after rebuilding 2013-07-16 22:09:53 +00:00
Ray Speth
21d90495d2 [Doc] Describe reactor governing equations 2013-07-16 22:09:51 +00:00
Ray Speth
86b1f3b956 Mark function defined in header as 'inline' 2013-07-16 22:09:49 +00:00
Ray Speth
8a232abc71 [Reactor] Add optimized IdealGasConstPressureReactor class
Like IdealGasReactor, this formulation uses the temperature as a state variable
to improve performance for the common use case of reactors containing ideal gas
mixtures.
2013-07-16 22:09:46 +00:00
Ray Speth
9709dd859e [Reactor] Change ConstPressureReactor to support non-ideal phases
Similar to the change for Reactor, using the total enthalpy as the state
variable works for non-ideal phases, although it is less efficient.
2013-07-16 22:09:43 +00:00
Ray Speth
785d4f058e [Reactor] Add optimized IdealGasReactor class
This formulation of the reactor governing equations, with temperature as a state
variable, works better for ideal gas mixtures. This way, most of the Jacobian
components are derivatives at constant temperature, eliminating the need to
recompute the temperature-dependent part of the rate expressions when computing
these entries.
2013-07-16 22:09:40 +00:00
Ray Speth
c89b7f1c93 [Reactor] Change formulation of Reactor to support non-ideal phases
Expanding the time derivative of the total internal energy only works for ideal
phases, so for the more general case it is necessary to keep the internal energy
as the state variable and use an iterative method for setting the state.
2013-07-16 22:09:37 +00:00
Steven DeCaluwe
878abceb6a Removed 'const' declaration from satPressure function for remaining ThermoPhase class members. 2013-07-15 17:44:01 +00:00
Steven DeCaluwe
23b725d3a8 Removed 'const' declaration for function satPressure in members of the ThermoPhase class 2013-07-15 17:43:54 +00:00
Steven DeCaluwe
6321cf4c8e Removed calculatePsat from matlab toolbox, and overwrote 'satPressure' for MixtureFugacityTP
class to point to the calculatePsat function.  Removed 'const' declaration from satPressure
within the ThermoPhase class.
2013-07-15 17:43:45 +00:00
Ray Speth
1b9d23c120 [ck2cti] Fix parsing third-body reactions with no efficiencies 2013-07-08 01:35:36 +00:00
Ray Speth
f7fc700c8c [ck2cti] Fix third-body reactions with explicit reverse rate expressions 2013-07-08 01:35:33 +00:00
Ray Speth
a69d56ab28 [ck2cti] Check for duplicate thermo entries
By default, raise an exception.
With '--permissive', use the first entry found.
2013-07-08 01:35:30 +00:00
Ray Speth
5d26a264f4 [ck2cti] Add limited support for unterminated sections
Each section of the input file should end with 'END'. Other utilities that work
with these files don't always require this, so we allow unterminated sections
if the '--permissive' flag is used, otherwise these are considered errors.
2013-07-08 01:35:27 +00:00
Ray Speth
812ec6ef77 [ck2cti] Fix for mechanism files with in-line transport data 2013-07-08 01:35:23 +00:00
Ray Speth
e8ab4dda28 [ck2cti] Fix handling of thermo entries with end-of-line comments 2013-07-08 01:35:20 +00:00
Ray Speth
ceeea2ed21 [ck2cti] Improve messages for some input file errors 2013-07-08 01:35:18 +00:00
Ray Speth
f1e5183431 [ck2cti] Fix to allow species names starting with special characters 2013-07-08 01:35:15 +00:00
Ray Speth
2778267a43 [ck2cti] Fix reading files with "CR" (old Macintosh) line endings 2013-07-08 01:35:12 +00:00
Ray Speth
4f236a80fe [ck2cti] Fix reading empty THERMO sections 2013-07-08 01:35:10 +00:00
Ray Speth
1cc411200e [Doc] Add description of chemically activated reactions to CTI guide 2013-07-06 21:44:13 +00:00
Ray Speth
08724c9ac3 [ck2cti] Translate "chemically activated" reactions
These are reactions with an additional set of Arrhenius parameters labeled
'HIGH' in the input file. They may also have a set of falloff function
parameters.
2013-07-06 21:44:10 +00:00
Ray Speth
27902b32e0 [ck2cti] Separate falloff functions from falloff reaction type
This is in preparation for adding support for chemically activated reactions,
which also use these falloff functions.
2013-07-06 21:44:07 +00:00
Ray Speth
da95339706 [ctml_writer] Add support for chemically activated reactions 2013-07-06 21:44:05 +00:00
Ray Speth
77ccab92bd [Kinetics] Implement evaluation of "chemically activated" reaction rates 2013-07-06 21:44:02 +00:00
Ray Speth
1cec7cc051 [Cython] Fix a couple cases where exceptions could escape 2013-07-06 21:43:58 +00:00
Ray Speth
8b87087e41 [Kinetics] Populate m_rxntype 2013-07-06 21:43:56 +00:00
Ray Speth
ef6479f58d Eliminate special case for default falloff function 2013-07-06 21:43:53 +00:00
Ray Speth
ff1473fab7 Remove unimplemented method PecosTransport::getGasTransportData 2013-07-06 21:43:50 +00:00
Ray Speth
eb82cbc998 Remove undeclared function getNamedFloatArray
This function has no declaration in any header file, so it is clearly not used
anywhere.
2013-07-06 21:43:48 +00:00
Steven DeCaluwe
06d239a40a Enabled use of the 'calculatePsat' function for MixtureFugacityTP thermo class
in the Matlab toolbox.
2013-07-03 15:44:52 +00:00
Ray Speth
ebaefabf08 [Doc] Update info on Visual Studio versions 2013-06-28 21:24:55 +00:00
Ray Speth
b147dee775 [Doc] Provide commands to check out stable or development versions 2013-06-28 21:24:53 +00:00
Ray Speth
7b32a3831a [Doc] Add Cython to list of requirements for the Python module 2013-06-28 21:24:51 +00:00
Ray Speth
ebd4df76ab Fix some Doxygen warnings 2013-06-28 21:24:49 +00:00
Ray Speth
19662496c3 Deprecate VPSSMgr::standardVolumes 2013-06-28 21:24:46 +00:00
Ray Speth
8ded648bf4 Speed up duplicate reaction check in installReactions
This version of the "participants" key is more likely to have collisions, but
having the key be a simple scalar speeds things up quite a bit.
2013-06-28 21:24:44 +00:00
Ray Speth
ee9b153efb Improve performance of reading species info from XML
Avoid an O(N) lookup for the thermo info for each species. Using an
unordered_map would be even better, but there's no portable way to do that
without Boost.
2013-06-28 21:24:42 +00:00
Ray Speth
0a2db03364 Deprecate StFlow::setState 2013-06-28 21:24:40 +00:00
Ray Speth
64f1c8ed73 Remove some incorrect "todo" notes
These functions are used in Cantera (and even covered by the test suite).
2013-06-28 21:24:37 +00:00
Ray Speth
29e6c374a2 [Test] Fix failure of VCS-LiSi test when debug_verbose=y
Partially addresses Issue 69.
2013-06-28 21:24:35 +00:00
Ray Speth
e2e9ee8ea3 [Test] Fix failure of VPsilane_test when debug_verbose=y
Partially addresses Issue 69.
2013-06-28 21:24:33 +00:00
Ray Speth
966ebfa9ff [Test] Fix failure of cxx_ex test when debug_verbose=y
Partially addresses Issue 69.
2013-06-28 21:24:30 +00:00
Ray Speth
52997d6f60 [Test] Fix failures in HMW tests when debug_verbose=y
Partially addresses Issue 69.
2013-06-28 21:24:28 +00:00
Ray Speth
bd8d257c5e [ctml_writer] Clean up reaction.build 2013-06-28 21:24:26 +00:00
Ray Speth
dd41d8ac90 [ctml_writer] Improve performance of XMLnode._write 2013-06-28 21:24:24 +00:00
Ray Speth
e1fe14a9b0 [SCons] Make the new Python package the default 2013-06-26 00:23:18 +00:00
Ray Speth
029e2c5d2e [SCons] single_library defaults to True
Also, using single_library=n is deprecated.
2013-06-26 00:23:14 +00:00
Ray Speth
1ac855ae9b [SCons] Mention config.log in relevant error messages 2013-06-26 00:23:11 +00:00
Ray Speth
65a97d9b62 [1D] Restore domains based on sequence rather than name
Instead of searching the XML tree for nodes where the "id" attribute matches,
require that the domains occur in order from left to right (corresponding to how
they are saved).

Fixes Issue 164.
2013-06-26 00:23:07 +00:00
Steven DeCaluwe
fde8eeddcc Modified ctml_writer.py to allow loading RedlichKwongMFTP thermo class from a cti file. 2013-06-25 22:06:18 +00:00
Ray Speth
5213393c1e [SCons] Fix 'HAS_NO_PYTHON' to account for the Python 3 package 2013-06-24 15:22:55 +00:00
Ray Speth
73c43a3a26 [SCons] Keep default values of compiler flags out of cantera.conf 2013-06-24 15:22:52 +00:00
Ray Speth
dcb579df98 [SCons] Only copy Boost libraries when they are being used 2013-06-24 15:22:48 +00:00
Ray Speth
e7754fbcf2 [1D] Deprecate vector version of Domain1D::setBounds
The scalar version is actually easier to use in most cases.
2013-06-24 15:22:45 +00:00
Ray Speth
3e4c944416 [1D] Simplify interface for setting tolerances 2013-06-24 15:22:38 +00:00
Ray Speth
63b6660632 Deprecate debug methods of PDSS_HKFT 2013-06-24 15:22:33 +00:00
Ray Speth
9d2f7e0220 Deprecate report/modifyParameters methods of SpeciesThermoInterpType 2013-06-24 15:22:25 +00:00
Ray Speth
27f2ccc647 Deprecate Transport::setParameters 2013-06-24 15:22:19 +00:00
Ray Speth
8c95ee035e Deprecate the setParameters and getParameters methods of ThermoPhase 2013-06-24 15:22:08 +00:00
Ray Speth
f7ed3c17f8 Deprecate SpeciesThermo::reportParams 2013-06-24 15:22:00 +00:00
Ray Speth
d060cba434 Fix a memory error in IdealGasPhase::cv_vib and cv_tr
The array 'c' is only long enough to hold the thermo parameters filled in
by the StatMech class, so it's necessary to make sure the type is correct
first and abort if it's not, rather than calling reportParams first and
corrupting the stack.
2013-06-24 15:21:55 +00:00
Ray Speth
123544e4f7 [VCS Equil] Eliminate unnecessary calls to reportParams 2013-06-24 15:21:51 +00:00
Ray Speth
9b31092e90 Deprecate PrintCtrl and LogPrintCtrl 2013-06-24 15:21:46 +00:00
Ray Speth
89664920e8 Eliminated use of PrintCtrl in ChemEquil debug mode 2013-06-24 15:21:40 +00:00
Ray Speth
33eb924f59 [Test] Eliminated usage of class PrintCtrl 2013-06-24 15:21:36 +00:00
Ray Speth
7c8d0824f3 Deprecate Cantera.h 2013-06-24 15:21:32 +00:00
Ray Speth
c625d8327e [SCons] Fix an issue when using virtualenv
Virtualenv substitutes an old version of site.py that may not have the
getusersitepackages function. However, it appears that USER_SITE is set
correctly in these cases.
2013-06-24 15:21:28 +00:00
Ray Speth
58d6917fe4 [Cython] Patch distutils to prevent overwriting of build-lib
This bug in distutils prevented building the MSI installer on Windows.
2013-06-24 15:21:25 +00:00
Ray Speth
4591159cd9 [SCons] Install script for running MixMaster with new Python module 2013-06-21 20:59:00 +00:00
Ray Speth
70178cee04 [MixMaster] Use the Cython-based Cantera API 2013-06-21 20:58:52 +00:00
Ray Speth
0a56f3286f [MixMaster] Make compatible with Python 3
This also retains Python 2 support.
2013-06-21 20:58:35 +00:00
Ray Speth
440bf4a8d1 Add current version of MixMaster to the Cython package
Note that this currently doesn't work at all, due to both Python 3 compatibility
issues as well as the changes to the Cantera Python API
2013-06-21 20:58:22 +00:00
Ray Speth
84aaec1417 [Cython] Install ck2cti.py and wrapper script 2013-06-21 20:58:15 +00:00
Ray Speth
39adabb820 [Cython] Fix a bug writing graphviz input files 2013-06-21 20:58:11 +00:00
Ray Speth
66981a244d [ck2cti] Print line number of invalid reaction entry 2013-06-21 20:58:07 +00:00
Ray Speth
94ac608adb [Kinetics] Consider third-body efficiencies in duplicate reaction checks 2013-06-21 20:58:02 +00:00
Ray Speth
92fb4252d0 [ck2cti] Avoid parsing keywords in comments 2013-06-21 20:57:58 +00:00
Ray Speth
ac0ccec7f5 Use ReactionData struct to store info in class rxninfo
This eliminates the need the data members of class rxninfo that were
just duplicates of what is in the ReactionData struct.
2013-06-21 20:57:53 +00:00
Ray Speth
39079b93d1 [ck2cti] Consider explicit third bodies in duplicate reaction check
Reactions with the same reactants and products but different named
third bodies are not considered duplicates and do not need to be marked
as such.

Normal third body reactions (with 'M' as the third body) are considered
duplicates of reactions with specific third bodies if the efficiency
for the specific third body is not zero.
2013-06-21 20:57:49 +00:00
Ray Speth
ca3057ce08 [Doc] Add Transport classes to the tranprops group 2013-06-19 22:08:58 +00:00
Ray Speth
d21a6a7be9 [Doc] Create a group for classes in the "onedim" module 2013-06-19 22:08:50 +00:00
Ray Speth
0945a6de9b [clib] Enable access to critical properties of non-pure phases
Previously, only the critical properties of PureFluidPhase objects could be
accessed, but there are other ThermoPhase classes (specifically,
RedlichKwongMFTP) which overload the critTemperature, critPressure, and
critDensity functions.
2013-06-19 15:26:54 +00:00
Ray Speth
67240c4947 [ck2cti] Fix handling of transport comments with no preceding space 2013-06-17 14:20:38 +00:00
Ray Speth
0018acd607 [ck2cti] Fix a Python 3 incompatibility 2013-06-17 14:20:34 +00:00
Ray Speth
b3708cdab5 [Kinetics] Allow reactions with A = 0.0 2013-06-17 14:20:30 +00:00
Ray Speth
0f13a7159e [ck2cti] Improve performance of duplicate reaction check
Old method was O(N^2). New method is essentially O(N).
2013-06-17 14:20:26 +00:00
Ray Speth
7eae48abba [ck2cti] Show line numbers of unmarked duplicate reactions 2013-06-17 14:20:23 +00:00
Ray Speth
f9fcfc562e [ck2cti] Permit lower case keywords in Chemkin input files
Although the specification of the file format doesn't appear to allow lower
case keywords, many mechanisms are distributed using them.
2013-06-17 14:20:19 +00:00
Ray Speth
2c4748aaf5 [1D] Deprecate importSolution 2013-06-17 14:20:16 +00:00
Ray Speth
d545a2e598 Deprecate 'testProb' constructors
These constructors should be removed and any useful test code they
contain incorporated into new or existing tests.
2013-06-17 14:20:09 +00:00
Ray Speth
dd10230ce1 Deprecate unused VCS functions 2013-06-17 14:20:05 +00:00
Ray Speth
1c7c4938e9 Deprecate getNamedStringValue 2013-06-17 14:20:01 +00:00
Ray Speth
9c542981f1 Deprecate getUnitsStandardConc 2013-06-17 14:19:54 +00:00
Ray Speth
d19d18dd77 [SCons] Print options read from cantera.conf
This prevents surprises when an unexpected option value is saved in
cantera.conf.
2013-06-17 14:19:50 +00:00
Ray Speth
28154d847d [Test] Use more stable output for ChemEquil_ionizedGas
The test output previously included the nondimensional chemical potential
for each species. This contains a term equal to log(mole fraction). In
some of the cases in this test, there are species with very small mass
fractions, below the tolerances of the equilibrium solver, leading to
large apparent changes in the chemical potential for species which are
present in insignificant amounts.

The comparison of the equilibrium mole fractions in this test is retained
by using the "table.csv" file.
2013-06-17 14:19:47 +00:00
Ray Speth
97ff4fa2a5 [SCons] Fix handling of blas_lapack_dir and boost_lib_dir
These need to be added to LIBPATH as entries in a list, otherwise
LIBPATH ends up concatenating the strings for each as a single entry.
2013-06-14 23:06:29 +00:00
Ray Speth
7b7e578500 [Transport] Avoid unnecessary L-matrix solves 2013-06-14 23:06:24 +00:00
Ray Speth
94800445a1 Allow derived classes of MultiTransport 2013-06-14 23:06:21 +00:00
Ray Speth
e013e8b966 Add __version__ attribute to (legacy) Python module 2013-06-13 22:50:40 +00:00
Ray Speth
496dfe31ce Remove extraneous constructor for XML_Node 2013-06-13 22:50:35 +00:00
Ray Speth
77ed000090 Deprecate WF93 falloff parameterization 2013-06-13 22:50:30 +00:00
Ray Speth
112d9b5093 Remove unusable KINETICS_WITH_INTERMEDIATE_ZEROED_PHASES macro 2013-06-13 22:50:26 +00:00
Ray Speth
75e586da0f Remove unusable CHEMKIN_COMPATIBILITY_MODE macro 2013-06-13 22:50:21 +00:00
Ray Speth
9740980c5d Deprecate class GRI_30_Kinetics 2013-06-13 22:50:14 +00:00
Ray Speth
d4be0e605b Remove header for unimplemented 'Crystal' class 2013-06-13 22:50:07 +00:00
Ray Speth
ca8d131092 Fix a few missing includes in header files
These header files had implicit dependencies on other header files, which are
now made explicit.
2013-06-13 22:50:03 +00:00
Ray Speth
1e02732140 [SCons] Deprecate the 'legacy_headers' option 2013-06-13 22:49:58 +00:00
Victor Brunini
e17d099b96 Fix lower_bound not found build error. 2013-06-11 19:41:30 +00:00
Ray Speth
1c7256e702 Make ck2cti compatible with Python 3 2013-06-08 02:01:23 +00:00
Ray Speth
9e9fe849bc Install ctml_writer with Cython module 2013-06-08 02:01:18 +00:00
Ray Speth
1cf8d9c8ea Classes in ctml_writer derive from object 2013-06-08 02:01:08 +00:00
Ray Speth
99c533c2eb Make ctml_writer compatible with Python 3 2013-06-08 02:00:59 +00:00
Ray Speth
843f2ad337 Deprecate ctml::getFloats 2013-06-06 15:33:11 +00:00
Ray Speth
18a102c91f Deprecate unused spectroscopy-related classes 2013-06-06 15:33:05 +00:00
Ray Speth
305e4eec54 Deprecate Kinetics::activationEnergies 2013-06-06 15:33:00 +00:00
Ray Speth
a972a7f558 Deprecate class Elements 2013-06-06 15:32:56 +00:00
Ray Speth
a6614b87bb [Doxygen] Fix some incorrect/missing "@file" commands 2013-06-06 15:32:30 +00:00
Ray Speth
11170a0e32 Deprecate class AqueousKinetics 2013-06-05 17:09:59 +00:00
Ray Speth
8757836d64 Deprecate stripLTWScstring 2013-06-05 17:09:54 +00:00
Ray Speth
2483e39ae5 Allow tests to suppress deprecation warnings
This prevents certain tests from failing comparisons with blessed output files.
2013-06-05 17:09:46 +00:00
Ray Speth
56d481785c Deprecate HTML log files 2013-06-05 17:09:39 +00:00
Ray Speth
64bfdcc952 Deprecate support for Sundials 2.2 and 2.3. 2013-06-05 17:09:30 +00:00
Ray Speth
633576afe6 Deprecate class FtnTransport 2013-06-05 17:09:26 +00:00
Ray Speth
b888df70c4 Clean up Doxygen docs for some liquid transport related classes 2013-06-05 17:09:21 +00:00
Ray Speth
d253fc0d63 Eliminate redundant standard library includes 2013-06-05 17:08:13 +00:00
Ray Speth
be1e95576e Resolve some Doxygen warnings 2013-06-05 03:09:13 +00:00
Ray Speth
f75ba112f9 Clean up Doxygen docs for 1D simulation classes 2013-06-05 03:09:03 +00:00
Ray Speth
39770d6a48 [Cython] Fix Python 3 compatibility issue 2013-06-05 03:08:59 +00:00
Ray Speth
9c0eda6e98 [SCons/Windows] Entry in "Add/Remove Programs" indicates architecture 2013-06-05 03:08:55 +00:00
Ray Speth
fa27015468 [SCons] Include Boost import libraries in Windows installations 2013-06-05 03:08:51 +00:00
Ray Speth
736fccf7ef SCons-generated SConstruct files specify Visual Studio version 2013-06-05 03:08:48 +00:00
Ray Speth
49dc79c3ed [SCons] Get boost version string
This will be used when choosing files to install on Windows
2013-06-03 22:17:33 +00:00
Ray Speth
463c481cb0 Make 'scons clean' more thorough for Matlab and Python packages 2013-06-03 22:17:27 +00:00
Ray Speth
3305698b6a Add support for Visual Studio 2012 2013-06-03 22:17:23 +00:00
Ray Speth
00da5bead5 Remove some dead code 2013-06-03 22:17:19 +00:00
Ray Speth
8d004658d7 Update Doxygen docs for other Reactor-related classes 2013-06-03 22:17:12 +00:00
Ray Speth
5a94876c91 Update Doxygen docs for class ReactorBase and descendants 2013-06-03 22:17:05 +00:00
Ray Speth
5c2b5cbde0 Update Doxygen docs for class ReactorNet
Adding a docstring for the class means this class is finally included in the
Doxygen-generated documentation.
2013-06-03 22:17:01 +00:00
Ray Speth
9bb90a395e Clean up Doxygen docs for MMColisionInt 2013-06-03 22:16:56 +00:00
Ray Speth
0fc6861892 Clean up Doxygen docs for LiquidTranInteraction and descendants 2013-06-03 22:16:52 +00:00
Ray Speth
6a1ebcd9d7 Clean up Doxygen docs for TransportParams and descendants 2013-06-03 22:16:46 +00:00
Ray Speth
a8fea51046 Clean up Doxygen docs for TransportFactory 2013-06-03 22:16:41 +00:00
Ray Speth
098a87cdcd Clean up Doxygen documentation for class Transport and descendants 2013-06-03 22:16:29 +00:00
Ray Speth
e667978655 [Cython] Allow setting state while holding specific properties constant
The value "None" is used to indicate the property or properties being held
constant.
2013-05-31 15:56:36 +00:00
Ray Speth
02112c7cde [Test] Fix test failures due deprecation warnings 2013-05-31 15:56:32 +00:00
Ray Speth
9d851a5bf8 [SCons] Add names of all failing tests to the test summary 2013-05-31 15:56:28 +00:00
Ray Speth
8ab5b27121 [Cython] Check property setters for the correct number of arguments 2013-05-31 15:56:25 +00:00
Ray Speth
4743abbe2b [Cython/Doc] Add summary of changes to Python module syntax 2013-05-31 15:56:20 +00:00
Ray Speth
8292de3ee8 [Python] Add deprecation warnings for the old Python module
The old Python module will be removed after releasing Cantera 2.1.
2013-05-31 15:56:16 +00:00
Ray Speth
f8ac8ea7c3 Remove the DEPRECATED macro
This macro was not a reliable way of marking deprecated features. Future
deprecation warnings will be issued at runtime using the warn_deprecated
function.
2013-05-31 15:56:11 +00:00
Ray Speth
c1cfdffccc Add "warn_deprecated" function
This function can be used for issuing runtime deprecation warnings
2013-05-31 15:56:06 +00:00
Ray Speth
f90d136232 [Doc] Add content from tut[1-4].py to the Sphinx documentation
Update the tutorials to follow the Cython module's syntax
2013-05-31 15:56:01 +00:00
Ray Speth
0b00122062 [Cython] Add support for setting state using entropy + specifc volume 2013-05-31 15:55:57 +00:00
Ray Speth
81b8845b8e [Cython] Fix memory leaks in Wall and ReactorNet
The underlying C++ objects were not being deleted in the destructors for the
Python objects. Moving them to be non-pointer members of the Python wrapper
classes fixes this problem.
2013-05-31 15:55:53 +00:00
Ray Speth
e059b5c60c Eliminate unnecessary use of reinterpret_cast 2013-05-31 15:55:48 +00:00
Ray Speth
e43a4a8b3c Remove unnecessary "APPROACH" macro 2013-05-31 15:55:43 +00:00
Ray Speth
68aa5da406 [Cython] Translated an example showing how to make a reaction path diagram 2013-05-29 00:12:07 +00:00
Ray Speth
6c87237b66 [Test] Added a test of the Graphviz reaction path diagram output 2013-05-29 00:12:03 +00:00
Ray Speth
1352a67e1c [Cython] Added interface for ReactionPathDiagram 2013-05-29 00:11:57 +00:00
Ray Speth
1ed172a4d4 [Kinetics] Lazy evaluation of temperature-dependent terms in rate expression
This interacts well with the new formulations for the Reactor governing
equations where T is an independent variable, which means that the
temperature-dependent terms do not need to be updated when computing the
Jacobian terms involving derivative with respect to composition.
2013-05-29 00:11:52 +00:00
Ray Speth
cfb98e6770 [Test] Added tests of selective / lazy rate expression evaluation 2013-05-29 00:11:47 +00:00
Ray Speth
190c4bf8ce Cleaned up Doxygen documentation in other "numerics" classes 2013-05-29 00:11:40 +00:00
Ray Speth
eadf4e3fdd Cleaned up Doxygen documentation for Sundials wrapper classes 2013-05-29 00:11:32 +00:00
Ray Speth
7b2484dfa8 [Doc] Updated Doxygen config file to eliminate some warnings 2013-05-29 00:11:28 +00:00
Ray Speth
e9daef3313 Cleaned up Doxygen Documentation for matrix classes
BandMatrix, DenseMatrix, SquareMatrix, and GeneralMatrix
2013-05-29 00:11:22 +00:00
Ray Speth
7e8276809f Cleaned up Doxygen documentation for class BEulerInt 2013-05-29 00:11:17 +00:00
Ray Speth
0dba3d47a6 [Reactor] Converted ConstPressureReactor to (m,T,Yk) as independent variables
Parallels the change of independent variables for Reactor introduced in r2295.
2013-05-29 00:11:12 +00:00
Ray Speth
59af72fb51 [Test/Reactor] Added tests for ConstPressureReactor 2013-05-29 00:11:08 +00:00
Ray Speth
574bad76af [Cython] Fixed premature garbage collection of Reactor objects 2013-05-29 00:11:03 +00:00
Ray Speth
62dfdcfb01 [Cython] Added access to the "id" property of ThermoPhase objects 2013-05-29 00:10:58 +00:00
Ray Speth
9631f44d29 [Python] Fixed some more incompatibilities with Python 2.6 2013-05-24 20:14:14 +00:00
Ray Speth
982f9af20c [Test/Reactor] Fixed test of sensitivity coefficients 2013-05-24 17:47:29 +00:00
Ray Speth
7430e11aa5 [Test] Fixed regression in Python 2.6 support
Support for the implcit handling of positional arguments with "{}" isn't
available until Python 2.7.
2013-05-24 17:47:24 +00:00
Ray Speth
a59309e81e [Reactor] Independent variables for Reactor are now T,V, and Yk
This formulation for the reactor's governing equations significantly improves
the performance of integrator, mostly by improving the quality of the
Jacobian. The effect is small for smaller mechanisms (GRI 3.0) but can lead to
order-of-magnitude improvements for mechanisms with hundreds or thousands of
species.

Since this set of variables corresponds to the intrinsic state variables used
for IdealGasPhase objects, we also eliminate the need to iterate when setting
the state of the thermo object.

Additionally, by using temperature as an independent variable, the
temperature-dependent parts of the kinetic rate expressions do not need to be
recomputed while updating the Jacobian (this optimization is not currently
implemented).
2013-05-23 19:33:16 +00:00
Ray Speth
0ee8ac54fd [Reactor/Test] Added some additional checks 2013-05-23 19:33:07 +00:00
Ray Speth
d1b9d3e6ad [Test] Disabled a test that requires a feature missing from the old CVODE 2013-05-23 19:33:02 +00:00
Ray Speth
38cf1b9fec [Test] Adjusted tolerances on some Reactor tests
test tolerance adjustment
2013-05-23 19:32:58 +00:00
Ray Speth
ac7b36f003 [Test] Fixed an error that produced confusing error messages 2013-05-23 19:32:54 +00:00
Ray Speth
02e7df2c14 [Reactor/Test] Added tests for a well-stirred reactor ignition problem 2013-05-23 19:32:50 +00:00
Ray Speth
376c23f1bc [Reactor/Test] Made sensitivitiy tests somewhat more general 2013-05-23 19:32:46 +00:00
Ray Speth
5243fa9cb0 [Reactor/Test] Added additional checks to TestReactor.test_valve3 2013-05-23 19:32:36 +00:00
Ray Speth
ad2baad993 [Reactor/Test] Added a regression test for reactor surface chemistry 2013-05-23 19:32:31 +00:00
Ray Speth
57685799ad [Cython] Added interface to Reactor.component_index 2013-05-23 19:32:25 +00:00
Ray Speth
85b763538c [Python] Fixed creation of PressureController objects 2013-05-08 15:47:37 +00:00
Ray Speth
3850e0329d Fix preprocessor directives so that AssertFinite is always defined
It is a no-op when "NDEBUG" is defined.
2013-05-07 19:36:54 +00:00
Ray Speth
e940a96a98 [Matlab] Fixed integration failure in surfreactor example 2013-05-06 20:06:01 +00:00
Ray Speth
2e26abd4f9 [Kinetics] Fixed a NaN result in falloff reaction rates
A NaN result could be caused by an underflow in the high-pressure rate
expression.
2013-05-06 20:05:57 +00:00
Ray Speth
259ceaa9a6 Added assertions to check that some variables remain finite 2013-05-06 20:05:53 +00:00
Ray Speth
47598a197f Removed mdp_allo.h and mdp_allo.cpp from Cantera proper 2013-04-29 18:05:35 +00:00
Ray Speth
09def59948 Eliminated use of mdp functions in BEulerInt 2013-04-29 18:05:31 +00:00
Ray Speth
5205a7a530 Eliminated use of mdp functions in NonlinearSolver 2013-04-29 18:05:27 +00:00
Ray Speth
2c58b7237a Moved the "checkFinite" function into the Cantera namespace 2013-04-29 18:05:22 +00:00
Ray Speth
1d40085abc Updated coverage stats to show info on files that were not tested 2013-04-29 18:05:18 +00:00
Ray Speth
61917052d4 Removed unnecessary use of mdp_copy_dbl_1 from ThermoPhase 2013-04-29 18:05:14 +00:00
Ray Speth
7d79b30c27 Removed unnecessary MIN and MAX macros 2013-04-29 18:05:10 +00:00
Ray Speth
0a059d406a Eliminated unnecessary empty destructors from derived classes
See http://www.parashift.com/c++-faq-lite/virtual-dtors.html
2013-04-29 18:04:23 +00:00
Ray Speth
09e873b3bf [Kinetics] Allow coverage dependencies for edge reactions 2013-04-24 22:49:17 +00:00
Ray Speth
43b8b7f35c [Test] Updated blessed output files for some tests
These are tests where the output changed as a result of correcting discontinuous
thermo.
2013-04-24 21:48:07 +00:00
Ray Speth
02280d1417 [Test] Display details about failed CSV comparisons 2013-04-24 21:48:03 +00:00
Ray Speth
ca24ed8adf [Test] Disabled CpJump test
Since the jump in Cp is eliminated by the adjustments to the polynomial
coefficients, this test is not meaningful.
2013-04-24 21:47:59 +00:00
Ray Speth
e8c0e96dae [Thermo] Use least squares method to compute consistent NASA coefficients
To eliminate discontinuities in Cp/R, H/RT and S/R between the high- and
low-temperature NASA polynomials, formulate and solve a linear least squares
problem for a set of 11 coefficients (3 of the original coefficients 14 being
eliminated by the continuity requirements) which minimizes the changes in the
computed properties at a set of temperatures covering the valid temperature
range.
2013-04-24 21:47:56 +00:00
Ray Speth
7fa9a9eb63 Added interface to LAPACK linear least squares solver, DGELSS 2013-04-24 21:47:53 +00:00
Ray Speth
d8f9f97f74 Refactored class NasaThermo to remove implementations from header 2013-04-24 21:47:48 +00:00
Ray Speth
af55ec5557 [Thermo] Fixed an error in MargulesVPSSTP::s_update_dlnActCoeff_dT
This error was introduced in r1968, but it was masked by an issue with the code
used to compare test results.
2013-04-24 21:47:45 +00:00
Ray Speth
a01b112967 [Test] Modified IMSTester to exclude output for minor species 2013-04-24 21:47:41 +00:00
Ray Speth
06f8418ff7 Reblessing output file for VCS-NaCl test following changes in r1944 2013-04-24 21:47:38 +00:00
Ray Speth
8e9f6fcfe6 [Test] Fix VCS-LiSi to match the original from extendedCXXTestSuite 2013-04-24 21:47:33 +00:00
Ray Speth
e1702e74a8 [Test] Updated blessed output files using correct physical constants
The output for these tests changed after the values of the physical constants
were updated in r1539.
2013-04-24 21:47:27 +00:00
Ray Speth
a5bb695c24 [Test] Use relative and absolute tolerances for comparing files
Use the same tolerances for comparing text output files as is used for CSV
files. The absolute tolerance is the maximum (less restrictive) of the specified
tolerance and the tolerance implied by the recorded precision.
2013-04-24 21:47:19 +00:00
Ray Speth
f90d9b80d1 [Test] Fixed calculation of precision for string representations
This corrects the calculation of the least significant digit for all string
representations of for numbers where no decimal point was printed, e.g. "123"
and "45e+06".
2013-04-24 21:47:16 +00:00
Ray Speth
aade0ddb67 [Test] Fixed an issue where text comparisons were incorrectly succeeding
The logic for comparing string representations of floats in blessed output files
was incorrect. This caused a number of tests that shouldn't have actually been
passing to indicate success. This error was introduced in r1318.
2013-04-24 21:47:13 +00:00
Ray Speth
5d353c1ad4 [Test] Improved messages generated by chemkinConverterTest 2013-04-24 21:47:10 +00:00
Ray Speth
dc279dcbab [Test] Ensure that the local Python module is the one being imported
Explicitly set 'interfaces/python' as the first entry in sys.path, rather
than reyling on the PYTHONPATH environment variable, which is sometimes
superseded, e.g. by virtualenv.
2013-04-24 21:47:04 +00:00
Ray Speth
53ea57f504 Fixed compiler warnings about initialization order 2013-04-18 22:09:16 +00:00
Ray Speth
ee74c80afc Fixed a number of "shadowed variable" compiler warnings 2013-04-18 22:08:36 +00:00
Ray Speth
ea8eca5bde Cleaned up Doxygen documentation for miscellaneous VCS classes 2013-04-18 22:08:27 +00:00
Ray Speth
fc7067b63d Cleaned up Doxygen documentation for class vcs_MultiPhaseEquil 2013-04-18 22:08:22 +00:00
Ray Speth
ba5115fe64 Cleaned up Doxygen documentation for class VCS_PROB 2013-04-18 22:08:16 +00:00
Ray Speth
fa9f58cb8a Cleaned up Doxygen documentation for class vcs_VolPhase 2013-04-18 22:08:11 +00:00
Ray Speth
30b01ab8fd Cleaned up Doxygen documentation for class VCS_SOLVE 2013-04-18 22:07:59 +00:00
Ray Speth
28414eb77d Cleaned up Doxygen docs for equilibrium functions 2013-04-18 22:07:54 +00:00
Ray Speth
723cc0a709 Cleaned up Doxygen docs for class MultiPhaseEquil 2013-04-18 22:07:49 +00:00
Ray Speth
651ce785cc Cleaned up Doxygen docs for class ChemEquil 2013-04-18 22:07:43 +00:00
Ray Speth
d1e438d8dd Cleaned up Doxygen docs for class MultiPhase and related functions 2013-04-18 22:07:37 +00:00
Ray Speth
fde4a33908 Removed duplicate 'lowercase' function from tpx/utils.cpp 2013-04-18 22:07:32 +00:00
Ray Speth
e261fd8ef1 Removed the unnecessary tpx/subs.h file 2013-04-18 22:07:27 +00:00
Ray Speth
5be3edbd5f Cleaned up Doxygen documentation for pure fluid classes 2013-04-18 22:07:17 +00:00
Ray Speth
9a4b843d5e Cleaned up Doxygen docs for class clockWC 2013-04-18 22:07:11 +00:00
Ray Speth
71bc4afe3b Replaced blessed file for cxx_ex equilibrium test
This test uses an input file (silane.xml) that has discontinuous thermo data
(specifically, for s/R), so its results are affected by the corrections applied
to make the thermo functions continuous.
2013-04-18 22:07:05 +00:00
Ray Speth
ae96e48b4f [Thermo] Adjust NASA polynomials to eliminate discontinuities
We expect the high- and low-temperature NASA polynomials for each species to be
continuous in a number of places, despite many frequently used thermo databases
having data that is inconsistent.

In addition to warning about discontinuities, We now modify the provided
coefficients to ensure continuity at the midpoint temperature. This resolves
numerical issues, e.g. with the algorithm used for setting the state of a
reactor network.
2013-04-18 22:07:00 +00:00
Ray Speth
548f0b1c56 Refactoring to slightly simplify NasaThermo::install 2013-04-18 22:06:55 +00:00
Ray Speth
97da05bc64 Cleaned up Doxygen docs for functions declared in plots.h 2013-04-12 23:07:53 +00:00
Ray Speth
1ee0835e9c Cleaned up Doxygen docs for PrintCtrl and LogPrintCtrl 2013-04-12 23:07:46 +00:00
Ray Speth
65d7cab42e Cleaned up Doxygen documentation for Application and global functions 2013-04-12 23:07:38 +00:00
Ray Speth
07fcf5aab2 Removed unnecessary overloads of writelog for char* 2013-04-12 23:07:30 +00:00
Ray Speth
910b75fc26 Combined overloaded definitions of fp2str and int2str 2013-04-12 23:07:23 +00:00
Ray Speth
5967e952e6 Cleaned up Doxygen docs for functions declared in stringUtils.h 2013-04-12 23:07:15 +00:00
Ray Speth
eec1a6b3ec [1D] Removed min and max attributes from saved profiles
Actual array values could be outside the assumed bounds as a result of solver
tolerances, so it doesn't actually make sense to check these when restoring the
solution.

Resolves Issue 88.
2013-04-12 23:07:08 +00:00
Ray Speth
e13116c229 Cleaned up Doxygen documentation of XML-related classes 2013-04-12 23:07:02 +00:00
Ray Speth
1019cdb51e Cleaned up Doxygen docs for CTML functions 2013-04-12 23:06:54 +00:00
Ray Speth
59d615c8d2 Removed the useless SAFE_DELETE macro 2013-04-12 23:06:45 +00:00
Ray Speth
acdf1e3900 Cleaned up Doxygen docs for Stoichiometry Manager classes 2013-04-12 23:06:36 +00:00
Ray Speth
41a23e44d2 Cleaned up Doxygen docs for Reaction path related classes 2013-04-12 23:06:28 +00:00
Ray Speth
c43b02e130 Cleaned up Doxygen docs for KineticsFactory and ImportKinetics 2013-04-12 23:06:20 +00:00
Ray Speth
0b0bbcf88f Cleaned up Doxygen docs for constants used in interface kinetics solver 2013-04-12 23:06:12 +00:00
Ray Speth
2326b07c68 [1D] Reset timestep after grid refinement
This addresses a performance issue where many failed timesteps would be
taken after adding new grid points. These failed timesteps are slow because
they require additional Jacobian re-evaluations. It is more efficient to
preemptively reduce the time step after adding new grid points.

Resolves Issue 155.
2013-04-12 23:06:05 +00:00
Ray Speth
255896715c Allow RedlichKwongMFTP objects to be constructed by newThermoPhase 2013-04-12 23:05:59 +00:00
Ray Speth
1909526ba7 Cleaned up Doxygen docs for class solveSP 2013-04-12 23:05:53 +00:00
Ray Speth
68c0270958 Cleaned up Doxygen docs for class ImplicitSurfChem 2013-04-12 23:05:46 +00:00
Ray Speth
76d3a03921 Updated Doxygen documentation for falloff-related classes 2013-04-12 23:05:38 +00:00
Ray Speth
5a0ca5de61 Fixed missing include in Enhanced3BConc.h 2013-04-12 23:05:31 +00:00
Ray Speth
d103ec8d2f Cleaned up Doxygen documentation for class Kinetics and descendants 2013-04-12 23:05:20 +00:00
Ray Speth
50617105b5 Removed inaccurately-named atofCheck in favor of fpValueCheck 2013-04-03 23:10:35 +00:00
Ray Speth
7b7d3ac0d4 Fixed locale-dependent processing of XML files
Floating point values are read using a std::stringstream imbued with the "C"
locale to avoid problems with using std::atof when the user's locale uses a
character other than "." as the decimal separator.

Patch provided by Phillip Berndt.

Fixes Issue 153.
2013-04-03 23:10:18 +00:00
Ray Speth
00a4e04ce0 Removed unused error flag definitions from reaction_defs.h 2013-04-03 23:10:10 +00:00
Harry Moffat
cd387a15d7 Fixed an error due to negative size_t values 2013-04-03 19:26:58 +00:00
Harry Moffat
6434e1edca Tightened the tolerances on the phaseStability calculation routine.
Took out an unnecessary duplication of work.
2013-03-27 00:35:58 +00:00
Harry Moffat
94cb8cbb65 Fixed printout issues for interfacial voltage variables in equilibrium solver.
Added a global variable to indicate debug mode.
2013-03-26 02:26:35 +00:00
Harry Moffat
3c08cba848 Fixed a bug in the equilibrium solver
Potentials of electron phases were being altered when they shouldn't have been.
2013-03-23 01:06:36 +00:00
Ray Speth
b82df1b1ea Fixed compatibility of ck2cti with Python 2.6
re.sub doesn't accept the flags keyword argument until 2.7, but the same
effect can be achieved using re.compile.
2013-03-13 20:20:31 +00:00
Ray Speth
9a1d6532ba Fixed compilation error when using Sundials 2.3 2013-03-13 20:20:27 +00:00
Ray Speth
c59ee86d5d [1D] Fixed restoration from XML files with missing fields
This improves compatibility with output files from older versions of Cantera
that don't save the 'energy_enabled' and 'species_enabled' flags.
2013-03-08 15:32:02 +00:00
Ray Speth
86ce3da4ef [1D] Save and restore grid refinement parameters 2013-03-07 18:51:36 +00:00
Ray Speth
302ebb2c7e [1D] Save and restore energy_enabled and species_enabled flags 2013-03-07 18:51:33 +00:00
Ray Speth
557078229f [1D] Save and restore solver tolerances 2013-03-07 18:51:31 +00:00
Ray Speth
d20476df8e [Cython/1D] Fixed setting of steady and transient tolerances
Previously, the transient tolerances were being used to solve the steady-state
problem.
2013-03-07 18:51:27 +00:00
Ray Speth
01bc55e1bb [1D] Refactored Domain1D::save and Domain1D::restore
Derived class implementations now call the parent class method to save/restore
information represented in the parent class.
2013-03-07 18:51:23 +00:00
Ray Speth
65fbb10bda [Cython/1D] Made 'grid' an optional parameter
Having a default initial grid allows restoring a saved solution without creating
a dummy grid that will just be replaced by the one from XML file.
2013-03-07 18:51:20 +00:00
Ray Speth
e7f580148f Cleaned up Doxygen documentation for class WaterProps and friends 2013-03-07 18:51:17 +00:00
Ray Speth
b4506cebe1 Cleaned up Doxygen documentation for class VPSSMgr and descendants 2013-03-07 18:51:11 +00:00
Ray Speth
4671f857d0 Cleaned up Doxygen documentation for class StatMech 2013-03-07 18:51:08 +00:00
Ray Speth
01b57ba821 Cleaned up Doxygen documentation for thermo factory classes 2013-03-07 18:51:04 +00:00
Ray Speth
0314eef0f7 [Python] Fixed an error when using a reactor heat flux function
Fixes Issue 145.

Cherry-picked from 2.0 bugfix branch.
2013-03-05 17:04:35 +00:00
Ray Speth
3a53ae3660 [1D] Fixed infinite loops in grid refinement / pruning
Improved determination of the conditions under which points can be removed
without violating the 'ratio' constraint. Previously, required points were being
removed from the grid.
2013-03-05 17:02:56 +00:00
Ray Speth
68b129eb96 [1D] Fixed singular Jacobian errors after grid modification
Modification of the grid can interfere with the way the fixed temperature point
is handled, leading to solver failures. To fix this, the temperature fixed point
is checked and may be recalculated at the start of the solver.
2013-03-05 17:02:53 +00:00
Ray Speth
246bbfa7fb [1D] Prevent removal of the grid point used for the fixed temperature 2013-03-05 17:02:50 +00:00
Ray Speth
6b9fc98fc8 [1D] Pruning may not remove adjacent grid points 2013-03-05 17:02:47 +00:00
Ray Speth
b3a1e1e47c [Cython/1D] 1D solver can be interrupted by ctrl-c
By calling a pure Python function each time OneDim::eval is called, we can
catch KeyboardInterrupt exceptions and abort the 1D solver loop, returning
control to Python.

Partially addresses Issue 93.
2013-03-04 17:31:41 +00:00
Ray Speth
c896501f4a [Cython] fixed missing includes in Cython wrapper headers 2013-03-04 17:31:38 +00:00
Ray Speth
d4fb33c688 [Cython/1D] Completed Boundary1D mass/mole fraction property interface
Added getter for mole fractions and setter for mass fractions. This
requires that the boundary object hold a reference to the thermo object.

Resolves Issue 143.
2013-03-04 17:31:35 +00:00
Ray Speth
229ef825f0 [Kinetics] Refactored GasKinetics to more easily support derived classes 2013-03-04 17:31:32 +00:00
Ray Speth
57a9a3f458 Cleaned up Doxygen documentation for class PDSS and descendants 2013-03-04 17:31:27 +00:00
Ray Speth
3426b73b7a Cleaned up Doxygen docs for class SpeciesThermoInterpType and descendants 2013-03-04 17:31:22 +00:00
Ray Speth
c68e01d475 Cleaned up Doxygen documentation for class SpeciesThermo and descendants 2013-03-04 17:31:19 +00:00
Ray Speth
c7ff7dd1cf [SCons] Fixed path to Cantera.mak in sample Makefiles
Fixes Issue 144.
2013-03-04 17:31:11 +00:00
Ray Speth
c084148b0e [SCons] Python module can be installed to user's site-packages directory
Setting the scons options 'python_prefix=USER' or 'python3_prefix=USER' will
pass the '--user' flag to setup.py, causing the Python module to be installed to
a platform-specific directory on the user's module path.
2013-03-04 17:31:08 +00:00
Ray Speth
f41af50461 [SCons] Refactored installation directory configuration 2013-03-04 17:31:05 +00:00
Ray Speth
999231e177 [SCons] Updated post-install message to show Cython module location
Also fixed path separators to be correct on Windows
2013-03-04 17:31:03 +00:00
Ray Speth
372d20ce6e [Cython] setup.py no longer makes use of setuptools / distribute
This makes it easier to install the Python package into non-standard
locations. Requires the 'cythonize' function introduced in Cython 0.17.
2013-03-04 17:30:56 +00:00
Harry Moffat
3cc0aa1689 Fixed an overloaded operator error
Fixed a compilation error that occurred in DEBUG_MODE
2013-02-25 20:00:24 +00:00
Ray Speth
61abf3869d [Cython] Adjust solver parameters for TestFlowReactor.test_reacting
This avoids CVODES failures that otherwise occur on some machines.
2013-02-15 18:20:00 +00:00
Ray Speth
59d8b75340 [Docs] Updated compilation dependencies 2013-02-15 17:50:55 +00:00
Ray Speth
1856a060c9 [SCons] Made installation of gtest optional
The default is to not install it, since most users do not need it.
2013-02-15 17:32:31 +00:00
Ray Speth
1bd83d80f4 [Cython] Relaxed some test tolerances 2013-02-15 17:32:28 +00:00
Ray Speth
c3d49950bd [Cython] Fixed location of data directory for unit tests 2013-02-15 17:32:24 +00:00
Ray Speth
fae8197bd4 [Transport] Check that mole fractions are different before recalcuating
This avoids recomputing and factorizing the L matrix under some circumstances,
such as when both thermal conductivity and the Soret coefficients are requested
for the same mixture.
2013-02-15 17:32:19 +00:00
Ray Speth
529c9b762a [Transport] Fixed update of multicomponent diffusion coefficients
Certain temperature-dependent quantities used in computing multicomponent
diffusion coefficients were not being reliably updated. This caused convergence
issues for the 1D solver in some cases.
2013-02-15 17:32:16 +00:00
Ray Speth
8847b5abac [Kinetics] Ensure that equilibrium constants are not zero
This prevents reverse rate constants from becoming NaN when the forward rate
constant underflows.
2013-02-15 17:31:15 +00:00
Ray Speth
3aa84e15e9 [Cython] Fixed a typo in TestDiffusionFlame 2013-02-15 17:31:11 +00:00
Ray Speth
934010136d Removed unnecessary temporaries used for storing return values 2013-02-14 01:04:07 +00:00
Ray Speth
e04e59cdd3 Removed extraneous parentheses around arguments to 'return'
'return' is a keyword, not a function, so these parens are unnecessary.
2013-02-14 01:03:48 +00:00
Ray Speth
3b78634381 Removed extraneous parentheses around arguments to 'delete'.
'delete' is a keyword, not a function, so the parens are not necessary.
2013-02-14 01:03:42 +00:00
Ray Speth
6d6e237f07 Removed unnecessary checks surrounding delete operations 2013-02-14 01:03:32 +00:00
Ray Speth
4e3a79394b Eliminated some shadowing of member variables by function arguments 2013-02-14 01:03:19 +00:00
Ray Speth
70b08a6891 Eliminated some local variable shadowing 2013-02-14 01:03:13 +00:00
Ray Speth
8a17523715 Use the "charge" member function consistently to access species charges
Eliminated local alias to array of charges in some functions. Inlined the
"charge" function to mitigate any performance impact. Fixes a number of shadowed
variable warnings.
2013-02-14 01:03:09 +00:00
Ray Speth
1a0b59efd4 Eliminated unnecessary variable shadowing in write_logfile 2013-02-14 01:03:05 +00:00
Ray Speth
d59cac4ca0 Cleaned up Doxygen docs for other descendants of ThermoPhase 2013-02-14 01:02:58 +00:00
Ray Speth
b15640a741 Cleaned up Doxygen documentation for class SurfPhase and descendants 2013-02-14 01:02:54 +00:00
Ray Speth
6b0a708389 Cleaned up Doxygen docs for class SingleSpeciesTP and descendants 2013-02-14 01:02:46 +00:00
Ray Speth
da33cc66c3 Cleaned up Doxygen docs for class VPStandardStateTP and descendants 2013-02-14 01:02:34 +00:00
Ray Speth
05abe9d361 [Docs] Doxygen no longer inlines inherited documentation
As of Doxygen 1.8.0, documentation for inherited member functions is listed in
an expandable section of the derived class's documentation, which seems like a
better compromise.
2013-02-14 01:02:30 +00:00
Ray Speth
9c8b14b12c Updated .gitignore to ignore test binaries on Windows 2013-02-14 01:02:27 +00:00
Ray Speth
45392f06ec [Kinetics] Added a test for empty reaction mechanisms 2013-02-14 01:02:23 +00:00
Ray Speth
a25c1a43b3 [Kinetics] Fixed crashes when reaction mechanism contains no reactions
Make sure several arrays are never of length zero so that taking &v[0]
is always well-defined.
2013-02-14 01:02:18 +00:00
Ray Speth
ffd4a7418d Cleaned up Doxygen docs for the Phase and ThermoPhase classes 2013-02-14 01:02:14 +00:00
Harry Moffat
503a12b7aa Added constructors for direct initialization of the IdealGasPhase object.
Moved destructor to .cpp file.
2013-02-11 22:39:22 +00:00
Ray Speth
e48bd48c4e [1D] General cleanup of class Refiner 2013-02-07 23:41:49 +00:00
Ray Speth
dc1ffee1a2 Fixed some compiler warnings
(shadowed virtual functions, initialization order)
2013-02-07 23:41:42 +00:00
Ray Speth
9010ecc644 [Cython] Added the radial pressure gradient as the property FlameBase.L
Resolves Issue 142.
2013-02-07 23:41:37 +00:00
Ray Speth
3c6f87274b [Cython] Fixed docstring for Sim1D.save
Resolves Issue 141.
2013-02-07 23:41:34 +00:00
Ray Speth
840bdfffab [Cython] Translated more samples to use use the new API 2013-02-07 23:41:30 +00:00
Ray Speth
7da738d238 Re-applied consistent formatting to trunk
Applied using: astyle -n --style=kr --add-brackets --indent=spaces=4
--indent-col1-comments --unpad-paren --pad-header --align-pointer=type
--lineend=linux
2013-02-07 23:40:59 +00:00
Ray Speth
a1d24776f1 Fixed setting m_nsp in TransportBase 2013-02-07 23:40:48 +00:00
Ray Speth
7a4be4dcfd Use qualified names for math functions in RxnRates.h
See Issue 136.
2013-02-07 23:40:45 +00:00
Ray Speth
a5b1d1f7f6 [Reactor] Added ability to set the CVODES "MaxErrTestFails" variable
Increasing this value (from the default of 7) will sometimes allow CVODES to
find solutions to problems that previously caused it to fail.
2013-02-07 23:40:40 +00:00
Ray Speth
791c82b0c6 CVodesIntegrator now sets the minimum setp size when [re]initializing 2013-02-07 23:40:35 +00:00
Ray Speth
67a143f396 Refactored CVodesIntegrator to reduce redundancy when setting options 2013-02-07 23:40:31 +00:00
Ray Speth
1bdf50625d [Cython] Fixed specification of the Accelerate framework on OS X 2013-02-07 23:40:28 +00:00
Ray Speth
463a4017eb [Cython] Improved API for InterfaceKinetics 2013-02-07 23:40:25 +00:00
Ray Speth
677cb69a4a [Cython] Added 'mass' property to Reactor 2013-02-07 23:40:22 +00:00
Ray Speth
655af462b0 [Cython] Added set_grid_min method to Sim1D 2013-02-07 23:40:18 +00:00
Ray Speth
40a737539a [Cython] Fixed instantiation of ImpingingJet with non-reacting surface 2013-02-07 23:40:16 +00:00
Harry Moffat
287de5e1fb Added gtest to Cantera's application environment. 2013-02-05 00:32:05 +00:00
Ray Speth
2be392e6e1 [Cython] Translated more samples to use the new API 2013-02-01 23:40:41 +00:00
Ray Speth
eb01aee6f5 [Cython] Made ReactingSurface1D.coverage_enabled into a property 2013-02-01 23:40:36 +00:00
Ray Speth
430e28e413 [Cython] Added write_csv method to FlameBase 2013-02-01 23:40:31 +00:00
Ray Speth
16f69f3738 [Cython] Added keyword argument for setting the name of Domain1D instances 2013-02-01 23:40:27 +00:00
Ray Speth
5adb60664c [Cython] Added class ImpingingJet
This was called "StagnationFlow" in the old Python module.
2013-02-01 23:40:23 +00:00
Ray Speth
987291e052 [Cython] Added 'add_module_directory' utility function 2013-02-01 23:40:18 +00:00
Ray Speth
609b3e6e47 [Cython] Added molar_fluxes method to DustyGasTransport 2013-02-01 23:40:13 +00:00
Ray Speth
15a45de820 Fixed some regressions in indentation consistency
Problems with vcs_util.cpp were introduced in r1944. Problems with
NonLinearSolver.{h,cpp} were introduced in r1978.
2013-02-01 23:40:07 +00:00
Ray Speth
9109888882 Fixed regressions in NonlinearSolver introduced in r1978
Fixed signed/unsigned type consistency, spelling mistakes, and removed
unnecessary macros.
2013-02-01 23:39:58 +00:00
Ray Speth
978e3605bd [SCons] Cleanup of the build scripts 2013-02-01 23:39:53 +00:00
Ray Speth
0dc32b6a61 Removed duplicate header files introduced in r1978 2013-02-01 23:39:48 +00:00
Ray Speth
34a1304297 [Cython] Added the "import_phases" convenience function 2013-02-01 23:39:44 +00:00
Ray Speth
a60e10c3de [Cython] Allow creation of Mixture objects without quantities for each phase 2013-02-01 23:39:40 +00:00
Harry Moffat
8793fc3bcb Doxygen update
Doxygen is currently broken. This commit starts to fix some issues.
2013-02-01 18:59:17 +00:00
Ray Speth
ab3f5e0a63 [Cython] Translated some samples to use the new API 2013-01-30 22:06:02 +00:00
Ray Speth
3d512996f6 [Cython] Fixed a documentation error in ThermoPhase 2013-01-30 22:05:57 +00:00
Ray Speth
cccc5c7a8b [Cython] Turned Mixture.species_moles into a property 2013-01-30 22:05:52 +00:00
Ray Speth
92016a2b31 [Cython] Fixed some problems building the Sphinx documentation 2013-01-30 22:05:46 +00:00
Ray Speth
7065076320 [Cython] Changed variable names to be consistent with PEP8
Instance methods and instance variables all follow the words_with_underscores
convention, rather than using mixedCaseNames.
2013-01-30 22:05:30 +00:00
Ray Speth
f20d39cf75 [Cython] Implemented class Mixture (including unit tests) 2013-01-30 22:05:20 +00:00
Ray Speth
9d6ac785d5 [SCons] Detect invalid command line arguments 2013-01-30 22:05:14 +00:00
Ray Speth
7527b64af7 [ck2cti] Fixed parsing duplicate reactions with explicit reverse rate constants
Fixes 139.
2013-01-22 20:26:30 +00:00
Ray Speth
78f6e61703 Combined the shared parts of AxiStagnFlow::eval and FreeFlame::eval 2013-01-17 15:31:36 +00:00
Ray Speth
40d190cd89 [Test/Cython/1D] Added a test for counterflow diffusion flames 2013-01-17 15:30:50 +00:00
Ray Speth
aac9435a0e [Cython/1D] Fixed DiffusionFlame to work with phases not containing carbon 2013-01-17 15:30:36 +00:00
Victor Brunini
64aef5fac7 Rename m_y_n_1 and m_ydot_n_1 to _trial to clarify their intent.
Add setPreviousTimeStep function to set m_y_nm1 and m_ydot_nm1
so that time derivative calculations can be run for time-dependent
nonlinear solves.

Change m_ydot_nm1 to a std::vector.
2013-01-15 20:17:00 +00:00
Victor Brunini
a709d5f816 Revert "Removed unused member variable ReactionData.rxn_number"
This variable is used in some applications we build against
cantera.

This reverts commit 7d7b6dd39d12c2e2bdd2a9d2a959c0aee3c0c4c5.
2013-01-15 20:16:42 +00:00
Ray Speth
89406c2410 [SCons] Udated coverage testing to include the Cython module
Also, exclude the code in the 'test' and 'test_problems' directories from the
coverage statistics.
2013-01-11 22:56:52 +00:00
Ray Speth
d75bf72e65 Removed duplicated methods from IdealMolalSoln
The class incorrectly had copies of the non-virtual methods 'electricPotential'
and 'setElectricPotential' from the base class ThermoPhase.
2013-01-11 22:56:49 +00:00
Ray Speth
31f90fe32d Removed unnecessary typedef for 'index_t' 2013-01-11 22:56:44 +00:00
Ray Speth
8e7e81570a [SCons] Always re-run explicitly named tests 2013-01-11 22:56:40 +00:00
Ray Speth
d4525f0db7 Removed unused local variables from MargulesVPSSTP 2013-01-11 22:56:37 +00:00
Ray Speth
50327a665f Moved some function implementations out of InterfaceKinetics.h
This gets rid of some (mostly spurious) warnings generated by MSVC
2013-01-11 22:56:33 +00:00
Ray Speth
33653e7f43 Removed unused member variable ReactionData.rxn_number 2013-01-11 22:56:30 +00:00
Ray Speth
183af676d5 [ck2cti] Added support for the UNITS keyword 2013-01-11 22:56:25 +00:00
Ray Speth
7ca8d1830e [ctml_writer] Updated constants to have more accurate values 2013-01-11 22:56:22 +00:00
Ray Speth
da67bc122c [Test] Refactored to eliminate repeated code in ck2cti tests 2013-01-11 22:56:19 +00:00
Ray Speth
8ae3ca5a17 [ck2cti] Refactored to add class Parser and remove global variables 2013-01-11 22:56:16 +00:00
Ray Speth
60d44997e0 [ck2cti] Added '--permissive' flag to ignore certain errors 2013-01-11 22:56:12 +00:00
Ray Speth
1eec20baf0 [ck2cti] Duplicate tranpsort properties are now only a warning by default
For consistency with the Chemkin parser, the first set of transport properties
found are used.
2013-01-11 22:56:09 +00:00
Ray Speth
994acf84ea [ck2cti] Added ability to convert falloff reactions with explicit third bodies
For reactions written as: R1+R2(+S1)=P1(+S1), the implication is that
the third-body efficiencies for all colliders besides S1 are zero.
2013-01-11 22:56:05 +00:00
Ray Speth
121f039ea1 [ck2cti] Simplify constructors by using kwargs 2013-01-11 22:56:02 +00:00
Ray Speth
ad64554528 [ck2cti] Improved PEP8-compliance 2013-01-11 22:55:59 +00:00
Ray Speth
ecb6c75cc8 [Test] Added outline for tests of ThermoPhase constructors 2013-01-11 22:55:56 +00:00
Ray Speth
83097b3860 Consolidated definitions of repeatedly-used constants
"MIN_X" and "TINY" are replaced by "Tiny". "xxSmall" is replaced with
"SmallNumber".
2013-01-11 22:55:46 +00:00
Ray Speth
db4a1dfe46 Eliminated 'goto' statement in MixtureFugacityTP 2013-01-11 22:55:43 +00:00
Ray Speth
bd2bb215b4 Eliminated 'goto' statements in BasisOptimize.cpp 2013-01-11 22:55:40 +00:00
Ray Speth
17b9e86fb6 Eliminated "goto" statements in StFlow::restore 2013-01-11 22:55:35 +00:00
Victor Brunini
9b6b65fe04 Add function to DenseMatrix that multiplies two square matrices. 2013-01-07 18:18:10 +00:00
Ray Speth
205706f5dd [Reactor] Avoid a segfault when using phases with no Kinetics 2013-01-07 18:08:23 +00:00
Ray Speth
990a0b5491 Fixed an error that prevented HTML log files from being written 2013-01-07 18:08:17 +00:00
Ray Speth
382ad7ba80 Fixed compiler warnings about uninitialized values 2013-01-04 21:37:26 +00:00
Ray Speth
c2151f1aaf [Cython] Made punctuation more consistent in docstrings
This improves the appearance of the generated docstrings for the properties of
FlameBase.
2013-01-04 21:37:15 +00:00
Ray Speth
edca92305d Enabled test of isothermalCompressibility
This test now passes as a result of merging the maintenance branch into trunk.
2013-01-04 21:37:12 +00:00
Ray Speth
68a312dc55 [Cython] Added array-valued properties to FlameBase 2013-01-04 21:37:08 +00:00
Ray Speth
589c27c161 [Cython] Made FlameBase and children regular Python classes
This makes it easier to make programmatic modifications to these classes and
extend them from pure Python code.
2013-01-04 21:37:01 +00:00
Ray Speth
1e43e4f333 Added a version of writelog which takes the log level as an argument 2012-12-30 00:17:08 +00:00
Ray Speth
48383de86e [1D] Eliminated "goto" statements in MultiNewton::solve 2012-12-30 00:17:04 +00:00
Ray Speth
8da49ed999 [1D] Merged newton_utils.cpp with MultiNewton.cpp 2012-12-30 00:17:02 +00:00
Ray Speth
d3c0411f3e Removed redundant / vestigial code from the Blasius example 2012-12-30 00:16:58 +00:00
Ray Speth
3baa0eae94 [1D] Fixed an indexing error that affected Jacobian evaluations
Not all components of the Jacobian were being computed for the first point in
the first flow Domain.
2012-12-30 00:16:56 +00:00
Ray Speth
2052ac5b57 Fixed compilation errors in the Blasius boundary layer example 2012-12-30 00:16:53 +00:00
Ray Speth
879fd3ed56 Updated Sphinx docs to cover compilation of the Cython module 2012-12-26 23:56:30 +00:00
Ray Speth
e80d5bbbb9 Fixed an error in the CTI guide 2012-12-26 23:56:28 +00:00
Ray Speth
f53ad9b47b [Cython] Added Sphinx docs for composite classes & importing 2012-12-26 23:56:24 +00:00
Ray Speth
8e355464de [Cython] Added physical constants to Sphinx docs 2012-12-26 23:56:21 +00:00
Ray Speth
8c0c2e16e4 [Cython] Added 1D simulation docs to Sphinx 2012-12-26 23:56:18 +00:00
Ray Speth
8ed67089e5 Fixed some compiler warnings in the regression tests 2012-12-26 23:56:13 +00:00
Ray Speth
6b8986d0d0 Fixed const-ness of PecosTransport virtual functions
These now match the function signatures in the base class.
2012-12-26 23:56:10 +00:00
Ray Speth
46a8b3052f Use size_t instead of int in InterfaceKinetics 2012-12-26 23:56:07 +00:00
Ray Speth
8652963e6f [Cython] Modified tests to avoid unexpected failures 2012-12-26 23:56:04 +00:00
Ray Speth
a852400384 [SCons] Build the Cython module with debug symbols when requested 2012-12-26 23:56:01 +00:00
Ray Speth
0ff4964184 [Cython/1D] Relax grid tolerances on tests to reduce run times 2012-12-26 23:55:58 +00:00
Ray Speth
695b6b1266 [Cython] Skip sensitivity-related tests when Sundials is not present 2012-12-26 23:55:54 +00:00
Ray Speth
86db08ac88 Added __version__ attribute to the Cython module 2012-12-26 23:55:51 +00:00
Ray Speth
4991ada305 [SCons] Refactored configuration/compilation of the Cython module 2012-12-26 23:55:48 +00:00
Ray Speth
dafcc9e024 [SCons] Specify the compiler to use for the Cython module
This fixes problems encountered when using EPD on Windows, where the
default compiler for Python is MinGW.
2012-12-26 23:55:46 +00:00
Harry Moffat
eab8781ea7 Added back ability to get transport parameters from transport objects.
Added back read and write of named XML array blocks.
Fixed an error in IonsFromNeutralVPSSTP.
2012-12-21 01:18:28 +00:00
Ray Speth
ea7d447864 [Cython] Updated test of 1D save / restore functionality 2012-12-18 00:14:35 +00:00
Ray Speth
6de7a739c9 [1D] Fixed save/restore for ReactingSurf1D
This partially addresses Issue 90.
2012-12-18 00:14:04 +00:00
Ray Speth
8587abf17f Fixed an uninitialized variable in Domain1D 2012-12-18 00:13:48 +00:00
Ray Speth
e4705bece1 [1D] save/restore includes boundary conditions for Surf1D and OutletRes1D
This partially addresses Issue 90.
2012-12-18 00:13:34 +00:00
Ray Speth
357ab0b668 [1D] save/restore now includes boundary conditions of Inlet1D objects
This partially addresses Issue 90.
2012-12-18 00:13:02 +00:00
Ray Speth
fdc13afb9f [1D] save/restore now includes the temperature fixed point
This partially addresses Issue 90.
2012-12-18 00:12:41 +00:00
Ray Speth
833ca13dc1 [1D/Python] Set pressure when restoring solution from XML file
This partially addresses Issue 90.
2012-12-18 00:11:24 +00:00
Ray Speth
1e91bd59af [1D/Cython] Set pressure when restoring solution from XML file
This partially addresses Issue 90.
2012-12-18 00:10:48 +00:00
Ray Speth
14426bfc86 [1D] Added loglevel argument to control output from save and restore
Passing loglevel=0 to Sim1D::save or Sim1D::restore will suppress all output
from these functions. The default loglevel maintains the normal level of output.
2012-12-18 00:09:29 +00:00
Ray Speth
b4218203d2 [Cython] Added tests for the 1D simulation interface 2012-12-18 00:08:08 +00:00
Ray Speth
f6c19b7456 [1D] Fixed pruning-related logging to respect the current log level 2012-12-18 00:07:46 +00:00
Ray Speth
09126726f0 [1D] Removed some spurious printing from Sim1D::setFixedTemperature 2012-12-18 00:07:26 +00:00
Ray Speth
e150fb4c45 [Cython] Added examples that use the new API for the 1D flame solver 2012-12-18 00:06:36 +00:00
Ray Speth
9601895b98 [Cython] Fixed problems with unicode strings in Python 2 2012-12-18 00:04:54 +00:00
Ray Speth
b277818347 [Cython] Added infrastructure for installing examples
This includes automatic conversion of the samples from Python 3 syntax to Python
2 syntax when building the Python 2 version of the module and the "3to2" script
is available.
2012-12-18 00:03:03 +00:00
Ray Speth
306ac961c0 [Cython] Implemented specializations of Sim1D for standard flame types
FreeFlame, BurnerFlame, and CounterflowDiffusionFlame
2012-12-18 00:01:28 +00:00
Ray Speth
fb933d5c89 [Cython] Implemented methods of class Domain1D and Sim1D 2012-12-18 00:00:01 +00:00
Ray Speth
49803de297 [Cython] Added declarations for 1D simulation components 2012-12-17 23:59:48 +00:00
Ray Speth
da92fed07c [Reactor] Fixed uninitialized variable 'm_dist' in FlowReactor 2012-12-17 23:59:43 +00:00
Ray Speth
ee2697b4b8 Fixed a compiler error caused by ambiguous call to sqrt 2012-12-17 23:59:40 +00:00
Victor Brunini
95e66cd5ff Get rid of static variables in member functions. 2012-12-17 16:14:14 +00:00
Harry Moffat
ea25de7fe7 Continuing transfering LiquidTransport changes, doing bugfixes, and
qualifying against our testsuite.
2012-12-15 00:49:14 +00:00
Ray Speth
55dec034ed Merge branch '2.0' into 'trunk'
Conflicts:
	README
	SConstruct
	configure.ac
	doc/sphinx/conf.py
2012-12-13 22:58:38 +00:00
Victor Brunini
bd653e357f Revert change to LiquidTransport. 2012-12-13 22:16:50 +00:00
Victor Brunini
4770bdd9d6 Small performance improvement, transform seems to be slightly slower
than just looping over the array.
2012-12-13 22:16:16 +00:00
Victor Brunini
a4ea58f7cc Change ThermoPhase::setStateTPX and setStateTPY functions to call
setStateTP instead of setTemperature and setPressure. Main motivation
is that the IonsFromNeutralVPSSTP child class has setTemperature and
setPressure functions that call setStateTP so this reduces duplicate
work in that case.
2012-12-13 22:16:00 +00:00
Victor Brunini
749f988e52 Convert LiquidTransport to just store a pointer to the external
gradient (T, X, V) values that it uses to compute fluxes. These
are never changed by the LiquidTransport object so there is no
reason to have them stored locally rather than just holding a pointer
to the data.
2012-12-13 22:15:35 +00:00
Victor Brunini
2eba1ee7c8 PDSS_IonsFromNeutral does not own the neutralMoleculePhase_ pointer
and the state of the neutralMoleculePhase_ is updated by the
VPSSIonsFromNeutral phase object that the PDSS_IonsFromNeutral
species object belongs to. Remove neutralMoleculePhase_->setState
calls from PDSS_IonsFromNeutral to avoid duplicate work, and make
it a const * to reflect that.
2012-12-13 22:15:14 +00:00
Victor Brunini
d4d1093957 Performance improvements focused on Stefan-Maxwell liquid transport
model for molten salts.

Summary:
- Division is expensive, replace repeated division with multiplication
  by stored 1/x.
- New and delete are expensive, make working vectors in some functions
  static so that they are not repeatedly instantiated and deleted.
- Reorder a few loops to reduce computation and hopefully cache misses.
2012-12-13 22:14:36 +00:00
Victor Brunini
4f41718e5b Make all ThermoPhase setState functions virtual. 2012-12-13 22:14:02 +00:00
Ray Speth
2805db17e9 [Python] Added interface to "setGridMin" in relevant 1D classes 2012-12-06 17:31:49 +00:00
Ray Speth
b4f34045a8 [1D] Added a minimum grid spacing parameter 2012-12-06 17:31:44 +00:00
Ray Speth
6ddb55e020 [1D] Fixed a case where the Newton solver could get stuck
Sometimes, while trying to solve the steady-state problem, the Newton solver
would get stuck in a loop where it couldn't find a suitable damping ratio even
after re-revaluating the Jacobian, causing it to get stuck in an loop where it
would keep re-evaluating the Jacobian at the same point (i.e. without having
made a successful damped step).

This change detects this condition and stops the Newton solver so that the 1D
solver can advance the solution by timestepping before trying to solve the
steady-state problem again.
2012-12-06 17:31:39 +00:00
Ray Speth
347029d06a [1D] Added loglevel for saving residual components
At loglevel 8, the residual after each Newton step, set of time steps, or grid
refinement is saved to 'debug_sim1D.xml'.
2012-12-06 17:31:35 +00:00
Ray Speth
d236358ec6 [1D] Fixed oscillations in grid refinement when pruning is enabled
Points which are needed to satisfy the 'ratio' requirement are not removed when
pruning. Previously, it was possible for the solver to get stuck in a loop where
the same points were added and removed after successive grid refinements.
2012-12-06 17:31:31 +00:00
Ray Speth
351423bcda [1D] Added a new log level for saving intermediate solutions
Running Sim1D::solve with loglevel set to 7 or higher will now save the solution
after each attempted steady-state solution, after timestepping, and after
regridding to the file 'debug_sim1d.xml'. This can be useful for diagnosing
convergence issues with some problems.
2012-12-04 20:28:59 +00:00
Ray Speth
2735802eb9 [1D] Updated error checking in Sim1D get/set methods 2012-12-04 20:28:53 +00:00
Ray Speth
ecb930e9f7 [1D] Added a nSpecies() method to Bdry1D 2012-12-04 20:28:43 +00:00
Harry Moffat
c6f7abbf2f Fixed a serious error in InterfaceKinetics that had crept into this branch.
Started upgrade/update of equilibrium solver
       - Fixed numerical jacobian calculation of the ln activity coefficients.
2012-11-29 02:18:05 +00:00
Harry Moffat
64d252fdbf Rolled back some of the changes that Victor made that actually
changed the S-M formula.
2012-11-26 21:37:11 +00:00
Victor Brunini
985b1f07a8 Correctly size grad_lnAC so that we don't write past the end of it
for 2D and 3D problems.

Fix the creation of the Stefan-Maxwell matrix coefficients.
2012-11-26 20:20:52 +00:00
Victor Brunini
c3233c1355 Update TransportFactory to allow the specification of the number of
dimensions in the problem and default it to 1. At present this is
only passed through to the LiquidTransport constructor.

Remove LiquidTransport member m_nDim since the base Transport class
already stores m_nDim.

Don't set m_nDim to 1 in LiquidTransport constructor, it is set by
the Transport constructor.
2012-11-26 20:19:57 +00:00
Ray Speth
76a24eb9ce [1D] Create initial guess before showSolution() 2012-11-14 21:07:24 +00:00
Ray Speth
6546a6b22c Made output of 1D solver more compact at loglevel 1 2012-11-14 21:07:21 +00:00
Ray Speth
0da6fb4d36 Fix Py_Logger to raise instances of Exception instead of strings
Raising string exceptions was removed in Python 2.6
2012-11-14 21:07:18 +00:00
Ray Speth
76b245e154 Python logger now flushes stdout after every call to writelog 2012-11-14 21:07:16 +00:00
Ray Speth
7ed2a02953 StFlow::_getInitialSoln now sets the solution to a valid thermodynamic state
This fixes errors that occured when the "showSolution" method was called before
explicitly setting the initial solution profile.
2012-11-14 21:07:13 +00:00
Ray Speth
e6999d1ac8 Removed duplicate clib/Python interface to class Bdry1D 2012-11-14 21:07:10 +00:00
Ray Speth
49ff2c4dbf Fix to ignore duplicate third body efficiencies in ohn.cti
Cherry-picked from 2.0 maintenance branch (r1911)
2012-11-14 21:07:07 +00:00
Ray Speth
04fb86b1ea Added a new SCons configuration variable 'warning_flags'
This allows use of more extensive warning settings for the code that's actually
part of Cantera without generating excessive warnings on code automatically
generated code (e.g. f2c) or code that isn't part of Cantera proper (e.g. gtest,
libexecstream).
2012-11-14 21:07:03 +00:00
Ray Speth
9fdb345fdd Updated .gitignore for test binaries 2012-11-14 21:07:01 +00:00
Ray Speth
8c8ef2626a Removed broken / unused input files 2012-11-14 21:06:58 +00:00
Victor Brunini
7d8a61baf1 Clean up function prototypes to avoid 'a is hidden by b' warnings
where the subclass prototype had an int and the super had a size_t
for a virtual function of the same name.
2012-11-14 00:04:05 +00:00
Victor Brunini
28171eeece Update the definition of getSpeciesFluxesES to use all size_t
instead of int to match the definition for the base Transport class.
Prior to this LiquidTransport::getSpeciesFluxesES was not overriding
the virtual Transport::getSpeciesFluxesES because the prototypes
differed.
2012-11-13 21:59:11 +00:00
Harry Moffat
79756fff7e Added files to the ignore list. 2012-11-07 23:59:08 +00:00
Harry Moffat
08a41f191c Added back constructPhaseFile() and constructPhaseXML().
All molten salt problems were broken and some brine problems were broken.
2012-11-07 23:51:30 +00:00
Harry Moffat
6e7b14c468 Added a verbose option. 2012-11-07 23:48:55 +00:00
Harry Moffat
a0b96b6fe9 Started taking out return statements. They are only used in functions. 2012-11-07 23:44:40 +00:00
Harry Moffat
83391db4fe Added back Cantera.h
Note in the near future, we'll require that all Cantera code include this file so that the environment may be set up correctly.
2012-11-07 23:41:58 +00:00
Harry Moffat
23e792f1a1 Added a CANTERA_INSTALL_ROOT Makefile variable. 2012-11-07 23:30:25 +00:00
Harry Moffat
27671cf299 Added back in getNamedStringValue() definition. Somehow it had gotten erased, causing multiple problems to fail. 2012-11-07 23:29:08 +00:00
Victor Brunini
7c70568bb3 Clean up compiler warnings. 2012-11-07 21:08:56 +00:00
Ray Speth
3fec861d1f [Cython] Added tests for sensitivity analysis 2012-11-02 20:07:32 +00:00
Ray Speth
fe6b5d3c0b Changed the ordering of Reactor sensitivity coefficients
The order now matches the order in which the corresponding sensitivity reactions
are added to the ReactorNet, regardless of the order in which Reactors and Walls
are added to the network.

Sensitivity parameter names can be accessed using the "sensitivityParameterName"
method of ReactorNet, and the "sensParamID" methods of Reactor and Wall have
been removed as they no longer meaningful.
2012-11-02 20:07:25 +00:00
Ray Speth
b3e25ee963 Modified Reactor::updateState to get sensitivity analysis working
Sensitivity analysis requires that the system responds appropriately to small
perturbations in the solution, a condition which is not satisfied when using the
default iterative method implemented by ThermoPhase::setState_UV. Instead, we
now use Newton's method to calculate the mixture temperature to within a small
multiple of machine precision.
2012-11-02 20:07:21 +00:00
Ray Speth
e34ac55f4f [Cython] Added sensitivity analysis to Reactor / ReactorNet 2012-11-02 20:07:15 +00:00
Ray Speth
845b73405e Merge bug fixes from 2.0 maintenance branch 2012-10-30 15:46:10 +00:00
Ray Speth
59b34ce549 [Cython] Extract wall surface properties into a separate class 2012-10-30 15:34:35 +00:00
Ray Speth
20dbfc9b98 Modified test tolerances to fix a test failure on Windows 2012-10-25 15:05:11 +00:00
Ray Speth
8c3cd5f3c8 Removed some unnecessary compiler flags when building the Python module
Specifically, these flags cause problems when compiling with the Enthought
Python Distribution on OS X.
2012-10-25 15:05:03 +00:00
Ray Speth
af10c288b4 Removed some unused member variables from PDSS classes 2012-10-24 15:46:57 +00:00
Ray Speth
436f38c6a6 Removed some unused member variables from Transport classes 2012-10-24 15:46:45 +00:00
Ray Speth
120600c625 Removed some unused member variables from ThermoPhase classes 2012-10-24 15:46:31 +00:00
Ray Speth
5e34beb4a8 Fixed incorrectly defined duplication method of ConstDensityThermo 2012-10-24 15:46:22 +00:00
Ray Speth
c9ba50ecc6 Removed unimplemented method VPSSMgr_General::err 2012-10-24 15:46:15 +00:00
Ray Speth
94d08f1d5e Removed unnecessary casts from object duplication functions 2012-10-24 15:45:33 +00:00
Ray Speth
3cd3bbef8f Removed some unnecessary "using namespace" directives 2012-10-24 15:45:19 +00:00
Ray Speth
3df93b8f4c Removed some dead code 2012-10-24 15:45:08 +00:00
Ray Speth
f4d35e4bd7 Always pass "const std::string&" instead of "const std::string" 2012-10-24 15:44:54 +00:00
Ray Speth
94f85db5c5 Eliminated some redundant code in cxx_ex transport tests 2012-10-24 15:44:42 +00:00
Ray Speth
fcb46460cc Clean up of some of the test code 2012-10-24 15:44:33 +00:00
Ray Speth
1d19803885 Pass "const std::string&" instead of "std::string" when possible 2012-10-24 15:42:51 +00:00
Ray Speth
d2ac071660 Fixed a few missing #includes 2012-10-24 15:42:29 +00:00
Ray Speth
a1b2f54ffb Fixed segfault in HTML logging at intermediate log levels 2012-10-24 15:42:20 +00:00
Ray Speth
771192fa9a [Cython] Fixed choosing equilibrium solver by name 2012-10-24 15:42:13 +00:00
Ray Speth
8bcda61e4c Changed type of CVodesIntegrator members to eliminate unnecessary casts 2012-10-24 15:42:05 +00:00
Ray Speth
7b76e762d2 Fixed sensitivity calculation when using CVodesIntegrator::step
Previously, the sensitivity coefficient matrix m_yS was being updated only when
the `integrate` method was used to advance the system. Now, the sensitivities
are updated when a coefficient is requested after taking a timestep, regardless
of the method used to advance the system.
2012-10-24 15:41:59 +00:00
Ray Speth
a6dc994439 Fixed a problem with the VCS equilibrium solver at constant HP or UP
A sign error when limiting the temperature step caused the solver to fail if
the initial temperature was higher than sqrt(Tlow*Thigh).
2012-10-12 20:34:59 +00:00
Ray Speth
e9026fb683 Removed the broken/unused PID_Controller class 2012-10-12 20:34:56 +00:00
Ray Speth
3f17786c01 Removed some commented-out includes 2012-10-12 20:34:48 +00:00
Ray Speth
c404c31879 Eliminated unnecessary string copying in Reactor / ReactorNet 2012-10-12 20:34:41 +00:00
Ray Speth
11a11bea79 Removing deprecated / nonfunctional methods from Reactor
These functions / variables are for driving the time integration, which is
handled entirely by ReactorNet.
2012-10-12 20:34:33 +00:00
Ray Speth
2134e5d570 [Cython] Added documentation for Reactor and related classes 2012-10-10 18:25:34 +00:00
Ray Speth
9cfd620175 [Cython] Added tests for Reactor networks 2012-10-10 18:25:30 +00:00
Ray Speth
7869bd09c3 [Cython] Fixed implementation of absolute error tolerances in unit tests 2012-10-10 18:25:26 +00:00
Ray Speth
5252c41a80 [Cython] Full implementation of zero-dimensional reactor networks 2012-10-10 18:25:20 +00:00
Ray Speth
dec608b811 Fixed ReactorNet::setInitialTime to actually set the initial integrator time
Removed the optional argument to ReactorNet::initialize so that setInitialTime
is the only interface for setting the integrator start time, and made initialize
protected to make it clear that it does not need to be explicitly called by the
user.
2012-10-10 18:25:12 +00:00
Ray Speth
ced2e6c978 [Cython] Generalized interface to Func1
It is now possible to use any callable Python object when the Cantera C++ core
requires an instance of Func1.
2012-10-10 18:25:06 +00:00
Nicholas Malaya
957b5b3929 [cantera]: fixing a bug in file name variable. 2012-09-27 18:13:57 +00:00
Ray Speth
dec9c269a1 Fixed correspondence of reactor type string names to integer constants 2012-09-27 16:32:15 +00:00
Ray Speth
051a08933f Added tests for Cython Transport class 2012-09-06 20:00:05 +00:00
Ray Speth
4ff9e61e0d Added docstrings for Cython Transport class 2012-09-06 19:59:58 +00:00
Ray Speth
777d10ddb8 Fixed parsing Python configuration variables on Windows
str.splitlines() works on all types of newline characters
2012-09-06 19:59:54 +00:00
Ray Speth
985e83f261 Workaround for platform.python_compiler() to support EPD on Windows 2012-09-06 19:59:50 +00:00
Ray Speth
5f2ec1f11d Added ability to switch between transport models in the Cython module 2012-09-06 19:59:45 +00:00
Ray Speth
a9132d1fc3 Added core Transport methods to Cython module 2012-09-06 19:59:39 +00:00
Ray Speth
44fe268615 Added tests for the Cython Kinetics class 2012-09-06 19:59:34 +00:00
Ray Speth
25f361651a Added docstrings for the Cython Kinetics and InterfaceKinetics classes 2012-09-06 19:59:28 +00:00
Ray Speth
e3ce74723c Expanded tests for Cython ThermoPhase class 2012-09-06 19:59:18 +00:00
Ray Speth
c28a00be6e Changes to non-compiled files no longer require rebuilding the Cython extension 2012-09-06 19:59:14 +00:00
Ray Speth
c99dd265ec Implemented Kinetics methods in the Cython module 2012-09-06 19:59:10 +00:00
Ray Speth
2b3f54080f Added Cython declarations for methods of the C++ Kinetics class 2012-09-06 19:59:04 +00:00
Ray Speth
c5f649b036 Added docstrings to Cython PureFluid class 2012-09-06 19:59:00 +00:00
Ray Speth
6b34150a6c [Python] Added implementation and docstrings for class InterfacePhase 2012-09-06 19:58:55 +00:00
Ray Speth
5a722f9608 Added docstrings to Cython ThermoPhase class 2012-09-06 19:58:50 +00:00
Ray Speth
13d916862e Updated compilation instructions to cover the new Python module 2012-09-06 19:58:44 +00:00
Ray Speth
f82c6e50c7 SCons runs the unit tests for the Cython module 2012-09-06 19:58:32 +00:00
Ray Speth
208b8edad8 SCons installs the new Python module 2012-09-06 19:58:26 +00:00
Ray Speth
a0fdaa9f8a SCons builds the new Python module with Python 2 and Python 3 simultaneously 2012-09-06 19:58:22 +00:00
Ray Speth
0c904bebfa Added infrastructure for using Sphinx to document the new Python module
This includes adding the sphinx_cmd option to SCons, which can be set to the
Python 3 version of sphinx-build as necessary.
2012-09-06 19:58:13 +00:00
Ray Speth
42e07afedc Removed remnants of pydoc-style documentation 2012-09-06 19:58:08 +00:00
Ray Speth
11fd72c26f SCons now builds the Cython-based Python 3 package 2012-09-06 19:58:03 +00:00
Ray Speth
0fd5ab0127 [Python] Added access to equilibrium solvers for Solution and Mixture 2012-09-06 19:57:58 +00:00
Ray Speth
bcbdd25101 [Python] Added "slicing" support to Solution
Slicing a Solution object (with the [] operator) creates a view where all
species-specific properties are returned for the specified subset of the
species.
2012-09-06 19:57:53 +00:00
Ray Speth
370ba39a8c [Python] Implemented more ThermoPhase properties 2012-09-06 19:57:48 +00:00
Ray Speth
aa032c1996 [Python] Improved handling of functions that accept either species name or index 2012-09-06 19:57:44 +00:00
Ray Speth
e9b49e3bb0 Added partial molar / non-dimensional thermo properties 2012-09-06 19:57:38 +00:00
Ray Speth
b070605bec [Python] Implementing ThermoPhase properties for setting / getting state 2012-09-06 19:57:32 +00:00
Ray Speth
c41934d995 [Python] Starting on full interface to ThermoPhase member functions 2012-09-06 19:57:27 +00:00
Ray Speth
622eed7b75 Added PureFluid to the new Python module 2012-09-06 19:57:20 +00:00
Ray Speth
2bd25f52b4 Simplified setup.py for new Python module
The removed parts are not necessary since the compiled module no
longer links to the Cantera shared library.
2012-09-06 19:57:13 +00:00
Ray Speth
4bd19494a6 Added more tests for the new Python module 2012-09-06 19:57:07 +00:00
Ray Speth
c7570dc6c9 [Python] Outline of a strategy for wrapping classes which extend Transport 2012-09-06 19:56:58 +00:00
Ray Speth
95b75409be Include data files with the new Python module 2012-09-06 19:56:51 +00:00
Ray Speth
1758c86a3f Starting a test suite for the new Python module 2012-09-06 19:56:43 +00:00
Ray Speth
062ab1dad9 Adding parts of "oneDim" to the new Python module 2012-09-06 19:56:36 +00:00
Ray Speth
514abaa0da Added basic implementation of surface and edge phases in the Python module 2012-09-06 19:56:30 +00:00
Ray Speth
341648aa23 Added basic implementation of Reactor, ReactorNet and Wall to the Python module 2012-09-06 19:56:25 +00:00
Ray Speth
21169b3a38 [Python] Added basic implementation of Func1 and its children 2012-09-06 19:56:20 +00:00
Ray Speth
dfb18b461e Rearranging Cython module into a single shared object
This is necessary to deal with DLL linking limitations on Windows
2012-09-06 19:56:03 +00:00
Ray Speth
96f9b05f8c Added skeletal implementation of multiphase mixtures to new Python module 2012-09-06 19:55:50 +00:00
Ray Speth
eabb46b9e7 Added physical constants to the new Python module 2012-09-06 19:55:40 +00:00
Ray Speth
3a838018fc Use SCons to generate a customized setup.py for the new Python module 2012-09-06 19:55:34 +00:00
Ray Speth
8afc669b67 Proof-of-concept for a Python interface written using Cython
This module is compatible with both Python 2 and Python 3. Unlike the existing
Python module, this module directly utilizes the Cantera C++ interface,
bypassing the "clib" compatibility layer, as well as all of the direct use of
the Python C API.

Currently, this contains just enough to instantiate a ThermoPhase object from an
XML input file.
2012-09-06 19:55:25 +00:00
Ray Speth
ea16489a82 Added data files needed for transport import tests 2012-08-29 22:32:47 +00:00
Ray Speth
f45b2b1ddc Removed unused variable 'm_efctr' from StFlow 2012-08-29 22:13:59 +00:00
Ray Speth
58514d790d Improve comments on OneD eval() function
Patch supplied by Thomas Fiala.
2012-08-29 22:13:56 +00:00
Ray Speth
85571ab7c8 Removed unused functions from Rate1 and removed the unused Rate2 class 2012-08-29 22:13:49 +00:00
Ray Speth
6e63ad9c91 Removed unnecessary iterators from RateCoeffMgr 2012-08-29 22:13:45 +00:00
Ray Speth
c0f2734719 Added tests for converting chemkin-format transport data with ck2cti.py
Includes tests that check to make sure the converter detects duplicate and
missing species.
2012-08-29 18:30:58 +00:00
Ray Speth
454cfb574c Replaced assert statements in ck2cti.py 2012-08-29 18:30:55 +00:00
Ray Speth
0ebba86bc7 ck2cti.py raises an exception when transport data for some species is missing 2012-08-29 18:30:52 +00:00
Ray Speth
6f5a38a2ba ck2cti.py raises an exception when encountering duplicate transport data 2012-08-29 18:30:48 +00:00
Nicholas Malaya
66c9d4c1f0 updating, even if it is not working... will fiddle further 2012-08-17 22:55:47 +00:00
Nicholas Malaya
be97b0e7ba adding a new regression test 2012-08-17 21:53:35 +00:00
Nicholas Malaya
7a6b615843 adding statmech transport test 2012-08-17 21:25:11 +00:00
Nicholas Malaya
1e2e31ba16 updating the file include path 2012-08-17 21:23:37 +00:00
Nicholas Malaya
852707544c updating makefile 2012-08-17 20:52:21 +00:00
Ray Speth
a549782c7f Eliminated some unnecessary usage of strcpy 2012-08-17 16:44:50 +00:00
Ray Speth
49dbb605ab Changed parseCompString to simplify its typical usage pattern 2012-08-17 16:44:34 +00:00
Ray Speth
fe72446fa0 Factored out a helper function for setState_HPorUV and setState_SPorSV 2012-08-17 16:44:24 +00:00
Ray Speth
848eb619dd Simplified conditional statements in SetState_HPorUV and SetState_SPorSV 2012-08-17 16:44:16 +00:00
Ray Speth
3fbf298a21 Removed redundant implementation of speciesThermo() from LatticeSolidPhase 2012-08-17 16:44:07 +00:00
Ray Speth
85d9d360c7 Fixed a bunch of spelling issues 2012-08-17 16:43:34 +00:00
Ray Speth
01a9bdcf58 Fixed handling of explicit reaction orders for some reactions
For reactions with unity reactant stoichiometric coefficients, explicit values
for the forward reaction order were being ignored while setting up the
StoichManager.

Added a few tests that confirm that these rates are being calculated correctly.
2012-08-17 16:43:13 +00:00
Ray Speth
f23c4fa940 Added a test for handling of explicit reaction orders in Chemkin input files 2012-08-17 16:43:02 +00:00
Ray Speth
7a327abb16 Added test for handling of explicit reverse rate constants in Chemkin input files 2012-08-17 16:42:53 +00:00
Ray Speth
eb9441182d Added test for converting "SRI" falloff functions from Chemkin input files 2012-08-17 16:42:43 +00:00
Ray Speth
d578784701 Merge bug fix from the 2.0 maintenance branch 2012-08-15 16:10:04 +00:00
Ray Speth
021f66c755 Merge bug fixes from the 2.0 maintenance branch 2012-08-15 15:36:34 +00:00
Ray Speth
6df63270e0 Fixed an issue with printing "missing species" errors in ck2cti.py 2012-08-15 15:18:52 +00:00
Ray Speth
548749d080 Fixed an error building Cantera.mak when 'build_with_f2c' is True 2012-08-14 21:49:00 +00:00
Ray Speth
d78ec19e4c Fixed issues with library and include paths in sample SConstruct scripts 2012-08-13 20:14:18 +00:00
Ray Speth
a79428f894 Fixed some issues with paths in Cantera.mak and cantera.pc 2012-08-13 20:14:14 +00:00
Ray Speth
08f1e48371 Fixed calculation of some multicomponent transport properties
For some properties, the internal temperature-dependent properties
were being updated in the wrong order.

cherry-pick of r1636 from 2.0 maintenance branch
2012-08-13 20:14:10 +00:00
Ray Speth
9d9a22f16b Fixed compilation of Fortran samples with user-specified compiler
cherry-pick of r1635 from 2.0 maintenance branch
2012-08-13 20:14:07 +00:00
Ray Speth
c77539e577 Fixed generated SConstruct files to work with MSVC
cherry-pick of r1634 from 2.0 maintenance branch
2012-08-13 20:14:04 +00:00
Ray Speth
b1f480daa5 Fixed Cantera.mak when using the 'single_library=y' config option
cherry-pick of r1633 from 2.0 maintenance branch
2012-08-13 20:14:00 +00:00
Ray Speth
9966a24a3f Fixed library specifications in installed SConstruct scripts for samples
cherry-pick of r1632 from 2.0 maintenance branch
2012-08-13 20:13:56 +00:00
Ray Speth
443e35bc36 Removed obsolete method for calculating initial mole fractions in VCS solver
This has the extra benefit of allowing removal of some f2c-converted code
that was being kept in an inconsistent location (outside the 'ext' directory)
and caused linking issues with some combination of build options.
2012-08-12 22:59:44 +00:00
Ray Speth
ee3e48b024 Fixed issues linking to libgfortran on OS X 2012-08-12 22:59:40 +00:00
Ray Speth
87062d115d Integration failures with CVODES now generate a more informative exception
The exception message now lists the solution components and the corresponding
weighted error estimate which should indicate which variables are responsible
for the integration failure.
2012-08-11 23:58:37 +00:00
Ray Speth
e168634c72 Translate exceptions into appropriate error codes in cvodes_rhs 2012-08-11 23:58:33 +00:00
Ray Speth
1becffecb0 Disallow setting negative temperature or density 2012-08-11 23:58:29 +00:00
Ray Speth
8a3bb109d6 [Python] ReactorNet.step now translates exceptions appropriately 2012-08-11 23:58:23 +00:00
Ray Speth
bf727c2631 Removed redundant copies of some input files 2012-08-08 22:18:24 +00:00
Ray Speth
8849b2cd0c Fixed path used for CANTERA_DATA when running regression tests 2012-08-08 22:18:19 +00:00
Ray Speth
51a3decaa1 Moved some classes out of the global namespace into namespace Cantera 2012-08-08 22:18:15 +00:00
Ray Speth
f212e3b9d3 Removing leftover references to the Cantera_CXX namespace 2012-08-08 22:18:09 +00:00
Ray Speth
fc05538d0a Removed old copy of Cantera.h that snuck back in 2012-08-08 22:18:04 +00:00
Ray Speth
3e71897a9c Use actual enums for the pure fluid constants 2012-08-08 22:17:57 +00:00
Ray Speth
b7ee30aa04 Simplified error handling in pure fluid (tpx) calculations
TPX_Error is now derived from CanteraError, and errors in the tpx calculations
propagate automatically without requiring explicit checks for an error
condition.
2012-08-08 22:17:48 +00:00
Ray Speth
6663ec05c2 Simplified PureFluidPhase::report 2012-08-08 22:17:43 +00:00
Ray Speth
3fae5d93f7 Refactored ThermoPhase::reportCSV
The reportCSV method is responsible for formatting and writing the data provided
by the getCsvReportData method. Derived classes need only override the latter
method to customize their reports.

Also, the data which was not in a CSV format has been removed from the output so
the name of the method is no longer misleading.
2012-08-08 22:17:33 +00:00
Ray Speth
858f355054 Removed some obsolete code for handling deprecated functions 2012-08-08 22:17:28 +00:00
Ray Speth
24d7a3e091 Removed some unused exception classes 2012-08-08 22:17:22 +00:00
Ray Speth
119cf8f5f4 VCS solver now uses normal CanteraError exceptions 2012-08-08 22:17:15 +00:00
Ray Speth
cde96e5191 Folded InterfaceKineticsData into InterfaceKinetics 2012-08-08 22:17:10 +00:00
Ray Speth
346605abc4 Removed some unused CTML functions 2012-08-08 22:17:05 +00:00
Ray Speth
7442ecd88b Removed unimplemented constructPhaseFile and constructPhaseXML methods from MineralEQ3 2012-08-08 22:17:00 +00:00
Ray Speth
10aea02835 Removed constructPhaseFile and constructPhaseXML methods from WaterSSTP 2012-08-08 22:16:55 +00:00
Ray Speth
ef9a87e97f Removed constructPhaseFile and constructPhaseXML methods from RedlichKisterVPSSTP 2012-08-08 22:16:50 +00:00
Ray Speth
3a806b18a1 Removed constructPhaseFile and constructPhaseXML methods from PhaseCombo_Interaction 2012-08-08 22:16:46 +00:00
Ray Speth
f718caef91 Removed constructPhaseFile and constructPhaseXML methods from MolarityIonicVPSSTP 2012-08-08 22:16:42 +00:00
Ray Speth
07dfe48a68 Removed constructPhaseFile and constructPhaseXML methods from MixedSolventElectrolyte 2012-08-08 22:16:38 +00:00
Ray Speth
577f3c28f7 Removed constructPhaseFile and constructPhaseXML methods from MargulesVPSSTP 2012-08-08 22:16:33 +00:00
Ray Speth
a777ef2480 Removed constructPhaseFile and constructPhaseXML methods from IdealSolidSolnPhase 2012-08-08 22:16:29 +00:00
Ray Speth
3f488b2841 Removed constructPhaseFile and constructPhaseXML methods from LatticePhase 2012-08-08 22:16:25 +00:00
Ray Speth
a2ccce6b72 Removed constructPhaseFile and constructPhaseXML methods from DebyeHuckel 2012-08-08 22:16:21 +00:00
Ray Speth
b860262fae Removed constructPhaseFile and constructPhaseXML methods from IonsFromNeutralVPSSTP 2012-08-08 22:16:16 +00:00
Ray Speth
ff5ca0ea1a Removed constructPhaseFile and constructPhaseXML methods from IdealMolalSoln 2012-08-08 22:16:11 +00:00
Ray Speth
fa22d8fde1 Removed constructPhaseFile and constructPhaseXML methods from HMWSoln 2012-08-08 22:16:04 +00:00
Ray Speth
deea83d68b Merge bug fixes from the 2.0 maintenance branch 2012-08-02 16:07:35 +00:00
Ray Speth
0785803b20 Removed 'using namespace std' from PecosTransport.h 2012-08-02 15:49:04 +00:00
Ray Speth
38a2495fa3 Added the dustyGasTransport test from the extendedCxxTestSuite 2012-08-02 15:48:58 +00:00
Ray Speth
bf2a6f2d51 Added the simpleTransport test from the extendedCxxTestSuite 2012-08-02 15:48:51 +00:00
Ray Speth
39f1c15c8a Added the stoichSolidKinetics test from the extendedCXXTestSuite 2012-08-02 15:48:43 +00:00
Ray Speth
85070e1d30 Added the LatticeSolid_LiSi test from the extendedCXXTestSuite 2012-08-02 15:48:36 +00:00
Ray Speth
6a78bea039 Added copyString as a consistent interface for copying std::string to char* 2012-08-02 15:48:27 +00:00
Ray Speth
f2a1aa219b Some cleanup of clib
Removing unnecessary explicit char* to string conversions
2012-08-02 15:48:16 +00:00
Ray Speth
38fbe6781e Simplified some casting operations in clib 2012-08-02 15:48:09 +00:00
Ray Speth
cd706b355f Made casting operations in ctreactor safer 2012-08-02 15:48:03 +00:00
Ray Speth
8c1ec6a5f5 Made casting operations in ctonedim safer 2012-08-02 15:47:56 +00:00
Ray Speth
bcb79d9cd3 Convert .cti files in data/inputs to .xml as part of the buld process
The full set of .cti and .xml files to be installed is placed in build/data (for
use by the test suite) and copied to the CANTERA_DATA folder on installation.
2012-08-02 15:47:45 +00:00
Ray Speth
4e0fea7079 Added a test for converting Chebyshev and P-log reactions with ck2cti.py 2012-07-26 20:50:23 +00:00
Ray Speth
5045d2c14c Some refactoring of ck2cti.py 2012-07-26 20:50:19 +00:00
Ray Speth
88bb6fe679 Removed obsolete C++ Chemkin mechanism converter 2012-07-26 20:49:50 +00:00
Ray Speth
c57f9b644f Conversion of Chemkin mechanisms in Python and Matlab now uses ck2cti.py 2012-07-26 20:49:37 +00:00
Ray Speth
7472136e44 Converter tests now check some kinetics parameters 2012-07-26 20:49:33 +00:00
Ray Speth
9801b03a50 Moved nasa9_reader test to Python 2012-07-26 20:49:26 +00:00
Ray Speth
13e188381d Moved ck2cti tests to the Python test suite 2012-07-26 20:49:18 +00:00
Ray Speth
97acc868fb Added a test where an unbalanced reaction is detected 2012-07-26 20:49:14 +00:00
Ray Speth
2482422023 Allow SCons test runner to continue past some csv parsing errors 2012-07-26 20:49:10 +00:00
Ray Speth
db57f3a200 Added test to confirm that ck2cti.py detects missing thermo data 2012-07-26 20:49:06 +00:00
Ray Speth
0e21bfd0e0 Introduced a test suite for Chemkin-format mechanism conversions 2012-07-26 20:49:01 +00:00
Ray Speth
b29438eb6d ck2cti.py supports extended format for large molecule compositions
This extension places extra elemental composition data at the end of the first
line of the thermo data. See 'soot.inp' for an example.
2012-07-26 20:48:58 +00:00
Ray Speth
a0c4da3e44 Updated ck2cti.py to handle non-integer stoichiometric coefficients 2012-07-26 20:48:55 +00:00
Ray Speth
2b9bbddf36 ck2cti.py can now parse 9-coefficient NASA polynomials 2012-07-26 20:48:52 +00:00
Ray Speth
5c041b51cf ck2cti.py now checks for undefined elements 2012-07-26 20:48:49 +00:00
Ray Speth
d3218d4dfa ck2cti.py now preserves order of chemical elements 2012-07-26 20:48:44 +00:00
Ray Speth
46b1a4221b Fixed a missing #include in refine.h 2012-07-23 22:33:55 +00:00
Ray Speth
0ff0dad483 Removed obsolete HAS_SSTREAM option 2012-07-23 22:33:41 +00:00
Ray Speth
3eb72725d9 Replaced a couple of unnecessary local functions in refine.cpp 2012-07-20 18:27:04 +00:00
Ray Speth
d25cb04713 Removed unnecessary manual memory management from InterfaceKinetics
Converted m_rxnPhaseIsReactant and m_rxnPhaseIsProduct from
vector<bool*> to vector<vector<bool> >.
2012-07-20 18:26:57 +00:00
Ray Speth
d7463cc226 Removed unimplemented TST and LandauTeller kinetic rates 2012-07-20 18:26:50 +00:00
Nicholas Malaya
521b2957c9 missing a makefile.am, somehow 2012-07-19 15:41:54 +00:00
Nicholas Malaya
198d1adda7 fixing a few missed files that needed to be included 2012-07-19 15:39:55 +00:00
Nicholas Malaya
8d802d1616 [cantera]: fixing doxygen documentation test generation. 2012-07-19 15:32:34 +00:00
Nicholas Malaya
ab4e791ba8 updating doxygen files to try to get this guy working 2012-07-18 23:34:10 +00:00
Nicholas Malaya
e25c671ee8 fixing up doxygen documentation 2012-07-18 23:28:05 +00:00
Nicholas Malaya
3e9ee5ccbe updating changelog 2012-07-18 22:56:31 +00:00
Nicholas Malaya
77bb5e15ce removing several deprecated header files from the makefile.ams. In addition, headers should now be properly installed by the make install step 2012-07-18 22:54:54 +00:00
Ray Speth
3ce3da1fa2 Fixed code formatting 2012-07-18 18:32:29 +00:00
Ray Speth
e77990ab24 Fixed indexing errors in Phase::addUniqueSpecies
Also simplified to eliminate unnecessary iterator usage and fixed a comment that
indicated exactly the opposite of what the function actually does.
2012-07-18 18:32:17 +00:00
Ray Speth
7bbadb8063 Remove non-Cantera code from coverage report 2012-07-18 17:37:26 +00:00
Ray Speth
b988a3f3ab Added 'PecosTransport' to the SCons regression test suite 2012-07-18 17:37:21 +00:00
Ray Speth
a37d75a645 Fixed output from the 'ChemEquil_ionizedGas' regression test 2012-07-18 17:37:15 +00:00
Ray Speth
99ededf824 Fixed conflict between copies of noxNeg.xml for negATest
The test should run using noxNeg.cti or noxNeg_blessed.xml. In the former case,
a comparision can be made between the resulting noxNeg.xml and
noxNeg_blessed.xml.
2012-07-18 17:37:09 +00:00
Nicholas Malaya
14dc965e99 fixing base directory header install path 2012-07-18 17:10:53 +00:00
Nicholas Malaya
7ab0518d32 adding elements.xml file for regression tests 2012-07-18 14:21:19 +00:00
Nicholas Malaya
f9f6a93c39 removing a cout that was not necessary 2012-07-17 22:09:57 +00:00
Nicholas Malaya
f42d292ec2 adding statmech test problems 2012-07-17 21:54:06 +00:00
Nicholas Malaya
2d2c16ec38 adding statmech testing suite 2012-07-17 21:22:21 +00:00
Nicholas Malaya
d9381b55da merging into cantera 2.0 the pecos autotools trunk 2012-07-17 21:12:16 +00:00
Nicholas Malaya
bc0a6dfabd lowering precision on several tests, and starting pecostransport merge 2012-07-17 16:15:53 +00:00
Nicholas Malaya
c9acf2a5d3 [cantera]: lowering precision requirements in several tests 2012-07-17 15:50:35 +00:00
Ray Speth
477d6a59fb Removed old, duplicate version of Surf1D
ReactingSurf1D is the replacement
2012-07-16 22:19:30 +00:00
Ray Speth
b5b536ff83 Removed some deprecated code 2012-07-16 22:19:10 +00:00
Ray Speth
8611f43eb0 Removed deprecated 'GasTransportData' struct
Simplified implementation of TransportFactory::getTransportData,
and removed data members of MixTransport and MultiTransport that
were only used to fill in the GasTransportData structure.
2012-07-16 22:18:58 +00:00
Ray Speth
cfe5824a7d Removed some deprecated code 2012-07-16 22:18:35 +00:00
Ray Speth
8b6c9a0bf7 Removed some deprecated functions 2012-07-16 22:18:11 +00:00
Nicholas Malaya
11128fadbd updating script to be based off only success and failure count 2012-07-16 20:48:49 +00:00
Nicholas Malaya
4757cf6b69 cutting precision off to make tests less stringent: this makes me nervous but a test suite is useless unless it works under certain circumstances 2012-07-16 20:43:13 +00:00
Nicholas Malaya
23afaa2f79 adding more runtest scripts 2012-07-16 20:23:23 +00:00
Nicholas Malaya
4e33e37478 updating a few other tests 2012-07-16 19:59:01 +00:00
Nicholas Malaya
312e5b742a found a better format 2012-07-16 19:56:40 +00:00
Nicholas Malaya
1147addeb8 converting to lower precision level for test 2012-07-16 19:55:48 +00:00
Nicholas Malaya
405c8bf8a9 lowering precision on test, to avoid false negatives 2012-07-16 19:52:15 +00:00
Nicholas Malaya
fbd6279a6b updating exit code 2012-07-16 19:16:36 +00:00
Nicholas Malaya
430c43f762 small update, prepping for merge 2012-07-16 19:11:53 +00:00
Ray Speth
0d25383591 Merge bug fixes from 2.0 maintenance branch 2012-07-10 16:28:00 +00:00
Ray Speth
5bb6edb133 Bump version number of development version (trunk) 2012-07-10 16:25:39 +00:00
2437 changed files with 126911 additions and 477412 deletions

9
.codecov.yml Normal file
View file

@ -0,0 +1,9 @@
coverage:
range: "20...100"
ignore:
- ext/.*
comment:
behavior: once
require_changes: yes

2
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,2 @@
github: [numfocus]
custom: ['https://numfocus.org/donate-to-cantera']

42
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,42 @@
---
name: Bug report
about: Report reproducible software issues so we can improve
title: ''
labels: ''
assignees: ''
---
Please fill in the following information to report a problem with Cantera.
If you have a question about using Cantera, please post it on our
[Google Users' Group](https://groups.google.com/forum/#!forum/cantera-users).
**System information**
- Cantera version: [e.g. 2.4]
- OS: [e.g. Windows 10]
- Python/MATLAB version:
**Expected behavior**
A clear and concise description of what you expected to happen.
**Actual behavior**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Open '...'
2. Run '....'
3. See error '....'
**Attachments**
If applicable, attach scripts and/or input files to help explain your problem.
Please do *not* attach screenshots of code or terminal output.
**Additional context**
Add any other context about the problem here.

View file

@ -0,0 +1,25 @@
---
name: Feature request
about: Suggest a new feature to enhance Cantera's capabilities
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe**
A clear and concise description of the problem you're trying to solve.
**Describe the desired solution**
A clear and concise description of a new feature and its application. For
example, "It would be great if Cantera could..."
**Describe alternatives you have considered**
A clear and concise description of any alternative solutions or features you
have considered.
**Additional context**
Add any other context about the feature request here.

17
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,17 @@
Thanks for contributing code! Please include a description of your change and
check your PR against the list below (for further questions, refer to the
[contributing guide](https://github.com/Cantera/cantera/blob/master/CONTRIBUTING.md)).
- [ ] There is a clear use-case for this code change
- [ ] The commit message has a short title & references relevant issues
- [ ] Build passes (`scons build` & `scons test`) and unit tests address code coverage
**Please fill in the issue number this pull request is fixing**
Fixes #
**Changes proposed in this pull request**
-
-
-

38
.github/SUPPORT.md vendored Normal file
View file

@ -0,0 +1,38 @@
# How to get support
> This project has a [Code of Conduct](https://github.com/Cantera/cantera/blob/master/CODE_OF_CONDUCT.md).
> By interacting with this repository, organisation, or community you agree to
> abide by its terms.
For **help**, **support** and **questions** please create a post on the
**[Cantera Users' Group](https://groups.google.com/group/cantera-users)**.
Any discussion of Cantera functionality such as how to use certain function
calls, syntax problems, input files, etc. should be directed to the Users' Group.
Further, the **[Cantera Gitter Chat](https://gitter.im/Cantera/Lobby)** is an
infrequently monitored chat room that can be used to discuss tangentially-related
topics such as how to model the underlying physics of a problem, share cool
applications that you have developed, etc.
Please **_do not_** raise an issue on GitHub unless it is a bug report or a
feature request. Issues that do not fall into these categories will be closed.
If you're not sure, please make a post on the
[Users' Group](https://groups.google.com/group/cantera-users) and someone will
be able to help you out.
## Documentation
The [documentation](https://cantera.org/documentation)
offers a number of starting points:
- [Python tutorial](https://cantera.org/tutorials/python-tutorial.html)
- [Application Examples in Python (Jupyter)](https://github.com/Cantera/cantera-jupyter#cantera-jupyter)
- [A guide to Cantera's input file format](https://cantera.org/tutorials/input-files.html)
- [Information about the Cantera community](https://cantera.org/community.html)
Documentation for the [development version of
Cantera](https://cantera.org/documentation/dev-docs.html) is also available.
## Contributions
See [`CONTRIBUTING.md`](https://github.com/Cantera/cantera/blob/master/CONTRIBUTING.md) on how to contribute.

16
.gitignore vendored
View file

@ -1,4 +1,6 @@
doc/ctdeploy_key
*~ *~
*#
*.o *.o
*.so *.so
*.os *.os
@ -7,8 +9,13 @@
*.exe.manifest *.exe.manifest
build/ build/
test/work/ test/work/
interfaces/cython/cantera/_cantera.h
include/cantera/base/config.h include/cantera/base/config.h
include/cantera/base/config.h.build
include/cantera/base/system.h.gch
include/cantera/ext/
interfaces/matlab/ctpath.m interfaces/matlab/ctpath.m
interfaces/matlab/Contents.m
stage/ stage/
.sconsign.dblite .sconsign.dblite
.sconf_temp .sconf_temp
@ -32,5 +39,14 @@ config.log
.settings .settings
*.gcda *.gcda
*.gcno *.gcno
*.gch
coverage/ coverage/
coverage.info coverage.info
doc/sphinx/matlab/data.rst
doc/sphinx/matlab/importing.rst
doc/sphinx/matlab/kinetics.rst
doc/sphinx/matlab/one-dim.rst
doc/sphinx/matlab/thermodynamics.rst
doc/sphinx/matlab/transport.rst
doc/sphinx/matlab/utilities.rst
doc/sphinx/matlab/zero-dim.rst

15
.gitmodules vendored Normal file
View file

@ -0,0 +1,15 @@
[submodule "ext/fmt"]
path = ext/fmt
url = https://github.com/fmtlib/fmt.git
[submodule "ext/googletest"]
path = ext/googletest
url = https://github.com/google/googletest.git
[submodule "ext/sundials"]
path = ext/sundials
url = https://github.com/Cantera/sundials-mirror
[submodule "ext/eigen"]
path = ext/eigen
url = https://github.com/eigenteam/eigen-git-mirror
[submodule "ext/yaml-cpp"]
path = ext/yaml-cpp
url = https://github.com/jbeder/yaml-cpp.git

90
.travis.yml Normal file
View file

@ -0,0 +1,90 @@
language: cpp
sudo: false
dist: xenial
os:
- linux
- osx
addons:
apt:
packages:
- python3-pip
- python3-dev
- python3-numpy
- python3-setuptools
- scons
- gfortran
- libsundials-serial-dev
- liblapack-dev
- libblas-dev
- libboost-dev
- doxygen
- graphviz
ssh_known_hosts:
- cantera.org
env:
global:
secure: "IqQ4IVKzZbMCIVrD6t3YQDi3mEiswhTWo3AAKg2CrA+CETads/I9d0g68krKCA2xue0zm9pFVWbs5MT2F6Yq2PNsdvoN3ZMHrpXTN2ZJ7pgukgVwNuBe7B/tm6xBzSbZ4KPIanWCu3TNXsZp9EPG1rdhagAZZ+TeDYdIUKAITjYOVIiiAsqiLllsE9cAq3jkiu/JAxB0tzicxERi1RtnMfL/1d9fupP+yrExwIYo+hhAwWwghdiKzh551sowpbVFVxuOtTJfpC+vh1a/kLo/VTr4DDe6Bdkubc7beU8WZiZNVVbNoydy/qYkKuOzmXu9Llo9flMzJKswR7Szxi8nhD2zc+3pOYxJilWPYtrG4WrJr3WFTU3xZg5KsLwNpCane1uAsrj/NNtMagp+Wj1yOBMDMmHF5GAyCVEgSqY2PLISaEPOPCJV4VihaHyie1hM/A5YlD2VwkkKJTjMIP2VpaLVo9Sr3jXUIhtp/wLNleSWENX7etFjVqhwX1ldhz6+gVrn/H6oS2LwHQwlAseE9O6eqAB5ia+9duYDt7JS5F1P8QMYhz1gaJGXKWBnCEur5XHoGhZ75nyNnpmLjDOHKk5NmQQNL6ltUqg3fX7EWOjzxHlymdZ/4lg5AESj/+nBAhJJcAYRn9hHti7JLMjF6Qk/Kf3pJ6qVBHETY2KivH8="
before_script: |
echo TRAVIS_OS_NAME: $TRAVIS_OS_NAME
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
export CONDA_ARCH="${TRAVIS_OS_NAME}_${BUILD_ARCH}"
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o miniconda.sh;
bash miniconda.sh -b -p $HOME/miniconda
source $HOME/miniconda/etc/profile.d/conda.sh && conda activate
conda config --set always_yes yes --set changeps1 no
conda install -q numpy cython scons boost ruamel_yaml
conda install -q -c conda-forge openmp
else
pip3 install --user --upgrade pip
pip3 install --user --upgrade setuptools wheel
pip3 install --user cython
pip3 install --user ruamel.yaml==0.15.94 # Need a version compatible with Python 3.4
# Install packages for the documentation
pip3 install --user sphinx sphinxcontrib-matlabdomain sphinxcontrib-doxylink
pip3 install --user https://github.com/hagenw/sphinxcontrib-katex/archive/master.tar.gz
fi
rm -f cantera.conf
script: |
set -e
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
scons build -j2 python_cmd=/usr/bin/python3 VERBOSE=y python_package=full blas_lapack_libs=lapack,blas optimize=n coverage=y
scons test
scons samples
scons build sphinx_docs=y doxygen_docs=y sphinx_cmd="/usr/bin/python3 `which sphinx-build`"
if [[ "${TRAVIS_PULL_REQUEST}" == "false" ]] && [[ "${TRAVIS_BRANCH}" == "master" ]] && [[ "${TRAVIS_REPO_SLUG}" == "Cantera/cantera" ]]; then
cd build
find docs -type f | grep -v /xml/ | grep -v .map$ | grep -v .md5$ | tar cjvf docs/dev-docs.tar.bz2 --files-from - >/dev/null
cd -
openssl aes-256-cbc -k "${ctdeploy_pass}" -in ./doc/ctdeploy_key.enc -out ./doc/ctdeploy_key -d
chmod 0600 ./doc/ctdeploy_key
RSYNC_OPTIONS=(
-avzP
--checksum
--rsh='ssh -i ./doc/ctdeploy_key'
--exclude='*.map'
--exclude='*.md5'
--exclude='/doxygen/xml'
--delete
--delete-excluded
)
RSYNC_USER="ctdeploy"
RSYNC_SERVER="cantera.org"
RSYNC_DEST="cantera/documentation/dev"
DOCS_OUTPUT_DIR="./build/docs/"
rsync "${RSYNC_OPTIONS[@]}" "${DOCS_OUTPUT_DIR}" ${RSYNC_USER}@${RSYNC_SERVER}:${RSYNC_DEST}
else
echo "Skipping documentation upload from source other than Cantera/cantera:master"
fi
else
scons build -j2 python_cmd=python3 VERBOSE=y python_package=full blas_lapack_libs=lapack,blas optimize=n coverage=y extra_inc_dirs=$CONDA_PREFIX/include extra_lib_dirs=$CONDA_PREFIX/lib
scons test
scons samples
fi
after_success: |
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
bash <(curl -s https://codecov.io/bash)
fi

49
AUTHORS
View file

@ -1,6 +1,45 @@
Cantera developers: Cantera was originally developed by Dave Goodwin, with its first public release
in 2001. Since then, many people have contributed to Cantera. Below is a
partial, alphabetical list of developers and contributors to Cantera over the
years. If you've been left off, please report the omission on the Github issue
tracker.
Dave Goodwin Emil Atz
Nicholas Malaya Philip Berndt
Harry Moffat Wolfgang Bessler, Offenburg University of Applied Science
Raymond Speth Tilman Bremer
Victor Brunini, Sandia National Laboratory
Bang-Shiuh Chen, Purdue University
Ryan Crisanti
Nicholas Curtis
Steven DeCaluwe, Colorado School of Mines
Vishesh Devgan
Thomas Fiala, Technische Universität München
David Fronczek
@g3bk47
Matteo Giani
Dave Goodwin, California Institute of Technology
John Hewson, Sandia National Laboratory
Trevor Hickey
Yuanjie Jiang
Jon Kristofer
Kyle Linevitch, Jr.
Christopher Leuth
Nicholas Malaya, University of Texas at Austin
Thanasis Mattas, Aristotle University of Thessaloniki
Evan McCorkle
Ivan Mitrichev, Mendeleev University of Chemical Technology of Russia
Harry Moffat, Sandia National Laboratory
Christopher Neal
Kyle Niemeyer, Oregon State University
Paul Northrop
Andreas Rücker
Jeff Santner
Satyam Saxena
Ingmar Schoegl, Louisiana State University
Santosh Shanbhogue, Massachusetts Institute of Technology
David Sondak
Raymond Speth, Massachusetts Institute of Technology
Sergey Torokhov
Bryan Weber, University of Connecticut
Armin Wehrfritz

74
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,74 @@
# Cantera Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers commit to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at conduct@cantera.org. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

93
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,93 @@
# Contributing to Cantera
* For significant changes, consider starting a discussion on the Cantera
Users' Group to plan your modifications so that they can be implemented
efficiently and in a way that doesn't conflict with any other planned
future development
* Fork the `Cantera/cantera` repository on Github
* Clone your new repository or add it as a remote to an existing repository
* Check out the existing `master` branch, then start a new feature branch for
your work
* When making changes, write code that is consistent with the surrounding code
(see the [style guidelines](#style-guidelines) below)
* Add tests for any new features that you are implementing to either the
GoogleTest-based test suite or the Python test suite.
* Add examples that highlight new capabilities, or update existing
examples to make use of new features.
* As you make changes, commit them to your feature branch
* Configure Git with your name and e-mail address before making any commits
* Use descriptive commit messages (summary line of no more than 72 characters,
followed by a blank line and a more detailed summary, if any)
* Make related changes in a single commit, and unrelated changes in separate
commits
* Make sure that your commits do not include any undesired files, e.g., files
produced as part of the build process or other temporary files.
* Use Git's history-rewriting features (i.e., `git rebase -i`; see
https://help.github.com/articles/about-git-rebase/) to organize your commits
and squash "fixup" commits and reversions.
* Do not merge your branch with `master`. If needed, you should rebase your branch
onto the most recent `HEAD` commit of `master`.
* Periodically run the test suite (`scons test`) to make sure that your
changes are not causing any test failures.
* Submit a Pull Request on Github. Check the results of the continuous-
integration tests run using Travis and AppVeyor and resolve any issues that
arise.
* Additional discussion of good Git & Github workflow is provided at
http://matplotlib.org/devel/gitwash/development_workflow.html and
https://docs.scipy.org/doc/numpy-1.15.0/dev/gitwash/development_workflow.html
* Cantera is licensed under a [BSD
license](https://github.com/Cantera/cantera/blob/master/License.txt) which
allows others to freely modify the code, and if your Pull Request is accepted,
then that code will be release under this license as well. The copyright for
Cantera is held collectively by the contributors. If you have made a
significant contribution, please add your name to the `AUTHORS` file.
# Style Guidelines
* Try to follow the style of surrounding code, and use variable names that
follow existing patterns. Pay attention to indentation and spacing.
* Configure your editor to use 4 spaces per indentation level, and **never to
use tabs**.
* Avoid introducing trailing whitespace
* Limit line lengths to 80 characters when possible
* Write comments to explain non-obvious operations
## C++
* All classes, member variables, and methods should have Doxygen-style comments
(e.g., comment lines starting with `//!` or comment blocks starting with `/*!`)
* Avoid defining non-trivial functions in header files
* Header files should include an 'include guard'
* Protected and private member variable names are generally prefixed with
`m_`. For most classes, member variables should not be public.
* Class names use `InitialCapsNames`
* Methods use `camelCaseNames`
* Do not indent the contents of namespaces
* Code may make use of most C++11 features, with the exceptions of delegating
constructors, inheriting constructors, and non-static data member
initializers. These limitations are needed to keep the minimum required
compiler versions at GCC 4.6, Clang 3.1, Visual Studio 2013 and Intel 14.0.
* Avoid manual memory management (i.e. `new` and `delete`), preferring to use
standard library containers, as well as `std::unique_ptr` and
`std::shared_ptr` when dynamic allocation is required.
* Portions of Boost which are "header only" may be used. If possible, include
Boost header files only within .cpp files rather than other header files to
avoid unnecessary increases in compilation time. Boost should not be added
to the public interface unless its existence and use is optional. This keeps
the number of dependencies low for users of Cantera. In these cases,
`CANTERA_API_NO_BOOST` should be used to conditionally remove Boost dependencies.
* While Cantera does not specifically follow these rules, the following style
guides are useful references for possible style choices and the rationales behind them.
* The Google C++ Style Guide: https://google.github.io/styleguide/cppguide.html
* http://geosoft.no/development/cppstyle.html
* For any new code, do *not* use the `doublereal` and `integer` typedefs for the
basic types `double` and `int`, but also do not go out of your way to change
uses of these in otherwise unmodified code.
## Python
* Style generally follows PEP8 (https://www.python.org/dev/peps/pep-0008/)
* Code in `.py` and `.pyx` files needs to be written to work with Python 3
* The minimum Python version that Cantera supports is Python 3.4, so code should only use features added in Python 3.4 or earlier
* Code in `ctml_writer.py` and `ck2cti.py` needs to be written to work with both Python 2 and Python 3
* Code in the Python examples should be written for Python 3

View file

@ -1 +0,0 @@
6/14/12 Merging PECOS autotools branch with scons cantera 2.0

View file

@ -18,5 +18,4 @@ shown by running `scons` with no other arguments.
Detailed Instructions Detailed Instructions
--------------------- ---------------------
See the file `doc/sphinx/compiling.rst` or the HTML instructions See the instructions available at [online](https://cantera.org/install/index.html)
available at http://cantera.github.com/docs/sphinx/html/compiling.html.

View file

@ -2,9 +2,11 @@
Copyright (c) 2001-2009, California Institute of Technology Copyright (c) 2001-2009, California Institute of Technology
All rights reserved. All rights reserved.
Copyright (c) 2009, 2011, Sandia Corporation. Under the terms of Copyright (c) 2009 Sandia Corporation. Under the terms of
Contract AC04-94AL85000 with Sandia Corporation, the U.S. Government Contract AC04-94AL85000 with Sandia Corporation, the U.S. Government
retains certain rights to certain parts of this software. retains certain rights in this software.
Copyright (c) 2011-2018, Cantera Developers.
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
@ -19,7 +21,7 @@ met:
documentation and/or other materials provided with the distribution. documentation and/or other materials provided with the distribution.
- Neither the name of the California Institute of Technology, Sandia - Neither the name of the California Institute of Technology, Sandia
Corporation nor the names of other contributors may be used to Corporation nor the names of other contributors may be used to
endorse or promote products derived from this software without endorse or promote products derived from this software without
specific prior written permission. specific prior written permission.
@ -34,4 +36,3 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -1,16 +0,0 @@
include $(top_srcdir)/doc/doxygen/aminclude.am
# Build in these directories:
SUBDIRS = ext src test_problems
SUBDIRS += doc
# Distribute these directories:
DISTDIRS = ext src test_problems doc
# generated documentation will be included in distributed archive
EXTRA_DIST = bootstrap $(DX_CONFIG)
EXTRA_DIST += AUTHORS README
# Support for pkgconfig
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = cantera.pc

1
NEWS
View file

@ -1 +0,0 @@
11/10/11 cantera 2.0.0 development begins on autotools chain

40
README
View file

@ -1,40 +0,0 @@
*******
CANTERA
*******
Version 2.0.1
License Information
===================
See the file "License.txt" for information on the terms & conditions for usage,
and a DISCLAIMER OF ALL WARRANTIES.
All trademarks referenced herein are property of their respective holders.
Web Resources
=============
1. The Cantera Google Code site:
http://cantera.googlecode.com/
This site contains the Cantera source code, downloads of binary releases,
and the issue tracker for bugs and enhancement requests.
2. Cantera Documentation:
http://cantera.github.com/docs/sphinx/html/index.html
This site contains documentation for the current development version of
Cantera.
3. The Cantera User's Group:
http://groups.google.com/group/cantera-users
This site has a message board for discussions amongst Cantera users.
4. The Cantera Developers Group:
http://groups.google.com/group/cantera-dev
Limited access site where developers can discuss development ideas.
5. Old Cantera source code site.
http://sourceforge.net/projects/cantera
Distribution of the Cantera source code previously done using SourceForge.
It still contains the project CVS history.

174
README.rst Normal file
View file

@ -0,0 +1,174 @@
.. Cantera
|cantera|
|doi| |codecov| |travisci| |appveyor| |release|
What is Cantera?
================
Cantera is an open-source collection of object-oriented software tools for
problems involving chemical kinetics, thermodynamics, and transport processes.
Among other things, it can be used to:
* Evaluate thermodynamic and transport properties of mixtures
* Compute chemical equilibrium
* Evaluate species chemical production rates
* Conduct kinetics simulations with large reaction mechanisms
* Simulate one-dimensional flames
* Conduct reaction path analysis
* Create process simulations using networks of stirred reactors
* Model non-ideal fluids
Cantera can be used from Python and Matlab, or in applications written in C++
and Fortran 90. A number of `examples of Cantera's capabilities
<https://github.com/Cantera/cantera-jupyter>`_ are available in the form of
Jupyter notebooks. These examples can be tried interactively, in the cloud by
using the following MyBinder link:
.. image:: https://mybinder.org/badge.svg
:target: https://mybinder.org/repo/cantera/cantera-jupyter
Installation
============
`Installation instructions for the current release of Cantera
<https://cantera.org/install/index.html>`_ are available from the main `Cantera
documentation site <https://cantera.org>`_. Installers are provided for Windows
(MSI packages), macOS (through Homebrew), and Ubuntu. Anaconda packages
containing the Cantera Python module are also available for Windows, macOS, and
Linux.
.. image:: https://anaconda.org/cantera/cantera/badges/installer/conda.svg
:target: https://anaconda.org/Cantera/cantera
For other platforms, or for users wishing to install a development version of
Cantera, `compilation instructions <https://cantera.org/install/index.html>`_
are also available.
Documentation
=============
The `documentation <https://cantera.org/documentation>`_
offers a number of starting points:
- `Python tutorial
<https://cantera.org/tutorials/python-tutorial.html>`_
- `Application Examples in Python
<https://github.com/Cantera/cantera-jupyter#cantera-jupyter>`_
- `A guide to Cantera's input file format
<https://cantera.org/tutorials/input-files.html>`_
- `Information about the Cantera community
<https://cantera.org/community.html>`_
`Documentation for the development version of Cantera
<https://cantera.org/documentation/dev-docs.html>`_ is also available.
Code of Conduct
===============
.. image:: https://img.shields.io/badge/code%20of%20conduct-contributor%20covenant-green.svg?style=flat-square
:alt: conduct
:target: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
In order to have a more open and welcoming community, Cantera adheres to a
`code of conduct <CODE_OF_CONDUCT.md>`_ adapted from the `Contributor Covenent
code of conduct <https://contributor-covenant.org/>`_.
Please adhere to this code of conduct in any interactions you have in the
Cantera community. It is strictly enforced on all official Cantera
repositories, websites, users' group, and other resources. If you encounter
someone violating these terms, please `contact the code of conduct team
<mailto:conduct@cantera.org>`_ (`@speth <https://github.com/speth>`_,
`@bryanwweber <https://github.com/bryanwweber>`_, and `@kyleniemeyer
<https://github.com/kyleniemeyer>`_) and we will address it as soon as
possible.
Development Site
================
The current development version is 2.5.0a3. The current stable version is
2.4.0. The `latest Cantera source code <https://github.com/Cantera/cantera>`_,
the `issue tracker <https://github.com/Cantera/cantera/issues>`_ for bugs and
enhancement requests, `downloads of Cantera releases and binary installers
<https://github.com/Cantera/cantera/releases>`_ , and the `Cantera wiki
<https://github.com/Cantera/cantera/wiki>`_ can all be found on Github.
Users' Group
============
The `Cantera Users' Group <https://groups.google.com/group/cantera-users>`_ is a
message board / mailing list for discussions amongst Cantera users.
Cantera Gitter Chat
===================
.. image:: https://badges.gitter.im/org.png
:target: https://gitter.im/Cantera/Lobby
The `Cantera Gitter Chat <https://gitter.im/Cantera/Lobby>`_ is a public chat
client that is linked to users' Github account. The developers do not closely
monitor the discussion, so *any* discussion at all of Cantera functionality
such as how to use certain function calls, syntax problems, input files, etc.
should be directed the User's Group. All conversations in the Gitter room will
be covered under the Cantera Code of Conduct, so please be nice.
The chat room is a place to strengthen and develop the Cantera community,
discuss tangentially-related topics such as how to model the underlying physics
of a problem , share cool applications youve developed, etc.
Summary:
“How do I perform this Cantera function call?” --> User's Group
"What do I do with the variables that a Cantera function call returns?” -->
Chat
Continuous Integration Status
=============================
============== ============ ===================
Platform Site Status
============== ============ ===================
Linux & OS X Travis CI |travisci|
Windows x64 Appveyor |appveyor|
============== ============ ===================
NumFOCUS
========
Cantera is a fiscally-sponsored project of `NumFOCUS <https://numfocus.org>`__,
a non-profit dedicated to supporting the open source scientific computing
community. Please consider `making a donation
<https://numfocus.salsalabs.org/donate-to-cantera/index.html>`__ to support the
development of Cantera through NumFOCUS.
.. image:: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A
:target: https://numfocus.salsalabs.org/donate-to-cantera/index.html
:alt: Powered by NumFOCUS
.. |cantera| image:: https://cantera.org/assets/img/cantera-logo.png
:target: https://cantera.org
:alt: cantera logo
:width: 675px
:align: middle
.. |travisci| image:: https://travis-ci.org/Cantera/cantera.svg?branch=master
:target: https://travis-ci.org/Cantera/cantera
.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/auhd35qn9cdmkpoj?svg=true
:target: https://ci.appveyor.com/project/Cantera/cantera
.. |doi| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.170284.svg
:target: https://doi.org/10.5281/zenodo.1174508
.. |codecov| image:: https://img.shields.io/codecov/c/github/Cantera/cantera/master.svg
:target: https://codecov.io/gh/Cantera/cantera?branch=master
.. |release| image:: https://img.shields.io/github/release/cantera/cantera.svg
:target: https://github.com/Cantera/cantera/releases
:alt: GitHub release

1852
SConstruct

File diff suppressed because it is too large Load diff

27
appveyor.yml Normal file
View file

@ -0,0 +1,27 @@
version: 1.0.{build}
install:
- ps: |
C:\Python37-x64\python.exe -m pip install --no-cache-dir --upgrade pip
C:\Python37-x64\python.exe -m pip install --upgrade setuptools
C:\Python37-x64\python.exe -m pip install --upgrade --no-warn-script-location wheel
C:\Python37-x64\Scripts\pip.exe install scons==3.0.1
C:\Python37-x64\Scripts\pip.exe install --no-cache-dir --no-warn-script-location numpy
C:\Python37-x64\Scripts\pip.exe install --no-warn-script-location cython
C:\Python37-x64\Scripts\pip.exe install pypiwin32
C:\Python37-x64\Scripts\pip.exe install ruamel.yaml
build_script:
- cmd: C:\Python37-x64\Scripts\scons build -j2 boost_inc_dir=C:\Libraries\boost_1_62_0 debug=n VERBOSE=y python_package=full
- cmd: C:\Python37-x64\Scripts\scons samples
test_script:
- ps: |
C:\Python37-x64\Scripts\scons test
$sconsstatus = $lastexitcode
$wc = New-Object 'System.Net.WebClient'
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test\work\gtest-general.xml))
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test\work\gtest-thermo.xml))
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test\work\gtest-equil.xml))
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test\work\gtest-kinetics.xml))
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test\work\gtest-transport.xml))
if ( $sconsstatus ) { exit $sconsstatus }

View file

@ -1,53 +0,0 @@
#! /bin/sh
#
# bootstrap: Utility to easy autoconf/automake toolchain setup on
# checkout from revision control.
#
# Copyright (c) 2002 Daniel Elstner <daniel.elstner@gmx.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License VERSION 2 as
# published by the Free Software Foundation. You are not allowed to
# use any other version of the license; unless you got the explicit
# permission from the author to do so.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
dir=`echo "$0" | sed 's,[^/]*$,,'`
test "x${dir}" = "x" && dir='.'
if test "x`cd "${dir}" 2>/dev/null && pwd`" != "x`pwd`"
then
echo "This script must be executed directly from the source directory."
exit 1
fi
rm -f config.cache acconfig.h
echo "- aclocal. (local)" && \
aclocal -I m4 -I m4/common && \
echo "- autoheader." && \
autoheader && \
if type glibtoolize >/dev/null 2>&1; then
echo "- glibtool."
glibtoolize --automake --copy --force
else
echo "- libtool."
libtoolize --automake --copy --force
fi
echo "- automake." && \
automake --add-missing --copy && \
echo "- autoconf." && \
autoconf && \
exit 0
exit 1

View file

@ -1,24 +0,0 @@
# cantera installation details
prefix=/h2/topalian/workspace/cantera/install
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
# Fortran compilation and linking information
# Retrieve these using `pkg-config --variable=name cantera`
#fflags=-I${exec_prefix}/lib
#flibs=-L${exec_prefix}/lib -lfcantera -lcantera
Name: cantera
Description: An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes.
URL: http://code.google.com/p/cantera/
Requires:
Version: 2.0.1
LINK = -lctcxx -luser -loneD -lzeroD -lequil -lkinetics -ltransport -lthermo -lctnumerics -lctmath -ltpx -lctspectra -lconverters -lctbase -lcvode -lctlapack -lctblas -lctf2c -lm -lstdc++
#Libs: -L${libdir} ${LINK}
#Cflags: -I${includedir}
fflags=-I${exec_prefix}/lib -I${includedir}
#fflags=-I${exec_prefix}/lib
flibs=-L${exec_prefix}/lib ${LINK}

View file

@ -1,177 +0,0 @@
-*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT([cantera], [2.0.1], [nick@ices.utexas.edu])
AC_CONFIG_HEADER(config.h)
AC_CONFIG_AUX_DIR([build-aux])
#AX_ENABLE_BUILDDIR
AM_INIT_AUTOMAKE(-Wall -Werror)
# snarf and provide versioning numbers
AX_SPLIT_VERSION
GENERIC_MAJOR_VERSION=$AX_MAJOR_VERSION
GENERIC_MINOR_VERSION=$AX_MINOR_VERSION
GENERIC_MICRO_VERSION=$AX_POINT_VERSION
GENERIC_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION.$GENERIC_MICRO_VERSION
GENERIC_RELEASE=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION
AC_SUBST(GENERIC_VERSION)
AC_SUBST(GENERIC_MAJOR_VERSION)
AC_SUBST(GENERIC_MINOR_VERSION)
AC_SUBST(GENERIC_MICRO_VERSION)
AC_SUBST(GENERIC_RELEASE)
PACKAGE_DESCRIPTION="An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes."
AC_SUBST([PACKAGE_DESCRIPTION])
PACKAGE_URL="http://code.google.com/p/cantera/"
AC_SUBST([PACKAGE_URL])
# add various Defines
AC_DEFINE([LAPACK_FTN_TRAILING_UNDERSCORE],1,[Define to add underscore after fortran functions])
LAPACK_FTN_TRAILING_UNDERSCORE=1
AC_DEFINE([FTN_TRAILING_UNDERSCORE],1,[Define to add underscore after fortran functions])
FTN_TRAILING_UNDERSCORE=1
AC_DEFINE([LAPACK_NAMES_LOWERCASE],1,[Define to make lapack functions lowercase])
LAPACK_NAMES_LOWERCASE=1
AC_DEFINE([LAPACK_FTN_STRING_LEN_AT_END],1,[Define to add string to end of lapack functions])
LAPACK_FTN_STRING_LEN_AT_END=1
AC_DEFINE([INCL_PURE_FLUIDS],1,[Define to include pure fluids])
INCL_PURE_FLUIDS=1
AC_DEFINE([WITH_PURE_FLUIDS],1,[Define to include pure fluids])
WITH_PURE_FLUIDS=1
AC_DEFINE([WITH_LATTICE_SOLID],1,[Define to include Lattice Solids])
WITH_LATTICE_SOLID=1
AC_DEFINE([WITH_METAL],1,[Define to include metals])
WITH_METAL=1
AC_DEFINE([WITH_STOICH_SUBSTANCE],1,[Define to include stoichiometric substances])
WITH_STOICH_SUBSTANCE=1
AC_DEFINE([WITH_IDEAL_SOLUTIONS],1,[Define to include ideal solutions])
WITH_IDEAL_SOLUTIONS=1
AC_DEFINE([HAS_SSTREAM],1,[Define to include sstream])
HAS_SSTREAM=1
AC_DEFINE_UNQUOTED([CANTERA_DATA], ["$prefix/data"],
[Default data directory])
AC_CHECK_TYPES([uint8_t, uint16_t, uint32_t, int32_t, uint64_t, int64_t])
AH_BOTTOM([
typedef double doublereal; // Fortran double precision
typedef int integer; // Fortran integer
typedef int ftnlen; // Fortran hidden string length type
#define STRING_LEN_AT_END
#define STORE_MOLE_FRACTIONS
#ifdef DEBUG_MODE
#define DEBUG_MODE_ENABLED 1
#else
#define DEBUG_MODE_ENABLED 0
#endif
])
# ------------------------------
# Checks for required programs
# ------------------------------
AC_PROG_CC
AC_PROG_CXX
AC_PROG_FC
AC_PROG_F77
AC_PROG_LIBTOOL
AM_SANITY_CHECK
# ----------------
# Doxygen support
# ----------------
DX_HTML_FEATURE(ON)
DX_CHM_FEATURE(OFF)
DX_CHI_FEATURE(OFF)
DX_MAN_FEATURE(OFF)
DX_RTF_FEATURE(OFF)
DX_XML_FEATURE(OFF)
DX_PDF_FEATURE(ON)
DX_PS_FEATURE(OFF)
DX_INIT_DOXYGEN(cantera, doc/doxygen/cantera.dox, docs)
# Generate Output Files
AC_OUTPUT(Makefile \
ext/Makefile \
ext/libexecstream/Makefile \
ext/f2c_math/Makefile \
ext/f2c_libs/Makefile \
ext/f2c_libs/arithchk/Makefile \
ext/f2c_blas/Makefile \
ext/f2c_lapack/Makefile \
ext/cvode/Makefile \
ext/cvode/source/Makefile \
test_problems/Makefile \
test_problems/mixGasTransport/Makefile \
test_problems/ChemEquil_gri_matrix/Makefile \
test_problems/ChemEquil_gri_pairs/Makefile \
test_problems/ChemEquil_ionizedGas/Makefile \
test_problems/ChemEquil_red1/Makefile \
test_problems/CpJump/Makefile \
test_problems/cxx_ex/Makefile \
test_problems/diamondSurf/Makefile \
test_problems/diamondSurf_dupl/Makefile \
test_problems/fracCoeff/Makefile \
test_problems/multiGasTransport/Makefile \
test_problems/negATest/Makefile \
test_problems/NASA9poly_test/Makefile \
test_problems/printUtilUnitTest/Makefile \
test_problems/pureFluidTest/Makefile \
test_problems/silane_equil/Makefile \
test_problems/spectroscopy/Makefile \
test_problems/surfkin/Makefile \
test_problems/surfSolverTest/Makefile \
test_problems/VPsilane_test/Makefile \
test_problems/VCSnonideal/Makefile \
test_problems/cathermo/Makefile \
test_problems/cathermo/DH_graph_1/Makefile \
test_problems/cathermo/HMW_dupl_test/Makefile \
test_problems/cathermo/HMW_graph_CpvT/Makefile \
test_problems/cathermo/HMW_graph_HvT/Makefile \
test_problems/cathermo/HMW_graph_GvI/Makefile \
test_problems/cathermo/HMW_graph_GvT/Makefile \
test_problems/cathermo/HMW_graph_VvT/Makefile \
test_problems/cathermo/HMW_test_1/Makefile \
test_problems/cathermo/HMW_test_3/Makefile \
test_problems/cathermo/ims/Makefile \
test_problems/cathermo/issp/Makefile \
test_problems/cathermo/stoichSubSSTP/Makefile \
test_problems/cathermo/testIAPWS/Makefile \
test_problems/cathermo/testIAPWSPres/Makefile \
test_problems/cathermo/testIAPWSTripP/Makefile \
test_problems/cathermo/testWaterPDSS/Makefile \
test_problems/cathermo/testWaterTP/Makefile \
test_problems/cathermo/VPissp/Makefile \
test_problems/cathermo/wtWater/Makefile \
test_problems/PecosTransport/Makefile \
doc/Makefile \
doc/doxygen/Makefile \
src/Makefile \
src/fortran/Makefile \
src/base/Makefile \
src/converters/Makefile \
src/kinetics/Makefile \
src/numerics/Makefile src/oneD/Makefile \
src/thermo/Makefile \
src/transport/Makefile \
src/spectra/Makefile src/zeroD/Makefile \
src/equil/Makefile \
src/tpx/Makefile \
cantera.pc)
# skipped tests
# test_problems/ck2cti/Makefile
# test_problems/nasa9_reader/Makefile
# test_problems/rankine_democxx/Makefile
# test_problems/VCSnonideal/NaCl_equil/Makefile
# FINAL SUMMARY
AX_SUMMARIZE_CONFIG

View file

@ -1,41 +0,0 @@
<?xml version="1.0"?>
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase NaCl(S) -->
<phase dim="3" id="NaCl(S)">
<elementArray datasrc="elements.xml">
Na Cl
</elementArray>
<speciesArray datasrc="#species_NaCl(S)"> NaCl(S) </speciesArray>
<thermo model="MineralEQ3" />
<transport model="None"/>
<kinetics model="none"/>
</phase>
<!-- species definitions -->
<speciesData id="species_NaCl(S)">
<species name="NaCl(s)">
<atomArray> Na:1 Cl:1 </atomArray>
<charge> 0 </charge>
<thermo model="MineralEQ3">
<MinEQ3 Pref="1 atm" Tmax="1073." Tmin="200.">
<DG0_f_Pr_Tr units="cal/gmol"> -91807 </DG0_f_Pr_Tr>
<DH0_f_Pr_Tr units="cal/gmol"> -98260 </DH0_f_Pr_Tr>
<S0_Pr_Tr units="cal/gmol/K"> 17.24 </S0_Pr_Tr>
<a units="cal/gmol/K"> 10.98 </a>
<b units="cal/gmol/K2"> 3.9E-3 </b>
<c units="cal K/gmol"> 0.0E5 </c>
</MinEQ3>
</thermo>
<standardState model="constantVolume">
<V0_Pr_Tr units="cm3/gmol"> 27.015 </V0_Pr_Tr>
</standardState>
</species>
</speciesData>
</ctml>

View file

@ -19,16 +19,16 @@ ideal_gas(name = "air",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Species data # Species data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "O", species(name = "O",
atoms = " O:1 ", atoms = " O:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ 3.168267100E+00, -3.279318840E-03, NASA( [ 200.00, 1000.00], [ 3.168267100E+00, -3.279318840E-03,
6.643063960E-06, -6.128066240E-09, 2.112659710E-12, 6.643063960E-06, -6.128066240E-09, 2.112659710E-12,
2.912225920E+04, 2.051933460E+00] ), 2.912225920E+04, 2.051933460E+00] ),
NASA( [ 1000.00, 3500.00], [ 2.569420780E+00, -8.597411370E-05, NASA( [ 1000.00, 3500.00], [ 2.569420780E+00, -8.597411370E-05,
4.194845890E-08, -1.001777990E-11, 1.228336910E-15, 4.194845890E-08, -1.001777990E-11, 1.228336910E-15,
2.921757910E+04, 4.784338640E+00] ) 2.921757910E+04, 4.784338640E+00] )
), ),
@ -42,10 +42,10 @@ species(name = "O",
species(name = "O2", species(name = "O2",
atoms = " O:2 ", atoms = " O:2 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ 3.782456360E+00, -2.996734160E-03, NASA( [ 200.00, 1000.00], [ 3.782456360E+00, -2.996734160E-03,
9.847302010E-06, -9.681295090E-09, 3.243728370E-12, 9.847302010E-06, -9.681295090E-09, 3.243728370E-12,
-1.063943560E+03, 3.657675730E+00] ), -1.063943560E+03, 3.657675730E+00] ),
NASA( [ 1000.00, 3500.00], [ 3.282537840E+00, 1.483087540E-03, NASA( [ 1000.00, 3500.00], [ 3.282537840E+00, 1.483087540E-03,
-7.579666690E-07, 2.094705550E-10, -2.167177940E-14, -7.579666690E-07, 2.094705550E-10, -2.167177940E-14,
-1.088457720E+03, 5.453231290E+00] ) -1.088457720E+03, 5.453231290E+00] )
), ),
@ -61,10 +61,10 @@ species(name = "O2",
species(name = "N", species(name = "N",
atoms = " N:1 ", atoms = " N:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
5.610463700E+04, 4.193908700E+00] ), 5.610463700E+04, 4.193908700E+00] ),
NASA( [ 1000.00, 6000.00], [ 2.415942900E+00, 1.748906500E-04, NASA( [ 1000.00, 6000.00], [ 2.415942900E+00, 1.748906500E-04,
-1.190236900E-07, 3.022624500E-11, -2.036098200E-15, -1.190236900E-07, 3.022624500E-11, -2.036098200E-15,
5.613377300E+04, 4.649609600E+00] ) 5.613377300E+04, 4.649609600E+00] )
), ),
@ -78,10 +78,10 @@ species(name = "N",
species(name = "NO", species(name = "NO",
atoms = " N:1 O:1 ", atoms = " N:1 O:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ 4.218476300E+00, -4.638976000E-03, NASA( [ 200.00, 1000.00], [ 4.218476300E+00, -4.638976000E-03,
1.104102200E-05, -9.336135400E-09, 2.803577000E-12, 1.104102200E-05, -9.336135400E-09, 2.803577000E-12,
9.844623000E+03, 2.280846400E+00] ), 9.844623000E+03, 2.280846400E+00] ),
NASA( [ 1000.00, 6000.00], [ 3.260605600E+00, 1.191104300E-03, NASA( [ 1000.00, 6000.00], [ 3.260605600E+00, 1.191104300E-03,
-4.291704800E-07, 6.945766900E-11, -4.033609900E-15, -4.291704800E-07, 6.945766900E-11, -4.033609900E-15,
9.920974600E+03, 6.369302700E+00] ) 9.920974600E+03, 6.369302700E+00] )
), ),
@ -97,10 +97,10 @@ species(name = "NO",
species(name = "NO2", species(name = "NO2",
atoms = " N:1 O:2 ", atoms = " N:1 O:2 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ 3.944031200E+00, -1.585429000E-03, NASA( [ 200.00, 1000.00], [ 3.944031200E+00, -1.585429000E-03,
1.665781200E-05, -2.047542600E-08, 7.835056400E-12, 1.665781200E-05, -2.047542600E-08, 7.835056400E-12,
2.896617900E+03, 6.311991700E+00] ), 2.896617900E+03, 6.311991700E+00] ),
NASA( [ 1000.00, 6000.00], [ 4.884754200E+00, 2.172395600E-03, NASA( [ 1000.00, 6000.00], [ 4.884754200E+00, 2.172395600E-03,
-8.280690600E-07, 1.574751000E-10, -1.051089500E-14, -8.280690600E-07, 1.574751000E-10, -1.051089500E-14,
2.316498300E+03, -1.174169500E-01] ) 2.316498300E+03, -1.174169500E-01] )
), ),
@ -115,10 +115,10 @@ species(name = "NO2",
species(name = "N2O", species(name = "N2O",
atoms = " N:2 O:1 ", atoms = " N:2 O:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ 2.257150200E+00, 1.130472800E-02, NASA( [ 200.00, 1000.00], [ 2.257150200E+00, 1.130472800E-02,
-1.367131900E-05, 9.681980600E-09, -2.930718200E-12, -1.367131900E-05, 9.681980600E-09, -2.930718200E-12,
8.741774400E+03, 1.075799200E+01] ), 8.741774400E+03, 1.075799200E+01] ),
NASA( [ 1000.00, 6000.00], [ 4.823072900E+00, 2.627025100E-03, NASA( [ 1000.00, 6000.00], [ 4.823072900E+00, 2.627025100E-03,
-9.585087400E-07, 1.600071200E-10, -9.775230300E-15, -9.585087400E-07, 1.600071200E-10, -9.775230300E-15,
8.073404800E+03, -2.201720700E+00] ) 8.073404800E+03, -2.201720700E+00] )
), ),
@ -133,10 +133,10 @@ species(name = "N2O",
species(name = "N2", species(name = "N2",
atoms = " N:2 ", atoms = " N:2 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 3.298677000E+00, 1.408240400E-03, NASA( [ 300.00, 1000.00], [ 3.298677000E+00, 1.408240400E-03,
-3.963222000E-06, 5.641515000E-09, -2.444854000E-12, -3.963222000E-06, 5.641515000E-09, -2.444854000E-12,
-1.020899900E+03, 3.950372000E+00] ), -1.020899900E+03, 3.950372000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.926640000E+00, 1.487976800E-03, NASA( [ 1000.00, 5000.00], [ 2.926640000E+00, 1.487976800E-03,
-5.684760000E-07, 1.009703800E-10, -6.753351000E-15, -5.684760000E-07, 1.009703800E-10, -6.753351000E-15,
-9.227977000E+02, 5.980528000E+00] ) -9.227977000E+02, 5.980528000E+00] )
), ),
@ -152,10 +152,10 @@ species(name = "N2",
species(name = "AR", species(name = "AR",
atoms = " Ar:1 ", atoms = " Ar:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ), -7.453750000E+02, 4.366000000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ) -7.453750000E+02, 4.366000000E+00] )
), ),
@ -169,7 +169,7 @@ species(name = "AR",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction 1 # Reaction 1

View file

@ -4,6 +4,41 @@ END
SPECIES SPECIES
O O2 N NO NO2 N2O N2 AR O O2 N NO NO2 N2O N2 AR
END END
THERMO ALL
300.000 1000.000 5000.000
O L 1/90O 1 00 00 00G 200.000 3500.000 1000.000 1
2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15 2
2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06 3
-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00 4
O2 TPIS89O 2 00 00 00G 200.000 3500.000 1000.000 1
3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14 2
-1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06 3
-9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00 4
N L 6/88N 1 0 0 0G 200.000 6000.000 1000.000 1
0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14 2
0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01 4
NO RUS 78N 1O 1 0 0G 200.000 6000.000 1000.000 1
0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14 2
0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04 3
-0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01 4
NO2 L 7/88N 1O 2 0 0G 200.000 6000.000 1000.000 1
0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13 2
0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04 3
-0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01 4
N2O L 7/88N 2O 1 0 0G 200.000 6000.000 1000.000 1
0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14 2
0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04 3
0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02 4
N2 121286N 2 G 300.000 5000.000 1000.000 1
0.02926640E+02 0.14879768E-02-0.05684760E-05 0.10097038E-09-0.06753351E-13 2
-0.09227977E+04 0.05980528E+02 0.03298677E+02 0.14082404E-02-0.03963222E-04 3
0.05641515E-07-0.02444854E-10-0.10208999E+04 0.03950372E+02 4
AR 120186AR 1 G 300.000 5000.000 1000.000 1
0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
-0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02 4
END
REACTIONS REACTIONS
2O+M<=>O2+M 1.200E+17 -1.000 .00 2O+M<=>O2+M 1.200E+17 -1.000 .00
AR/.83/ AR/.83/

View file

@ -7,7 +7,7 @@ units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
ideal_gas(name = "airNASA9", ideal_gas(name = "airNASA9",
elements = " O N E ", elements = " O N E ",
species = """ N2 O2 NO N O N2+ O2+ NO+ N+ O+ species = """ N2 O2 NO N O N2+ O2+ NO+ N+ O+
e- """, e- """,
reactions = "all", reactions = "all",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
@ -16,7 +16,7 @@ ideal_gas(name = "airNASA9",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Species data # Species data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "N2", species(name = "N2",
@ -198,5 +198,5 @@ species(name = "e-",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------

View file

@ -1,317 +0,0 @@
<?xml version="1.0"?>
<ctml>
<validate reactions="yes" species="yes"/>
<!-- phase airNASA9 -->
<phase dim="3" id="airNASA9">
<elementArray datasrc="elements.xml">O N E </elementArray>
<speciesArray datasrc="#species_data">
N2 O2 NO N O N2+ O2+ NO+ N+ O+
e- </speciesArray>
<reactionArray datasrc="#reaction_data"/>
<state>
<temperature units="K">300.0</temperature>
<pressure units="Pa">101325.0</pressure>
</state>
<thermo model="IdealGas"/>
<kinetics model="GasKinetics"/>
<transport model="None"/>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species N2 -->
<species name="N2">
<atomArray>N:2 </atomArray>
<note>Ref-Elm. Gurvich,1978 pt1 p280 pt2 p207. </note>
<thermo>
<NASA9 Tmax="1000.0" Tmin="200.0" P0="100000.0">
<floatArray name="coeffs" size="9">
2.210371497E+04, -3.818461820E+02, 6.082738360E+00, -8.530914410E-03,
1.384646189E-05, -9.625793620E-09, 2.519705809E-12, 7.108460860E+02,
-1.076003744E+01</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
5.877124060E+05, -2.239249073E+03, 6.066949220E+00, -6.139685500E-04,
1.491806679E-07, -1.923105485E-11, 1.061954386E-15, 1.283210415E+04,
-1.586640027E+01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
8.310139160E+08, -6.420733540E+05, 2.020264635E+02, -3.065092046E-02,
2.486903333E-06, -9.705954110E-11, 1.437538881E-15, 4.938707040E+06,
-1.672099740E+03</floatArray>
</NASA9>
</thermo>
</species>
<!-- species O2 -->
<species name="O2">
<atomArray>O:2 </atomArray>
<note>Ref-Elm. Gurvich,1989 pt1 p94 pt2 p9. </note>
<thermo>
<NASA9 Tmax="1000.0" Tmin="200.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-3.425563420E+04, 4.847000970E+02, 1.119010961E+00, 4.293889240E-03,
-6.836300520E-07, -2.023372700E-09, 1.039040018E-12, -3.391454870E+03,
1.849699470E+01</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-1.037939022E+06, 2.344830282E+03, 1.819732036E+00, 1.267847582E-03,
-2.188067988E-07, 2.053719572E-11, -8.193467050E-16, -1.689010929E+04,
1.738716506E+01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
4.975294300E+08, -2.866106874E+05, 6.690352250E+01, -6.169959020E-03,
3.016396027E-07, -7.421416600E-12, 7.278175770E-17, 2.293554027E+06,
-5.530621610E+02</floatArray>
</NASA9>
</thermo>
</species>
<!-- species NO -->
<species name="NO">
<atomArray>O:1 N:1 </atomArray>
<note>Gurvich,1978,1989 pt1 p326 pt2 p203. </note>
<thermo>
<NASA9 Tmax="1000.0" Tmin="200.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-1.143916503E+04, 1.536467592E+02, 3.431468730E+00, -2.668592368E-03,
8.481399120E-06, -7.685111050E-09, 2.386797655E-12, 9.098214410E+03,
6.728725490E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
2.239018716E+05, -1.289651623E+03, 5.433936030E+00, -3.656034900E-04,
9.880966450E-08, -1.416076856E-11, 9.380184620E-16, 1.750317656E+04,
-8.501669090E+00</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-9.575303540E+08, 5.912434480E+05, -1.384566826E+02, 1.694339403E-02,
-1.007351096E-06, 2.912584076E-11, -3.295109350E-16, -4.677501240E+06,
1.242081216E+03</floatArray>
</NASA9>
</thermo>
</species>
<!-- species N -->
<species name="N">
<atomArray>N:1 </atomArray>
<note>Hf:Cox,1989. Moore,1975. Gordon,1999. </note>
<thermo>
<NASA9 Tmax="1000.0" Tmin="200.0" P0="100000.0">
<floatArray name="coeffs" size="9">
0.000000000E+00, 0.000000000E+00, 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 5.610463780E+04,
4.193905036E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
8.876501380E+04, -1.071231500E+02, 2.362188287E+00, 2.916720081E-04,
-1.729515100E-07, 4.012657880E-11, -2.677227571E-15, 5.697351330E+04,
4.865231506E+00</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
5.475181050E+08, -3.107574980E+05, 6.916782740E+01, -6.847988130E-03,
3.827572400E-07, -1.098367709E-11, 1.277986024E-16, 2.550585618E+06,
-5.848769753E+02</floatArray>
</NASA9>
</thermo>
</species>
<!-- species O -->
<species name="O">
<atomArray>O:1 </atomArray>
<note>D0(O2):Brix,1954. Moore,1976. Gordon,1999. </note>
<thermo>
<NASA9 Tmax="1000.0" Tmin="200.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-7.953611300E+03, 1.607177787E+02, 1.966226438E+00, 1.013670310E-03,
-1.110415423E-06, 6.517507500E-10, -1.584779251E-13, 2.840362437E+04,
8.404241820E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
2.619020262E+05, -7.298722030E+02, 3.317177270E+00, -4.281334360E-04,
1.036104594E-07, -9.438304330E-12, 2.725038297E-16, 3.392428060E+04,
-6.679585350E-01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
1.779004264E+08, -1.082328257E+05, 2.810778365E+01, -2.975232262E-03,
1.854997534E-07, -5.796231540E-12, 7.191720164E-17, 8.890942630E+05,
-2.181728151E+02</floatArray>
</NASA9>
</thermo>
</species>
<!-- species N2+ -->
<species name="N2+">
<atomArray>E:-1 N:2 </atomArray>
<note>Gurvich,1989 pt1 p323 pt2 p200. </note>
<charge>1</charge>
<thermo>
<NASA9 Tmax="1000.0" Tmin="298.14999999999998" P0="100000.0">
<floatArray name="coeffs" size="9">
-3.474047470E+04, 2.696222703E+02, 3.164916370E+00, -2.132239781E-03,
6.730476400E-06, -5.637304970E-09, 1.621756000E-12, 1.790004424E+05,
6.832974166E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-2.845599002E+06, 7.058893030E+03, -2.884886385E+00, 3.068677059E-03,
-4.361652310E-07, 2.102514545E-11, 5.411996470E-16, 1.340388483E+05,
5.090897022E+01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-3.712829770E+08, 3.139287234E+05, -9.603518050E+01, 1.571193286E-02,
-1.175065525E-06, 4.144441230E-11, -5.621893090E-16, -2.217361867E+06,
8.436270947E+02</floatArray>
</NASA9>
</thermo>
</species>
<!-- species O2+ -->
<species name="O2+">
<atomArray>E:-1 O:2 </atomArray>
<note>Gurvich,1989 pt1 p98 pt2 p11. </note>
<charge>1</charge>
<thermo>
<NASA9 Tmax="1000.0" Tmin="298.14999999999998" P0="100000.0">
<floatArray name="coeffs" size="9">
-8.607205450E+04, 1.051875934E+03, -5.432380470E-01, 6.571166540E-03,
-3.274263750E-06, 5.940645340E-11, 3.238784790E-13, 1.345544668E+05,
2.902709750E+01</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
7.384654880E+04, -8.459559540E+02, 4.985164160E+00, -1.611010890E-04,
6.427083990E-08, -1.504939874E-11, 1.578465409E-15, 1.446321044E+05,
-5.811230650E+00</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-1.562125524E+09, 1.161406778E+06, -3.302504720E+02, 4.710937520E-02,
-3.354461380E-06, 1.167968599E-10, -1.589754791E-15, -8.857866270E+06,
2.852035602E+03</floatArray>
</NASA9>
</thermo>
</species>
<!-- species NO+ -->
<species name="NO+">
<atomArray>E:-1 O:1 N:1 </atomArray>
<note>Cp,S,IP(NO): Gurvich,1989 pt1 p330 pt2 p205. </note>
<charge>1</charge>
<thermo>
<NASA9 Tmax="1000.0" Tmin="298.14999999999998" P0="100000.0">
<floatArray name="coeffs" size="9">
1.398106635E+03, -1.590446941E+02, 5.122895400E+00, -6.394388620E-03,
1.123918342E-05, -7.988581260E-09, 2.107383677E-12, 1.187495132E+05,
-4.398433810E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
6.069876900E+05, -2.278395427E+03, 6.080324670E+00, -6.066847580E-04,
1.432002611E-07, -1.747990522E-11, 8.935014060E-16, 1.322709615E+05,
-1.519880037E+01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
2.676400347E+09, -1.832948690E+06, 5.099249390E+02, -7.113819280E-02,
5.317659880E-06, -1.963208212E-10, 2.805268230E-15, 1.443308939E+07,
-4.324044462E+03</floatArray>
</NASA9>
</thermo>
</species>
<!-- species N+ -->
<species name="N+">
<atomArray>E:-1 N:1 </atomArray>
<note>Moore,1975. Gordon,1999. </note>
<charge>1</charge>
<thermo>
<NASA9 Tmax="1000.0" Tmin="298.14999999999998" P0="100000.0">
<floatArray name="coeffs" size="9">
5.237079210E+03, 2.299958315E+00, 2.487488821E+00, 2.737490756E-05,
-3.134447576E-08, 1.850111332E-11, -4.447350984E-15, 2.256284738E+05,
5.076830786E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
2.904970374E+05, -8.557908610E+02, 3.477389290E+00, -5.288267190E-04,
1.352350307E-07, -1.389834122E-11, 5.046166279E-16, 2.310809984E+05,
-1.994146545E+00</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
1.646092148E+07, -1.113165218E+04, 4.976986640E+00, -2.005393583E-04,
1.022481356E-08, -2.691430863E-13, 3.539931593E-18, 3.136284696E+05,
-1.706646380E+01</floatArray>
</NASA9>
</thermo>
</species>
<!-- species O+ -->
<species name="O+">
<atomArray>E:-1 O:1 </atomArray>
<note>Martin,W.C.,1993. Gordon,1999. </note>
<charge>1</charge>
<thermo>
<NASA9 Tmax="1000.0" Tmin="298.14999999999998" P0="100000.0">
<floatArray name="coeffs" size="9">
0.000000000E+00, 0.000000000E+00, 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 1.879352842E+05,
4.393376760E+00</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-2.166513208E+05, 6.665456150E+02, 1.702064364E+00, 4.714992810E-04,
-1.427131823E-07, 2.016595903E-11, -9.107157762E-16, 1.837191966E+05,
1.005690382E+01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
-2.143835383E+08, 1.469518523E+05, -3.680864540E+01, 5.036164540E-03,
-3.087873854E-07, 9.186834870E-12, -1.074163268E-16, -9.614208960E+05,
3.426193080E+02</floatArray>
</NASA9>
</thermo>
</species>
<!-- species e- -->
<species name="e-">
<atomArray>E:1 </atomArray>
<note>Ref-Species. Chase,1998 3/82. </note>
<charge>-1</charge>
<thermo>
<NASA9 Tmax="1000.0" Tmin="298.14999999999998" P0="100000.0">
<floatArray name="coeffs" size="9">
0.000000000E+00, 0.000000000E+00, 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, -7.453750000E+02,
-1.172081224E+01</floatArray>
</NASA9>
<NASA9 Tmax="6000.0" Tmin="1000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
0.000000000E+00, 0.000000000E+00, 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, -7.453750000E+02,
-1.172081224E+01</floatArray>
</NASA9>
<NASA9 Tmax="20000.0" Tmin="6000.0" P0="100000.0">
<floatArray name="coeffs" size="9">
0.000000000E+00, 0.000000000E+00, 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, -7.453750000E+02,
-1.172081224E+01</floatArray>
</NASA9>
</thermo>
</species>
</speciesData>
<reactionData id="reaction_data"/>
</ctml>

View file

@ -18,16 +18,16 @@ ideal_gas(name = "argon",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Species data # Species data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "AR", species(name = "AR",
atoms = " Ar:1 ", atoms = " Ar:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ), -7.453750000E+02, 4.366000000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ) -7.453750000E+02, 4.366000000E+00] )
), ),
@ -41,5 +41,5 @@ species(name = "AR",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------

File diff suppressed because it is too large Load diff

View file

@ -1,96 +1,107 @@
# simplified version of Harris and Goodwin diamond (100) growth
# mechanism, J. Phys. Chem., 1993. # Trough mechanism from 'S. J. Harris and D. G. Goodwin, 'Growth on
# the reconstructed diamond (100) surface, 'J. Phys. Chem. vol. 97,
# 23-28 (1993). reactions a - t are taken directly from Table II,
# with thermochemistry from Table IV. Reaction u is added here.
units(length = 'cm', quantity = 'mol', act_energy = 'kcal/mol') units(length = 'cm', quantity = 'mol', act_energy = 'kcal/mol')
#------------- the gas -------------------------------------
ideal_gas(name = 'gas', ideal_gas(name = 'gas',
elements = 'H C', elements = 'H C',
species = 'gri30: H H2 CH3 CH4', species = 'gri30: H H2 CH3 CH4',
initial_state = state(temperature = 1200.0, initial_state = state(
pressure = 1.0e3, temperature = 1200.0,
mole_fractions = 'H:0.002, H2:1, CH4:0.01, CH3:0.0002')) pressure = 20.0 * OneAtm / 760.0,
mole_fractions = 'H:0.002, H2:0.988, CH3:0.0002, CH4:0.01',
)
)
#------------- bulk diamond -------------------------------------
stoichiometric_solid(name = 'diamond', stoichiometric_solid(name = 'diamond',
elements = 'C', elements = 'C',
density = (3.52, 'g/cm3'), density = (3.52, 'g/cm3'),
species = 'C(d)') species = 'C(d)')
species(name = 'C(d)',
atoms = 'C:1') # no thermo needed (reaction is irreversible)
#------------- the diamond surface -------------------------------------
ideal_interface(name = 'diamond_100', ideal_interface(name = 'diamond_100',
elements = 'H C', elements = 'H C',
species = 'c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B ', species = 'c6HH c6H* c6*H c6** c6HM c6HM* c6*M c6B ',
reactions = 'all', reactions = 'all',
phases = 'gas diamond', phases = 'gas diamond',
site_density = (3.0e-9, 'mol/cm2'), site_density = (3.0E-9, 'mol/cm2'),
initial_state = state(temperature = 1200.0, initial_state = state(temperature = 1200.0,
coverages = 'c6H*:0.1, c6HH:0.9')) coverages = 'c6H*:0.1, c6HH:0.9'))
species(name = 'C(d)',
atoms = 'C:1',
thermo = const_cp() )
# an empty surface site # an empty surface site
species(name = 'c6H*', species(name = 'c6H*',
atoms = 'H:1', atoms = 'H:1',
thermo = const_cp(h0 = (51.7, 'kcal/mol'), s0 = (19.5, 'cal/mol/K') ) ) thermo = const_cp(h0 = (51.7, 'kcal/mol'),
s0 = (19.5, 'cal/mol/K')))
species(name = 'c6*H', species(name = 'c6*H',
atoms = 'H:1', atoms = 'H:1',
thermo = const_cp(h0 = (46.1, 'kcal/mol'), s0 = (19.9, 'cal/mol/K') ) ) thermo = const_cp(h0 = (46.1, 'kcal/mol'),
s0 = (19.9, 'cal/mol/K')))
# a hydrogen-terminated site # a hydrogen-terminated site
species(name = 'c6HH', species(name = 'c6HH',
atoms = 'H:2', atoms = 'H:2',
thermo = const_cp(t0 = 1200.0, h0 = (11.4, 'kcal/mol'), thermo = const_cp(h0 = (11.4, 'kcal/mol'),
s0 = (21.0, 'cal/mol/K')) s0 = (21.0, 'cal/mol/K')))
)
species(name = 'c6HM', species(name = 'c6HM',
atoms = 'C:1 H:4', atoms = 'C:1 H:4',
thermo = const_cp(h0 = (26.9, 'kcal/mol'), thermo = const_cp(h0 = (26.9, 'kcal/mol'),
s0 = (40.3, 'cal/mol/K') ) s0 = (40.3, 'cal/mol/K')))
)
species(name = 'c6HM*', species(name = 'c6HM*',
atoms = 'C:1 H:3', atoms = 'C:1 H:3',
thermo = const_cp(h0 = (65.8, 'kcal/mol'), thermo = const_cp(h0 = (65.8, 'kcal/mol'),
s0 = (40.1, 'cal/mol/K') ) s0 = (40.1, 'cal/mol/K')))
)
species(name = 'c6*M', species(name = 'c6*M',
atoms = 'C:1 H:3', atoms = 'C:1 H:3',
thermo = const_cp(h0 = (53.3, 'kcal/mol'), thermo = const_cp(h0 = (53.3, 'kcal/mol'),
s0 = (38.9, 'cal/mol/K') ) s0 = (38.9, 'cal/mol/K')))
)
species(name = 'c6**', species(name = 'c6**',
atoms = 'C:0', atoms = 'C:0',
thermo = const_cp(h0 = (90.0, 'kcal/mol'), thermo = const_cp(h0 = (90.0, 'kcal/mol'),
s0 = (18.4, 'cal/mol/K') ) s0 = (18.4, 'cal/mol/K')))
)
species(name = 'c6B', species(name = 'c6B',
atoms = 'H:2 C:1', atoms = 'H:2 C:1',
thermo = const_cp(h0 = (40.9, 'kcal/mol'), thermo = const_cp(h0 = (40.9, 'kcal/mol'),
s0 = (26.9, 'cal/mol/K') ) ) s0 = (26.9, 'cal/mol/K')))
surface_reaction('c6HH + H <=> c6H* + H2', [1.3e14, 0.0, 7.3]) # a surface_reaction('c6HH + H <=> c6H* + H2', [1.3E14, 0.0, 7.3]) # a
surface_reaction('c6H* + H <=> c6HH', [1.0e13, 0.0, 0.0]) # b surface_reaction('c6H* + H <=> c6HH', [1.0E13, 0.0, 0.0]) # b
surface_reaction('c6H* + CH3 <=> c6HM', [5.0e12, 0.0, 0.0]) # c surface_reaction('c6H* + CH3 <=> c6HM', [5.0E12, 0.0, 0.0]) # c
surface_reaction('c6HM + H <=> c6*M + H2', [1.3e14, 0.0, 7.3]) # d surface_reaction('c6HM + H <=> c6*M + H2', [1.3E14, 0.0, 7.3]) # d
surface_reaction('c6*M + H <=> c6HM', [1.0e13, 0.0, 0.0]) # e surface_reaction('c6*M + H <=> c6HM', [1.0E13, 0.0, 0.0]) # e
surface_reaction('c6HM + H <=> c6HM* + H2', [2.8e7, 2.0, 7.7]) # f surface_reaction('c6HM + H <=> c6HM* + H2', [2.8E7, 2.0, 7.7]) # f
surface_reaction('c6HM* + H <=> c6HM', [1.0e13, 0.0, 0.0]) # g surface_reaction('c6HM* + H <=> c6HM', [1.0E13, 0.0, 0.0]) # g
surface_reaction('c6HM* <=> c6*M', [1.0e8, 0.0, 0.0]) # h surface_reaction('c6HM* <=> c6*M', [1.0E8, 0.0, 0.0]) # h
surface_reaction('c6HM* + H <=> c6H* + CH3', [3.0e13, 0.0, 0.0]) # i surface_reaction('c6HM* + H <=> c6H* + CH3', [3.0E13, 0.0, 0.0]) # i
surface_reaction('c6HM* + H <=> c6B + H2', [1.3e14, 0.0, 7.3]) # k surface_reaction('c6HM* + H <=> c6B + H2', [1.3E14, 0.0, 7.3]) # k
surface_reaction('c6*M + H <=> c6B + H2', [2.8e7, 2.0, 7.7]) # l surface_reaction('c6*M + H <=> c6B + H2', [2.8E7, 2.0, 7.7]) # l
surface_reaction('c6HH + H <=> c6*H + H2', [1.3e14, 0.0, 7.3]) # m surface_reaction('c6HH + H <=> c6*H + H2', [1.3E14, 0.0, 7.3]) # m
surface_reaction('c6*H + H <=> c6HH', [1.0e13, 0.0, 0.0]) # n surface_reaction('c6*H + H <=> c6HH', [1.0E13, 0.0, 0.0]) # m
surface_reaction('c6H* + H <=> c6** + H2', [1.3e14, 0.0, 7.3]) # o surface_reaction('c6H* + H <=> c6** + H2', [1.3E14, 0.0, 7.3]) # o
surface_reaction('c6** + H <=> c6H*', [1.0e13, 0.0, 0.0]) # p surface_reaction('c6** + H <=> c6H*', [1.0E13, 0.0, 0.0]) # p
surface_reaction('c6*H + H <=> c6** + H2', [4.5e6, 2.0, 5.0]) # q surface_reaction('c6*H + H <=> c6** + H2', [4.5E6, 2.0, 5.0]) # q
surface_reaction('c6** + H <=> c6*H', [1.0e13, 0.0, 0.0]) # r surface_reaction('c6** + H <=> c6*H', [1.0E13, 0.0, 0.0]) # r
surface_reaction('c6** + CH3 <=> c6*M', [5.0e12, 0.0, 0.0]) # s surface_reaction('c6** + CH3 <=> c6*M', [5.0E12, 0.0, 0.0]) # s
surface_reaction('c6H* <=> c6*H', [1.0e8, 0.0, 0.0]) # t surface_reaction('c6H* <=> c6*H', [1.0E8, 0.0, 0.0]) # t
surface_reaction('c6B => c6HH + C(d)', [1.0e9, 0.0, 0.0])
# reaction to add new carbon atom to bulk and regenerate a new site
#
surface_reaction('c6B => c6HH + C(d)', [1.0E9, 0.0, 0.0]) # u

File diff suppressed because it is too large Load diff

View file

@ -1,27 +0,0 @@
<?xml version="1.0"?>
<ctml>
<!-- GRI-Mech 3.0 using the GasKinetics kinetics manager.-->
<gas id="gri30">
<phase idRef="gri30_phase" src="gri30.xml"/>
<kinetics idRef="gri30_kinetics" src="gri30.xml"/>
</gas>
<!-- GRI-Mech 3.0 using the hard-wired kinetics manager.-->
<gas id="gri30_hw">
<phase idRef="gri30_phase" src="gri30.xml"/>
<kinetics idRef="gri30_kinetics" type="GRI30" src="gri30.xml"/>
</gas>
<!-- An edited version of GRI-Mech 3.0 that includes only -->
<!-- species and reactions in the O/N/AR system. -->
<gas id="air" src="air.xml">
<phase idRef="air_phase" src="air.xml"/>
<kinetics idRef="air_kinetics" src="air.xml"/>
</gas>
</ctml>

View file

@ -10,10 +10,10 @@ stoichiometric_solid(name = "graphite",
species(name = "C(gr)", species(name = "C(gr)",
atoms = " C:1 ", atoms = " C:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ -3.108720720E-01, 4.403536860E-03, NASA( [ 200.00, 1000.00], [ -3.108720720E-01, 4.403536860E-03,
1.903941180E-06, -6.385469660E-09, 2.989642480E-12, 1.903941180E-06, -6.385469660E-09, 2.989642480E-12,
-1.086507940E+02, 1.113829530E+00] ), -1.086507940E+02, 1.113829530E+00] ),
NASA( [ 1000.00, 5000.00], [ 1.455718290E+00, 1.717022160E-03, NASA( [ 1000.00, 5000.00], [ 1.455718290E+00, 1.717022160E-03,
-6.975627860E-07, 1.352770320E-10, -9.675906520E-15, -6.975627860E-07, 1.352770320E-10, -9.675906520E-15,
-6.951388140E+02, -8.525830330E+00] ) -6.951388140E+02, -8.525830330E+00] )
) )

View file

@ -16,7 +16,6 @@ ideal_gas(name = "gri30",
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all", reactions = "all",
kinetics = "GRI30",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
@ -29,7 +28,6 @@ ideal_gas(name = "gri30_mix",
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all", reactions = "all",
kinetics = "GRI30",
transport = "Mix", transport = "Mix",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
@ -44,7 +42,6 @@ ideal_gas(name = "gri30_multi",
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all", reactions = "all",
kinetics = "GRI30",
transport = "Multi", transport = "Multi",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
@ -120,7 +117,7 @@ species(name = "O2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.46, diam = 3.458,
well_depth = 107.40, well_depth = 107.40,
polar = 1.60, polar = 1.60,
rot_relax = 3.80), rot_relax = 3.80),
@ -156,9 +153,9 @@ species(name = "H2O",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 2.60, diam = 2.605,
well_depth = 572.40, well_depth = 572.40,
dipole = 1.84, dipole = 1.844,
rot_relax = 4.00), rot_relax = 4.00),
note = "L 8/89" note = "L 8/89"
) )
@ -175,7 +172,7 @@ species(name = "HO2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.46, diam = 3.458,
well_depth = 107.40, well_depth = 107.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 5/89" note = "L 5/89"
@ -193,7 +190,7 @@ species(name = "H2O2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.46, diam = 3.458,
well_depth = 107.40, well_depth = 107.40,
rot_relax = 3.80), rot_relax = 3.80),
note = "L 7/88" note = "L 7/88"
@ -211,7 +208,7 @@ species(name = "C",
), ),
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.298,
well_depth = 71.40), well_depth = 71.40),
note = "L11/88" note = "L11/88"
) )
@ -296,7 +293,7 @@ species(name = "CH4",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.75, diam = 3.746,
well_depth = 141.40, well_depth = 141.40,
polar = 2.60, polar = 2.60,
rot_relax = 13.00), rot_relax = 13.00),
@ -334,7 +331,7 @@ species(name = "CO2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.76, diam = 3.763,
well_depth = 244.00, well_depth = 244.00,
polar = 2.65, polar = 2.65,
rot_relax = 2.10), rot_relax = 2.10),
@ -426,7 +423,7 @@ species(name = "CH3OH",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.63, diam = 3.626,
well_depth = 481.80, well_depth = 481.80,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 8/88" note = "L 8/88"
@ -498,7 +495,7 @@ species(name = "C2H4",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.971,
well_depth = 280.80, well_depth = 280.80,
rot_relax = 1.50), rot_relax = 1.50),
note = "L 1/91" note = "L 1/91"
@ -516,7 +513,7 @@ species(name = "C2H5",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.30, diam = 4.302,
well_depth = 252.30, well_depth = 252.30,
rot_relax = 1.50), rot_relax = 1.50),
note = "L12/92" note = "L12/92"
@ -534,7 +531,7 @@ species(name = "C2H6",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.30, diam = 4.302,
well_depth = 252.30, well_depth = 252.30,
rot_relax = 1.50), rot_relax = 1.50),
note = "L 8/88" note = "L 8/88"
@ -606,7 +603,7 @@ species(name = "N",
), ),
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.298,
well_depth = 71.40), well_depth = 71.40),
note = "L 6/88" note = "L 6/88"
) )
@ -679,7 +676,7 @@ species(name = "NNH",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.80, diam = 3.798,
well_depth = 71.40, well_depth = 71.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "T07/93" note = "T07/93"
@ -697,7 +694,7 @@ species(name = "NO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.62, diam = 3.621,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00), rot_relax = 4.00),
@ -734,7 +731,7 @@ species(name = "N2O",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 7/88" note = "L 7/88"
@ -752,7 +749,7 @@ species(name = "HNO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.49, diam = 3.492,
well_depth = 116.70, well_depth = 116.70,
rot_relax = 1.00), rot_relax = 1.00),
note = "And93" note = "And93"
@ -770,7 +767,7 @@ species(name = "CN",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.86, diam = 3.856,
well_depth = 75.00, well_depth = 75.00,
rot_relax = 1.00), rot_relax = 1.00),
note = "HBH92" note = "HBH92"
@ -842,7 +839,7 @@ species(name = "HCNO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "BDEA94" note = "BDEA94"
@ -860,7 +857,7 @@ species(name = "HOCN",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "BDEA94" note = "BDEA94"
@ -878,7 +875,7 @@ species(name = "HNCO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "BDEA94" note = "BDEA94"
@ -896,7 +893,7 @@ species(name = "NCO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "EA 93" note = "EA 93"
@ -914,7 +911,7 @@ species(name = "N2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.62, diam = 3.621,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00), rot_relax = 4.00),
@ -950,7 +947,7 @@ species(name = "C3H7",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.98, diam = 4.982,
well_depth = 266.80, well_depth = 266.80,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 9/84" note = "L 9/84"
@ -968,7 +965,7 @@ species(name = "C3H8",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.98, diam = 4.982,
well_depth = 266.80, well_depth = 266.80,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 4/85" note = "L 4/85"
@ -2017,10 +2014,10 @@ reaction( "C2H3 + O2 <=> O + CH2CHO", [3.03000E+11, 0.29, 11])
reaction( "C2H3 + O2 <=> HO2 + C2H2", [1.33700E+06, 1.61, -384]) reaction( "C2H3 + O2 <=> HO2 + C2H2", [1.33700E+06, 1.61, -384])
# Reaction 296 # Reaction 296
reaction( "O + CH3CHO <=> OH + CH2CHO", [5.84000E+12, 0, 1808]) reaction( "O + CH3CHO <=> OH + CH2CHO", [2.920000E+12, 0, 1808])
# Reaction 297 # Reaction 297
reaction( "O + CH3CHO => OH + CH3 + CO", [5.84000E+12, 0, 1808]) reaction( "O + CH3CHO => OH + CH3 + CO", [2.920000E+12, 0, 1808])
# Reaction 298 # Reaction 298
reaction( "O2 + CH3CHO => HO2 + CH3 + CO", [3.01000E+13, 0, 39150]) reaction( "O2 + CH3CHO => HO2 + CH3 + CO", [3.01000E+13, 0, 39150])

View file

@ -1,4 +1,4 @@
! GRI-Mech Version 3.0 3/12/99 CHEMKIN-II format ! GRI-Mech Version 3.0 7/30/99 CHEMKIN-II format
! See README30 file at anonymous FTP site unix.sri.com, directory gri; ! See README30 file at anonymous FTP site unix.sri.com, directory gri;
! WorldWideWeb home page http://www.me.berkeley.edu/gri_mech/ or ! WorldWideWeb home page http://www.me.berkeley.edu/gri_mech/ or
! through http://www.gri.org , under 'Basic Research', ! through http://www.gri.org , under 'Basic Research',
@ -15,221 +15,9 @@ NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 HCN H2CN HCNN HCNO HOCN HNCO NCO N2
AR C3H7 C3H8 CH2CHO CH3CHO AR C3H7 C3H8 CH2CHO CH3CHO
END END
THERMO ALL !THERMO
300.000 1000.000 5000.000 ! Insert GRI-Mech thermodynamics here or use in default file
O L 1/90O 1 00 00 00G 200.000 3500.000 1000.000 1 !END
2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15 2
2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06 3
-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00 4
O2 TPIS89O 2 00 00 00G 200.000 3500.000 1000.000 1
3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14 2
-1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06 3
-9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00 4
H L 7/88H 1 00 00 00G 200.000 3500.000 1000.000 1
2.50000001E+00-2.30842973E-11 1.61561948E-14-4.73515235E-18 4.98197357E-22 2
2.54736599E+04-4.46682914E-01 2.50000000E+00 7.05332819E-13-1.99591964E-15 3
2.30081632E-18-9.27732332E-22 2.54736599E+04-4.46682853E-01 4
H2 TPIS78H 2 00 00 00G 200.000 3500.000 1000.000 1
3.33727920E+00-4.94024731E-05 4.99456778E-07-1.79566394E-10 2.00255376E-14 2
-9.50158922E+02-3.20502331E+00 2.34433112E+00 7.98052075E-03-1.94781510E-05 3
2.01572094E-08-7.37611761E-12-9.17935173E+02 6.83010238E-01 4
OH RUS 78O 1H 1 00 00G 200.000 3500.000 1000.000 1
3.09288767E+00 5.48429716E-04 1.26505228E-07-8.79461556E-11 1.17412376E-14 2
3.85865700E+03 4.47669610E+00 3.99201543E+00-2.40131752E-03 4.61793841E-06 3
-3.88113333E-09 1.36411470E-12 3.61508056E+03-1.03925458E-01 4
H2O L 8/89H 2O 1 00 00G 200.000 3500.000 1000.000 1
3.03399249E+00 2.17691804E-03-1.64072518E-07-9.70419870E-11 1.68200992E-14 2
-3.00042971E+04 4.96677010E+00 4.19864056E+00-2.03643410E-03 6.52040211E-06 3
-5.48797062E-09 1.77197817E-12-3.02937267E+04-8.49032208E-01 4
HO2 L 5/89H 1O 2 00 00G 200.000 3500.000 1000.000 1
4.01721090E+00 2.23982013E-03-6.33658150E-07 1.14246370E-10-1.07908535E-14 2
1.11856713E+02 3.78510215E+00 4.30179801E+00-4.74912051E-03 2.11582891E-05 3
-2.42763894E-08 9.29225124E-12 2.94808040E+02 3.71666245E+00 4
H2O2 L 7/88H 2O 2 00 00G 200.000 3500.000 1000.000 1
4.16500285E+00 4.90831694E-03-1.90139225E-06 3.71185986E-10-2.87908305E-14 2
-1.78617877E+04 2.91615662E+00 4.27611269E+00-5.42822417E-04 1.67335701E-05 3
-2.15770813E-08 8.62454363E-12-1.77025821E+04 3.43505074E+00 4
C L11/88C 1 00 00 00G 200.000 3500.000 1000.000 1
2.49266888E+00 4.79889284E-05-7.24335020E-08 3.74291029E-11-4.87277893E-15 2
8.54512953E+04 4.80150373E+00 2.55423955E+00-3.21537724E-04 7.33792245E-07 3
-7.32234889E-10 2.66521446E-13 8.54438832E+04 4.53130848E+00 4
CH TPIS79C 1H 1 00 00G 200.000 3500.000 1000.000 1
2.87846473E+00 9.70913681E-04 1.44445655E-07-1.30687849E-10 1.76079383E-14 2
7.10124364E+04 5.48497999E+00 3.48981665E+00 3.23835541E-04-1.68899065E-06 3
3.16217327E-09-1.40609067E-12 7.07972934E+04 2.08401108E+00 4
CH2 L S/93C 1H 2 00 00G 200.000 3500.000 1000.000 1
2.87410113E+00 3.65639292E-03-1.40894597E-06 2.60179549E-10-1.87727567E-14 2
4.62636040E+04 6.17119324E+00 3.76267867E+00 9.68872143E-04 2.79489841E-06 3
-3.85091153E-09 1.68741719E-12 4.60040401E+04 1.56253185E+00 4
CH2(S) L S/93C 1H 2 00 00G 200.000 3500.000 1000.000 1
2.29203842E+00 4.65588637E-03-2.01191947E-06 4.17906000E-10-3.39716365E-14 2
5.09259997E+04 8.62650169E+00 4.19860411E+00-2.36661419E-03 8.23296220E-06 3
-6.68815981E-09 1.94314737E-12 5.04968163E+04-7.69118967E-01 4
CH3 L11/89C 1H 3 00 00G 200.000 3500.000 1000.000 1
2.28571772E+00 7.23990037E-03-2.98714348E-06 5.95684644E-10-4.67154394E-14 2
1.67755843E+04 8.48007179E+00 3.67359040E+00 2.01095175E-03 5.73021856E-06 3
-6.87117425E-09 2.54385734E-12 1.64449988E+04 1.60456433E+00 4
CH4 L 8/88C 1H 4 00 00G 200.000 3500.000 1000.000 1
7.48514950E-02 1.33909467E-02-5.73285809E-06 1.22292535E-09-1.01815230E-13 2
-9.46834459E+03 1.84373180E+01 5.14987613E+00-1.36709788E-02 4.91800599E-05 3
-4.84743026E-08 1.66693956E-11-1.02466476E+04-4.64130376E+00 4
CO TPIS79C 1O 1 00 00G 200.000 3500.000 1000.000 1
2.71518561E+00 2.06252743E-03-9.98825771E-07 2.30053008E-10-2.03647716E-14 2
-1.41518724E+04 7.81868772E+00 3.57953347E+00-6.10353680E-04 1.01681433E-06 3
9.07005884E-10-9.04424499E-13-1.43440860E+04 3.50840928E+00 4
CO2 L 7/88C 1O 2 00 00G 200.000 3500.000 1000.000 1
3.85746029E+00 4.41437026E-03-2.21481404E-06 5.23490188E-10-4.72084164E-14 2
-4.87591660E+04 2.27163806E+00 2.35677352E+00 8.98459677E-03-7.12356269E-06 3
2.45919022E-09-1.43699548E-13-4.83719697E+04 9.90105222E+00 4
HCO L12/89H 1C 1O 1 00G 200.000 3500.000 1000.000 1
2.77217438E+00 4.95695526E-03-2.48445613E-06 5.89161778E-10-5.33508711E-14 2
4.01191815E+03 9.79834492E+00 4.22118584E+00-3.24392532E-03 1.37799446E-05 3
-1.33144093E-08 4.33768865E-12 3.83956496E+03 3.39437243E+00 4
CH2O L 8/88H 2C 1O 1 00G 200.000 3500.000 1000.000 1
1.76069008E+00 9.20000082E-03-4.42258813E-06 1.00641212E-09-8.83855640E-14 2
-1.39958323E+04 1.36563230E+01 4.79372315E+00-9.90833369E-03 3.73220008E-05 3
-3.79285261E-08 1.31772652E-11-1.43089567E+04 6.02812900E-01 4
CH2OH GUNL93C 1H 3O 1 00G 200.000 3500.000 1000.000 1
3.69266569E+00 8.64576797E-03-3.75101120E-06 7.87234636E-10-6.48554201E-14 2
-3.24250627E+03 5.81043215E+00 3.86388918E+00 5.59672304E-03 5.93271791E-06 3
-1.04532012E-08 4.36967278E-12-3.19391367E+03 5.47302243E+00 4
CH3O 121686C 1H 3O 1 G 0300.00 3000.00 1000.000 1
0.03770799E+02 0.07871497E-01-0.02656384E-04 0.03944431E-08-0.02112616E-12 2
0.12783252E+03 0.02929575E+02 0.02106204E+02 0.07216595E-01 0.05338472E-04 3
-0.07377636E-07 0.02075610E-10 0.09786011E+04 0.13152177E+02 4
CH3OH L 8/88C 1H 4O 1 00G 200.000 3500.000 1000.000 1
1.78970791E+00 1.40938292E-02-6.36500835E-06 1.38171085E-09-1.17060220E-13 2
-2.53748747E+04 1.45023623E+01 5.71539582E+00-1.52309129E-02 6.52441155E-05 3
-7.10806889E-08 2.61352698E-11-2.56427656E+04-1.50409823E+00 4
C2H L 1/91C 2H 1 00 00G 200.000 3500.000 1000.000 1
3.16780652E+00 4.75221902E-03-1.83787077E-06 3.04190252E-10-1.77232770E-14 2
6.71210650E+04 6.63589475E+00 2.88965733E+00 1.34099611E-02-2.84769501E-05 3
2.94791045E-08-1.09331511E-11 6.68393932E+04 6.22296438E+00 4
C2H2 L 1/91C 2H 2 00 00G 200.000 3500.000 1000.000 1
4.14756964E+00 5.96166664E-03-2.37294852E-06 4.67412171E-10-3.61235213E-14 2
2.59359992E+04-1.23028121E+00 8.08681094E-01 2.33615629E-02-3.55171815E-05 3
2.80152437E-08-8.50072974E-12 2.64289807E+04 1.39397051E+01 4
C2H3 L 2/92C 2H 3 00 00G 200.000 3500.000 1000.000 1
3.01672400E+00 1.03302292E-02-4.68082349E-06 1.01763288E-09-8.62607041E-14 2
3.46128739E+04 7.78732378E+00 3.21246645E+00 1.51479162E-03 2.59209412E-05 3
-3.57657847E-08 1.47150873E-11 3.48598468E+04 8.51054025E+00 4
C2H4 L 1/91C 2H 4 00 00G 200.000 3500.000 1000.000 1
2.03611116E+00 1.46454151E-02-6.71077915E-06 1.47222923E-09-1.25706061E-13 2
4.93988614E+03 1.03053693E+01 3.95920148E+00-7.57052247E-03 5.70990292E-05 3
-6.91588753E-08 2.69884373E-11 5.08977593E+03 4.09733096E+00 4
C2H5 L12/92C 2H 5 00 00G 200.000 3500.000 1000.000 1
1.95465642E+00 1.73972722E-02-7.98206668E-06 1.75217689E-09-1.49641576E-13 2
1.28575200E+04 1.34624343E+01 4.30646568E+00-4.18658892E-03 4.97142807E-05 3
-5.99126606E-08 2.30509004E-11 1.28416265E+04 4.70720924E+00 4
C2H6 L 8/88C 2H 6 00 00G 200.000 3500.000 1000.000 1
1.07188150E+00 2.16852677E-02-1.00256067E-05 2.21412001E-09-1.90002890E-13 2
-1.14263932E+04 1.51156107E+01 4.29142492E+00-5.50154270E-03 5.99438288E-05 3
-7.08466285E-08 2.68685771E-11-1.15222055E+04 2.66682316E+00 4
CH2CO L 5/90C 2H 2O 1 00G 200.000 3500.000 1000.000 1
4.51129732E+00 9.00359745E-03-4.16939635E-06 9.23345882E-10-7.94838201E-14 2
-7.55105311E+03 6.32247205E-01 2.13583630E+00 1.81188721E-02-1.73947474E-05 3
9.34397568E-09-2.01457615E-12-7.04291804E+03 1.22156480E+01 4
HCCO SRIC91H 1C 2O 1 G 0300.00 4000.00 1000.000 1
0.56282058E+01 0.40853401E-02-0.15934547E-05 0.28626052E-09-0.19407832E-13 2
0.19327215E+05-0.39302595E+01 0.22517214E+01 0.17655021E-01-0.23729101E-04 3
0.17275759E-07-0.50664811E-11 0.20059449E+05 0.12490417E+02 4
HCCOH SRI91C 2O 1H 20 0G 300.000 5000.000 1000.000 1
0.59238291E+01 0.67923600E-02-0.25658564E-05 0.44987841E-09-0.29940101E-13 2
0.72646260E+04-0.76017742E+01 0.12423733E+01 0.31072201E-01-0.50866864E-04 3
0.43137131E-07-0.14014594E-10 0.80316143E+04 0.13874319E+02 4
H2CN 41687H 2C 1N 1 G 0300.00 4000.000 1000.000 1
0.52097030E+01 0.29692911E-02-0.28555891E-06-0.16355500E-09 0.30432589E-13 2
0.27677109E+05-0.44444780E+01 0.28516610E+01 0.56952331E-02 0.10711400E-05 3
-0.16226120E-08-0.23511081E-12 0.28637820E+05 0.89927511E+01 4
HCN GRI/98H 1C 1N 1 0G 200.000 6000.000 1000.000 1
0.38022392E+01 0.31464228E-02-0.10632185E-05 0.16619757E-09-0.97997570E-14 2
0.14407292E+05 0.15754601E+01 0.22589886E+01 0.10051170E-01-0.13351763E-04 3
0.10092349E-07-0.30089028E-11 0.14712633E+05 0.89164419E+01 4
HNO And93 H 1N 1O 1 0G 200.000 6000.000 1000.000 1
0.29792509E+01 0.34944059E-02-0.78549778E-06 0.57479594E-10-0.19335916E-15 2
0.11750582E+05 0.86063728E+01 0.45334916E+01-0.56696171E-02 0.18473207E-04 3
-0.17137094E-07 0.55454573E-11 0.11548297E+05 0.17498417E+01 4
N L 6/88N 1 0 0 0G 200.000 6000.000 1000.000 1
0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14 2
0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01 4
NNH T07/93N 2H 1 00 00G 200.000 6000.000 1000.000 1
0.37667544E+01 0.28915082E-02-0.10416620E-05 0.16842594E-09-0.10091896E-13 2
0.28650697E+05 0.44705067E+01 0.43446927E+01-0.48497072E-02 0.20059459E-04 3
-0.21726464E-07 0.79469539E-11 0.28791973E+05 0.29779410E+01 4
N2O L 7/88N 2O 1 0 0G 200.000 6000.000 1000.000 1
0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14 2
0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04 3
0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02 4
NH And94 N 1H 1 0 0G 200.000 6000.000 1000.000 1
0.27836928E+01 0.13298430E-02-0.42478047E-06 0.78348501E-10-0.55044470E-14 2
0.42120848E+05 0.57407799E+01 0.34929085E+01 0.31179198E-03-0.14890484E-05 3
0.24816442E-08-0.10356967E-11 0.41880629E+05 0.18483278E+01 4
NH2 And89 N 1H 2 0 0G 200.000 6000.000 1000.000 1
0.28347421E+01 0.32073082E-02-0.93390804E-06 0.13702953E-09-0.79206144E-14 2
0.22171957E+05 0.65204163E+01 0.42040029E+01-0.21061385E-02 0.71068348E-05 3
-0.56115197E-08 0.16440717E-11 0.21885910E+05-0.14184248E+00 4
NH3 J 6/77N 1H 3 0 0G 200.000 6000.000 1000.000 1
0.26344521E+01 0.56662560E-02-0.17278676E-05 0.23867161E-09-0.12578786E-13 2
-0.65446958E+04 0.65662928E+01 0.42860274E+01-0.46605230E-02 0.21718513E-04 3
-0.22808887E-07 0.82638046E-11-0.67417285E+04-0.62537277E+00 4
NO RUS 78N 1O 1 0 0G 200.000 6000.000 1000.000 1
0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14 2
0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04 3
-0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01 4
NO2 L 7/88N 1O 2 0 0G 200.000 6000.000 1000.000 1
0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13 2
0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04 3
-0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01 4
HCNO BDEA94H 1N 1C 1O 1G 300.000 5000.000 1382.000 1
6.59860456E+00 3.02778626E-03-1.07704346E-06 1.71666528E-10-1.01439391E-14 2
1.79661339E+04-1.03306599E+01 2.64727989E+00 1.27505342E-02-1.04794236E-05 3
4.41432836E-09-7.57521466E-13 1.92990252E+04 1.07332972E+01 4
HOCN BDEA94H 1N 1C 1O 1G 300.000 5000.000 1368.000 1
5.89784885E+00 3.16789393E-03-1.11801064E-06 1.77243144E-10-1.04339177E-14 2
-3.70653331E+03-6.18167825E+00 3.78604952E+00 6.88667922E-03-3.21487864E-06 3
5.17195767E-10 1.19360788E-14-2.82698400E+03 5.63292162E+00 4
HNCO BDEA94H 1N 1C 1O 1G 300.000 5000.000 1478.000 1
6.22395134E+00 3.17864004E-03-1.09378755E-06 1.70735163E-10-9.95021955E-15 2
-1.66599344E+04-8.38224741E+00 3.63096317E+00 7.30282357E-03-2.28050003E-06 3
-6.61271298E-10 3.62235752E-13-1.55873636E+04 6.19457727E+00 4
NCO EA 93 N 1C 1O 1 0G 200.000 6000.000 1000.000 1
0.51521845E+01 0.23051761E-02-0.88033153E-06 0.14789098E-09-0.90977996E-14 2
0.14004123E+05-0.25442660E+01 0.28269308E+01 0.88051688E-02-0.83866134E-05 3
0.48016964E-08-0.13313595E-11 0.14682477E+05 0.95504646E+01 4
CN HBH92 C 1N 1 0 0G 200.000 6000.000 1000.000 1
0.37459805E+01 0.43450775E-04 0.29705984E-06-0.68651806E-10 0.44134173E-14 2
0.51536188E+05 0.27867601E+01 0.36129351E+01-0.95551327E-03 0.21442977E-05 3
-0.31516323E-09-0.46430356E-12 0.51708340E+05 0.39804995E+01 4
HCNN SRI/94C 1N 2H 10 0G 300.000 5000.000 1000.000 1
0.58946362E+01 0.39895959E-02-0.15982380E-05 0.29249395E-09-0.20094686E-13 2
0.53452941E+05-0.51030502E+01 0.25243194E+01 0.15960619E-01-0.18816354E-04 3
0.12125540E-07-0.32357378E-11 0.54261984E+05 0.11675870E+02 4
N2 121286N 2 G 300.000 5000.000 1000.000 1
0.02926640E+02 0.14879768E-02-0.05684760E-05 0.10097038E-09-0.06753351E-13 2
-0.09227977E+04 0.05980528E+02 0.03298677E+02 0.14082404E-02-0.03963222E-04 3
0.05641515E-07-0.02444854E-10-0.10208999E+04 0.03950372E+02 4
AR 120186AR 1 G 300.000 5000.000 1000.000 1
0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
-0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02 4
C3H8 L 4/85C 3H 8 0 0G 300.000 5000.000 1000.00 1
0.75341368E+01 0.18872239E-01-0.62718491E-05 0.91475649E-09-0.47838069E-13 2
-0.16467516E+05-0.17892349E+02 0.93355381E+00 0.26424579E-01 0.61059727E-05 3
-0.21977499E-07 0.95149253E-11-0.13958520E+05 0.19201691E+02 4
C3H7 L 9/84C 3H 7 0 0G 300.000 5000.000 1000.00 1
0.77026987E+01 0.16044203E-01-0.52833220E-05 0.76298590E-09-0.39392284E-13 2
0.82984336E+04-0.15480180E+02 0.10515518E+01 0.25991980E-01 0.23800540E-05 3
-0.19609569E-07 0.93732470E-11 0.10631863E+05 0.21122559E+02 4
CH3CHO L 8/88C 2H 4O 1 0G 200.000 6000.000 1000.00 1
0.54041108E+01 0.11723059E-01-0.42263137E-05 0.68372451E-09-0.40984863E-13 2
-0.22593122E+05-0.34807917E+01 0.47294595E+01-0.31932858E-02 0.47534921E-04 3
-0.57458611E-07 0.21931112E-10-0.21572878E+05 0.41030159E+01 4
CH2CHO SAND86O 1H 3C 2 G 300.00 5000.00 1000.00 1
0.05975670E+02 0.08130591E-01-0.02743624E-04 0.04070304E-08-0.02176017E-12 2
0.04903218E+04-0.05045251E+02 0.03409062E+02 0.10738574E-01 0.01891492E-04 3
-0.07158583E-07 0.02867385E-10 0.15214766E+04 0.09558290E+02 4
END
REACTIONS REACTIONS
2O+M<=>O2+M 1.200E+17 -1.000 .00 2O+M<=>O2+M 1.200E+17 -1.000 .00
H2/ 2.40/ H2O/15.40/ CH4/ 2.00/ CO/ 1.75/ CO2/ 3.60/ C2H6/ 3.00/ AR/ .83/ H2/ 2.40/ H2O/15.40/ CH4/ 2.00/ CO/ 1.75/ CO2/ 3.60/ C2H6/ 3.00/ AR/ .83/
@ -616,8 +404,8 @@ CH2+CH2=>2H+C2H2 2.000E+14 .000 10989.00
CH2(S)+H2O=>H2+CH2O 6.820E+10 .250 -935.00 CH2(S)+H2O=>H2+CH2O 6.820E+10 .250 -935.00
C2H3+O2<=>O+CH2CHO 3.030E+11 .290 11.00 C2H3+O2<=>O+CH2CHO 3.030E+11 .290 11.00
C2H3+O2<=>HO2+C2H2 1.337E+06 1.610 -384.00 C2H3+O2<=>HO2+C2H2 1.337E+06 1.610 -384.00
O+CH3CHO<=>OH+CH2CHO 5.840E+12 .000 1808.00 O+CH3CHO<=>OH+CH2CHO 2.920E+12 .000 1808.00
O+CH3CHO=>OH+CH3+CO 5.840E+12 .000 1808.00 O+CH3CHO=>OH+CH3+CO 2.920E+12 .000 1808.00
O2+CH3CHO=>HO2+CH3+CO 3.010E+13 .000 39150.00 O2+CH3CHO=>HO2+CH3+CO 3.010E+13 .000 39150.00
H+CH3CHO<=>CH2CHO+H2 2.050E+09 1.160 2405.00 H+CH3CHO<=>CH2CHO+H2 2.050E+09 1.160 2405.00
H+CH3CHO=>CH3+H2+CO 2.050E+09 1.160 2405.00 H+CH3CHO=>CH3+H2+CO 2.050E+09 1.160 2405.00

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,6 @@ ideal_gas(name = "gri30",
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all", reactions = "all",
kinetics = "GRI30",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
@ -29,7 +28,6 @@ ideal_gas(name = "gri30_mix",
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all", reactions = "all",
kinetics = "GRI30",
transport = "Mix", transport = "Mix",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
@ -44,7 +42,6 @@ ideal_gas(name = "gri30_multi",
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7 HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """, C3H8 CH2CHO CH3CHO """,
reactions = "all", reactions = "all",
kinetics = "GRI30",
transport = "Multi", transport = "Multi",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
@ -120,7 +117,7 @@ species(name = "O2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.46, diam = 3.458,
well_depth = 107.40, well_depth = 107.40,
polar = 1.60, polar = 1.60,
rot_relax = 3.80), rot_relax = 3.80),
@ -156,9 +153,9 @@ species(name = "H2O",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 2.60, diam = 2.605,
well_depth = 572.40, well_depth = 572.40,
dipole = 1.84, dipole = 1.844,
rot_relax = 4.00), rot_relax = 4.00),
note = "L 8/89" note = "L 8/89"
) )
@ -175,7 +172,7 @@ species(name = "HO2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.46, diam = 3.458,
well_depth = 107.40, well_depth = 107.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 5/89" note = "L 5/89"
@ -193,7 +190,7 @@ species(name = "H2O2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.46, diam = 3.458,
well_depth = 107.40, well_depth = 107.40,
rot_relax = 3.80), rot_relax = 3.80),
note = "L 7/88" note = "L 7/88"
@ -211,7 +208,7 @@ species(name = "C",
), ),
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.298,
well_depth = 71.40), well_depth = 71.40),
note = "L11/88" note = "L11/88"
) )
@ -296,7 +293,7 @@ species(name = "CH4",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.75, diam = 3.746,
well_depth = 141.40, well_depth = 141.40,
polar = 2.60, polar = 2.60,
rot_relax = 13.00), rot_relax = 13.00),
@ -334,7 +331,7 @@ species(name = "CO2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.76, diam = 3.763,
well_depth = 244.00, well_depth = 244.00,
polar = 2.65, polar = 2.65,
rot_relax = 2.10), rot_relax = 2.10),
@ -426,7 +423,7 @@ species(name = "CH3OH",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.63, diam = 3.626,
well_depth = 481.80, well_depth = 481.80,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 8/88" note = "L 8/88"
@ -498,7 +495,7 @@ species(name = "C2H4",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.97, diam = 3.971,
well_depth = 280.80, well_depth = 280.80,
rot_relax = 1.50), rot_relax = 1.50),
note = "L 1/91" note = "L 1/91"
@ -516,7 +513,7 @@ species(name = "C2H5",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.30, diam = 4.302,
well_depth = 252.30, well_depth = 252.30,
rot_relax = 1.50), rot_relax = 1.50),
note = "L12/92" note = "L12/92"
@ -534,7 +531,7 @@ species(name = "C2H6",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.30, diam = 4.302,
well_depth = 252.30, well_depth = 252.30,
rot_relax = 1.50), rot_relax = 1.50),
note = "L 8/88" note = "L 8/88"
@ -606,7 +603,7 @@ species(name = "N",
), ),
transport = gas_transport( transport = gas_transport(
geom = "atom", geom = "atom",
diam = 3.30, diam = 3.298,
well_depth = 71.40), well_depth = 71.40),
note = "L 6/88" note = "L 6/88"
) )
@ -679,7 +676,7 @@ species(name = "NNH",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.80, diam = 3.798,
well_depth = 71.40, well_depth = 71.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "T07/93" note = "T07/93"
@ -697,7 +694,7 @@ species(name = "NO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.62, diam = 3.621,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00), rot_relax = 4.00),
@ -734,7 +731,7 @@ species(name = "N2O",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 7/88" note = "L 7/88"
@ -752,7 +749,7 @@ species(name = "HNO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.49, diam = 3.492,
well_depth = 116.70, well_depth = 116.70,
rot_relax = 1.00), rot_relax = 1.00),
note = "And93" note = "And93"
@ -770,7 +767,7 @@ species(name = "CN",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.86, diam = 3.856,
well_depth = 75.00, well_depth = 75.00,
rot_relax = 1.00), rot_relax = 1.00),
note = "HBH92" note = "HBH92"
@ -842,7 +839,7 @@ species(name = "HCNO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "BDEA94" note = "BDEA94"
@ -860,7 +857,7 @@ species(name = "HOCN",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "BDEA94" note = "BDEA94"
@ -878,7 +875,7 @@ species(name = "HNCO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "BDEA94" note = "BDEA94"
@ -896,7 +893,7 @@ species(name = "NCO",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.83, diam = 3.828,
well_depth = 232.40, well_depth = 232.40,
rot_relax = 1.00), rot_relax = 1.00),
note = "EA 93" note = "EA 93"
@ -914,7 +911,7 @@ species(name = "N2",
), ),
transport = gas_transport( transport = gas_transport(
geom = "linear", geom = "linear",
diam = 3.62, diam = 3.621,
well_depth = 97.53, well_depth = 97.53,
polar = 1.76, polar = 1.76,
rot_relax = 4.00), rot_relax = 4.00),
@ -950,7 +947,7 @@ species(name = "C3H7",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.98, diam = 4.982,
well_depth = 266.80, well_depth = 266.80,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 9/84" note = "L 9/84"
@ -968,7 +965,7 @@ species(name = "C3H8",
), ),
transport = gas_transport( transport = gas_transport(
geom = "nonlinear", geom = "nonlinear",
diam = 4.98, diam = 4.982,
well_depth = 266.80, well_depth = 266.80,
rot_relax = 1.00), rot_relax = 1.00),
note = "L 4/85" note = "L 4/85"
@ -2017,10 +2014,10 @@ reaction( "C2H3 + O2 <=> O + CH2CHO", [3.03000E+11, 0.29, 11])
reaction( "C2H3 + O2 <=> HO2 + C2H2", [1.33700E+06, 1.61, -384]) reaction( "C2H3 + O2 <=> HO2 + C2H2", [1.33700E+06, 1.61, -384])
# Reaction 296 # Reaction 296
reaction( "O + CH3CHO <=> OH + CH2CHO", [5.84000E+12, 0, 1808]) reaction( "O + CH3CHO <=> OH + CH2CHO", [2.920000E+12, 0, 1808])
# Reaction 297 # Reaction 297
reaction( "O + CH3CHO => OH + CH3 + CO", [5.84000E+12, 0, 1808]) reaction( "O + CH3CHO => OH + CH3 + CO", [2.920000E+12, 0, 1808])
# Reaction 298 # Reaction 298
reaction( "O2 + CH3CHO => HO2 + CH3 + CO", [3.01000E+13, 0, 39150]) reaction( "O2 + CH3CHO => HO2 + CH3 + CO", [3.01000E+13, 0, 39150])

231
data/inputs/gri30_ion.cti Normal file
View file

@ -0,0 +1,231 @@
units(length='cm', time='s', quantity='mol', act_energy='cal/mol')
ideal_gas(name='gas',
elements=' O H C N Ar E',
species=['H2 O2 H2O CH4 CO CO2 N2',
'''gri30: H O OH HO2 H2O2 C CH
CH2 CH2(S) CH3 HCO CH2O CH2OH CH3O
CH3OH C2H C2H2 C2H3 C2H4 C2H5 C2H6 HCCO CH2CO HCCOH
N NH NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO AR C3H7
C3H8 CH2CHO CH3CHO''',
'HCO+ H3O+ E'],
reactions=['gri30: all', 'all'],
transport='Ion',
options=['skip_undeclared_species', 'skip_undeclared_third_bodies'],
initial_state=state(temperature=300.0, pressure=OneAtm))
#-------------------------------------------------------------------------------
# Species data
#-------------------------------------------------------------------------------
# The values of polarizability of H2, O2, H2O, CH4, CO, CO2, and N2 are from
# the supplementary material of Han, Jie, et al. "Numerical modelling of ion
# transport in flames." Combustion Theory and Modelling 19.6 (2015): 744-772.
# DOI: 10.1080/13647830.2015.1090018
species(name = "H2",
atoms = " H:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 2.344331120E+00, 7.980520750E-03,
-1.947815100E-05, 2.015720940E-08, -7.376117610E-12,
-9.179351730E+02, 6.830102380E-01] ),
NASA( [ 1000.00, 3500.00], [ 3.337279200E+00, -4.940247310E-05,
4.994567780E-07, -1.795663940E-10, 2.002553760E-14,
-9.501589220E+02, -3.205023310E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 2.92,
well_depth = 38.00,
polar = 0.455,
rot_relax = 280.00),
note = '''The value of polarizability is from the supplementary
material of Han, Jie, et al. "Numerical modelling of ion
transport in flames." Combustion Theory and Modelling
19.6 (2015): 744-772. DOI: 10.1080/13647830.2015.1090018'''
)
species(name = "O2",
atoms = " O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 3.782456360E+00, -2.996734160E-03,
9.847302010E-06, -9.681295090E-09, 3.243728370E-12,
-1.063943560E+03, 3.657675730E+00] ),
NASA( [ 1000.00, 3500.00], [ 3.282537840E+00, 1.483087540E-03,
-7.579666690E-07, 2.094705550E-10, -2.167177940E-14,
-1.088457720E+03, 5.453231290E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 3.458,
well_depth = 107.40,
polar = 1.131,
rot_relax = 3.80),
note = "TPIS89"
)
species(name = "H2O",
atoms = " H:2 O:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 4.198640560E+00, -2.036434100E-03,
6.520402110E-06, -5.487970620E-09, 1.771978170E-12,
-3.029372670E+04, -8.490322080E-01] ),
NASA( [ 1000.00, 3500.00], [ 3.033992490E+00, 2.176918040E-03,
-1.640725180E-07, -9.704198700E-11, 1.682009920E-14,
-3.000429710E+04, 4.966770100E+00] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 2.605,
well_depth = 572.40,
dipole = 1.844,
polar = 1.053,
rot_relax = 4.00),
note = "L 8/89"
)
species(name = "CH4",
atoms = " C:1 H:4 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 5.149876130E+00, -1.367097880E-02,
4.918005990E-05, -4.847430260E-08, 1.666939560E-11,
-1.024664760E+04, -4.641303760E+00] ),
NASA( [ 1000.00, 3500.00], [ 7.485149500E-02, 1.339094670E-02,
-5.732858090E-06, 1.222925350E-09, -1.018152300E-13,
-9.468344590E+03, 1.843731800E+01] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 3.746,
well_depth = 141.40,
polar = 2.60,
rot_relax = 13.00),
note = "L 8/88"
)
species(name = "CO",
atoms = " C:1 O:1 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 3.579533470E+00, -6.103536800E-04,
1.016814330E-06, 9.070058840E-10, -9.044244990E-13,
-1.434408600E+04, 3.508409280E+00] ),
NASA( [ 1000.00, 3500.00], [ 2.715185610E+00, 2.062527430E-03,
-9.988257710E-07, 2.300530080E-10, -2.036477160E-14,
-1.415187240E+04, 7.818687720E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 3.65,
well_depth = 98.10,
polar = 1.95,
rot_relax = 1.80),
note = "TPIS79"
)
species(name = "CO2",
atoms = " C:1 O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 2.356773520E+00, 8.984596770E-03,
-7.123562690E-06, 2.459190220E-09, -1.436995480E-13,
-4.837196970E+04, 9.901052220E+00] ),
NASA( [ 1000.00, 3500.00], [ 3.857460290E+00, 4.414370260E-03,
-2.214814040E-06, 5.234901880E-10, -4.720841640E-14,
-4.875916600E+04, 2.271638060E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 3.763,
well_depth = 244.00,
polar = 2.65,
rot_relax = 2.10),
note = "L 7/88"
)
species(name = "N2",
atoms = " N:2 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 3.298677000E+00, 1.408240400E-03,
-3.963222000E-06, 5.641515000E-09, -2.444854000E-12,
-1.020899900E+03, 3.950372000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.926640000E+00, 1.487976800E-03,
-5.684760000E-07, 1.009703800E-10, -6.753351000E-15,
-9.227977000E+02, 5.980528000E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 3.621,
well_depth = 97.53,
polar = 1.76,
rot_relax = 4.00),
note = "121286"
)
species(name = 'HCO+',
atoms = ' H:1 C:1 O:1 E:-1 ',
thermo = (
NASA( [ 300.00, 1000.00], [ 2.473973600E+00, 8.671559000E-03,
-1.003150000E-05, 6.717052700E-09, -1.787267400E-12,
9.914660800E+04, 8.175711870E+00] ),
NASA( [ 1000.00, 5000.00], [ 3.741188000E+00, 3.344151700E-03,
-1.239712100E-06, 2.118938800E-10, -1.370415000E-14,
9.888407800E+04, 2.078613570E+00] )
),
transport=gas_transport(geom='linear',
diam=3.59,
well_depth=498.0,
polar=1.356),
note = '''The polarizability is from Han, Jie, et al.
"Numerical modelling of ion transport in flames."
,and the rest of the parameters are from its neutral
counterpart HCO''')
species(name = 'H3O+',
atoms = ' H:3 O:1 E:-1 ',
thermo = (
NASA( [ 298.15, 1000.00], [ 3.792952700E+00, -9.108540000E-04,
1.163635490E-05, -1.213648870E-08, 4.261596630E-12,
7.075124010E+04, 1.471568560E+00] ),
NASA( [ 1000.00, 6000.00], [ 2.496477160E+00, 5.728449200E-03,
-1.839532810E-06, 2.735774390E-10, -1.540939850E-14,
7.097291130E+04, 7.458507790E+00] )
),
transport=gas_transport(geom='nonlinear',
diam=3.15,
well_depth=106.2,
dipole=1.417,
polar=0.897),
note = '''The transport parameters are from Han, Jie, et al.
"Numerical modelling of ion transport in flames."''')
species(name = 'E',
atoms = ' E:1 ',
thermo = (
NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, -1.172469020E+01] ),
NASA( [ 1000.00, 6000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, -1.172469020E+01] )
),
transport=gas_transport(geom='atom',
diam=2.05,
well_depth=145.0,
polar=0.667),
note = 'The transport parameters are not used in IonGasTransport')
#-------------------------------------------------------------------------------
# Reaction data
#-------------------------------------------------------------------------------
reaction('CH + O => HCO+ + E', [2.51E+11, 0.0, 1700])
reaction('HCO+ + H2O => H3O+ + CO', [1.51E+15, 0.0, 0.0])
reaction('H3O+ + E => H2O + H', [2.29E+18, -0.5, 0.0])
reaction('H3O+ + E => OH + H + H', [7.95E+21, -1.4, 0.0])
reaction('H3O+ + E => H2 + OH', [1.25E+19, -0.5, 0.0])
reaction('H3O+ + E => O + H2 + H', [6.0E+17, -0.3, 0.0])

View file

@ -1,692 +0,0 @@
! GRI-Mech Version 3.0 3/12/99 CHEMKIN-II format
! See README30 file at anonymous FTP site unix.sri.com, directory gri;
! WorldWideWeb home page http://www.me.berkeley.edu/gri_mech/ or
! through http://www.gri.org , under 'Basic Research',
! for additional information, contacts, and disclaimer
ELEMENTS
O H C N AR
END
SPECIES
H2 H O O2 OH H2O HO2 H2O2
C CH CH2 CH2(S) CH3 CH4 CO CO2
HCO CH2O CH2OH CH3O CH3OH C2H C2H2 C2H3
C2H4 C2H5 C2H6 HCCO CH2CO HCCOH N NH
NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2
AR C3H7 C3H8 CH2CHO CH3CHO
END
THERMO ALL
300.000 1000.000 5000.000
O L 1/90O 1 00 00 00G 200.000 3500.000 1000.000 1
2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15 2
2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06 3
-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00 4
O2 TPIS89O 2 00 00 00G 200.000 3500.000 1000.000 1
3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14 2
-1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06 3
-9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00 4
H L 7/88H 1 00 00 00G 200.000 3500.000 1000.000 1
2.50000001E+00-2.30842973E-11 1.61561948E-14-4.73515235E-18 4.98197357E-22 2
2.54736599E+04-4.46682914E-01 2.50000000E+00 7.05332819E-13-1.99591964E-15 3
2.30081632E-18-9.27732332E-22 2.54736599E+04-4.46682853E-01 4
H2 TPIS78H 2 00 00 00G 200.000 3500.000 1000.000 1
3.33727920E+00-4.94024731E-05 4.99456778E-07-1.79566394E-10 2.00255376E-14 2
-9.50158922E+02-3.20502331E+00 2.34433112E+00 7.98052075E-03-1.94781510E-05 3
2.01572094E-08-7.37611761E-12-9.17935173E+02 6.83010238E-01 4
OH RUS 78O 1H 1 00 00G 200.000 3500.000 1000.000 1
3.09288767E+00 5.48429716E-04 1.26505228E-07-8.79461556E-11 1.17412376E-14 2
3.85865700E+03 4.47669610E+00 3.99201543E+00-2.40131752E-03 4.61793841E-06 3
-3.88113333E-09 1.36411470E-12 3.61508056E+03-1.03925458E-01 4
H2O L 8/89H 2O 1 00 00G 200.000 3500.000 1000.000 1
3.03399249E+00 2.17691804E-03-1.64072518E-07-9.70419870E-11 1.68200992E-14 2
-3.00042971E+04 4.96677010E+00 4.19864056E+00-2.03643410E-03 6.52040211E-06 3
-5.48797062E-09 1.77197817E-12-3.02937267E+04-8.49032208E-01 4
HO2 L 5/89H 1O 2 00 00G 200.000 3500.000 1000.000 1
4.01721090E+00 2.23982013E-03-6.33658150E-07 1.14246370E-10-1.07908535E-14 2
1.11856713E+02 3.78510215E+00 4.30179801E+00-4.74912051E-03 2.11582891E-05 3
-2.42763894E-08 9.29225124E-12 2.94808040E+02 3.71666245E+00 4
H2O2 L 7/88H 2O 2 00 00G 200.000 3500.000 1000.000 1
4.16500285E+00 4.90831694E-03-1.90139225E-06 3.71185986E-10-2.87908305E-14 2
-1.78617877E+04 2.91615662E+00 4.27611269E+00-5.42822417E-04 1.67335701E-05 3
-2.15770813E-08 8.62454363E-12-1.77025821E+04 3.43505074E+00 4
C L11/88C 1 00 00 00G 200.000 3500.000 1000.000 1
2.49266888E+00 4.79889284E-05-7.24335020E-08 3.74291029E-11-4.87277893E-15 2
8.54512953E+04 4.80150373E+00 2.55423955E+00-3.21537724E-04 7.33792245E-07 3
-7.32234889E-10 2.66521446E-13 8.54438832E+04 4.53130848E+00 4
CH TPIS79C 1H 1 00 00G 200.000 3500.000 1000.000 1
2.87846473E+00 9.70913681E-04 1.44445655E-07-1.30687849E-10 1.76079383E-14 2
7.10124364E+04 5.48497999E+00 3.48981665E+00 3.23835541E-04-1.68899065E-06 3
3.16217327E-09-1.40609067E-12 7.07972934E+04 2.08401108E+00 4
CH2 L S/93C 1H 2 00 00G 200.000 3500.000 1000.000 1
2.87410113E+00 3.65639292E-03-1.40894597E-06 2.60179549E-10-1.87727567E-14 2
4.62636040E+04 6.17119324E+00 3.76267867E+00 9.68872143E-04 2.79489841E-06 3
-3.85091153E-09 1.68741719E-12 4.60040401E+04 1.56253185E+00 4
CH2(S) L S/93C 1H 2 00 00G 200.000 3500.000 1000.000 1
2.29203842E+00 4.65588637E-03-2.01191947E-06 4.17906000E-10-3.39716365E-14 2
5.09259997E+04 8.62650169E+00 4.19860411E+00-2.36661419E-03 8.23296220E-06 3
-6.68815981E-09 1.94314737E-12 5.04968163E+04-7.69118967E-01 4
CH3 L11/89C 1H 3 00 00G 200.000 3500.000 1000.000 1
2.28571772E+00 7.23990037E-03-2.98714348E-06 5.95684644E-10-4.67154394E-14 2
1.67755843E+04 8.48007179E+00 3.67359040E+00 2.01095175E-03 5.73021856E-06 3
-6.87117425E-09 2.54385734E-12 1.64449988E+04 1.60456433E+00 4
CH4 L 8/88C 1H 4 00 00G 200.000 3500.000 1000.000 1
7.48514950E-02 1.33909467E-02-5.73285809E-06 1.22292535E-09-1.01815230E-13 2
-9.46834459E+03 1.84373180E+01 5.14987613E+00-1.36709788E-02 4.91800599E-05 3
-4.84743026E-08 1.66693956E-11-1.02466476E+04-4.64130376E+00 4
CO TPIS79C 1O 1 00 00G 200.000 3500.000 1000.000 1
2.71518561E+00 2.06252743E-03-9.98825771E-07 2.30053008E-10-2.03647716E-14 2
-1.41518724E+04 7.81868772E+00 3.57953347E+00-6.10353680E-04 1.01681433E-06 3
9.07005884E-10-9.04424499E-13-1.43440860E+04 3.50840928E+00 4
CO2 L 7/88C 1O 2 00 00G 200.000 3500.000 1000.000 1
3.85746029E+00 4.41437026E-03-2.21481404E-06 5.23490188E-10-4.72084164E-14 2
-4.87591660E+04 2.27163806E+00 2.35677352E+00 8.98459677E-03-7.12356269E-06 3
2.45919022E-09-1.43699548E-13-4.83719697E+04 9.90105222E+00 4
HCO L12/89H 1C 1O 1 00G 200.000 3500.000 1000.000 1
2.77217438E+00 4.95695526E-03-2.48445613E-06 5.89161778E-10-5.33508711E-14 2
4.01191815E+03 9.79834492E+00 4.22118584E+00-3.24392532E-03 1.37799446E-05 3
-1.33144093E-08 4.33768865E-12 3.83956496E+03 3.39437243E+00 4
CH2O L 8/88H 2C 1O 1 00G 200.000 3500.000 1000.000 1
1.76069008E+00 9.20000082E-03-4.42258813E-06 1.00641212E-09-8.83855640E-14 2
-1.39958323E+04 1.36563230E+01 4.79372315E+00-9.90833369E-03 3.73220008E-05 3
-3.79285261E-08 1.31772652E-11-1.43089567E+04 6.02812900E-01 4
CH2OH GUNL93C 1H 3O 1 00G 200.000 3500.000 1000.000 1
3.69266569E+00 8.64576797E-03-3.75101120E-06 7.87234636E-10-6.48554201E-14 2
-3.24250627E+03 5.81043215E+00 3.86388918E+00 5.59672304E-03 5.93271791E-06 3
-1.04532012E-08 4.36967278E-12-3.19391367E+03 5.47302243E+00 4
CH3O 121686C 1H 3O 1 G 0300.00 3000.00 1000.000 1
0.03770799E+02 0.07871497E-01-0.02656384E-04 0.03944431E-08-0.02112616E-12 2
0.12783252E+03 0.02929575E+02 0.02106204E+02 0.07216595E-01 0.05338472E-04 3
-0.07377636E-07 0.02075610E-10 0.09786011E+04 0.13152177E+02 4
CH3OH L 8/88C 1H 4O 1 00G 200.000 3500.000 1000.000 1
1.78970791E+00 1.40938292E-02-6.36500835E-06 1.38171085E-09-1.17060220E-13 2
-2.53748747E+04 1.45023623E+01 5.71539582E+00-1.52309129E-02 6.52441155E-05 3
-7.10806889E-08 2.61352698E-11-2.56427656E+04-1.50409823E+00 4
C2H L 1/91C 2H 1 00 00G 200.000 3500.000 1000.000 1
3.16780652E+00 4.75221902E-03-1.83787077E-06 3.04190252E-10-1.77232770E-14 2
6.71210650E+04 6.63589475E+00 2.88965733E+00 1.34099611E-02-2.84769501E-05 3
2.94791045E-08-1.09331511E-11 6.68393932E+04 6.22296438E+00 4
C2H2 L 1/91C 2H 2 00 00G 200.000 3500.000 1000.000 1
4.14756964E+00 5.96166664E-03-2.37294852E-06 4.67412171E-10-3.61235213E-14 2
2.59359992E+04-1.23028121E+00 8.08681094E-01 2.33615629E-02-3.55171815E-05 3
2.80152437E-08-8.50072974E-12 2.64289807E+04 1.39397051E+01 4
C2H3 L 2/92C 2H 3 00 00G 200.000 3500.000 1000.000 1
3.01672400E+00 1.03302292E-02-4.68082349E-06 1.01763288E-09-8.62607041E-14 2
3.46128739E+04 7.78732378E+00 3.21246645E+00 1.51479162E-03 2.59209412E-05 3
-3.57657847E-08 1.47150873E-11 3.48598468E+04 8.51054025E+00 4
C2H4 L 1/91C 2H 4 00 00G 200.000 3500.000 1000.000 1
2.03611116E+00 1.46454151E-02-6.71077915E-06 1.47222923E-09-1.25706061E-13 2
4.93988614E+03 1.03053693E+01 3.95920148E+00-7.57052247E-03 5.70990292E-05 3
-6.91588753E-08 2.69884373E-11 5.08977593E+03 4.09733096E+00 4
C2H5 L12/92C 2H 5 00 00G 200.000 3500.000 1000.000 1
1.95465642E+00 1.73972722E-02-7.98206668E-06 1.75217689E-09-1.49641576E-13 2
1.28575200E+04 1.34624343E+01 4.30646568E+00-4.18658892E-03 4.97142807E-05 3
-5.99126606E-08 2.30509004E-11 1.28416265E+04 4.70720924E+00 4
C2H6 L 8/88C 2H 6 00 00G 200.000 3500.000 1000.000 1
1.07188150E+00 2.16852677E-02-1.00256067E-05 2.21412001E-09-1.90002890E-13 2
-1.14263932E+04 1.51156107E+01 4.29142492E+00-5.50154270E-03 5.99438288E-05 3
-7.08466285E-08 2.68685771E-11-1.15222055E+04 2.66682316E+00 4
CH2CO L 5/90C 2H 2O 1 00G 200.000 3500.000 1000.000 1
4.51129732E+00 9.00359745E-03-4.16939635E-06 9.23345882E-10-7.94838201E-14 2
-7.55105311E+03 6.32247205E-01 2.13583630E+00 1.81188721E-02-1.73947474E-05 3
9.34397568E-09-2.01457615E-12-7.04291804E+03 1.22156480E+01 4
HCCO SRIC91H 1C 2O 1 G 0300.00 4000.00 1000.000 1
0.56282058E+01 0.40853401E-02-0.15934547E-05 0.28626052E-09-0.19407832E-13 2
0.19327215E+05-0.39302595E+01 0.22517214E+01 0.17655021E-01-0.23729101E-04 3
0.17275759E-07-0.50664811E-11 0.20059449E+05 0.12490417E+02 4
HCCOH SRI91C 2O 1H 20 0G 300.000 5000.000 1000.000 1
0.59238291E+01 0.67923600E-02-0.25658564E-05 0.44987841E-09-0.29940101E-13 2
0.72646260E+04-0.76017742E+01 0.12423733E+01 0.31072201E-01-0.50866864E-04 3
0.43137131E-07-0.14014594E-10 0.80316143E+04 0.13874319E+02 4
H2CN 41687H 2C 1N 1 G 0300.00 4000.000 1000.000 1
0.52097030E+01 0.29692911E-02-0.28555891E-06-0.16355500E-09 0.30432589E-13 2
0.27677109E+05-0.44444780E+01 0.28516610E+01 0.56952331E-02 0.10711400E-05 3
-0.16226120E-08-0.23511081E-12 0.28637820E+05 0.89927511E+01 4
HCN GRI/98H 1C 1N 1 0G 200.000 6000.000 1000.000 1
0.38022392E+01 0.31464228E-02-0.10632185E-05 0.16619757E-09-0.97997570E-14 2
0.14407292E+05 0.15754601E+01 0.22589886E+01 0.10051170E-01-0.13351763E-04 3
0.10092349E-07-0.30089028E-11 0.14712633E+05 0.89164419E+01 4
HNO And93 H 1N 1O 1 0G 200.000 6000.000 1000.000 1
0.29792509E+01 0.34944059E-02-0.78549778E-06 0.57479594E-10-0.19335916E-15 2
0.11750582E+05 0.86063728E+01 0.45334916E+01-0.56696171E-02 0.18473207E-04 3
-0.17137094E-07 0.55454573E-11 0.11548297E+05 0.17498417E+01 4
N L 6/88N 1 0 0 0G 200.000 6000.000 1000.000 1
0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14 2
0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01 4
NNH T07/93N 2H 1 00 00G 200.000 6000.000 1000.000 1
0.37667544E+01 0.28915082E-02-0.10416620E-05 0.16842594E-09-0.10091896E-13 2
0.28650697E+05 0.44705067E+01 0.43446927E+01-0.48497072E-02 0.20059459E-04 3
-0.21726464E-07 0.79469539E-11 0.28791973E+05 0.29779410E+01 4
N2O L 7/88N 2O 1 0 0G 200.000 6000.000 1000.000 1
0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14 2
0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04 3
0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02 4
NH And94 N 1H 1 0 0G 200.000 6000.000 1000.000 1
0.27836928E+01 0.13298430E-02-0.42478047E-06 0.78348501E-10-0.55044470E-14 2
0.42120848E+05 0.57407799E+01 0.34929085E+01 0.31179198E-03-0.14890484E-05 3
0.24816442E-08-0.10356967E-11 0.41880629E+05 0.18483278E+01 4
NH2 And89 N 1H 2 0 0G 200.000 6000.000 1000.000 1
0.28347421E+01 0.32073082E-02-0.93390804E-06 0.13702953E-09-0.79206144E-14 2
0.22171957E+05 0.65204163E+01 0.42040029E+01-0.21061385E-02 0.71068348E-05 3
-0.56115197E-08 0.16440717E-11 0.21885910E+05-0.14184248E+00 4
NH3 J 6/77N 1H 3 0 0G 200.000 6000.000 1000.000 1
0.26344521E+01 0.56662560E-02-0.17278676E-05 0.23867161E-09-0.12578786E-13 2
-0.65446958E+04 0.65662928E+01 0.42860274E+01-0.46605230E-02 0.21718513E-04 3
-0.22808887E-07 0.82638046E-11-0.67417285E+04-0.62537277E+00 4
NO RUS 78N 1O 1 0 0G 200.000 6000.000 1000.000 1
0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14 2
0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04 3
-0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01 4
NO2 L 7/88N 1O 2 0 0G 200.000 6000.000 1000.000 1
0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13 2
0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04 3
-0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01 4
HCNO BDEA94H 1N 1C 1O 1G 300.000 5000.000 1382.000 1
6.59860456E+00 3.02778626E-03-1.07704346E-06 1.71666528E-10-1.01439391E-14 2
1.79661339E+04-1.03306599E+01 2.64727989E+00 1.27505342E-02-1.04794236E-05 3
4.41432836E-09-7.57521466E-13 1.92990252E+04 1.07332972E+01 4
HOCN BDEA94H 1N 1C 1O 1G 300.000 5000.000 1368.000 1
5.89784885E+00 3.16789393E-03-1.11801064E-06 1.77243144E-10-1.04339177E-14 2
-3.70653331E+03-6.18167825E+00 3.78604952E+00 6.88667922E-03-3.21487864E-06 3
5.17195767E-10 1.19360788E-14-2.82698400E+03 5.63292162E+00 4
HNCO BDEA94H 1N 1C 1O 1G 300.000 5000.000 1478.000 1
6.22395134E+00 3.17864004E-03-1.09378755E-06 1.70735163E-10-9.95021955E-15 2
-1.66599344E+04-8.38224741E+00 3.63096317E+00 7.30282357E-03-2.28050003E-06 3
-6.61271298E-10 3.62235752E-13-1.55873636E+04 6.19457727E+00 4
NCO EA 93 N 1C 1O 1 0G 200.000 6000.000 1000.000 1
0.51521845E+01 0.23051761E-02-0.88033153E-06 0.14789098E-09-0.90977996E-14 2
0.14004123E+05-0.25442660E+01 0.28269308E+01 0.88051688E-02-0.83866134E-05 3
0.48016964E-08-0.13313595E-11 0.14682477E+05 0.95504646E+01 4
CN HBH92 C 1N 1 0 0G 200.000 6000.000 1000.000 1
0.37459805E+01 0.43450775E-04 0.29705984E-06-0.68651806E-10 0.44134173E-14 2
0.51536188E+05 0.27867601E+01 0.36129351E+01-0.95551327E-03 0.21442977E-05 3
-0.31516323E-09-0.46430356E-12 0.51708340E+05 0.39804995E+01 4
HCNN SRI/94C 1N 2H 10 0G 300.000 5000.000 1000.000 1
0.58946362E+01 0.39895959E-02-0.15982380E-05 0.29249395E-09-0.20094686E-13 2
0.53452941E+05-0.51030502E+01 0.25243194E+01 0.15960619E-01-0.18816354E-04 3
0.12125540E-07-0.32357378E-11 0.54261984E+05 0.11675870E+02 4
N2 121286N 2 G 300.000 5000.000 1000.000 1
0.02926640E+02 0.14879768E-02-0.05684760E-05 0.10097038E-09-0.06753351E-13 2
-0.09227977E+04 0.05980528E+02 0.03298677E+02 0.14082404E-02-0.03963222E-04 3
0.05641515E-07-0.02444854E-10-0.10208999E+04 0.03950372E+02 4
AR 120186AR 1 G 300.000 5000.000 1000.000 1
0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
-0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02 4
C3H8 L 4/85C 3H 8 0 0G 300.000 5000.000 1000.00 1
0.75341368E+01 0.18872239E-01-0.62718491E-05 0.91475649E-09-0.47838069E-13 2
-0.16467516E+05-0.17892349E+02 0.93355381E+00 0.26424579E-01 0.61059727E-05 3
-0.21977499E-07 0.95149253E-11-0.13958520E+05 0.19201691E+02 4
C3H7 L 9/84C 3H 7 0 0G 300.000 5000.000 1000.00 1
0.77026987E+01 0.16044203E-01-0.52833220E-05 0.76298590E-09-0.39392284E-13 2
0.82984336E+04-0.15480180E+02 0.10515518E+01 0.25991980E-01 0.23800540E-05 3
-0.19609569E-07 0.93732470E-11 0.10631863E+05 0.21122559E+02 4
CH3CHO L 8/88C 2H 4O 1 0G 200.000 6000.000 1000.00 1
0.54041108E+01 0.11723059E-01-0.42263137E-05 0.68372451E-09-0.40984863E-13 2
-0.22593122E+05-0.34807917E+01 0.47294595E+01-0.31932858E-02 0.47534921E-04 3
-0.57458611E-07 0.21931112E-10-0.21572878E+05 0.41030159E+01 4
CH2CHO SAND86O 1H 3C 2 G 300.00 5000.00 1000.00 1
0.05975670E+02 0.08130591E-01-0.02743624E-04 0.04070304E-08-0.02176017E-12 2
0.04903218E+04-0.05045251E+02 0.03409062E+02 0.10738574E-01 0.01891492E-04 3
-0.07158583E-07 0.02867385E-10 0.15214766E+04 0.09558290E+02 4
END
REACTIONS
2O+M<=>O2+M 1.200E+17 -1.000 .00
H2/ 2.40/ H2O/15.40/ CH4/ 2.00/ CO/ 1.75/ CO2/ 3.60/ C2H6/ 3.00/ AR/ .83/
O+H+M<=>OH+M 5.000E+17 -1.000 .00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
O+H2<=>H+OH 3.870E+04 2.700 6260.00
O+HO2<=>OH+O2 2.000E+13 .000 .00
!% (O) + (H)(O2) = (O)(H) + (O2)
O+H2O2<=>OH+HO2 9.630E+06 2.000 4000.00
O+CH<=>H+CO 5.700E+13 .000 .00
O+CH2<=>H+HCO 8.000E+13 .000 .00
O+CH2(S)<=>H2+CO 1.500E+13 .000 .00
O+CH2(S)<=>H+HCO 1.500E+13 .000 .00
O+CH3<=>H+CH2O 5.060E+13 .000 .00
O+CH4<=>OH+CH3 1.020E+09 1.500 8600.00
O+CO(+M)<=>CO2(+M) 1.800E+10 .000 2385.00
LOW/ 6.020E+14 .000 3000.00/
H2/2.00/ O2/6.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/3.50/ C2H6/3.00/ AR/ .50/
O+HCO<=>OH+CO 3.000E+13 .000 .00
O+HCO<=>H+CO2 3.000E+13 .000 .00
O+CH2O<=>OH+HCO 3.900E+13 .000 3540.00
O+CH2OH<=>OH+CH2O 1.000E+13 .000 .00
O+CH3O<=>OH+CH2O 1.000E+13 .000 .00
O+CH3OH<=>OH+CH2OH 3.880E+05 2.500 3100.00
O+CH3OH<=>OH+CH3O 1.300E+05 2.500 5000.00
O+C2H<=>CH+CO 5.000E+13 .000 .00
O+C2H2<=>H+HCCO 1.350E+07 2.000 1900.00
O+C2H2<=>OH+C2H 4.600E+19 -1.410 28950.00
O+C2H2<=>CO+CH2 6.940E+06 2.000 1900.00
O+C2H3<=>H+CH2CO 3.000E+13 .000 .00
O+C2H4<=>CH3+HCO 1.250E+07 1.830 220.00
O+C2H5<=>CH3+CH2O 2.240E+13 .000 .00
O+C2H6<=>OH+C2H5 8.980E+07 1.920 5690.00
O+HCCO<=>H+2CO 1.000E+14 .000 .00
!% (O) + (H)(C)(C-O) = (H) + (C)(O) + (C-O)
O+CH2CO<=>OH+HCCO 1.000E+13 .000 8000.00
O+CH2CO<=>CH2+CO2 1.750E+12 .000 1350.00
O2+CO<=>O+CO2 2.500E+12 .000 47800.00
O2+CH2O<=>HO2+HCO 1.000E+14 .000 40000.00
H+O2+M<=>HO2+M 2.800E+18 -.860 .00
O2/ .00/ H2O/ .00/ CO/ .75/ CO2/1.50/ C2H6/1.50/ N2/ .00/ AR/ .00/
H+2O2<=>HO2+O2 2.080E+19 -1.240 .00
H+O2+H2O<=>HO2+H2O 11.26E+18 -.760 .00
H+O2+N2<=>HO2+N2 2.600E+19 -1.240 .00
H+O2+AR<=>HO2+AR 7.000E+17 -.800 .00
H+O2<=>O+OH 2.650E+16 -.6707 17041.00
2H+M<=>H2+M 1.000E+18 -1.000 .00
H2/ .00/ H2O/ .00/ CH4/2.00/ CO2/ .00/ C2H6/3.00/ AR/ .63/
2H+H2<=>2H2 9.000E+16 -.600 .00
2H+H2O<=>H2+H2O 6.000E+19 -1.250 .00
2H+CO2<=>H2+CO2 5.500E+20 -2.000 .00
H+OH+M<=>H2O+M 2.200E+22 -2.000 .00
H2/ .73/ H2O/3.65/ CH4/2.00/ C2H6/3.00/ AR/ .38/
H+HO2<=>O+H2O 3.970E+12 .000 671.00
H+HO2<=>O2+H2 4.480E+13 .000 1068.00
H+HO2<=>2OH 0.840E+14 .000 635.00
H+H2O2<=>HO2+H2 1.210E+07 2.000 5200.00
H+H2O2<=>OH+H2O 1.000E+13 .000 3600.00
!% (H) + (O-H)(O-H) = (H)(O-H) + (O-H)
H+CH<=>C+H2 1.650E+14 .000 .00
H+CH2(+M)<=>CH3(+M) 6.000E+14 .000 .00
LOW / 1.040E+26 -2.760 1600.00/
TROE/ .5620 91.00 5836.00 8552.00/
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+CH2(S)<=>CH+H2 3.000E+13 .000 .00
H+CH3(+M)<=>CH4(+M) 13.90E+15 -.534 536.00
LOW / 2.620E+33 -4.760 2440.00/
TROE/ .7830 74.00 2941.00 6964.00 /
H2/2.00/ H2O/6.00/ CH4/3.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+CH4<=>CH3+H2 6.600E+08 1.620 10840.00
H+HCO(+M)<=>CH2O(+M) 1.090E+12 .480 -260.00
LOW / 2.470E+24 -2.570 425.00/
TROE/ .7824 271.00 2755.00 6570.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+HCO<=>H2+CO 7.340E+13 .000 .00
H+CH2O(+M)<=>CH2OH(+M) 5.400E+11 .454 3600.00
LOW / 1.270E+32 -4.820 6530.00/
TROE/ .7187 103.00 1291.00 4160.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
H+CH2O(+M)<=>CH3O(+M) 5.400E+11 .454 2600.00
LOW / 2.200E+30 -4.800 5560.00/
TROE/ .7580 94.00 1555.00 4200.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
H+CH2O<=>HCO+H2 5.740E+07 1.900 2742.00
H+CH2OH(+M)<=>CH3OH(+M) 1.055E+12 .500 86.00
LOW / 4.360E+31 -4.650 5080.00/
TROE/ .600 100.00 90000.0 10000.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
H+CH2OH<=>H2+CH2O 2.000E+13 .000 .00
H+CH2OH<=>OH+CH3 1.650E+11 .650 -284.00
!% (H) + (H2-C)(O-H) = (H)(H2-C) + (O-H)
H+CH2OH<=>CH2(S)+H2O 3.280E+13 -.090 610.00
H+CH3O(+M)<=>CH3OH(+M) 2.430E+12 .515 50.00
LOW / 4.660E+41 -7.440 14080.0/
TROE/ .700 100.00 90000.0 10000.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
H+CH3O<=>H+CH2OH 4.150E+07 1.630 1924.00
H+CH3O<=>H2+CH2O 2.000E+13 .000 .00
H+CH3O<=>OH+CH3 1.500E+12 .500 -110.00
H+CH3O<=>CH2(S)+H2O 2.620E+14 -.230 1070.00
H+CH3OH<=>CH2OH+H2 1.700E+07 2.100 4870.00
H+CH3OH<=>CH3O+H2 4.200E+06 2.100 4870.00
H+C2H(+M)<=>C2H2(+M) 1.000E+17 -1.000 .00
LOW / 3.750E+33 -4.800 1900.00/
TROE/ .6464 132.00 1315.00 5566.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+C2H2(+M)<=>C2H3(+M) 5.600E+12 .000 2400.00
LOW / 3.800E+40 -7.270 7220.00/
TROE/ .7507 98.50 1302.00 4167.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+C2H3(+M)<=>C2H4(+M) 6.080E+12 .270 280.00
LOW / 1.400E+30 -3.860 3320.00/
TROE/ .7820 207.50 2663.00 6095.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+C2H3<=>H2+C2H2 3.000E+13 .000 .00
H+C2H4(+M)<=>C2H5(+M) 0.540E+12 .454 1820.00
LOW / 0.600E+42 -7.620 6970.00/
TROE/ .9753 210.00 984.00 4374.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+C2H4<=>C2H3+H2 1.325E+06 2.530 12240.00
H+C2H5(+M)<=>C2H6(+M) 5.210E+17 -.990 1580.00
LOW / 1.990E+41 -7.080 6685.00/
TROE/ .8422 125.00 2219.00 6882.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+C2H5<=>H2+C2H4 2.000E+12 .000 .00
H+C2H6<=>C2H5+H2 1.150E+08 1.900 7530.00
H+HCCO<=>CH2(S)+CO 1.000E+14 .000 .00
H+CH2CO<=>HCCO+H2 5.000E+13 .000 8000.00
H+CH2CO<=>CH3+CO 1.130E+13 .000 3428.00
H+HCCOH<=>H+CH2CO 1.000E+13 .000 .00
H2+CO(+M)<=>CH2O(+M) 4.300E+07 1.500 79600.00
LOW / 5.070E+27 -3.420 84350.00/
TROE/ .9320 197.00 1540.00 10300.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
OH+H2<=>H+H2O 2.160E+08 1.510 3430.00
2OH(+M)<=>H2O2(+M) 7.400E+13 -.370 .00
LOW / 2.300E+18 -.900 -1700.00/
TROE/ .7346 94.00 1756.00 5182.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
2OH<=>O+H2O 3.570E+04 2.400 -2110.00
OH+HO2<=>O2+H2O 1.450E+13 .000 -500.00
DUPLICATE
OH+H2O2<=>HO2+H2O 2.000E+12 .000 427.00
DUPLICATE
OH+H2O2<=>HO2+H2O 1.700E+18 .000 29410.00
DUPLICATE
OH+C<=>H+CO 5.000E+13 .000 .00
OH+CH<=>H+HCO 3.000E+13 .000 .00
OH+CH2<=>H+CH2O 2.000E+13 .000 .00
OH+CH2<=>CH+H2O 1.130E+07 2.000 3000.00
OH+CH2(S)<=>H+CH2O 3.000E+13 .000 .00
OH+CH3(+M)<=>CH3OH(+M) 2.790E+18 -1.430 1330.00
LOW / 4.000E+36 -5.920 3140.00/
TROE/ .4120 195.0 5900.00 6394.00/
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
OH+CH3<=>CH2+H2O 5.600E+07 1.600 5420.00
OH+CH3<=>CH2(S)+H2O 6.440E+17 -1.340 1417.00
OH+CH4<=>CH3+H2O 1.000E+08 1.600 3120.00
OH+CO<=>H+CO2 4.760E+07 1.228 70.00
OH+HCO<=>H2O+CO 5.000E+13 .000 .00
OH+CH2O<=>HCO+H2O 3.430E+09 1.180 -447.00
OH+CH2OH<=>H2O+CH2O 5.000E+12 .000 .00
OH+CH3O<=>H2O+CH2O 5.000E+12 .000 .00
OH+CH3OH<=>CH2OH+H2O 1.440E+06 2.000 -840.00
OH+CH3OH<=>CH3O+H2O 6.300E+06 2.000 1500.00
OH+C2H<=>H+HCCO 2.000E+13 .000 .00
OH+C2H2<=>H+CH2CO 2.180E-04 4.500 -1000.00
OH+C2H2<=>H+HCCOH 5.040E+05 2.300 13500.00
OH+C2H2<=>C2H+H2O 3.370E+07 2.000 14000.00
OH+C2H2<=>CH3+CO 4.830E-04 4.000 -2000.00
OH+C2H3<=>H2O+C2H2 5.000E+12 .000 .00
OH+C2H4<=>C2H3+H2O 3.600E+06 2.000 2500.00
OH+C2H6<=>C2H5+H2O 3.540E+06 2.120 870.00
OH+CH2CO<=>HCCO+H2O 7.500E+12 .000 2000.00
2HO2<=>O2+H2O2 1.300E+11 .000 -1630.00
DUPLICATE
2HO2<=>O2+H2O2 4.200E+14 .000 12000.00
DUPLICATE
HO2+CH2<=>OH+CH2O 2.000E+13 .000 .00
HO2+CH3<=>O2+CH4 1.000E+12 .000 .00
HO2+CH3<=>OH+CH3O 3.780E+13 .000 .00
HO2+CO<=>OH+CO2 1.500E+14 .000 23600.00
HO2+CH2O<=>HCO+H2O2 5.600E+06 2.000 12000.00
C+O2<=>O+CO 5.800E+13 .000 576.00
C+CH2<=>H+C2H 5.000E+13 .000 .00
C+CH3<=>H+C2H2 5.000E+13 .000 .00
CH+O2<=>O+HCO 6.710E+13 .000 .00
CH+H2<=>H+CH2 1.080E+14 .000 3110.00
CH+H2O<=>H+CH2O 5.710E+12 .000 -755.00
CH+CH2<=>H+C2H2 4.000E+13 .000 .00
!% (H-C) + (H-C)(H) = (H-C)(H-C) + (H) ! uncertain
CH+CH3<=>H+C2H3 3.000E+13 .000 .00
!% (H-C) + (H2-C)(H) = (H-C)(H2-C) + (H) ! uncertain
CH+CH4<=>H+C2H4 6.000E+13 .000 .00
!% (H-C) + (H3-C)(H) = (H-C)(H3-C) + (H) ! uncertain
CH+CO(+M)<=>HCCO(+M) 5.000E+13 .000 .00
LOW / 2.690E+28 -3.740 1936.00/
TROE/ .5757 237.00 1652.00 5069.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
CH+CO2<=>HCO+CO 1.900E+14 .000 15792.00
CH+CH2O<=>H+CH2CO 9.460E+13 .000 -515.00
!% (O-H2-C) + (C)(H) = (O-H2-C)(C) + (H) ! uncertain
CH+HCCO<=>CO+C2H2 5.000E+13 .000 .00
CH2+O2=>OH+H+CO 5.000E+12 .000 1500.00
CH2+H2<=>H+CH3 5.000E+05 2.000 7230.00
2CH2<=>H2+C2H2 1.600E+15 .000 11944.00
CH2+CH3<=>H+C2H4 4.000E+13 .000 .00
!% (H2-C) + (H2-C)(H) = (H2-C)(H2-C) + (H)
CH2+CH4<=>2CH3 2.460E+06 2.000 8270.00
CH2+CO(+M)<=>CH2CO(+M) 8.100E+11 .500 4510.00
LOW / 2.690E+33 -5.110 7095.00/
TROE/ .5907 275.00 1226.00 5185.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
CH2+HCCO<=>C2H3+CO 3.000E+13 .000 .00
CH2(S)+N2<=>CH2+N2 1.500E+13 .000 600.00
CH2(S)+AR<=>CH2+AR 9.000E+12 .000 600.00
CH2(S)+O2<=>H+OH+CO 2.800E+13 .000 .00
CH2(S)+O2<=>CO+H2O 1.200E+13 .000 .00
CH2(S)+H2<=>CH3+H 7.000E+13 .000 .00
CH2(S)+H2O(+M)<=>CH3OH(+M) 4.820E+17 -1.160 1145.00
LOW / 1.880E+38 -6.360 5040.00/
TROE/ .6027 208.00 3922.00 10180.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
CH2(S)+H2O<=>CH2+H2O 3.000E+13 .000 .00
CH2(S)+CH3<=>H+C2H4 1.200E+13 .000 -570.00
CH2(S)+CH4<=>2CH3 1.600E+13 .000 -570.00
!% (H2-C) + (H2-C)(H) = (H2-C)(H2-C) + (H)
CH2(S)+CO<=>CH2+CO 9.000E+12 .000 .00
CH2(S)+CO2<=>CH2+CO2 7.000E+12 .000 .00
CH2(S)+CO2<=>CO+CH2O 1.400E+13 .000 .00
CH2(S)+C2H6<=>CH3+C2H5 4.000E+13 .000 -550.00
CH3+O2<=>O+CH3O 3.560E+13 .000 30480.00
CH3+O2<=>OH+CH2O 2.310E+12 .000 20315.00
CH3+H2O2<=>HO2+CH4 2.450E+04 2.470 5180.00
2CH3(+M)<=>C2H6(+M) 6.770E+16 -1.180 654.00
LOW / 3.400E+41 -7.030 2762.00/
TROE/ .6190 73.20 1180.00 9999.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
2CH3<=>H+C2H5 6.840E+12 .100 10600.00
CH3+HCO<=>CH4+CO 2.648E+13 .000 .00
CH3+CH2O<=>HCO+CH4 3.320E+03 2.810 5860.00
CH3+CH3OH<=>CH2OH+CH4 3.000E+07 1.500 9940.00
CH3+CH3OH<=>CH3O+CH4 1.000E+07 1.500 9940.00
CH3+C2H4<=>C2H3+CH4 2.270E+05 2.000 9200.00
CH3+C2H6<=>C2H5+CH4 6.140E+06 1.740 10450.00
HCO+H2O<=>H+CO+H2O 1.500E+18 -1.000 17000.00
HCO+M<=>H+CO+M 1.870E+17 -1.000 17000.00
H2/2.00/ H2O/ .00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/
HCO+O2<=>HO2+CO 13.45E+12 .000 400.00
CH2OH+O2<=>HO2+CH2O 1.800E+13 .000 900.00
CH3O+O2<=>HO2+CH2O 4.280E-13 7.600 -3530.00
C2H+O2<=>HCO+CO 1.000E+13 .000 -755.00
C2H+H2<=>H+C2H2 5.680E+10 0.900 1993.00
C2H3+O2<=>HCO+CH2O 4.580E+16 -1.390 1015.00
C2H4(+M)<=>H2+C2H2(+M) 8.000E+12 .440 86770.00
LOW / 1.580E+51 -9.300 97800.00/
TROE/ .7345 180.00 1035.00 5417.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
C2H5+O2<=>HO2+C2H4 8.400E+11 .000 3875.00
HCCO+O2<=>OH+2CO 3.200E+12 .000 854.00
!% (H)(C)(C-O) + (O)(O) = (O)(H) + (C)(O) + (C-O)
2HCCO<=>2CO+C2H2 1.000E+13 .000 .00
!% (H-C)(C-O) + (H-C)(C-O) = (C-O) + (C-O) + (H-C)(H-C)
N+NO<=>N2+O 2.700E+13 .000 355.00
N+O2<=>NO+O 9.000E+09 1.000 6500.00
N+OH<=>NO+H 3.360E+13 .000 385.00
N2O+O<=>N2+O2 1.400E+12 .000 10810.00
N2O+O<=>2NO 2.900E+13 .000 23150.00
N2O+H<=>N2+OH 3.870E+14 .000 18880.00
N2O+OH<=>N2+HO2 2.000E+12 .000 21060.00
N2O(+M)<=>N2+O(+M) 7.910E+10 .000 56020.00
LOW / 6.370E+14 .000 56640.00/
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .625/
HO2+NO<=>NO2+OH 2.110E+12 .000 -480.00
NO+O+M<=>NO2+M 1.060E+20 -1.410 .00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
NO2+O<=>NO+O2 3.900E+12 .000 -240.00
NO2+H<=>NO+OH 1.320E+14 .000 360.00
NH+O<=>NO+H 4.000E+13 .000 .00
NH+H<=>N+H2 3.200E+13 .000 330.00
NH+OH<=>HNO+H 2.000E+13 .000 .00
NH+OH<=>N+H2O 2.000E+09 1.200 .00
NH+O2<=>HNO+O 4.610E+05 2.000 6500.00
NH+O2<=>NO+OH 1.280E+06 1.500 100.00
NH+N<=>N2+H 1.500E+13 .000 .00
NH+H2O<=>HNO+H2 2.000E+13 .000 13850.00
NH+NO<=>N2+OH 2.160E+13 -.230 .00
NH+NO<=>N2O+H 3.650E+14 -.450 .00
NH2+O<=>OH+NH 3.000E+12 .000 .00
NH2+O<=>H+HNO 3.900E+13 .000 .00
NH2+H<=>NH+H2 4.000E+13 .000 3650.00
NH2+OH<=>NH+H2O 9.000E+07 1.500 -460.00
NNH<=>N2+H 3.300E+08 .000 .00
NNH+M<=>N2+H+M 1.300E+14 -.110 4980.00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
NNH+O2<=>HO2+N2 5.000E+12 .000 .00
NNH+O<=>OH+N2 2.500E+13 .000 .00
NNH+O<=>NH+NO 7.000E+13 .000 .00
NNH+H<=>H2+N2 5.000E+13 .000 .00
NNH+OH<=>H2O+N2 2.000E+13 .000 .00
NNH+CH3<=>CH4+N2 2.500E+13 .000 .00
H+NO+M<=>HNO+M 4.480E+19 -1.320 740.00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
HNO+O<=>NO+OH 2.500E+13 .000 .00
HNO+H<=>H2+NO 9.000E+11 .720 660.00
HNO+OH<=>NO+H2O 1.300E+07 1.900 -950.00
HNO+O2<=>HO2+NO 1.000E+13 .000 13000.00
CN+O<=>CO+N 7.700E+13 .000 .00
CN+OH<=>NCO+H 4.000E+13 .000 .00
CN+H2O<=>HCN+OH 8.000E+12 .000 7460.00
CN+O2<=>NCO+O 6.140E+12 .000 -440.00
CN+H2<=>HCN+H 2.950E+05 2.450 2240.00
NCO+O<=>NO+CO 2.350E+13 .000 .00
!% (O) + (N)(O-C) = (O)(N) + (O-C)
NCO+H<=>NH+CO 5.400E+13 .000 .00
NCO+OH<=>NO+H+CO 0.250E+13 .000 .00
!% (N)(C-O) + (O)(H) = (N)(O) + (C-O) + (H)
NCO+N<=>N2+CO 2.000E+13 .000 .00
NCO+O2<=>NO+CO2 2.000E+12 .000 20000.00
NCO+M<=>N+CO+M 3.100E+14 .000 54050.00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
NCO+NO<=>N2O+CO 1.900E+17 -1.520 740.00
NCO+NO<=>N2+CO2 3.800E+18 -2.000 800.00
HCN+M<=>H+CN+M 1.040E+29 -3.300 126600.00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
HCN+O<=>NCO+H 2.030E+04 2.640 4980.00
HCN+O<=>NH+CO 5.070E+03 2.640 4980.00
HCN+O<=>CN+OH 3.910E+09 1.580 26600.00
HCN+OH<=>HOCN+H 1.100E+06 2.030 13370.00
!% (O-H) + (C-N)(H) = (O-H)(C-N) + (H)
HCN+OH<=>HNCO+H 4.400E+03 2.260 6400.00
!% (H-C-N) + (O)(H) = (H-C-N)(O) + (H)
HCN+OH<=>NH2+CO 1.600E+02 2.560 9000.00
H+HCN(+M)<=>H2CN(+M) 3.300E+13 .000 .00
LOW / 1.400E+26 -3.400 1900.00/
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H2CN+N<=>N2+CH2 6.000E+13 .000 400.00
C+N2<=>CN+N 6.300E+13 .000 46020.00
CH+N2<=>HCN+N 3.120E+09 0.880 20130.00
CH+N2(+M)<=>HCNN(+M) 3.100E+12 .150 .00
LOW / 1.300E+25 -3.160 740.00/
TROE/ .6670 235.00 2117.00 4536.00 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ 1.0/
CH2+N2<=>HCN+NH 1.000E+13 .000 74000.00
CH2(S)+N2<=>NH+HCN 1.000E+11 .000 65000.00
C+NO<=>CN+O 1.900E+13 .000 .00
C+NO<=>CO+N 2.900E+13 .000 .00
CH+NO<=>HCN+O 4.100E+13 .000 .00
CH+NO<=>H+NCO 1.620E+13 .000 .00
CH+NO<=>N+HCO 2.460E+13 .000 .00
CH2+NO<=>H+HNCO 3.100E+17 -1.380 1270.00
CH2+NO<=>OH+HCN 2.900E+14 -.690 760.00
CH2+NO<=>H+HCNO 3.800E+13 -.360 580.00
CH2(S)+NO<=>H+HNCO 3.100E+17 -1.380 1270.00
CH2(S)+NO<=>OH+HCN 2.900E+14 -.690 760.00
CH2(S)+NO<=>H+HCNO 3.800E+13 -.360 580.00
CH3+NO<=>HCN+H2O 9.600E+13 .000 28800.00
CH3+NO<=>H2CN+OH 1.000E+12 .000 21750.00
HCNN+O<=>CO+H+N2 2.200E+13 .000 .00
HCNN+O<=>HCN+NO 2.000E+12 .000 .00
HCNN+O2<=>O+HCO+N2 1.200E+13 .000 .00
HCNN+OH<=>H+HCO+N2 1.200E+13 .000 .00
!% (H)(C)(N2) + (O-H) = (H) + (C)(O-H) + (N2)
HCNN+H<=>CH2+N2 1.000E+14 .000 .00
HNCO+O<=>NH+CO2 9.800E+07 1.410 8500.00
HNCO+O<=>HNO+CO 1.500E+08 1.570 44000.00
!% (O) + (H-N)(O-C) = (O)(H-N) + (O-C)
HNCO+O<=>NCO+OH 2.200E+06 2.110 11400.00
HNCO+H<=>NH2+CO 2.250E+07 1.700 3800.00
HNCO+H<=>H2+NCO 1.050E+05 2.500 13300.00
HNCO+OH<=>NCO+H2O 3.300E+07 1.500 3600.00
HNCO+OH<=>NH2+CO2 3.300E+06 1.500 3600.00
HNCO+M<=>NH+CO+M 1.180E+16 .000 84720.00
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
HCNO+H<=>H+HNCO 2.100E+15 -.690 2850.00
HCNO+H<=>OH+HCN 2.700E+11 .180 2120.00
!% (H) + (C-N)(O-H) = (H)(C-N) + (O-H)
HCNO+H<=>NH2+CO 1.700E+14 -.750 2890.00
HOCN+H<=>H+HNCO 2.000E+07 2.000 2000.00
HCCO+NO<=>HCNO+CO 0.900E+13 .000 .00
CH3+N<=>H2CN+H 6.100E+14 -.310 290.00
CH3+N<=>HCN+H2 3.700E+12 .150 -90.00
NH3+H<=>NH2+H2 5.400E+05 2.400 9915.00
NH3+OH<=>NH2+H2O 5.000E+07 1.600 955.00
NH3+O<=>NH2+OH 9.400E+06 1.940 6460.00
NH+CO2<=>HNO+CO 1.000E+13 .000 14350.00
CN+NO2<=>NCO+NO 6.160E+15 -0.752 345.00
NCO+NO2<=>N2O+CO2 3.250E+12 .000 -705.00
!% (N)(C-O) + (N-O)(O) = (N)(N-O) + (C-O)(O)
N+CO2<=>NO+CO 3.000E+12 .000 11300.00
O+CH3=>H+H2+CO 3.370E+13 .000 .00
O+C2H4<=>H+CH2CHO 6.700E+06 1.830 220.00
O+C2H5<=>H+CH3CHO 1.096E+14 .000 .00
OH+HO2<=>O2+H2O 0.500E+16 .000 17330.00
DUPLICATE
OH+CH3=>H2+CH2O 8.000E+09 .500 -1755.00
CH+H2(+M)<=>CH3(+M) 1.970E+12 .430 -370.00
LOW/ 4.820E+25 -2.80 590.0 /
TROE/ .578 122.0 2535.0 9365.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
CH2+O2=>2H+CO2 5.800E+12 .000 1500.00
CH2+O2<=>O+CH2O 2.400E+12 .000 1500.00
CH2+CH2=>2H+C2H2 2.000E+14 .000 10989.00
!% (H)(C-H) + (H)(C-H) = (H) + (H) + (C-H)(C-H)
CH2(S)+H2O=>H2+CH2O 6.820E+10 .250 -935.00
C2H3+O2<=>O+CH2CHO 3.030E+11 .290 11.00
C2H3+O2<=>HO2+C2H2 1.337E+06 1.610 -384.00
O+CH3CHO<=>OH+CH2CHO 5.840E+12 .000 1808.00
O+CH3CHO=>OH+CH3+CO 5.840E+12 .000 1808.00
!% (O) + (C-H3)(C-O)(H) = (H)(O) + (C-O) + (C-H3)
O2+CH3CHO=>HO2+CH3+CO 3.010E+13 .000 39150.00
!% (O2) + (C-H3)(C-O)(H) = (H)(O2) + (C-O) + (C-H3)
H+CH3CHO<=>CH2CHO+H2 2.050E+09 1.160 2405.00
H+CH3CHO=>CH3+H2+CO 2.050E+09 1.160 2405.00
!% (H) + (C-H3)(H)(C-O) = (H)(H) + (C-O) + (C-H3)
OH+CH3CHO=>CH3+H2O+CO 2.343E+10 0.730 -1113.00
!% (O-H) + (C-H3)(H)(C-O) = (H)(O-H) + (C-O) + (C-H3)
HO2+CH3CHO=>CH3+H2O2+CO 3.010E+12 .000 11923.00
!% (O-H2) + (C-H3)(H)(C-O) = (H)(O-H2) + (C-O) + (C-H3)
CH3+CH3CHO=>CH3+CH4+CO 2.720E+06 1.770 5920.00
!% (C-H3) + (C-H3)(H)(C-O) = (H)(C-H3) + (C-O) + (C-H3)
H+CH2CO(+M)<=>CH2CHO(+M) 4.865E+11 0.422 -1755.00
LOW/ 1.012E+42 -7.63 3854.0/
TROE/ 0.465 201.0 1773.0 5333.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
O+CH2CHO=>H+CH2+CO2 1.500E+14 .000 .00
O2+CH2CHO=>OH+CO+CH2O 1.810E+10 .000 .00
!% (O)(O) + (C-H2)(C-O)(H) = (O)(H) + (C-H2)(O) + (C-O)
O2+CH2CHO=>OH+2HCO 2.350E+10 .000 .00
!% (O)(O) + (C-H)(C-H-O)(H) = (O)(H) + (C-H)(O) + (C-H-O)
H+CH2CHO<=>CH3+HCO 2.200E+13 .000 .00
H+CH2CHO<=>CH2CO+H2 1.100E+13 .000 .00
OH+CH2CHO<=>H2O+CH2CO 1.200E+13 .000 .00
OH+CH2CHO<=>HCO+CH2OH 3.010E+13 .000 .00
!% (O-H) + (H2-C)(O-H-C) = (O-H)(H2-C) + (O-H-C)
CH3+C2H5(+M)<=>C3H8(+M) .9430E+13 .000 .00
LOW/ 2.710E+74 -16.82 13065.0 /
TROE/ .1527 291.0 2742.0 7748.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
O+C3H8<=>OH+C3H7 1.930E+05 2.680 3716.00
H+C3H8<=>C3H7+H2 1.320E+06 2.540 6756.00
OH+C3H8<=>C3H7+H2O 3.160E+07 1.800 934.00
C3H7+H2O2<=>HO2+C3H8 3.780E+02 2.720 1500.00
CH3+C3H8<=>C3H7+CH4 0.903E+00 3.650 7154.00
CH3+C2H4(+M)<=>C3H7(+M) 2.550E+06 1.600 5700.00
LOW/ 3.00E+63 -14.6 18170./
TROE/ .1894 277.0 8748.0 7891.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
O+C3H7<=>C2H5+CH2O 9.640E+13 .000 .00
H+C3H7(+M)<=>C3H8(+M) 3.613E+13 .000 .00
LOW/ 4.420E+61 -13.545 11357.0/
TROE/ .315 369.0 3285.0 6667.0 /
H2/2.00/ H2O/6.00/ CH4/2.00/ CO/1.50/ CO2/2.00/ C2H6/3.00/ AR/ .70/
H+C3H7<=>CH3+C2H5 4.060E+06 2.190 890.00
OH+C3H7<=>C2H5+CH2OH 2.410E+13 .000 .00
HO2+C3H7<=>O2+C3H8 2.550E+10 0.255 -943.00
HO2+C3H7=>OH+C2H5+CH2O 2.410E+13 .000 .00
!% (O-H)(O) + (C2-H5)(C-H2) = (O-H) + (C2-H5) + (O)(C-H2)
CH3+C3H7<=>2C2H5 1.927E+13 -0.320 .00
END

View file

@ -1,11 +1,4 @@
# units(length='cm', time='s', quantity='mol', act_energy='cal/mol')
# Generated from file h2o2.inp
# by ck2cti on Mon Aug 25 09:52:58 2003
#
# Transport data from file ../transport/gri30_tran.dat.
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
ideal_gas(name = "ohmech", ideal_gas(name = "ohmech",
elements = " O H Ar ", elements = " O H Ar ",
@ -13,7 +6,7 @@ ideal_gas(name = "ohmech",
reactions = "all", reactions = "all",
transport = "Mix", transport = "Mix",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
ideal_gas(name = "ohmech-multi", ideal_gas(name = "ohmech-multi",
elements = " O H Ar ", elements = " O H Ar ",
@ -21,272 +14,255 @@ ideal_gas(name = "ohmech-multi",
reactions = "all", reactions = "all",
transport = "Multi", transport = "Multi",
initial_state = state(temperature = 300.0, initial_state = state(temperature = 300.0,
pressure = OneAtm) ) pressure = OneAtm) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Species data # Species data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "H2", species(name='H2',
atoms = " H:2 ", atoms='H:2',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 2.344331120E+00, 7.980520750E-03, [ 2.34433112E+00, 7.98052075E-03, -1.94781510E-05,
-1.947815100E-05, 2.015720940E-08, -7.376117610E-12, 2.01572094E-08, -7.37611761E-12, -9.17935173E+02,
-9.179351730E+02, 6.830102380E-01] ), 6.83010238E-01]),
NASA( [ 1000.00, 3500.00], [ 3.337279200E+00, -4.940247310E-05, NASA([1000.00, 3500.00],
4.994567780E-07, -1.795663940E-10, 2.002553760E-14, [ 3.33727920E+00, -4.94024731E-05, 4.99456778E-07,
-9.501589220E+02, -3.205023310E+00] ) -1.79566394E-10, 2.00255376E-14, -9.50158922E+02,
), -3.20502331E+00])),
transport = gas_transport( transport=gas_transport(geom='linear',
geom = "linear", diam=2.92,
diam = 2.92, well_depth=38.0,
well_depth = 38.00, polar=0.79,
polar = 0.79, rot_relax=280.0),
rot_relax = 280.00), note='TPIS78')
note = "TPIS78"
)
species(name = "H", species(name='H',
atoms = " H:1 ", atoms='H:1',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 7.053328190E-13, [ 2.50000000E+00, 7.05332819E-13, -1.99591964E-15,
-1.995919640E-15, 2.300816320E-18, -9.277323320E-22, 2.30081632E-18, -9.27732332E-22, 2.54736599E+04,
2.547365990E+04, -4.466828530E-01] ), -4.46682853E-01]),
NASA( [ 1000.00, 3500.00], [ 2.500000010E+00, -2.308429730E-11, NASA([1000.00, 3500.00],
1.615619480E-14, -4.735152350E-18, 4.981973570E-22, [ 2.50000001E+00, -2.30842973E-11, 1.61561948E-14,
2.547365990E+04, -4.466829140E-01] ) -4.73515235E-18, 4.98197357E-22, 2.54736599E+04,
), -4.46682914E-01])),
transport = gas_transport( transport=gas_transport(geom='atom',
geom = "atom", diam=2.05,
diam = 2.05, well_depth=145.0),
well_depth = 145.00), note='L7/88')
note = "L 7/88"
)
species(name = "O", species(name='O',
atoms = " O:1 ", atoms='O:1',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 3.168267100E+00, -3.279318840E-03, [ 3.16826710E+00, -3.27931884E-03, 6.64306396E-06,
6.643063960E-06, -6.128066240E-09, 2.112659710E-12, -6.12806624E-09, 2.11265971E-12, 2.91222592E+04,
2.912225920E+04, 2.051933460E+00] ), 2.05193346E+00]),
NASA( [ 1000.00, 3500.00], [ 2.569420780E+00, -8.597411370E-05, NASA([1000.00, 3500.00],
4.194845890E-08, -1.001777990E-11, 1.228336910E-15, [ 2.56942078E+00, -8.59741137E-05, 4.19484589E-08,
2.921757910E+04, 4.784338640E+00] ) -1.00177799E-11, 1.22833691E-15, 2.92175791E+04,
), 4.78433864E+00])),
transport = gas_transport( transport=gas_transport(geom='atom',
geom = "atom", diam=2.75,
diam = 2.75, well_depth=80.0),
well_depth = 80.00), note='L1/90')
note = "L 1/90"
)
species(name = "O2", species(name='O2',
atoms = " O:2 ", atoms='O:2',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 3.782456360E+00, -2.996734160E-03, [ 3.78245636E+00, -2.99673416E-03, 9.84730201E-06,
9.847302010E-06, -9.681295090E-09, 3.243728370E-12, -9.68129509E-09, 3.24372837E-12, -1.06394356E+03,
-1.063943560E+03, 3.657675730E+00] ), 3.65767573E+00]),
NASA( [ 1000.00, 3500.00], [ 3.282537840E+00, 1.483087540E-03, NASA([1000.00, 3500.00],
-7.579666690E-07, 2.094705550E-10, -2.167177940E-14, [ 3.28253784E+00, 1.48308754E-03, -7.57966669E-07,
-1.088457720E+03, 5.453231290E+00] ) 2.09470555E-10, -2.16717794E-14, -1.08845772E+03,
), 5.45323129E+00])),
transport = gas_transport( transport=gas_transport(geom='linear',
geom = "linear", diam=3.458,
diam = 3.46, well_depth=107.4,
well_depth = 107.40, polar=1.6,
polar = 1.60, rot_relax=3.8),
rot_relax = 3.80), note='TPIS89')
note = "TPIS89"
)
species(name = "OH", species(name='OH',
atoms = " O:1 H:1 ", atoms='H:1 O:1',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 3.992015430E+00, -2.401317520E-03, [ 3.99201543E+00, -2.40131752E-03, 4.61793841E-06,
4.617938410E-06, -3.881133330E-09, 1.364114700E-12, -3.88113333E-09, 1.36411470E-12, 3.61508056E+03,
3.615080560E+03, -1.039254580E-01] ), -1.03925458E-01]),
NASA( [ 1000.00, 3500.00], [ 3.092887670E+00, 5.484297160E-04, NASA([1000.00, 3500.00],
1.265052280E-07, -8.794615560E-11, 1.174123760E-14, [ 3.09288767E+00, 5.48429716E-04, 1.26505228E-07,
3.858657000E+03, 4.476696100E+00] ) -8.79461556E-11, 1.17412376E-14, 3.85865700E+03,
), 4.47669610E+00])),
transport = gas_transport( transport=gas_transport(geom='linear',
geom = "linear", diam=2.75,
diam = 2.75, well_depth=80.0),
well_depth = 80.00), note='RUS78')
note = "RUS 78"
)
species(name = "H2O", species(name='H2O',
atoms = " H:2 O:1 ", atoms='O:1 H:2',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 4.198640560E+00, -2.036434100E-03, [ 4.19864056E+00, -2.03643410E-03, 6.52040211E-06,
6.520402110E-06, -5.487970620E-09, 1.771978170E-12, -5.48797062E-09, 1.77197817E-12, -3.02937267E+04,
-3.029372670E+04, -8.490322080E-01] ), -8.49032208E-01]),
NASA( [ 1000.00, 3500.00], [ 3.033992490E+00, 2.176918040E-03, NASA([1000.00, 3500.00],
-1.640725180E-07, -9.704198700E-11, 1.682009920E-14, [ 3.03399249E+00, 2.17691804E-03, -1.64072518E-07,
-3.000429710E+04, 4.966770100E+00] ) -9.70419870E-11, 1.68200992E-14, -3.00042971E+04,
), 4.96677010E+00])),
transport = gas_transport( transport=gas_transport(geom='nonlinear',
geom = "nonlinear", diam=2.605,
diam = 2.60, well_depth=572.4,
well_depth = 572.40, dipole=1.844,
dipole = 1.84, rot_relax=4.0),
rot_relax = 4.00), note='L8/89')
note = "L 8/89"
)
species(name = "HO2", species(name='HO2',
atoms = " H:1 O:2 ", atoms='O:2 H:1',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 4.301798010E+00, -4.749120510E-03, [ 4.30179801E+00, -4.74912051E-03, 2.11582891E-05,
2.115828910E-05, -2.427638940E-08, 9.292251240E-12, -2.42763894E-08, 9.29225124E-12, 2.94808040E+02,
2.948080400E+02, 3.716662450E+00] ), 3.71666245E+00]),
NASA( [ 1000.00, 3500.00], [ 4.017210900E+00, 2.239820130E-03, NASA([1000.00, 3500.00],
-6.336581500E-07, 1.142463700E-10, -1.079085350E-14, [ 4.01721090E+00, 2.23982013E-03, -6.33658150E-07,
1.118567130E+02, 3.785102150E+00] ) 1.14246370E-10, -1.07908535E-14, 1.11856713E+02,
), 3.78510215E+00])),
transport = gas_transport( transport=gas_transport(geom='nonlinear',
geom = "nonlinear", diam=3.458,
diam = 3.46, well_depth=107.4,
well_depth = 107.40, rot_relax=1.0),
rot_relax = 1.00), note='L5/89')
note = "L 5/89"
)
species(name = "H2O2",
atoms = " H:2 O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 4.276112690E+00, -5.428224170E-04,
1.673357010E-05, -2.157708130E-08, 8.624543630E-12,
-1.770258210E+04, 3.435050740E+00] ),
NASA( [ 1000.00, 3500.00], [ 4.165002850E+00, 4.908316940E-03,
-1.901392250E-06, 3.711859860E-10, -2.879083050E-14,
-1.786178770E+04, 2.916156620E+00] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 3.46,
well_depth = 107.40,
rot_relax = 3.80),
note = "L 7/88"
)
species(name = "AR",
atoms = " Ar:1 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750000E+02, 4.366000000E+00] )
),
transport = gas_transport(
geom = "atom",
diam = 3.33,
well_depth = 136.50),
note = "120186"
)
species(name='H2O2',
atoms='O:2 H:2',
thermo=(NASA([200.00, 1000.00],
[ 4.27611269E+00, -5.42822417E-04, 1.67335701E-05,
-2.15770813E-08, 8.62454363E-12, -1.77025821E+04,
3.43505074E+00]),
NASA([1000.00, 3500.00],
[ 4.16500285E+00, 4.90831694E-03, -1.90139225E-06,
3.71185986E-10, -2.87908305E-14, -1.78617877E+04,
2.91615662E+00])),
transport=gas_transport(geom='nonlinear',
diam=3.458,
well_depth=107.4,
rot_relax=3.8),
note='L7/88')
species(name='AR',
atoms='Ar:1',
thermo=(NASA([300.00, 1000.00],
[ 2.50000000E+00, 0.00000000E+00, 0.00000000E+00,
0.00000000E+00, 0.00000000E+00, -7.45375000E+02,
4.36600000E+00]),
NASA([1000.00, 5000.00],
[ 2.50000000E+00, 0.00000000E+00, 0.00000000E+00,
0.00000000E+00, 0.00000000E+00, -7.45375000E+02,
4.36600000E+00])),
transport=gas_transport(geom='atom',
diam=3.33,
well_depth=136.5),
note='120186')
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction 1 # Reaction 1
three_body_reaction( "2 O + M <=> O2 + M", [1.20000E+17, -1, 0], three_body_reaction('2 O + M <=> O2 + M', [1.200000e+17, -1.0, 0.0],
efficiencies = " AR:0.83 H2:2.4 H2O:15.4 ") efficiencies='AR:0.83 H2:2.4 H2O:15.4')
# Reaction 2 # Reaction 2
three_body_reaction( "O + H + M <=> OH + M", [5.00000E+17, -1, 0], three_body_reaction('O + H + M <=> OH + M', [5.000000e+17, -1.0, 0.0],
efficiencies = " AR:0.7 H2:2 H2O:6 ") efficiencies='AR:0.7 H2:2.0 H2O:6.0')
# Reaction 3 # Reaction 3
reaction( "O + H2 <=> H + OH", [3.87000E+04, 2.7, 6260]) reaction('O + H2 <=> H + OH', [3.870000e+04, 2.7, 6260.0])
# Reaction 4 # Reaction 4
reaction( "O + HO2 <=> OH + O2", [2.00000E+13, 0, 0]) reaction('O + HO2 <=> OH + O2', [2.000000e+13, 0.0, 0.0])
# Reaction 5 # Reaction 5
reaction( "O + H2O2 <=> OH + HO2", [9.63000E+06, 2, 4000]) reaction('O + H2O2 <=> OH + HO2', [9.630000e+06, 2.0, 4000.0])
# Reaction 6 # Reaction 6
reaction( "H + 2 O2 <=> HO2 + O2", [2.08000E+19, -1.24, 0]) three_body_reaction('H + O2 + M <=> HO2 + M', [2.800000e+18, -0.86, 0.0],
efficiencies='AR:0.0 H2O:0.0 O2:0.0')
# Reaction 7 # Reaction 7
reaction( "H + O2 + H2O <=> HO2 + H2O", [1.12600E+19, -0.76, 0]) reaction('H + 2 O2 <=> HO2 + O2', [2.080000e+19, -1.24, 0.0])
# Reaction 8 # Reaction 8
reaction( "H + O2 + AR <=> HO2 + AR", [7.00000E+17, -0.8, 0]) reaction('H + O2 + H2O <=> HO2 + H2O', [1.126000e+19, -0.76, 0.0])
# Reaction 9 # Reaction 9
reaction( "H + O2 <=> O + OH", [2.65000E+16, -0.6707, 17041]) reaction('H + O2 + AR <=> HO2 + AR', [7.000000e+17, -0.8, 0.0])
# Reaction 10 # Reaction 10
three_body_reaction( "2 H + M <=> H2 + M", [1.00000E+18, -1, 0], reaction('H + O2 <=> O + OH', [2.650000e+16, -0.6707, 17041.0])
efficiencies = " AR:0.63 H2:0 H2O:0 ")
# Reaction 11 # Reaction 11
reaction( "2 H + H2 <=> 2 H2", [9.00000E+16, -0.6, 0]) three_body_reaction('2 H + M <=> H2 + M', [1.000000e+18, -1.0, 0.0],
efficiencies='AR:0.63 H2:0.0 H2O:0.0')
# Reaction 12 # Reaction 12
reaction( "2 H + H2O <=> H2 + H2O", [6.00000E+19, -1.25, 0]) reaction('2 H + H2 <=> 2 H2', [9.000000e+16, -0.6, 0.0])
# Reaction 13 # Reaction 13
three_body_reaction( "H + OH + M <=> H2O + M", [2.20000E+22, -2, 0], reaction('2 H + H2O <=> H2 + H2O', [6.000000e+19, -1.25, 0.0])
efficiencies = " AR:0.38 H2:0.73 H2O:3.65 ")
# Reaction 14 # Reaction 14
reaction( "H + HO2 <=> O + H2O", [3.97000E+12, 0, 671]) three_body_reaction('H + OH + M <=> H2O + M', [2.200000e+22, -2.0, 0.0],
efficiencies='AR:0.38 H2:0.73 H2O:3.65')
# Reaction 15 # Reaction 15
reaction( "H + HO2 <=> O2 + H2", [4.48000E+13, 0, 1068]) reaction('H + HO2 <=> O + H2O', [3.970000e+12, 0.0, 671.0])
# Reaction 16 # Reaction 16
reaction( "H + HO2 <=> 2 OH", [8.40000E+13, 0, 635]) reaction('H + HO2 <=> O2 + H2', [4.480000e+13, 0.0, 1068.0])
# Reaction 17 # Reaction 17
reaction( "H + H2O2 <=> HO2 + H2", [1.21000E+07, 2, 5200]) reaction('H + HO2 <=> 2 OH', [8.400000e+13, 0.0, 635.0])
# Reaction 18 # Reaction 18
reaction( "H + H2O2 <=> OH + H2O", [1.00000E+13, 0, 3600]) reaction('H + H2O2 <=> HO2 + H2', [1.210000e+07, 2.0, 5200.0])
# Reaction 19 # Reaction 19
reaction( "OH + H2 <=> H + H2O", [2.16000E+08, 1.51, 3430]) reaction('H + H2O2 <=> OH + H2O', [1.000000e+13, 0.0, 3600.0])
# Reaction 20 # Reaction 20
falloff_reaction( "2 OH (+ M) <=> H2O2 (+ M)", reaction('OH + H2 <=> H + H2O', [2.160000e+08, 1.51, 3430.0])
kf = [7.40000E+13, -0.37, 0],
kf0 = [2.30000E+18, -0.9, -1700],
falloff = Troe(A = 0.7346, T3 = 94, T1 = 1756, T2 = 5182),
efficiencies = " AR:0.7 H2:2 H2O:6 ")
# Reaction 21 # Reaction 21
reaction( "2 OH <=> O + H2O", [3.57000E+04, 2.4, -2110]) falloff_reaction('2 OH (+ M) <=> H2O2 (+ M)',
kf=[7.400000e+13, -0.37, 0.0],
kf0=[2.300000e+18, -0.9, -1700.0],
efficiencies='AR:0.7 H2:2.0 H2O:6.0',
falloff=Troe(A=0.7346, T3=94.0, T1=1756.0, T2=5182.0))
# Reaction 22 # Reaction 22
reaction( "OH + HO2 <=> O2 + H2O", [1.45000E+13, 0, -500], reaction('2 OH <=> O + H2O', [3.570000e+04, 2.4, -2110.0])
options = 'duplicate')
# Reaction 23 # Reaction 23
reaction( "OH + H2O2 <=> HO2 + H2O", [2.00000E+12, 0, 427], reaction('OH + HO2 <=> O2 + H2O', [1.450000e+13, 0.0, -500.0],
options = 'duplicate') options='duplicate')
# Reaction 24 # Reaction 24
reaction( "OH + H2O2 <=> HO2 + H2O", [1.70000E+18, 0, 29410], reaction('OH + H2O2 <=> HO2 + H2O', [2.000000e+12, 0.0, 427.0],
options = 'duplicate') options='duplicate')
# Reaction 25 # Reaction 25
reaction( "2 HO2 <=> O2 + H2O2", [1.30000E+11, 0, -1630], reaction('OH + H2O2 <=> HO2 + H2O', [1.700000e+18, 0.0, 29410.0],
options = 'duplicate') options='duplicate')
# Reaction 26 # Reaction 26
reaction( "2 HO2 <=> O2 + H2O2", [4.20000E+14, 0, 12000], reaction('2 HO2 <=> O2 + H2O2', [1.300000e+11, 0.0, -1630.0],
options = 'duplicate') options='duplicate')
# Reaction 27 # Reaction 27
reaction( "OH + HO2 <=> O2 + H2O", [5.00000E+15, 0, 17330], reaction('2 HO2 <=> O2 + H2O2', [4.200000e+14, 0.0, 12000.0],
options = 'duplicate') options='duplicate')
# Reaction 28
reaction('OH + HO2 <=> O2 + H2O', [5.000000e+15, 0.0, 17330.0],
options='duplicate')

View file

@ -52,6 +52,8 @@ H2/2.00/ H2O/6.00/ AR/ .70/
O+H2<=>H+OH 3.870E+04 2.700 6260.00 O+H2<=>H+OH 3.870E+04 2.700 6260.00
O+HO2<=>OH+O2 2.000E+13 .000 .00 O+HO2<=>OH+O2 2.000E+13 .000 .00
O+H2O2<=>OH+HO2 9.630E+06 2.000 4000.00 O+H2O2<=>OH+HO2 9.630E+06 2.000 4000.00
H+O2+M<=>HO2+M 2.800E+18 -.860 .00
O2/ .00/ H2O/ .00/ AR/ .00/
H+2O2<=>HO2+O2 2.080E+19 -1.240 .00 H+2O2<=>HO2+O2 2.080E+19 -1.240 .00
H+O2+H2O<=>HO2+H2O 11.26E+18 -.760 .00 H+O2+H2O<=>HO2+H2O 11.26E+18 -.760 .00
H+O2+AR<=>HO2+AR 7.000E+17 -.800 .00 H+O2+AR<=>HO2+AR 7.000E+17 -.800 .00

View file

@ -0,0 +1,295 @@
#==============================================================================
# Cantera input file for an LCO/graphite lithium-ion battery
#
# This file includes a full set of thermodynamic and kinetic parameters of a
# lithium-ion battery, in particular:
# - Active materials: LiCoO2 (LCO) and LiC6 (graphite)
# - Organic electrolyte: EC/PC with 1M LiPF6
# - Interfaces: LCO/electrolyte and LiC6/electrolyte
# - Charge-transfer reactions at the two interfaces
#
# A MATLAB example using this file for simulating a discharge curve is
# samples/matlab/lithium_ion_battery.m
#
# Reference:
# M. Mayur, S. C. DeCaluwe, B. L. Kee, W. G. Bessler, “Modeling and simulation
# of the thermodynamics of lithium-ion battery intercalation materials in the
# open-source software Cantera,” Electrochim. Acta 323, 134797 (2019),
# https://doi.org/10.1016/j.electacta.2019.134797
#==============================================================================
#==============================================================================
# Bulk phases
#==============================================================================
#------------------------------------------------------------------------------
# Graphite (anode)
# Thermodynamic data based on half-cell measurements by K. Kumaresan et al.,
# J. Electrochem. Soc. 155, A164-A171 (2008)
#------------------------------------------------------------------------------
BinarySolutionTabulatedThermo(
name = "anode",
elements = "Li C",
species = "Li[anode] V[anode]",
standard_concentration = "unity",
tabulated_species = "Li[anode]",
tabulated_thermo = table(
moleFraction = ([5.75000E-03, 1.77591E-02, 2.97682E-02, 4.17773E-02, 5.37864E-02, 6.57954E-02, 7.78045E-02, 8.98136E-02, 1.01823E-01, 1.13832E-01,
1.25841E-01, 1.37850E-01, 1.49859E-01, 1.61868E-01, 1.73877E-01, 1.85886E-01, 1.97896E-01, 2.09904E-01, 2.21914E-01, 2.33923E-01,
2.45932E-01, 2.57941E-01, 2.69950E-01, 2.81959E-01, 2.93968E-01, 3.05977E-01, 3.17986E-01, 3.29995E-01, 3.42004E-01, 3.54014E-01,
3.66023E-01, 3.78032E-01, 3.90041E-01, 4.02050E-01, 4.14059E-01, 4.26068E-01, 4.38077E-01, 4.50086E-01, 4.62095E-01, 4.74104E-01,
4.86114E-01, 4.98123E-01, 5.10132E-01, 5.22141E-01, 5.34150E-01, 5.46159E-01, 5.58168E-01, 5.70177E-01, 5.82186E-01, 5.94195E-01,
6.06205E-01, 6.18214E-01, 6.30223E-01, 6.42232E-01, 6.54241E-01, 6.66250E-01, 6.78259E-01, 6.90268E-01, 7.02277E-01, 7.14286E-01,
7.26295E-01, 7.38305E-01, 7.50314E-01, 7.62323E-01, 7.74332E-01, 7.86341E-01, 7.98350E-01],
"1"),
enthalpy = ([-6.40692E+04, -3.78794E+04, -1.99748E+04, -1.10478E+04, -7.04973E+03, -7.13749E+03, -8.79728E+03, -9.93655E+03, -1.03060E+04, -1.00679E+04,
-9.69664E+03, -9.31556E+03, -8.90503E+03, -8.57057E+03, -8.38117E+03, -8.31928E+03, -8.31453E+03, -8.32977E+03, -8.33292E+03, -8.32931E+03,
-8.31339E+03, -8.21331E+03, -8.08920E+03, -8.00131E+03, -7.92294E+03, -7.81543E+03, -7.77498E+03, -7.79440E+03, -7.78804E+03, -7.73218E+03,
-7.69063E+03, -7.69630E+03, -7.63241E+03, -7.41910E+03, -7.06828E+03, -6.64544E+03, -6.17193E+03, -5.67055E+03, -5.14299E+03, -4.55704E+03,
-3.94568E+03, -3.35408E+03, -2.87825E+03, -2.57690E+03, -2.43468E+03, -2.33952E+03, -2.23218E+03, -2.11482E+03, -2.03976E+03, -2.01990E+03,
-2.01329E+03, -1.97991E+03, -1.92686E+03, -1.86602E+03, -1.81419E+03, -1.77693E+03, -1.74908E+03, -1.71494E+03, -1.67287E+03, -1.63685E+03,
-1.59649E+03, -1.52295E+03, -1.39033E+03, -1.11524E+03, -5.34643E+02, 3.73854E+02, 1.60442E+03],
"J/mol"),
entropy = ([3.05724E+01, 4.04307E+01, 4.75718E+01, 5.25690E+01, 5.10953E+01, 4.43414E+01, 3.71575E+01, 3.23216E+01, 2.91586E+01, 2.70081E+01,
2.53501E+01, 2.40845E+01, 2.30042E+01, 2.19373E+01, 2.07212E+01, 1.93057E+01, 1.77319E+01, 1.61153E+01, 1.46399E+01, 1.34767E+01,
1.27000E+01, 1.23377E+01, 1.22815E+01, 1.23700E+01, 1.24863E+01, 1.26368E+01, 1.26925E+01, 1.26250E+01, 1.24861E+01, 1.23294E+01,
1.21865E+01, 1.20723E+01, 1.21228E+01, 1.24383E+01, 1.30288E+01, 1.37342E+01, 1.44460E+01, 1.50813E+01, 1.56180E+01, 1.62213E+01,
1.70474E+01, 1.80584E+01, 1.88377E+01, 1.92094E+01, 1.92957E+01, 1.93172E+01, 1.93033E+01, 1.92971E+01, 1.92977E+01, 1.92978E+01,
1.92980E+01, 1.92978E+01, 1.92945E+01, 1.92899E+01, 1.92877E+01, 1.92882E+01, 1.92882E+01, 1.92882E+01, 1.92882E+01, 1.92882E+01,
1.92885E+01, 1.92876E+01, 1.92837E+01, 1.92769E+01, 1.92850E+01, 1.93100E+01, 1.93514E+01],
"J/mol/K")))
#------------------------------------------------------------------------------
# Lithium cobalt oxide (cathode)
# Thermodynamic data based on half-cell measurements by K. Kumaresan et al.,
# J. Electrochem. Soc. 155, A164-A171 (2008)
#------------------------------------------------------------------------------
BinarySolutionTabulatedThermo(
name = "cathode",
elements = "Li Co O",
species = "Li[cathode] V[cathode]",
standard_concentration = "unity",
tabulated_species = "Li[cathode]",
tabulated_thermo = table(
moleFraction = ([4.59630E-01, 4.67368E-01, 4.75105E-01, 4.82843E-01, 4.90581E-01, 4.98318E-01, 5.06056E-01, 5.13794E-01, 5.21531E-01, 5.29269E-01,
5.37007E-01, 5.44744E-01, 5.52482E-01, 5.60219E-01, 5.67957E-01, 5.75695E-01, 5.83432E-01, 5.91170E-01, 5.98908E-01, 6.06645E-01,
6.14383E-01, 6.22121E-01, 6.29858E-01, 6.37596E-01, 6.45334E-01, 6.53071E-01, 6.60809E-01, 6.68547E-01, 6.76284E-01, 6.84022E-01,
6.91759E-01, 6.99497E-01, 7.07235E-01, 7.14972E-01, 7.22710E-01, 7.30448E-01, 7.38185E-01, 7.45923E-01, 7.53661E-01, 7.61398E-01,
7.69136E-01, 7.76873E-01, 7.84611E-01, 7.92349E-01, 8.00087E-01, 8.07824E-01, 8.15562E-01, 8.23299E-01, 8.31037E-01, 8.38775E-01,
8.46512E-01, 8.54250E-01, 8.61988E-01, 8.69725E-01, 8.77463E-01, 8.85201E-01, 8.92938E-01, 9.00676E-01, 9.08413E-01, 9.16151E-01,
9.23889E-01, 9.31627E-01, 9.39364E-01, 9.47102E-01, 9.54839E-01, 9.62577E-01, 9.70315E-01, 9.78052E-01, 9.85790E-01],
"1"),
enthalpy = ([-4.16188E+05, -4.14839E+05, -4.12629E+05, -4.09620E+05, -4.05334E+05, -3.99420E+05, -3.92499E+05, -3.85940E+05, -3.81474E+05, -3.80290E+05,
-3.81445E+05, -3.83295E+05, -3.85062E+05, -3.86633E+05, -3.87928E+05, -3.88837E+05, -3.89240E+05, -3.89238E+05, -3.89157E+05, -3.89174E+05,
-3.89168E+05, -3.88988E+05, -3.88675E+05, -3.88478E+05, -3.88443E+05, -3.88346E+05, -3.88083E+05, -3.87768E+05, -3.87531E+05, -3.87356E+05,
-3.87205E+05, -3.87052E+05, -3.86960E+05, -3.86957E+05, -3.86918E+05, -3.86814E+05, -3.86785E+05, -3.86957E+05, -3.87146E+05, -3.87188E+05,
-3.87239E+05, -3.87507E+05, -3.87902E+05, -3.88142E+05, -3.88316E+05, -3.88464E+05, -3.88563E+05, -3.88687E+05, -3.89000E+05, -3.89414E+05,
-3.89735E+05, -3.90005E+05, -3.90317E+05, -3.90632E+05, -3.90865E+05, -3.91100E+05, -3.91453E+05, -3.91742E+05, -3.91833E+05, -3.91858E+05,
-3.91910E+05, -3.91798E+05, -3.91470E+05, -3.91005E+05, -3.90261E+05, -3.89181E+05, -3.85506E+05, -3.73450E+05, -3.53926E+05],
"J/mol"),
entropy = ([-2.52348E+01, -2.54629E+01, -2.26068E+01, -1.68899E+01, -6.74549E+00, 9.76522E+00, 3.08711E+01, 4.98756E+01, 5.85766E+01, 5.46784E+01,
4.40727E+01, 3.30834E+01, 2.37109E+01, 1.61658E+01, 1.02408E+01, 5.75684E+00, 2.19969E+00, -6.93265E-01, -3.40166E+00, -6.03548E+00,
-8.45666E+00, -1.03459E+01, -1.18860E+01, -1.35610E+01, -1.53331E+01, -1.68255E+01, -1.81219E+01, -1.95052E+01, -2.07093E+01, -2.16274E+01,
-2.25743E+01, -2.38272E+01, -2.52029E+01, -2.65835E+01, -2.77164E+01, -2.86064E+01, -2.96044E+01, -3.09551E+01, -3.21990E+01, -3.31284E+01,
-3.40633E+01, -3.53177E+01, -3.66599E+01, -3.76439E+01, -3.85616E+01, -3.96433E+01, -4.06506E+01, -4.15566E+01, -4.27485E+01, -4.41419E+01,
-4.52082E+01, -4.61154E+01, -4.71614E+01, -4.82305E+01, -4.89739E+01, -4.96529E+01, -5.06905E+01, -5.18080E+01, -5.26580E+01, -5.32766E+01,
-5.39817E+01, -5.45468E+01, -5.48125E+01, -5.51520E+01, -5.54526E+01, -5.52961E+01, -5.50219E+01, -5.46653E+01, -5.42305E+01],
"J/mol/K")))
#------------------------------------------------------------------------------
# Carbonate based electrolyte
# Solvent: Ethylene carbonate:Propylene carbonate (1:1 v/v)
# Salt: 1M LiPF6
#------------------------------------------------------------------------------
IdealSolidSolution(
name = "electrolyte",
elements = "Li P F C H O E",
species = "C3H4O3[elyt] C4H6O3[elyt] Li+[elyt] PF6-[elyt]",
initial_state = state(mole_fractions = 'C3H4O3[elyt]:0.47901 C4H6O3[elyt]:0.37563 Li+[elyt]:0.07268 PF6-[elyt]:0.07268'),
standard_concentration = "unity")
#------------------------------------------------------------------------------
# Electron conductor
#------------------------------------------------------------------------------
metal(
name = "electron",
elements = "E",
species = "electron",
density = (1.0, 'kg/m3'), # dummy entry
initial_state = state( mole_fractions = "electron:1.0"))
#==============================================================================
# Species
#==============================================================================
#------------------------------------------------------------------------------
# Lithium intercalated in graphite, MW: 79.0070 g/mol.
# Note this species includes the carbon host matrix.
# Molar enthalpy and entropy are set to 0 because the values given in the
# BinarySolidSolutionTabulatedThermo class are used.
# Density of graphite: 2270 kg/m3 (W. M. Haynes et al, CRC Handbook of Chemistry
# and Physics, 94th edition, CRC press, Boca Raton, London, New York, 2013)
# (used to calculate species molar volume as molecular weight (MW)/density).
#------------------------------------------------------------------------------
species(
name = "Li[anode]",
atoms = "Li:1 C:6",
thermo = const_cp(h0 = (0.0, 'kJ/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (79.0070/2.270, 'cm3/mol')))
#------------------------------------------------------------------------------
# Vacancy in graphite, MW: 72.0660 g/mol.
# Note this species includes the carbon host matrix.
# Molar enthalpy and entropy are set to 0 because this is the reference species
# for this phase.
# Density of graphite: 2270 kg/m3 (W. M. Haynes et al, CRC Handbook of Chemistry
# and Physics, 94th edition, CRC press, Boca Raton, London, New York, 2013)
# (used to calculate species molar volume as molecular weight (MW)/density).
#------------------------------------------------------------------------------
species(
name = "V[anode]",
atoms = "C:6",
thermo = const_cp(h0 = (0.0, 'kJ/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (72.0660/2.270, 'cm3/mol')))
#------------------------------------------------------------------------------
# Lithium cobalt oxide, MW: 97.8730 g/mol.
# Note this species includes the cobalt oxide host matrix.
# Molar enthalpy and entropy are set to 0 because the values given in the
# BinarySolidSolutionTabulatedThermo class are used.
# Density of LCO: 4790 kg/m3 (E.J. Cheng et al., J. Asian Ceramic Soc. 5, 113,
# 2017) (used to calculate species molar volume as molecular weight/density).
#------------------------------------------------------------------------------
species(
name = "Li[cathode]",
atoms = "Li:1 Co:1 O:2",
thermo = const_cp(h0 = (0.0, 'kJ/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (97.8730/4.790, 'cm3/mol')))
#------------------------------------------------------------------------------
# Vacancy in the cobalt oxide, MW: 90.9320 g/mol.
# Note this species includes the cobalt oxide host matrix.
# Molar enthalpy and entropy are set to 0 because this is the reference species
# for this phase.
# Density of LCO: 4790 kg/m3 (E.J. Cheng et al., J. Asian Ceramic Soc. 5, 113,
# 2017) (used to calculate species molar volume as molecular weight/density).
#------------------------------------------------------------------------------
species(
name = "V[cathode]",
atoms = "Co:1 O:2",
thermo = const_cp(h0 = (0.0, 'kJ/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (90.9320/4.790, 'cm3/mol')))
#------------------------------------------------------------------------------
# Ethylene carbonate, MW: 88.0630 g/mol
# Density of electrolyte: 1260 kg/m3 (used to calculate species molar volume
# as molecular weight (MW)/density)
# Molar enthalpy and entropy set to zero (dummy entries as this species does
# not participate in chemical reactions)
#------------------------------------------------------------------------------
species(
name = "C3H4O3[elyt]",
atoms = "C:3 H:4 O:3",
thermo = const_cp(h0 =(0.0, 'J/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (88.0630/1.260, 'cm3/mol')))
#------------------------------------------------------------------------------
# Propylene carbonate, MW: 102.0898 g/mol
# Density of electrolyte: 1260.0 kg/m3 (used to calculate species molar volume
# as molecular weight (MW)/density)
# Molar enthalpy and entropy set to zero (dummy entries as this species does
# not participate in chemical reactions)
#------------------------------------------------------------------------------
species(
name = "C4H6O3[elyt]",
atoms = "C:4 H:6 O:3",
thermo = const_cp(h0 =(0.0, 'J/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (102.0898/1.260, 'cm3/mol')))
#------------------------------------------------------------------------------
# Lithium ion, MW: 6.940455 g/mol
# Density of electrolyte: 1260.0 kg/m3 (used to calculate species molar volume
# as molecular weight (MW)/density)
# Molar enthalpy and entropy taken from Li+(aq) from P. Atkins "Physical
# Chemistry", Wiley-VCH (2006)
#------------------------------------------------------------------------------
species(
name = "Li+[elyt]",
atoms = "Li:1 E:-1",
thermo = const_cp(h0 = (-278.49, 'kJ/mol'), s0 = (13.4, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (6.940455/1.260, 'cm3/mol')))
#------------------------------------------------------------------------------
# Hexafluorophosphate ion, MW: 144.964745 g/mol
# Density of electrolyte: 1260.0 kg/m3 (used to calculate species molar volume
# as molecular weight (MW)/density)
# Molar enthalpy and entropy set to zero (dummy entries as this species does
# not participate in chemical reactions)
#------------------------------------------------------------------------------
species(
name = "PF6-[elyt]",
atoms = "P:1 F:6 E:1",
thermo = const_cp(h0 = (0.0, 'J/mol'), s0 = (0.0, 'J/mol/K')),
standardState = constantIncompressible(molarVolume = (144.964745/1.260, 'cm3/mol')))
#------------------------------------------------------------------------------
# Electron, MW: 0.000545 g/mol
# Molar enthalpy and entropy set to zero (dummy entries because chemical
# potential is set to zero for a "metal" phase)
#------------------------------------------------------------------------------
species(
name = "electron",
atoms = "E:1",
thermo = const_cp(h0 = (0.0, 'kJ/mol'), s0 = (0.0, 'J/mol/K')))
#------------------------------------------------------------------------------
# Dummy species (needed for defining the interfaces)
#------------------------------------------------------------------------------
species(
name = "(dummy)",
atoms = "",
thermo = const_cp(h0 = (0.0, 'kJ/mol'), s0 = (0.0, 'J/mol/K')))
#==============================================================================
# Interfaces for electrochemical reactions
#==============================================================================
#------------------------------------------------------------------------------
# Graphite/electrolyte interface
# Species and site density are dummy entries (as we do not consider surface-
# adsorbed species)
#------------------------------------------------------------------------------
ideal_interface(
name = "edge_anode_electrolyte",
phases = "anode electron electrolyte",
reactions = "anode_*",
species = "(dummy)",
site_density = (1.0e-2, 'mol/cm2'))
#------------------------------------------------------------------------------
# LCO/electrolyte interface
# Species and site density are dummy entries (as we do not consider surface-
# adsorbed species)
#------------------------------------------------------------------------------
ideal_interface(
name = "edge_cathode_electrolyte",
phases = "cathode electron electrolyte",
reactions = "cathode_*",
species = "(dummy)",
site_density = (1.0e-2, 'mol/cm2'))
#==============================================================================
# Electrochemical reactions
#
# We use Butler-Volmer kinetics by setting rate_coeff_type = "exchangecurrentdensity".
# The preexponential factors and activation energies are converted from
# Guo et al., J. Electrochem. Soc. 158, A122 (2011)
#==============================================================================
# Graphite/electrolyte interface
edge_reaction("Li+[elyt] + V[anode] + electron <=> Li[anode]", [2.028e4, 0.0, (20, 'kJ/mol')], rate_coeff_type = "exchangecurrentdensity", beta = 0.5,id="anode_reaction")
# LCO/electrolyte interface
edge_reaction("Li+[elyt] + V[cathode] + electron <=> Li[cathode]", [5.629e11, 0.0, (58, 'kJ/mol')], rate_coeff_type = "exchangecurrentdensity", beta = 0.5,id="cathode_reaction")

View file

@ -2,11 +2,11 @@
# SURFACE MECHANISM OF POX of CH4 on PT wire gauze # SURFACE MECHANISM OF POX of CH4 on PT wire gauze
# #
#*********************************************************************** #***********************************************************************
#**** * #**** *
#**** CH4-O2 SURFACE MECHANISM ON PT * #**** CH4-O2 SURFACE MECHANISM ON PT *
#**** * #**** *
#**** Version 1.0 Spring 2005 * #**** Version 1.0 Spring 2005 *
#**** * #**** *
#**** Raul Quiceno, Olaf Deutschmann, IWR, Heidelberg University, * #**** Raul Quiceno, Olaf Deutschmann, IWR, Heidelberg University, *
#**** Germany * #**** Germany *
#**** Contact: mail@detchem.com (O. Deutschmann) * #**** Contact: mail@detchem.com (O. Deutschmann) *
@ -30,8 +30,8 @@ units(length = "cm", time = "s", quantity = "mol", act_energy = "J/mol")
# #
# Define a gas mixture. This contains only major species, and no # Define a gas mixture. This contains only major species, and no
# gas-phase reactions. # gas-phase reactions.
# #
ideal_gas(name = "gas", ideal_gas(name = "gas",
elements = "O H C N Ar", elements = "O H C N Ar",
species = """H2 O2 H2O CH4 CO CO2 AR""", species = """H2 O2 H2O CH4 CO CO2 AR""",
@ -43,7 +43,7 @@ ideal_gas(name = "gas",
# #
# The platinum surface. # The platinum surface.
ideal_interface(name = "Pt_surf", ideal_interface(name = "Pt_surf",
elements = " Pt H O C ", elements = " Pt H O C ",
species = """ PT(S) H(S) species = """ PT(S) H(S)
@ -53,7 +53,7 @@ ideal_interface(name = "Pt_surf",
site_density = 2.72e-9, site_density = 2.72e-9,
reactions = "all", reactions = "all",
options = ['skip_undeclared_elements', options = ['skip_undeclared_elements',
'skip_undeclared_species'], 'skip_undeclared_species'],
initial_state = state(temperature = 900.0, initial_state = state(temperature = 900.0,
coverages = 'O(S):0.00, PT(S):0.01, H(S):0.99') coverages = 'O(S):0.00, PT(S):0.01, H(S):0.99')
) )
@ -61,16 +61,16 @@ ideal_interface(name = "Pt_surf",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Species data # Species data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "CH4", species(name = "CH4",
atoms = " C:1 H:4 ", atoms = " C:1 H:4 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 7.787414790E-01, 1.747668350E-02, NASA( [ 300.00, 1000.00], [ 7.787414790E-01, 1.747668350E-02,
-2.783409040E-05, 3.049708040E-08, -1.223930680E-11, -2.783409040E-05, 3.049708040E-08, -1.223930680E-11,
-9.825228520E+03, 1.372219470E+01] ), -9.825228520E+03, 1.372219470E+01] ),
NASA( [ 1000.00, 5000.00], [ 1.683478830E+00, 1.023723560E-02, NASA( [ 1000.00, 5000.00], [ 1.683478830E+00, 1.023723560E-02,
-3.875128640E-06, 6.785584870E-10, -4.503423120E-14, -3.875128640E-06, 6.785584870E-10, -4.503423120E-14,
-1.008078710E+04, 9.623394970E+00] ) -1.008078710E+04, 9.623394970E+00] )
) )
@ -79,10 +79,10 @@ species(name = "CH4",
species(name = "O2", species(name = "O2",
atoms = " O:2 ", atoms = " O:2 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 3.783713500E+00, -3.023363400E-03, NASA( [ 300.00, 1000.00], [ 3.783713500E+00, -3.023363400E-03,
9.949275100E-06, -9.818910100E-09, 3.303182500E-12, 9.949275100E-06, -9.818910100E-09, 3.303182500E-12,
-1.063810700E+03, 3.641634500E+00] ), -1.063810700E+03, 3.641634500E+00] ),
NASA( [ 1000.00, 5000.00], [ 3.612213900E+00, 7.485316600E-04, NASA( [ 1000.00, 5000.00], [ 3.612213900E+00, 7.485316600E-04,
-1.982064700E-07, 3.374900800E-11, -2.390737400E-15, -1.982064700E-07, 3.374900800E-11, -2.390737400E-15,
-1.197815100E+03, 3.670330700E+00] ) -1.197815100E+03, 3.670330700E+00] )
) )
@ -91,10 +91,10 @@ species(name = "O2",
species(name = "CO", species(name = "CO",
atoms = " C:1 O:1 ", atoms = " C:1 O:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 3.262451650E+00, 1.511940850E-03, NASA( [ 300.00, 1000.00], [ 3.262451650E+00, 1.511940850E-03,
-3.881755220E-06, 5.581944240E-09, -2.474951230E-12, -3.881755220E-06, 5.581944240E-09, -2.474951230E-12,
-1.431053910E+04, 4.848896980E+00] ), -1.431053910E+04, 4.848896980E+00] ),
NASA( [ 1000.00, 5000.00], [ 3.025078060E+00, 1.442688520E-03, NASA( [ 1000.00, 5000.00], [ 3.025078060E+00, 1.442688520E-03,
-5.630827790E-07, 1.018581330E-10, -6.910951560E-15, -5.630827790E-07, 1.018581330E-10, -6.910951560E-15,
-1.426834960E+04, 6.108217720E+00] ) -1.426834960E+04, 6.108217720E+00] )
) )
@ -103,10 +103,10 @@ species(name = "CO",
species(name = "CO2", species(name = "CO2",
atoms = " C:1 O:2 ", atoms = " C:1 O:2 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 2.275724650E+00, 9.922072290E-03, NASA( [ 300.00, 1000.00], [ 2.275724650E+00, 9.922072290E-03,
-1.040911320E-05, 6.866686780E-09, -2.117280090E-12, -1.040911320E-05, 6.866686780E-09, -2.117280090E-12,
-4.837314060E+04, 1.018848800E+01] ), -4.837314060E+04, 1.018848800E+01] ),
NASA( [ 1000.00, 5000.00], [ 4.453622820E+00, 3.140168730E-03, NASA( [ 1000.00, 5000.00], [ 4.453622820E+00, 3.140168730E-03,
-1.278410540E-06, 2.393996670E-10, -1.669033190E-14, -1.278410540E-06, 2.393996670E-10, -1.669033190E-14,
-4.896696090E+04, -9.553958770E-01] ) -4.896696090E+04, -9.553958770E-01] )
) )
@ -115,10 +115,10 @@ species(name = "CO2",
species(name = "H2", species(name = "H2",
atoms = " H:2 ", atoms = " H:2 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 3.355351400E+00, 5.013614400E-04, NASA( [ 300.00, 1000.00], [ 3.355351400E+00, 5.013614400E-04,
-2.300690800E-07, -4.790532400E-10, 4.852258500E-13, -2.300690800E-07, -4.790532400E-10, 4.852258500E-13,
-1.019162600E+03, -3.547722800E+00] ), -1.019162600E+03, -3.547722800E+00] ),
NASA( [ 1000.00, 5000.00], [ 3.066709500E+00, 5.747375500E-04, NASA( [ 1000.00, 5000.00], [ 3.066709500E+00, 5.747375500E-04,
1.393831900E-08, -2.548351800E-11, 2.909857400E-15, 1.393831900E-08, -2.548351800E-11, 2.909857400E-15,
-8.654741200E+02, -1.779842400E+00] ) -8.654741200E+02, -1.779842400E+00] )
) )
@ -127,10 +127,10 @@ species(name = "H2",
species(name = "H2O", species(name = "H2O",
atoms = " H:2 O:1 ", atoms = " H:2 O:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 4.167723400E+00, -1.811497000E-03, NASA( [ 300.00, 1000.00], [ 4.167723400E+00, -1.811497000E-03,
5.947128800E-06, -4.869202100E-09, 1.529199100E-12, 5.947128800E-06, -4.869202100E-09, 1.529199100E-12,
-3.028996900E+04, -7.313547400E-01] ), -3.028996900E+04, -7.313547400E-01] ),
NASA( [ 1000.00, 5000.00], [ 2.611047200E+00, 3.156313000E-03, NASA( [ 1000.00, 5000.00], [ 2.611047200E+00, 3.156313000E-03,
-9.298543800E-07, 1.333153800E-10, -7.468935100E-15, -9.298543800E-07, 1.333153800E-10, -7.468935100E-15,
-2.986816700E+04, 7.209126800E+00] ) -2.986816700E+04, 7.209126800E+00] )
) )
@ -139,10 +139,10 @@ species(name = "H2O",
species(name = "AR", species(name = "AR",
atoms = " Ar:1 ", atoms = " Ar:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453749800E+02, 4.366000600E+00] ), -7.453749800E+02, 4.366000600E+00] ),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00, NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-7.453750200E+02, 4.366000600E+00] ) -7.453750200E+02, 4.366000600E+00] )
) )
@ -152,10 +152,10 @@ species(name = "AR",
species(name = "PT(S)", species(name = "PT(S)",
atoms = " Pt:1 ", atoms = " Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 0.000000000E+00, 0.000000000E+00, NASA( [ 300.00, 1000.00], [ 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00] ), 0.000000000E+00, 0.000000000E+00] ),
NASA( [ 1000.00, 3000.00], [ 0.000000000E+00, 0.000000000E+00, NASA( [ 1000.00, 3000.00], [ 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00] ) 0.000000000E+00, 0.000000000E+00] )
) )
@ -164,10 +164,10 @@ species(name = "PT(S)",
species(name = "H(S)", species(name = "H(S)",
atoms = " H:1 Pt:1 ", atoms = " H:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -1.302987700E+00, 5.417319900E-03, NASA( [ 300.00, 1000.00], [ -1.302987700E+00, 5.417319900E-03,
3.127797200E-07, -3.232853300E-09, 1.136282000E-12, 3.127797200E-07, -3.232853300E-09, 1.136282000E-12,
-4.227707500E+03, 5.874323800E+00] ), -4.227707500E+03, 5.874323800E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.069699600E+00, 1.543223000E-03, NASA( [ 1000.00, 3000.00], [ 1.069699600E+00, 1.543223000E-03,
-1.550092200E-07, -1.657316500E-10, 3.835934700E-14, -1.550092200E-07, -1.657316500E-10, 3.835934700E-14,
-5.054612800E+03, -7.155523800E+00] ) -5.054612800E+03, -7.155523800E+00] )
) )
@ -176,10 +176,10 @@ species(name = "H(S)",
species(name = "H2O(S)", species(name = "H2O(S)",
atoms = " O:1 H:2 Pt:1 ", atoms = " O:1 H:2 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -2.765155300E+00, 1.331511500E-02, NASA( [ 300.00, 1000.00], [ -2.765155300E+00, 1.331511500E-02,
1.012769500E-06, -7.182008300E-09, 2.281377600E-12, 1.012769500E-06, -7.182008300E-09, 2.281377600E-12,
-3.639805500E+04, 1.209814500E+01] ), -3.639805500E+04, 1.209814500E+01] ),
NASA( [ 1000.00, 3000.00], [ 2.580305100E+00, 4.957082700E-03, NASA( [ 1000.00, 3000.00], [ 2.580305100E+00, 4.957082700E-03,
-4.689405600E-07, -5.263313700E-10, 1.199832200E-13, -4.689405600E-07, -5.263313700E-10, 1.199832200E-13,
-3.830223400E+04, -1.740632200E+01] ) -3.830223400E+04, -1.740632200E+01] )
) )
@ -188,10 +188,10 @@ species(name = "H2O(S)",
species(name = "OH(S)", species(name = "OH(S)",
atoms = " O:1 H:1 Pt:1 ", atoms = " O:1 H:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -2.034088100E+00, 9.366268300E-03, NASA( [ 300.00, 1000.00], [ -2.034088100E+00, 9.366268300E-03,
6.627521400E-07, -5.207488700E-09, 1.708873500E-12, 6.627521400E-07, -5.207488700E-09, 1.708873500E-12,
-2.531994900E+04, 8.986318600E+00] ), -2.531994900E+04, 8.986318600E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.824997300E+00, 3.250156500E-03, NASA( [ 1000.00, 3000.00], [ 1.824997300E+00, 3.250156500E-03,
-3.119754100E-07, -3.460320600E-10, 7.917147200E-14, -3.119754100E-07, -3.460320600E-10, 7.917147200E-14,
-2.668549200E+04, -1.228089100E+01] ) -2.668549200E+04, -1.228089100E+01] )
) )
@ -200,10 +200,10 @@ species(name = "OH(S)",
species(name = "CO(S)", species(name = "CO(S)",
atoms = " C:1 O:1 Pt:1 ", atoms = " C:1 O:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 4.890746600E+00, 6.813423500E-05, NASA( [ 300.00, 1000.00], [ 4.890746600E+00, 6.813423500E-05,
1.976881400E-07, 1.238866900E-09, -9.033924900E-13, 1.976881400E-07, 1.238866900E-09, -9.033924900E-13,
-3.229783600E+04, -1.745316100E+01] ), -3.229783600E+04, -1.745316100E+01] ),
NASA( [ 1000.00, 3000.00], [ 4.708377800E+00, 9.603729700E-04, NASA( [ 1000.00, 3000.00], [ 4.708377800E+00, 9.603729700E-04,
-1.180527900E-07, -7.688382600E-11, 1.823200000E-14, -1.180527900E-07, -7.688382600E-11, 1.823200000E-14,
-3.231172300E+04, -1.671959300E+01] ) -3.231172300E+04, -1.671959300E+01] )
) )
@ -212,10 +212,10 @@ species(name = "CO(S)",
species(name = "CO2(S)", species(name = "CO2(S)",
atoms = " C:1 O:2 Pt:1 ", atoms = " C:1 O:2 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 4.690000000E-01, 6.266200000E-03, NASA( [ 300.00, 1000.00], [ 4.690000000E-01, 6.266200000E-03,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-5.045870000E+04, -4.555000000E+00] ), -5.045870000E+04, -4.555000000E+00] ),
NASA( [ 1000.00, 3000.00], [ 4.690000000E-01, 6.266000000E-03, NASA( [ 1000.00, 3000.00], [ 4.690000000E-01, 6.266000000E-03,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-5.045870000E+04, -4.555000000E+00] ) -5.045870000E+04, -4.555000000E+00] )
) )
@ -224,10 +224,10 @@ species(name = "CO2(S)",
species(name = "CH3(S)", species(name = "CH3(S)",
atoms = " C:1 H:3 Pt:1 ", atoms = " C:1 H:3 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 1.291921700E+00, 7.267560300E-03, NASA( [ 300.00, 1000.00], [ 1.291921700E+00, 7.267560300E-03,
9.817947600E-07, -2.047129400E-09, 9.083271700E-14, 9.817947600E-07, -2.047129400E-09, 9.083271700E-14,
-2.574561000E+03, -1.198303700E+00] ), -2.574561000E+03, -1.198303700E+00] ),
NASA( [ 1000.00, 3000.00], [ 3.001616500E+00, 5.408450500E-03, NASA( [ 1000.00, 3000.00], [ 3.001616500E+00, 5.408450500E-03,
-4.053805800E-07, -5.342246600E-10, 1.145188700E-13, -4.053805800E-07, -5.342246600E-10, 1.145188700E-13,
-3.275272200E+03, -1.096598400E+01] ) -3.275272200E+03, -1.096598400E+01] )
) )
@ -236,10 +236,10 @@ species(name = "CH3(S)",
species(name = "CH2(S)", species(name = "CH2(S)",
atoms = " C:1 H:2 Pt:1 ", atoms = " C:1 H:2 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -1.487640400E-01, 5.139628900E-03, NASA( [ 300.00, 1000.00], [ -1.487640400E-01, 5.139628900E-03,
1.121107500E-06, -8.275545200E-10, -4.457234500E-13, 1.121107500E-06, -8.275545200E-10, -4.457234500E-13,
1.087870000E+04, 5.745188200E+00] ), 1.087870000E+04, 5.745188200E+00] ),
NASA( [ 1000.00, 3000.00], [ 7.407612200E-01, 4.803253300E-03, NASA( [ 1000.00, 3000.00], [ 7.407612200E-01, 4.803253300E-03,
-3.282563300E-07, -4.777978600E-10, 1.007345200E-13, -3.282563300E-07, -4.777978600E-10, 1.007345200E-13,
1.044375200E+04, 4.084208600E-01] ) 1.044375200E+04, 4.084208600E-01] )
) )
@ -248,10 +248,10 @@ species(name = "CH2(S)",
species(name = "CH(S)", species(name = "CH(S)",
atoms = " C:1 H:1 Pt:1 ", atoms = " C:1 H:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 8.415748500E-01, 1.309538000E-03, NASA( [ 300.00, 1000.00], [ 8.415748500E-01, 1.309538000E-03,
2.846457500E-07, 6.386290400E-10, -4.276665800E-13, 2.846457500E-07, 6.386290400E-10, -4.276665800E-13,
2.233280100E+04, 1.145230500E+00] ), 2.233280100E+04, 1.145230500E+00] ),
NASA( [ 1000.00, 3000.00], [ -4.824247200E-03, 3.044623900E-03, NASA( [ 1000.00, 3000.00], [ -4.824247200E-03, 3.044623900E-03,
-1.606609900E-07, -2.904170000E-10, 5.799992400E-14, -1.606609900E-07, -2.904170000E-10, 5.799992400E-14,
2.259521900E+04, 5.667781800E+00] ) 2.259521900E+04, 5.667781800E+00] )
) )
@ -260,10 +260,10 @@ species(name = "CH(S)",
species(name = "C(S)", species(name = "C(S)",
atoms = " C:1 Pt:1 ", atoms = " C:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 5.892401900E-01, 2.501284200E-03, NASA( [ 300.00, 1000.00], [ 5.892401900E-01, 2.501284200E-03,
-3.422949800E-07, -1.899434600E-09, 1.019040600E-12, -3.422949800E-07, -1.899434600E-09, 1.019040600E-12,
1.023692300E+04, 2.193701700E+00] ), 1.023692300E+04, 2.193701700E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.579282400E+00, 3.652870100E-04, NASA( [ 1000.00, 3000.00], [ 1.579282400E+00, 3.652870100E-04,
-5.065767200E-08, -3.488485500E-11, 8.808969900E-15, -5.065767200E-08, -3.488485500E-11, 8.808969900E-15,
9.953575200E+03, -3.024049500E+00] ) 9.953575200E+03, -3.024049500E+00] )
) )
@ -272,17 +272,17 @@ species(name = "C(S)",
species(name = "O(S)", species(name = "O(S)",
atoms = " O:1 Pt:1 ", atoms = " O:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -9.498690400E-01, 7.404230500E-03, NASA( [ 300.00, 1000.00], [ -9.498690400E-01, 7.404230500E-03,
-1.045142400E-06, -6.112042000E-09, 3.378799200E-12, -1.045142400E-06, -6.112042000E-09, 3.378799200E-12,
-1.320991200E+04, 3.613790500E+00] ), -1.320991200E+04, 3.613790500E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.945418000E+00, 9.176164700E-04, NASA( [ 1000.00, 3000.00], [ 1.945418000E+00, 9.176164700E-04,
-1.122671900E-07, -9.909962400E-11, 2.430769900E-14, -1.122671900E-07, -9.909962400E-11, 2.430769900E-14,
-1.400518700E+04, -1.153166300E+01] ) -1.400518700E+04, -1.153166300E+01] )
) )
) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Adsorption reactions # Adsorption reactions
@ -316,12 +316,12 @@ surface_reaction( "CO + PT(S) => CO(S)",
# Desorption reactions # Desorption reactions
surface_reaction( "2 H(S) => H2 + 2 PT(S)", surface_reaction( "2 H(S) => H2 + 2 PT(S)",
Arrhenius(3.70000E+21, 0, 67400, Arrhenius(3.70000E+21, 0, 67400,
coverage = ['H(S)', 0.0, 0.0, -10000.0])) coverage = ['H(S)', 0.0, 0.0, -10000.0]))
surface_reaction( "2 O(S) => O2 + 2 PT(S)", surface_reaction( "2 O(S) => O2 + 2 PT(S)",
Arrhenius(3.70000E+21, 0, 235500, Arrhenius(3.70000E+21, 0, 235500,
coverage = ['O(S)', 0.0, 0.0, -188300.0]) ) coverage = ['O(S)', 0.0, 0.0, -188300.0]) )
surface_reaction( "H2O(S) => H2O + PT(S)", [4.50000E+12, 0, 41800]) surface_reaction( "H2O(S) => H2O + PT(S)", [4.50000E+12, 0, 41800])
@ -355,7 +355,7 @@ surface_reaction( "CO2(S) + PT(S) => CO(S) + O(S)",
surface_reaction( "CO(S) + OH(S) => CO2(S) + H(S)", surface_reaction( "CO(S) + OH(S) => CO2(S) + H(S)",
Arrhenius(1.0000E+19, 0, 38700, Arrhenius(1.0000E+19, 0, 38700,
coverage = ['CO(S)', 0.0, 0.0, -30000])) coverage = ['CO(S)', 0.0, 0.0, -30000]))
surface_reaction( "CO2(S) + H(S) => CO(S) + OH(S)", surface_reaction( "CO2(S) + H(S) => CO(S) + OH(S)",
Arrhenius(1.0000E+19, 0, 8400)) Arrhenius(1.0000E+19, 0, 8400))
@ -369,7 +369,7 @@ surface_reaction( "CH2(S) + H(S) => CH3(S) + PT(S)",
surface_reaction( "CH2(S) + PT(S) => CH(S) + H(S)", surface_reaction( "CH2(S) + PT(S) => CH(S) + H(S)",
Arrhenius(7.3100E+22, 0, 58900, Arrhenius(7.3100E+22, 0, 58900,
coverage = ['C(S)', 0.0, 0.0, 50000])) coverage = ['C(S)', 0.0, 0.0, 50000]))
surface_reaction( "CH(S) + H(S) => CH2(S) + PT(S)", surface_reaction( "CH(S) + H(S) => CH2(S) + PT(S)",
Arrhenius(3.0900E+22, 0, 0, Arrhenius(3.0900E+22, 0, 0,
coverage = ['H(S)', 0.0, 0.0, -2800])) coverage = ['H(S)', 0.0, 0.0, -2800]))

View file

@ -1,10 +0,0 @@
#!/bin/sh
# run ck2cti to convert Chemkin-format files to Cantera format
#
BUILDBIN="@buildbin@"
#
$BUILDBIN/ck2cti -i gri30.inp -id gri30 -tr ../transport/gri30_tran.dat > gri30.cti
$BUILDBIN/ck2cti -i air.inp -id air -t gri30.inp -tr ../transport/gri30_tran.dat > air.cti
$BUILDBIN/ck2cti -i h2o2.inp -id ohmech -tr ../transport/gri30_tran.dat > h2o2.cti
$BUILDBIN/ck2cti -i silane.inp -id silane -tr ../transport/misc_tran.dat > silane.cti
$BUILDBIN/ck2cti -i argon.inp -id argon -t gri30.inp -tr ../transport/gri30_tran.dat > argon.cti

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
# #
# see http://reaflow.iwr.uni-heidelberg.de/~Olaf.Deutschmann/ for # see http://reaflow.iwr.uni-heidelberg.de/~Olaf.Deutschmann/ for
# more about this mechanism # more about this mechanism
# #
#---------------------------------------------------------------------! #---------------------------------------------------------------------!
@ -22,7 +22,7 @@
# pp. 1747-1754 # pp. 1747-1754
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# #
# Converted to Cantera format # Converted to Cantera format
# by ck2cti on Thu Aug 21 07:58:45 2003 # by ck2cti on Thu Aug 21 07:58:45 2003
# #
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@ -35,13 +35,13 @@ units(length = "cm", time = "s", quantity = "mol", act_energy = "J/mol")
# Reactions will be imported from GRI-Mech 3.0, as long as they # Reactions will be imported from GRI-Mech 3.0, as long as they
# don't involve species not declared here. Transport properties # don't involve species not declared here. Transport properties
# will be computed using a mixture-averaged model. # will be computed using a mixture-averaged model.
# #
ideal_gas(name = "gas", ideal_gas(name = "gas",
elements = "O H C N Ar", elements = "O H C N Ar",
species = """gri30: H2 H O O2 OH species = """gri30: H2 H O O2 OH
H2O HO2 H2O2 H2O HO2 H2O2
C CH CH2 CH2(S) CH3 CH4 CO CO2 C CH CH2 CH2(S) CH3 CH4 CO CO2
HCO CH2O CH2OH CH3O CH3OH C2H C2H2 C2H3 HCO CH2O CH2OH CH3O CH3OH C2H C2H2 C2H3
C2H4 C2H5 C2H6 HCCO CH2CO HCCOH AR N2""", C2H4 C2H5 C2H6 HCCO CH2CO HCCOH AR N2""",
transport = 'Mix', transport = 'Mix',
reactions = 'gri30: all', reactions = 'gri30: all',
@ -74,10 +74,10 @@ ideal_interface(name = "Pt_surf",
species(name = "PT(S)", species(name = "PT(S)",
atoms = " Pt:1 ", atoms = " Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 0.000000000E+00, 0.000000000E+00, NASA( [ 300.00, 1000.00], [ 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00] ), 0.000000000E+00, 0.000000000E+00] ),
NASA( [ 1000.00, 3000.00], [ 0.000000000E+00, 0.000000000E+00, NASA( [ 1000.00, 3000.00], [ 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
0.000000000E+00, 0.000000000E+00] ) 0.000000000E+00, 0.000000000E+00] )
) )
@ -86,10 +86,10 @@ species(name = "PT(S)",
species(name = "H(S)", species(name = "H(S)",
atoms = " H:1 Pt:1 ", atoms = " H:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -1.302987700E+00, 5.417319900E-03, NASA( [ 300.00, 1000.00], [ -1.302987700E+00, 5.417319900E-03,
3.127797200E-07, -3.232853300E-09, 1.136282000E-12, 3.127797200E-07, -3.232853300E-09, 1.136282000E-12,
-4.227707500E+03, 5.874323800E+00] ), -4.227707500E+03, 5.874323800E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.069699600E+00, 1.543223000E-03, NASA( [ 1000.00, 3000.00], [ 1.069699600E+00, 1.543223000E-03,
-1.550092200E-07, -1.657316500E-10, 3.835934700E-14, -1.550092200E-07, -1.657316500E-10, 3.835934700E-14,
-5.054612800E+03, -7.155523800E+00] ) -5.054612800E+03, -7.155523800E+00] )
) )
@ -98,10 +98,10 @@ species(name = "H(S)",
species(name = "H2O(S)", species(name = "H2O(S)",
atoms = " O:1 H:2 Pt:1 ", atoms = " O:1 H:2 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -2.765155300E+00, 1.331511500E-02, NASA( [ 300.00, 1000.00], [ -2.765155300E+00, 1.331511500E-02,
1.012769500E-06, -7.182008300E-09, 2.281377600E-12, 1.012769500E-06, -7.182008300E-09, 2.281377600E-12,
-3.639805500E+04, 1.209814500E+01] ), -3.639805500E+04, 1.209814500E+01] ),
NASA( [ 1000.00, 3000.00], [ 2.580305100E+00, 4.957082700E-03, NASA( [ 1000.00, 3000.00], [ 2.580305100E+00, 4.957082700E-03,
-4.689405600E-07, -5.263313700E-10, 1.199832200E-13, -4.689405600E-07, -5.263313700E-10, 1.199832200E-13,
-3.830223400E+04, -1.740632200E+01] ) -3.830223400E+04, -1.740632200E+01] )
) )
@ -110,10 +110,10 @@ species(name = "H2O(S)",
species(name = "OH(S)", species(name = "OH(S)",
atoms = " O:1 H:1 Pt:1 ", atoms = " O:1 H:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -2.034088100E+00, 9.366268300E-03, NASA( [ 300.00, 1000.00], [ -2.034088100E+00, 9.366268300E-03,
6.627521400E-07, -5.207488700E-09, 1.708873500E-12, 6.627521400E-07, -5.207488700E-09, 1.708873500E-12,
-2.531994900E+04, 8.986318600E+00] ), -2.531994900E+04, 8.986318600E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.824997300E+00, 3.250156500E-03, NASA( [ 1000.00, 3000.00], [ 1.824997300E+00, 3.250156500E-03,
-3.119754100E-07, -3.460320600E-10, 7.917147200E-14, -3.119754100E-07, -3.460320600E-10, 7.917147200E-14,
-2.668549200E+04, -1.228089100E+01] ) -2.668549200E+04, -1.228089100E+01] )
) )
@ -122,10 +122,10 @@ species(name = "OH(S)",
species(name = "CO(S)", species(name = "CO(S)",
atoms = " C:1 O:1 Pt:1 ", atoms = " C:1 O:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 4.890746600E+00, 6.813423500E-05, NASA( [ 300.00, 1000.00], [ 4.890746600E+00, 6.813423500E-05,
1.976881400E-07, 1.238866900E-09, -9.033924900E-13, 1.976881400E-07, 1.238866900E-09, -9.033924900E-13,
-3.229783600E+04, -1.745316100E+01] ), -3.229783600E+04, -1.745316100E+01] ),
NASA( [ 1000.00, 3000.00], [ 4.708377800E+00, 9.603729700E-04, NASA( [ 1000.00, 3000.00], [ 4.708377800E+00, 9.603729700E-04,
-1.180527900E-07, -7.688382600E-11, 1.823200000E-14, -1.180527900E-07, -7.688382600E-11, 1.823200000E-14,
-3.231172300E+04, -1.671959300E+01] ) -3.231172300E+04, -1.671959300E+01] )
) )
@ -134,10 +134,10 @@ species(name = "CO(S)",
species(name = "CO2(S)", species(name = "CO2(S)",
atoms = " C:1 O:2 Pt:1 ", atoms = " C:1 O:2 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 4.690000000E-01, 6.266200000E-03, NASA( [ 300.00, 1000.00], [ 4.690000000E-01, 6.266200000E-03,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-5.045870000E+04, -4.555000000E+00] ), -5.045870000E+04, -4.555000000E+00] ),
NASA( [ 1000.00, 3000.00], [ 4.690000000E-01, 6.266000000E-03, NASA( [ 1000.00, 3000.00], [ 4.690000000E-01, 6.266000000E-03,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
-5.045870000E+04, -4.555000000E+00] ) -5.045870000E+04, -4.555000000E+00] )
) )
@ -146,10 +146,10 @@ species(name = "CO2(S)",
species(name = "CH3(S)", species(name = "CH3(S)",
atoms = " C:1 H:3 Pt:1 ", atoms = " C:1 H:3 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 1.291921700E+00, 7.267560300E-03, NASA( [ 300.00, 1000.00], [ 1.291921700E+00, 7.267560300E-03,
9.817947600E-07, -2.047129400E-09, 9.083271700E-14, 9.817947600E-07, -2.047129400E-09, 9.083271700E-14,
-2.574561000E+03, -1.198303700E+00] ), -2.574561000E+03, -1.198303700E+00] ),
NASA( [ 1000.00, 3000.00], [ 3.001616500E+00, 5.408450500E-03, NASA( [ 1000.00, 3000.00], [ 3.001616500E+00, 5.408450500E-03,
-4.053805800E-07, -5.342246600E-10, 1.145188700E-13, -4.053805800E-07, -5.342246600E-10, 1.145188700E-13,
-3.275272200E+03, -1.096598400E+01] ) -3.275272200E+03, -1.096598400E+01] )
) )
@ -158,10 +158,10 @@ species(name = "CH3(S)",
species(name = "CH2(S)s", species(name = "CH2(S)s",
atoms = " C:1 H:2 Pt:1 ", atoms = " C:1 H:2 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -1.487640400E-01, 5.139628900E-03, NASA( [ 300.00, 1000.00], [ -1.487640400E-01, 5.139628900E-03,
1.121107500E-06, -8.275545200E-10, -4.457234500E-13, 1.121107500E-06, -8.275545200E-10, -4.457234500E-13,
1.087870000E+04, 5.745188200E+00] ), 1.087870000E+04, 5.745188200E+00] ),
NASA( [ 1000.00, 3000.00], [ 7.407612200E-01, 4.803253300E-03, NASA( [ 1000.00, 3000.00], [ 7.407612200E-01, 4.803253300E-03,
-3.282563300E-07, -4.777978600E-10, 1.007345200E-13, -3.282563300E-07, -4.777978600E-10, 1.007345200E-13,
1.044375200E+04, 4.084208600E-01] ) 1.044375200E+04, 4.084208600E-01] )
) )
@ -170,10 +170,10 @@ species(name = "CH2(S)s",
species(name = "CH(S)", species(name = "CH(S)",
atoms = " C:1 H:1 Pt:1 ", atoms = " C:1 H:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 8.415748500E-01, 1.309538000E-03, NASA( [ 300.00, 1000.00], [ 8.415748500E-01, 1.309538000E-03,
2.846457500E-07, 6.386290400E-10, -4.276665800E-13, 2.846457500E-07, 6.386290400E-10, -4.276665800E-13,
2.233280100E+04, 1.145230500E+00] ), 2.233280100E+04, 1.145230500E+00] ),
NASA( [ 1000.00, 3000.00], [ -4.824247200E-03, 3.044623900E-03, NASA( [ 1000.00, 3000.00], [ -4.824247200E-03, 3.044623900E-03,
-1.606609900E-07, -2.904170000E-10, 5.799992400E-14, -1.606609900E-07, -2.904170000E-10, 5.799992400E-14,
2.259521900E+04, 5.667781800E+00] ) 2.259521900E+04, 5.667781800E+00] )
) )
@ -182,10 +182,10 @@ species(name = "CH(S)",
species(name = "C(S)", species(name = "C(S)",
atoms = " C:1 Pt:1 ", atoms = " C:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ 5.892401900E-01, 2.501284200E-03, NASA( [ 300.00, 1000.00], [ 5.892401900E-01, 2.501284200E-03,
-3.422949800E-07, -1.899434600E-09, 1.019040600E-12, -3.422949800E-07, -1.899434600E-09, 1.019040600E-12,
1.023692300E+04, 2.193701700E+00] ), 1.023692300E+04, 2.193701700E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.579282400E+00, 3.652870100E-04, NASA( [ 1000.00, 3000.00], [ 1.579282400E+00, 3.652870100E-04,
-5.065767200E-08, -3.488485500E-11, 8.808969900E-15, -5.065767200E-08, -3.488485500E-11, 8.808969900E-15,
9.953575200E+03, -3.024049500E+00] ) 9.953575200E+03, -3.024049500E+00] )
) )
@ -194,10 +194,10 @@ species(name = "C(S)",
species(name = "O(S)", species(name = "O(S)",
atoms = " O:1 Pt:1 ", atoms = " O:1 Pt:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -9.498690400E-01, 7.404230500E-03, NASA( [ 300.00, 1000.00], [ -9.498690400E-01, 7.404230500E-03,
-1.045142400E-06, -6.112042000E-09, 3.378799200E-12, -1.045142400E-06, -6.112042000E-09, 3.378799200E-12,
-1.320991200E+04, 3.613790500E+00] ), -1.320991200E+04, 3.613790500E+00] ),
NASA( [ 1000.00, 3000.00], [ 1.945418000E+00, 9.176164700E-04, NASA( [ 1000.00, 3000.00], [ 1.945418000E+00, 9.176164700E-04,
-1.122671900E-07, -9.909962400E-11, 2.430769900E-14, -1.122671900E-07, -9.909962400E-11, 2.430769900E-14,
-1.400518700E+04, -1.153166300E+01] ) -1.400518700E+04, -1.153166300E+01] )
) )
@ -206,16 +206,16 @@ species(name = "O(S)",
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction 1 # Reaction 1
surface_reaction("H2 + 2 PT(S) => 2 H(S)", [4.45790E+10, 0.5, 0], surface_reaction("H2 + 2 PT(S) => 2 H(S)", [4.45790E+10, 0.5, 0],
order = "PT(S):1") order = "PT(S):1")
# Reaction 2 # Reaction 2
surface_reaction( "2 H(S) => H2 + 2 PT(S)", surface_reaction( "2 H(S) => H2 + 2 PT(S)",
Arrhenius(3.70000E+21, 0, 67400, Arrhenius(3.70000E+21, 0, 67400,
coverage = ['H(S)', 0.0, 0.0, -6000.0])) coverage = ['H(S)', 0.0, 0.0, -6000.0]))
# Reaction 3 # Reaction 3
@ -230,8 +230,8 @@ surface_reaction( "O2 + 2 PT(S) => 2 O(S)", stick(2.30000E-02, 0, 0),
options = 'duplicate') options = 'duplicate')
# Reaction 6 # Reaction 6
surface_reaction( "2 O(S) => O2 + 2 PT(S)", surface_reaction( "2 O(S) => O2 + 2 PT(S)",
Arrhenius(3.70000E+21, 0, 213200, Arrhenius(3.70000E+21, 0, 213200,
coverage = ['O(S)', 0.0, 0.0, -60000.0]) ) coverage = ['O(S)', 0.0, 0.0, -60000.0]) )
# Reaction 7 # Reaction 7
@ -259,7 +259,7 @@ surface_reaction( "H(S) + OH(S) <=> H2O(S) + PT(S)", [3.70000E+21, 0, 17400])
surface_reaction( "OH(S) + OH(S) <=> H2O(S) + O(S)", [3.70000E+21, 0, 48200]) surface_reaction( "OH(S) + OH(S) <=> H2O(S) + O(S)", [3.70000E+21, 0, 48200])
# Reaction 15 # Reaction 15
surface_reaction( "CO + PT(S) => CO(S)", [1.61800E+20, 0.5, 0], surface_reaction( "CO + PT(S) => CO(S)", [1.61800E+20, 0.5, 0],
order = "PT(S):2") order = "PT(S):2")
# Reaction 16 # Reaction 16
@ -273,7 +273,7 @@ surface_reaction( "CO(S) + O(S) => CO2(S) + PT(S)", [3.70000E+21, 0, 105000])
# Reaction 19 # Reaction 19
surface_reaction( "CH4 + 2 PT(S) => CH3(S) + H(S)", [4.63340E+20, 0.5, 0], surface_reaction( "CH4 + 2 PT(S) => CH3(S) + H(S)", [4.63340E+20, 0.5, 0],
order = "PT(S):2.3") order = "PT(S):2.3")
# Reaction 20 # Reaction 20
surface_reaction( "CH3(S) + PT(S) => CH2(S)s + H(S)", surface_reaction( "CH3(S) + PT(S) => CH2(S)s + H(S)",
@ -290,11 +290,3 @@ surface_reaction( "C(S) + O(S) => CO(S) + PT(S)", [3.70000E+21, 0, 62800])
# Reaction 24 # Reaction 24
surface_reaction( "CO(S) + PT(S) => C(S) + O(S)", [1.00000E+18, 0, 184000]) surface_reaction( "CO(S) + PT(S) => C(S) + O(S)", [1.00000E+18, 0, 184000])
# Reaction 25 (12/28/2009 HKM added: This is a fictious rxn that is added for numerical stability.
# The issue is that if multiple surface species have a negative concentration, the
# Jacobian for the surface problem will go singular due to the way negative concentrations
# are truncated within Cantera. Adding in unimolecular desorption rxns with neglibigle real
# effects alleviates the problem.)
surface_reaction( "C(S) => C + PT(S)", [3.7E7, 0, 62800])

View file

@ -1,358 +1,251 @@
# units(length='cm', time='s', quantity='mol', act_energy='cal/mol')
# Generated from file silane.inp
# by ck2cti on Mon Sep 20 14:24:48 2004
#
# Transport data from file misc_tran.dat.
units(length = "cm", time = "s", quantity = "mol", act_energy = "cal/mol")
ideal_gas(name = "silane",
elements = " Si H He ",
species = """ H2 H HE SIH4 SI SIH SIH2 SIH3 H3SISIH SI2H6
H2SISIH2 SI3H8 SI2 SI3 """,
reactions = "all",
transport = "Mix",
initial_state = state(temperature = 300.0,
pressure = OneAtm) )
ideal_gas(name='gas',
elements="Si H He",
species="""H2 H HE SIH4 SI
SIH SIH2 SIH3 H3SISIH SI2H6
H2SISIH2 SI3H8 SI2 SI3""",
reactions='all',
initial_state=state(temperature=300.0, pressure=OneAtm))
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Species data # Species data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
species(name = "H2", species(name='H2',
atoms = " H:2 ", atoms='H:2',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 2.344331120E+00, 7.980520750E-03, [ 2.34433112E+00, 7.98052075E-03, -1.94781510E-05,
-1.947815100E-05, 2.015720940E-08, -7.376117610E-12, 2.01572094E-08, -7.37611761E-12, -9.17935173E+02,
-9.179351730E+02, 6.830102380E-01] ), 6.83010238E-01]),
NASA( [ 1000.00, 3500.00], [ 3.337279200E+00, -4.940247310E-05, NASA([1000.00, 3500.00],
4.994567780E-07, -1.795663940E-10, 2.002553760E-14, [ 3.33727920E+00, -4.94024731E-05, 4.99456778E-07,
-9.501589220E+02, -3.205023310E+00] ) -1.79566394E-10, 2.00255376E-14, -9.50158922E+02,
), -3.20502331E+00])),
transport = gas_transport( note='TPIS78')
geom = "linear",
diam = 2.92,
well_depth = 38.00,
polar = 0.79,
rot_relax = 280.00),
note = "TPIS78"
)
species(name = "H", species(name='H',
atoms = " H:1 ", atoms='H:1',
thermo = ( thermo=(NASA([200.00, 1000.00],
NASA( [ 200.00, 1000.00], [ 2.500000000E+00, 7.053328190E-13, [ 2.50000000E+00, 7.05332819E-13, -1.99591964E-15,
-1.995919640E-15, 2.300816320E-18, -9.277323320E-22, 2.30081632E-18, -9.27732332E-22, 2.54736599E+04,
2.547365990E+04, -4.466828530E-01] ), -4.46682853E-01]),
NASA( [ 1000.00, 3500.00], [ 2.500000010E+00, -2.308429730E-11, NASA([1000.00, 3500.00],
1.615619480E-14, -4.735152350E-18, 4.981973570E-22, [ 2.50000001E+00, -2.30842973E-11, 1.61561948E-14,
2.547365990E+04, -4.466829140E-01] ) -4.73515235E-18, 4.98197357E-22, 2.54736599E+04,
), -4.46682914E-01])),
transport = gas_transport( note='L7/88')
geom = "atom",
diam = 2.05,
well_depth = 145.00),
note = "L 7/88"
)
species(name = "HE", species(name='HE',
atoms = " He:1 ", atoms='He:1',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 2.500000000E+00, 0.000000000E+00, [ 2.50000000E+00, 0.00000000E+00, 0.00000000E+00,
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, 0.00000000E+00, 0.00000000E+00, -7.45375000E+02,
-7.453750000E+02, 9.153488000E-01] ), 9.15348800E-01]),
NASA( [ 1000.00, 5000.00], [ 2.500000000E+00, 0.000000000E+00, NASA([1000.00, 5000.00],
0.000000000E+00, 0.000000000E+00, 0.000000000E+00, [ 2.50000000E+00, 0.00000000E+00, 0.00000000E+00,
-7.453750000E+02, 9.153489000E-01] ) 0.00000000E+00, 0.00000000E+00, -7.45375000E+02,
), 9.15348900E-01])),
transport = gas_transport( note='120186')
geom = "atom",
diam = 2.58,
well_depth = 10.20),
note = "120186"
)
species(name = "SIH4", species(name='SIH4',
atoms = " Si:1 H:4 ", atoms='H:4 Si:1',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 1.451640400E+00, 1.398736300E-02, [ 1.45164040E+00, 1.39873630E-02, -4.23456390E-06,
-4.234563900E-06, -2.360614200E-09, 1.371208900E-12, -2.36061420E-09, 1.37120890E-12, 3.11341050E+03,
3.113410500E+03, 1.232185500E+01] ), 1.23218550E+01]),
NASA( [ 1000.00, 2000.00], [ 7.935938000E-01, 1.767189900E-02, NASA([1000.00, 2000.00],
-1.139800900E-05, 3.599260400E-09, -4.524157100E-13, [ 7.93593800E-01, 1.76718990E-02, -1.13980090E-05,
3.198212700E+03, 1.524225700E+01] ) 3.59926040E-09, -4.52415710E-13, 3.19821270E+03,
), 1.52422570E+01])),
transport = gas_transport( note='90784')
geom = "nonlinear",
diam = 4.08,
well_depth = 207.60,
rot_relax = 1.00),
note = "90784"
)
species(name = "SI", species(name='SI',
atoms = " Si:1 ", atoms='Si:1',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 3.179353700E+00, -2.764699200E-03, [ 3.17935370E+00, -2.76469920E-03, 4.47840380E-06,
4.478403800E-06, -3.283317700E-09, 9.121363100E-13, -3.28331770E-09, 9.12136310E-13, 5.33390320E+04,
5.333903200E+04, 2.727320400E+00] ), 2.72732040E+00]),
NASA( [ 1000.00, 5000.00], [ 2.650601400E+00, -3.576385200E-04, NASA([1000.00, 5000.00],
2.959229300E-07, -7.280482900E-11, 5.796332900E-15, [ 2.65060140E+00, -3.57638520E-04, 2.95922930E-07,
5.343705400E+04, 5.220405700E+00] ) -7.28048290E-11, 5.79633290E-15, 5.34370540E+04,
), 5.22040570E+00])),
transport = gas_transport( note='J3/67')
geom = "atom",
diam = 2.91,
well_depth = 3036.00),
note = "J 3/67"
)
species(name = "SIH", species(name='SIH',
atoms = " Si:1 H:1 ", atoms='H:1 Si:1',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 3.836010000E+00, -2.702657000E-03, [ 3.83601000E+00, -2.70265700E-03, 6.84907000E-06,
6.849070000E-06, -5.424184000E-09, 1.472131000E-12, -5.42418400E-09, 1.47213100E-12, 4.50759300E+04,
4.507593000E+04, 9.350778000E-01] ), 9.35077800E-01]),
NASA( [ 1000.00, 2000.00], [ 3.110430000E+00, 1.094946000E-03, NASA([1000.00, 2000.00],
2.898629000E-08, -2.745104000E-10, 7.051799000E-14, [ 3.11043000E+00, 1.09494600E-03, 2.89862900E-08,
4.516898000E+04, 4.193487000E+00] ) -2.74510400E-10, 7.05179900E-14, 4.51689800E+04,
), 4.19348700E+00])),
transport = gas_transport( note='121986')
geom = "linear",
diam = 3.66,
well_depth = 95.80,
rot_relax = 1.00),
note = "121986"
)
species(name = "SIH2", species(name='SIH2',
atoms = " Si:1 H:2 ", atoms='H:2 Si:1',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 3.475092000E+00, 2.139338000E-03, [ 3.47509200E+00, 2.13933800E-03, 7.67230600E-07,
7.672306000E-07, 5.217668000E-10, -9.898824000E-13, 5.21766800E-10, -9.89882400E-13, 3.14739700E+04,
3.147397000E+04, 4.436585000E+00] ), 4.43658500E+00]),
NASA( [ 1000.00, 3000.00], [ 4.142390000E+00, 2.150191000E-03, NASA([1000.00, 3000.00],
-2.190730000E-07, -2.073725000E-10, 4.741018000E-14, [ 4.14239000E+00, 2.15019100E-03, -2.19073000E-07,
3.110484000E+04, 2.930745000E-01] ) -2.07372500E-10, 4.74101800E-14, 3.11048400E+04,
), 2.93074500E-01])),
transport = gas_transport( note='42489')
geom = "nonlinear",
diam = 3.80,
well_depth = 133.10,
rot_relax = 1.00),
note = "42489"
)
species(name = "SIH3", species(name='SIH3',
atoms = " Si:1 H:3 ", atoms='H:3 Si:1',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 2.946733000E+00, 6.466764000E-03, [ 2.94673300E+00, 6.46676400E-03, 5.99165300E-07,
5.991653000E-07, -2.218413000E-09, 3.052670000E-13, -2.21841300E-09, 3.05267000E-13, 2.27017300E+04,
2.270173000E+04, 7.347948000E+00] ), 7.34794800E+00]),
NASA( [ 1000.00, 3000.00], [ 5.015906000E+00, 3.732750000E-03, NASA([1000.00, 3000.00],
-3.609053000E-07, -3.729193000E-10, 8.468490000E-14, [ 5.01590600E+00, 3.73275000E-03, -3.60905300E-07,
2.190233000E+04, -4.291368000E+00] ) -3.72919300E-10, 8.46849000E-14, 2.19023300E+04,
), -4.29136800E+00])),
transport = gas_transport( note='42489')
geom = "nonlinear",
diam = 3.94,
well_depth = 170.30,
rot_relax = 1.00),
note = "42489"
)
species(name = "H3SISIH", species(name='H3SISIH',
atoms = " H:4 Si:2 ", atoms='H:4 Si:2',
thermo = ( thermo=(NASA([300.00, 1500.00],
NASA( [ 300.00, 1500.00], [ 3.698707000E+00, 1.870180000E-02, [ 3.69870700E+00, 1.87018000E-02, -1.43070400E-05,
-1.430704000E-05, 6.005836000E-09, -1.116293000E-12, 6.00583600E-09, -1.11629300E-12, 3.59082500E+04,
3.590825000E+04, 8.825191000E+00] ), 8.82519100E+00]),
NASA( [ 1500.00, 4000.00], [ 1.127202000E+01, 2.538145000E-03, NASA([1500.00, 4000.00],
-2.998472000E-07, -9.465367000E-11, 1.855053000E-14, [ 1.12720200E+01, 2.53814500E-03, -2.99847200E-07,
3.297169000E+04, -3.264598000E+01] ) -9.46536700E-11, 1.85505300E-14, 3.29716900E+04,
), -3.26459800E+01])),
transport = gas_transport( note='111191')
geom = "nonlinear",
diam = 4.60,
well_depth = 312.60,
rot_relax = 1.00),
note = "111191"
)
species(name = "SI2H6", species(name='SI2H6',
atoms = " Si:2 H:6 ", atoms='H:6 Si:2',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 6.734798300E-01, 4.093153100E-02, [ 6.73479830E-01, 4.09315310E-02, -4.48412550E-05,
-4.484125500E-05, 2.995223200E-08, -8.901085400E-12, 2.99522320E-08, -8.90108540E-12, 7.93278750E+03,
7.932787500E+03, 1.862740300E+01] ), 1.86274030E+01]),
NASA( [ 1000.00, 2000.00], [ 3.407493600E+00, 2.720647900E-02, NASA([1000.00, 2000.00],
-1.771320400E-05, 5.639117700E-09, -7.137868200E-13, [ 3.40749360E+00, 2.72064790E-02, -1.77132040E-05,
7.532184200E+03, 6.132175400E+00] ) 5.63911770E-09, -7.13786820E-13, 7.53218420E+03,
), 6.13217540E+00])),
transport = gas_transport( note='90784')
geom = "nonlinear",
diam = 4.83,
well_depth = 301.30,
rot_relax = 1.00),
note = "90784"
)
species(name = "H2SISIH2", species(name='H2SISIH2',
atoms = " Si:2 H:4 ", atoms='H:4 Si:2',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 5.133186000E+00, 1.252855000E-02, [ 5.13318600E+00, 1.25285500E-02, -4.62042100E-07,
-4.620421000E-07, -6.606075000E-09, 2.864345000E-12, -6.60607500E-09, 2.86434500E-12, 2.95691500E+04,
2.956915000E+04, 7.605133000E-01] ), 7.60513300E-01]),
NASA( [ 1000.00, 3000.00], [ 8.986817000E+00, 5.405047000E-03, NASA([1000.00, 3000.00],
-5.214022000E-07, -5.313742000E-10, 1.188727000E-13, [ 8.98681700E+00, 5.40504700E-03, -5.21402200E-07,
2.832748000E+04, -2.004478000E+01] ) -5.31374200E-10, 1.18872700E-13, 2.83274800E+04,
), -2.00447800E+01])),
transport = gas_transport( note='42489')
geom = "nonlinear",
diam = 4.60,
well_depth = 312.60,
rot_relax = 1.00),
note = "42489"
)
species(name = "SI3H8", species(name='SI3H8',
atoms = " Si:3 H:8 ", atoms='H:8 Si:3',
thermo = ( thermo=(NASA([300.00, 1000.00],
NASA( [ 300.00, 1000.00], [ 7.719684600E-01, 6.344274000E-02, [ 7.71968460E-01, 6.34427400E-02, -7.67261090E-05,
-7.672610900E-05, 5.454371500E-08, -1.661172900E-11, 5.45437150E-08, -1.66117290E-11, 1.20712630E+04,
1.207126300E+04, 2.153250700E+01] ), 2.15325070E+01]),
NASA( [ 1000.00, 2000.00], [ 6.093334100E+00, 3.658011200E-02, NASA([1000.00, 2000.00],
-2.389236100E-05, 7.627193200E-09, -9.676938400E-13, [ 6.09333410E+00, 3.65801120E-02, -2.38923610E-05,
1.129720500E+04, -2.747565400E+00] ) 7.62719320E-09, -9.67693840E-13, 1.12972050E+04,
), -2.74756540E+00])),
transport = gas_transport( note='90784')
geom = "nonlinear",
diam = 5.56,
well_depth = 331.20,
rot_relax = 1.00),
note = "90784"
)
species(name = "SI2",
atoms = " Si:2 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 2.967197600E+00, 6.311955800E-03,
-1.097079000E-05, 8.927868000E-09, -2.787368900E-12,
6.987073800E+04, 9.278950300E+00] ),
NASA( [ 1000.00, 2000.00], [ 4.144677900E+00, 6.523467700E-04,
-5.010852000E-07, 1.806284300E-10, -2.516111100E-14,
6.969470700E+04, 3.862736600E+00] )
),
transport = gas_transport(
geom = "linear",
diam = 3.28,
well_depth = 3036.00,
rot_relax = 1.00),
note = "90784"
)
species(name = "SI3",
atoms = " Si:3 ",
thermo = (
NASA( [ 300.00, 1000.00], [ 4.597912900E+00, 1.071527400E-02,
-1.610042200E-05, 1.096920700E-08, -2.783287500E-12,
7.476632400E+04, 3.442167100E+00] ),
NASA( [ 1000.00, 5000.00], [ 7.421336000E+00, -1.170994800E-04,
8.982077500E-08, 7.193596400E-12, -2.567083700E-15,
7.414669900E+04, -1.036527400E+01] )
),
transport = gas_transport(
geom = "nonlinear",
diam = 3.55,
well_depth = 3036.00,
rot_relax = 1.00),
note = "J 3/67"
)
species(name='SI2',
atoms='Si:2',
thermo=(NASA([300.00, 1000.00],
[ 2.96719760E+00, 6.31195580E-03, -1.09707900E-05,
8.92786800E-09, -2.78736890E-12, 6.98707380E+04,
9.27895030E+00]),
NASA([1000.00, 2000.00],
[ 4.14467790E+00, 6.52346770E-04, -5.01085200E-07,
1.80628430E-10, -2.51611110E-14, 6.96947070E+04,
3.86273660E+00])),
note='90784')
species(name='SI3',
atoms='Si:3',
thermo=(NASA([300.00, 1000.00],
[ 4.59791290E+00, 1.07152740E-02, -1.61004220E-05,
1.09692070E-08, -2.78328750E-12, 7.47663240E+04,
3.44216710E+00]),
NASA([1000.00, 5000.00],
[ 7.42133600E+00, -1.17099480E-04, 8.98207750E-08,
7.19359640E-12, -2.56708370E-15, 7.41466990E+04,
-1.03652740E+01])),
note='J3/67')
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction data # Reaction data
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Reaction 1 # Reaction 1
# Roth reaction('SIH4 + H <=> SIH3 + H2', [7.800000e+14, 0.0, 2260.0])
reaction( "SIH4 + H <=> SIH3 + H2", [7.80000E+14, 0, 2260])
# Reaction 2 # Reaction 2
# 94TAK/MOM tst calc reaction('SIH4 <=> SIH3 + H', [3.910000e+15, 0.0, 89356.0])
three_body_reaction( "SIH4 + M <=> SIH3 + H + M", [3.91000E+15, 0, 89356])
# Reaction 3 # Reaction 3
# assume same as SIH4 reaction('SIH3 + H <=> SIH2 + H2', [7.800000e+14, 0.0, 2260.0])
reaction( "SIH3 + H <=> SIH2 + H2", [7.80000E+14, 0, 2260])
# Reaction 4 # Reaction 4
# 90MAR/RAF reaction('SI + SI <=> SI2', [2.470000e+16, 0.0, 1178.0])
three_body_reaction( "SI + SI + M <=> SI2 + M", [2.47000E+16, 0, 1178])
# Reaction 5 # Reaction 5
# R8 reaction('SIH4 + SIH2 <=> H3SISIH + H2', [1.300000e+13, 0.0, 0.0])
reaction( "SIH4 + SIH2 <=> H3SISIH + H2", [1.30000E+13, 0, 0])
# Reaction 6 # Reaction 6
# R11 reaction('SIH + H2 <=> SIH2 + H', [4.800000e+14, 0.0, 23.64])
reaction( "SIH + H2 <=> SIH2 + H", [4.80000E+14, 0, 23.64])
# Reaction 7 # Reaction 7
# R12 reaction('SIH + SIH4 <=> H3SISIH + H', [1.600000e+14, 0.0, 0.0])
reaction( "SIH + SIH4 <=> H3SISIH + H", [1.60000E+14, 0, 0])
# Reaction 8 # Reaction 8
# R13 reaction('SI + H2 <=> SIH + H', [1.500000e+15, 0.0, 31.8])
reaction( "SI + H2 <=> SIH + H", [1.50000E+15, 0, 31.8])
# Reaction 9 # Reaction 9
# R1 falloff_reaction('SIH4 (+ M) <=> SIH2 + H2 (+ M)',
falloff_reaction( "SIH4 (+ M) <=> SIH2 + H2 (+ M)", kf=[3.119000e+09, 1.669, 54710.0],
kf = [3.11900E+09, 1.669, 54710], kf0=[5.214000e+29, -3.545, 57550.0],
kf0 = [5.21400E+29, -3.545, 57550], falloff=Troe(A=-0.4984, T3=888.3, T1=209.4, T2=2760.0),
falloff = Troe(A = -0.4984, T3 = 888.3, T1 = 209.4, T2 = 2760), efficiencies='SIH4:4.0 SI2H6:4.0')
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 10 # Reaction 10
# HF(SiH2)=64.3, anh_inc.16b, beta(Ar,300) = 0.25 fit from 300 to 1200K falloff_reaction('H3SISIH (+ M) <=> H2SISIH2 (+ M)',
# A6 kf=[2.540000e+13, -0.2239, 5381.0],
falloff_reaction( "H3SISIH (+ M) <=> H2SISIH2 (+ M)", kf0=[1.099000e+33, -5.765, 9152.0],
kf = [2.54000E+13, -0.2239, 5381], falloff=Troe(A=-0.4202, T3=214.5, T1=103.0, T2=136.3),
kf0 = [1.09900E+33, -5.765, 9152], efficiencies='SIH4:4.0 SI2H6:4.0')
falloff = Troe(A = -0.4202, T3 = 214.5, T1 = 103, T2 = 136.3),
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 11 # Reaction 11
# RRKM fits 3/18/93 by MEC falloff_reaction('SI3H8 (+ M) <=> SIH4 + H3SISIH (+ M)',
falloff_reaction( "SI3H8 (+ M) <=> SIH4 + H3SISIH (+ M)", kf=[3.730000e+12, 0.992, 50850.0],
kf = [3.73000E+12, 0.992, 50850], kf0=[4.360000e+76, -17.26, 59303.0],
kf0 = [4.36000E+76, -17.26, 59303], falloff=Troe(A=0.4157, T3=365.3, T1=3102.0, T2=9.724),
falloff = Troe(A = 0.4157, T3 = 365.3, T1 = 3102, T2 = 9.724), efficiencies='SIH4:4.0 SI2H6:4.0')
efficiencies = " SI2H6:4 SIH4:4 ")
# Reaction 12 # Reaction 12
falloff_reaction( "SI3H8 (+ M) <=> SIH2 + SI2H6 (+ M)", falloff_reaction('SI3H8 (+ M) <=> SIH2 + SI2H6 (+ M)',
kf = [6.97000E+12, 0.9691, 52677], kf=[6.970000e+12, 0.9691, 52677.0],
kf0 = [1.73000E+69, -15.07, 60491], kf0=[1.730000e+69, -15.07, 60491.0],
falloff = Troe(A = -3.47e-05, T3 = 442, T1 = 2412, T2 = 128.3), falloff=Troe(A=-3.47e-05, T3=442.0, T1=2412.0, T2=128.3),
efficiencies = " SI2H6:4 SIH4:4 ") efficiencies='SIH4:4.0 SI2H6:4.0')
# Reaction 13 # Reaction 13
falloff_reaction( "SI2H6 (+ M) <=> H2 + H3SISIH (+ M)", falloff_reaction('SI2H6 (+ M) <=> H2 + H3SISIH (+ M)',
kf = [9.08600E+09, 1.834, 54197], kf=[9.086000e+09, 1.834, 54197.0],
kf0 = [1.94500E+44, -7.772, 59023], kf0=[1.945000e+44, -7.772, 59023.0],
falloff = Troe(A = -0.1224, T3 = 793.3, T1 = 2400, T2 = 11.39), falloff=Troe(A=-0.1224, T3=793.3, T1=2400.0, T2=11.39),
efficiencies = " SI2H6:4 SIH4:4 ") efficiencies='SIH4:4.0 SI2H6:4.0')
# Reaction 14 # Reaction 14
# A3 falloff_reaction('SI2H6 (+ M) <=> SIH4 + SIH2 (+ M)',
falloff_reaction( "SI2H6 (+ M) <=> SIH4 + SIH2 (+ M)", kf=[1.810000e+10, 1.747, 50203.0],
kf = [1.81000E+10, 1.747, 50203], kf0=[5.090000e+53, -10.37, 56034.0],
kf0 = [5.09000E+53, -10.37, 56034], falloff=Troe(A=4.375e-05, T3=438.5, T1=2726.0, T2=438.2),
falloff = Troe(A = 4.375e-05, T3 = 438.5, T1 = 2726, T2 = 438.2), efficiencies='SIH4:4.0 SI2H6:4.0')
efficiencies = " SI2H6:4 SIH4:4 ")

View file

@ -13,10 +13,10 @@ stoichiometric_solid(name = "silicon",
species(name = "Si(cr)", species(name = "Si(cr)",
atoms = " Si:1 ", atoms = " Si:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 1000.00], [ -1.291769120E-01, 1.472031390E-02, NASA( [ 200.00, 1000.00], [ -1.291769120E-01, 1.472031390E-02,
-2.765101600E-05, 2.418782510E-08, -7.934529120E-12, -2.765101600E-05, 2.418782510E-08, -7.934529120E-12,
-4.155164170E+02, -3.595700080E-01] ), -4.155164170E+02, -3.595700080E-01] ),
NASA( [ 1000.00, 1690.00], [ 1.755473820E+00, 3.172854970E-03, NASA( [ 1000.00, 1690.00], [ 1.755473820E+00, 3.172854970E-03,
-2.782364020E-06, 1.264580650E-09, -2.171284640E-13, -2.782364020E-06, 1.264580650E-09, -2.171284640E-13,
-6.286573630E+02, -8.553411770E+00] ) -6.286573630E+02, -8.553411770E+00] )
) )

View file

@ -13,10 +13,10 @@ stoichiometric_solid(name = "silicon_carbide",
species(name = "SiC(b)", species(name = "SiC(b)",
atoms = " Si:1 C:1 ", atoms = " Si:1 C:1 ",
thermo = ( thermo = (
NASA( [ 300.00, 1000.00], [ -2.471590700E+00, 3.069378300E-02, NASA( [ 300.00, 1000.00], [ -2.471590700E+00, 3.069378300E-02,
-4.926308500E-05, 3.862638900E-08, -1.176162100E-11, -4.926308500E-05, 3.862638900E-08, -1.176162100E-11,
-9.069126000E+03, 8.800921400E+00] ), -9.069126000E+03, 8.800921400E+00] ),
NASA( [ 1000.00, 4000.00], [ 3.797480900E+00, 3.187288600E-03, NASA( [ 1000.00, 4000.00], [ 3.797480900E+00, 3.187288600E-03,
-1.450233400E-06, 3.154974400E-10, -2.615899100E-14, -1.450233400E-06, 3.154974400E-10, -2.615899100E-14,
-1.029193700E+04, -2.106779100E+01] ) -1.029193700E+04, -2.106779100E+01] )
) )

View file

@ -8,12 +8,6 @@
# #
######################################################################### #########################################################################
# since Cantera input files are actually executable Python scripts,
# we can put any valid Python statements in the input file. Here we
# import the value of R from Cantera.
from Cantera import GasConstant
# These units will be used by default for any quantities entered # These units will be used by default for any quantities entered
# without units. Quantities with compound units (e.g. concentration) # without units. Quantities with compound units (e.g. concentration)
# will be constructed from these - the units of concentration will be # will be constructed from these - the units of concentration will be
@ -23,12 +17,8 @@ units(length = "cm", time = "s", quantity = "mol", act_energy = "kJ/mol")
# Turn on mechanism validation to detect unbalanced reactions, if any # Turn on mechanism validation to detect unbalanced reactions, if any
validate() validate()
#------------------------------------------------------------------ #------------------------------------------------------------------
#
# parameters # parameters
#
#------------------------------------------------------------------ #------------------------------------------------------------------
# a few numeric parameters are collected here to allow easy modification. # a few numeric parameters are collected here to allow easy modification.
@ -39,7 +29,6 @@ validate()
tc = 800.0 # temperature in C tc = 800.0 # temperature in C
tt = tc + 273.15 # temperature in K tt = tc + 273.15 # temperature in K
# these values are defined here only so they may be easily changed to # these values are defined here only so they may be easily changed to
# assess the effects of the oxide thermochemistry. For work at a # assess the effects of the oxide thermochemistry. For work at a
# single temperature, all that we really need is g = h - # single temperature, all that we really need is g = h -
@ -52,18 +41,13 @@ sox = (50.0, 'J/K/mol') # entropy of an oxygen ion
hhydrox = (-220.0, 'kJ/mol') # enthalpy of a surface hydroxyl group hhydrox = (-220.0, 'kJ/mol') # enthalpy of a surface hydroxyl group
shydrox = (87.0, 'J/mol/K') # entropy of a surface hydroxyl group shydrox = (87.0, 'J/mol/K') # entropy of a surface hydroxyl group
####################### BULK PHASES #################################### ####################### BULK PHASES ####################################
# First we'll define the bulk (i.e. 3D) phases - a gas, a metal, and # First we'll define the bulk (i.e. 3D) phases - a gas, a metal, and
# an oxide. # an oxide.
#------------------------------------------------------------------ #------------------------------------------------------------------
#
# Gas phase. # Gas phase.
#
#------------------------------------------------------------------ #------------------------------------------------------------------
# The gas contains only the minimum number of species needed to model # The gas contains only the minimum number of species needed to model
@ -79,11 +63,8 @@ ideal_gas(name = "gas",
pressure = OneAtm, pressure = OneAtm,
mole_fractions = 'H2:0.95, H2O:0.05')) mole_fractions = 'H2:0.95, H2O:0.05'))
#------------------------------------------------------------------ #------------------------------------------------------------------
#
# Bulk solid metal phase. # Bulk solid metal phase.
#
#------------------------------------------------------------------ #------------------------------------------------------------------
# #
# This phase will be used for the electrodes. All we need is # This phase will be used for the electrodes. All we need is
@ -91,9 +72,9 @@ ideal_gas(name = "gas",
# containing electrons. Note that the 'metal' entry type requires # containing electrons. Note that the 'metal' entry type requires
# specifying a density, but it is not used in this simulation and # specifying a density, but it is not used in this simulation and
# therefore is arbitrary. # therefore is arbitrary.
# #
metal(name = "metal", metal(name = "metal",
elements = "E", elements = "E",
species = "electron", species = "electron",
density = (9.0, 'kg/m3'), density = (9.0, 'kg/m3'),
initial_state = state( temperature =tt, initial_state = state( temperature =tt,
@ -119,28 +100,23 @@ species( name = "electron", atoms = "E:1",
# h0 + cp0*(t - t0), s = s0 + cp0*ln(t/t0). For work at a single # h0 + cp0*(t - t0), s = s0 + cp0*ln(t/t0). For work at a single
# temperature, it is sufficient to specify only h0. # temperature, it is sufficient to specify only h0.
#------------------------------------------------------------------- #-------------------------------------------------------------------
#
# Bulk solid oxide electrolyte # Bulk solid oxide electrolyte
#
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# Here too, we create a very simple model for the bulk phase. We only # Here too, we create a very simple model for the bulk phase. We only
# consider the oxygen sublattice. The only species we define are a # consider the oxygen sublattice. The only species we define are a
# lattice oxygen, and an oxygen vacancy. Again, the density is a # lattice oxygen, and an oxygen vacancy. Again, the density is a
# required input, but is not used here, so may be set arbitrarily. # required input, but is not used here, so may be set arbitrarily.
incompressible_solid(name = "oxide_bulk", lattice(name = "oxide_bulk",
elements = "O E", elements = "O E",
species = "Ox VO**", species = "Ox VO**",
density = (0.7, 'g/cm3'), site_density = (0.0176, 'mol/cm3'),
initial_state = state( temperature = tt, initial_state = state( temperature = tt,
pressure = OneAtm, pressure = OneAtm,
mole_fractions = "Ox:0.95 VO**:0.05") mole_fractions = "Ox:0.95 VO**:0.05")
) )
# The vacancy will be modeled as truly vacant - it contains no atoms, # The vacancy will be modeled as truly vacant - it contains no atoms,
# has no charge, and has zero enthalpy and entropy. This is different # has no charge, and has zero enthalpy and entropy. This is different
# from the usual convention in which the vacancy properties are are # from the usual convention in which the vacancy properties are are
@ -152,20 +128,16 @@ incompressible_solid(name = "oxide_bulk",
# A bulk lattice vacancy # A bulk lattice vacancy
species( name = "VO**", atoms = "", species( name = "VO**", atoms = "",
thermo = const_cp(h0 = (0.0, 'kJ/mol'))) thermo = const_cp(h0 = (0.0, 'kJ/mol')))
# A bulk lattice oxygen # A bulk lattice oxygen
species( name = "Ox", atoms = "O:1 E:2", species( name = "Ox", atoms = "O:1 E:2",
thermo = const_cp(h0 = hox, s0 = sox)) thermo = const_cp(h0 = hox, s0 = sox))
####################### SURFACE PHASES #################################### ####################### SURFACE PHASES ####################################
#-------------------------------------------------- #--------------------------------------------------
#
# Metal surface # Metal surface
#
#-------------------------------------------------- #--------------------------------------------------
# The surface of a bulk phase must be treated like a separate phase, with its # The surface of a bulk phase must be treated like a separate phase, with its
@ -215,7 +187,6 @@ species( name = "H2O(m)", atoms = "H:2, O:1",
thermo = const_cp(h0 = (-281.0, 'kJ/mol'), thermo = const_cp(h0 = (-281.0, 'kJ/mol'),
s0 = (123.0, 'J/mol/K'))) s0 = (123.0, 'J/mol/K')))
# Surface reactions on the metal. We assume three dissociative # Surface reactions on the metal. We assume three dissociative
# adsorption reactions, and three reactions on the surface # adsorption reactions, and three reactions on the surface
# among adsorbates. All reactions are treated as reversible. # among adsorbates. All reactions are treated as reversible.
@ -237,11 +208,8 @@ surface_reaction( "H(m) + OH(m) <=> H2O(m) + (m)",
surface_reaction( "OH(m) + OH(m) <=> H2O(m) + O(m)", surface_reaction( "OH(m) + OH(m) <=> H2O(m) + O(m)",
[5.00000E+21, 0, 100.0], id = 'metal-rxn6') [5.00000E+21, 0, 100.0], id = 'metal-rxn6')
#-------------------------------------------------------- #--------------------------------------------------------
#
# Oxide surface. # Oxide surface.
#
#-------------------------------------------------------- #--------------------------------------------------------
#H #H
# On the oxide surface, we consider four species: # On the oxide surface, we consider four species:
@ -255,7 +223,7 @@ ideal_interface(name = "oxide_surface",
species = "(ox) O''(ox) OH'(ox) H2O(ox)", species = "(ox) O''(ox) OH'(ox) H2O(ox)",
site_density = 2.0e-9, site_density = 2.0e-9,
phases = 'gas oxide_bulk', phases = 'gas oxide_bulk',
reactions = 'oxide-*', reactions = 'oxide-*',
initial_state = state( temperature = tt, initial_state = state( temperature = tt,
coverages = "O''(ox):2.0, (ox):0.0") ) coverages = "O''(ox):2.0, (ox):0.0") )
@ -264,8 +232,8 @@ ideal_interface(name = "oxide_surface",
# An oxygen ion at the surface, with charge = -2 # An oxygen ion at the surface, with charge = -2
species( name = "O''(ox)", atoms = "O:1 E:2", species( name = "O''(ox)", atoms = "O:1 E:2",
thermo = const_cp(h0 = hox, thermo = const_cp(h0 = hox,
s0 = sox)) s0 = sox))
# An OH at the surface, with charge = -1 # An OH at the surface, with charge = -1
species( name = "OH'(ox)", atoms = "O:1 H:1 E:1", species( name = "OH'(ox)", atoms = "O:1 H:1 E:1",
@ -281,7 +249,6 @@ species( name = "H2O(ox)", atoms = "H:2, O:1",
thermo = const_cp(h0 = (-265.0, 'kJ/mol'), thermo = const_cp(h0 = (-265.0, 'kJ/mol'),
s0 = (98.0,'J/mol/K'))) s0 = (98.0,'J/mol/K')))
# This reaction represents the exchange of a surface oxygen vacancy and # This reaction represents the exchange of a surface oxygen vacancy and
# a subsurface vacancy. The concentration of subsurface vacancies is # a subsurface vacancy. The concentration of subsurface vacancies is
# fixed by the doping level. If this reaction is given a large rate, # fixed by the doping level. If this reaction is given a large rate,
@ -290,8 +257,7 @@ species( name = "H2O(ox)", atoms = "H:2, O:1",
surface_reaction("(ox) + Ox <=> VO** + O''(ox)", surface_reaction("(ox) + Ox <=> VO** + O''(ox)",
[5.0e8, 0.0, 0.0], id = "oxide-vac") [5.0e8, 0.0, 0.0], id = "oxide-vac")
# Desorption of physisorbed water. This is made fast.
# Desorption of physisorbed water. This is made fast.
surface_reaction("H2O(ox) <=> H2O + (ox)", surface_reaction("H2O(ox) <=> H2O + (ox)",
[1.0e14, 0.0, (0.0, 'kJ/mol')], id = "oxide-water") [1.0e14, 0.0, (0.0, 'kJ/mol')], id = "oxide-water")
@ -300,10 +266,8 @@ surface_reaction("H2O(ox) <=> H2O + (ox)",
surface_reaction("H2O(ox) + O''(ox) <=> OH'(ox) + OH'(ox)", surface_reaction("H2O(ox) + O''(ox) <=> OH'(ox) + OH'(ox)",
[1.0e14, 0.0, (0.0, 'kJ/mol')], id = "oxide-oh") [1.0e14, 0.0, (0.0, 'kJ/mol')], id = "oxide-oh")
####################### TRIPLE PHASE BOUNDARY ######################### ####################### TRIPLE PHASE BOUNDARY #########################
# The triple phase boundary between the metal, oxide, and gas. A # The triple phase boundary between the metal, oxide, and gas. A
# single species is specified, but it is not used, since all reactions # single species is specified, but it is not used, since all reactions
# only involve species on either side of the tpb. Note that the site # only involve species on either side of the tpb. Note that the site
@ -322,8 +286,6 @@ edge(name = "tpb",
# dummy species # dummy species
species( name = "(tpb)", atoms = "") species( name = "(tpb)", atoms = "")
# Here we define two charge transfer reactions. Both reactions are # Here we define two charge transfer reactions. Both reactions are
# reversible, and can be used to model either anodes or cathodes # reversible, and can be used to model either anodes or cathodes
# (although real anodes and cathodes would usually have different # (although real anodes and cathodes would usually have different
@ -332,26 +294,19 @@ species( name = "(tpb)", atoms = "")
# in this reaction, a proton from the metal crosses the TPB to the # in this reaction, a proton from the metal crosses the TPB to the
# oxide surface to make a hydroxyl and deliver an electron to the # oxide surface to make a hydroxyl and deliver an electron to the
# metal. # metal.
edge_reaction("H(m) + O''(ox) <=> (m) + electron + OH'(ox)", edge_reaction("H(m) + O''(ox) <=> (m) + electron + OH'(ox)",
[5.0e13, 0.0, 120.0], beta = 0.5, id="edge-f2") [5.0e13, 0.0, 120.0], beta = 0.5, id="edge-f2")
# in this reaction, an oxygen on the metal surface plus 2 electrons # in this reaction, an oxygen on the metal surface plus 2 electrons
# from the metal bulk fill a surface vacancy in the oxide lattice. # from the metal bulk fill a surface vacancy in the oxide lattice.
edge_reaction("O(m) + (ox) + 2 electron <=> (m) + O''(ox)", edge_reaction("O(m) + (ox) + 2 electron <=> (m) + O''(ox)",
[5.0e13, 0.0, 120.0], beta = 0.5, id="edge-f3") [5.0e13, 0.0, 120.0], beta = 0.5, id="edge-f3")
# this reaction is commented out, but you can explore its effects by # this reaction is commented out, but you can explore its effects by
# uncommenting it. Be careful, if you are not solving for the OH' # uncommenting it. Be careful, if you are not solving for the OH'
# concentration that the system does not become overdetermined # concentration that the system does not become overdetermined
# (i.e. impossible for all reactions to be simultaneously in # (i.e. impossible for all reactions to be simultaneously in
# equilibrium). If this happens, the wrong OCVs will result. # equilibrium). If this happens, the wrong OCVs will result.
#edge_reaction("H(m) + OH'(ox) <=> H2O(ox) + (m) + electron", #edge_reaction("H(m) + OH'(ox) <=> H2O(ox) + (m) + electron",
# [5.0e13, 0.0, 120.0], beta = 0.5, id="edge-f") # [5.0e13, 0.0, 120.0], beta = 0.5, id="edge-f")

View file

@ -24,7 +24,7 @@ stoichiometric_liquid(name = "liquid_water",
species(name = "H2O(S)", species(name = "H2O(S)",
atoms = " H:2 O:1 ", atoms = " H:2 O:1 ",
thermo = ( thermo = (
NASA( [ 200.00, 273.15], [ 5.296779700E+00, -6.757492470E-02, NASA( [ 200.00, 273.15], [ 5.296779700E+00, -6.757492470E-02,
5.169421090E-04, -1.438533600E-06, 1.525647940E-09, 5.169421090E-04, -1.438533600E-06, 1.525647940E-09,
-3.622665570E+04, -1.792204280E+01] ) -3.622665570E+04, -1.792204280E+01] )
) )
@ -33,7 +33,7 @@ species(name = "H2O(S)",
species(name = "H2O(L)", species(name = "H2O(L)",
atoms = " H:2 O:1 ", atoms = " H:2 O:1 ",
thermo = ( thermo = (
NASA( [ 273.15, 600.00], [ 7.255750050E+01, -6.624454020E-01, NASA( [ 273.15, 600.00], [ 7.255750050E+01, -6.624454020E-01,
2.561987460E-03, -4.365919230E-06, 2.781789810E-09, 2.561987460E-03, -4.365919230E-06, 2.781789810E-09,
-4.188654990E+04, -2.882801370E+02] ) -4.188654990E+04, -2.882801370E+02] )
) )

View file

@ -1,177 +1,169 @@
! GRI-Mech Version 3.0 3/12/99 CHEMKIN-II format THERMO
! See README30 file at anonymous FTP site unix.sri.com, directory gri;
! WorldWideWeb home page http://www.me.berkeley.edu/gri_mech/ or
! through http://www.gri.org , under 'Basic Research',
! for additional information, contacts, and disclaimer
ELEMENTS
O H N
END
SPECIES
H2 H O O2 OH H2O N2
END
THERMO ALL
300.000 1000.000 5000.000 300.000 1000.000 5000.000
O L 1/90O 1 00 00 00G 200.000 3500.000 1000.000 1 ! GRI-Mech Version 3.0 Thermodynamics released 7/30/99
! NASA Polynomial format for CHEMKIN-II
! see README file for disclaimer
O L 1/90O 1 G 200.000 3500.000 1000.000 1
2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15 2 2.56942078E+00-8.59741137E-05 4.19484589E-08-1.00177799E-11 1.22833691E-15 2
2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06 3 2.92175791E+04 4.78433864E+00 3.16826710E+00-3.27931884E-03 6.64306396E-06 3
-6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00 4 -6.12806624E-09 2.11265971E-12 2.91222592E+04 2.05193346E+00 4
O2 TPIS89O 2 00 00 00G 200.000 3500.000 1000.000 1 O2 TPIS89O 2 G 200.000 3500.000 1000.000 1
3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14 2 3.28253784E+00 1.48308754E-03-7.57966669E-07 2.09470555E-10-2.16717794E-14 2
-1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06 3 -1.08845772E+03 5.45323129E+00 3.78245636E+00-2.99673416E-03 9.84730201E-06 3
-9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00 4 -9.68129509E-09 3.24372837E-12-1.06394356E+03 3.65767573E+00 4
H L 7/88H 1 00 00 00G 200.000 3500.000 1000.000 1 H L 7/88H 1 G 200.000 3500.000 1000.000 1
2.50000001E+00-2.30842973E-11 1.61561948E-14-4.73515235E-18 4.98197357E-22 2 2.50000001E+00-2.30842973E-11 1.61561948E-14-4.73515235E-18 4.98197357E-22 2
2.54736599E+04-4.46682914E-01 2.50000000E+00 7.05332819E-13-1.99591964E-15 3 2.54736599E+04-4.46682914E-01 2.50000000E+00 7.05332819E-13-1.99591964E-15 3
2.30081632E-18-9.27732332E-22 2.54736599E+04-4.46682853E-01 4 2.30081632E-18-9.27732332E-22 2.54736599E+04-4.46682853E-01 4
H2 TPIS78H 2 00 00 00G 200.000 3500.000 1000.000 1 H2 TPIS78H 2 G 200.000 3500.000 1000.000 1
3.33727920E+00-4.94024731E-05 4.99456778E-07-1.79566394E-10 2.00255376E-14 2 3.33727920E+00-4.94024731E-05 4.99456778E-07-1.79566394E-10 2.00255376E-14 2
-9.50158922E+02-3.20502331E+00 2.34433112E+00 7.98052075E-03-1.94781510E-05 3 -9.50158922E+02-3.20502331E+00 2.34433112E+00 7.98052075E-03-1.94781510E-05 3
2.01572094E-08-7.37611761E-12-9.17935173E+02 6.83010238E-01 4 2.01572094E-08-7.37611761E-12-9.17935173E+02 6.83010238E-01 4
OH RUS 78O 1H 1 00 00G 200.000 3500.000 1000.000 1 OH RUS 78O 1H 1 G 200.000 3500.000 1000.000 1
3.09288767E+00 5.48429716E-04 1.26505228E-07-8.79461556E-11 1.17412376E-14 2 3.09288767E+00 5.48429716E-04 1.26505228E-07-8.79461556E-11 1.17412376E-14 2
3.85865700E+03 4.47669610E+00 3.99201543E+00-2.40131752E-03 4.61793841E-06 3 3.85865700E+03 4.47669610E+00 3.99201543E+00-2.40131752E-03 4.61793841E-06 3
-3.88113333E-09 1.36411470E-12 3.61508056E+03-1.03925458E-01 4 -3.88113333E-09 1.36411470E-12 3.61508056E+03-1.03925458E-01 4
H2O L 8/89H 2O 1 00 00G 200.000 3500.000 1000.000 1 H2O L 8/89H 2O 1 G 200.000 3500.000 1000.000 1
3.03399249E+00 2.17691804E-03-1.64072518E-07-9.70419870E-11 1.68200992E-14 2 3.03399249E+00 2.17691804E-03-1.64072518E-07-9.70419870E-11 1.68200992E-14 2
-3.00042971E+04 4.96677010E+00 4.19864056E+00-2.03643410E-03 6.52040211E-06 3 -3.00042971E+04 4.96677010E+00 4.19864056E+00-2.03643410E-03 6.52040211E-06 3
-5.48797062E-09 1.77197817E-12-3.02937267E+04-8.49032208E-01 4 -5.48797062E-09 1.77197817E-12-3.02937267E+04-8.49032208E-01 4
HO2 L 5/89H 1O 2 00 00G 200.000 3500.000 1000.000 1 HO2 L 5/89H 1O 2 G 200.000 3500.000 1000.000 1
4.01721090E+00 2.23982013E-03-6.33658150E-07 1.14246370E-10-1.07908535E-14 2 4.01721090E+00 2.23982013E-03-6.33658150E-07 1.14246370E-10-1.07908535E-14 2
1.11856713E+02 3.78510215E+00 4.30179801E+00-4.74912051E-03 2.11582891E-05 3 1.11856713E+02 3.78510215E+00 4.30179801E+00-4.74912051E-03 2.11582891E-05 3
-2.42763894E-08 9.29225124E-12 2.94808040E+02 3.71666245E+00 4 -2.42763894E-08 9.29225124E-12 2.94808040E+02 3.71666245E+00 4
H2O2 L 7/88H 2O 2 00 00G 200.000 3500.000 1000.000 1 H2O2 L 7/88H 2O 2 G 200.000 3500.000 1000.000 1
4.16500285E+00 4.90831694E-03-1.90139225E-06 3.71185986E-10-2.87908305E-14 2 4.16500285E+00 4.90831694E-03-1.90139225E-06 3.71185986E-10-2.87908305E-14 2
-1.78617877E+04 2.91615662E+00 4.27611269E+00-5.42822417E-04 1.67335701E-05 3 -1.78617877E+04 2.91615662E+00 4.27611269E+00-5.42822417E-04 1.67335701E-05 3
-2.15770813E-08 8.62454363E-12-1.77025821E+04 3.43505074E+00 4 -2.15770813E-08 8.62454363E-12-1.77025821E+04 3.43505074E+00 4
C L11/88C 1 00 00 00G 200.000 3500.000 1000.000 1 C L11/88C 1 G 200.000 3500.000 1000.000 1
2.49266888E+00 4.79889284E-05-7.24335020E-08 3.74291029E-11-4.87277893E-15 2 2.49266888E+00 4.79889284E-05-7.24335020E-08 3.74291029E-11-4.87277893E-15 2
8.54512953E+04 4.80150373E+00 2.55423955E+00-3.21537724E-04 7.33792245E-07 3 8.54512953E+04 4.80150373E+00 2.55423955E+00-3.21537724E-04 7.33792245E-07 3
-7.32234889E-10 2.66521446E-13 8.54438832E+04 4.53130848E+00 4 -7.32234889E-10 2.66521446E-13 8.54438832E+04 4.53130848E+00 4
CH TPIS79C 1H 1 00 00G 200.000 3500.000 1000.000 1 CH TPIS79C 1H 1 G 200.000 3500.000 1000.000 1
2.87846473E+00 9.70913681E-04 1.44445655E-07-1.30687849E-10 1.76079383E-14 2 2.87846473E+00 9.70913681E-04 1.44445655E-07-1.30687849E-10 1.76079383E-14 2
7.10124364E+04 5.48497999E+00 3.48981665E+00 3.23835541E-04-1.68899065E-06 3 7.10124364E+04 5.48497999E+00 3.48981665E+00 3.23835541E-04-1.68899065E-06 3
3.16217327E-09-1.40609067E-12 7.07972934E+04 2.08401108E+00 4 3.16217327E-09-1.40609067E-12 7.07972934E+04 2.08401108E+00 4
CH2 L S/93C 1H 2 00 00G 200.000 3500.000 1000.000 1 CH2 L S/93C 1H 2 G 200.000 3500.000 1000.000 1
2.87410113E+00 3.65639292E-03-1.40894597E-06 2.60179549E-10-1.87727567E-14 2 2.87410113E+00 3.65639292E-03-1.40894597E-06 2.60179549E-10-1.87727567E-14 2
4.62636040E+04 6.17119324E+00 3.76267867E+00 9.68872143E-04 2.79489841E-06 3 4.62636040E+04 6.17119324E+00 3.76267867E+00 9.68872143E-04 2.79489841E-06 3
-3.85091153E-09 1.68741719E-12 4.60040401E+04 1.56253185E+00 4 -3.85091153E-09 1.68741719E-12 4.60040401E+04 1.56253185E+00 4
CH2(S) L S/93C 1H 2 00 00G 200.000 3500.000 1000.000 1 CH2(S) L S/93C 1H 2 G 200.000 3500.000 1000.000 1
2.29203842E+00 4.65588637E-03-2.01191947E-06 4.17906000E-10-3.39716365E-14 2 2.29203842E+00 4.65588637E-03-2.01191947E-06 4.17906000E-10-3.39716365E-14 2
5.09259997E+04 8.62650169E+00 4.19860411E+00-2.36661419E-03 8.23296220E-06 3 5.09259997E+04 8.62650169E+00 4.19860411E+00-2.36661419E-03 8.23296220E-06 3
-6.68815981E-09 1.94314737E-12 5.04968163E+04-7.69118967E-01 4 -6.68815981E-09 1.94314737E-12 5.04968163E+04-7.69118967E-01 4
CH3 L11/89C 1H 3 00 00G 200.000 3500.000 1000.000 1 CH3 L11/89C 1H 3 G 200.000 3500.000 1000.000 1
2.28571772E+00 7.23990037E-03-2.98714348E-06 5.95684644E-10-4.67154394E-14 2 2.28571772E+00 7.23990037E-03-2.98714348E-06 5.95684644E-10-4.67154394E-14 2
1.67755843E+04 8.48007179E+00 3.67359040E+00 2.01095175E-03 5.73021856E-06 3 1.67755843E+04 8.48007179E+00 3.67359040E+00 2.01095175E-03 5.73021856E-06 3
-6.87117425E-09 2.54385734E-12 1.64449988E+04 1.60456433E+00 4 -6.87117425E-09 2.54385734E-12 1.64449988E+04 1.60456433E+00 4
CH4 L 8/88C 1H 4 00 00G 200.000 3500.000 1000.000 1 CH4 L 8/88C 1H 4 G 200.000 3500.000 1000.000 1
7.48514950E-02 1.33909467E-02-5.73285809E-06 1.22292535E-09-1.01815230E-13 2 7.48514950E-02 1.33909467E-02-5.73285809E-06 1.22292535E-09-1.01815230E-13 2
-9.46834459E+03 1.84373180E+01 5.14987613E+00-1.36709788E-02 4.91800599E-05 3 -9.46834459E+03 1.84373180E+01 5.14987613E+00-1.36709788E-02 4.91800599E-05 3
-4.84743026E-08 1.66693956E-11-1.02466476E+04-4.64130376E+00 4 -4.84743026E-08 1.66693956E-11-1.02466476E+04-4.64130376E+00 4
CO TPIS79C 1O 1 00 00G 200.000 3500.000 1000.000 1 CO TPIS79C 1O 1 G 200.000 3500.000 1000.000 1
2.71518561E+00 2.06252743E-03-9.98825771E-07 2.30053008E-10-2.03647716E-14 2 2.71518561E+00 2.06252743E-03-9.98825771E-07 2.30053008E-10-2.03647716E-14 2
-1.41518724E+04 7.81868772E+00 3.57953347E+00-6.10353680E-04 1.01681433E-06 3 -1.41518724E+04 7.81868772E+00 3.57953347E+00-6.10353680E-04 1.01681433E-06 3
9.07005884E-10-9.04424499E-13-1.43440860E+04 3.50840928E+00 4 9.07005884E-10-9.04424499E-13-1.43440860E+04 3.50840928E+00 4
CO2 L 7/88C 1O 2 00 00G 200.000 3500.000 1000.000 1 CO2 L 7/88C 1O 2 G 200.000 3500.000 1000.000 1
3.85746029E+00 4.41437026E-03-2.21481404E-06 5.23490188E-10-4.72084164E-14 2 3.85746029E+00 4.41437026E-03-2.21481404E-06 5.23490188E-10-4.72084164E-14 2
-4.87591660E+04 2.27163806E+00 2.35677352E+00 8.98459677E-03-7.12356269E-06 3 -4.87591660E+04 2.27163806E+00 2.35677352E+00 8.98459677E-03-7.12356269E-06 3
2.45919022E-09-1.43699548E-13-4.83719697E+04 9.90105222E+00 4 2.45919022E-09-1.43699548E-13-4.83719697E+04 9.90105222E+00 4
HCO L12/89H 1C 1O 1 00G 200.000 3500.000 1000.000 1 HCO L12/89H 1C 1O 1 G 200.000 3500.000 1000.000 1
2.77217438E+00 4.95695526E-03-2.48445613E-06 5.89161778E-10-5.33508711E-14 2 2.77217438E+00 4.95695526E-03-2.48445613E-06 5.89161778E-10-5.33508711E-14 2
4.01191815E+03 9.79834492E+00 4.22118584E+00-3.24392532E-03 1.37799446E-05 3 4.01191815E+03 9.79834492E+00 4.22118584E+00-3.24392532E-03 1.37799446E-05 3
-1.33144093E-08 4.33768865E-12 3.83956496E+03 3.39437243E+00 4 -1.33144093E-08 4.33768865E-12 3.83956496E+03 3.39437243E+00 4
CH2O L 8/88H 2C 1O 1 00G 200.000 3500.000 1000.000 1 CH2O L 8/88H 2C 1O 1 G 200.000 3500.000 1000.000 1
1.76069008E+00 9.20000082E-03-4.42258813E-06 1.00641212E-09-8.83855640E-14 2 1.76069008E+00 9.20000082E-03-4.42258813E-06 1.00641212E-09-8.83855640E-14 2
-1.39958323E+04 1.36563230E+01 4.79372315E+00-9.90833369E-03 3.73220008E-05 3 -1.39958323E+04 1.36563230E+01 4.79372315E+00-9.90833369E-03 3.73220008E-05 3
-3.79285261E-08 1.31772652E-11-1.43089567E+04 6.02812900E-01 4 -3.79285261E-08 1.31772652E-11-1.43089567E+04 6.02812900E-01 4
CH2OH GUNL93C 1H 3O 1 00G 200.000 3500.000 1000.000 1 CH2OH GUNL93C 1H 3O 1 G 200.000 3500.000 1000.000 1
3.69266569E+00 8.64576797E-03-3.75101120E-06 7.87234636E-10-6.48554201E-14 2 3.69266569E+00 8.64576797E-03-3.75101120E-06 7.87234636E-10-6.48554201E-14 2
-3.24250627E+03 5.81043215E+00 3.86388918E+00 5.59672304E-03 5.93271791E-06 3 -3.24250627E+03 5.81043215E+00 3.86388918E+00 5.59672304E-03 5.93271791E-06 3
-1.04532012E-08 4.36967278E-12-3.19391367E+03 5.47302243E+00 4 -1.04532012E-08 4.36967278E-12-3.19391367E+03 5.47302243E+00 4
CH3O 121686C 1H 3O 1 G 0300.00 3000.00 1000.000 1 CH3O 121686C 1H 3O 1 G 300.00 3000.00 1000.000 1
0.03770799E+02 0.07871497E-01-0.02656384E-04 0.03944431E-08-0.02112616E-12 2 0.03770799E+02 0.07871497E-01-0.02656384E-04 0.03944431E-08-0.02112616E-12 2
0.12783252E+03 0.02929575E+02 0.02106204E+02 0.07216595E-01 0.05338472E-04 3 0.12783252E+03 0.02929575E+02 0.02106204E+02 0.07216595E-01 0.05338472E-04 3
-0.07377636E-07 0.02075610E-10 0.09786011E+04 0.13152177E+02 4 -0.07377636E-07 0.02075610E-10 0.09786011E+04 0.13152177E+02 4
CH3OH L 8/88C 1H 4O 1 00G 200.000 3500.000 1000.000 1 CH3OH L 8/88C 1H 4O 1 G 200.000 3500.000 1000.000 1
1.78970791E+00 1.40938292E-02-6.36500835E-06 1.38171085E-09-1.17060220E-13 2 1.78970791E+00 1.40938292E-02-6.36500835E-06 1.38171085E-09-1.17060220E-13 2
-2.53748747E+04 1.45023623E+01 5.71539582E+00-1.52309129E-02 6.52441155E-05 3 -2.53748747E+04 1.45023623E+01 5.71539582E+00-1.52309129E-02 6.52441155E-05 3
-7.10806889E-08 2.61352698E-11-2.56427656E+04-1.50409823E+00 4 -7.10806889E-08 2.61352698E-11-2.56427656E+04-1.50409823E+00 4
C2H L 1/91C 2H 1 00 00G 200.000 3500.000 1000.000 1 C2H L 1/91C 2H 1 G 200.000 3500.000 1000.000 1
3.16780652E+00 4.75221902E-03-1.83787077E-06 3.04190252E-10-1.77232770E-14 2 3.16780652E+00 4.75221902E-03-1.83787077E-06 3.04190252E-10-1.77232770E-14 2
6.71210650E+04 6.63589475E+00 2.88965733E+00 1.34099611E-02-2.84769501E-05 3 6.71210650E+04 6.63589475E+00 2.88965733E+00 1.34099611E-02-2.84769501E-05 3
2.94791045E-08-1.09331511E-11 6.68393932E+04 6.22296438E+00 4 2.94791045E-08-1.09331511E-11 6.68393932E+04 6.22296438E+00 4
C2H2 L 1/91C 2H 2 00 00G 200.000 3500.000 1000.000 1 C2H2 L 1/91C 2H 2 G 200.000 3500.000 1000.000 1
4.14756964E+00 5.96166664E-03-2.37294852E-06 4.67412171E-10-3.61235213E-14 2 4.14756964E+00 5.96166664E-03-2.37294852E-06 4.67412171E-10-3.61235213E-14 2
2.59359992E+04-1.23028121E+00 8.08681094E-01 2.33615629E-02-3.55171815E-05 3 2.59359992E+04-1.23028121E+00 8.08681094E-01 2.33615629E-02-3.55171815E-05 3
2.80152437E-08-8.50072974E-12 2.64289807E+04 1.39397051E+01 4 2.80152437E-08-8.50072974E-12 2.64289807E+04 1.39397051E+01 4
C2H3 L 2/92C 2H 3 00 00G 200.000 3500.000 1000.000 1 C2H3 L 2/92C 2H 3 G 200.000 3500.000 1000.000 1
3.01672400E+00 1.03302292E-02-4.68082349E-06 1.01763288E-09-8.62607041E-14 2 3.01672400E+00 1.03302292E-02-4.68082349E-06 1.01763288E-09-8.62607041E-14 2
3.46128739E+04 7.78732378E+00 3.21246645E+00 1.51479162E-03 2.59209412E-05 3 3.46128739E+04 7.78732378E+00 3.21246645E+00 1.51479162E-03 2.59209412E-05 3
-3.57657847E-08 1.47150873E-11 3.48598468E+04 8.51054025E+00 4 -3.57657847E-08 1.47150873E-11 3.48598468E+04 8.51054025E+00 4
C2H4 L 1/91C 2H 4 00 00G 200.000 3500.000 1000.000 1 C2H4 L 1/91C 2H 4 G 200.000 3500.000 1000.000 1
2.03611116E+00 1.46454151E-02-6.71077915E-06 1.47222923E-09-1.25706061E-13 2 2.03611116E+00 1.46454151E-02-6.71077915E-06 1.47222923E-09-1.25706061E-13 2
4.93988614E+03 1.03053693E+01 3.95920148E+00-7.57052247E-03 5.70990292E-05 3 4.93988614E+03 1.03053693E+01 3.95920148E+00-7.57052247E-03 5.70990292E-05 3
-6.91588753E-08 2.69884373E-11 5.08977593E+03 4.09733096E+00 4 -6.91588753E-08 2.69884373E-11 5.08977593E+03 4.09733096E+00 4
C2H5 L12/92C 2H 5 00 00G 200.000 3500.000 1000.000 1 C2H5 L12/92C 2H 5 G 200.000 3500.000 1000.000 1
1.95465642E+00 1.73972722E-02-7.98206668E-06 1.75217689E-09-1.49641576E-13 2 1.95465642E+00 1.73972722E-02-7.98206668E-06 1.75217689E-09-1.49641576E-13 2
1.28575200E+04 1.34624343E+01 4.30646568E+00-4.18658892E-03 4.97142807E-05 3 1.28575200E+04 1.34624343E+01 4.30646568E+00-4.18658892E-03 4.97142807E-05 3
-5.99126606E-08 2.30509004E-11 1.28416265E+04 4.70720924E+00 4 -5.99126606E-08 2.30509004E-11 1.28416265E+04 4.70720924E+00 4
C2H6 L 8/88C 2H 6 00 00G 200.000 3500.000 1000.000 1 C2H6 L 8/88C 2H 6 G 200.000 3500.000 1000.000 1
1.07188150E+00 2.16852677E-02-1.00256067E-05 2.21412001E-09-1.90002890E-13 2 1.07188150E+00 2.16852677E-02-1.00256067E-05 2.21412001E-09-1.90002890E-13 2
-1.14263932E+04 1.51156107E+01 4.29142492E+00-5.50154270E-03 5.99438288E-05 3 -1.14263932E+04 1.51156107E+01 4.29142492E+00-5.50154270E-03 5.99438288E-05 3
-7.08466285E-08 2.68685771E-11-1.15222055E+04 2.66682316E+00 4 -7.08466285E-08 2.68685771E-11-1.15222055E+04 2.66682316E+00 4
CH2CO L 5/90C 2H 2O 1 00G 200.000 3500.000 1000.000 1 CH2CO L 5/90C 2H 2O 1 G 200.000 3500.000 1000.000 1
4.51129732E+00 9.00359745E-03-4.16939635E-06 9.23345882E-10-7.94838201E-14 2 4.51129732E+00 9.00359745E-03-4.16939635E-06 9.23345882E-10-7.94838201E-14 2
-7.55105311E+03 6.32247205E-01 2.13583630E+00 1.81188721E-02-1.73947474E-05 3 -7.55105311E+03 6.32247205E-01 2.13583630E+00 1.81188721E-02-1.73947474E-05 3
9.34397568E-09-2.01457615E-12-7.04291804E+03 1.22156480E+01 4 9.34397568E-09-2.01457615E-12-7.04291804E+03 1.22156480E+01 4
HCCO SRIC91H 1C 2O 1 G 0300.00 4000.00 1000.000 1 HCCO SRIC91H 1C 2O 1 G 300.00 4000.00 1000.000 1
0.56282058E+01 0.40853401E-02-0.15934547E-05 0.28626052E-09-0.19407832E-13 2 0.56282058E+01 0.40853401E-02-0.15934547E-05 0.28626052E-09-0.19407832E-13 2
0.19327215E+05-0.39302595E+01 0.22517214E+01 0.17655021E-01-0.23729101E-04 3 0.19327215E+05-0.39302595E+01 0.22517214E+01 0.17655021E-01-0.23729101E-04 3
0.17275759E-07-0.50664811E-11 0.20059449E+05 0.12490417E+02 4 0.17275759E-07-0.50664811E-11 0.20059449E+05 0.12490417E+02 4
HCCOH SRI91C 2O 1H 20 0G 300.000 5000.000 1000.000 1 HCCOH SRI91C 2O 1H 2 G 300.000 5000.000 1000.000 1
0.59238291E+01 0.67923600E-02-0.25658564E-05 0.44987841E-09-0.29940101E-13 2 0.59238291E+01 0.67923600E-02-0.25658564E-05 0.44987841E-09-0.29940101E-13 2
0.72646260E+04-0.76017742E+01 0.12423733E+01 0.31072201E-01-0.50866864E-04 3 0.72646260E+04-0.76017742E+01 0.12423733E+01 0.31072201E-01-0.50866864E-04 3
0.43137131E-07-0.14014594E-10 0.80316143E+04 0.13874319E+02 4 0.43137131E-07-0.14014594E-10 0.80316143E+04 0.13874319E+02 4
H2CN 41687H 2C 1N 1 G 0300.00 4000.000 1000.000 1 H2CN 41687H 2C 1N 1 G 300.00 4000.000 1000.000 1
0.52097030E+01 0.29692911E-02-0.28555891E-06-0.16355500E-09 0.30432589E-13 2 0.52097030E+01 0.29692911E-02-0.28555891E-06-0.16355500E-09 0.30432589E-13 2
0.27677109E+05-0.44444780E+01 0.28516610E+01 0.56952331E-02 0.10711400E-05 3 0.27677109E+05-0.44444780E+01 0.28516610E+01 0.56952331E-02 0.10711400E-05 3
-0.16226120E-08-0.23511081E-12 0.28637820E+05 0.89927511E+01 4 -0.16226120E-08-0.23511081E-12 0.28637820E+05 0.89927511E+01 4
HCN GRI/98H 1C 1N 1 0G 200.000 6000.000 1000.000 1 HCN GRI/98H 1C 1N 1 G 200.000 6000.000 1000.000 1
0.38022392E+01 0.31464228E-02-0.10632185E-05 0.16619757E-09-0.97997570E-14 2 0.38022392E+01 0.31464228E-02-0.10632185E-05 0.16619757E-09-0.97997570E-14 2
0.14407292E+05 0.15754601E+01 0.22589886E+01 0.10051170E-01-0.13351763E-04 3 0.14407292E+05 0.15754601E+01 0.22589886E+01 0.10051170E-01-0.13351763E-04 3
0.10092349E-07-0.30089028E-11 0.14712633E+05 0.89164419E+01 4 0.10092349E-07-0.30089028E-11 0.14712633E+05 0.89164419E+01 4
HNO And93 H 1N 1O 1 0G 200.000 6000.000 1000.000 1 HNO And93 H 1N 1O 1 G 200.000 6000.000 1000.000 1
0.29792509E+01 0.34944059E-02-0.78549778E-06 0.57479594E-10-0.19335916E-15 2 0.29792509E+01 0.34944059E-02-0.78549778E-06 0.57479594E-10-0.19335916E-15 2
0.11750582E+05 0.86063728E+01 0.45334916E+01-0.56696171E-02 0.18473207E-04 3 0.11750582E+05 0.86063728E+01 0.45334916E+01-0.56696171E-02 0.18473207E-04 3
-0.17137094E-07 0.55454573E-11 0.11548297E+05 0.17498417E+01 4 -0.17137094E-07 0.55454573E-11 0.11548297E+05 0.17498417E+01 4
N L 6/88N 1 0 0 0G 200.000 6000.000 1000.000 1 N L 6/88N 1 G 200.000 6000.000 1000.000 1
0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14 2 0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226245E-10-0.20360982E-14 2
0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00 3 0.56133773E+05 0.46496096E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01 4 0.00000000E+00 0.00000000E+00 0.56104637E+05 0.41939087E+01 4
NNH T07/93N 2H 1 00 00G 200.000 6000.000 1000.000 1 NNH T07/93N 2H 1 G 200.000 6000.000 1000.000 1
0.37667544E+01 0.28915082E-02-0.10416620E-05 0.16842594E-09-0.10091896E-13 2 0.37667544E+01 0.28915082E-02-0.10416620E-05 0.16842594E-09-0.10091896E-13 2
0.28650697E+05 0.44705067E+01 0.43446927E+01-0.48497072E-02 0.20059459E-04 3 0.28650697E+05 0.44705067E+01 0.43446927E+01-0.48497072E-02 0.20059459E-04 3
-0.21726464E-07 0.79469539E-11 0.28791973E+05 0.29779410E+01 4 -0.21726464E-07 0.79469539E-11 0.28791973E+05 0.29779410E+01 4
N2O L 7/88N 2O 1 0 0G 200.000 6000.000 1000.000 1 N2O L 7/88N 2O 1 G 200.000 6000.000 1000.000 1
0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14 2 0.48230729E+01 0.26270251E-02-0.95850874E-06 0.16000712E-09-0.97752303E-14 2
0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04 3 0.80734048E+04-0.22017207E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04 3
0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02 4 0.96819806E-08-0.29307182E-11 0.87417744E+04 0.10757992E+02 4
NH And94 N 1H 1 0 0G 200.000 6000.000 1000.000 1 NH And94 N 1H 1 G 200.000 6000.000 1000.000 1
0.27836928E+01 0.13298430E-02-0.42478047E-06 0.78348501E-10-0.55044470E-14 2 0.27836928E+01 0.13298430E-02-0.42478047E-06 0.78348501E-10-0.55044470E-14 2
0.42120848E+05 0.57407799E+01 0.34929085E+01 0.31179198E-03-0.14890484E-05 3 0.42120848E+05 0.57407799E+01 0.34929085E+01 0.31179198E-03-0.14890484E-05 3
0.24816442E-08-0.10356967E-11 0.41880629E+05 0.18483278E+01 4 0.24816442E-08-0.10356967E-11 0.41880629E+05 0.18483278E+01 4
NH2 And89 N 1H 2 0 0G 200.000 6000.000 1000.000 1 NH2 And89 N 1H 2 G 200.000 6000.000 1000.000 1
0.28347421E+01 0.32073082E-02-0.93390804E-06 0.13702953E-09-0.79206144E-14 2 0.28347421E+01 0.32073082E-02-0.93390804E-06 0.13702953E-09-0.79206144E-14 2
0.22171957E+05 0.65204163E+01 0.42040029E+01-0.21061385E-02 0.71068348E-05 3 0.22171957E+05 0.65204163E+01 0.42040029E+01-0.21061385E-02 0.71068348E-05 3
-0.56115197E-08 0.16440717E-11 0.21885910E+05-0.14184248E+00 4 -0.56115197E-08 0.16440717E-11 0.21885910E+05-0.14184248E+00 4
NH3 J 6/77N 1H 3 0 0G 200.000 6000.000 1000.000 1 NH3 J 6/77N 1H 3 G 200.000 6000.000 1000.000 1
0.26344521E+01 0.56662560E-02-0.17278676E-05 0.23867161E-09-0.12578786E-13 2 0.26344521E+01 0.56662560E-02-0.17278676E-05 0.23867161E-09-0.12578786E-13 2
-0.65446958E+04 0.65662928E+01 0.42860274E+01-0.46605230E-02 0.21718513E-04 3 -0.65446958E+04 0.65662928E+01 0.42860274E+01-0.46605230E-02 0.21718513E-04 3
-0.22808887E-07 0.82638046E-11-0.67417285E+04-0.62537277E+00 4 -0.22808887E-07 0.82638046E-11-0.67417285E+04-0.62537277E+00 4
NO RUS 78N 1O 1 0 0G 200.000 6000.000 1000.000 1 NO RUS 78N 1O 1 G 200.000 6000.000 1000.000 1
0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14 2 0.32606056E+01 0.11911043E-02-0.42917048E-06 0.69457669E-10-0.40336099E-14 2
0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04 3 0.99209746E+04 0.63693027E+01 0.42184763E+01-0.46389760E-02 0.11041022E-04 3
-0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01 4 -0.93361354E-08 0.28035770E-11 0.98446230E+04 0.22808464E+01 4
NO2 L 7/88N 1O 2 0 0G 200.000 6000.000 1000.000 1 NO2 L 7/88N 1O 2 G 200.000 6000.000 1000.000 1
0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13 2 0.48847542E+01 0.21723956E-02-0.82806906E-06 0.15747510E-09-0.10510895E-13 2
0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04 3 0.23164983E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04 3
-0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01 4 -0.20475426E-07 0.78350564E-11 0.28966179E+04 0.63119917E+01 4
@ -187,15 +179,15 @@ HNCO BDEA94H 1N 1C 1O 1G 300.000 5000.000 1478.000 1
6.22395134E+00 3.17864004E-03-1.09378755E-06 1.70735163E-10-9.95021955E-15 2 6.22395134E+00 3.17864004E-03-1.09378755E-06 1.70735163E-10-9.95021955E-15 2
-1.66599344E+04-8.38224741E+00 3.63096317E+00 7.30282357E-03-2.28050003E-06 3 -1.66599344E+04-8.38224741E+00 3.63096317E+00 7.30282357E-03-2.28050003E-06 3
-6.61271298E-10 3.62235752E-13-1.55873636E+04 6.19457727E+00 4 -6.61271298E-10 3.62235752E-13-1.55873636E+04 6.19457727E+00 4
NCO EA 93 N 1C 1O 1 0G 200.000 6000.000 1000.000 1 NCO EA 93 N 1C 1O 1 G 200.000 6000.000 1000.000 1
0.51521845E+01 0.23051761E-02-0.88033153E-06 0.14789098E-09-0.90977996E-14 2 0.51521845E+01 0.23051761E-02-0.88033153E-06 0.14789098E-09-0.90977996E-14 2
0.14004123E+05-0.25442660E+01 0.28269308E+01 0.88051688E-02-0.83866134E-05 3 0.14004123E+05-0.25442660E+01 0.28269308E+01 0.88051688E-02-0.83866134E-05 3
0.48016964E-08-0.13313595E-11 0.14682477E+05 0.95504646E+01 4 0.48016964E-08-0.13313595E-11 0.14682477E+05 0.95504646E+01 4
CN HBH92 C 1N 1 0 0G 200.000 6000.000 1000.000 1 CN HBH92 C 1N 1 G 200.000 6000.000 1000.000 1
0.37459805E+01 0.43450775E-04 0.29705984E-06-0.68651806E-10 0.44134173E-14 2 0.37459805E+01 0.43450775E-04 0.29705984E-06-0.68651806E-10 0.44134173E-14 2
0.51536188E+05 0.27867601E+01 0.36129351E+01-0.95551327E-03 0.21442977E-05 3 0.51536188E+05 0.27867601E+01 0.36129351E+01-0.95551327E-03 0.21442977E-05 3
-0.31516323E-09-0.46430356E-12 0.51708340E+05 0.39804995E+01 4 -0.31516323E-09-0.46430356E-12 0.51708340E+05 0.39804995E+01 4
HCNN SRI/94C 1N 2H 10 0G 300.000 5000.000 1000.000 1 HCNN SRI/94C 1N 2H 1 G 300.000 5000.000 1000.000 1
0.58946362E+01 0.39895959E-02-0.15982380E-05 0.29249395E-09-0.20094686E-13 2 0.58946362E+01 0.39895959E-02-0.15982380E-05 0.29249395E-09-0.20094686E-13 2
0.53452941E+05-0.51030502E+01 0.25243194E+01 0.15960619E-01-0.18816354E-04 3 0.53452941E+05-0.51030502E+01 0.25243194E+01 0.15960619E-01-0.18816354E-04 3
0.12125540E-07-0.32357378E-11 0.54261984E+05 0.11675870E+02 4 0.12125540E-07-0.32357378E-11 0.54261984E+05 0.11675870E+02 4
@ -207,22 +199,24 @@ AR 120186AR 1 G 300.000 5000.000 1000.000 1
0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2 0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
-0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00 3 -0.07453750E+04 0.04366000E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02 4 0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366000E+02 4
C3H8 L 4/85C 3H 8 0 0G 300.000 5000.000 1000.00 1 C3H8 L 4/85C 3H 8 G 300.000 5000.000 1000.000 1
0.75341368E+01 0.18872239E-01-0.62718491E-05 0.91475649E-09-0.47838069E-13 2 0.75341368E+01 0.18872239E-01-0.62718491E-05 0.91475649E-09-0.47838069E-13 2
-0.16467516E+05-0.17892349E+02 0.93355381E+00 0.26424579E-01 0.61059727E-05 3 -0.16467516E+05-0.17892349E+02 0.93355381E+00 0.26424579E-01 0.61059727E-05 3
-0.21977499E-07 0.95149253E-11-0.13958520E+05 0.19201691E+02 4 -0.21977499E-07 0.95149253E-11-0.13958520E+05 0.19201691E+02 4
C3H7 L 9/84C 3H 7 0 0G 300.000 5000.000 1000.00 1 C3H7 L 9/84C 3H 7 G 300.000 5000.000 1000.000 1
0.77026987E+01 0.16044203E-01-0.52833220E-05 0.76298590E-09-0.39392284E-13 2 0.77026987E+01 0.16044203E-01-0.52833220E-05 0.76298590E-09-0.39392284E-13 2
0.82984336E+04-0.15480180E+02 0.10515518E+01 0.25991980E-01 0.23800540E-05 3 0.82984336E+04-0.15480180E+02 0.10515518E+01 0.25991980E-01 0.23800540E-05 3
-0.19609569E-07 0.93732470E-11 0.10631863E+05 0.21122559E+02 4 -0.19609569E-07 0.93732470E-11 0.10631863E+05 0.21122559E+02 4
CH3CHO L 8/88C 2H 4O 1 0G 200.000 6000.000 1000.00 1 CH3CHO L 8/88C 2H 4O 1 G 200.000 6000.000 1000.000 1
0.54041108E+01 0.11723059E-01-0.42263137E-05 0.68372451E-09-0.40984863E-13 2 0.54041108E+01 0.11723059E-01-0.42263137E-05 0.68372451E-09-0.40984863E-13 2
-0.22593122E+05-0.34807917E+01 0.47294595E+01-0.31932858E-02 0.47534921E-04 3 -0.22593122E+05-0.34807917E+01 0.47294595E+01-0.31932858E-02 0.47534921E-04 3
-0.57458611E-07 0.21931112E-10-0.21572878E+05 0.41030159E+01 4 -0.57458611E-07 0.21931112E-10-0.21572878E+05 0.41030159E+01 4
CH2CHO SAND86O 1H 3C 2 G 300.00 5000.00 1000.00 1 CH2CHO SAND86O 1H 3C 2 G 300.000 5000.000 1000.000 1
0.05975670E+02 0.08130591E-01-0.02743624E-04 0.04070304E-08-0.02176017E-12 2 0.05975670E+02 0.08130591E-01-0.02743624E-04 0.04070304E-08-0.02176017E-12 2
0.04903218E+04-0.05045251E+02 0.03409062E+02 0.10738574E-01 0.01891492E-04 3 0.04903218E+04-0.05045251E+02 0.03409062E+02 0.10738574E-01 0.01891492E-04 3
-0.07158583E-07 0.02867385E-10 0.15214766E+04 0.09558290E+02 4 -0.07158583E-07 0.02867385E-10 0.15214766E+04 0.09558290E+02 4
END END
REACTIONS
END

View file

@ -1849,7 +1849,7 @@ LiO J 3/64LI 1.O 1. 0. 0.G 300.000 5000.000 22.94040 1
LiO- J12/67LI 1.O 1.E 1. 0.G 300.000 5000.000 22.94095 1 LiO- J12/67LI 1.O 1.E 1. 0.G 300.000 5000.000 22.94095 1
4.18102170E+00 4.17850000E-04-1.50248450E-07 2.83977320E-11-1.97891810E-15 2 4.18102170E+00 4.17850000E-04-1.50248450E-07 2.83977320E-11-1.97891810E-15 2
-9.38497020E+03-1.42392337E-01 2.85158660E+00 5.01698800E-03-5.95474750E-06 3 -9.38497020E+03-1.42392337E-01 2.85158660E+00 5.01698800E-03-5.95474750E-06 3
03994510E-09-4.78729690E-13-9.07780760E+03 6.45947067E+00-8.05144594E+03 4 3.03994510E-09-4.78729690E-13-9.07780760E+03 6.45947067E+00-8.05144594E+03 4
LiOH J 6/71LI 1.O 1.H 1. 0.G 300.000 5000.000 23.94834 1 LiOH J 6/71LI 1.O 1.H 1. 0.G 300.000 5000.000 23.94834 1
5.50969570E+00 1.36854640E-03-3.94414690E-07 5.23321950E-11-2.59586760E-15 2 5.50969570E+00 1.36854640E-03-3.94414690E-07 5.23321950E-11-2.59586760E-15 2
-2.98992310E+04-6.50701600E+00 3.34623000E+00 1.17872530E-02-1.82526570E-05 3 -2.98992310E+04-6.50701600E+00 3.34623000E+00 1.17872530E-02-1.82526570E-05 3

View file

@ -1,6 +0,0 @@
EXTRA_DIST = cantera.dox cantera.page txt_common fig_common
EXTRA_DIST += install.page tutorial.page
dist-hook:
rm -rf `find $(distdir)/ -name .svn`
rm -rf `find $(distdir)/ -name .deps`

View file

@ -1,17 +1,107 @@
from __future__ import print_function
from buildutils import * from buildutils import *
Import('env', 'build', 'install') Import('env', 'build', 'install')
localenv = env.Clone() localenv = env.Clone()
if localenv['doxygen_docs']: from collections import namedtuple
if localenv['graphvizdir']: Page = namedtuple('Page', ['name', 'title', 'objects'])
localenv.Append(PATH=localenv['graphvizdir'])
build(localenv.Command('#build/docs/doxygen/html/index.html',
'doxygen/Doxyfile', 'doxygen $SOURCE')) # Set up functions to pseudo-autodoc the MATLAB toolbox
install(pjoin('$inst_docdir', 'doxygen/html'), def extract_matlab_docstring(mfile, level):
mglob(localenv, '#/build/docs/doxygen/html', 'html', 'svg', 'css', 'png')) """
Return the docstring from mfile, assuming that it consists of the
first uninterrupted comment block.
:param mfile:
File name of the matlab file from which the documentation will be
read
:param level:
Level of documentation. Class = 0, Function = 1
"""
# Set the start of the docstring based on the level passed in. This is only
# necessary for the old-style MATLAB classes, where each method is its own
# file.
if level == 0:
docstring = ".. mat:class:: "
elif level == 1:
docstring = " .. mat:function:: "
else:
print("Unknown level for MATLAB documentation.")
sys.exit(1)
# The leader is the number of spaces at the beginning of a regular line
# of documentation.
leader = ' '*4*(level + 1)
with open(mfile, 'r') as in_file:
# The function name is read from the first line
docstring += get_function_name(in_file.readline()) + '\n'
# By convention, the second line (called H1 in the MATLAB documentation)
# is read by various MATLAB functions, so it should be in the format
# MATLAB expects - FUNCTIONNAME Summary. We read in this line and
# add the Summary to the docstring. If the line doesn't match the
# format, just write it to the docstring as is.
line = in_file.readline()
try:
docstring += leader + line.split(' ')[1] + '\n'
except IndexError:
docstring += line + '\n'
# Skip the next line, which is a duplicate of the first. It is here
# because MATLAB doesn't show the function definition in its help.
in_file.readline()
# For the rest of the lines in the file, get the line if it is
# in the first unbroken comment section and add it to the docstring.
for line in in_file.readlines():
try:
if line.lstrip().startswith('%'):
docstring += leader + line.lstrip()[2:-1] + '\n'
else:
break
except IndexError:
docstring += '\n'
return docstring + '\n'
def get_function_name(str):
"""
Return the Matlab function or classdef signature, assuming that
the string starts with either 'function ' or 'classdef '.
"""
if str.startswith('function '):
sig = str[len('function '):]
elif str.startswith('classdef '):
sig = str[len('classdef '):]
else:
print("Unknown function declaration in MATLAB document", str)
# Split the function signature on the equals sign, if it exists.
# We don't care about what comes before the equals sign, since
# if a function returns, the docs will tell us. If there is no
# =, return the whole signature.
if '=' in sig:
idx = sig.index('=')
return sig[idx+2:]
else:
return sig
if localenv['doxygen_docs']:
docs = build(localenv.Command('#build/docs/doxygen/html/index.html',
'doxygen/Doxyfile', 'doxygen $SOURCE'))
env.Depends(docs, env.Glob('#doc/doxygen/*') +
mglob(env, '#include/cantera', 'h') +
mglob(env, '#include/cantera/*', 'h') +
mglob(env, '#src/cantera/*', 'h', 'cpp'))
env.Alias('doxygen', docs)
install(localenv.RecursiveInstall, '$inst_docdir/doxygen/html',
'#/build/docs/doxygen/html', exclude=['\\.map', '\\.md5'])
if localenv['sphinx_docs']: if localenv['sphinx_docs']:
localenv['SPHINXBUILD'] = Dir('#build/docs/sphinx') localenv['SPHINXBUILD'] = Dir('#build/docs/sphinx')
@ -19,6 +109,101 @@ if localenv['sphinx_docs']:
sphinxdocs = build(localenv.Command('${SPHINXBUILD}/html/index.html', sphinxdocs = build(localenv.Command('${SPHINXBUILD}/html/index.html',
'sphinx/conf.py', 'sphinx/conf.py',
'sphinx-build -b html -d ${SPHINXBUILD}/doctrees ${SPHINXSRC} ${SPHINXBUILD}/html')) '${sphinx_cmd} -b html -d ${SPHINXBUILD}/doctrees ${SPHINXSRC} ${SPHINXBUILD}/html'))
env.Alias('sphinx', sphinxdocs)
# Create a list of MATLAB classes to document. This uses the NamedTuple
# structure defined at the top of the file. The @Data and @Utilities
# classes are fake classes for the purposes of documentation only. Each
# Page represents one html page of the documentation.
pages = [
Page('importing', 'Objects Representing Phases',
['@Solution', '@Mixture', '@Interface', '@Pure Fluid Phases']),
Page('thermodynamics', 'Thermodynamic Properties',
['@ThermoPhase']),
Page('kinetics', 'Chemical Kinetics', ['@Kinetics']),
Page('transport', 'Transport Properties', ['@Transport']),
Page('zero-dim', 'Zero-Dimensional Reactor Networks',
['@Func', '@Reactor', '@ReactorNet', '@FlowDevice', '@Wall']),
Page('one-dim', 'One-Dimensional Reacting Flows', ['1D/@Domain1D', '1D/@Stack']),
Page('data', 'Physical Constants', ['@Data']),
Page('utilities', 'Utility Functions', ['@Utilities', '@XML_Node']),
]
# Create a dictionary of extra files associated with each class. These
# files are listed relative to the top directory interfaces/matlab/cantera
extra = {
'@Solution': ['IdealGasMix.m', 'GRI30.m', 'Air.m'],
'@Pure Fluid Phases': ['CarbonDioxide.m', 'HFC134a.m', 'Hydrogen.m',
'Methane.m', 'Nitrogen.m', 'Oxygen.m', 'Water.m'],
'@Func': ['gaussian.m', 'polynom.m'],
'@Reactor': ['ConstPressureReactor.m',
'FlowReactor.m', 'IdealGasConstPressureReactor.m',
'IdealGasReactor.m', 'Reservoir.m'],
'@FlowDevice': ['MassFlowController.m', 'Valve.m'],
'1D/@Domain1D': ['1D/AxiStagnFlow.m', '1D/AxisymmetricFlow.m',
'1D/Inlet.m', '1D/Outlet.m', '1D/OutletRes.m',
'1D/Surface.m', '1D/SymmPlane.m'],
'1D/@Stack': ['1D/FreeFlame.m', '1D/CounterFlowDiffusionFlame.m'],
'@Interface': ['importEdge.m', 'importInterface.m'],
'@Data': ['gasconstant.m', 'oneatm.m'],
'@Utilities': ['adddir.m', 'ck2cti.m', 'cleanup.m', 'geterr.m',
'getDataDirectories.m', 'canteraVersion.m',
'canteraGitCommit.m']
}
# These files do not need to be documented in the MATLAB classes because they
# are generics that are overloaded per-class. Since the loop checks for these
# strings in each file name, hndl.m is the same as *hndl.m* (to use globbing
# notation).
nodoc_matlab_files = ['clear.m', 'display.m', 'hndl.m', 'private', 'subsref.m']
# Loop through the pages list to document each class
for page in pages:
tempenv = env.Clone()
# Set the title header
title = page.title
tempenv['title'] = '='*len(title) + '\n' + title + '\n' + '='*len(title)
doc = ''
# The base directory of the MATLAB toolbox relative to the sphinx build directory
base = '../interfaces/matlab/toolbox'
for obj in page.objects:
all_files = []
# Set the subheader based on the class name
doc += obj.split('@')[1] + '\n' + '-'*len(obj.split('@')[1]) + '\n\n'
if os.path.isdir(pjoin(base,obj)):
# Get a list of the functions in this class as long as its a file we care about
functions = [name for name in os.listdir(pjoin(base,obj)) if not any(x in name for x in nodoc_matlab_files)]
# Add the docstring for the class name at level 0
class_file = functions.pop(functions.index(obj.split('@')[1]+'.m'))
doc += extract_matlab_docstring(os.path.relpath(pjoin(base,obj,class_file)), 0)
# Get the extra files from the extra dictionary and sort them with
# the regular functions.
extra_files = extra.get(obj,[])
all_files += sorted(functions + extra_files)
else:
all_files = extra.get(obj,[])
for file in all_files:
if file in functions:
doc += extract_matlab_docstring(os.path.relpath(pjoin(base,obj,file)), 1)
else:
doc += extract_matlab_docstring(os.path.relpath(pjoin(base,file)), 1)
tempenv['matlab_docstrings'] = doc
# Substitute the docstrings into the proper file. Since the docs change
# every time the source is changed, we don't want to have to commit the
# change in the rst file as well as the source - too much code churn. So
# we use a template and a SubstFile directive.
c = tempenv.SubstFile('#doc/sphinx/matlab/%s.rst' % page.name,
'#doc/sphinx/matlab/matlab-template.rst.in')
build(c)
localenv.Depends(sphinxdocs, c)
localenv.AlwaysBuild(sphinxdocs) localenv.AlwaysBuild(sphinxdocs)
install(localenv.RecursiveInstall, '$inst_docdir/sphinx/html',
'#/build/docs/sphinx/html')

BIN
doc/ctdeploy_key.enc Normal file

Binary file not shown.

View file

@ -15,7 +15,7 @@
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
USE_MATHJAX = YES USE_MATHJAX = YES
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5
# This tag specifies the encoding used for all characters in the config file # This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all # that follow. The default is UTF-8 which is also the encoding used for all
@ -34,13 +34,7 @@ PROJECT_NAME = Cantera
# This could be handy for archiving the generated documentation or # This could be handy for archiving the generated documentation or
# if some version control system is used. # if some version control system is used.
PROJECT_NUMBER = 2.0 PROJECT_NUMBER = 2.5.0a3
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put. # base path where the generated documentation will be put.
@ -56,7 +50,7 @@ OUTPUT_DIRECTORY = build/docs/doxygen
# source files, where putting all generated files in the same directory would # source files, where putting all generated files in the same directory would
# otherwise cause performance problems for the file system. # otherwise cause performance problems for the file system.
CREATE_SUBDIRS = NO CREATE_SUBDIRS = YES
# The OUTPUT_LANGUAGE tag is used to specify the language in which all # The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this # documentation generated by doxygen is written. Doxygen will use this
@ -118,7 +112,7 @@ ALWAYS_DETAILED_SEC = YES
# members were ordinary class members. Constructors, destructors and assignment # members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown. # operators of the base classes will not be shown.
INLINE_INHERITED_MEMB = YES INLINE_INHERITED_MEMB = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set # path before files name in the file list and in the header files. If set
@ -291,22 +285,6 @@ SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO TYPEDEF_HIDES_STRUCT = NO
# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
# determine which symbols to keep in memory and which to flush to disk.
# When the cache is full, less often used symbols will be written to disk.
# For small to medium size projects (<1000 input files) the default value is
# probably good enough. For larger projects a too small cache size can cause
# doxygen to be busy swapping symbols to and from disk most of the time
# causing a significant performance penality.
# If the system has enough physical memory increasing the cache will improve the
# performance by keeping more symbols in memory. Note that the value works on
# a logarithmic scale so increasing the size by one will rougly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols
SYMBOL_CACHE_SIZE = 0
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Build related configuration options # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@ -495,12 +473,6 @@ MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.
SHOW_DIRECTORIES = YES
# Set the SHOW_FILES tag to NO to disable the generation of the Files page. # Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the # This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES. # Folder Tree View (if specified). The default is YES.
@ -593,14 +565,11 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories # directories like "/usr/src/myproject". Separate the files or directories
# with spaces. # with spaces.
INPUT = src/apps \ INPUT = src/base \
src/base \
src/converters \
src/equil \ src/equil \
src/kinetics \ src/kinetics \
src/numerics \ src/numerics \
src/oneD \ src/oneD \
src/spectra \
src/thermo \ src/thermo \
src/tpx \ src/tpx \
src/transport \ src/transport \
@ -635,7 +604,7 @@ RECURSIVE = YES
# excluded from the INPUT source files. This way you can easily exclude a # excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag. # subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE = EXCLUDE = include/cantera/ext
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or # The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded # directories that are symbolic links (a Unix filesystem feature) are excluded
@ -649,7 +618,7 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories # against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/* # for example use the pattern */test/*
EXCLUDE_PATTERNS = */build/* EXCLUDE_PATTERNS =
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the # (namespaces, classes, functions, etc.) that should be excluded from the
@ -842,12 +811,6 @@ HTML_STYLESHEET =
HTML_TIMESTAMP = NO HTML_TIMESTAMP = NO
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the # documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports # page has loaded. For this to work a browser that supports
@ -887,7 +850,7 @@ DOCSET_BUNDLE_ID = org.doxygen.Project
# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
# of the generated HTML documentation. # of the generated HTML documentation.
GENERATE_HTMLHELP = YES GENERATE_HTMLHELP = NO
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You # be used to specify the file name of the resulting .chm file. You
@ -1012,11 +975,6 @@ ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO GENERATE_TREEVIEW = NO
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
# and Class Hierarchy pages using a tree view instead of an ordered list.
USE_INLINE_TREES = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree # used to set the initial width (in pixels) of the frame in which the tree
# is shown. # is shown.
@ -1036,7 +994,7 @@ FORMULA_FONTSIZE = 10
# typically be disabled. For large projects the javascript based search engine # typically be disabled. For large projects the javascript based search engine
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
SEARCHENGINE = NO SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index # When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index
# file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup # file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup
@ -1205,7 +1163,7 @@ MAN_LINKS = NO
# generate an XML file that captures the structure of # generate an XML file that captures the structure of
# the code including all documentation. # the code including all documentation.
GENERATE_XML = NO GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put. # The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be # If a relative path is entered the value of OUTPUT_DIRECTORY will be
@ -1213,18 +1171,6 @@ GENERATE_XML = NO
XML_OUTPUT = xml XML_OUTPUT = xml
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
XML_SCHEMA =
# The XML_DTD tag can be used to specify an XML DTD,
# which can be used by a validating XML parser to check the
# syntax of the XML files.
XML_DTD =
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will # If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting # dump the program listings (including syntax highlighting
# and cross-referencing information) to the XML output. Note that # and cross-referencing information) to the XML output. Note that
@ -1329,7 +1275,10 @@ INCLUDE_FILE_PATTERNS =
# instead of the = operator. # instead of the = operator.
PREDEFINED = WITH_HTML_LOGS \ PREDEFINED = WITH_HTML_LOGS \
HAS_SUNDIALS \
SUNDIALS_VERSION=25 \
THREAD_SAFE_CANTERA \ THREAD_SAFE_CANTERA \
DEBUG_MODE \
HAVE_CONFIG_H \ HAVE_CONFIG_H \
DEPRECATED(x)=x DEPRECATED(x)=x
@ -1428,17 +1377,6 @@ HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES HAVE_DOT = YES
# By default doxygen will write a font called FreeSans.ttf to the output
# directory and reference it in all dot files that doxygen generates. This
# font does not include all possible unicode characters however, so when you need
# these (or just want a differently looking font) you can specify the font name
# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
# which can be done by putting it in a standard location or by setting the
# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
# containing the font.
DOT_FONTNAME = FreeSans
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt. # The default size is 10pt.

View file

@ -1,7 +0,0 @@
#txt_common fig_common
EXTRA_DIST = Cantera.txt
#EXTRA_DIST += install.page tutorial.page
dist-hook:
rm -rf `find $(distdir)/ -name .svn`
rm -rf `find $(distdir)/ -name .deps`

View file

@ -1,171 +0,0 @@
#-----------------------------------
# PECOS - add any additional doxygen
# dependencies here.
#-----------------------------------
PECOS_extra_dependencies = doxygen/cantera.page \
doxygen/txt_common/about.page \
doxygen/txt_common/gpl.page \
doxygen/txt_common/acknowledgment.page
## --------------------------------- ##
## Format-independent Doxygen rules. ##
## --------------------------------- ##
if DX_COND_doc
## ------------------------------- ##
## Rules specific for HTML output. ##
## ------------------------------- ##
if DX_COND_html
DX_CLEAN_HTML = @DX_DOCDIR@/html
endif DX_COND_html
## ------------------------------ ##
## Rules specific for CHM output. ##
## ------------------------------ ##
if DX_COND_chm
DX_CLEAN_CHM = @DX_DOCDIR@/chm
if DX_COND_chi
DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi
endif DX_COND_chi
endif DX_COND_chm
## ------------------------------ ##
## Rules specific for MAN output. ##
## ------------------------------ ##
if DX_COND_man
DX_CLEAN_MAN = @DX_DOCDIR@/man
endif DX_COND_man
## ------------------------------ ##
## Rules specific for RTF output. ##
## ------------------------------ ##
if DX_COND_rtf
DX_CLEAN_RTF = @DX_DOCDIR@/rtf
endif DX_COND_rtf
## ------------------------------ ##
## Rules specific for XML output. ##
## ------------------------------ ##
if DX_COND_xml
DX_CLEAN_XML = @DX_DOCDIR@/xml
endif DX_COND_xml
## ----------------------------- ##
## Rules specific for PS output. ##
## ----------------------------- ##
if DX_COND_ps
DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps
DX_PS_GOAL = doxygen-ps
doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps
@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag
cd @DX_DOCDIR@/latex; \
rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
$(DX_LATEX) refman.tex; \
$(MAKEINDEX_PATH) refman.idx; \
$(DX_LATEX) refman.tex; \
countdown=5; \
while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
refman.log > /dev/null 2>&1 \
&& test $$countdown -gt 0; do \
$(DX_LATEX) refman.tex; \
countdown=`expr $$countdown - 1`; \
done; \
$(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi
endif DX_COND_ps
## ------------------------------ ##
## Rules specific for PDF output. ##
## ------------------------------ ##
if DX_COND_pdf
DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf
DX_PDF_GOAL = doxygen-pdf
doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf
@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag
cd @DX_DOCDIR@/latex; \
rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
$(DX_PDFLATEX) refman.tex; \
$(DX_MAKEINDEX) refman.idx; \
$(DX_PDFLATEX) refman.tex; \
countdown=5; \
while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
refman.log > /dev/null 2>&1 \
&& test $$countdown -gt 0; do \
$(DX_PDFLATEX) refman.tex; \
countdown=`expr $$countdown - 1`; \
done; \
mv refman.pdf ../@PACKAGE@.pdf
endif DX_COND_pdf
## ------------------------------------------------- ##
## Rules specific for LaTeX (shared for PS and PDF). ##
## ------------------------------------------------- ##
if DX_COND_latex
DX_CLEAN_LATEX = @DX_DOCDIR@/latex
endif DX_COND_latex
.PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL)
.INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag
doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
doc: doxygen-doc
docs: doxygen-doc
@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) $(PECOS_extra_dependencies)
rm -rf @DX_DOCDIR@
$(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG)
DX_CLEANFILES = \
@DX_DOCDIR@/@PACKAGE@.tag \
-r \
$(DX_CLEAN_HTML) \
$(DX_CLEAN_CHM) \
$(DX_CLEAN_CHI) \
$(DX_CLEAN_MAN) \
$(DX_CLEAN_RTF) \
$(DX_CLEAN_XML) \
$(DX_CLEAN_PS) \
$(DX_CLEAN_PDF) \
$(DX_CLEAN_LATEX)
# Additional PECOS dependencies
endif DX_COND_doc

View file

@ -89,13 +89,9 @@
* class listed above. These classes assume that there exists a standard state * class listed above. These classes assume that there exists a standard state
* for each species in the phase, where the Thermodynamic functions are specified * for each species in the phase, where the Thermodynamic functions are specified
* as a function of temperature and pressure. Standard state objects for each * as a function of temperature and pressure. Standard state objects for each
* species are all derived from the PDSS virtual base class. Calculators for these * species are all derived from the PDSS virtual base class. In turn, these
* standard state, which coordinate the calculation for all of the species * standard states may employ reference state calculation to aid in their
* in a phase, are all derived from the virtual base class VPSSMgr. * calculations. However, there are some PDSS objects which do not employ
* In turn, these standard states may employ reference state calculation to
* aid in their calculations. And the VPSSMgr calculators may also employ
* SimpleThermo calculators to help in calculating the properties for all of the
* species in a phase. However, there are some PDSS objects which do not employ
* reference state calculations. An example of this is real equation of state for * reference state calculations. An example of this is real equation of state for
* liquid water used within the calculation of brine thermodynamics. * liquid water used within the calculation of brine thermodynamics.
* In general, the independent variables that completely describe the state of the * In general, the independent variables that completely describe the state of the
@ -140,7 +136,7 @@
* phase density or the phase pressure. * phase density or the phase pressure.
* Lists of classes in this group are given below. * Lists of classes in this group are given below.
* *
* - StoichSubstanceSSTP in StoichSubstanceSSTP.h * - StoichSubstance in StoichSubstance.h
* - WaterSSTP in WaterSSTP.h * - WaterSSTP in WaterSSTP.h
* *
* The reader may note that there are duplications in functionality in the * The reader may note that there are duplications in functionality in the
@ -180,90 +176,90 @@
* *
* <TABLE> * <TABLE>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_TPX() setState_TPX()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_TPX() setState_TPX()\endlink </TD>
* <TD> Sets the temperature, mole fractions and then the pressure * <TD> Sets the temperature, mole fractions and then the pressure
* of the phase. </TD> * of the phase. </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_TPY() setState_TPY()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_TPY() setState_TPY()\endlink </TD>
* <TD> Set the temperature, mass fractions and then the pressure * <TD> Set the temperature, mass fractions and then the pressure
* of the phase. </TD> * of the phase. </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link MolalityVPSSTP::setState_TPM() setState_TPM()\endlink </TD> * <TD> \link Cantera::MolalityVPSSTP::setState_TPM() setState_TPM()\endlink </TD>
* <TD> Set the temperature, solute molalities, and then the * <TD> Set the temperature, solute molalities, and then the
* pressure of the phase. Only from %ThermoPhase objects which * pressure of the phase. Only from %ThermoPhase objects which
* inherit from MolalityVPSSTP * inherit from MolalityVPSSTP
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_TP() setState_TP()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_TP() setState_TP()\endlink </TD>
* <TD> Set the temperature, and then the pressure * <TD> Set the temperature, and then the pressure
* of the phase. The mole fractions are assumed fixed. * of the phase. The mole fractions are assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_PX() setState_PX()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_PX() setState_PX()\endlink </TD>
* <TD> Set the mole fractions and then the pressure * <TD> Set the mole fractions and then the pressure
* of the phase. The temperature is assumed fixed. * of the phase. The temperature is assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_PY() setState_PY()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_PY() setState_PY()\endlink </TD>
* <TD> Set the mass fractions and then the pressure * <TD> Set the mass fractions and then the pressure
* of the phase. The temperature is assumed fixed. * of the phase. The temperature is assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_HP() setState_HP()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_HP() setState_HP()\endlink </TD>
* <TD> Set the total specific enthalpy and the pressure * <TD> Set the total specific enthalpy and the pressure
* of the phase using an iterative process. * of the phase using an iterative process.
* The mole fractions are assumed fixed * The mole fractions are assumed fixed
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_UV() setState_UV()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_UV() setState_UV()\endlink </TD>
* <TD> Set the total specific internal energy and the pressure * <TD> Set the total specific internal energy and the pressure
* of the phase using an iterative process. * of the phase using an iterative process.
* The mole fractions are assumed fixed. * The mole fractions are assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_SP() setState_SP()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_SP setState_SP()\endlink </TD>
* <TD> Set the total specific internal energy and the pressure * <TD> Set the total specific internal energy and the pressure
* of the phase using an iterative process. * of the phase using an iterative process.
* The mole fractions are assumed fixed. * The mole fractions are assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setState_SV() setState_SV()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setState_SV setState_SV()\endlink </TD>
* <TD> Set the total specific entropy and the total specific * <TD> Set the total specific entropy and the total specific
* molar volume of the phase using an iterative process. * molar volume of the phase using an iterative process.
* The mole fractions are assumed fixed. * The mole fractions are assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link Phase::setConcentrations() setConcentrations()\endlink </TD> * <TD> \link Cantera::Phase::setConcentrations setConcentrations()\endlink </TD>
* <TD> Set the concentrations of all the species in the * <TD> Set the concentrations of all the species in the
* phase. Note this implicitly specifies the pressure and * phase. Note this implicitly specifies the pressure and
* density of the phase. The temperature is assumed fixed. * density of the phase. The temperature is assumed fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link Phase::setDensity() setDensity()\endlink </TD> * <TD> \link Cantera::Phase::setDensity setDensity()\endlink </TD>
* <TD> Set the total density of the phase. The temperature and * <TD> Set the total density of the phase. The temperature and
* mole fractions are assumed fixed. Note this implicitly * mole fractions are assumed fixed. Note this implicitly
* sets the pressure of the phase. * sets the pressure of the phase.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link Phase::setTemperature() setTemperature()\endlink </TD> * <TD> \link Cantera::Phase::setTemperature() setTemperature()\endlink </TD>
* <TD> Set the temperature of the phase. The density and * <TD> Set the temperature of the phase. The density and
* the mole fractions of the phase are fixed. * the mole fractions of the phase are fixed.
* </TD> * </TD>
* </TR> * </TR>
* <TR> * <TR>
* <TD> \link ThermoPhase::setToEquilState() setToEquilState()\endlink </TD> * <TD> \link Cantera::ThermoPhase::setToEquilState() setToEquilState()\endlink </TD>
* <TD> Sets the mole fractions of the phase to their * <TD> Sets the mole fractions of the phase to their
* equilibrium values assuming fixed temperature and * equilibrium values assuming fixed temperature and
* total density. * total density.
@ -492,21 +488,11 @@
* (both P and T dependent), is to be used to calculate the * (both P and T dependent), is to be used to calculate the
* standard state properties of the species within the phase. * standard state properties of the species within the phase.
* If only a reference state is needed * If only a reference state is needed
* then a call to * then a call to newSpeciesThermoMgr()
* \link #newSpeciesThermoMgr(std::vector<XML_Node*> spData_nodes, SpeciesThermoFactory* f=0, bool opt=false) newSpeciesThermoMgr()\endlink
* is made in order * is made in order
* pick a manager, i.e., a derivative of the SpeciesThermo * pick a manager, i.e., a derivative of the SpeciesThermo
* object, to use. * object, to use.
* *
* If a temperature and pressure dependent standard state is needed
* then a call to VPSSMgrFactory::newVPSSMgr()
* is made in order
* pick a manager, i.e., a derivative of the VPSSMgr
* object, to use. Along with the VPSSMgr designation comes a
* determination of whether there is an accompanying SpeciesThermo
* and what type of SpeciesThermo object to use in the
* VPSSMgr calculations.
*
* Once these determinations are made, the %ThermoPhase object is * Once these determinations are made, the %ThermoPhase object is
* ready to start reading in the species information, which includes * ready to start reading in the species information, which includes
* all of the available standard state information about the * all of the available standard state information about the
@ -525,16 +511,9 @@
* call to read the XML data from the input file and install the * call to read the XML data from the input file and install the
* correct SpeciesThermoInterpType object into the SpeciesThermo object. * correct SpeciesThermoInterpType object into the SpeciesThermo object.
* *
* Within installSpecies(), for standard states, the routine, * Within installSpecies(), for standard states, derived PDSS object is created
* SpeciesThermoFactory::installVPThermoForSpecies() is * and installed into the VPStandardStateTP list containing all of the PDSS
* called. However, this is just a shell routine for calling * objects for that phase.
* the VPSSMgr's derived VPSSMgr::createInstallPDSS() routine.
* Within the VPSSMgr::createInstallPDSS() routine of the derived VPSSMgr's
* object, the XML data from the input file is read and the
* calculations for the species standard state is installed.
* Additionally, the derived PDSS object is created and installed
* into the VPStandardStateTP list containing all of the PDSS objects
* for that phase.
* *
* Now that all of the species standard states are read in and * Now that all of the species standard states are read in and
* installed into the ThermoPhase object, control once again * installed into the ThermoPhase object, control once again
@ -575,9 +554,6 @@
* In general, factory routines throw specific errors when encountering * In general, factory routines throw specific errors when encountering
* unknown thermodynamics models in XML files. All of the error classes * unknown thermodynamics models in XML files. All of the error classes
* derive from the class, CanteraError. * derive from the class, CanteraError.
* The newVPSSMgr() routines throws the UnknownVPSSMgr class error when
* they encounter an unknown string in the XML input file specifying the
* VPSSMgr class to use.
* *
* Many of the important member functions in factory routines are * Many of the important member functions in factory routines are
* virtual classes. This means that a user may write their own * virtual classes. This means that a user may write their own

View file

@ -1,37 +0,0 @@
pydoc -w Cantera
pydoc -w Cantera.Flow
pydoc -w Cantera.FlowBoundary
pydoc -w Cantera.FlowPlotter
pydoc -w Cantera.Func
pydoc -w Cantera.Interface
pydoc -w Cantera.Kinetics
pydoc -w Cantera.OneDim
pydoc -w Cantera.Phase
pydoc -w Cantera.Reactor
pydoc -w Cantera.SurfWriter
pydoc -w Cantera.SurfacePhase
pydoc -w Cantera.Thermo
pydoc -w Cantera.ThermoPhase
pydoc -w Cantera.Transport
pydoc -w Cantera.XML
pydoc -w Cantera.__init__
pydoc -w Cantera.boundaries1D
pydoc -w Cantera.ck2ctml
pydoc -w Cantera.constants
pydoc -w Cantera.elements
pydoc -w Cantera.excel
pydoc -w Cantera.exceptions
pydoc -w Cantera.flame
pydoc -w Cantera.gases
pydoc -w Cantera.importFromFile
pydoc -w Cantera.interp
pydoc -w Cantera.refine
pydoc -w Cantera.rxnpath
pydoc -w Cantera.schem
pydoc -w Cantera.set
pydoc -w Cantera.solids
pydoc -w Cantera.solution
pydoc -w Cantera.solve
pydoc -w Cantera.stoich
pydoc -w Cantera.tecplot
pydoc -w Cantera.units

View file

@ -1,24 +0,0 @@
import os
def writepydoc(pkg, out):
nm = pkg.__name__
out.write('pydoc -w '+nm+'\n')
p = pkg.__path__[0]
files = os.listdir(p)
for f in files:
n = f.split('.')
if len(n) >= 2 and n[-1] == 'py' and n[0][0] <> '_':
try:
exec('import '+nm+'.'+n[0])
out.write('pydoc -w '+nm+'.'+n[0]+'\n')
except:
pass
out = open('mkdoc','w')
import Cantera
writepydoc(Cantera, out)
import Cantera.OneD
writepydoc(Cantera.OneD, out)
out.close()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -1,507 +0,0 @@
/**
* Alternate Sphinx design
* Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl.
*/
body {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif;
font-size: 14px;
letter-spacing: -0.01em;
line-height: 150%;
text-align: center;
/*background-color: #AFC1C4; */
background-color: #BFD1D4;
color: black;
padding: 0;
border: 1px solid #aaa;
margin: 0px 80px 0px 80px;
min-width: 740px;
}
a {
color: #CA7900;
text-decoration: none;
}
a:hover {
color: #2491CF;
}
pre {
font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
font-size: 0.95em;
letter-spacing: 0.015em;
padding: 0.5em;
border: 1px solid #ccc;
background-color: #f8f8f8;
}
td.linenos pre {
padding: 0.5em 0;
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
margin-left: 0.5em;
}
table.highlighttable td {
padding: 0 0.5em 0 0.5em;
}
cite, code, tt {
font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
font-size: 0.95em;
letter-spacing: 0.01em;
}
hr {
border: 1px solid #abc;
margin: 2em;
}
tt {
background-color: #f2f2f2;
border-bottom: 1px solid #ddd;
color: #333;
}
tt.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
border: 0;
}
tt.descclassname {
background-color: transparent;
border: 0;
}
tt.xref {
background-color: transparent;
font-weight: bold;
border: 0;
}
a tt {
background-color: transparent;
font-weight: bold;
border: 0;
color: #CA7900;
}
a tt:hover {
color: #2491CF;
}
dl {
margin-bottom: 15px;
}
dd p {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
.refcount {
color: #060;
}
dt:target,
.highlight {
background-color: #fbe54e;
}
dl.class, dl.function {
border-top: 2px solid #888;
}
dl.method, dl.attribute {
border-top: 1px solid #aaa;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
pre {
line-height: 120%;
}
pre a {
color: inherit;
text-decoration: underline;
}
.first {
margin-top: 0 !important;
}
div.document {
background-color: white;
text-align: left;
background-image: url(contents.png);
background-repeat: repeat-x;
}
/*
div.documentwrapper {
width: 100%;
}
*/
div.clearer {
clear: both;
}
div.related h3 {
display: none;
}
div.related ul {
background-image: url(navigation.png);
height: 2em;
list-style: none;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 0;
padding-left: 10px;
}
div.related ul li {
margin: 0;
padding: 0;
height: 2em;
float: left;
}
div.related ul li.right {
float: right;
margin-right: 5px;
}
div.related ul li a {
margin: 0;
padding: 0 5px 0 5px;
line-height: 1.75em;
color: #EE9816;
}
div.related ul li a:hover {
color: #3CA8E7;
}
div.body {
margin: 0;
padding: 0.5em 20px 20px 20px;
}
div.bodywrapper {
margin: 0 240px 0 0;
border-right: 1px solid #ccc;
}
div.body a {
text-decoration: underline;
}
div.sphinxsidebar {
margin: 0;
padding: 0.5em 15px 15px 0;
width: 210px;
float: right;
text-align: left;
/* margin-left: -100%; */
}
div.sphinxsidebar h4, div.sphinxsidebar h3 {
margin: 1em 0 0.5em 0;
font-size: 0.9em;
padding: 0.1em 0 0.1em 0.5em;
color: white;
border: 1px solid #86989B;
background-color: #AFC1C4;
}
div.sphinxsidebar ul {
padding-left: 1.5em;
margin-top: 7px;
list-style: none;
padding: 0;
line-height: 130%;
}
div.sphinxsidebar ul ul {
list-style: square;
margin-left: 20px;
}
p {
margin: 0.8em 0 0.5em 0;
}
p.rubric {
font-weight: bold;
}
h1 {
margin: 0;
padding: 0.7em 0 0.3em 0;
font-size: 1.5em;
color: #11557C;
}
h2 {
margin: 1.3em 0 0.2em 0;
font-size: 1.35em;
padding: 0;
}
h3 {
margin: 1em 0 -0.3em 0;
font-size: 1.2em;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
color: black!important;
}
h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
display: none;
margin: 0 0 0 0.3em;
padding: 0 0.2em 0 0.2em;
color: #aaa!important;
}
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
h5:hover a.anchor, h6:hover a.anchor {
display: inline;
}
h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
h5 a.anchor:hover, h6 a.anchor:hover {
color: #777;
background-color: #eee;
}
table {
border-collapse: collapse;
margin: 0 -0.5em 0 -0.5em;
}
table td, table th {
padding: 0.2em 0.5em 0.2em 0.5em;
}
div.footer {
background-color: #E3EFF1;
color: #86989B;
padding: 3px 8px 3px 0;
clear: both;
font-size: 0.8em;
text-align: right;
}
div.footer a {
color: #86989B;
text-decoration: underline;
}
div.pagination {
margin-top: 2em;
padding-top: 0.5em;
border-top: 1px solid black;
text-align: center;
}
div.sphinxsidebar ul.toc {
margin: 1em 0 1em 0;
padding: 0 0 0 0.5em;
list-style: none;
}
div.sphinxsidebar ul.toc li {
margin: 0.5em 0 0.5em 0;
font-size: 0.9em;
line-height: 130%;
}
div.sphinxsidebar ul.toc li p {
margin: 0;
padding: 0;
}
div.sphinxsidebar ul.toc ul {
margin: 0.2em 0 0.2em 0;
padding: 0 0 0 1.8em;
}
div.sphinxsidebar ul.toc ul li {
padding: 0;
}
div.admonition, div.warning {
font-size: 0.9em;
margin: 1em 0 0 0;
border: 1px solid #86989B;
background-color: #f7f7f7;
}
div.admonition p, div.warning p {
margin: 0.5em 1em 0.5em 1em;
padding: 0;
}
div.admonition pre, div.warning pre {
margin: 0.4em 1em 0.4em 1em;
}
div.admonition p.admonition-title,
div.warning p.admonition-title {
margin: 0;
padding: 0.1em 0 0.1em 0.5em;
color: white;
border-bottom: 1px solid #86989B;
font-weight: bold;
background-color: #AFC1C4;
}
div.warning {
border: 1px solid #940000;
}
div.warning p.admonition-title {
background-color: #CF0000;
border-bottom-color: #940000;
}
div.admonition ul, div.admonition ol,
div.warning ul, div.warning ol {
margin: 0.1em 0.5em 0.5em 3em;
padding: 0;
}
div.versioninfo {
margin: 1em 0 0 0;
border: 1px solid #ccc;
background-color: #DDEAF0;
padding: 8px;
line-height: 1.3em;
font-size: 0.9em;
}
a.headerlink {
color: #c60f0f!important;
font-size: 1em;
margin-left: 6px;
padding: 0 4px 0 4px;
text-decoration: none!important;
visibility: hidden;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
a.headerlink:hover {
background-color: #ccc;
color: white!important;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
img.inheritance {
border: 0px
}
form.pfform {
margin: 10px 0 20px 0;
}
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}

View file

@ -1,10 +1,162 @@
{% extends "!layout.html" %} {%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and (sidebars != []) %}
{% block doctype %}
<!DOCTYPE html>
{% block relbar1 %}
<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px">
<a href="{{ pathto('index') }}">
<img src="{{pathto("_static/cantera-logo.png", 1) }}" border="0" alt="Cantera"/></a>
</div>
{{ super() }}
{% endblock %} {% endblock %}
<html prefix="
og: http://ogp.me/ns# article: http://ogp.me/ns/article#
"
lang="en">
{%- macro script() %}
<script type="text/javascript" id="documentation_options" data-url_root="{{ pathto('', 1) }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
{%- for scriptfile in script_files %}
{%- if scriptfile.startswith("https://cdn.jsdelivr.net") %}
<script defer type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
{%- else %}
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
{%- endif %}
{%- endfor %}
{%- endmacro %}
{%- macro css() %}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" media="none" onload="this.media='all'" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous" />
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
{%- for css in css_files %}
{%- if css|attr("rel") %}
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" media="none" onload="this.media='all'" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
{%- else %}
<link rel="stylesheet" href="{{ pathto(css, 1) }}" media="none" onload="this.media='all'" type="text/css" />
{%- endif %}
{%- endfor %}
{%- endmacro %}
{%- macro sidebar() %}
{%- if render_sidebar %}
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
{%- for sidebartemplate in sidebars %}
{%- include sidebartemplate %}
{%- endfor %}
</div>
</div>
{%- endif %}
{%- endmacro %}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ title|e }} | Cantera </title>
{%- block csss %}
{{- css() }}
{%- endblock %}
{%- if not embedded %}
{%- block scripts %}
{{- script() }}
{%- endblock %}
{%- if use_opensearch %}
<link rel="search" type="application/opensearchdescription+xml"
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
href="{{ pathto('_static/opensearch.xml', 1) }}"/>
{%- endif %}
<link rel="shortcut icon" href="/assets/img/favicon.ico" sizes="16x16"/>
{%- endif %}
{% if theme_canonical_url %}
<link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
{% endif %}
{%- if hasdoc('search') %}
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
{%- endif %}
{%- if hasdoc('copyright') %}
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
{%- endif %}
{%- block extrahead %} {% endblock %}
</head>
<body>
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
<!-- Menubar -->
<nav class="navbar navbar-expand-md navbar-light bg-light static-top mb-4">
<div class="container"><!-- This keeps the margins nice -->
<a class="navbar-brand" href="/index.html">
<img src="/assets/img/cantera-logo.png" alt="Cantera" id="logo" class="d-inline-block align-top">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#bs-navbar" aria-controls="bs-navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="bs-navbar">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a href="/install/index.html" class="nav-link">Install</a>
</li>
<li class="nav-item">
<a href="/tutorials/index.html" class="nav-link">Tutorials</a>
</li>
<li class="nav-item">
<a href="/examples/index.html" class="nav-link">Examples</a>
</li>
<li class="nav-item">
<a href="/community.html" class="nav-link">Community</a>
</li>
<li class="nav-item">
<a href="/science/index.html" class="nav-link">Science</a>
</li>
<li class="nav-item">
<a href="/documentation/index.html" class="nav-link">Documentation</a>
</li>
<li class="nav-item">
<a href="/blog/index.html" class="nav-link">Blog</a>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container -->
</nav>
<!-- End of Menubar -->
<div class="container" id="content">
<div class="body-content">
<!--Body content-->
{% block content %}
<div class="document">
{% block document %}
<div class="documentwrapper">
{%- if render_sidebar %}
<div class="bodywrapper">
{%- endif %}
<div class="body" role="main">
{% block body %} {% endblock %}
</div>
{%- if render_sidebar %}
</div>
{%- endif %}
</div>
{% endblock %} <!-- end of block document -->
{%- block sidebar2 %}{{ sidebar() }}{% endblock %}
<div class="clearer"></div>
</div>
{% endblock %} <!--End of block content-->
<div class="footer">
{% if show_copyright %}&copy;{{ copyright }}.{% endif %}
{% if theme_show_powered_by|lower == 'true' %}
{% if show_copyright %}|{% endif %}
Powered by <a href="http://sphinx-doc.org/">Sphinx {{ sphinx_version }}</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster {{ alabaster_version }}</a>
{% endif %}
{%- if show_source and has_source and sourcename %}
{% if show_copyright or theme_show_powered_by %}|{% endif %}
<a href="{{ pathto('_sources/' + sourcename, true)|e }}"
rel="nofollow">{{ _('Page source') }}</a>
{%- endif %}
</div>
</div>
</div>
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha256-98vAGjEDGN79TjHkYWVD4s87rvWkdWLHPs5MC3FvFX4=" crossorigin="anonymous"></script>
<script async="async" src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script>
</body>
</html>

View file

@ -0,0 +1,5 @@
<div id="numfocus">
<h3>Donate to Cantera</h3>
<a href="https://numfocus.salsalabs.org/donate-to-cantera/index.html">
<img src="{{pathto("_static/powered_by_NumFOCUS.png", 1) }}" border="0" alt="NumFOCUS"/></a>
</div>

View file

@ -1,404 +0,0 @@
*************************
Cantera Compilation Guide
*************************
.. toctree::
:hidden:
SCons Configuration Options <configuring>
This guide contains instructions for compiling Cantera on the following
operating systems:
* Linux
* Ubuntu 10.04 LTS (Lucid Lynx) or newer
* Debian 5.0 (Lenny) or newer
* Windows Vista or Windows 7 (32-bit or 64-bit versions)
* OS X 10.6 (Snow Leopard) or newer
In addition to the above operating systems, Cantera should work on any
Unix-like system where the necessary prerequisites are available, but some
additional configuration may be required.
Installation Prerequisites
==========================
Linux
-----
* For Ubuntu or Debian users, the following packages should be installed using
your choice of package manager::
g++ python scons libboost-all-dev libsundials-serial-dev subversion
* Building the python module also requires::
python-dev python-numpy python-numpy-dev
* Building the Fortran interface also requires gfortran or another supported
Fortran compiler.
* Users of other distributions should install the equivalent packages, which
may have slightly different names.
Windows
-------
There are a number of requirements for the versions of software to install
depending on which interfaces (Python, Matlab) you want to build and what
architecture (32-bit or 64-bit) you want to use. See :ref:`sec-dependencies` for
the full list of dependencies.
* If you want to build the Python module, you must use the same version of the
Microsoft compiler as was used to compile Python. For current versions of
Python (2.6 and 2.7) this means that you must use Visual Studio 2008 or the
equivalent version of the Windows SDK (see link below).
* The build process will produce a Python module compatible with the version of
Python used for the compilation. To generate different modules for other
versions of Python, you will need to install those versions of Python and
recompile.
* If you want to build the Matlab toolbox and you have a 64-bit copy of
Windows, by default you will be using a 64-bit copy of Matlab, and therefore
you need to compile Cantera in 64-bit mode. For simplicity, it is highly
recommended that you use a 64-bit version of Python to handle this
automatically.
* There is no 64-bit installer for SCons under Windows, so you will need to
download the ZIP version. After extracting it, start a command prompt in the
unzipped folder and run::
python setup.py install
* It is generally helpful to have SCons and Python in your PATH. This can
usually be accomplished by adding the top-level Python directory
(e.g. ``C:\Python27``) to your PATH. This is accessible from::
Control Panel > System and Security > System > Advanced System Settings > Environment Variables
OS X
----
* Download and install Xcode from the
`Apple Developer site <https://developer.apple.com/xcode/index.php>`_
* Cantera can be compiled with the command line tools that ship with either
Xcode 3.x or Xcode 4.x.
* If you don't have numpy version >= 1.3, you can install a recent version with::
sudo easy_install -U numpy
* If you want to build Cantera with Fortran 90 support, download gfortran from::
http://gcc.gnu.org/wiki/GFortranBinaries#MacOS
* Download scons-2.1.0.tar.gz from scons.org and extract the contents. Install with either::
sudo python setup.py install
to install for all users, or::
python setup.py install --user
to install to a location in your home directory.
Downloading the Cantera source code
===================================
* Option 1: Download the most recent source tarball from the `Cantera Google
Code Site <http://code.google.com/p/cantera/downloads/list>`_ and extract the
contents.
* Option 2: Check out the code using Subversion::
svn checkout http://cantera.googlecode.com/svn/cantera/trunk/ cantera
* Option 3: Check out the code using Git::
git svn clone --std-layout http://cantera.googlecode.com/svn/cantera cantera
Determine configuration options
===============================
General
-------
* run ``scons help`` to see a list all configuration options for Cantera, or
see :ref:`scons-config`.
* If the prerequisites are installed in standard locations, the default values
should work.
* If you installed Sundials to a non-standard location (e.g. the libraries
aren't in /usr/lib), you will need to specify the options::
sundials_include=/path/to/sundials/include
sundials_libdir=/path/to/sundials/lib
* If you want to build the Matlab toolbox, you will need to specify the path
to the Matlab installation, e.g.::
matlab_path=/opt/MATLAB/R2011a
matlab_path="C:\Program Files\MATLAB\R2011a"
matlab_path=/Applications/MATLAB_R2011a.app
The above paths are typical defaults on Linux, Windows, and OS X,
respectively.
* SCons saves configuration options specified on the command line in the file
\b cantera.conf in the root directory of the source tree, so generally it is
not necessary to respecify configuration options when rebuilding Cantera. To
unset a previously set configuration option, either remove the corresponding
line from cantera.conf or use the syntax::
option_name=
Windows (MSVC)
--------------
* In Windows there aren't any proper default locations for many of the packages
that Cantera depends on, so you will need to specify these paths explicitly.
* Remember to put double quotes around any paths with spaces in them, e.g.
"C:\Program Files".
* By default, SCons attempts to use the same architecture and version of the
Microsoft compiler as was used to compile Python, typically Visual Studio
2008 or the equivalent version of the Windows SDK. If you aren't building the
Python module, you can override this with the configuration options
``target_arch`` and ``msvc_version``.
.. note::
The ``cantera.conf`` file uses the backslash character ``\`` as an escape
character. When modifying this file, backslashes in paths need to be escaped
like this: ``boost_inc_dir = 'C:\\Program Files (x86)\\boost\\include'``
This does not apply to paths specified on the command line. Alternatively,
you can use forward slashes in paths.
Windows (MinGW)
---------------
* To compile with MinGW, use the SCons command line option::
toolchain=mingw
* The version of MinGW from http://www.mingw.org is 32-bit only, and therefore
cannot be used to build a 64-bit Python module.
OS X
----
* The available compilers to compile Cantera will depend on the version of
Xcode that is installed.
* If Xcode 3 is installed, you can use either GCC by leaving the ``CC`` and
``CXX`` options unspecified, or setting them to::
CC=gcc CXX=g++
You can also use LLVM with the GCC frontend by specifying::
CC=llvm-gcc CXX=llvm-g++
* If Xcode 4 is installed, then you can either use LLVM-GCC as above or
Clang by specifying::
CC=clang CXX=clang++
* The Accelerate framework provides optimized versions of BLAS and LAPACK, so
the ``blas_lapack_libs`` option should generally be left unspecified.
Intel Compilers
---------------
* Before compiling Cantera, you may need to set up the appropriate environment
variables for the Intel compiler suite, e.g.::
source /opt/intel/bin/compilervars.sh intel64
* For the Intel compiler to work with SCons, these environment variables need
to be passed through SCons by using the command line option::
env_vars=all
* If you want to use the Intel MKL versions of BLAS and LAPACK, you will need
to provide additional options. The following are typically correct on
64-bit Linux systems::
blas_lapack_libs=mkl_rt blas_lapack_dir=$(MKLROOT)/lib/intel64
Your final SCons call might then look something like::
scons build env_vars=all CC=icc CXX=icpc F90=ifort F77=ifort blas_lapack_libs=mkl_rt blas_lapack_dir=$(MKLROOT)/lib/intel64
When installing Cantera after building with the Intel compiler, the normal
method of using ``sudo`` to install Cantera will not work because ``sudo``
does not pass the environment variables needed by the Intel compiler.
Instead, you will need to do something like::
scons build ...
sudo -s
source /path/to/compilervars.sh intel64
scons install
exit
Compile Cantera & Test
======================
* Run scons with the list of desired configuration options, e.g.::
scons build optimize=n blas_lapack_libs=blas,lapack prefix=/opt/cantera
* If Cantera compiles successfully, you should see a message that looks like::
*******************************************************
Compilation completed successfully.
- To run the test suite, type 'scons test'.
- To install, type '[sudo] scons install'.
*******************************************************
* If you do not see this message, check the output for errors to see what went
wrong.
* Cantera has a series of tests that can be run with the command::
scons test
* When the tests finish, you should see a summary indicating the number of
tests that passed and failed.
* If you have tests that fail, try looking at the following to determine the
source of the error:
* Messages printed to the console while running scons test
* Output files generated by the tests
MinGW Compilation problems
--------------------------
* If you get a compiler error while compiling some of the "f2c" code, then your
version of MinGW has a problem with the order of its internal include paths,
such that it sees the GCC float.h before its own special version. To fix this
problem edit the GCC float.h located at (roughly)::
c:\MinGW\lib\gcc\mingw32\4.6.1\include\float.h
and add the following just before the end (before the final #endif)
.. code-block:: c++
#ifndef _MINGW_FLOAT_H_
#include_next <float.h>
#endif
.. _sec-dependencies:
Software used by Cantera
========================
This section lists the versions of third-party software that are required to
build and use Cantera.
Compilers
---------
You must have one of the following C++ compilers installed on your system. A
Fortran compiler is required only if you plan to use Cantera from a Fortran
program.
* GNU compilers (C/C++/Fortran)
* Known to work with version 4.6; Expected to work with version >= 4.3
* Clang/LLVM (C/C++)
* Known to work with version 2.9
* This is the version included with Apple Xcode 4.x
* Intel compilers (C/C++/Fortran)
* Known to work with version 11.0 and 12.1; Expected to work with
versions >= 11.0
* Microsoft compilers (C/C++)
* Windows SDK: http://www.microsoft.com/download/en/details.aspx?id=3138
This is equivalent to Visual Studio 2008. It is a free download.
* Known to work with version 9.0 (Visual Studio 2008) and version 10.0
(Visual Studio 2010).
* MinGW (C/C++/Fortran)
* http://www.mingw.org
* Known to work with version 4.6.
* Supported versions of MinGW should be the same as the supported versions of
GCC.
Other Required Software
-----------------------
* Subversion
* For Windows: http://tortoisesvn.net/downloads.html
* Known to work with versions >= 1.6
* SCons:
* http://www.scons.org/download.php
* Known to work with SCons 2.1.0; Expected to work with versions >= 1.0.0
* Python:
* http://python.org/download/
* Known to work with 2.6 and 2.7; Expected to work with versions >= 2.5
* Does not yet work with 3.x
* Boost
* http://www.boost.org/users/download/
* Known to work with version 1.46; Expected to work with versions >= 1.40
* Only the "header-only" portions of Boost are required. Cantera does not
currently depend on any of the compiled Boost libraries.
Optional Programs
-----------------
* Numpy
* Required to build the Cantera Python module.
* http://sourceforge.net/projects/numpy/
* Known to work with versions 1.3 and 1.5; Expected to work with version >= 1.1
* Test suite requires version >= 1.3
* Matlab
* Required to build the Cantera Matlab toolbox.
* Known to work with 2009a, 2010a, and 2011b. Expected to work with
versions >= 2009a.
* Sundials
* Required to enable some features such as sensitivity analysis.
* Strongly recommended if using reactor network or 1D simulation capabilities.
* https://computation.llnl.gov/casc/sundials/download/download.html
* Known to work with versions 2.4 and 2.5; Support for versions 2.3
and 2.2 is deprecated.
* To use Sundials with Cantera, you may need to compile it with the
``-fPIC`` flag. You can specify this flag when configuring Sundials::
configure --with-cflags=-fPIC
* `Windows Installer XML (WiX) toolset <http://wix.sourceforge.net/>`_
* Required to build MSI installers on Windows.
* Known to work with version 3.5.
* `Distribute <http://pypi.python.org/pypi/distribute>`_ (Python)
* Provides the ``easy_install`` command which can be used to install most of
the other Python modules.
* Packages required for building Sphinx documentation
* `Sphinx <http://sphinx.pocoo.org/>`_ (install with ``easy_install -U Sphinx``)
* `Pygments <http://pygments.org/>`_ (install with ``easy_install -U pygments``)
* `pyparsing <http://sourceforge.net/projects/pyparsing/>`_ (install with ``easy_install -U pyparsing``)
* `Doxygen <http://www.stack.nl/~dimitri/doxygen/>`_
* Required for building the C++ API Documentation

View file

@ -11,12 +11,13 @@
# All configuration values have a default; values that are commented out # All configuration values have a default; values that are commented out
# serve to show the default. # serve to show the default.
import sys, os import sys, os, re
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here. # documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('../../interfaces/python')) sys.path.insert(0, os.path.abspath('../../build/python'))
sys.path.append(os.path.abspath('.')) sys.path.append(os.path.abspath('.'))
sys.path.append(os.path.abspath('./exts')) sys.path.append(os.path.abspath('./exts'))
@ -27,26 +28,35 @@ sys.path.append(os.path.abspath('./exts'))
# Add any Sphinx extension module names here, as strings. They can be extensions # Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc',
# sphinxcontrib.matlab has been added to add the MATLAB domain for the
# documentation of the MATLAB functions. It is a new requirement to build the
# documentation in 2.2. It should be loaded before sphinx.ext.autodoc because
# loading it after gives errors when autodocumenting the Python interface.
extensions = [
'sphinxcontrib.matlab',
'sphinx.ext.autodoc',
'sphinx.ext.todo', 'sphinx.ext.todo',
'sphinx.ext.autosummary', 'sphinx.ext.autosummary',
'mathjax', 'sphinxcontrib.doxylink',
'doxylink'] 'sphinxcontrib.katex', # Use KaTeX because it's faster and the main site uses it
]
# @todo: Sphinx version 1.1 adds support for MathJax, so we can remove the katex_version = '0.10.0-beta'
# custom extension for that once that version becomes more standard
autodoc_default_flags = ['members','show-inheritance','undoc-members'] autodoc_default_flags = ['members','show-inheritance','undoc-members']
autoclass_content = 'both' autoclass_content = 'both'
mathjax_path = 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default'
doxylink = { doxylink = {
'ct' : (os.path.abspath('../../build/docs/Cantera.tag'), 'ct': (os.path.abspath('../../build/docs/Cantera.tag'),
'../../doxygen/html/') '../../doxygen/html/')
} }
# Ensure that the primary domain is the Python domain, since we've added the
# MATLAB domain with sphinxcontrib.matlab
primary_domain = 'py'
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
@ -60,17 +70,18 @@ source_suffix = '.rst'
master_doc = 'index' master_doc = 'index'
# General information about the project. # General information about the project.
project = u'Cantera' project = 'Cantera'
copyright = u'2012, Cantera Developers' copyright = '2001-2018, Cantera Developers'
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
# built documents. # built documents.
#
configh = open('../../include/cantera/base/config.h').read()
# The short X.Y version. # The short X.Y version.
version = '2.0' version = re.search('CANTERA_SHORT_VERSION "(.*?)"', configh).group(1)
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '2.0.1' release = re.search('CANTERA_VERSION "(.*?)"', configh).group(1)
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
@ -87,7 +98,7 @@ release = '2.0.1'
exclude_patterns = [] exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all documents. # The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None default_role = 'py:obj'
# If true, '()' will be appended to :func: etc. cross-reference text. # If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True #add_function_parentheses = True
@ -111,15 +122,47 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes. # a list of builtin themes.
html_theme = 'sphinxdoc' html_theme = 'cttheme'
html_sidebars = {
'**': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html', 'numfocus.html'],
}
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.
#html_theme_options = {}
# Copy the Bootstrap 4 font families.
font_families = [
# Default on Apple
'-apple-system',
# Default for older versions of Chrome on Mac
'BlinkMacSystemFont',
# Windows
'"Segoe UI"',
# Android
'Roboto',
# Standard fallbacks
'"Helvetica Neue"', 'Arial', 'sans-serif',
# Emoji fonts
'"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"']
code_font_families = [
'SFMono-Regular',
'Menlo',
'Monaco',
'Consolas',
'"Liberation Mono"',
'"Courier New"', 'monospace'
]
html_theme_options = {
'font_family': ','.join(font_families),
'head_font_family': ','.join(font_families),
'caption_font_family': ','.join(font_families),
'code_font_family': ','.join(code_font_families),
}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = [] html_theme_path = ['.']
# The name for this set of Sphinx documents. If None, it defaults to # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
@ -135,14 +178,13 @@ html_short_title = "Cantera"
# The name of an image file (within the static path) to use as favicon of the # The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large. # pixels large.
html_favicon = "_static/favicon.ico" # html_favicon = "_static/favicon.ico"
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static'] html_static_path = ['_static']
html_style = 'site.css'
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y' #html_last_updated_fmt = '%b %d, %Y'
@ -199,8 +241,8 @@ htmlhelp_basename = 'Canteradoc'
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]). # (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [ latex_documents = [
('index', 'Cantera.tex', u'Cantera Documentation', ('index', 'Cantera.tex', 'Cantera Documentation',
u'Cantera Developers', 'manual'), 'Cantera Developers', 'manual'),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
@ -232,6 +274,6 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
('index', 'cantera', u'Cantera Documentation', ('index', 'cantera', 'Cantera Documentation',
[u'Cantera Developers'], 1) ['Cantera Developers'], 1)
] ]

View file

@ -1,15 +0,0 @@
.. _scons-config:
*******************
Configuring Cantera
*******************
This document lists the options available for compiling Cantera with SCons.
These options may be seen by running the command::
scons help
from the command prompt.
.. literalinclude:: scons-options.txt

View file

@ -3,129 +3,133 @@
CTI Class Reference CTI Class Reference
******************* *******************
.. py:module:: ctml_writer .. py:module:: cantera.ctml_writer
.. py:currentmodule:: cantera.ctml_writer
Basic Classes & Functions Basic Classes & Functions
========================= =========================
.. autofunction:: ctml_writer.units .. autofunction:: units
.. autoclass:: ctml_writer.state .. autofunction:: validate
.. autoclass:: state
:no-undoc-members: :no-undoc-members:
Phases of Matter Phases of Matter
================ ================
.. autoclass:: ctml_writer.phase .. autoclass:: phase
:no-members: :no-members:
.. autoclass:: ctml_writer.ideal_gas .. autoclass:: ideal_gas
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.stoichiometric_solid .. autoclass:: stoichiometric_solid
:no-members: :no-members:
.. autoclass:: ctml_writer.stoichiometric_liquid .. autoclass:: stoichiometric_liquid
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.metal .. autoclass:: metal
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.semiconductor .. autoclass:: semiconductor
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.incompressible_solid .. autoclass:: incompressible_solid
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.lattice .. autoclass:: lattice
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.lattice_solid .. autoclass:: lattice_solid
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.liquid_vapor .. autoclass:: liquid_vapor
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.redlich_kwong .. autoclass:: ideal_interface
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.ideal_interface .. autoclass:: edge
:no-undoc-members:
.. autoclass:: ctml_writer.edge
:no-undoc-members: :no-undoc-members:
Elements and Species Elements and Species
==================== ====================
.. autoclass:: ctml_writer.element .. autoclass:: element
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.species .. autoclass:: species
:no-undoc-members: :no-undoc-members:
Thermodynamic Properties Thermodynamic Properties
======================== ========================
.. autoclass:: ctml_writer.Mu0_table .. autoclass:: Mu0_table
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.NASA .. autoclass:: NASA
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.NASA9 .. autoclass:: NASA9
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.Shomate .. autoclass:: Shomate
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.Adsorbate .. autoclass:: const_cp
:no-undoc-members:
.. autoclass:: ctml_writer.const_cp
:no-undoc-members: :no-undoc-members:
Transport Properties Transport Properties
==================== ====================
.. autoclass:: ctml_writer.gas_transport .. autoclass:: gas_transport
:no-undoc-members: :no-undoc-members:
Reactions Reactions
========= =========
.. autoclass:: ctml_writer.reaction .. autoclass:: reaction
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.Arrhenius .. autoclass:: Arrhenius
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.three_body_reaction .. autoclass:: three_body_reaction
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.falloff_reaction .. autoclass:: falloff_reaction
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.pdep_arrhenius .. autoclass:: chemically_activated_reaction
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.chebyshev_reaction .. autoclass:: pdep_arrhenius
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.surface_reaction .. autoclass:: chebyshev_reaction
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.edge_reaction .. autoclass:: surface_reaction
:no-undoc-members:
.. autoclass:: edge_reaction
:no-undoc-members:
.. autoclass:: stick
:no-undoc-members: :no-undoc-members:
Falloff Parameterizations Falloff Parameterizations
------------------------- -------------------------
.. autoclass:: ctml_writer.Troe .. autoclass:: Troe
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.SRI .. autoclass:: SRI
:no-undoc-members: :no-undoc-members:
.. autoclass:: ctml_writer.Lindemann .. autoclass:: Lindemann
:no-undoc-members: :no-undoc-members:

View file

@ -1,4 +0,0 @@
============================
Example: Hydrogen Combustion
============================

View file

@ -1,19 +0,0 @@
.. _sec-defining-phases:
***************
Defining Phases
***************
*A guide to Cantera's input file format*
.. toctree::
:maxdepth: 2
intro
input-files
phases
species
reactions
classes
example-combustion

View file

@ -1,483 +0,0 @@
.. py:currentmodule:: ctml_writer
.. _sec-input-files:
************************
Working with Input Files
************************
Before we can describe how to define phases, interfaces, and their components
(elements, species, and reactions), we need to go over a few points about the
mechanics of writing and processing input files.
Input File Syntax
=================
An input file consists of *entries* and *directives*, both of which have a
syntax much like functions. An entry defines an object---for example, a
reaction, or a species, or a phase. A directive sets options that affect how the
entry parameters are interpreted, such as the default unit system, or how
certain errors should be handled.
Cantera's input files follow the syntax rules for Python, so if you're familiar
with Python syntax you already understand many of the details and can probably
skip ahead to :ref:`sec-dimensions`.
Entries have fields that can be assigned values. A species entry is shown below
that has fields name and atoms (plus several others)::
species(name='C60', atoms='C:60')
Most entries have some fields that are required; these must be assigned values,
or else processing of the file will abort and an error message will be
printed. Other fields may be optional, and take default values if not assigned.
An entry may be either a *top-level entry* or an *embedded entry*. Top-level
entries specify a phase, an interface, an element, a species, or a reaction, and
begin in the first (leftmost) column. Embedded entries specify a model, or a
group of parameters for a top-level entry, and are usually embedded in a field
of another entry.
The fields of an entry are specified in the form ``<field_name> = <value>``, and may
be listed on one line, or extend across several. For example, two entries for
graphite are shown below. The first is compact::
stoichiometric_solid(name='graphite', species='C(gr)', elements='C', density=(2.2, 'g/cm3')))
and the second is formatted to be easier to read::
stoichiometric_solid(
name = 'graphite',
elements = 'C',
species = 'C(gr)',
density = (2.2, 'g/cm3')
)
Both are completely equivalent.
The species ``C(gr)`` that appears in the definition of the graphite phase is
also defined by a top-level entry. If the heat capacity of graphite is
approximated as constant, then the following definition could be used::
species(name='C(gr)',
atoms='C:1',
thermo=const_cp(t0=298.15,
h0=0.0,
s0=(5.6, 'J/mol/K'), # NIST
cp0=(8.43, 'J/mol/K'))) # Taylor and Groot (1980)
Note that the thermo field is assigned an embedded entry of type
:class:`const_cp`. Entries are stored as they are encountered when the file is
read, and only processed once the end of the file has been reached. Therefore,
the order in which they appear is unimportant.
Comments
--------
The character ``#`` is the comment character. Everything to the right of this
character on a line is ignored::
# set the default units
units(length = 'cm', # use centimeters for length
quantity = 'mol') # use moles for quantity
Strings
-------
Strings may be enclosed in single quotes or double quotes, but they must
match. To create a string containing single quotes, enclose it in double quotes,
and vice versa. If you want to create a string to extend over multiple lines,
enclose it in triple double quotes.
Strings may be enclosed in single quotes or double quotes, but they must
match. To create a string containing single quotes, enclose it in double quotes,
and vice versa. If you want to create a string to extend over multiple lines,
enclose it in triple quotes::
string1 = 'A string.'
string2 = "Also a 'string'"
string3 = """This is
a
string too."""
The multi-line form is useful when specifying a phase containing a large number
of species::
species = """ H2 H O O2 OH H2O HO2 H2O2 C CH
CH2 CH2(S) CH3 CH4 CO CO2 HCO CH2O CH2OH CH3O
CH3OH C2H C2H2 C2H3 C2H4 C2H5 C2H6 HCCO CH2CO HCCOH
N NH NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """
Sequences
---------
A sequence of multiple items is specified by separating the items by commas and
enclosing them in square brackets or parentheses. The individual items can have
any type---strings, integers, floating-point numbers (or even entries or other
lists). Square brackets are often preferred, since parentheses are also used for
other purposes in the input file, but either can be used::
s0 = (3.5, 'J/mol/K') # these are
s0 = [3.5, 'J/mol/K'] # equivalent
Variables
---------
Another way to specify the species C(gr) is shown here::
graphite_thermo = const_cp(t0=298.15,
h0=0.0,
s0=(5.6, 'J/mol/K'), # NIST
cp0=(8.43, 'J/mol/K')) # Taylor and Groot (1980)
species(name='C(gr)', atoms='C:1', thermo=graphite_thermo)
In this form, the ``const_cp`` entry is stored in a variable, instead of being
directly embedded within the species entry. The *thermo* field is assigned this
variable.
Variables can also be used for any other parameter type. For example, if you are
defining several phases in the file, and you want to set them all to the same
initial pressure, you could define a pressure variable::
P_initial = (2.0, 'atm')
and then set the pressure field in each embedded state entry to this variable.
Omitting Field Names
--------------------
Field names may be omitted if the values are entered in the order specified in
the entry declaration. (Entry declarations are the text printed on a colored
background in the following chapters.) It is also possible to omit only some of
the field names, as long as these fields are listed first, in order, before any
named fields.
For example, The first four entries below are equivalent, while the last two are
incorrect and would generate an error when processed::
element(symbol="Ar", atomic_mass=39.948) # OK
element(atomic_mass=39.948, symbol='Ar') # OK
element('Ar', atomic_mass=39.948) # OK
element("Ar", 39.948) # OK
element(39.948, "Ar") # error
element(symbol="Ar", 39.948) # error
.. _sec-dimensions:
Dimensional Values
==================
Many fields have numerical values that represent dimensional quantities---a
pressure, or a density, for example. If these are entered without specifying the
units, the default units (set by the :class:`units` directive described in
:ref:`sec-default-units`) will be used. However, it is also possible to specify
the units for each individual dimensional quantity (unless stated
otherwise). All that is required is to group the value in parentheses or square
brackets with a string specifying the units::
pressure = 1.0e5 # default is Pascals
pressure = (1.0, 'bar') # this is equivalent
density = (4.0, 'g/cm3')
density = 4000.0 # kg/m3
Compound unit strings may be used, as long as a few rules are followed:
1. Units in the denominator follow ``/``.
2. Units in the numerator follow ``-``, except for the first one.
3. Numerical exponents follow the unit string without a ``^`` character, and must
be in the range 2--6. Negative values are not allowed.
Examples of compound units::
A = (1.0e20, 'cm6/mol2/s') # OK
h = (6.626e-34, 'J-s') # OK
density = (3.0, 'g/cm3') # OK
A = (1.0e20, 'cm^6/mol/s') # error (^)
A = (1.0e20, 'cm6/mol2-s') # error ('s' should be in denominator)
density = (3.0, 'g-cm-3') # error (negative exponent)
.. _sec-default-units:
Setting the Default Units
-------------------------
The default unit system may be set with the :func:`units` directive. Note
that unit conversions are not done until the entire file has been read. Only one
units directive should be present in a file, and the defaults it specifies apply
to the entire file. If the file does not contain a units directive, the default
units are meters, kilograms, kilomoles, and seconds.
Shown below are two equivalent ways of specifying the site density for an
interface. In the first version, the site density is specified without a units
string, and so its units are constructed from the default units for quantity and
length, which are set with a units directive::
units(length = 'cm', quantity = 'molec')
interface(name = 'Si-100',
site_density = 1.0e15, # molecules/cm2 (default units)
...)
The second version uses a different default unit system, but overrides the
default units by specifying an explicit units string for the site density::
units(length = 'cm', quantity = 'mol')
interface(name = 'Si-100',
site_density = (1.0e15, 'molec/cm2') # override default units
...)
The second version is equivalent to the first, but would be very different if
the units of the site density were not specified!
The *length*, *quantity* and *time* units are used to construct the units for
reaction pre-exponential factors. The *energy* units are used for molar
thermodynamic properties, in combination with the units for *quantity*.
Since activation energies are often specified in units other than those used for
thermodynamic properties, a separate field is devoted to the default units for
activation energies::
units(length = 'cm', quantity = 'mol', act_energy = 'kcal/mol')
kf = Arrhenius(A = 1.0e14, b = 0.0, E = 54.0) # E is 54 kcal/mol
See :func:`units` for the declaration of the units directive.
Recognized Units
----------------
Cantera recognizes the following units in various contexts:
=========== ==============
field allowed values
=========== ==============
length ``'cm', 'm', 'mm'``
quantity ``'mol', 'kmol', 'molec'``
time ``'s', 'min', 'hr', 'ms'``
energy ``'J', 'kJ', 'cal', 'kcal'``
act_energy ``'kJ/mol', 'J/mol', 'J/kmol', 'kcal/mol', 'cal/mol', 'eV', 'K'``
pressure ``'Pa', 'atm', 'bar'``
=========== ==============
Processing Input Files
======================
A Two-step Process
------------------
From the point of view of the user, it appears that a Cantera application that
imports a phase definition reads the input file, and uses the information there
to construct the object representing the phase or interface in the
application. While this is the net effect, it is actually a two-step
process. When a function like importPhase is called to import a phase definition
from a file, a preprocessor runs automatically to read the input file and create
a data file that contains the same information but in an XML-based format called
CTML. After the preprocessor finishes, Cantera imports the phase definition from
the CTML data file.
The CTML file is saved in the same directory as the input file, and has the same
name but with the extension changed to ``.xml``. If the input file has the name
``propane.cti``, for example, then the CTML file will be placed in the same
directory with name ``propane.xml``. If you like, once the CTML file has been
created, you can specify it rather than the ``.cti`` input file in calls to
importPhase (or similar functions). This is slightly faster, since the
preprocessing step can be skipped. It also allows Cantera simulations to be run
on systems that do not have Python, which Cantera uses in the preprocessing step
but does not require to read CTML files.
Two File Formats
----------------
Why two file formats? There are several reasons. XML is a widely-used standard
for data files, and it is designed to be relatively easy to parse. This makes it
possible for other applications to use Cantera CTML data files, without
requiring the substantial chemical knowledge that would be required to use .cti
files. For example, "web services" (small applications that run remotely over a
network) are often designed to accept XML input data over the network, perform a
calculation, and send the output in XML back across the network. Supporting an
XML-based data file format facilitates using Cantera in web services or other
network computing applications.
The difference between the high-level description in a .cti input file and the
lower-level description in the CTML file may be illustrated by how reactions are
handled. In the input file, the reaction stoichiometry and its reversibility or
irreversibility are determined from the reaction equation. For example::
O + HCCO <=> H + 2 CO
specifies a reversible reaction between an oxygen atom and the ketenyl radical
HCCO to produce one hydrogen atom and two carbon monoxide molecules. If ``<=>``
were replaced with ``=>``, then it would specify that the reaction should be
treated as irreversible.
Of course, this convention is not spelled out in the input file---the parser
simply has to know it, and has to also know that a "reactant" appears on the
left side of the equation, a "product" on the right, that the optional number in
front of a species name is its stoichiometric coefficient (but if missing the
value is one), etc. The preprocessor does know all this, but we cannot expect
the same level of knowledge of chemical conventions by a generic XML parser.
Therefore, in the CTML file, reactions are explicitly specified to be reversible
or irreversible, and the reactants and products are explicitly listed with their
stoichiometric coefficients. The XML file is, in a sense, a "dumbed-down"
version of the input file, spelling out explicitly things that are only implied
in the input file syntax, so that "dumb" (i.e., easy to write) parsers can be
used to read the data with minimal risk of misinterpretation.
The reaction definition::
reaction( "O + HCCO <=> H + 2 CO", [1.00000E+14, 0, 0])
in the input file is translated by the preprocessor to the following CTML text:
.. code-block:: xml
<reaction id="0028" reversible="yes">
<equation>O + HCCO [=] H + 2 CO</equation>
<rateCoeff>
<Arrhenius>
<A units="cm3/mol/s"> 1.000000E+14</A>
<b>0</b>
<E units="cal/mol">0.000000</E>
</Arrhenius>
</rateCoeff>
<reactants>HCCO:1 O:1</reactants>
<products>H:1 CO:2</products>
</reaction>
The CTML version is much more verbose, and would be much more tedious to write
by hand, but is much easier to parse, particularly since it is not necessary to
write a custom parser---virtually any standard XML parser, of which there are
many, can be used to read the CTML data.
So in general files that are easy for knowledgable users (you) to write are more
difficult for machines to parse, because they make use of high-level
application-specific knowledge and conventions to simplify the
notation. Conversely, files that are designed to be easily parsed are tedious to
write because so much has to be spelled out explicitly. A natural solution is to
use two formats, one designed for writing by humans, the other for reading by
machines, and provide a preprocessor to convert the human-friendly format to the
machine-friendly one.
Preprocessor Intenals: the ``ctml_writer`` Module
-------------------------------------------------
If you are interested in seeing the internals of how the preprocessing works,
take a look at file ``ctml_writer.py`` in the Cantera Python package. Or simply
start Python, and type::
>>> from Cantera import ctml_writer
>>> help(ctml_writer)
The ``ctml_writer.py`` module can also be run as a script to convert input .cti
files to CTML. For example, if you have an input file ``phasedefs.cti``, then
simply type at the command line::
python ctml_writer.py phasedefs.cti
to create CTML file ``phasedefs.xml``.
Of course, most of the time creation of the CTML file will happen behind the
scenes, and you will not need to be concerned with CTML files at all.
Error Handling
==============
During processing of an input file, errors may be encountered. These could be
syntax errors, or could be ones that are flagged as errors by Cantera due to
some apparent inconsistency in the data---an unphysical value, a species that
contains an undeclared element, a reaction that contains an undeclared species,
missing species or element definitions, multiple definitions of elements,
species, or reactions, and so on.
Syntax Errors
-------------
Syntax errors are caught by the Python preprocessor, not by Cantera, and must be
corrected before proceeding further. Python prints a "traceback" that allows
you to find the line that contains the error. For example, consider the
following input file, which is intended to create a gas with the species and
reactions of GRI-Mech 3.0, but has a misspelled the field name ``reactions``::
ideal_gas(name = 'gas',
elements = 'H O',
species = 'gri30: all',
reactionss = 'gri30: all')
When this definition is imported into an application, an error message like the
following would be printed to the screen, and execution of the program or script
would terminate. ::
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/some/path/Cantera/importFromFile.py", line 18, in importPhase
return importPhases(file, [name], loglevel, debug)[0]
File "/some/path/Cantera/importFromFile.py", line 25, in importPhases
s.append(solution.Solution(src=file,id=nm,loglevel=loglevel,debug=debug))
File "/some/path/solution.py", line 39, in __init__
preprocess = 1, debug = debug)
File "/some/path/Cantera/XML.py", line 35, in __init__
self._xml_id = _cantera.xml_get_XML_File(src, debug)
cantera.error:
************************************************
Cantera Error!
************************************************
Procedure: ct2ctml
Error: Error converting input file "./gas.cti" to CTML.
Python command was: '/usr/bin/python'
The exit code was: 4
-------------- start of converter log --------------
TypeError on line 4 of './gas.cti':
__init__() got an unexpected keyword argument 'reactionss'
| Line |
| 1 | ideal_gas(name = 'gas',
| 2 | elements = 'H O',
| 3 | species = 'gri30: all',
> 4 > reactionss = 'gri30: all')
| 5 |
--------------- end of converter log ---------------
The top part of the error message shows the chain of functions that were called
before the error was encountered. For the most part, these are internal Cantera
functions not of direct concern here. The relevant part of this error message is
the part starting with the "Cantera Error" heading, and specifically the
contents of the *converter log* section. This message says that that on line 4
of ``gas.cti``, the the keyword argument ``reactionss`` was not
recognized. Seeing this message, it is clear that the problem is that
*reactions* is misspelled.
Cantera Errors
--------------
Now let's consider the other class of errors---ones that Cantera, not Python,
detects. Continuing the example above, suppose that the misspelling is
corrected, and the input file processed again. Again an error message results,
but this time it is from Cantera::
cantera.error:
Procedure: installSpecies
Error: species C contains undeclared element C
The problem is that the phase definition specifies that all species are to be
imported from dataset gri30, but only the elements H and O are declared. The
gri30 datset contains species composed of the elements H, O, C, N, and Ar. If
the definition is modified to declare these additional elements::
ideal_gas(name = 'gas',
elements = 'H O C N Ar',
species = 'gri30: all',
reactions = 'gri30: all')
it may be imported successfully.
Errors of this type do not have to be fatal, as long as you tell Cantera how you
want to handle them. You can, for example, instruct Cantera to quitely skip
importing any species that contain undeclared elements, instead of flagging them
as errors. You can also specify that reactions containing undeclared species
(also usually an error) should be skipped. This allows you to very easily
extract a portion of a large reaction mechanism, as described in :ref:`sec-phase-options`.

View file

@ -1,40 +0,0 @@
************
Introduction
************
Virtually every Cantera simulation involves one or more phases of
matter. Depending on the calculation being performed, it may be necessary to
evaluate thermodynamic properties, transport properties, and/or homogeneous
reaction rates for the phase(s) present. In problems with multiple phases, the
properties of the interfaces between phases, and the heterogeneous reaction
rates at these interfaces, may also be required.
Before the properties can be evaluated, each phase must be defined, meaning that
the models to use to compute its properties and reaction rates must be
specified, along with any parameters the models require. For example, a solid
phase might be defined as being incompressible, with a specified density and
composition. A gaseous phase for a combustion simulation might be defined as an
ideal gas consisting of a mixture of many species that react with one another
via a specified set of reactions.
For phases containing multiple species and reactions, a large amount of data is
required to define the phase, since the contribution of each species to the
thermodynamic and transport properties must be specified, and rate information
must be given for each reaction. While this could be done directly in an
application program, a better approach is put the phase and interface
definitions in a text file that can be read by the application, so that a given
phase model can be re-used for other simulations.
This guide describes how to write such files to define phases and interfaces for
use in Cantera simulations. Section :ref:`sec-input-files` contains a summary of
some basic rules for writing input files, a discussion of how they are
processed, and of how errors are handled. In Section :ref:`sec-phases`, we will
go over how to define phases and interfaces, including how to import species and
reactions from external files. Then in :ref:`sec-species` and
:ref:`sec-reactions`, we'll look in depth at how to specify the component parts
of phase and interface models---the elements, species, and reactions.
.. In Section ##REF##, we'll put it all together, and present some complete,
realistic example problems, showing the input file containing the definitions
of all phases and interfaces, the application code to use the input file to
solve a problem, and the resulting output.

View file

@ -1,486 +0,0 @@
.. py:currentmodule:: ctml_writer
.. _sec-phases:
***************************
Phases and their Interfaces
***************************
Now that we have covered how to write syntactically-correct input files, we can
turn our attention to the content of the file. We'll start by describing the
entries for phases of various types, and the look at how to define interfaces
between phases.
Phases
======
For each phase that appears in a problem, a corresponding entry should be
present in the input file(s). For example, suppose we want to conduct a
simulation with detailed chemistry of an idealized solid-oxide fuel cell shown
below. The problem involves three solid phases (A nickel anode, a
platinum cathode, and an oxygen-conducting yttrium-stabilized zirconia
electrolyte), and two different gas phases (a fuel mixture on the anode side,
and air on the cathode side). The problem also involves a number of interfaces
at which heterogeneous chemistry may occur---two gas-metal interfaces, two
gas-electrolyte interfaces, and two metal-electrolyte interfaces.
.. figure:: /_static/images/sofc-phases.png
:align: center
**Phases entering into a hypothetical microkinetic simulation of an
idealized solid-oxide fuel cell.**
How to carry out this fuel cell simulation is beyond the scope of this document;
we introduce it here only to give an example of the types of phases and
interfaces that might need to be defined in order to carry out a simulation. (Of
course, many simulations with Cantera only require defining a single phase.)
There are several different types of entries, corresponding to different types
of phases. Phases are created using one of the directives corresponding to an
implemented phase type:
* :class:`ideal_gas`
* :class:`stoichiometric_solid`
* :class:`stoichiometric_liquid`
* :class:`metal`
* :class:`semiconductor`
* :class:`incompressible_solid`
* :class:`lattice`
* :class:`lattice_solid`
* :class:`liquid_vapor`
* :class:`redlich_kwong`
* :class:`ideal_interface`
* :class:`edge`
These phase typese share many common features, however, and so we will begin by
discussing those aspects common to all entries for phases. The :class:`phase`
class contains the features common to all phase types.
Phase Attributes
----------------
Phase Name
^^^^^^^^^^
The ``name`` field is a string that identifies the phase. It must not contain
any whitespace characters or reserved XML characters, and must be unique within
the file among all phase definitions of any type.
Phases are referenced by name when importing them into an application program,
or when defining an interface between phases.
Declaring the Elements
^^^^^^^^^^^^^^^^^^^^^^
The elements that may be present in the phase are declared in the elements
field. This must be a string of element symbols separated by spaces and/or
commas. Each symbol must either match one listed in the database file
``elements.xml``, or else match the symbol of an element entry defined elsewhere
in the input file (See :ref:`sec-elements`).
The ``elements.xml`` database contains most elements of the periodic table, with
their natural-abundance atomic masses. It also contains a few isotopes (D, Tr),
and an "element" for an electron (E). This pseudo-element can be used to specify
the composition of charged species. Note that two-character symbols should have
an uppercase first letter, and a lowercase second letter (e.g. ``Cu``, not ``CU``).
It should be noted that the order of the element symbols in the string
determines the order in which they are stored internally by Cantera. For
example, if a phase definition specifies the elements as::
ideal_gas(name = "gasmix",
elements = "H C O N Ar",
...)
then when this definition is imported by an application, element-specific
properties will be ordered in the same way::
>>> gas = importPhase('example.cti', 'gasmix')
>>> for n in range(gas.nElements()):
... print n, gas.elementSymbol(n)
0 H
1 C
2 O
3 N
4 Ar
For some calculations, such as multi-phase chemical equilibrium, it is important
to synchronize the elements among multiple phases, so that each phase contains
the same elements with the same ordering. In such cases, simply use the same
string in the elements field for all phases.
.. _sec-defining-species:
Defining the Species
^^^^^^^^^^^^^^^^^^^^
The species in the phase are declared in the species field. They are not defined
there, only declared. Species definitions may be imported from other files, or
species may be defined locally using species entries elsewhere in the file.
If a single string of species symbols is given, then it is assumed that these
are locally defined. For each one, a corresponding species entry must be present
somewhere in the file, either preceding or following the phase entry. Note that
the string may extend over multiple lines by delimiting it with triple quotes::
# commas are optional
species = 'AR SI Si2 SiH SiH2 SiH3 SiH4'
species = 'H, O, OH, H2O, HO2, H2O2, H2, O2'
# include all species defined in this file
species = 'all'
# a multi-line species declaration
species = """ H2 H O O2 OH H2O HO2 H2O2 C CH
CH2 CH2(S) CH3 CH4 CO CO2 HCO CH2O CH2OH CH3O
CH3OH C2H C2H2 C2H3 C2H4 C2H5 C2H6 HCCO CH2CO HCCOH
N NH NH2 NH3 NNH NO NO2 N2O HNO CN
HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR C3H7
C3H8 CH2CHO CH3CHO """
If the species are imported from another file, instead of being defined locally,
then the string should begin with the file name (without extension), followed by
a colon::
# import selected species from silicon.xml
species = "silicon: SI SI2 SIH SIH2 SIH3 SIH4 SI2H6"
# import all species from silicon.xml
species = "silicon: all"
In this case, the species definitions will be taken from file ``silicon.xml``,
which must exist either in the local directory or somewhere on the Cantera
search path.
It is also possible to import species from several sources, or mix local
definitions with imported ones, by specifying a sequence of strings::
species = ["CL2 CL F F2 HF HCL", # defined in this file
"air: O2 N2 NO", # imported from 'air.xml'
"ions: CL- F-"] # imported from 'ions.xml'
Note that the strings must be separated by commas, and enclosed in square
brackets or parentheses.
.. _sec-declaring-reactions:
Declaring the Reactions
^^^^^^^^^^^^^^^^^^^^^^^
The reactions among the species are declared in the ``reactions`` field. Just as
with species, reactions may be defined locally in the file, or may be imported
from one or more other files. All reactions must only involve species that have
been declared for the phase.
Unlike species, reactions do not have a name, but do have an optional ``ID``
field. If the ``ID`` field is not assigned a value, then when the reaction entry
is read it will be assigned a four-digit string encoding the reaction number,
beginning with ``'0001'`` for the first reaction in the file, and incrementing
by one for each new reaction.
If all reactions defined locally in the input file are to be included in the
phase definition, then assign the ``reactions`` field the string ``'all'``::
reactions = 'all'
If, on the other hand, only some of the reactions defined in the file are to be
included, then a range can be specified using the reaction ``ID`` fields::
reactions = 'nox-12 to nox-24'
In determining which reactions to include, a lexical comparison of id strings is
performed. This means, for example, that ``'nox-8'`` is greater than
``'nox-24'``. (If it is rewritten ``'nox-08'``, however, then it would be lexically
less than ``'nox-24'``.)
Just as described above for species, reactions can be imported from another
file, and reactions may be imported from several sources. Examples::
# import all reactions defined in this file
reactions = "all"
# import all reactions defined in rxns.xml
reactions = "rxns: all"
# import reactions 1-14 in rxns.xml
reactions = "rxns: 0001 to 0014"
# import reactions from several sources
reactions = ["all", # all local reactions
"gas: all", # all reactions in gas.xml
"nox: n005 to n008"] # reactions 5 to 8 in nox.xml
The Kinetics Model
^^^^^^^^^^^^^^^^^^
A *kinetics model* is a set of equations to use to compute reaction rates. In
most cases, each type of phase has an associated kinetics model that is used by
default, and so the ``kinetics`` field does not need to be assigned a value. For
example, the :class:`ideal_gas` entry has an associated kinetics model called
``GasKinetics`` that implements mass-action kinetics, computes reverse rates
from thermochemistry for reversible reactions, and provides various
pressure-independent and pressure-dependent reaction types. Other models could
be implemented, and this field would then be used to select the desired
model. For now, the ``kinetics`` field can be safely ignored.
The Transport Model
^^^^^^^^^^^^^^^^^^^
A *transport model* is a set of equations used to compute transport
properties. For :class:`ideal_gas` phases, multiple transport models are
available; the one desired can be selected by assiging a string to this
field. See :ref:`sec-gas-transport-models` for more details.
The Initial State
^^^^^^^^^^^^^^^^^
The phase may be assigned an initial state to which it will be set when the
definition is imported into an application and an object created. This is done
by assigning field ``initial_state`` an embedded entry of type :class:`state`,
described in :ref:`sec-state-entry`.
Most of the attributes defined here are "immutable," meaning that once the
definition has been imported into an application, they cannot be changed by the
application. For example, it is not possible to change the elements or the
species. The temperature, pressure, and composition, however, are "mutable"---
they can be changed. This is why the field defining the state is called the
``initial_state``; the object in the application will be initially set to this
state, but it may be changed at any time.
.. _sec-phase-options:
Special Processing Options
^^^^^^^^^^^^^^^^^^^^^^^^^^
The options field is used to indicate how certain conditions should be handled
when importing the phase definition. The options field may be assigned a string
or a sequence of strings from the table below.
================================== ================
Option String Meaning
================================== ================
``'no_validation'`` Turn off all validation. Use when the definition
has been previously validated to speed up importing
the definition into an application. Use with caution!
``'skip_undeclared_elements'`` When importing species, skip any containing undeclared
elements, rather than flagging them as an error.
``'skip_undeclared_species'`` When importing reactions, skip any containing undeclared
species, rather than flagging them as an error.
``'skip_undeclared_third_bodies'`` When importing reactions with third body efficiencies,
ignore any efficiencies for undeclared species, rather
than flagging them as an error.
================================== ================
Using the ``options`` field, it is possible to extract a sub-mechanism from a large
reaction mechanism, as follows::
ideal_gas(name = 'hydrogen_mech',
species = 'gri30: all',
reactions = 'gri30:all',
options = ('skip_undeclared_elements',
'skip_undeclared_species'))
If we import this into Matlab, for example, we get a gas mixture containing the
8 species (out of 53 total) that contain only H and O:
.. code-block:: matlab
>> gas = importPhase('gas.cti', 'hydrogen_mech')
temperature 300 K
pressure 1237.28 Pa
density 0.001 kg/m^3
mean mol. weight 2.01588 amu
X Y
------------ ------------
H2 1.000000e+00 1.000000e+00
H 0.000000e+00 0.000000e+00
O 0.000000e+00 0.000000e+00
O2 0.000000e+00 0.000000e+00
OH 0.000000e+00 0.000000e+00
H2O 0.000000e+00 0.000000e+00
HO2 0.000000e+00 0.000000e+00
H2O2 0.000000e+00 0.000000e+00
>> eqs = reactionEqn(gas)
eqs =
'2 O + M <=> O2 + M'
'O + H + M <=> OH + M'
'O + H2 <=> H + OH'
'O + HO2 <=> OH + O2'
'O + H2O2 <=> OH + HO2'
'H + O2 + M <=> HO2 + M'
'H + 2 O2 <=> HO2 + O2'
'H + O2 + H2O <=> HO2 + H2O'
'H + O2 <=> O + OH'
'2 H + M <=> H2 + M'
'2 H + H2 <=> 2 H2'
'2 H + H2O <=> H2 + H2O'
'H + OH + M <=> H2O + M'
'H + HO2 <=> O + H2O'
'H + HO2 <=> O2 + H2'
'H + HO2 <=> 2 OH'
'H + H2O2 <=> HO2 + H2'
'H + H2O2 <=> OH + H2O'
'OH + H2 <=> H + H2O'
'2 OH (+ M) <=> H2O2 (+ M)'
'2 OH <=> O + H2O'
'OH + HO2 <=> O2 + H2O'
'OH + H2O2 <=> HO2 + H2O'
'OH + H2O2 <=> HO2 + H2O'
'2 HO2 <=> O2 + H2O2'
'2 HO2 <=> O2 + H2O2'
'OH + HO2 <=> O2 + H2O'
Ideal Gas Mixtures
------------------
Now we turn to the specific entry types for phases, beginning with
:class:`ideal_gas`.
Many combustion and CVD simulations make use of reacting ideal gas
mixtures. These can be defined using the :class:`ideal_gas` entry. The Cantera
ideal gas model allows any number of species, and any number of reactions among
them. It supports all of the options in the widely-used model described by Kee
et al. [#Kee1989]_, plus some additional options for species thermodynamic
properties and reaction rate expressions.
An example of an ideal_gas entry is shown below::
ideal_gas(name='air8',
elements='N O Ar',
species='gri30: N2 O2 N O NO NO2 N2O AR',
reactions='all',
transport='mix',
initial_state=state(temperature=500.0,
pressure=(1.0, 'atm'),
mole_fractions='N2:0.78, O2:0.21, AR:0.01'))
This entry defines an ideal gas mixture that contains 8 species, the definitions
of which are imported from dataset gri30 (file ``gri30.xml``). All reactions
defined in the file are to be included, transport properties are to be computed
using mixture rules, and the state of the gas is to be set initially to 500 K, 1
atm, and a composition that corresponds to air.
.. _sec-gas-transport-models:
Transport Models
^^^^^^^^^^^^^^^^
Two transport models are available for use with ideal gas mixtures. The first is
a multicomponent transport model that is based on the model described by
Dixon-Lewis [#dl68]_ (see also Kee et al. [#Kee2003]_). The second is a model that uses
mixture rules. To select the multicomponent model, set the transport field to
the string ``'multi'``, and to select the mixture-averaged model, set it to the
string ``'mix'``::
ideal_gas(name="gas1",
...,
transport="multi", # use multicomponent formulation
...)
ideal_gas(name="gas2",
...,
transport="mix", # use mixture-averaged formulation
...)
Stoichiometric Solid
--------------------
A :class:`stoichiometric_solid` is one that is modeled as having a precise,
fixed composition, given by the composition of the one species present. A
stoichiometric solid can be used to define a condensed phase that can
participate in heterogeneous reactions. (Of course, there cannot be homogeneous
reactions, since the composition is fixed.) ::
stoichiometric_solid(name='graphite',
elements='C',
species='C(gr)',
density=(2.2, 'g/cm3'),
initial_state=state(temperature=300.0,
pressure=(1.0, 'atm'))
Stoichiometric Liquid
---------------------
A stoichiometric liquid differs from a stoichiometric solid in only one respect:
the transport manager computes the viscosity as well as the thermal
conductivity.
Interfaces
==========
Now that we have seen how to define bulk, three-dimensional phases, we can
describe the procedure to define an interface between phases.
Cantera presently implements a simple model for an interface that treats is as a
two-dimensional ideal solution of interfacial species. There is a fixed site
density :math:`n^0`, and each site may be occupied by one of several adsorbates,
or may be empty. The chemical potential of each species is computed using the
expression for an ideal solution:
.. math::
\mu_k = \mu^0_k + \hat{R}T \log \theta_k,
where :math:`\theta_k` is the coverage of species :math:`k` on the surface. The
coverage is related to the surface concentration :math:`C_k` by
.. math::
\theta_k = \frac{C_k n_k}{n^0} ,
where :math:`n_k` is the number of sites covered or blocked by species
:math:`k`.
The entry type for this interface model is
:class:`ideal_interface`. (Additional interface models may be added to allow
non-ideal, coverage-dependent properties.)
Defining an interface is much like defining a phase. There are two new fields:
``phases`` and ``site_density``. The phases field specifies the bulk phases that
participate in the heterogeneous reactions. Although in most cases this string
will list one or two phases, no limit is placed on the number. This is
particularly useful in some electrochemical problems, where reactions take place
near the triple-phase bounday where a gas, an electrolyte, and a metal all meet.
The ``site_density`` field is the number of adsorption sites per unit area.
Another new aspect is in the embedded :class:`state` entry in the
``initial_state`` field. When specifying the initial state of an interface, the
:class:`state` entry has a field *coverages*, which can be assigned a string
specifying the initial surface species coverages::
ideal_interface(name='silicon_surface',
elements='Si H',
species='s* s-SiH3 s-H',
reactions='all',
phases='gas bulk-Si',
site_density=(1.0e15, 'molec/cm2'),
initial_state=state(temperature=1200.0,
coverages='s-H:1'))
.. _sec-state-entry:
The :class:`state` entry
========================
The initial state of either a phase or an interface may be set using an embedded
:class:`state` entry. Note that only one of (``pressure``, ``density``) may be
specified, and only one (``mole_fractions``, ``mass_fractions``, ``coverages``).
.. rubric:: References
.. [#Kee1989] R. J. Kee, F. M. Rupley, and J. A. Miller. Chemkin-II: A Fortran
chemical kinetics package for the analysis of gasphase chemical
kinetics. Technical Report SAND89-8009, Sandia National Laboratories, 1989.
.. [#dl68] G. Dixon-Lewis. Flame structure and flame reaction kinetics,
II: Transport phenomena in multicomponent systems. *Proc. Roy. Soc. A*,
307:111--135, 1968.
.. [#Kee2003] R. J. Kee, M. E. Coltrin, and P. Glarborg. *Chemically Reacting
Flow: Theory and Practice*. John Wiley and Sons, 2003.

View file

@ -1,395 +0,0 @@
.. py:currentmodule:: ctml_writer
.. _sec-reactions:
*********
Reactions
*********
Cantera supports a number of different types of reactions, including several
types of homogeneous reactions, surface reactions, and electrochemical
reactions. For each, there is a corresponding entry type. The simplest entry
type is :class:`reaction`, which can be used for any homogeneous reaction that
has a rate expression that obeys the law of mass action, with a rate coefficient
that depends only on temperature.
Common Attributes
=================
All of the entry types that define reactions share some common features. These
are described first, followed by descriptions of the individual reaction types
in the following sections.
The Reaction Equation
---------------------
The reaction equation determines the reactant and product stoichiometry. A
relatively simple parsing strategy is currently used, which assumes that all
coefficient and species symbols on either side of the equation are delimited by
spaces::
2 CH2 <=> CH + CH3 # OK
2 CH2<=>CH + CH3 # OK
2CH2 <=> CH + CH3 # error
CH2 + CH2 <=> CH + CH3 # OK
2 CH2 <=> CH+CH3 # error
The incorrect versions here would generate "undeclared species" errors and would
halt processing of the input file. In the first case, the error would be that
the species ``2CH2`` is undeclared, and in the second case it would be species
``CH+CH3``.
Whether the reaction is reversible or not is determined by the form of the
equality sign in the reaction equation. If either ``<=>`` or ``=`` is found,
then the reaction is regarded as reversible, and the reverse rate will be
computed from detailed balance. If, on the other hand, ``=>`` is found, the
reaction will be treated as irreversible.
The rate coefficient is specified with an embedded entry corresponding to the
rate coefficient type. At present, the only implemented type is the modified
Arrhenius function
.. math::
k_f(T) = A T^n \exp(-E/\hat{R}T)
which is defined with an :class:`Arrhenius` entry::
rate_coeff = Arrhenius(A=1.0e13, n=0, E=(7.3, 'kcal/mol'))
rate_coeff = Arrhenius(1.0e13, 0, (7.3, 'kcal/mol'))
As a shorthand, if the ``rate_coeff`` field is assigned a sequence of three numbers, these are assumed to be :math:`(A, n, E)` in the modified Arrhenius function::
rate_coeff = [1.0e13, 0, (7.3, 'kcal/mol')] # equivalent to above
The units of the pre-exponential factor *A* can be specified explicitly if
desired. If not specified, they will be constructed using the *quantity*, length,
and time units specified in the units directive. Since the units of *A* depend on
the reaction order, the units of each reactant concentration (different for bulk
species in solution, surface species, and pure condensed-phase species), and the
units of the rate of progress (different for homogeneous and heterogeneous
reactions), it is usually best not to specify units for *A*, in which case they
will be computed taking all of these factors into account.
Note: if :math:`n \ne 0`, then the term :math:`T^n` should have units of
:math:`K^n`, which would change the units of *A*. This is not done, however, so
the units associated with A are really the units for :math:`k_f` . One way to
formally express this is to replace :math:`T^n` by the non-dimensional quantity
:math:`[T/(1 K)]^n`.
The ID String
-------------
An optional identifying string can be entered in the ``ID`` field, which can
then be used in the ``reactions`` field of a :class:`phase` or interface entry
to identify this reaction. If omitted, the reactions are assigned ID strings as
they are read in, beginning with ``'0001'``, ``'0002'``, etc.
Note that the ID string is only used when selectively importing reactions. If
all reactions in the local file or in an external one are imported into a phase
or interface, then the reaction ``ID`` field is not used.
Options
-------
Certain conditions are normally flagged as errors by Cantera. In some cases,
they may not be errors, and the options field can be used to specify how they
should be handled.
``skip``
The ``'skip'`` option can be used to temporarily remove this reaction from
the phase or interface that imports it, just as if the reaction entry were
commented out. The advantage of using skip instead of commenting it out is
that a warning message is printed each time a phase or interface definition
tries to import it. This serves as a reminder that this reaction is not
included, which can easily be forgotten when a reaction is "temporarily"
commented out of an input file.
``duplicate``
Normally, when a reaction is imported into a phase, it is checked to see
that it is not a duplicate of another reaction already present in the phase,
and an error results if a duplicate is found. But in some cases, it may be
appropriate to include duplicate reactions, for example if a reaction can
proceed through two distinctly different pathways, each with its own rate
expression. Another case where duplicate reactions can be used is if it is
desired to implement a reaction rate coefficient of the form:
.. math::
k_f(T) = \sum_{n=1}^{N} A_n T^{b_n} exp(-E_n/\hat{R}T)
While Cantera does not provide such a form for reaction rates, it can be
implemented by defining *N* duplicate reactions, and assigning one rate
coefficient in the sum to each reaction. If the ``'duplicate'`` option is
specified, then the reaction not only *may* have a duplicate, it *must*. Any
reaction that specifies that it is a duplicate, but cannot be paired with
another reaction in the phase that qualifies as its duplicate generates an
error.
``negative_A``
If some of the terms in the above sum have negative :math:`A_n`, this scheme
fails, since Cantera normally does not allow negative pre-exponential
factors. But if there are duplicate reactions such that the total rate is
positive, then negative *A* parameters are acceptable, as long as the
``'negative_A'`` option is specified.
Reactions with Pressure-Independent Rate
========================================
The :class:`reaction` entry is used to represent homogeneous reactions with
pressure-independent rate coefficients and mass action kinetics. Examples of
reaction entries that implement some reactions in the GRI-Mech 3.0 natural gas
combustion mechanism [#Smith1997]_ are shown below::
units(length = 'cm', quantity = 'mol', act_energy = 'cal/mol')
...
reaction( "O + H2 <=> H + OH", [3.87000E+04, 2.7, 6260])
reaction( "O + HO2 <=> OH + O2", [2.00000E+13, 0.0, 0])
reaction( "O + H2O2 <=> OH + HO2", [9.63000E+06, 2.0, 4000])
reaction( "O + HCCO <=> H + 2 CO", [1.00000E+14, 0.0, 0])
reaction( "H + O2 + AR <=> HO2 + AR", [7.00000E+17, -0.8, 0])
reaction( "HO2 + C3H7 <=> O2 + C3H8", [2.55000E+10, 0.255, -943])
reaction( "HO2 + C3H7 => OH + C2H5 + CH2O", [2.41000E+13, 0.0, 0])
Three-Body Reactions
====================
A three-body reaction is a gas-phase reaction of the form:
.. math::
{\rm A + B} \rightleftharpoons {\rm AB + M}
Here M is an unspecified collision partner that carries away excess energy to
stabilize the AB molecule (forward direction) or supplies energy to break the AB
bond (reverse direction).
Different species may be more or less effective in acting as the collision partner. A species that is much lighter than
A and B may not be able to transfer much of its kinetic energy, and so would be inefficient as a collision partner. On
the other hand, a species with a transition from its ground state that is nearly resonant with one in the AB* activated
complex may be much more effective at exchanging energy than would otherwise be expected.
These effects can be accounted for by defining a collision efficiency
:math:`\epsilon` for each species, defined such that the forward reaction rate is
.. math::
k_f(T)[A][B][M]
where
.. math::
[M] = \sum_k \epsilon_k C_k
where :math:`C_k` is the concentration of species *k*. Since any constant
collision efficiency can be absorbed into the rate coefficient :math:`k_f(T)`, the
default collision efficiency is 1.0.
A three-body reaction may be defined using the :class:`three_body_reaction` entry. The equation string for a three-body
reaction must contain an ``'M'`` or ``'m'`` on both the reactant and product sides of the equation.
Some examples from GRI-Mech 3.0 are shown below::
three_body_reaction( "2 O + M <=> O2 + M", [1.20000E+17, -1, 0],
" AR:0.83 C2H6:3 CH4:2 CO:1.75 CO2:3.6 H2:2.4 H2O:15.4 ")
three_body_reaction( "O + H + M <=> OH + M", [5.00000E+17, -1, 0],
efficiencies = " AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6 ")
three_body_reaction(
equation = "H + OH + M <=> H2O + M",
rate_coeff = [2.20000E+22, -2, 0],
efficiencies = " AR:0.38 C2H6:3 CH4:2 H2:0.73 H2O:3.65 "
)
As always, the field names are optional *if* the field values are entered in the
declaration order.
Falloff Reactions
=================
A *falloff reaction* is one that has a rate that is first-order in [M] at low
pressure, like a three-body reaction, but becomes zero-order in [M] as [M]
increases. Dissociation / association reactions of polyatomic molecules often
exhibit this behavior.
The simplest expression for the rate coefficient for a falloff reaction is the
Lindemann form [#Lindemann1922]_:
.. math::
k_f(T, [{\rm M}]) = \frac{k_0[{\rm M}]}{1 + \frac{k_0{\rm [M]}}{k_\infty}}
In the low-pressure limit, this approaches :math:`k0{\rm [M]}`, and in the
high-pressure limit it approaches :math:`k_\infty`.
Defining the non-dimensional reduced pressure:
.. math::
P_r = \frac{k_0 {\rm [M]}}{k_\infty}
The rate constant may be written as
.. math::
k_f(T, P_r) = k_\infty \left(\frac{P_r}{1 + P_r}\right)
More accurate models for unimolecular processes lead to other, more complex,
forms for the dependence on reduced pressure. These can be accounted for by
multiplying the Lindemann expression by a function :math:`F(T, P_r)`:
.. math::
k_f(T, P_r) = k_\infty \left(\frac{P_r}{1 + P_r}\right) F(T, P_r)
This expression is used to compute the rate coefficient for falloff
reactions. The function :math:`F(T, P_r)` is the *falloff function*, and is
specified by assigning an embedded entry to the ``falloff`` field.
The Troe Falloff Function
-------------------------
A widely-used falloff function is the one proposed by Gilbert et
al. [#Gilbert1983]_:
.. math::
\log_{10} F(T, P_r) = \frac{\log_{10} F_{cent}(T)}{1 + f_1^2}
F_{cent}(T) = (1-A) \exp(-T/T_3) + A \exp (-T/T_1) + \exp(-T_2/T)
f_1 = (\log_{10} P_r + C) / (N - 0.14 (\log_{10} P_r + C))
C = -0.4 - 0.67\; \log_{10} F_{cent}
N = 0.75 - 1.27\; \log_{10} F_{cent}
The :class:`Troe` directive requires specifying the first three parameters
:math:`(A, T_3, T_1)`. The fourth parameter, :math:`T_2`, is optional, defaulting to 0.0.
.. _sec-sri-falloff:
The SRI Falloff Function
------------------------
This falloff function is based on the one originally due to Stewart et
al. [#Stewart1989]_, which required three parameters :math:`(a, b, c)`. Kee et
al. [#Kee1989]_ generalized this function slightly by adding two more parameters
:math:`(d, e)`. (The original form corresponds to :math:`d = 1, e = 0`.) Cantera
supports the extended 5-parameter form, given by:
.. math::
F(T, P_r) = d \bigl[a \exp(-b/T) + \exp(-T/c)\bigr]^{1/(1+\log_{10}^2 P_r )} T^e
In keeping with the nomenclature of [Kee et al., 1989], we will refer to this as
the "SRI" falloff function. It is implemented by the :class:`SRI` directive.
.. :: NOTE: "definingphases.pdf" contains documentation for the Wang-Frenklach falloff
function, which has a C++ implementation, but doesn't appear to be implemented
in the CTI or CTML parsers.
Pressure-Dependent Arrhenius Rate Expressions (P-Log)
=====================================================
The :class:`pdep_arrhenius` class represents pressure-dependent reaction rates
by logarithmically interpolating between Arrhenius rate expressions at various
pressures. Given two rate expressions at two specific pressures:
.. math::
P_1: k_1(T) = A_1 T^{b_1} e^{E_1 / RT}
P_2: k_2(T) = A_2 T^{b_2} e^{E_2 / RT}
The rate at an intermediate pressure :math:`P_1 < P < P_2` is computed as
.. math::
\log k(T,P) = \log k_1(T) + \bigl(\log k_2(T) - \log k_1(T)\bigr)
\frac{\log P - \log P_1}{\log P_2 - \log P_1}
Multiple rate expressions may be given at the same pressure, in which case the
rate used in the interpolation formula is the sum of all the rates given at that
pressure. For pressures outside the given range, the rate expression at the nearest
pressure is used.
An example of a reaction specified in this format::
pdep_arrhenius('R1 + R2 <=> P1 + P2',
[(0.001315789, 'atm'), 2.440000e+10, 1.04, 3980.0],
[(0.039473684, 'atm'), 3.890000e+10, 0.989, 4114.0],
[(1.0, 'atm'), 3.460000e+12, 0.442, 5463.0],
[(10.0, 'atm'), 1.720000e+14, -0.01, 7134.0],
[(100.0, 'atm'), -7.410000e+30, -5.54, 12108.0],
[(100.0, 'atm'), 1.900000e+15, -0.29, 8306.0])
The first argument is the reaction equation. Each subsequent argument is a
sequence of four elements specifying a pressure and the Arrhenius parameters at
that pressure.
Chebyshev Reaction Rate Expressions
===================================
Class :class:`chebyshev` represents a phenomenological rate coefficient
:math:`k(T,P)` in terms of a bivariate Chebyshev polynomial. The rate constant
can be written as:
.. math:: \log k(T,P) = \sum_{t=1}^{N_T} \sum_{p=1}^{N_P} \alpha_{tp}
\phi_t(\tilde{T}) \phi_p(\tilde{P})
where :math:`\alpha_{tp}` are the constants defining the rate, :math:`\phi_n(x)`
is the Chebyshev polynomial of the first kind of degree :math:`n` evaluated at
:math:`x`, and
.. math::
\tilde{T} \equiv \frac{2T^{-1} - T_\mathrm{min}^{-1} - T_\mathrm{max}^{-1}}
{T_\mathrm{max}^{-1} - T_\mathrm{min}^{-1}}
\tilde{P} \equiv \frac{2 \log P - \log P_\mathrm{min} - \log P_\mathrm{max}}
{\log P_\mathrm{max} - \log P_\mathrm{min}}
are reduced temperature and reduced pressures which map the ranges
:math:`(T_\mathrm{min}, T_\mathrm{max})` and :math:`(P_\mathrm{min},
P_\mathrm{max})` to :math:`(-1, 1)`.
A Chebyshev rate expression is specified in terms of the coefficient matrix
:math:`\alpha` and the temperature and pressure ranges. An example of a
Chebyshev rate expression where :math:`N_T = 6` and :math:`N_P = 4` is::
chebyshev_reaction('R1 + R2 <=> P1 + P2',
Tmin=290.0, Tmax=3000.0,
Pmin=(0.001, 'atm'), Pmax=(100.0, 'atm'),
coeffs=[[-1.44280e+01, 2.59970e-01, -2.24320e-02, -2.78700e-03],
[ 2.20630e+01, 4.88090e-01, -3.96430e-02, -5.48110e-03],
[-2.32940e-01, 4.01900e-01, -2.60730e-02, -5.04860e-03],
[-2.93660e-01, 2.85680e-01, -9.33730e-03, -4.01020e-03],
[-2.26210e-01, 1.69190e-01, 4.85810e-03, -2.38030e-03],
[-1.43220e-01, 7.71110e-02, 1.27080e-02, -6.41540e-04]])
Note that the Chebyshev polynomials are not defined outside the interval
:math:`(-1,1)`, and therefore extrapolation of rates outside the range of
temperatures and pressure for which they are defined is strongly discouraged.
.. rubric:: References
.. [#Gilbert1983] R. G. Gilbert, K. Luther, and
J. Troe. *Ber. Bunsenges. Phys. Chem.*, 87:169, 1983.
.. [#Lindemann1922] F. Lindemann. *Trans. Faraday Soc.*, 17:598, 1922.
.. [#Smith1997] Gregory P. Smith, David M. Golden, Michael Frenklach, Nigel
W. Moriarty, Boris Eiteneer, Mikhail Goldenberg, C. Thomas Bowman, Ronald
K. Hanson, Soonho Song, William C. Gardiner, Jr., Vitali V. Lissianski, , and
Zhiwei Qin. GRI-Mech version 3.0, 1997. see
http://www.me.berkeley.edu/gri_mech.
.. [#Stewart1989] P. H. Stewart, C. W. Larson, and D. Golden.
*Combustion and Flame*, 75:25, 1989.
.. [#Kee1989] R. J. Kee, F. M. Rupley, and J. A. Miller. Chemkin-II: A Fortran
chemical kinetics package for the analysis of gas-phase chemical
kinetics. Technical Report SAND89-8009, Sandia National Laboratories, 1989.

View file

@ -1,227 +0,0 @@
.. py:currentmodule:: ctml_writer
.. _sec-species:
********************
Elements and Species
********************
.. _sec-elements:
Elements
========
The element entry defines an element or an isotope of an element. Note that
these entries are not often needed, since the the database file ``elements.xml``
is searched for element definitions when importing phase and interface
definitions. An explicit element entry is needed only if an isotope not in
``elements.xml`` is required::
element(symbol='C-13',
atomic_mass=13.003354826)
element("O-!8", 17.9991603)
Species
=======
For each species, a :class:`species` entry is required. Species are defined at
the top-level of the input file---their definitions are not embedded in a phase
or interface entry.
Species Name
------------
The name field may contain embedded parentheses, ``+`` or ``-`` signs to
indicate the charge, or just about anything else that is printable and not a
reserved character in XML. Some example name specifications::
name = 'CH4'
name = 'methane'
name = 'argon_2+'
name = 'CH2(singlet)'
Elemental Composition
---------------------
The elemental composition is specified in the atoms entry, as follows::
atoms = "C:1 O:2" # CO2
atoms = "C:1, O:2" # CO2 with optional comma
atoms = "Y:1 Ba:2 Cu:3 O:6.5" # stoichiometric YBCO
atoms = "" # a surface species representing an empty site
atoms = "Ar:1 E:-2" # Ar++
For gaseous species, the elemental composition is well-defined, since the
species represent distinct molecules. For species in solid or liquid solutions,
or on surfaces, there may be several possible ways of defining the species. For
example, an aqueous species might be defined with or without including the water
molecules in the solvation cage surrounding it.
For surface species, it is possible to omit the ``atoms`` field entirely, in
which case it is composed of nothing, and represents an empty surface site. This
can also be done to represent vacancies in solids. A charged vacancy can be
defined to be composed solely of electrons::
species(name = 'ysz-oxygen-vacancy',
atoms = 'O:0, E:2',
...)
Note that an atom number of zero may be given if desired, but is completely
equivalent to omitting that element.
The number of atoms of an element must be non-negative, except for the special
"element" ``E`` that represents an electron.
Thermodynamic Properties
------------------------
The :class:`phase` and :class:`ideal_interface` entries discussed in the last
chapter implement specific models for the thermodynamic properties appropriate
for the type of phase or interface they represent. Although each one may use
different expressions to compute the properties, they all require thermodynamic
property information for the individual species. For the phase types implemented
at present, the properties needed are:
1. the molar heat capacity at constant pressure :math:`\hat{c}^0_p(T)` for a
range of temperatures and a reference pressure :math:`P_0`;
2. the molar enthalpy :math:`\hat{h}(T_0, P_0)` at :math:`P_0` and a reference
temperature :math:`T_0`;
3. the absolute molar entropy :math:`\hat{s}(T_0, P_0)` at :math:`(T_0, P_0)`.
See: :ref:`sec-thermo-models`
.. _sec-species-transport-models:
Species Transport Coefficients
------------------------------
Transport property models in general require coefficients that express the
effect of each species on the transport properties of the phase. The
``transport`` field may be assigned an embedded entry that provides
species-specific coefficients.
Currently, the only entry type is :class:`gas_transport`, which supplies
parameters needed by the ideal-gas transport property models. The field values
and their units of the :class:`gas_transport` entry are compatible with the
transport database parameters described by Kee et al. [1986]. Entries in
transport databases in the format described in their report can be used directly
in the fields of the :class:`gas_transport` entry, without requiring any unit
conversion. The numeric field values should all be entered as pure numbers, with
no attached units string.
.. _sec-thermo-models:
Thermodynamic Property Models
=============================
The entry types described in this section can be used to provide data for the
``thermo`` field of a :class:`species`. Each implements a different
*parameterization* (functional form) for the heat capacity. Note that there is
no requirement that all species in a phase use the same parameterization; each
species can use the one most appropriate to represent how the heat capacity
depends on temperature.
Currently, three entry types are implemented, all of which provide species
properties appropriate for models of ideal gas mixtures, ideal solutions, and
pure compounds. Non-ideal phase models are not yet implemented, but may be in
future releases. When they are, additional entry types may also be added that
provide species-specific coefficients required by specific non-ideal equations
of state.
The NASA Polynomial Parameterization
------------------------------------
The NASA polynomial parameterization is used to compute the species
reference-state thermodynamic properties :math:`\hat{c}^0_p(T)`,
:math:`\hat{h}^0(T)` and :math:`\hat{s}^0(T)`.
The NASA parameterization represents :math:`\hat{c}^0_p(T)` with a fourth-order
polynomial:
.. math::
\frac{c_p^0(T)}{R} = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4
\frac{h^0(T)}{RT} = a_0 + \frac{a1}{2}T + \frac{a_2}{3} T^2 +
\frac{a_3}{4} T^3 + \frac{a_4}{5} T^4 + a_5
\frac{s^0(T)}{R} = a_o \ln T + a_1 T + \frac{a_2}{2} T^2 + \frac{a_3}{3} T^3 +
\frac{a_4}{4} T^4 + a_6
Note that this is the "old" NASA polynomial form, used in the original NASA
equilibrium program and in Chemkin. It is not compatible with the form used in
the most recent version of the NASA equilibrium program, which uses 9
coefficients, not 7.
A NASA parameterization is defined by an embedded :class:`NASA` entry. Very
often, two NASA parameterizations are used for two contiguous temperature
ranges. This can be specified by assigning the ``thermo`` field of the
``species`` entry a sequence of two :class:`NASA` entries::
# use one NASA parameterization for T < 1000 K, and another for T > 1000 K.
species(name = "O2",
atoms = " O:2 ",
thermo = (
NASA( [ 200.00, 1000.00], [ 3.782456360E+00, -2.996734160E-03,
9.847302010E-06, -9.681295090E-09, 3.243728370E-12,
-1.063943560E+03, 3.657675730E+00] ),
NASA( [ 1000.00, 3500.00], [ 3.282537840E+00, 1.483087540E-03,
-7.579666690E-07, 2.094705550E-10, -2.167177940E-14,
-1.088457720E+03, 5.453231290E+00] ) ) )
The Shomate Parameterization
----------------------------
The Shomate parameterization is:
.. math::
\hat{c}_p^0(T) = A + Bt + Ct^2 + Dt^3 | \frac{E}{t^2}
\hat{h}^0(T) = At + \frac{Bt^2}{2} + \frac{Ct^3}{3} + \frac{Dt^4}{4} -
\frac{E}{t} + F
\hat{s}^0(T) = A \ln t + B t + \frac{Ct^2}{2} + \frac{Dt^3}{3} -
\frac{E}{2t^2} + G
where :math:`t = T / 1000 K`. It requires 7 coefficients A, B, C, D, E, F, and
G. This parameterization is used to represent reference-state properties in the
`NIST Chemistry WebBook <http://webbook.nist.gov/chemistry>`_. The values of the
coefficients A through G should be entered precisely as shown there, with no
units attached. Unit conversions to SI will be handled internally.
Example usage of the :class:`shomate` directive::
# use a single Shomate parameterization.
species(name = "O2",
atoms = " O:2 ",
thermo = Shomate( [298.0, 6000.0],
[29.659, 6.137261, -1.186521, 0.09578, -0.219663,
-9.861391, 237.948] ) )
Constant Heat Capacity
----------------------
In some cases, species properties may only be required at a single temperature
or over a narrow temperature range. In such cases, the heat capacity can be
approximated as constant, and simpler expressions used for the thermodynamic
properties. The :class:`const_cp` parameterization computes the properties as
follows:
.. math::
\hat{c}_p^0(T) = \hat{c}_p^0(T_0)
\hat{h}^0(T) = \hat{h}^0(T_0) + \hat{c}_p^0\cdot(T-T_0)
\hat{s}^0(T) = \hat{s}^0(T_0) + \hat{c}_p^0 \ln (T/T_0)
The parameterization uses four constants: :math:`T_0, \hat{c}_p^0(T_0),
\hat{h}^0(T_0), \hat{s}^0(T)`.
Example::
thermo = const_cp( t0 = 1200.0,
h0 = (-5.0, 'kcal/mol') )
.. See ##REF## for more examples of use of this parameterization.

View file

@ -0,0 +1,19 @@
@import url('./alabaster.css');
dl.method, dl.attribute, dl.staticmethod, dl.classmethod {
border-top: 1px solid #aaa;
padding-top: 4px;
}
dl.class, dl.function {
border-top: 2px solid #888;
padding-top: 4px;
}
.nav-link {
text-decoration: none !important;
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol" !important;
font-size: 1rem !important;
}
#logo { width: 250px; }

View file

@ -0,0 +1,3 @@
[theme]
inherit = alabaster
stylesheet = cantera.css

View file

@ -1,117 +0,0 @@
******************************
Compiling Cantera C++ Programs
******************************
In general, it should be possible to use Cantera with any build system by
specifying the appropriate header and library paths, and specifying the required
libraries when linking. It is also necessary to specify the paths for libraries
used by Cantera, e.g. Sundials, BLAS, and LAPACK.
pkg-config
==========
On systems where the ``pkg-config`` program is installed, it can be used to
determine the correct compiler and linker flags for use with Cantera. For
example:
.. code-block:: bash
g++ myProgram.cpp -o myProgram $(pkg-config --cflags --libs cantera)
It can also be used to populate variables in a Makefile:
.. code-block:: make
CFLAGS += $(shell pkg-config --cflags cantera)
LIBS += $(shell pkg-config --libs cantera)
Or in an SConstruct file::
env.ParseConfig("pkg-config --cflags --libs cantera")
Note that ``pkg-config`` will work only if it can find the ``cantera.pc``
file. If Cantera's libraries are not installed in a standard location such as
``/usr/lib`` or ``/usr/local/lib``, you may need to set the ``PKG_CONFIG_PATH``
environment variable appropriately before using ``pkg-config``.
SCons
=====
SCons is a multi-platform, Python-based build system. It is the build system
used to compile Cantera. The description of how to build a project is contained
in a file named ``SConstruct``. The ``SConstruct`` file is actually a Python
script, which makes it very straightforward to add functionality to a
SCons-based build system.
A typical ``SConstruct`` file for compiling a program that uses Cantera might
look like this::
env = Environment()
env.Append(CCFLAGS='-g',
CPPPATH=['/usr/local/cantera/include',
'/usr/local/sundials/include'],
LIBS=['cantera', 'sundials_cvodes', 'sundials_ida',
'sundials_nvecserial', 'lapack', 'blas'],
LIBPATH=['/usr/local/cantera/lib',
'/usr/local/sundials/lib'],
LINKFLAGS=['-g', '-pthread'])
sample = env.Program('sample', 'sample.cpp')
Default(sample)
This script establishes what SCons refers to as a "construction environment"
named ``env``, and sets the header (``CPPPATH``) and library (``LIBPATH``) paths
to include the directories containing the Cantera headers and libraries, as well
as libraries that Cantera depends on, such as Sundials, BLAS, and LAPACK. Then,
a program named ``sample`` is compiled using the single source file
``sample.cpp``.
Several other example ``SConstruct`` files are included with the C++ examples
contained in the ``samples`` subdirectory of the Cantera installation directory.
For more information on SCons, see the `SCons Wiki <http://scons.org/wiki/>`_
and the `SCons homepage <http://www.scons.org>`_.
Make
====
Cantera is distributed with an "include Makefile" that can be used with
Make-based build systems. This file ``Cantera.mak`` is located in the
``samples`` subdirectory of the Cantera installation directory. To use it, add a
line referincing this file to the top of your Makefile::
include path/to/Cantera.mak
The path specified should be the relative path from the ``Makefile`` to
``Cantera.mak``. This file defines several variables which can be used in your
Makefile. The following is an example ``Makefile`` that uses the definitions
contained in ``Cantera.mak``:
.. code-block:: makefile
include ../../Cantera.mak
CC=gcc
CXX=g++
RM=rm -f
CCFLAGS=-g
CPPFLAGS=$(CANTERA_INCLUDES)
LDFLAGS=
LDLIBS=$(CANTERA_LIBS)
SRCS=sample.cpp
OBJS=$(subst .cpp,.o,$(SRCS))
all: sample
kinetics1: $(OBJS)
$(CXX) $(LDFLAGS) -o sample $(OBJS) $(LDLIBS)
clean:
$(RM) $(OBJS)
dist-clean: clean
$(RM) *~

View file

@ -1,38 +0,0 @@
#include "cantera/thermo.h"
using namespace Cantera;
// The actual code is put into a function that
// can be called from the main program.
void simple_demo()
{
// Create a new phase
ThermoPhase* gas = newPhase("h2o2.cti","ohmech");
// Set its state by specifying T (500 K) P (2 atm) and the mole
// fractions. Note that the mole fractions do not need to sum to
// 1.0 - they will be normalized internally. Also, the values for
// any unspecified species will be set to zero.
gas->setState_TPX(500.0, 2.0*OneAtm, "H2O:1.0, H2:8.0, AR:1.0");
// Print a summary report of the state of the gas
std::cout << gas->report() << std::endl;
// Clean up
delete gas;
}
// the main program just calls function simple_demo within
// a 'try' block, and catches CanteraError exceptions that
// might be thrown
int main()
{
try {
simple_demo();
} catch (CanteraError& err) {
std::cout << err.what() << std::endl;
}
}

View file

@ -1,23 +0,0 @@
#include "cantera/equilibrium.h"
#include "cantera/thermo.h"
using namespace Cantera;
void equil_demo()
{
ThermoPhase* gas = newPhase("h2o2.cti","ohmech");
gas->setState_TPX(1500.0, 2.0*OneAtm, "O2:1.0, H2:3.0, AR:1.0");
equilibrate(*gas, "TP");
std::cout << gas->report() << std::endl;
}
int main()
{
try {
equil_demo();
} catch (CanteraError& err) {
std::cout << err.what() << std::endl;
}
}

View file

@ -1,63 +0,0 @@
************************************
Chemical Equilibrium Example Program
************************************
In the program below, the `equilibrate` function is called to set the gas to a
state of chemical equilibrium, holding the temperature and pressure fixed. This
function is declared in the `equilibrium.h` header file.
.. literalinclude:: demoequil.cpp
:language: c++
The program output is::
temperature 1500 K
pressure 202650 Pa
density 0.316828 kg/m^3
mean mol. weight 19.4985 amu
1 kg 1 kmol
----------- ------------
enthalpy -4.17903e+06 -8.149e+07 J
internal energy -4.81866e+06 -9.396e+07 J
entropy 11283.3 2.2e+05 J/K
Gibbs function -2.1104e+07 -4.115e+08 J
heat capacity c_p 1893.06 3.691e+04 J/K
heat capacity c_v 1466.65 2.86e+04 J/K
X Y Chem. Pot. / RT
------------- ------------ ------------
H2 0.249996 0.0258462 -19.2954
H 6.22521e-06 3.218e-07 -9.64768
O 7.66933e-12 6.29302e-12 -26.3767
O2 7.1586e-12 1.17479e-11 -52.7533
OH 3.55353e-07 3.09952e-07 -36.0243
H2O 0.499998 0.461963 -45.672
HO2 7.30338e-15 1.2363e-14 -62.401
H2O2 3.95781e-13 6.90429e-13 -72.0487
AR 0.249999 0.51219 -21.3391
How can we tell that this is really a state of chemical equilibrium? Well, by
applying the equation of reaction equilibrium to formation reactions from the
elements, it is straightforward to show that:
.. math:: \mu_k = \sum_m \lambda_m a_{km}.
where :math:`\mu_k` is the chemical potential of species *k*, :math:`a_{km}` is
the number of atoms of element *m* in species *k*, and :math:`\lambda_m` is the
chemical potential of the elemental species per atom (the so-called "element
potential"). In other words, the chemical potential of each species in an
equilibrium state is a linear sum of contributions from each atom. We see that
this is true in the output above---the chemical potential of H2 is exactly
twice that of H, the chemical potential for OH is the sum of the values for H
and O, the value for H2O2 is twice as large as the value for OH, and so on.
We'll see later how the :ct:`equilibrate <Cantera::equilibrate(thermo_t&, const
char*, int, doublereal, int, int, int)>` function really works. For now, though,
the important points are these:
- The `equilibrate` procedure operates on an object, setting its state to a
chemical equilibrium state.
- To use `equilibrate`, you need to include the `equilibrium.h` header file.

View file

@ -1,46 +0,0 @@
****************
C++ Header Files
****************
Cantera provides some header files designed for use in C++ application
programs. These are designed to include those portions of Cantera needed for
particular types of calculations. For example, the header file ``equilibrium.h``
includes header files needed to do equilibrium calculations (specifically, files
``ChemEquil.h`` and ``MultiPhaseEquil.h``).
These headers are designed for use in C++ application programs, and are not
included by the Cantera core. The headers and their functions are:
``equilibrium.h``
Chemical equilibrium.
``GRI30.h``
Provides class :ct:`GRI30`.
``IdealGasMix.h``
Provides class :ct:`IdealGasMix`.
``Interface.h``
Provides class :ct:`Interface`.
``integrators.h``
ODE Integrators.
``kinetics.h``
Chemical kinetics.
``numerics.h``
Classes for matrices.
``onedim.h``
One-dimensional reacting flows.
``reactionpaths.h``
Reaction path diagrams.
``transport.h``
Transport properties.
``zerodim.h``
Zero-dimensional reactor networks.

View file

@ -1,13 +0,0 @@
**************************
C++ Interface User's Guide
**************************
.. toctree::
:maxdepth: 2
compiling
headers
thermo
simple-example
equil-example

View file

@ -1,64 +0,0 @@
*************************
A Very Simple C++ Program
*************************
A short C++ program that uses Cantera is shown below. This program reads in a
specification of a gas mixture from an input file, and then builds a new object
representing the mixture. It then sets the thermodynamic state and composition
of the gas mixture, and prints out a summary of its properties.
.. literalinclude:: demo1a.cpp
:language: c++
This program produces the output below::
temperature 500 K
pressure 202650 Pa
density 0.361163 kg/m^3
mean mol. weight 7.40903 amu
1 kg 1 kmol
----------- ------------
enthalpy -2.47725e+06 -1.835e+07 J
internal energy -3.03836e+06 -2.251e+07 J
entropy 20700.1 1.534e+05 J/K
Gibbs function -1.28273e+07 -9.504e+07 J
heat capacity c_p 3919.29 2.904e+04 J/K
heat capacity c_v 2797.09 2.072e+04 J/K
X Y Chem. Pot. / RT
------------- ------------ ------------
H2 0.8 0.217667 -15.6441
H 0 0
O 0 0
O2 0 0
OH 0 0
H2O 0.1 0.243153 -82.9531
HO2 0 0
H2O2 0 0
AR 0.1 0.53918 -20.5027
As C++ programs go, this one is *very* short. It is the Cantera equivalent of
the "Hello, World" program most programming textbooks begin with. But it
illustrates some important points in writing Cantera C++ programs.
Catching :ct:`CanteraError` exceptions
======================================
The entire body of the program is put inside a function that is invoked within
a ``try`` block in the main program. In this way, exceptions thrown in the
function or in any procedure it calls may be caught. In this program, a
``catch`` block is defined for exceptions of type :ct:`CanteraError`. Cantera
throws exceptions of this type, so it is always a good idea to catch them. In
the ``catch`` block, function :ct:`showErrors` may be called to print the error
message associated with the exception.
The ``report`` function
=======================
The :ct:`report` function generates a nicely-formatted report of the properties of
a phase, including its composition in both mole (X) and mass (Y) units. For
each species present, the non-dimensional chemical potential is also printed.
This is handy particularly when doing equilibrium calculations. This function
is very useful to see at a glance the state of some phase.

View file

@ -1,125 +0,0 @@
**********************************
Computing Thermodynamic Properties
**********************************
Class ThermoPhase
=================
Cantera can be used to compute thermodynamic properties of pure substances,
solutions, and mixtures of various types, including ones containing multiple
phases. The first step is to create an object that represents each phase. A
simple, complete program that creates an object representing a gas mixture and
prints its temperature is shown below:
.. code-block:: c++
#include "cantera/thermo.h"
#include <iostream>
int main(int argc, char** argv)
{
Cantera::ThermoPhase* gas = Cantera::newPhase("h2o2.cti","ohmech");
std::cout << gas->temperature() << std::endl;
return 0;
}
Class :ct:`ThermoPhase` is the base class for Cantera classes that represent
phases of matter. It defines the public interface for all classes that represent
phases. For example, it specifies that they all have a method :ct:`temperature
<ThermoPhase::temperature>` that returns the current temperature, a method
:ct:`setTemperature(double T) <ThermoPhase::setTemperature>` that sets the
temperature, a method :ct:`getChemPotentials(double* mu)
<ThermoPhase::getChemPotentials>` that writes the species chemical potentials
into array ``mu``, and so on.
Class ThermoPhase can be used to represent the intensive state of any
single-phase solution of multiple species. The phase may be a bulk,
three-dimensional phase (a gas, a liquid, or a solid), or it may be a
two-dimensional surface phase, or even a one-dimensional "edge" phase. The
specific attributes of each type of phase are specified by deriving a class from
:ct:`ThermoPhase` and providing implementations for its virtual methods.
Cantera has a wide variety of models for bulk phase currently. Special attention
(in terms of the speed of execution) has been paid to an ideal gas phase
implementation, where the species thermodynamic polynomial representations
adhere to either the NASA polynomial form or to the Shomate polynomoial
form. This is widely used in combustion applications, the original application
that Cantera was designed for. Recently, a lot of effort has been placed into
constructing non-ideal liquid phase thermodynamics models that are used in
electrochemistry and battery applications. These models include a Pitzer
implementation for brines solutions and a Margules excess Gibbs free energy
implementation for molten salts.
The Intensive Thermodynamic State
---------------------------------
Class :ct:`ThermoPhase` and classes derived from it work only with the intensive
thermodynamic state. That is, all extensive properties (enthalpy, entropy,
internal energy, volume, etc.) are computed for a unit quantity (on a mass or
mole basis). For example, there is a method :ct:`enthalpy_mole()` that returns
the molar enthalpy (J/kmol), and a method :ct:`enthalpy_mass()` that returns the
specific enthalpy (J/kg), but no method *enthalpy()* that would return the total
enthalpy (J). This is because class ThermoPhase does not store the total amount
(mass or mole) of the phase.
The intensive state of a single-component phase in equilibrium is fully
specified by the values of any *r*+1 independent thermodynamic properties, where
*r* is the number of reversible work modes. If the only reversible work mode is
compression (a "simple compressible substance"), then two properties suffice to
specify the intensive state. Class ThermoPhase stores internally the values of
the *temperature*, the *mass density*, and the *mass fractions* of all
species. These values are sufficient to fix the intensive thermodynamic state of
the phase, and to compute any other intensive properties. This choice is
arbitrary, and for most purposes you can't tell which properties are stored and
which are computed.
Derived Classes
---------------
Many of the methods of ThermoPhase are declared virtual, and are meant to be
overloaded in classes derived from ThermoPhase. For example, class
:ct:`IdealGasPhase` derives from :ct:`ThermoPhase`, and represents ideal gas
mixtures.
Although class ThermoPhase defines the interface for all classes representing
phases, it only provides implementations for a few of the methods. This is
because ThermoPhase does not actually know the equation of state of any
phase---this information is provided by classes that derive from ThermoPhase.
The methods implemented by ThermoPhase are ones that apply to all phases,
independent of the equation of state. For example, it implements methods
``temperature()`` and ``setTemperature()``, since the temperature value is
stored internally.
* `Classes which inherit from ThermoPhase <../../../doxygen/html/group__thermoprops.html>`_
* `Classes which handle standard states for species <../../../doxygen/html/group__spthermo.html>`_
Example Program
===============
In the program below, a gas mixture object is created, and a few thermodynamic
properties are computed and printed out:
.. literalinclude:: thermodemo.cpp
:language: c++
Note that the methods that compute the properties take no input parameters. The
properties are computed for the state that has been previously set and stored
internally within the object.
Naming Conventions
------------------
- methods that return *molar* properties have names that end in ``_mole``.
- methods that return properties *per unit mass* have names that end in
``_mass``.
- methods that write an array of values into a supplied output array have names
that begin with ``get``. For example, the method
:ct:`ThermoPhase::getChemPotentials(double* mu)` writes the species chemical
potentials into the output array ``mu``.
The thermodynamic property methods are declared in class :ct:`ThermoPhase`,
which is the base class from which all classes that represent any type of phase
of matter derive.
See :ct:`ThermoPhase` for the full list of available thermodynamic properties.

View file

@ -1,42 +0,0 @@
#include "cantera/thermo.h"
using namespace Cantera;
void thermo_demo(std::string file, std::string phase)
{
ThermoPhase* gas = newPhase(file, phase);
gas->setState_TPX(1500.0, 2.0*OneAtm, "O2:1.0, H2:3.0, AR:1.0");
// temperature, pressure, and density
std::cout << gas->temperature() << std::endl;
std::cout << gas->pressure() << std::endl;
std::cout << gas->density() << std::endl;
// molar thermodynamic properties
std::cout << gas->enthalpy_mole() << std::endl;
std::cout << gas->entropy_mole() << std::endl;
// specific (per unit mass) thermodynamic properties
std::cout << gas->enthalpy_mass() << std::endl;
std::cout << gas->entropy_mass() << std::endl;
// chemical potentials of the species
int numSpecies = gas->nSpecies();
vector_fp mu(numSpecies);
gas->getChemPotentials(&mu[0]);
int n;
for (n = 0; n < numSpecies; n++) {
std::cout << gas->speciesName(n) << " " << mu[n] << std::endl;
}
}
int main(int argc, char** argv)
{
try {
thermo_demo("h2o2.cti","ohmech");
} catch (CanteraError& err) {
std::cout << err.what() << std::endl;
return 1;
}
return 0;
}

View file

@ -0,0 +1,54 @@
.. py:currentmodule:: cantera
Physical Constants
==================
These values are the same as those in the Cantera C++ header file ct_defs.h.
.. data:: avogadro
Avogadro's Number, kmol\ :sup:`-1`
.. data:: gas_constant
The ideal gas constant, J kmol\ :sup:`-1` K\ :sup:`-1`
.. data:: one_atm
One atmosphere, Pa
.. data:: boltzmann
Boltzmann constant, m\ :sup:`2` kg s\ :sup:`-2` K\ :sup:`-1`
.. data:: planck
Planck constant, J s
.. data:: stefan_boltzmann
The Stefan-Boltzmann constant, W m\ :sup:`-2` K\ :sup:`-4`
.. data:: electron_charge
The charge on an electron, C
.. data:: electron_mass
The mass of an electron, kg
.. data:: faraday
Faraday constant, C kmol\ :sup:`-1`
.. data:: light_speed
Speed of Light, m s\ :sup:`-1`
.. data:: permeability_0
Permeability of free space, m kg s\ :sup:`-2` A\ :sup:`-2`
.. data:: epsilon_0
Permittivity of free space, s\ :sup:`4` A\ :sup:`2` m\ :sup:`-3` kg\ :sup:`-1`

View file

@ -0,0 +1,50 @@
.. py:currentmodule:: cantera
Objects Representing Phases
===========================
.. contents::
:local:
Composite Phase Objects
-----------------------
These classes are composite representations of a substance which has
thermodynamic, chemical kinetic, and (optionally) transport properties.
.. autoclass:: Solution(infile='', phaseid='', source=None, thermo=None, species=(), kinetics=None, reactions=(), **kwargs)
.. autoclass:: Interface(infile='', phaseid='', phases=(), thermo=None, species=(), kinetics=None, reactions=())
.. autoclass:: DustyGas(infile, phaseid='')
Pure Fluid Phases
-----------------
The following convenience functions can be used to create `PureFluid` objects
with the indicated equation of state:
.. autofunction:: CarbonDioxide
.. autofunction:: Heptane
.. autofunction:: Hfc134a
.. autofunction:: Hydrogen
.. autofunction:: Methane
.. autofunction:: Nitrogen
.. autofunction:: Oxygen
.. autofunction:: Water
Representing Quantities of Phases
---------------------------------
.. autoclass:: Quantity
Representing Multiple States
----------------------------
.. autoclass:: SolutionArray
Utility Functions
-----------------
.. autofunction:: add_directory
.. autofunction:: get_data_directories

View file

@ -1,5 +1,4 @@
.. Cantera documentation master file, created by .. _sec-cython-documentation:
sphinx-quickstart on Mon Mar 12 11:43:09 2012.
Python Module Documentation Python Module Documentation
=========================== ===========================
@ -13,11 +12,6 @@ Contents:
thermo thermo
kinetics kinetics
transport transport
composite
zerodim zerodim
onedim onedim
func
error-handling
constants constants
utilities
convenience

View file

@ -0,0 +1,93 @@
.. py:currentmodule:: cantera
Chemical Kinetics
=================
.. contents::
:local:
Kinetics Managers
-----------------
Kinetics
^^^^^^^^
.. autoclass:: Kinetics(infile='', phaseid='', phases=())
InterfaceKinetics
^^^^^^^^^^^^^^^^^
.. autoclass:: InterfaceKinetics
Reactions
---------
These classes contain the definition of a single reaction and its associated
rate expression, independent of a specific `Kinetics` object.
Reaction
^^^^^^^^
.. autoclass:: Reaction(reactants='', products='')
:no-undoc-members:
ElementaryReaction
^^^^^^^^^^^^^^^^^^
.. autoclass:: ElementaryReaction(reactants='', products='')
:no-undoc-members:
ThreeBodyReaction
^^^^^^^^^^^^^^^^^
.. autoclass:: ThreeBodyReaction(reactants='', products='')
:no-undoc-members:
FalloffReaction
^^^^^^^^^^^^^^^
.. autoclass:: FalloffReaction(reactants='', products='')
:no-undoc-members:
ChemicallyActivatedReaction
^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. autoclass:: ChemicallyActivatedReaction(reactants='', products='')
:no-undoc-members:
PlogReaction
^^^^^^^^^^^^
.. autoclass:: PlogReaction(reactants='', products='')
:no-undoc-members:
ChebyshevReaction
^^^^^^^^^^^^^^^^^
.. autoclass:: ChebyshevReaction(reactants='', products='')
:no-undoc-members:
InterfaceReaction
^^^^^^^^^^^^^^^^^
.. autoclass:: InterfaceReaction(reactants='', products='')
:no-undoc-members:
Auxilliary Reaction Data
------------------------
Arrhenius
^^^^^^^^^
.. autoclass:: Arrhenius(A, b, E)
Falloff
^^^^^^^
.. autoclass:: Falloff(coeffs=(), init=True)
:no-undoc-members:
TroeFalloff
^^^^^^^^^^^
.. autoclass:: TroeFalloff(coeffs=(), init=True)
:no-undoc-members:
SriFalloff
^^^^^^^^^^
.. autoclass:: SriFalloff(coeffs=(), init=True)
:no-undoc-members:
Reaction Path Analysis
----------------------
ReactionPathDiagram
^^^^^^^^^^^^^^^^^^^
.. autoclass:: ReactionPathDiagram(Kinetics kin, str element)

View file

@ -0,0 +1,114 @@
.. py:currentmodule:: cantera
.. _sec-cython-onedim:
One-dimensional Reacting Flows
==============================
.. contents::
:local:
Composite Domains
-----------------
FreeFlame
^^^^^^^^^
.. autoclass:: FreeFlame(gas, grid=None, width=None)
BurnerFlame
^^^^^^^^^^^
.. autoclass:: BurnerFlame(gas, grid=None, width=None)
CounterflowDiffusionFlame
^^^^^^^^^^^^^^^^^^^^^^^^^
.. autoclass:: CounterflowDiffusionFlame(gas, grid=None, width=None)
CounterflowPremixedFlame
^^^^^^^^^^^^^^^^^^^^^^^^
.. autoclass:: CounterflowPremixedFlame(gas, grid=None, width=None)
ImpingingJet
^^^^^^^^^^^^
.. autoclass:: ImpingingJet(gas, grid=None, width=None)
IonFreeFlame
^^^^^^^^^^^^
.. autoclass:: IonFreeFlame(gas, grid=None, width=None)
.. autoattribute:: E
.. autoattribute:: electric_field_enabled
.. automethod:: solve
IonBurnerFlame
^^^^^^^^^^^^^^
.. autoclass:: IonBurnerFlame(gas, grid=None, width=None)
.. autoattribute:: E
.. autoattribute:: electric_field_enabled
.. automethod:: solve
Flow Domains
------------
IdealGasFlow
^^^^^^^^^^^^
.. autoclass:: IdealGasFlow(thermo)
:inherited-members:
IonFlow
^^^^^^^
.. autoclass:: IonFlow(thermo)
FreeFlow
^^^^^^^^
.. autoclass:: FreeFlow(thermo)
AxisymmetricStagnationFlow
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. autoclass:: AxisymmetricStagnationFlow(thermo)
Boundaries
----------
Inlet1D
^^^^^^^
.. autoclass:: Inlet1D(phase, name=None)
Outlet1D
^^^^^^^^
.. autoclass:: Outlet1D(phase, name=None)
OutletReservoir1D
^^^^^^^^^^^^^^^^^
.. autoclass:: OutletReservoir1D(phase, name=None)
SymmetryPlane1D
^^^^^^^^^^^^^^^
.. autoclass:: SymmetryPlane1D(phase, name=None)
Surface1D
^^^^^^^^^
.. autoclass:: Surface1D(phase, name=None)
ReactingSurface1D
^^^^^^^^^^^^^^^^^
.. autoclass:: ReactingSurface1D(phase, name=None)
Base Classes
------------
Domain1D
^^^^^^^^
.. autoclass:: Domain1D(name=None)
Boundary1D
^^^^^^^^^^
.. autoclass:: Boundary1D(phase, name=None)
Sim1D
^^^^^
.. autoclass:: Sim1D(domains)
FlameBase
^^^^^^^^^
.. autoclass:: FlameBase(domains, gas, grid=None)

Some files were not shown because too many files have changed in this diff Show more