Utility Functions

Helper functions for calculations and output.

Heat Transfer

enex_analysis_engine.enex_engine.darcy_friction_factor(Re, e_d)[source]

Calculate the Darcy friction factor for given Reynolds number and relative roughness.

Parameters:
  • Re (float) – Reynolds number

  • e_d (float) – Relative roughness (e/D)

Returns:

Darcy friction factor

Return type:

float

enex_analysis_engine.enex_engine.calc_h_vertical_plate(T_s, T_inf, L)[source]

Calculate natural convection heat transfer coefficient for a vertical plate.

This function calculates the heat transfer coefficient due to natural convection using the Churchill & Chu correlation.

Parameters:
  • T_s (float) – Surface temperature [K]

  • T_inf (float) – Fluid temperature [K]

  • L (float) – Characteristic length [m]

Returns:

Heat transfer coefficient [W/m²K]

Return type:

float

Note

Uses Churchill & Chu correlation. Reference: https://doi.org/10.1016/0017-9310(75)90243-4

COP Calculations

Balance Output

enex_analysis_engine.enex_engine.print_balance(balance, decimal=2)[source]

Print energy, entropy, or exergy balance dictionary in a formatted way.

This function prints balance information for subsystems, categorizing entries into in, out, consumed, and generated categories.

Parameters:
  • balance (dict) – Dictionary containing balance information for subsystems. Structure: {subsystem_name: {category: {symbol: value}}} Categories: ‘in’, ‘out’, ‘con’ (consumed), ‘gen’ (generated)

  • decimal (int, optional) – Number of decimal places for output (default: 2)

Returns:

Only prints output

Return type:

None

Example

>>> balance = {
...     "hot water tank": {
...         "in": {"E_heater": 5000.0},
...         "out": {"Q_w_tank": 4500.0, "Q_l_tank": 400.0},
...         "con": {"X_c_tank": 100.0}
...     }
... }
>>> print_balance(balance)

Mathematical Functions

enex_analysis_engine.enex_engine.linear_function(x, a, b)[source]

Linear function: y = a*x + b