Commit Graph

10186 Commits

Author SHA1 Message Date
Ray Speth
c06ecf1bfb [CI] Fix matrix for 'run-examples' job 2023-05-09 15:03:46 -05:00
Bryan Weber
194cd1fa19 Fix commit version in Cython package 2023-05-08 22:02:35 -04:00
Bryan Weber
6f228b0a53 Update build package versions 2023-05-08 22:02:35 -04:00
Bryan Weber
396feff422 Fixes after splitting the Cython module 2023-05-08 22:02:35 -04:00
Bryan Weber
5ae51ec7f8 Update the Cantera data folder in tests
Since the data folder is no longer in a fixed location relative to the
tests, after moving the tests out of the package, we need to use the
import location of the Cantera package to find the installed data
files.
2023-05-08 22:02:35 -04:00
Bryan Weber
823e4a4a02 Remove special config.h handling in the sdist
config.h no longer requires system-specific setup, so it can be
generated at sdist build time with no problem.
2023-05-08 22:02:35 -04:00
Bryan Weber
40a35eb41e Clean up the Python extensions manager objects 2023-05-08 22:02:35 -04:00
Bryan Weber
32be053407 Add a bit more docs 2023-04-25 18:14:19 -04:00
Bryan Weber
c46adb2c17 Docs and AUTHORS 2023-04-25 18:14:19 -04:00
Bryan Weber
5395a57aa5 Address comments about tests 2023-04-25 18:14:19 -04:00
Bryan Weber
ed4b3a910d Address a bunch of review comments 2023-04-25 18:14:19 -04:00
Bryan Weber
1672898d73 Fix one problem with building the sdist 2023-04-25 18:14:19 -04:00
Bryan Weber
700fd6a10b General cleanups 2023-04-25 18:14:19 -04:00
Bryan Weber
220898448f Move building the units interface to a Scons extension 2023-04-25 18:14:19 -04:00
Bryan Weber
a6be9cfef4 Apply suggestions from code review
Co-authored-by: Ray Speth <yarmond@gmail.com>
2023-04-25 18:14:19 -04:00
Bryan Weber
962c6d98da Remove some tabs 2023-04-25 18:14:19 -04:00
Bryan Weber
5fcfef7d1c [CI] Fix example installation 2023-04-25 18:14:19 -04:00
Bryan Weber
b17ef0c510 [CI] Don't use PyPI index when installing Cantera
Ensure that we only install the wheel from the archive and don't
accidentally reach out to PyPI.
2023-04-25 18:14:19 -04:00
Bryan Weber
e3fb356228 [CI] Add --pre option to sample installation step
This is required to find the version of Cantera in the dist folder. By
default, pip only finds stable versions, and in this case, was going out
to PyPI to find Cantera rather than use the local artifact. However, we
can't set --no-index because we also need to install other dependencies
from PyPI.
2023-04-25 18:14:19 -04:00
Bryan Weber
d469ab2811 Fix testing and docs build failures 2023-04-25 18:14:19 -04:00
Bryan Weber
c64773d7f4 [Units] Add tests that all properties are implemented 2023-04-25 18:14:19 -04:00
Bryan Weber
97de761547 [Units] Add documentation
Most of the docs are copied from the upstream object. Some updates are
included for units.
2023-04-25 18:14:19 -04:00
Bryan Weber
2d07de24f5 Address review line comments 2023-04-25 18:14:19 -04:00
Bryan Weber
82c323f3f8 Refactor dimensions tests 2023-04-25 18:14:19 -04:00
Bryan Weber
c02f01725d [Units/Test] Refactor test suite to use pytest
This increases the line coverage to near 100%, uses pint's testing
assertions rather than rolling our own, and uses parameterize
extensively to reduce boilerplate in testing as many properties as
possible.
2023-04-25 18:14:19 -04:00
Bryan Weber
b1c1f865a8 Missing a license header 2023-04-25 18:14:19 -04:00
Bryan Weber
a832a712ba [Units] Refactor setter to use a loop
Rather than checking each value individually with try/except, use the
ito method and try to convert within a loop. This simplifies testing for
the error condition and looks a little cleaner.
2023-04-25 18:14:19 -04:00
Bryan Weber
c178c7c6c4 [Units] Pass through kwargs in constructor
Allow setting the backed of the Water instance. Fix a typo in the R134a
instance.
2023-04-25 18:14:19 -04:00
Bryan Weber
d28809f7ac [Test] Add branch coverage to Python 2023-04-25 18:14:19 -04:00
Bryan Weber
0aec8761f4 [Cython] Fix a typo in an error message 2023-04-25 18:14:19 -04:00
Bryan Weber
f1a61f8d16 [CI] Run examples from installed wheel
This lets us check whether the wheel is built properly and includes all
the files necessary for the package to function.
2023-04-25 18:14:19 -04:00
Bryan Weber
82a24baa73 [Examples] Add example keywords for units 2023-04-25 18:14:19 -04:00
Bryan Weber
08997ddd53 [Cython] Move units package to with_units
The units package shadowed the units Cython module. This made Cython
very unhappy and we couldn't import anything from Cantera.
2023-04-25 18:14:19 -04:00
Bryan Weber
a6eda3d083 [Cython] Fix setuptools warning about data
The include_package_data config option is redundant with explicitly
listing the package data, so setuptools was generating warnings. Since
we explicitly list everything, this can be removed.
2023-04-25 18:14:19 -04:00
Bryan Weber
930586ec6b [Units] Add application-level registry
This supports pickling and unpickling of quantities carrying Pint units.
2023-04-25 18:14:19 -04:00
Bryan Weber
65518d5ae8 [Doc] Add default python_module key into env
This prevents KeyError failures if sphinx_docs=y and python_package=n
2023-04-25 18:14:19 -04:00
hallaali
72ac6d5cc9 Update rankine_units.py 2023-04-25 18:14:19 -04:00
Bryan Weber
4ef563edb0 add pint dependency to CI 2023-04-25 18:14:19 -04:00
hallaali
a474076adf fix capitalization error 2023-04-25 18:14:19 -04:00
Bryan Weber
5af39ca105 Fix up tests for units module
* Remove unnecessary tests of the underlying implementation that
  duplicate functionality in the upstream tests.
