EngThermBase

EngThermBase.jl

Engineering Thermodynamics understructure in Julia.

Description

The EngThermBase.jl package provides a common platform for engineering thermodynamics packages and case calculations by implementing:

  • Engineering thermodynamics quantity (such as P, T, v, u, h, s, etc.) tagging and untagging facilities;
    • Sample tagging:
      • T1, P1 = T_(25u"°C"), P_(1u"atm") yields (T₆₄: 298.15 K, P₆₄: 101.33 kPa);
      • TPPair(T1, P1) yields TPPair{Float64, EX}(T₆₄: 298.15 K, P₆₄: 101.33 kPa);
      • v_(0.2332f0, MO), s_(Float16(6.623)) yields (v̄₃₂: 0.23320 m³/kmol, s₁₆: 6.6211 kJ/K/kg).
    • Sample untagging:
      • T1() yields 298.15 K;
      • T1(u"°C") yields 25.0 °C.
  • Floating point precision-, exactness-, and thermodynamic base- parameterized tags:
    • TvPair(T1, v1) yields TvPair{Float64, EX, MA}(T₆₄: 298.15 K, v₆₄: 0.23320 m³/kg).
  • Default (SI) units for tagged quantities—through Unitful.jl;
  • Uncertainty propagation—through Measurements.jl.
  • Somewhat configurable thermodynamic amount pretty-printing, such as:
    • P₆₄: 101.35 kPa,
    • v₆₄: 1.1800 m³/kg,
    • R̄₆₄: (8.3145 ± 1.5e-05 kJ/K/kmol),
    • Ma₆₄: 1.0333 –,
    • ṁ₆₄: 3.4560 kg/s, etc...
  • Automatic re-tagging, through Julia's multiple dispatch system, such as:
    • u + P * v --> h,
    • u - T * s --> a,
    • (P * v) / (R * T) --> Z, and the like;
  • Thermodynamic bases, such as:
    • MA (mass),
    • MO (molar),
    • SY (system, or extensive), and
    • DT (rate);
  • Automatic re-basing, such as:
    • u * m --> U, (mass-base intensive into extensive by multiplication by mass)
    • R̄ / M --> R, (molar-base intensive into mass-base intensive by division by molecular mass)
    • ṁ * q --> Q̇, etc..., and
  • Exports an abstract type hyerarchy so as to provide hooks for thermodynamic models of heat capacity, pure substance (by equation of state, or EoS), mixtures, etc... such as the IdealGasLib.jl.

For additional information and examples, please refer to the package's documentation.

Author

Prof. C. Naaktgeboren, PhD. Lattes.

Federal University of Technology, Paraná (site), Guarapuava Campus.

NaaktgeborenC <dot!> PhD {at!} gmail [dot!] com

License

This project is licensed under the MIT license.

Citations

How to cite this project:

@Misc{2023-NaaktgeborenC-EngThermBase,
  author       = {C. Naaktgeboren},
  title        = {{EngThermBase.jl} -- Engineering Thermodynamics understructure in Julia},
  howpublished = {Online},
  month        = {August},
  year         = {2023},
  journal      = {GitHub repository},
  publisher    = {GitHub},
  url          = {https://github.com/JEngTherm/EngThermBase.jl},
  note         = {release 0.3.6 of 23-09-05},
}