Thermodynamics
The thermodynamics domain provides tools for heat engines, equations of state, and phase transitions.
Overview
The thermodynamics module implements:
Heat engines: Carnot, Otto, Diesel cycles
Equations of state: Ideal gas, van der Waals
Phase transitions: Clausius-Clapeyron equation
Heat capacity: Debye and Einstein models
Quick Start
from mechanics_dsl.domains.thermodynamics import (
CarnotEngine, OttoCycle, VanDerWaalsGas, PhaseTransition
)
# Carnot engine
engine = CarnotEngine(T_hot=500, T_cold=300)
eta = engine.efficiency() # 0.4 (40%)
# Otto cycle (gasoline engine)
otto = OttoCycle(compression_ratio=10, gamma=1.4)
eta_otto = otto.efficiency() # ~60%
# Van der Waals gas
co2 = VanDerWaalsGas(a=0.364, b=4.27e-5)
P = co2.pressure(V=0.001, T=300)
Classes
CarnotEngine
Ideal reversible heat engine with maximum efficiency:
Methods:
efficiency(): Carnot efficiencywork_output(Q_hot): Work from heat inputcop_refrigerator(): Cooling coefficientcop_heat_pump(): Heating coefficient
OttoCycle
Gasoline engine cycle with adiabatic compression/expansion:
where r is the compression ratio.
DieselCycle
Compression ignition engine with isobaric combustion.
VanDerWaalsGas
Real gas equation of state:
Methods:
pressure(V, T): Calculate pressurecritical_point(): Returns (P_c, V_c, T_c)compressibility_factor(V, T): Z = PV/(nRT)
PhaseTransition
Phase boundary calculations using Clausius-Clapeyron:
HeatCapacity
Debye model for solids:
Einstein model for optical phonons.
Maxwell Relations
The module includes all four Maxwell relations derived from thermodynamic potentials.
Physical Constants
from mechanics_dsl.domains.thermodynamics import (
R_GAS, # 8.314 J/(mol·K)
BOLTZMANN # 1.38e-23 J/K
)
See Also
Statistical Mechanics - Statistical mechanics
../physics/fluids - Fluid dynamics