Basic definitions for Engineering Thermodynamics in Julia
Author JEngTherm
5 Stars
Updated Last
1 Year Ago
Started In
October 2019



Basic definitions for Engineering Thermodynamics in Julia.


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

  • Engineering thermodynamics quantities tagging, such as P, T, v, u, h, s, etc...
  • 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), etc... ones;
  • Automatic re-basing, such as:
    • u * m --> U,
    • R̄ / M --> R,
    • ṁ * 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.


Prof. C. Naaktgeboren, PhD. Lattes.

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

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


This project is licensed under the MIT license.


How to cite this project:

  author       = {C. Naaktgeboren},
  title        = {{EngThermBase.jl} -- Basic definitions for Engineering Thermodynamics in Julia},
  howpublished = {Online},
  year         = {2022},
  journal      = {GitHub repository},
  publisher    = {GitHub},
  url          = {https://github.com/JEngTherm/EngThermBase.jl},

Used By Packages

No packages found.