Overview
Engineering calculations form the computational backbone of design, analysis, and optimization across mechanical, chemical, civil, electrical, and environmental disciplines. From fluid mechanics and thermodynamics to photovoltaics and process control, these tools leverage specialized Python libraries to solve problems that demand precision, industry-standard correlations, and validated property databases.
Fluid Mechanics encompasses the largest collection of engineering tools, addressing pipe flow, compressible flow, control valves, and two-phase systems. The fluids library provides battle-tested implementations of industry correlations like the Colebrook equation for friction factors, the Panhandle equations for natural gas pipelines, and IEC 60534 standards for control valve sizing. Whether calculating Reynolds numbers for regime classification, sizing orifice plates for flow measurement, or determining pressure drops through fittings, these tools handle both laminar and turbulent regimes with appropriate methods automatically selected based on dimensionless parameters.
For friction factor calculations, use FRICTION_FACTOR as the primary entry point—it automatically selects the optimal correlation (Clamond, Colebrook, Churchill, or Haaland) based on Reynolds number and relative roughness. Specialized correlations like BLASIUS (smooth turbulent flow) or MOODY are available when specific methods are required. Compressible flow tools handle gas transmission through pipelines with methods ranging from theoretical ISOTHERMAL_GAS to empirical formulas like WEYMOUTH_FLOW and PANHANDLE_B. Stagnation properties, critical flow conditions, and polytropic efficiency conversions are all available.
Control valve calculations follow IEC 60534 standards for both liquid and gas service, including flow coefficient conversions (Cv, Kv, Av), characteristic curves (linear, equal percentage, quick opening), cavitation and choked flow detection, and noise prediction per IEC 60534-8-3 (gas) and IEC 60534-8-4 (liquid). Use SIZE_CV_LIQUID and SIZE_CV_GAS for valve sizing, and IS_CHOKED_LIQ or IS_CHOKED_GAS to detect critical flow conditions.
Dimensionless numbers characterize flow regimes and similarity: Reynolds number, Froude number for open channel flow, Bond number for surface tension effects, and specialized parameters like Dean number for curved pipes. Drag calculations provide 20+ correlations for sphere drag coefficients optimized for different Reynolds number ranges, from Stokes flow (Re < 1) to high-Re turbulent regimes. The general DRAG_SPHERE function selects appropriate correlations automatically, while terminal velocity and settling calculations support particle separation design.
Flow meters implement differential pressure calculations per ISO 5167 for orifice plates, venturi tubes, and flow nozzles. Tools calculate discharge coefficients, expansibility factors, and non-recoverable pressure drops. Fittings and valves provide loss coefficients (K-factors) for bends, contractions, expansions, and various entrance/exit conditions based on Crane TP-410 and Idelchik correlations. Atmospheric calculations include the US Standard Atmosphere 1976 model and the NRLMSISE-00 model for temperature, pressure, and density at altitude.
Photovoltaic calculations leverage the pvlib-python library for solar energy system design and analysis. Calculate solar position (azimuth, elevation, zenith) for any location and time, determine irradiance components on tilted surfaces accounting for beam, diffuse, and ground-reflected radiation, and model PV module performance using the single-diode equation via I_FROM_V or simplified PVWatts DC models. The CEC model parameters adjust cell performance for temperature and irradiance variations, critical for accurate energy yield predictions.
These engineering tools bridge the gap between spreadsheet accessibility and programmatic power, providing validated implementations of industry standards that would be error-prone to implement manually.
Fluids
Atmosphere
| AIRMASS |
Calculate the mass of air per square meter in the atmosphere along a given angle using a density profile. |
| ATMOS_NRLMSISE00 |
Compute temperature, density, and pressure using the NRLMSISE-00 atmospheric model. |
| ATMOSPHERE_1976 |
Calculate standard atmospheric properties at a given altitude using the US Standard Atmosphere 1976 model. |
Compressible
| FRITZSCHE_FLOW |
Calculate gas flow rate using the Fritzsche formula. |
| IGT_FLOW |
Calculate gas flow rate using the IGT (Institute of Gas Technology) formula. |
| IS_CHOKED_FLOW |
Determine if a flow is choked (critical) based on pressure ratio. |
| ISENTROPIC_EFF |
Convert between isentropic and polytropic efficiency for compression. |
| ISENTROPIC_T_RISE |
Calculate the temperature rise for isentropic compression or expansion. |
| ISENTROPIC_WORK |
Calculate work of compression or expansion for a gas in an isentropic process. |
| ISOTHERMAL_GAS |
Calculate mass flow rate for isothermal compressible gas flow in a pipe. |
| ISOTHERMAL_WORK |
Calculate work of compression or expansion for a gas in an isothermal process. |
| MULLER_FLOW |
Calculate gas flow rate using the Muller formula. |
| P_CRITICAL_FLOW |
Calculate critical flow pressure for a fluid at Mach 1. |
| P_STAGNATION |
Calculate stagnation pressure from static conditions. |
| PANHANDLE_A |
Calculate gas flow rate in a pipeline using the Panhandle A formula. |
| PANHANDLE_B |
Calculate gas flow rate in a pipeline using the Panhandle B formula. |
| POLYTROPIC_EXP |
Calculate polytropic exponent or polytropic efficiency for compression. |
| STAGNATION_ENERGY |
Calculate the increase in enthalpy due to fluid velocity. |
| T_CRITICAL_FLOW |
Calculate critical flow temperature for a fluid at Mach 1. |
| T_STAG_IDEAL |
Calculate ideal stagnation temperature from velocity and heat capacity. |
| T_STAGNATION |
Calculate stagnation temperature from pressure ratio. |
| WEYMOUTH_FLOW |
Calculate gas flow rate in a pipeline using the Weymouth formula. |
Control Valve
| CV_CAV_INDEX |
Calculates the cavitation index of a control valve. |
| CV_CHAR_EQ_PERC |
Calculates the flow coefficient characteristic for an equal percentage control valve. |
| CV_CHAR_LINEAR |
Calculates the flow coefficient characteristic for a linear control valve. |
| CV_CHAR_QUICK_OP |
Calculates the flow coefficient characteristic for a quick opening control valve. |
| CV_CHOKE_PRESS_GAS |
Calculates the pressure at which choked flow occurs in a gas control valve. |
| CV_CHOKE_PRESS_LIQ |
Calculates the pressure at which choked flow occurs in a liquid control valve. |
| CV_CONVERT_COEFF |
Converts between different flow coefficient scales (Kv, Cv, Av). |
| CV_NOISE_GAS_2011 |
Calculate the A-weighted sound pressure level for gas flow through a control valve per IEC 60534-8-3 (2011). |
| CV_NOISE_LIQ_2015 |
Calculates the sound made by a liquid flowing through a control valve according to the standard IEC 60534-8-4 (2015) using fluids.control_valve.control_valve_noise_l_2015. |
| FF_CRIT_PRESS_L |
Calculates FF, the liquid critical pressure ratio factor, for use in IEC 60534 liquid valve sizing calculations using fluids.control_valve.FF_critical_pressure_ratio_l. |
| IS_CHOKED_GAS |
Determines if a gas flow in a control valve is choked (critical) or not according to IEC 60534. |
| IS_CHOKED_LIQ |
Determines if a liquid flow in a control valve is choked (critical) or not according to IEC 60534. |
| LOSS_COEFF_PIPING |
Calculates the sum of loss coefficients for reducers/expanders around a control valve. |
| REYNOLDS_FACTOR |
Calculates the Reynolds number factor FR for a valve according to IEC 60534. |
| REYNOLDS_VALVE |
Calculates the Reynolds number of a control valve according to IEC 60534. |
| SIZE_CV_GAS |
Calculates flow coefficient of a control valve passing a gas according to IEC 60534 using fluids.control_valve.size_control_valve_g. |
| SIZE_CV_LIQUID |
Calculates the flow coefficient (Kv) of a control valve passing a liquid according to IEC 60534. |
Dimensionless
| ARCHIMEDES |
Calculate the Archimedes number (Ar) for a fluid and particle. |
| BEJAN |
Compute the Bejan number (length-based or permeability-based). |
| BIOT |
Calculate the Biot number for heat transfer. |
| BOILING |
Calculate the Boiling number (Bg), a dimensionless number for boiling heat transfer. |
| BOND |
Calculate the Bond number (Bo), also known as the Eötvös number (Eo). |
| CAPILLARY |
Calculate the Capillary number (Ca) for a fluid system using fluids.core.Capillary. |
| CAVITATION |
Calculate the Cavitation number (Ca) for a flowing fluid. |
| CONFINEMENT |
Calculate the Confinement number (Co) for two-phase flow in a channel. |
| DEAN |
Calculate the Dean number (De) for flow in a curved pipe or channel. |
| DRAG |
Calculate the drag coefficient (dimensionless) for an object in a fluid. |
| ECKERT |
Calculate the Eckert number using fluids.core.Eckert. |
| EULER |
Calculate the Euler number (Eu) for a fluid flow. |
| FOURIER_HEAT |
Calculate the Fourier number for heat transfer. |
| FOURIER_MASS |
Calculate the Fourier number for mass transfer (Fo). |
| FROUDE |
Calculate the Froude number (Fr) for a given velocity, length, and gravity. |
| FROUDE_DENSIMETRIC |
Calculate the densimetric Froude number. |
| GRAETZ_HEAT |
Calculate the Graetz number. |
| GRASHOF |
Calculate the Grashof number. |
| HAGEN |
Calculate the Hagen number. |
| JAKOB |
Calculate the Jakob number for boiling fluid. |
| KNUDSEN |
Calculate the Knudsen number. |
| LEWIS |
Calculate the Lewis number. |
| MACH |
Calculate the Mach number. |
| MORTON |
Calculate the Morton number. |
| NUSSELT |
Calculate the Nusselt number. |
| OHNESORGE |
Calculate the Ohnesorge number. |
| PECLET_HEAT |
Calculate the Peclet number for heat transfer. |
| PECLET_MASS |
Calculate the Peclet number for mass transfer. |
| POWER_NUMBER |
Calculate the Power number for an agitator. |
| PRANDTL |
Calculate the Prandtl number. |
| RAYLEIGH |
Calculate the Rayleigh number. |
| RELATIVE_ROUGHNESS |
Calculate the relative roughness. |
| REYNOLDS |
Calculate the Reynolds number. |
| SCHMIDT |
Calculate the Schmidt number. |
| SHERWOOD |
Calculate the Sherwood number. |
| STANTON |
Calculate the Stanton number. |
| STOKES_NUMBER |
Calculate the Stokes number. |
| STROUHAL |
Calculate the Strouhal number. |
| SURATMAN |
Calculate the Suratman number. |
| WEBER |
Calculate the Weber number. |
Drag
| CD_ALMEDEIJ |
Calculate drag coefficient of a sphere using the Almedeij correlation. |
| CD_BARATI |
Calculate drag coefficient of a sphere using the Barati correlation. |
| CD_BARATI_HIGH |
Calculate drag coefficient of a sphere using the Barati high-Re correlation (valid to Re=1E6). |
| CD_CEYLAN |
Calculate drag coefficient of a sphere using the Ceylan correlation. |
| CD_CHENG |
Calculate drag coefficient of a sphere using the Cheng correlation. |
| CD_CLIFT |
Calculate drag coefficient of a sphere using the Clift correlation. |
| CD_CLIFT_GAUVIN |
Calculate drag coefficient of a sphere using the Clift-Gauvin correlation. |
| CD_ENGELUND |
Calculate drag coefficient of a sphere using the Engelund-Hansen correlation. |
| CD_FLEMMER_BANKS |
Calculate drag coefficient of a sphere using the Flemmer-Banks correlation. |
| CD_GRAF |
Calculate drag coefficient of a sphere using the Graf correlation. |
| CD_HAIDER_LEV |
Calculate drag coefficient of a sphere using the Haider-Levenspiel correlation. |
| CD_KHAN_RICH |
Calculate drag coefficient of a sphere using the Khan-Richardson correlation. |
| CD_MIKHAILOV |
Calculate drag coefficient of a sphere using the Mikhailov-Freire correlation. |
| CD_MORRISON |
Calculate drag coefficient of a sphere using the Morrison correlation. |
| CD_MORSI_ALEX |
Calculate drag coefficient of a sphere using the Morsi-Alexander correlation. |
| CD_ROUSE |
Calculate drag coefficient of a sphere using the Rouse correlation. |
| CD_SONG_XU |
Calculate drag coefficient of a particle using the Song-Xu correlation for spherical and non-spherical particles. |
| CD_STOKES |
Calculate drag coefficient of a sphere using Stokes law (Cd = 24/Re). |
| CD_SWAMEE_OJHA |
Calculate drag coefficient of a sphere using the Swamee-Ojha correlation. |
| CD_TERFOUS |
Calculate drag coefficient of a sphere using the Terfous correlation. |
| CD_YEN |
Calculate drag coefficient of a sphere using the Yen correlation. |
| DRAG_SPHERE |
Calculate the drag coefficient of a sphere using various correlations based on Reynolds number. |
| SPHERE_FALL_DIST |
Calculate distance traveled by a falling sphere after a given time. |
| SPHERE_VEL_AT_T |
Calculate the velocity of a falling sphere after a given time. |
| TIME_V_TERMINAL |
Calculate time for a particle in Stokes regime to reach terminal velocity. |
| V_TERMINAL |
Calculate terminal velocity of a falling sphere using drag coefficient correlations. |
Filters
| RND_EDGE_GRILL |
Calculate the loss coefficient for a rounded edge grill or perforated plate. |
| RND_EDGE_MESH |
Calculate the loss coefficient for a round edged open net or screen mesh. |
| RND_EDGE_SCREEN |
Calculate the loss coefficient for a round edged wire screen or bar screen. |
| SQ_EDGE_GRILL |
Calculate the loss coefficient for a square edged grill or perforated plate. |
| SQ_EDGE_SCREEN |
Calculate the loss coefficient for a square edged wire screen, bar screen, or perforated plate. |
Fittings
| BEND_MITER |
Calculate the loss coefficient (K) for a single-joint miter bend in a pipe. |
| BEND_ROUNDED |
Calculate the loss coefficient (K) for a rounded pipe bend (elbow) using various methods. |
| CONTRACTION_ROUND |
Calculate the loss coefficient (K) for a rounded pipe contraction (reducer). |
| CONTRACTION_SHARP |
Calculate the loss coefficient (K) for a sharp edged pipe contraction (reducer). |
| CV_TO_K |
Convert imperial valve flow coefficient (Cv) to loss coefficient (K). |
| DIFFUSER_CONICAL |
Calculate the loss coefficient (K) for a conical pipe expansion (diffuser). |
| DIFFUSER_SHARP |
Calculate the loss coefficient (K) for a sudden pipe expansion (diffuser). |
| ENTRANCE_ANGLED |
Calculate the loss coefficient (K) for an angled sharp entrance to a pipe flush with a reservoir wall. |
| ENTRANCE_BEVELED |
Calculate the loss coefficient (K) for a beveled or chamfered entrance to a pipe flush with a reservoir wall. |
| ENTRANCE_ROUNDED |
Calculate the loss coefficient (K) for a rounded entrance to a pipe flush with a reservoir wall. |
| ENTRANCE_SHARP |
Calculate the loss coefficient (K) for a sharp entrance to a pipe flush with a reservoir wall. |
| EXIT_NORMAL |
Calculate the loss coefficient (K) for a normal pipe exit discharging into a reservoir. |
| HELIX |
Calculate the loss coefficient (K) for a helical coil pipe section. |
| K_BALL_VALVE |
Calculate the loss coefficient (K) for a ball valve using the Crane method. |
| K_BUTTERFLY_VALVE |
Calculate the loss coefficient (K) for a butterfly valve using the Crane method. |
| K_GATE_VALVE |
Calculate the loss coefficient (K) for a gate valve using the Crane method. |
| K_GLOBE_VALVE |
Calculate the loss coefficient (K) for a globe valve using the Crane method. |
| K_SWING_CHECK_VALVE |
Calculate the loss coefficient (K) for a swing check valve using the Crane method. |
| K_TO_CV |
Convert loss coefficient (K) to imperial valve flow coefficient (Cv). |
| K_TO_KV |
Convert loss coefficient (K) to metric valve flow coefficient (Kv). |
| KV_TO_K |
Convert metric valve flow coefficient (Kv) to loss coefficient (K). |
| SPIRAL |
Calculate the loss coefficient (K) for a spiral coil pipe section. |
Flow Meter
| DIFF_PRESS_BETA |
Calculate the beta ratio (diameter ratio) for a differential pressure flow meter. |
| DIFF_PRESS_C_EPS |
Calculate discharge coefficient and expansibility factor for differential pressure flow meters. |
| DIFF_PRESS_DP |
Calculate non-recoverable pressure drop across a differential pressure flow meter. |
| FLOW_METER_DISCH |
Calculate mass flow rate through a differential pressure flow meter based on measured pressures and meter geometry. |
| ORIFICE_DISCHARGE_C |
Calculate the discharge coefficient for an orifice plate using the Reader-Harris-Gallagher correlation (ISO 5167 standard). |
| ORIFICE_EXPAND |
Calculate the expansibility factor for an orifice plate based on geometry and pressure conditions. |
| ORIFICE_PRESS_DROP |
Calculate non-recoverable pressure drop across an orifice plate based on geometry and discharge coefficient. |
Friction
| BLASIUS |
Calculates Darcy friction factor for turbulent flow in smooth pipes using the Blasius correlation. |
| CHURCHILL |
Calculate Darcy friction factor using the Churchill (1977) universal equation for all flow regimes. |
| CLAMOND |
Calculate Darcy friction factor using Clamond’s high-precision solution accurate to nearly machine precision. |
| COLEBROOK |
Calculate Darcy friction factor using exact solution to the Colebrook equation. |
| DP_GRAV |
Calculate gravitational pressure drop component for single-phase flow in inclined pipes. |
| FF_CURVED |
Calculate friction factor for fluid flowing in a curved pipe or helical coil, supporting both laminar and turbulent regimes. |
| FP_MARTIN |
Calculate Darcy friction factor for single-phase flow in Chevron-style plate heat exchangers using Martin (1999) correlation. |
| FP_MULEY_MANGLIK |
Calculate Darcy friction factor for single-phase flow in Chevron-style plate heat exchangers using Muley-Manglik correlation. |
| FRICTION_FACTOR |
Calculate the Darcy friction factor for fluid flow in a pipe using various correlations, automatically selecting appropriate method based on Reynolds number and relative roughness. |
| FRICTION_LAMINAR |
Calculate the Darcy friction factor for laminar flow using the theoretical solution fd = 64/Re. |
| FT_CRANE |
Calculate the Crane fully turbulent Darcy friction factor for flow in commercial pipe. |
| HAALAND |
Calculate Darcy friction factor using the Haaland (1983) approximation. |
| HELICAL_RE_CRIT |
Calculate the transition Reynolds number for fluid flowing in a curved or helical pipe between laminar and turbulent flow. |
| MOODY |
Calculate Darcy friction factor using the Moody (1947) correlation. |
| ONE_PHASE_DP |
Calculate single-phase pressure drop in a pipe using the Darcy-Weisbach equation. |
| SWAMEE_JAIN |
Calculate Darcy friction factor using the Swamee-Jain (1976) equation. |
| TRANS_FACTOR |
Convert between Darcy friction factor and transmission factor for compressible gas pipeline flow. |
| VON_KARMAN |
Calculate Darcy friction factor for rough pipes at infinite Reynolds number from the von Karman equation. |
Heat Transfer
Conduction
| CYL_HT |
Heat transfer through a cylindrical wall (pipes, vessels). |
| K_TO_THERMAL_RES |
Convert thermal conductivity to thermal resistivity. |
| THERMAL_RES_TO_K |
Convert thermal resistivity to thermal conductivity. |
Convection
| NU_CONV_INT |
Nusselt number for internal convection in a circular pipe. |
| NU_CYL_EXT |
Nusselt number for crossflow over a single cylinder (Churchill-Bernstein). |
| NU_DITTUS_BOELTER |
Internal convection Nusselt number using Dittus-Boelter. |
Hx
| EFF_NTU |
Solve heat exchanger using the Effectiveness-NTU method. |
| LMTD |
Log-mean temperature difference. |
Insulation
| CP_MATERIAL |
Heat capacity of building, insulating, or refractory materials. |
| K_MATERIAL |
Thermal conductivity of building, insulating, or refractory materials. |
| LIST_MATERIALS |
List all valid material IDs for property lookups. |
| NEAREST_MATERIAL |
Find the nearest material ID hit for a search term. |
| RHO_MATERIAL |
Density of building, insulating, or refractory materials. |
Photovoltaics
| CALCPARAMS_CEC |
Calculate five CEC model parameters for the single diode equation at given irradiance and cell temperature. |
| I_FROM_V |
Calculate the device current at a given device voltage for a PV cell/module using the single diode model. |
| IRRADIANCE |
Calculate the plane of array irradiance components on a tilted surface using PVLib. |
| PVWATTS_DC |
Calculate the DC power output of a PV module using the PVWatts DC model. |
| SOLARPOSITION |
Calculate solar azimuth, elevation, and apparent zenith for given times and location. |
Thermodynamics
| CHEMICAL_PROPS |
Retrieve physical and thermodynamic properties for a chemical specimen. |
| HA_PROPS_SI |
Calculate humid air properties using CoolProp psychrometrics. |
| MIXTURE_FLASH |
Perform a flash calculation for a chemical mixture and return key properties. |
| MIXTURE_STRING |
Create a formatted CoolProp mixture string from component fluids and mole fractions. |
| PHASE_SI |
Identify the phase of a fluid at a given state using CoolProp. |
| PROPS_SI |
Calculate thermophysical properties of fluids using CoolProp. |