Miscellaneous utilities from Sandler's 5th ed.
Sandlermisc implements a python interface to a few miscellaneous utilities from Chemical, Biochemical, and Engineering Thermodynamics (5th edition) by Stan Sandler (Wiley, USA). It should be used for educational purposes only.
Current utilities:
ThermodynamicState: An abstract class for handling thermodynamic states for pure componentsureg: a pint unit registryR: the universal gas constant as a pint QuantityDeltaH_IGandDeltaS_IG: Ideal-gas delta-h and delta-s calculations
Sandlermisc is available via pip:
pip install sandlermiscThermodynamicState is an abstract class that manages state-variable attributes:
T-- temperatureP-- pressurev-- molar volume or specific volumeh-- molar ethalpy or specific enthapyu-- molar internal energy or specific internal energys-- molar entropy or specific entropyx-- vapor fraction for a saturated state
A subclass of ThermodynamicState must define the method resolve() to compute state variables from input state variables. Any instance of such a subclass will automatically compute all state variables once enough inputs are specified.
DeltaH_IG requires the temperature of state 1 (assumed in K if units not specified), the temperature of state 2, and an ideal-gas heat-capacity argument, which can be a scalar, four-element list of floats, or four-element dict with keys a, b, c, and d.
>>> from sandlermisc import DeltaH_IG
>>> DeltaH_IG(100, 200, 10)
<Quantity(1000.0, 'joule / mole')>
>>> DeltaH_IG(500, 600, [10., 0.01, 0.00002, 0.000000032])
<Quantity(2693.46667, 'joule / mole')>
>>> DeltaH_IG(500, 600, dict(a=10., b=0.01, c=0.00002, d=0.000000032))
<Quantity(2693.46667, 'joule / mole')>DeltaS_IG requires the temperature and pressure of state 1, the temperature and pressure of state 2, the ideal-gas heat-capacity argument.
>>> from sandlermisc import DeltaS_IG
>>> DeltaS_IG(500, 10, 600, 12, 10)
<Quantity(0.307309799, 'joule / mole / kelvin')>One can optionally provide a value for the gas constant R to match units of one's Cp, if necessary. By default, sandlermisc assumes Cp has energy units of J.
- 0.4.1
- pint incorporation
- Full smart-resolution of ThermodynamicState
- 0.3.2
- bugfix:
unpackCpignoredints -- now fixed - bugfix:
unpackCpignorednp.ndarray-- now fixed
- bugfix:
- 0.3.0
StateReporterimplemented
- 0.1.1
- bug in converting Cp
- 0.1.0
- Initial release
Cameron F. Abrams – cfa22@drexel.edu
Distributed under the MIT license. See LICENSE for more information.
https://github.com/cameronabrams
- Fork it (https://github.com/cameronabrams/sandlermisc/fork)
- Create your feature branch (
git checkout -b feature/fooBar) - Commit your changes (
git commit -am 'Add some fooBar') - Push to the branch (
git push origin feature/fooBar) - Create a new Pull Request