* Move some dimensionality tests into the PureFluid tests where the
  saturation and critical attributes exist.
* Remove unused imports
2023-04-25 18:14:19 -04:00
Bryan Weber
83058ed676 Add critical_density units 2023-04-25 18:14:19 -04:00
Bryan Weber
e4bd04f2a4 Use numpy.isclose to compare array Quantities
The existing assertArrayNear method was causing units to be stripped
from the array Quantities. Avoiding numpy.asarray conversions and
using numpy.isclose prevents that from happening.
2023-04-25 18:14:19 -04:00
Bryan Weber
09faa1e438 Refactor setter and getter templates for units
* To allow setting properties on the upstream classes, __setattr__ is
  implemented and checks whether the attribute is defined on this
  class. This requires setting the phase instance directly into the
  __dict__ attribute to avoid a recursion error.
* Class inheritance is not used here because it is not easy to set
  attributes on the super class. By design, super() does not allow
  setting properties, only getting. Furthermore, since the base
  PureFluid class is defined in Cython, the attributes of that class
  cannot be set by subclasses at all, again by design.
* The PureFluid class implemented here does not inherit from the
  Solution class implemented here because eventually this Solution class
  will include methods and properties related to kinetics and transport,
  which are not implemented for PureFluid. The base PureFluid class is a
  subclass of ThermoPhase only, whereas the base Solution class is a
  subclass of ThermoPhase, Kinetics, and Transport.
* To reflect the distinction between Solution and ThermoPhase, the
  template variables are renamed.
* Several methods of the PureFluid are getters only, despite having
  three properties. These attributes are fixed here. TPQ is the only
  three-property attribute with a setter.
* Setter methods now raise a CanteraError if the unit conversion to base
  units fails due to an AttributeError.
2023-04-25 18:14:19 -04:00
Bryan Weber
24e7f0ea74 Refactor PureFluid derived classes as functions
Since the only overridden method was __init__, it makes more sense for
these to be functions than subclasses.
2023-04-25 18:14:19 -04:00
hallaali
f5076248f5 fix tests and update unit examples 2023-04-25 18:14:19 -04:00
hallaali
a299ab7824 Create Python examples with units
These examples use the units module to implement the existing examples,
but demonstrate how alternative units can be used for the input and
output quantities.
2023-04-25 18:14:19 -04:00
hallaali
07e5b82ba1 Create test_units.py 2023-04-25 18:14:19 -04:00
hallaali
7289feaa94 Implement unit conversion file into Cantera
Template file added to Sconscript to autogenerate code in
solution.py.in
2023-04-25 18:14:19 -04:00
Ray Speth
da34f8f618 [Doc] Fix some Doxygen warnings 2023-04-21 18:44:56 -05:00
Ray Speth
248b8172ce [Kinetics] Don't use m_grt as temporary array for other quantities 2023-04-21 18:44:56 -05:00