engineeringkit.thermodynamics#

Ideal gases, heat/work accounting, ideal cycles and exergy.

Classical thermodynamics and idealized power/refrigeration cycles.

class engineeringkit.thermodynamics.OttoCycle(compression_ratio, gamma=1.4)[source]#

Bases: object

Parameters:
  • compression_ratio (float)

  • gamma (float)

compression_ratio: float#
property efficiency#
gamma: float = 1.4#
summary()[source]#
engineeringkit.thermodynamics.brayton_efficiency(pressure_ratio, gamma=1.4)[source]#

Brayton efficiency.

Parameters:
  • pressure_ratio (1) – Input in the units stated above.

  • gamma (1) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.carnot_cop_heat_pump(T_hot, T_cold)[source]#

Carnot cop heat pump.

Parameters:
  • T_hot (K (absolute)) – Input in the units stated above.

  • T_cold (K (absolute)) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.carnot_cop_refrigerator(T_hot, T_cold)[source]#

Carnot cop refrigerator.

Parameters:
  • T_hot (K (absolute)) – Input in the units stated above.

  • T_cold (K (absolute)) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.carnot_efficiency(T_hot, T_cold)[source]#

Carnot efficiency.

Parameters:
  • T_hot (K (absolute)) – Input in the units stated above.

  • T_cold (K (absolute)) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.clausius_inequality(cyclic_heat_over_temperature)[source]#

Return whether a discretized cyclic Clausius integral satisfies sum(dQ/T) <= 0.

Parameters:

cyclic_heat_over_temperature (J/K) – Input in the units stated above.

Returns:

bool.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.diesel_efficiency(r, cutoff, gamma=1.4)[source]#

Diesel efficiency.

Parameters:
  • r (1) – Input in the units stated above.

  • cutoff (1) – Input in the units stated above.

  • gamma (1) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.entropy_change_isothermal_ideal_gas(n, T, V1, V2)[source]#

Entropy change isothermal ideal gas.

Parameters:
  • n (mol) – Input in the units stated above.

  • T (K (absolute)) – Input in the units stated above.

  • V1 (m^3) – Input in the units stated above.

  • V2 (m^3) – Input in the units stated above.

Returns:

J/K.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.exergy_destruction(T0, entropy_generation)[source]#

Exergy destruction.

Parameters:
  • T0 (K (absolute)) – Input in the units stated above.

  • entropy_generation (J/K) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.exergy_heat(Q, T_source, T0)[source]#

Exergy heat.

Parameters:
  • Q (J) – Input in the units stated above.

  • T_source (K (absolute)) – Input in the units stated above.

  • T0 (K (absolute)) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.first_law_heat(delta_u, work_by_system)[source]#

First law heat.

Parameters:
  • delta_u (J) – Input in the units stated above.

  • work_by_system (J) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.heat_engine_work(Qin, Qout)[source]#

Heat engine work.

Parameters:
  • Qin (J) – Input in the units stated above.

  • Qout (J) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.heat_pump_cop(q_hot, work_input)[source]#

Heat pump cop.

Parameters:
  • q_hot (J) – Input in the units stated above.

  • work_input (J) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.ideal_gas_pressure(n, T, V)[source]#

Ideal gas pressure.

Parameters:
  • n (mol) – Input in the units stated above.

  • T (K (absolute)) – Input in the units stated above.

  • V (m^3) – Input in the units stated above.

Returns:

Pa.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.ideal_gas_temperature(P, V, n)[source]#

Ideal gas temperature.

Parameters:
  • P (Pa) – Input in the units stated above.

  • V (m^3) – Input in the units stated above.

  • n (mol) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.isentropic_pressure_volume(p1, v1, v2, gamma=1.4)[source]#

Isentropic pressure volume.

Parameters:
  • p1 (Pa) – Input in the units stated above.

  • v1 (consistent volume units (e.g. m^3/kg)) – Input in the units stated above.

  • v2 (consistent volume units (e.g. m^3/kg)) – Input in the units stated above.

  • gamma (1) – Input in the units stated above.

Returns:

Pa.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.isentropic_temperature_ratio(pressure_ratio, gamma=1.4)[source]#

Isentropic temperature ratio.

Parameters:
  • pressure_ratio (1) – Input in the units stated above.

  • gamma (1) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.otto_efficiency(compression_ratio, gamma=1.4)[source]#

Otto efficiency.

Parameters:
  • compression_ratio (1) – Input in the units stated above.

  • gamma (1) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.rankine_ideal_efficiency(h1, h2, h3, h4)[source]#

Ideal Rankine efficiency from pump-in, boiler-out, turbine-out, condenser-out enthalpies.

Parameters:
  • h1 (J/kg) – Input in the units stated above.

  • h2 (J/kg) – Input in the units stated above.

  • h3 (J/kg) – Input in the units stated above.

  • h4 (J/kg) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.refrigeration_cop(q_cold, work_input)[source]#

Refrigeration cop.

Parameters:
  • q_cold (J) – Input in the units stated above.

  • work_input (J) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.reversible_isothermal_work_ideal_gas(n, T, V1, V2)[source]#

Reversible isothermal work ideal gas.

Parameters:
  • n (mol) – Input in the units stated above.

  • T (K (absolute)) – Input in the units stated above.

  • V1 (m^3) – Input in the units stated above.

  • V2 (m^3) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.specific_enthalpy_ideal_gas(T, cp)[source]#

Specific enthalpy ideal gas.

Parameters:
  • T (K (absolute)) – Input in the units stated above.

  • cp (J/(kg K)) – Input in the units stated above.

Returns:

J/kg.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.specific_internal_energy_ideal_gas(T, cv)[source]#

Specific internal energy ideal gas.

Parameters:
  • T (K (absolute)) – Input in the units stated above.

  • cv (J/(kg K)) – Input in the units stated above.

Returns:

J/kg.

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.

engineeringkit.thermodynamics.thermal_efficiency(Qin, Qout)[source]#

Thermal efficiency.

Parameters:
  • Qin (J) – Input in the units stated above.

  • Qout (J) – Input in the units stated above.

Returns:

Return type:

result

Notes

Assumptions, governing equations and validity limits are discussed in Thermodynamics: total versus specific quantities and cycle states. SI inputs are required; raw numbers carry no dimensional metadata.