encomp documentation ==================== .. image:: img/logo.svg :width: 150px :align: center Overview --------- .. centered:: General-purpose library for *en*\gineering *com*\putations, with focus on clean and consistent interfaces. Main functionality of the ``encomp`` library: * Handles physical quantities with magnitude(s), dimensionality and units * Modules :py:mod:`encomp.units`, :py:mod:`encomp.utypes` * Extends the `pint `_ library * Uses Python's type system to validate dimensionalities * Compatible with ``mypy`` and other type checkers * Integrates with with Numpy arrays, Pandas series and Polars series and expressions * JSON serialization and decoding via Pydantic * Implements a flexible interface to `CoolProp `_ * Module :py:mod:`encomp.fluids` * Uses quantities for all inputs and outputs (including dimensionless quantities) * Fluids are represented as class instances, the properties are class attributes * Extends `Sympy `_ * Module :py:mod:`encomp.sympy` * Adds convenience methods for creating symbols with sub- and superscripts * Additional functions to convert (algebraic) expressions and systems to Python code that supports Numpy arrays# add mock imports to avoid running modules: The other modules implement calculations related to process engineering and thermodynamics. .. tip:: This library can be used as a starting point when developing your own engineering calculations. For instance, using the :py:class:`encomp.units.Quantity` class and decorating functions with ``@typeguard.typechecked`` will eliminate all unit-related errors in your calculations. ``encomp`` also serves as an overview of commonly used Python libraries for engineering and science. Contents -------- .. toctree:: :maxdepth: 3 usage examples source/encomp