Commit graph

1039 commits

Author SHA1 Message Date
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
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
Paul
c4aff04418 Updated URL in references to Cantera's license. 2019-09-23 22:02:33 -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
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
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
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
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
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
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
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
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
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
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
Ingmar Schoegl
ae792dde00 implemented limited advance step 2019-06-26 13:48:01 -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
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
165f11dfca [Input] Add information about conversion to generated YAML input files 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
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
891a4e74d3 Make YAML generated by ck2yaml prettier 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
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
fd088889cd [Transport] Add tests based on YAML input files 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