[{"id":"section-beam","name":"Beam Bending from Section Properties","description":"Uniform homogeneous linear-elastic slender beam, constant EI, small deflection and principal-axis bending. Loads act in the bending plane without torsion. I is the area second moment about that axis, not polar or mass inertia; c is the farthest material fibre from the neutral axis.","category":"Mechanics","endpoint":"/api/mechanics/section-beam","inputs":[{"name":"support","type":"select","unit":"","required":true,"defaultValue":"0","options":[{"value":"0","label":"Simply supported; point load at center"},{"value":"1","label":"Cantilever; point load at free tip"}]},{"name":"span","type":"number","unit":"m","required":true,"defaultValue":"3"},{"name":"secondMoment","type":"number","unit":"m⁴","required":true,"defaultValue":"0.000027786666666666686"},{"name":"extremeDistance","type":"number","unit":"m","required":true,"defaultValue":"0.1"},{"name":"youngModulus","type":"number","unit":"Pa","required":true,"defaultValue":"200000000000"},{"name":"pointLoad","type":"number","unit":"N","required":true,"defaultValue":"1000"},{"name":"lineLoad","type":"number","unit":"N/m","required":true,"defaultValue":"500"}],"outputs":[{"id":"sectionModulus","label":"Elastic section modulus","unit":"m³","significantDigits":7},{"id":"rigidity","label":"Flexural rigidity EI","unit":"N·m²","significantDigits":7},{"id":"totalLoad","label":"Total downward load","unit":"N","significantDigits":7},{"id":"leftReaction","label":"Upward left reaction","unit":"N","significantDigits":7},{"id":"rightReaction","label":"Upward right reaction","unit":"N","significantDigits":7},{"id":"fixedReactionMoment","label":"Counterclockwise fixed-end reaction moment","unit":"N·m","significantDigits":7},{"id":"maximumMoment","label":"Maximum bending moment magnitude","unit":"N·m","significantDigits":7},{"id":"maximumBendingStress","label":"Maximum bending stress magnitude","unit":"Pa","significantDigits":7},{"id":"maximumShear","label":"Maximum shear force magnitude","unit":"N","significantDigits":7},{"id":"maximumDeflection","label":"Maximum downward deflection","unit":"m","significantDigits":7},{"id":"deflectionSpanRatio","label":"Deflection / span","unit":"","significantDigits":7},{"id":"criticalLocations","label":"Critical locations","unit":"","significantDigits":7}],"sources":[{"title":"MIT Solid Mechanics: Deflections due to Bending, standard cases","url":"https://ocw.mit.edu/courses/1-050-solid-mechanics-fall-2004/f9a4d5764b9b0f51ffaacbdf69f7aed8_emech10_04.pdf#page=6","accessed":"2026-09-08"},{"title":"MIT Solid Mechanics: Stresses, Beams in Bending","url":"https://ocw.mit.edu/courses/1-050-solid-mechanics-fall-2004/8f0200f4ca3236383a2ef048c7ec4c40_emech9_04.pdf","accessed":"2026-09-08"}],"assumptions":["Uniform homogeneous linear-elastic slender beam, constant EI, small deflection and principal-axis bending. Loads act in the bending plane without torsion. I is the area second moment about that axis, not polar or mass inertia; c is the farthest material fibre from the neutral axis.","S = I/c; stress magnitude = Mmax/S. Use the larger extreme distance for an asymmetric section. The tool cannot validate a supplied I and c against a real section. Shear force is reported; no shape-independent shear stress is inferred.","Simply supported: Rleft = Rright = (P + wL)/2; Mmax = PL/4 + wL²/8; δmax = PL³/(48EI) + 5wL⁴/(384EI), both at midspan.","Cantilever: Rleft = P + wL, Rright = 0; reaction moment magnitude = PL + wL²/2; δmax = PL³/(3EI) + wL⁴/(8EI). Moment is largest at the root, deflection at the tip.","Include self-weight in w if relevant. No shear deformation, torsion, yielding, fatigue, local/lateral buckling, connection or design-code assessment. Transferred geometry does not establish a material grade, load or safe capacity."]},{"id":"circular-section","name":"Circular Section Properties","description":"Concentric circular opening; zero inner diameter selects solid. A = π(Do² − Di²)/4; Ix = Iy = π(Do⁴ − Di⁴)/64. A circle has the same centroidal second moment about every in-plane diameter.","category":"Mechanics","endpoint":"/api/mechanics/circular-section","inputs":[{"name":"outerDiameter","type":"number","unit":"m","required":true,"defaultValue":"0.05"},{"name":"innerDiameter","type":"number","unit":"m","required":true,"defaultValue":"0.03"}],"outputs":[{"id":"area","label":"Material area","unit":"m²","significantDigits":7},{"id":"centroidX","label":"Centroid x from left of outer bounding box","unit":"m","significantDigits":7},{"id":"centroidY","label":"Centroid y from bottom of outer bounding box","unit":"m","significantDigits":7},{"id":"secondMomentX","label":"Second moment about horizontal centroidal x-axis","unit":"m⁴","significantDigits":7},{"id":"secondMomentY","label":"Second moment about vertical centroidal y-axis","unit":"m⁴","significantDigits":7},{"id":"polarAreaMoment","label":"Polar second moment of area Ix + Iy","unit":"m⁴","significantDigits":7},{"id":"sectionModulusX","label":"Elastic section modulus about x-axis","unit":"m³","significantDigits":7},{"id":"sectionModulusY","label":"Elastic section modulus about y-axis","unit":"m³","significantDigits":7},{"id":"radiusOfGyrationX","label":"Area radius of gyration about x-axis","unit":"m","significantDigits":7},{"id":"radiusOfGyrationY","label":"Area radius of gyration about y-axis","unit":"m","significantDigits":7}],"sources":[{"title":"Engineering Statics: Moments of Inertia of Common Shapes","url":"https://engineeringstatics.org/MOI-common-shapes.html","accessed":"2026-09-08"},{"title":"Engineering Statics: Radius of Gyration","url":"https://engineeringstatics.org/radius-of-gyration-sec.html","accessed":"2026-09-08"},{"title":"MIT Engineering Beam Theory, Appendix A","url":"https://ocw.mit.edu/courses/1-101-introduction-to-civil-and-environmental-engineering-design-i-fall-2005/6f99034868d8868ff7b170782cffbaca_lab2.pdf#page=11","accessed":"2026-09-08"}],"assumptions":["Concentric circular opening; zero inner diameter selects solid. A = π(Do² − Di²)/4; Ix = Iy = π(Do⁴ − Di⁴)/64. A circle has the same centroidal second moment about every in-plane diameter.","All dimensions in metres. Axes pass through the centroid: x horizontal, y vertical. Centroid coordinates are measured from the bottom-left of the outer bounding box. These are area properties, not mass moments of inertia.","Sx = Ix/(outer height/2), Sy = Iy/(outer width/2); rx = √(Ix/A), ry = √(Iy/A). The section modulus has dimensions of length cubed, but is not a volume of material.","Polar area moment Jp = Ix + Iy. It equals the Saint-Venant torsion constant for a circular solid/annulus, not for a rectangle. No rounded corners, eccentric void, strength rating, local buckling or design-code check is included."]},{"id":"rectangular-section","name":"Rectangular Section Properties","description":"Concentric rectangular opening with sharp corners. Set both inner dimensions to zero for solid. A = bh − bi hi; Ix = (b h³ − bi hi³)/12; Iy = (h b³ − hi bi³)/12. Wall thickness may differ horizontally and vertically.","category":"Mechanics","endpoint":"/api/mechanics/rectangular-section","inputs":[{"name":"width","type":"number","unit":"m","required":true,"defaultValue":"0.1"},{"name":"height","type":"number","unit":"m","required":true,"defaultValue":"0.2"},{"name":"innerWidth","type":"number","unit":"m","required":true,"defaultValue":"0.08"},{"name":"innerHeight","type":"number","unit":"m","required":true,"defaultValue":"0.18"}],"outputs":[{"id":"area","label":"Material area","unit":"m²","significantDigits":7},{"id":"centroidX","label":"Centroid x from left of outer bounding box","unit":"m","significantDigits":7},{"id":"centroidY","label":"Centroid y from bottom of outer bounding box","unit":"m","significantDigits":7},{"id":"secondMomentX","label":"Second moment about horizontal centroidal x-axis","unit":"m⁴","significantDigits":7},{"id":"secondMomentY","label":"Second moment about vertical centroidal y-axis","unit":"m⁴","significantDigits":7},{"id":"polarAreaMoment","label":"Polar second moment of area Ix + Iy","unit":"m⁴","significantDigits":7},{"id":"sectionModulusX","label":"Elastic section modulus about x-axis","unit":"m³","significantDigits":7},{"id":"sectionModulusY","label":"Elastic section modulus about y-axis","unit":"m³","significantDigits":7},{"id":"radiusOfGyrationX","label":"Area radius of gyration about x-axis","unit":"m","significantDigits":7},{"id":"radiusOfGyrationY","label":"Area radius of gyration about y-axis","unit":"m","significantDigits":7}],"sources":[{"title":"Engineering Statics: Moments of Inertia of Common Shapes","url":"https://engineeringstatics.org/MOI-common-shapes.html","accessed":"2026-09-08"},{"title":"Engineering Statics: Radius of Gyration","url":"https://engineeringstatics.org/radius-of-gyration-sec.html","accessed":"2026-09-08"},{"title":"MIT Engineering Beam Theory, Appendix A","url":"https://ocw.mit.edu/courses/1-101-introduction-to-civil-and-environmental-engineering-design-i-fall-2005/6f99034868d8868ff7b170782cffbaca_lab2.pdf#page=11","accessed":"2026-09-08"}],"assumptions":["Concentric rectangular opening with sharp corners. Set both inner dimensions to zero for solid. A = bh − bi hi; Ix = (b h³ − bi hi³)/12; Iy = (h b³ − hi bi³)/12. Wall thickness may differ horizontally and vertically.","All dimensions in metres. Axes pass through the centroid: x horizontal, y vertical. Centroid coordinates are measured from the bottom-left of the outer bounding box. These are area properties, not mass moments of inertia.","Sx = Ix/(outer height/2), Sy = Iy/(outer width/2); rx = √(Ix/A), ry = √(Iy/A). The section modulus has dimensions of length cubed, but is not a volume of material.","Polar area moment Jp = Ix + Iy. It equals the Saint-Venant torsion constant for a circular solid/annulus, not for a rectangle. No rounded corners, eccentric void, strength rating, local buckling or design-code check is included."]},{"id":"normal-shock","name":"Normal Shock: Downstream State and Pressure Loss","description":"Stationary, one-dimensional normal shock; calorically perfect ideal gas, constant R and γ. Upstream Mach must exceed 1 for a shock; exactly 1 is the zero-strength limit. Inputs use the shock-fixed frame, absolute pressure and Kelvin.","category":"Fluid Mechanics","endpoint":"/api/fluids/normal-shock","inputs":[{"name":"absolutePressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"},{"name":"absoluteTemperature","type":"number","unit":"K","required":true,"defaultValue":"288.15"},{"name":"specificGasConstant","type":"number","unit":"J/(kg·K)","required":true,"defaultValue":"287.05"},{"name":"heatCapacityRatio","type":"number","unit":"","required":true,"defaultValue":"1.4"},{"name":"upstreamMach","type":"number","unit":"","required":true,"defaultValue":"2"}],"outputs":[{"id":"upstreamSpeed","label":"Upstream speed","unit":"m/s","significantDigits":7},{"id":"downstreamMach","label":"Downstream Mach","unit":"","significantDigits":7},{"id":"pressureRatio","label":"Static pressure ratio p₂/p₁","unit":"","significantDigits":7},{"id":"densityRatio","label":"Density ratio ρ₂/ρ₁","unit":"","significantDigits":7},{"id":"temperatureRatio","label":"Static temperature ratio T₂/T₁","unit":"","significantDigits":7},{"id":"downstreamPressure","label":"Downstream static absolute pressure","unit":"Pa","significantDigits":7},{"id":"downstreamTemperature","label":"Downstream static temperature","unit":"K","significantDigits":7},{"id":"downstreamDensity","label":"Downstream density","unit":"kg/m³","significantDigits":7},{"id":"downstreamSpeed","label":"Downstream speed","unit":"m/s","significantDigits":7},{"id":"stagnationPressureRatio","label":"Stagnation pressure ratio p₀₂/p₀₁","unit":"","significantDigits":7},{"id":"upstreamStagnationPressure","label":"Upstream stagnation absolute pressure","unit":"Pa","significantDigits":7},{"id":"downstreamStagnationPressure","label":"Downstream stagnation absolute pressure","unit":"Pa","significantDigits":7},{"id":"stagnationPressureLoss","label":"Stagnation pressure loss","unit":"Pa","significantDigits":7},{"id":"stagnationTemperature","label":"Conserved stagnation temperature","unit":"K","significantDigits":7},{"id":"entropyIncrease","label":"Specific entropy increase","unit":"J/(kg·K)","significantDigits":7}],"sources":[{"title":"NASA Glenn: Normal Shock Wave Equations","url":"https://www.grc.nasa.gov/www/k-12/airplane/normal.html","accessed":"2026-09-08"}],"assumptions":["Stationary, one-dimensional normal shock; calorically perfect ideal gas, constant R and γ. Upstream Mach must exceed 1 for a shock; exactly 1 is the zero-strength limit. Inputs use the shock-fixed frame, absolute pressure and Kelvin.","With stations 1 upstream and 2 downstream: p₂/p₁ = 1 + 2γ(M₁² − 1)/(γ + 1); ρ₂/ρ₁ = (γ + 1)M₁²/[(γ − 1)M₁² + 2]; T₂/T₁ = (p₂/p₁)/(ρ₂/ρ₁).","M₂² = [(γ − 1)M₁² + 2]/[2γM₁² − (γ − 1)]. Mass conservation gives V₂/V₁ = ρ₁/ρ₂. Total temperature is conserved; total pressure falls and entropy rises.","p₀₂/p₀₁ = [(ρ₂/ρ₁)^γ/(p₂/p₁)]^[1/(γ − 1)]; Δs = −R ln(p₀₂/p₀₁). Extremely weak shocks may display zero loss at floating-point precision.","No oblique shock, boundary-layer interaction, nozzle location, moving-shock frame conversion, heat transfer, real gas or variable heat capacity. This tool does not determine whether a shock forms. Check the constant-property assumption against the calculated temperatures."]},{"id":"gas-flow-state","name":"Gas Speed of Sound, Mach and Stagnation State","description":"Calorically perfect ideal gas with constant specific gas constant R and γ > 1. Enter static absolute pressure and Kelvin temperature, not stagnation conditions. Defaults approximate dry air; no atmospheric or composition lookup is performed.","category":"Fluid Mechanics","endpoint":"/api/fluids/gas-flow-state","inputs":[{"name":"absolutePressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"},{"name":"absoluteTemperature","type":"number","unit":"K","required":true,"defaultValue":"288.15"},{"name":"specificGasConstant","type":"number","unit":"J/(kg·K)","required":true,"defaultValue":"287.05"},{"name":"heatCapacityRatio","type":"number","unit":"","required":true,"defaultValue":"1.4"},{"name":"speed","type":"number","unit":"m/s","required":true,"defaultValue":"100"}],"outputs":[{"id":"density","label":"Static density","unit":"kg/m³"},{"id":"soundSpeed","label":"Local speed of sound","unit":"m/s"},{"id":"mach","label":"Mach number","unit":"","significantDigits":7},{"id":"specificHeat","label":"Implied constant-pressure specific heat","unit":"J/(kg·K)"},{"id":"temperatureRatio","label":"Stagnation / static temperature","unit":"","significantDigits":8},{"id":"pressureRatio","label":"Stagnation / static pressure","unit":"","significantDigits":8},{"id":"densityRatio","label":"Stagnation / static density","unit":"","significantDigits":8},{"id":"stagnationTemperature","label":"Ideal stagnation temperature","unit":"K"},{"id":"stagnationPressure","label":"Ideal stagnation absolute pressure","unit":"Pa"},{"id":"stagnationDensity","label":"Ideal stagnation density","unit":"kg/m³"},{"id":"stagnationPressureRise","label":"Ideal stagnation minus static pressure","unit":"Pa","significantDigits":7},{"id":"dynamicPressure","label":"Dynamic pressure ½ρv²","unit":"Pa","significantDigits":7}],"sources":[{"title":"NASA Glenn: Isentropic Flow Equations","url":"https://www.grc.nasa.gov/www/k-12/airplane/isentrop.html","accessed":"2026-09-08"},{"title":"NASA Glenn: Speed of Sound","url":"https://www.grc.nasa.gov/WWW/k-12/VirtualAero/BottleRocket/airplane/sound.html","accessed":"2026-09-08"}],"assumptions":["Calorically perfect ideal gas with constant specific gas constant R and γ > 1. Enter static absolute pressure and Kelvin temperature, not stagnation conditions. Defaults approximate dry air; no atmospheric or composition lookup is performed.","ρ = p/(RT); a = √(γRT); M = v/a. Mach depends on the local gas state, not a universal speed factor. R is per kilogram, not the universal molar gas constant.","Let F = 1 + (γ − 1)M²/2. Then T0/T = F, p0/p = F^[γ/(γ − 1)], and ρ0/ρ = F^[1/(γ − 1)]. The stagnation state represents ideal isentropic deceleration to rest.","cp = γR/(γ − 1) and cp(T0 − T) = v²/2. Dynamic pressure q = ρv²/2 is generally different from p0 − p in compressible flow; they approach one another at low Mach number.","No shocks, friction, heat exchange, nozzle solution, variable heat capacities, condensation, dissociation or real-gas effects. The ideal p0 is not the downstream reading of a supersonic Pitot probe across a shock. Check constant-property validity over the calculated temperature range."]},{"id":"shaft-torsion","name":"Circular Shaft Torsion and Power","description":"Uniform circular shaft with concentric bore, homogeneous isotropic material, constant torque and linear elastic small-strain response. Enter diameters, not radii. Inner diameter zero selects a solid shaft.","category":"Mechanics","endpoint":"/api/mechanics/shaft-torsion","inputs":[{"name":"outerDiameter","type":"number","unit":"m","required":true,"defaultValue":"0.05"},{"name":"innerDiameter","type":"number","unit":"m","required":true,"defaultValue":"0.03"},{"name":"length","type":"number","unit":"m","required":true,"defaultValue":"1"},{"name":"shearModulus","type":"number","unit":"Pa","required":true,"defaultValue":"80000000000"},{"name":"torque","type":"number","unit":"N·m","required":true,"defaultValue":"500"},{"name":"speed","type":"number","unit":"rpm","required":true,"defaultValue":"1500"}],"outputs":[{"id":"polarMoment","label":"Polar second moment of area","unit":"m⁴","significantDigits":7},{"id":"torsionalStiffness","label":"Torsional stiffness","unit":"N·m/rad"},{"id":"twistRadians","label":"Signed end-to-end twist","unit":"rad"},{"id":"twistDegrees","label":"Signed end-to-end twist","unit":"°"},{"id":"maximumShearStress","label":"Maximum shear stress magnitude","unit":"Pa"},{"id":"maximumShearStrain","label":"Maximum engineering shear strain","unit":"","significantDigits":7},{"id":"angularSpeed","label":"Signed angular speed","unit":"rad/s"},{"id":"power","label":"Signed mechanical power","unit":"W"},{"id":"strainEnergy","label":"Stored elastic strain energy","unit":"J"}],"sources":[{"title":"MIT OpenCourseWare, David Roylance: Shear and Torsion, equations 8 and 12–14 and strain energy","url":"https://ocw.mit.edu/courses/3-11-mechanics-of-materials-fall-1999/0e0845a9e3abe430080eaffb0c5015ba_MIT3_11F99_torsion.pdf","accessed":"2026-09-08"}],"assumptions":["Uniform circular shaft with concentric bore, homogeneous isotropic material, constant torque and linear elastic small-strain response. Enter diameters, not radii. Inner diameter zero selects a solid shaft.","J = π(Do⁴ − Di⁴)/32; τmax = |T|Do/(2J). J is a second moment of area, not a mass moment of inertia.","Twist θ = TL/(GJ), stiffness = GJ/L, γmax = τmax/G, elastic energy = Tθ/2. θ is relative end rotation, not the total rotation of the running shaft.","Angular speed ω = 2πn/60 and mechanical power P = Tω. Use the same positive axis for torque and speed. Opposite signs give negative power; reversing torque reverses twist but preserves stress magnitude and elastic energy.","Does not assess keyways, stress concentrations, yielding, combined bending, fatigue, buckling, critical speed, bearings or losses. A noncircular section cannot use this J as its torsion constant. No safe torque or equipment rating is inferred."]},{"id":"ac-power","name":"AC Power: Single and Balanced Three Phase","description":"Sinusoidal steady-state AC power for a passive single-phase load or a balanced three-phase load. Enter RMS values and displacement power factor from 0 to 1.","category":"Electrical","endpoint":"/api/electrical/ac-power","inputs":[{"name":"phases","type":"select","unit":"","required":true,"defaultValue":"3","options":[{"value":"1","label":"Single phase"},{"value":"3","label":"Balanced three phase"}]},{"name":"voltage","type":"number","unit":"V","required":true,"defaultValue":"400"},{"name":"current","type":"number","unit":"A","required":true,"defaultValue":"10"},{"name":"powerFactor","type":"number","unit":"","required":true,"defaultValue":"0.8"},{"name":"reactiveDirection","type":"select","unit":"","required":true,"defaultValue":"0","options":[{"value":"0","label":"Lagging, inductive load"},{"value":"1","label":"Leading, capacitive load"}]}],"outputs":[{"id":"activePower","label":"Total active power","unit":"W"},{"id":"reactivePower","label":"Total reactive power, positive inductive","unit":"var"},{"id":"apparentPower","label":"Total apparent power","unit":"VA"},{"id":"phaseAngle","label":"Specified phase angle, positive lagging","unit":"°"},{"id":"activePerPhase","label":"Active power per phase","unit":"W"}],"sources":[{"title":"US DOE Electrical Science Volume 3, ES-09: power triangle and balanced three-phase loads","url":"https://www.energy.gov/sites/default/files/2026-04/DOE-HDBK-1011-92_VOL3.pdf","accessed":"2026-09-08"}],"assumptions":["Sinusoidal steady-state AC power for a passive single-phase load or a balanced three-phase load. Enter RMS values and displacement power factor from 0 to 1.","Single phase: S = VI. Balanced three phase: S = √3 VL IL, where VL is line-to-line RMS voltage and IL is line RMS current. The latter applies to balanced wye or delta loads without substituting phase values for line values.","P = S cosφ = S PF. Q = ±S√(1 − PF²); positive for lagging inductive current and negative for leading capacitive current. Specified angle φ = ±acos(PF) is the per-phase impedance angle, not the angle between a line-to-line voltage and line current. At zero current, all powers are zero; the angle only reflects the specified input.","P is in watts, Q in var and S in volt-amperes. For balanced three phase, active power per phase is P/3. Unity power factor gives Q = 0.","Does not model harmonic distortion, unbalanced phases, exported active power, transients or motor efficiency. Displacement power factor need not equal true power factor for distorted waveforms. Results are not conductor ampacity, protection or equipment-rating selections."]},{"id":"series-rlc","name":"Series RLC Circuit and Resonance","description":"Sinusoidal steady-state series RLC circuit with ideal linear components and positive total series resistance. Enter RMS source voltage, frequency in Hz, inductance in henries and capacitance in farads.","category":"Electrical","endpoint":"/api/electrical/series-rlc","inputs":[{"name":"voltage","type":"number","unit":"V","required":true,"defaultValue":"120"},{"name":"frequency","type":"number","unit":"Hz","required":true,"defaultValue":"60"},{"name":"resistance","type":"number","unit":"Ω","required":true,"defaultValue":"30"},{"name":"inductance","type":"number","unit":"H","required":true,"defaultValue":"0.1"},{"name":"capacitance","type":"number","unit":"F","required":true,"defaultValue":"0.0001"}],"outputs":[{"id":"current","label":"Series RMS current","unit":"A"},{"id":"impedance","label":"Impedance magnitude","unit":"Ω"},{"id":"reactance","label":"Net reactance, positive inductive","unit":"Ω"},{"id":"inductiveReactance","label":"Inductive reactance","unit":"Ω"},{"id":"capacitiveReactance","label":"Capacitive reactance magnitude","unit":"Ω"},{"id":"phaseAngle","label":"Voltage phase relative to current","unit":"°"},{"id":"powerFactor","label":"Displacement power factor","unit":""},{"id":"activePower","label":"Active power in resistance","unit":"W"},{"id":"reactivePower","label":"Net reactive power","unit":"var"},{"id":"apparentPower","label":"Apparent power","unit":"VA"},{"id":"resistorVoltage","label":"Resistor RMS voltage","unit":"V"},{"id":"inductorVoltage","label":"Inductor RMS voltage","unit":"V"},{"id":"capacitorVoltage","label":"Capacitor RMS voltage","unit":"V"},{"id":"resonanceFrequency","label":"Ideal LC resonance frequency","unit":"Hz"}],"sources":[{"title":"MIT OpenCourseWare Physics II: AC Circuits, series RLC and average power, sections 12.3–12.4","url":"https://ocw.mit.edu/courses/8-02-physics-ii-electricity-and-magnetism-spring-2007/e7fd966c84001f4e8fc0f58a6751013e_cha12ac_circuits.pdf","accessed":"2026-09-08"}],"assumptions":["Sinusoidal steady-state series RLC circuit with ideal linear components and positive total series resistance. Enter RMS source voltage, frequency in Hz, inductance in henries and capacitance in farads.","ω = 2πf; XL = ωL; XC = 1/(ωC); X = XL − XC. The special input C = 0 bypasses the capacitor (XC = 0); it does not represent a physical zero-capacitance component. L = 0 omits the inductor.","Z = R + jX, |Z| = √(R² + X²), I = V/|Z|, φ = atan2(X,R), PF = R/|Z|. Positive φ means inductive impedance and lagging current; negative φ means capacitive impedance and leading current.","P = I²R; Q = I²X; S = VI. Component RMS voltages are IR, IXL and IXC. They add as phasors: V² = VR² + (VL − VC)², not as scalar magnitudes.","With both L and C present, f0 = 1/(2π√(LC)). At resonance the net reactance vanishes, but the individual L/C voltages can exceed the source voltage. Finite positive resistance is required; the ideal zero-resistance resonance singularity is excluded.","No switching transient, parasitics beyond the supplied series resistance, saturation, frequency-dependent losses, nonlinear load, harmonics or thermal rating calculation. Component and source ratings require a separate assessment."]},{"id":"water-properties","name":"Liquid Water Properties by Temperature and Pressure","description":"Pure liquid water properties from temperature and absolute pressure, using IAPWS SR6-08(2011) and SR1-86(1992). Supported range: 0.01–110 °C, pressure at or above saturation and no greater than 0.3 MPa (300000 Pa).","category":"Hydraulics","endpoint":"/api/fluids/water-properties","inputs":[{"name":"temperature","type":"number","unit":"°C","required":true,"defaultValue":"20"},{"name":"pressure","type":"number","unit":"Pa","required":true,"defaultValue":"100000"}],"outputs":[{"id":"density","label":"Density","unit":"kg/m³","significantDigits":7},{"id":"viscosity","label":"Dynamic viscosity","unit":"Pa·s","significantDigits":6},{"id":"kinematicViscosity","label":"Kinematic viscosity","unit":"m²/s","significantDigits":6},{"id":"specificHeat","label":"Specific heat at constant pressure","unit":"J/(kg·K)","significantDigits":6},{"id":"conductivity","label":"Thermal conductivity","unit":"W/(m·K)","significantDigits":6},{"id":"thermalDiffusivity","label":"Thermal diffusivity","unit":"m²/s","significantDigits":6},{"id":"prandtlNumber","label":"Prandtl number","unit":"","significantDigits":6},{"id":"thermalExpansion","label":"Volumetric thermal expansion coefficient","unit":"1/K","significantDigits":6},{"id":"compressibility","label":"Isothermal compressibility","unit":"1/Pa","significantDigits":6},{"id":"soundSpeed","label":"Speed of sound","unit":"m/s","significantDigits":6},{"id":"vaporPressure","label":"Saturation vapor pressure","unit":"Pa","significantDigits":6},{"id":"specificVolume","label":"Specific volume","unit":"m³/kg","significantDigits":7}],"sources":[{"title":"IAPWS SR6-08(2011): Properties of Liquid Water, coefficients, pressure corrections and verification Table 8","url":"https://iapws.org/technical-guidance/release/LiquidWater.download","accessed":"2026-09-08"},{"title":"IAPWS SR1-86(1992): Saturation Properties, vapor pressure equation 1","url":"https://iapws.org/public/documents/6dGkr/Supp-sat.pdf","accessed":"2026-09-08"}],"assumptions":["Pure liquid water properties from temperature and absolute pressure, using IAPWS SR6-08(2011) and SR1-86(1992). Supported range: 0.01–110 °C, pressure at or above saturation and no greater than 0.3 MPa (300000 Pa).","Calculate the 0.1 MPa reference specific volume and derivatives from SR6 equations 2–3, heat capacity from Table 2, then apply the limited-pressure corrections in Table 4. Density is the reciprocal of specific volume. Table 3 gives expansivity, compressibility and sound speed.","Dynamic viscosity and thermal conductivity use SR6 equations 7–8; section 6 permits these temperature correlations throughout the supported pressure range. Kinematic viscosity = μ/ρ, thermal diffusivity = k/(ρ cp), and Prandtl number = μ cp/k.","Saturation pressure uses SR1 equation 1. Below-saturation pressure, freezing-range temperatures and pressures above 0.3 MPa are rejected. At saturation, outputs describe the liquid branch, not a liquid-vapor mixture.","SR6 reports stable-region uncertainties of about 0.0001% for density, 0.1% for heat capacity, 0.005% for sound speed, 1% for viscosity and 1.5% for conductivity. Extra displayed digits aid reproducibility; they do not imply matching measurement accuracy.","Ordinary pure water only. Salinity, glycol, dissolved additives, steam, ice, supercooled liquid and high-pressure service require other property models. This implementation is independently verified against release tables, not certified by IAPWS."]},{"id":"water-pipe-loss","name":"Water Pipe Pressure Loss with Temperature","description":"Calculate pure-water density and viscosity from temperature and inlet pressure, then estimate straight horizontal pipe friction. Liquid-water range: 0.01–110 °C and saturation pressure through 300000 Pa absolute.","category":"Hydraulics","endpoint":"/api/hydraulics/water-pipe-loss","inputs":[{"name":"temperature","type":"number","unit":"°C","required":true,"defaultValue":"20"},{"name":"inletPressure","type":"number","unit":"Pa","required":true,"defaultValue":"200000"},{"name":"flowRate","type":"number","unit":"m³/s","required":true,"defaultValue":"0.001"},{"name":"length","type":"number","unit":"m","required":true,"defaultValue":"20"},{"name":"diameter","type":"number","unit":"m","required":true,"defaultValue":"0.025"},{"name":"roughness","type":"number","unit":"m","required":true,"defaultValue":"0.000015"}],"outputs":[{"id":"pressureDrop","label":"Friction pressure loss","unit":"Pa"},{"id":"headLoss","label":"Friction head loss","unit":"m"},{"id":"outletPressure","label":"Estimated absolute outlet pressure","unit":"Pa"},{"id":"velocity","label":"Mean velocity","unit":"m/s"},{"id":"reynoldsNumber","label":"Reynolds number","unit":""},{"id":"frictionFactor","label":"Darcy friction factor","unit":""},{"id":"density","label":"Calculated inlet water density","unit":"kg/m³","significantDigits":7},{"id":"viscosity","label":"Calculated water dynamic viscosity","unit":"Pa·s","significantDigits":6},{"id":"vaporPressure","label":"Water saturation pressure","unit":"Pa","significantDigits":6},{"id":"flowRegime","label":"Flow regime","unit":""}],"sources":[{"title":"IAPWS SR6-08(2011): Liquid water density and viscosity with pressure corrections","url":"https://iapws.org/technical-guidance/release/LiquidWater.download","accessed":"2026-09-08"},{"title":"IAPWS SR1-86(1992): Saturation vapor pressure","url":"https://iapws.org/public/documents/6dGkr/Supp-sat.pdf","accessed":"2026-09-08"},{"title":"US EPA: EPANET 2.2 User Manual, Darcy–Weisbach and friction-factor methods","url":"https://usepa.github.io/EPANET2.2/3_network_model.html","accessed":"2026-09-08"}],"assumptions":["Calculate pure-water density and viscosity from temperature and inlet pressure, then estimate straight horizontal pipe friction. Liquid-water range: 0.01–110 °C and saturation pressure through 300000 Pa absolute.","IAPWS SR6-08(2011) supplies temperature-dependent water properties with limited-pressure corrections. Properties are held at their inlet values along this constant-diameter, isothermal pipe.","Velocity = 4Q/(πD²), Re = ρvD/μ. Darcy f = 64/Re below Re 2300, otherwise the Swamee–Jain approximation. The transitional range 2300–4000 is flagged as uncertain; EPANET transitional interpolation is not implemented. Q = 0 gives zero loss.","ΔP = f(L/D)ρv²/2; head loss = ΔP/(ρg), g = 9.80665 m/s². Outlet pressure = inlet pressure − ΔP. Reject a predicted outlet pressure below saturation rather than applying a single-phase result there.","No fittings, valves, elevation change, pump, developing-flow correction, water hammer or heat transfer. Use actual internal diameter and a documented roughness; defaults are illustrative. A passing saturation check is not a cavitation assessment of other system components."]},{"id":"liquid-valve","name":"Liquid Control Valve Kv and Choking","description":"For turbulent liquid flow with no attached fittings correction: ΔP = P1 − P2; FF = 0.96 − 0.28√(Pv/Pc); ΔPchoked = FL²(P1 − FF Pv). All pressures must be absolute and use the same units.","category":"Valves","endpoint":"/api/valves/liquid-sizing","inputs":[{"name":"flowRate","type":"number","unit":"m³/s","required":true,"defaultValue":"0.005"},{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"1000"},{"name":"inletPressure","type":"number","unit":"Pa","required":true,"defaultValue":"300000"},{"name":"outletPressure","type":"number","unit":"Pa","required":true,"defaultValue":"250000"},{"name":"vaporPressure","type":"number","unit":"Pa","required":true,"defaultValue":"3000"},{"name":"criticalPressure","type":"number","unit":"Pa","required":true,"defaultValue":"22064000"},{"name":"recoveryFactor","type":"number","unit":"","required":true,"defaultValue":"0.9"}],"outputs":[{"id":"kv","label":"Required Kv using limiting pressure drop","unit":"m³/h"},{"id":"uncorrectedKv","label":"Kv ignoring choking, for comparison only","unit":"m³/h"},{"id":"pressureDrop","label":"Actual pressure drop","unit":"Pa"},{"id":"chokedPressureDrop","label":"Calculated choking pressure drop","unit":"Pa"},{"id":"effectivePressureDrop","label":"Pressure drop used for sizing","unit":"Pa"},{"id":"criticalRatio","label":"Liquid critical pressure ratio factor, FF","unit":""},{"id":"regime","label":"Choking assessment","unit":""},{"id":"phaseAssessment","label":"Outlet phase screening","unit":""}],"sources":[{"title":"Bürkert: Fluid Calculator, liquid Kv equation","url":"https://www.burkert.com/en/service-support/knowledge-center/glossary/fluid-calculator","accessed":"2026-09-08"},{"title":"Emerson: Understanding Choked Flow in Fisher Valves, D104173X012, September 2017","url":"https://www.emerson.com/is/content/emerson/en/final-control/flow-controls/documents/d104173x012.pdf","accessed":"2026-09-08"},{"title":"Emerson: Control Valve Sourcebook, liquid sizing and limiting pressure drop","url":"https://www.emerson.com/is/content/emerson/en/final-control/flow-controls/documents/d103540x012.pdf","accessed":"2026-09-08"}],"assumptions":["For turbulent liquid flow with no attached fittings correction: ΔP = P1 − P2; FF = 0.96 − 0.28√(Pv/Pc); ΔPchoked = FL²(P1 − FF Pv). All pressures must be absolute and use the same units.","Use ΔPeffective = min(ΔP, ΔPchoked). Convert Q from m³/s to m³/h and ΔPeffective from Pa to bar. Kv = Q(m³/h)√[(ρ/1000)/(ΔPeffective in bar)]. Kv is a flow coefficient referenced to water and 1 bar, not the actual service flow.","Assumes turbulent service, liquid at the inlet and piping geometry factor FP = 1. No Reynolds/viscosity correction, attached reducers, staged trim, gas, steam or inlet two-phase sizing is implemented.","FL must match manufacturer data for the candidate valve, trim and travel. Defaults are teaching assumptions, not a selected valve or verified fluid-property state. Repeat at minimum, normal and maximum operating cases.","Below the choking limit does not establish cavitation-free operation. Outlet pressure below vapor pressure indicates flashing; damage and noise are not predicted. Assess pressure recovery, materials and service limits with manufacturer data.","Kv alone does not determine nominal valve size, opening, rangeability, actuator capability or control stability. The comparison ignoring choking must not replace the limiting-pressure result."]},{"id":"insulated-pipe","name":"Pipe Heat Transfer and Insulation","description":"Steady one-dimensional radial heat flow, constant properties and bulk temperatures along the length; perfect layer contact, no internal heat generation. Actual diameters are required, not nominal pipe sizes.","category":"Thermal","endpoint":"/api/thermal/insulated-pipe","inputs":[{"name":"length","type":"number","unit":"m","required":true,"defaultValue":"10"},{"name":"innerDiameter","type":"number","unit":"m","required":true,"defaultValue":"0.020"},{"name":"pipeOuterDiameter","type":"number","unit":"m","required":true,"defaultValue":"0.022"},{"name":"pipeConductivity","type":"number","unit":"W/(m·K)","required":true,"defaultValue":"380"},{"name":"insulationThickness","type":"number","unit":"m","required":true,"defaultValue":"0.020"},{"name":"insulationConductivity","type":"number","unit":"W/(m·K)","required":true,"defaultValue":"0.040"},{"name":"innerFilm","type":"number","unit":"W/(m²·K)","required":true,"defaultValue":"1000"},{"name":"outerFilm","type":"number","unit":"W/(m²·K)","required":true,"defaultValue":"10"},{"name":"fluidTemperature","type":"number","unit":"K","required":true,"defaultValue":"333.15"},{"name":"ambientTemperature","type":"number","unit":"K","required":true,"defaultValue":"293.15"}],"outputs":[{"id":"heatRate","label":"Heat transfer, positive outward","unit":"W"},{"id":"heatPerLength","label":"Heat transfer per length","unit":"W/m"},{"id":"thermalResistance","label":"Total thermal resistance","unit":"K/W"},{"id":"innerSurface","label":"Pipe inner surface temperature","unit":"K"},{"id":"pipeOuterSurface","label":"Pipe outer surface temperature","unit":"K"},{"id":"outerSurface","label":"Exposed surface temperature","unit":"K"},{"id":"bareHeatRate","label":"Bare pipe heat transfer, same film coefficients","unit":"W"},{"id":"magnitudeReduction","label":"Reduction in heat-transfer magnitude vs bare pipe","unit":"W"},{"id":"outerDiameter","label":"Diameter including insulation","unit":"m"}],"sources":[{"title":"US DOE Fundamentals Handbook, Heat Transfer: cylindrical conduction pp. 11–17 and combined convection pp. 20–23","url":"https://www.energy.gov/sites/default/files/2026-04/DOE-HDBK-1012-92_VOL2.pdf","accessed":"2026-09-08"}],"assumptions":["Steady one-dimensional radial heat flow, constant properties and bulk temperatures along the length; perfect layer contact, no internal heat generation. Actual diameters are required, not nominal pipe sizes.","For length L: inner-film resistance = 1/(hi π Di L); pipe resistance = ln(Do/Di)/(2π kp L); insulation resistance = ln((Do + 2t)/Do)/(2π ki L); outer-film resistance = 1/(ho π (Do + 2t) L).","Add the four resistances. Q = (Tfluid − Tambient)/Rtotal; heat per length = Q/L. Each surface temperature follows from the preceding temperature minus Q times that layer resistance. Negative Q means heat enters the pipe.","Bare comparison removes insulation and uses the bare outer surface area with the same film coefficients. Magnitude reduction = |Qbare| − |Q|; a negative result means increased heat transfer. Added insulation need not reduce heat transfer for every radius and fixed coefficient.","Defaults are a constructed teaching case, not certified copper or insulation properties. Supply conductivities at the relevant temperatures and convection coefficients for the actual flow conditions. The comparison assumes these coefficients remain unchanged.","Radiation, axial fluid cooling, fittings/supports, thermal bridges, fouling/contact resistance, moisture, condensation and transient effects are excluded. This is not an insulation product selection, minimum thickness requirement or economic optimum."]},{"id":"rectangular-beam","name":"Rectangular Beam Stress and Deflection","description":"Analyze a solid rectangular beam under a downward point load plus a uniform full-span load. Choose simple supports with a central point load, or a left-fixed cantilever with a tip load.","category":"Mechanics","endpoint":"/api/mechanics/rectangular-beam","inputs":[{"name":"support","type":"select","unit":"","required":true,"defaultValue":"0","options":[{"value":"0","label":"Simply supported; point load at center"},{"value":"1","label":"Cantilever; point load at free tip"}]},{"name":"span","type":"number","unit":"m","required":true,"defaultValue":"3"},{"name":"width","type":"number","unit":"m","required":true,"defaultValue":"0.1"},{"name":"depth","type":"number","unit":"m","required":true,"defaultValue":"0.2"},{"name":"youngModulus","type":"number","unit":"Pa","required":true,"defaultValue":"200000000000"},{"name":"pointLoad","type":"number","unit":"N","required":true,"defaultValue":"1000"},{"name":"lineLoad","type":"number","unit":"N/m","required":true,"defaultValue":"500"}],"outputs":[{"id":"area","label":"Section area","unit":"m²"},{"id":"secondMoment","label":"Second moment of area about bending axis","unit":"m⁴"},{"id":"sectionModulus","label":"Elastic section modulus","unit":"m³"},{"id":"rigidity","label":"Flexural rigidity EI","unit":"N·m²"},{"id":"totalLoad","label":"Total downward load","unit":"N"},{"id":"leftReaction","label":"Left support reaction, upward","unit":"N"},{"id":"rightReaction","label":"Right support reaction, upward","unit":"N"},{"id":"fixedReactionMoment","label":"Fixed-end external reaction, counterclockwise","unit":"N·m"},{"id":"maximumMoment","label":"Maximum bending moment magnitude","unit":"N·m"},{"id":"maximumBendingStress","label":"Maximum elastic bending stress magnitude","unit":"Pa"},{"id":"maximumShear","label":"Maximum shear force magnitude","unit":"N"},{"id":"maximumShearStress","label":"Maximum rectangular-section shear stress","unit":"Pa"},{"id":"maximumDeflection","label":"Maximum downward bending deflection","unit":"m"},{"id":"deflectionSpanRatio","label":"Deflection / span","unit":"1"},{"id":"criticalLocations","label":"Critical locations","unit":""}],"sources":[{"title":"MIT Solid Mechanics: beam displacement formulas, page 2","url":"https://ocw.mit.edu/courses/1-050-solid-mechanics-fall-2004/fd4eff39aec922b8c07660006f40686e_pset04_11.pdf","accessed":"2026-09-08"},{"title":"MIT Mechanics of Materials: stresses in beams","url":"https://web.mit.edu/course/3/3.11/www/modules/bstress.pdf","accessed":"2026-09-08"}],"assumptions":["Analyze a solid rectangular beam under a downward point load plus a uniform full-span load. Choose simple supports with a central point load, or a left-fixed cantilever with a tip load.","Dimensions define the bending axis: I = bd³/12, S = bd²/6, A = bd. Depth is the dimension in the direction of transverse deflection.","For simple supports: each reaction = (P + qL)/2; Mmax = PL/4 + qL²/8; δmax = PL³/(48EI) + 5qL⁴/(384EI).","For a cantilever: upward reaction = P + qL; external reaction moment = PL + qL²/2; δmax = PL³/(3EI) + qL⁴/(8EI).","Bending stress magnitude = Mmax/S; maximum rectangular-section shear stress = 1.5Vmax/A. These maxima occur at different section locations and are not a combined failure criterion.","Assumes a straight, prismatic, homogeneous beam with linear elasticity, small deflections and ideal supports. Deflection includes bending only; shear deformation, torsion, axial force and support settlement are excluded.","Enter total service loads, including self-weight in the uniform load if needed. Both loads are downward and may be zero. No material strength, buckling, fatigue, connection, deflection-limit or building-code check is performed.","With the illustrative defaults: each support carries 1250 N, maximum moment is 1312.5 N·m, and maximum deflection is 0.0000817383 m. The modulus is an example, not a verified material selection."]},{"id":"humid-air","name":"Humid Air Properties","description":"Calculate humidity ratio, dew/frost point, enthalpy, specific volume and moist-air density from temperature, relative humidity and absolute pressure.","category":"HVAC","endpoint":"/api/hvac/humid-air","inputs":[{"name":"dryBulb","type":"number","unit":"°C","required":true,"defaultValue":"25"},{"name":"relativeHumidity","type":"number","unit":"%","required":true,"defaultValue":"50"},{"name":"pressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"}],"outputs":[{"id":"humidityRatio","label":"Humidity ratio","unit":"kg water/kg dry air"},{"id":"specificHumidity","label":"Specific humidity","unit":"kg water/kg moist air"},{"id":"dewFrostPoint","label":"Dew point over water / frost point over ice","unit":"°C"},{"id":"enthalpy","label":"Enthalpy per mass of dry air","unit":"J/kg dry air"},{"id":"specificVolume","label":"Volume per mass of dry air","unit":"m³/kg dry air"},{"id":"density","label":"Total moist-air density","unit":"kg/m³"},{"id":"vaporPressure","label":"Water-vapor partial pressure","unit":"Pa"},{"id":"saturationVaporPressure","label":"Saturation vapor pressure","unit":"Pa"},{"id":"saturationBasis","label":"Relative humidity reference phase","unit":""}],"sources":[{"title":"PsychroLib: ASHRAE-based psychrometric equations and documentation","url":"https://psychrometrics.github.io/psychrolib/api_docs.html","accessed":"2026-09-08"},{"title":"PsychroLib MIT license and adaptation attribution","url":"/licenses/psychrolib.txt","accessed":"2026-09-08"}],"assumptions":["Calculate humidity ratio, dew/frost point, enthalpy, specific volume and moist-air density from temperature, relative humidity and absolute pressure.","Supported inputs: −50 to 80 °C, 0–100% RH and 20–120 kPa absolute. Total pressure must exceed saturation vapor pressure at the dry-bulb temperature.","ASHRAE saturation equations use ice at or below 0.01 °C and liquid water above it. RH is relative to that phase; subfreezing RH reported relative to liquid water must be converted before use.","Water-vapor pressure is RH/100 times saturation pressure. W = 0.621945 pv/(p − pv); specific humidity = W/(1 + W).","Enthalpy h = 1000[1.006T + W(2501 + 1.86T)] J/kg dry air, with T in °C and the conventional dry-air/liquid-water zero at 0 °C. It is not enthalpy per kg of moist air.","v = 287.042(T + 273.15)(1 + 1.607858W)/p; total density = (1 + W)/v. Assumes ideal moist air with no liquid droplets or real-gas corrections.","Dew/frost point inverts the saturation equation. Dry air has no finite dew point; results below −100 °C are reported outside the model range. These labels are returned as strings in the API.","Adapted coefficients from MIT-licensed PsychroLib; the numerical inversion, exact zero-humidity behavior and restricted operating domain differ from that library."]},{"id":"air-temperature-process","name":"Air Heating, Cooling and Condensate","description":"Uniformly heat or cool an ideal moist-air stream at constant pressure to a specified outlet temperature. If cooling reaches saturation, remove liquid water and return saturated outlet air. No bypass or added moisture is modeled.","category":"HVAC","endpoint":"/api/hvac/air-temperature-process","inputs":[{"name":"dryAirFlow","type":"number","unit":"kg dry air/s","required":true,"defaultValue":"1"},{"name":"inletTemperature","type":"number","unit":"°C","required":true,"defaultValue":"30"},{"name":"inletRelativeHumidity","type":"number","unit":"%","required":true,"defaultValue":"50"},{"name":"outletTemperature","type":"number","unit":"°C","required":true,"defaultValue":"10"},{"name":"pressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"}],"outputs":[{"id":"heatRemoved","label":"Heat removed, negative for heat added","unit":"W"},{"id":"airEnthalpyReduction","label":"Air-stream enthalpy reduction","unit":"W"},{"id":"condensateEnthalpyFlow","label":"Energy leaving in drained water","unit":"W"},{"id":"condensateFlow","label":"Condensate mass flow","unit":"kg/s","significantDigits":6},{"id":"condensateHourly","label":"Hourly condensate mass","unit":"kg/h"},{"id":"inletHumidityRatio","label":"Inlet humidity ratio","unit":"kg water/kg dry air","significantDigits":6},{"id":"outletHumidityRatio","label":"Outlet humidity ratio","unit":"kg water/kg dry air","significantDigits":6},{"id":"outletRelativeHumidity","label":"Outlet relative humidity","unit":"%"},{"id":"inletEnthalpy","label":"Inlet enthalpy","unit":"J/kg dry air"},{"id":"outletEnthalpy","label":"Outlet enthalpy","unit":"J/kg dry air"},{"id":"inletVolumeFlow","label":"Inlet volume flow","unit":"m³/s"},{"id":"outletVolumeFlow","label":"Outlet volume flow","unit":"m³/s"},{"id":"process","label":"Ideal process","unit":""}],"sources":[{"title":"ASHRAE Fundamentals 2025, Chapter 1: sensible heating/cooling and cooling with dehumidification","url":"https://handbook.ashrae.org/Handbooks/F25/SI/F25_Ch01/F25_Ch01_si.aspx","accessed":"2026-09-08"},{"title":"PsychroLib moist-air enthalpy, saturation and volume relationships","url":"https://psychrometrics.github.io/psychrolib/api_docs.html","accessed":"2026-09-08"},{"title":"PsychroLib MIT license and adaptation attribution","url":"/licenses/psychrolib.txt","accessed":"2026-09-08"}],"assumptions":["Uniformly heat or cool an ideal moist-air stream at constant pressure to a specified outlet temperature. If cooling reaches saturation, remove liquid water and return saturated outlet air. No bypass or added moisture is modeled.","Dry-air mass flow must be positive. Inlet: −50 to 80 °C and 0–100% RH. Outlet: 0–80 °C, excluding ice/frost processing. Pressure: 20–120 kPa absolute and above saturation pressure at both temperatures.","Wout = min(Win, Wsat(Tout)). Without condensation, W is unchanged and RH changes with temperature. With condensation, outlet RH is 100%. Condensate flow = mda(Win − Wout).","Heat removed = mda(hin − hout) − mcond hw,out. Here h is in J/kg dry air, and liquid-water enthalpy is approximated as hw,out = 4186 Tout J/kg relative to liquid water at 0 °C. Condensate leaves at outlet temperature.","Positive heatRemoved means cooling; negative means heating. It is thermal transfer, not electrical input, compressor power or a selected equipment capacity. No arbitrary sensible/latent split is imposed.","Convert measured inlet volume flow to dry-air mass flow with mda = Qin/vin using the inlet specific volume. Moist-air mass flow is a different basis. The output shows both inlet and outlet volume flows.","No coil bypass factor, apparatus dew point, fan heat, heat leakage, pressure drop, frost, re-evaporation, humidity control or real-gas correction. A real coil can produce an unsaturated outlet; this ideal saturation model does not predict its detailed performance."]},{"id":"air-mixing","name":"Adiabatic Mixing of Two Humid Airstreams","description":"Mix two ideal moist-air streams adiabatically at a common pressure, with no work, heat transfer, added water or condensation. Inputs are dry-air mass flows, not total moist-air mass flows or volume flows.","category":"HVAC","endpoint":"/api/hvac/air-mixing","inputs":[{"name":"dryAirFlow1","type":"number","unit":"kg dry air/s","required":true,"defaultValue":"1"},{"name":"dryBulb1","type":"number","unit":"°C","required":true,"defaultValue":"10"},{"name":"relativeHumidity1","type":"number","unit":"%","required":true,"defaultValue":"60"},{"name":"dryAirFlow2","type":"number","unit":"kg dry air/s","required":true,"defaultValue":"3"},{"name":"dryBulb2","type":"number","unit":"°C","required":true,"defaultValue":"25"},{"name":"relativeHumidity2","type":"number","unit":"%","required":true,"defaultValue":"50"},{"name":"pressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"}],"outputs":[{"id":"dryBulb","label":"Mixed dry-bulb temperature","unit":"°C"},{"id":"relativeHumidity","label":"Mixed relative humidity","unit":"%"},{"id":"totalDryAirFlow","label":"Total dry-air mass flow","unit":"kg dry air/s"},{"id":"stream1DryAirFraction","label":"Stream 1 dry-air mass fraction","unit":""},{"id":"moistAirFlow","label":"Total moist-air mass flow","unit":"kg/s"},{"id":"vaporMassFlow","label":"Water-vapor mass flow","unit":"kg water/s","significantDigits":6},{"id":"volumeFlow","label":"Mixed volume flow","unit":"m³/s"},{"id":"enthalpyFlow","label":"Mixed enthalpy flow (0°C reference)","unit":"W"},{"id":"humidityRatio","label":"Humidity ratio","unit":"kg water/kg dry air","significantDigits":6},{"id":"specificHumidity","label":"Specific humidity","unit":"kg water/kg moist air","significantDigits":6},{"id":"dewFrostPoint","label":"Dew point over water / frost point over ice","unit":"°C"},{"id":"enthalpy","label":"Enthalpy per mass of dry air","unit":"J/kg dry air"},{"id":"specificVolume","label":"Volume per mass of dry air","unit":"m³/kg dry air"},{"id":"density","label":"Total moist-air density","unit":"kg/m³"},{"id":"vaporPressure","label":"Water-vapor partial pressure","unit":"Pa"},{"id":"saturationVaporPressure","label":"Saturation pressure at dry bulb","unit":"Pa"},{"id":"saturationBasis","label":"RH reference phase at dry bulb","unit":""}],"sources":[{"title":"ASHRAE Fundamentals 2025, Chapter 1: Adiabatic Mixing of Two Moist Airstreams","url":"https://handbook.ashrae.org/Handbooks/F25/SI/F25_Ch01/F25_Ch01_si.aspx","accessed":"2026-09-08"},{"title":"PsychroLib ideal moist-air property relationships","url":"https://psychrometrics.github.io/psychrolib/api_docs.html","accessed":"2026-09-08"},{"title":"PsychroLib MIT license and adaptation attribution","url":"/licenses/psychrolib.txt","accessed":"2026-09-08"}],"assumptions":["Mix two ideal moist-air streams adiabatically at a common pressure, with no work, heat transfer, added water or condensation. Inputs are dry-air mass flows, not total moist-air mass flows or volume flows.","Each inlet uses −50 to 80 °C, 0–100% RH and 20–120 kPa absolute, with pressure above saturation pressure at dry bulb. Both inlet states must be valid even if one flow is zero. Flows must be nonnegative and their sum positive.","Using dry-air flows m1 and m2, W = (m1W1 + m2W2)/(m1 + m2) and h = (m1h1 + m2h2)/(m1 + m2). Dry-air mass, water-vapor mass and enthalpy are conserved.","For h in J/kg dry air, T = (h − 2501000W)/(1006 + 1860W) °C. Relative humidity follows from vapor pressure at this mixed temperature. Do not average inlet RH or use volume-flow fractions directly.","Convert an inlet volume flow Q to dry-air flow with m = Q/v, using that inlet's specific volume in m³/kg dry air. Mixed volume flow is the total dry-air flow times mixed specific volume; total moist-air flow includes vapor mass.","RH uses ice saturation at or below 0.01 °C and liquid water above it. A supersaturated vapor-only prediction is rejected: condensation or ice and their energy effects require a separate equilibrium model.","Enthalpy flow is referenced to the model's 0 °C datum and is not a heating or cooling load. Pressure losses, fans, stratification and incomplete mixing are excluded."]},{"id":"humid-air-wet-bulb","name":"Humid Air from Dry and Wet Bulb","description":"Calculate an ideal moist-air state from dry bulb, thermodynamic wet bulb and absolute pressure, using ASHRAE relationships adapted from MIT-licensed PsychroLib.","category":"HVAC","endpoint":"/api/hvac/humid-air-wet-bulb","inputs":[{"name":"dryBulb","type":"number","unit":"°C","required":true,"defaultValue":"30"},{"name":"wetBulb","type":"number","unit":"°C","required":true,"defaultValue":"25"},{"name":"pressure","type":"number","unit":"Pa","required":true,"defaultValue":"95461"}],"outputs":[{"id":"relativeHumidity","label":"Relative humidity at dry bulb","unit":"%"},{"id":"humidityRatio","label":"Humidity ratio","unit":"kg water/kg dry air","significantDigits":6},{"id":"specificHumidity","label":"Specific humidity","unit":"kg water/kg moist air","significantDigits":6},{"id":"dewFrostPoint","label":"Dew point over water / frost point over ice","unit":"°C"},{"id":"enthalpy","label":"Enthalpy per mass of dry air","unit":"J/kg dry air"},{"id":"specificVolume","label":"Volume per mass of dry air","unit":"m³/kg dry air"},{"id":"density","label":"Total moist-air density","unit":"kg/m³"},{"id":"vaporPressure","label":"Water-vapor partial pressure","unit":"Pa"},{"id":"saturationVaporPressure","label":"Saturation pressure at dry bulb","unit":"Pa"},{"id":"saturationBasis","label":"RH reference phase at dry bulb","unit":""},{"id":"wetBulbDepression","label":"Dry minus wet bulb","unit":"°C"},{"id":"wetBulbBasis","label":"Wet-bulb energy-balance phase","unit":""}],"sources":[{"title":"PsychroLib: humidity ratio from wet bulb, ASHRAE equations 33 and 35","url":"https://psychrometrics.github.io/psychrolib/api_docs.html#psychrolib.GetHumRatioFromTWetBulb","accessed":"2026-09-08"},{"title":"PsychroLib MIT license and adaptation attribution","url":"/licenses/psychrolib.txt","accessed":"2026-09-08"}],"assumptions":["Calculate an ideal moist-air state from dry bulb, thermodynamic wet bulb and absolute pressure, using ASHRAE relationships adapted from MIT-licensed PsychroLib.","Dry bulb: −50 to 80 °C. Wet bulb: −50 °C through the dry-bulb temperature. Pressure: 20–120 kPa absolute, above saturation pressure at dry bulb. Pairs implying negative moisture content are rejected rather than clamped to a small positive value.","Let Ws = 0.621945 ps(Tw)/(p − ps(Tw)). For Tw ≥ 0 °C, W = [(2501 − 2.326Tw)Ws − 1.006(Td − Tw)] / [2501 + 1.86Td − 4.186Tw].","For Tw < 0 °C, use the ice balance: W = [(2830 − 0.24Tw)Ws − 1.006(Td − Tw)] / [2830 + 1.86Td − 2.1Tw]. The wet-bulb energy-balance branch changes at 0 °C; the saturation-pressure function changes at the 0.01 °C triple point.","pv = pW/(0.621945 + W); RH = 100pv/ps(Td). RH uses the saturation reference phase at dry bulb, which can differ from the wet-bulb balance phase. Enthalpy and specific volume are per kg of dry air; specific humidity and total density include water vapor.","Thermodynamic wet bulb is an adiabatic-saturation property. A physical wet-bulb thermometer can be affected by ventilation, radiation, wick condition and ice formation; this tool does not correct an instrument reading. No fog, liquid droplets, supersaturation or real-gas correction is included.","For a state given by relative humidity instead, use the Humid Air Properties calculator. Neither tool solves a full HVAC process or selects equipment."]},{"id":"composite-wall","name":"Composite Wall Heat Transfer","description":"Model up to three solid layers between two fluids. Number layers from side 1 toward side 2; set unused layer thicknesses to zero and retain positive conductivity inputs.","category":"Thermal","endpoint":"/api/thermal/composite-wall","inputs":[{"name":"area","type":"number","unit":"m²","required":true,"defaultValue":"10"},{"name":"temperature1","type":"number","unit":"K","required":true,"defaultValue":"293.15"},{"name":"temperature2","type":"number","unit":"K","required":true,"defaultValue":"273.15"},{"name":"film1","type":"number","unit":"W/(m²·K)","required":true,"defaultValue":"10"},{"name":"film2","type":"number","unit":"W/(m²·K)","required":true,"defaultValue":"25"},{"name":"thickness1","type":"number","unit":"m","required":true,"defaultValue":".1"},{"name":"conductivity1","type":"number","unit":"W/(m·K)","required":true,"defaultValue":"1"},{"name":"thickness2","type":"number","unit":"m","required":true,"defaultValue":".05"},{"name":"conductivity2","type":"number","unit":"W/(m·K)","required":true,"defaultValue":".04"},{"name":"thickness3","type":"number","unit":"m","required":true,"defaultValue":"0"},{"name":"conductivity3","type":"number","unit":"W/(m·K)","required":true,"defaultValue":"1"}],"outputs":[{"id":"heatRate","label":"Heat rate, side 1 toward side 2","unit":"W"},{"id":"heatFlux","label":"Heat flux, side 1 toward side 2","unit":"W/m²"},{"id":"overallCoefficient","label":"Overall heat-transfer coefficient","unit":"W/(m²·K)"},{"id":"resistancePerArea","label":"Area-normalized thermal resistance","unit":"m²·K/W"},{"id":"thermalResistance","label":"Total thermal resistance","unit":"K/W"},{"id":"surface1","label":"Side 1 wall surface","unit":"K"},{"id":"interface12","label":"Layer 1 / 2 interface","unit":"K"},{"id":"interface23","label":"Layer 2 / 3 interface","unit":"K"},{"id":"surface2","label":"Side 2 wall surface","unit":"K"}],"sources":[{"title":"US DOE Fundamentals Handbook: conduction and convection, HT-02 pages 9–10 and 20–22","url":"https://www.energy.gov/sites/default/files/2026-04/DOE-HDBK-1012-92_VOL2.pdf","accessed":"2026-09-08"}],"assumptions":["Model up to three solid layers between two fluids. Number layers from side 1 toward side 2; set unused layer thicknesses to zero and retain positive conductivity inputs.","R″ = 1/h₁ + Σ(Lᵢ/kᵢ) + 1/h₂; U = 1/R″. Each term uses the same wall area.","q″ = U(T₁ − T₂); Q = Aq″. Positive heat flow is from side 1 toward side 2.","Subtract q″ times each successive resistance to obtain surface and interface temperatures. Zero-thickness layers have no temperature drop.","Assumes steady one-dimensional heat flow, constant properties and perfect layer contact, without heat generation, radiation, air gaps, thermal bridges or phase change. Supply coefficients and conductivities appropriate to the operating conditions.","Illustrative inputs are not specified material properties or regulatory U-values. At the defaults, R″ = 1.49 m²·K/W and Q = 134.2282 W."]},{"id":"pump-duty","name":"Reservoir-to-Reservoir Pump Duty","description":"Combine reservoir elevation and pressure differences with pipe and local losses at an entered flow rate.","category":"Pumps","endpoint":"/api/pumps/duty","inputs":[{"name":"flowRate","type":"number","unit":"m³/s","required":true,"defaultValue":"0.01"},{"name":"length","type":"number","unit":"m","required":true,"defaultValue":"100"},{"name":"diameter","type":"number","unit":"m","required":true,"defaultValue":"0.1"},{"name":"roughness","type":"number","unit":"m","required":true,"defaultValue":"0.000045"},{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"998"},{"name":"viscosity","type":"number","unit":"Pa·s","required":true,"defaultValue":"0.001"},{"name":"elevationRise","type":"number","unit":"m","required":true,"defaultValue":"10"},{"name":"pressureDifference","type":"number","unit":"Pa","required":true,"defaultValue":"0"},{"name":"lossCoefficient","type":"number","unit":"1","required":true,"defaultValue":"5"},{"name":"pumpEfficiency","type":"number","unit":"0–1","required":true,"defaultValue":"0.7"},{"name":"motorEfficiency","type":"number","unit":"0–1","required":true,"defaultValue":"0.9"}],"outputs":[{"id":"systemHead","label":"Signed system head","unit":"m"},{"id":"pumpHead","label":"Head to add by pumping","unit":"m"},{"id":"surplusHead","label":"Surplus head requiring dissipation","unit":"m"},{"id":"frictionHead","label":"Straight-pipe friction head","unit":"m"},{"id":"fittingHead","label":"Local-loss head","unit":"m"},{"id":"pressureHead","label":"Reservoir pressure head difference","unit":"m"},{"id":"hydraulicPower","label":"Hydraulic power","unit":"W"},{"id":"shaftPower","label":"Pump shaft power","unit":"W"},{"id":"electricalPower","label":"Motor electrical input","unit":"W"},{"id":"velocity","label":"Pipe velocity","unit":"m/s"},{"id":"reynoldsNumber","label":"Reynolds number","unit":"1"},{"id":"flowRegime","label":"Flow regime","unit":""}],"sources":[{"title":"US EPA EPANET 2.2: Pipe friction and minor losses","url":"https://usepa.github.io/EPANET2.2/3_network_model.html","accessed":"2026-09-08"},{"title":"KSB: Pump power input","url":"https://www.ksb.com/en-global/centrifugal-pump-lexicon/article/power-input-1117260","accessed":"2026-09-08"},{"title":"KSB: Pump efficiency","url":"https://www.ksb.com/en-global/centrifugal-pump-lexicon/article/pump-efficiency-1116510","accessed":"2026-09-08"}],"assumptions":["Combine reservoir elevation and pressure differences with pipe and local losses at an entered flow rate.","Hsystem = Δz + Δp/(ρg) + hf + K v²/(2g). Reservoir velocities are negligible; all loss coefficients must refer to the same pipe velocity.","Pipe friction uses Darcy–Weisbach with 64/Re below Re 2300 and Swamee–Jain otherwise. The transition range is uncertain.","For positive head: Phydraulic = ρgQH, Pshaft = Phydraulic/ηpump, Pelectrical = Pshaft/ηmotor. Enter efficiencies as fractions, not percentages.","Negative system head indicates surplus driving head at the imposed flow. Pumping power is zero in that case; control or dissipation would be needed. This is not turbine-output prediction.","Use liquid properties for the operating temperature and pressure. Assumes steady incompressible single-phase flow and one uniform pipe bore; include entrance, exit, valve and fitting losses in K.","This is a duty estimate, not a pump selection, actual operating-point solution, motor nameplate rating or NPSH/cavitation check. Use manufacturer curves and an application-specific margin separately."]},{"id":"sound-intensity-level","name":"Sound Intensity Level","description":"Convert positive intensity to level: L = 10 log₁₀(I/Iref).","category":"Acoustics","endpoint":"/api/acoustics/sound-intensity-level","inputs":[{"name":"intensity","type":"number","unit":"W/m²","required":true,"defaultValue":"0.000001"},{"name":"referenceIntensity","type":"number","unit":"W/m²","required":true,"defaultValue":"1e-12"}],"outputs":[{"id":"intensityLevel","label":"Intensity level relative to reference","unit":"dB"}],"sources":[{"title":"OpenStax University Physics: Sound Intensity","url":"https://openstax.org/books/university-physics-volume-1/pages/17-3-sound-intensity","accessed":"2026-09-08"}],"assumptions":["Convert positive intensity to level: L = 10 log₁₀(I/Iref).","Default reference: 10⁻¹² W/m². Example: I = 10⁻⁶ W/m² gives 60 dB.","Negative levels are valid below the reference. Zero intensity corresponds to negative infinity and is excluded.","This is intensity level, not sound-pressure level, A-weighted level or perceived loudness."]},{"id":"spherical-sound-spreading","name":"Spherical Sound Spreading","description":"Ideal full-sphere spreading: I = P/(4πr²), then L = 10 log₁₀(I/Iref).","category":"Acoustics","endpoint":"/api/acoustics/spherical-sound-spreading","inputs":[{"name":"acousticPower","type":"number","unit":"W","required":true,"defaultValue":"0.01"},{"name":"distance","type":"number","unit":"m","required":true,"defaultValue":"10"},{"name":"referenceIntensity","type":"number","unit":"W/m²","required":true,"defaultValue":"1e-12"}],"outputs":[{"id":"intensity","label":"Sound intensity","unit":"W/m²"},{"id":"intensityLevel","label":"Intensity level relative to reference","unit":"dB"}],"sources":[{"title":"OpenStax University Physics: Sound Intensity","url":"https://openstax.org/books/university-physics-volume-1/pages/17-3-sound-intensity","accessed":"2026-09-08"}],"assumptions":["Ideal full-sphere spreading: I = P/(4πr²), then L = 10 log₁₀(I/Iref).","Example: 0.01 W at 10 m gives about 7.958 × 10⁻⁶ W/m², or 69.01 dB relative to 10⁻¹² W/m².","Assumes an isotropic point source in a lossless free field. Excludes reflections, ground effects, barriers, atmospheric absorption and near-field effects.","Use radiated acoustic power, not electrical input power. This model is not a noise-exposure assessment."]},{"id":"surface-convection","name":"Surface Convection","description":"Calculate surface convection using Q̇ = hAΔT and q″ = hΔT.","category":"Thermal","endpoint":"/api/thermal/surface-convection","inputs":[{"name":"coefficient","type":"number","unit":"W/(m²·K)","required":true,"defaultValue":"10"},{"name":"area","type":"number","unit":"m²","required":true,"defaultValue":"2"},{"name":"temperatureDifference","type":"number","unit":"K","required":true,"defaultValue":"30"}],"outputs":[{"id":"heatRate","label":"Heat transfer rate","unit":"W"},{"id":"heatFlux","label":"Heat flux","unit":"W/m²"},{"id":"thermalResistance","label":"Convection resistance","unit":"K/W"}],"sources":[{"title":"MIT Unified Engineering: Convective Heat Transfer","url":"https://web.mit.edu/16.unified/OldFiles/www/FALL/thermodynamics/notes/node121.html","accessed":"2026-09-08"}],"assumptions":["Calculate surface convection using Q̇ = hAΔT and q″ = hΔT.","Positive results mean heat leaves the surface; negative results mean heat enters it. R = 1/(hA).","Example: h = 10 W/(m²·K), A = 2 m² and ΔT = 30 K give 600 W, 300 W/m² and 0.05 K/W.","Supply a mean coefficient appropriate to the geometry, fluid and flow conditions. This calculator does not estimate h or model variation along the surface.","Assumes a uniform surface temperature and a defined bulk-fluid temperature. Conduction, radiation and transient temperature changes are excluded."]},{"id":"enclosure-radiation","name":"Thermal Radiation to Large Surroundings","description":"Net thermal radiation: Q̇ = εσA(Ts⁴ − Tsur⁴). Absolute temperatures must be entered in kelvin.","category":"Thermal","endpoint":"/api/thermal/enclosure-radiation","inputs":[{"name":"emissivity","type":"number","unit":"0–1","required":true,"defaultValue":"0.8"},{"name":"area","type":"number","unit":"m²","required":true,"defaultValue":"1"},{"name":"surfaceTemperature","type":"number","unit":"K","required":true,"defaultValue":"400"},{"name":"surroundingsTemperature","type":"number","unit":"K","required":true,"defaultValue":"300"}],"outputs":[{"id":"heatRate","label":"Net radiation heat rate","unit":"W"},{"id":"heatFlux","label":"Net radiation heat flux","unit":"W/m²"}],"sources":[{"title":"OpenStax: Mechanisms of Heat Transfer","url":"https://openstax.org/books/university-physics-volume-2/pages/1-6-mechanisms-of-heat-transfer","accessed":"2026-09-08"},{"title":"NIST fundamental physical constants","url":"https://physics.nist.gov/cuu/Constants/index.html","accessed":"2026-09-08"}],"assumptions":["Net thermal radiation: Q̇ = εσA(Ts⁴ − Tsur⁴). Absolute temperatures must be entered in kelvin.","Uses σ = 5.670374419 × 10⁻⁸ W/(m²·K⁴), rounded from the Stefan–Boltzmann constant.","Positive heat rate leaves the surface; hotter surroundings produce a negative result. Equal temperatures give zero net exchange.","Example: ε = 0.8, A = 1 m², Ts = 400 K and Tsur = 300 K give approximately 793.85 W outward.","Model: a gray surface surrounded by a much larger isothermal enclosure, with view factor one and a nonparticipating intervening medium.","Does not solve exchange between finite surfaces, solar absorption, semitransparent materials, participating gases or combined convection. Select emissivity for the actual surface condition."]},{"id":"sensible-heat","name":"Sensible Heat","description":"Q = mcΔT; heat capacity C = mc. Negative Q represents heat removed.","category":"Thermal","endpoint":"/api/thermal/sensible-heat","inputs":[{"name":"mass","type":"number","unit":"kg","required":true,"defaultValue":"10"},{"name":"specificHeat","type":"number","unit":"J/(kg·K)","required":true,"defaultValue":"1000"},{"name":"temperatureChange","type":"number","unit":"K","required":true,"defaultValue":"20"}],"outputs":[{"id":"heat","label":"Heat added","unit":"J"},{"id":"heatCapacity","label":"Total heat capacity","unit":"J/K"}],"sources":[{"title":"OpenStax University Physics Volume 2: Sensible Heat","url":"https://openstax.org/books/university-physics-volume-2/pages/1-4-heat-transfer-specific-heat-and-calorimetry","accessed":"2026-09-08"}],"assumptions":["Q = mcΔT; heat capacity C = mc. Negative Q represents heat removed.","Example: 10 kg, 1000 J/(kg·K), and a 20 K rise requires 200,000 J. The specific heat is illustrative.","Assumes constant specific heat and no phase change. Choose the specific heat appropriate to the process, such as constant pressure or constant volume. Excludes equipment heat capacity and environmental losses.","Source: https://openstax.org/books/university-physics-volume-2/pages/1-4-heat-transfer-specific-heat-and-calorimetry"]},{"id":"linear-expansion","name":"Free Linear Thermal Expansion","description":"ΔL = αL₀ΔT; final length = L₀ + ΔL. Cooling or a negative expansion coefficient can produce contraction.","category":"Thermal","endpoint":"/api/thermal/linear-expansion","inputs":[{"name":"originalLength","type":"number","unit":"m","required":true,"defaultValue":"10"},{"name":"coefficient","type":"number","unit":"1/K","required":true,"defaultValue":"0.000012"},{"name":"temperatureChange","type":"number","unit":"K","required":true,"defaultValue":"50"}],"outputs":[{"id":"lengthChange","label":"Length change","unit":"m"},{"id":"finalLength","label":"Final length","unit":"m"}],"sources":[{"title":"OpenStax University Physics Volume 2: Free Linear Thermal Expansion","url":"https://openstax.org/books/university-physics-volume-2/pages/1-3-thermal-expansion","accessed":"2026-09-08"}],"assumptions":["ΔL = αL₀ΔT; final length = L₀ + ΔL. Cooling or a negative expansion coefficient can produce contraction.","Example: 10 m, α = 0.000012/K and 50 K gives 0.006 m expansion. The coefficient is illustrative.","Assumes uniform temperature and free expansion with a suitable mean coefficient over the temperature interval. It does not calculate restraint forces, thermal stress, buckling or joint capacity.","Source: https://openstax.org/books/university-physics-volume-2/pages/1-3-thermal-expansion"]},{"id":"ideal-gas-density","name":"Ideal Gas Density","description":"Ideal gas relation p = ρRT gives density ρ = p/(RT). Specific volume is 1/ρ.","category":"Gases","endpoint":"/api/gases/ideal-gas-density","inputs":[{"name":"absolutePressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"},{"name":"absoluteTemperature","type":"number","unit":"K","required":true,"defaultValue":"300"},{"name":"specificGasConstant","type":"number","unit":"J/(kg·K)","required":true,"defaultValue":"287"}],"outputs":[{"id":"density","label":"Density","unit":"kg/m³"},{"id":"specificVolume","label":"Specific volume","unit":"m³/kg"}],"sources":[{"title":"NASA Glenn: Equation of State","url":"https://www1.grc.nasa.gov/beginners-guide-to-aeronautics/equation-of-state/","accessed":"2026-09-08"}],"assumptions":["Ideal gas relation p = ρRT gives density ρ = p/(RT). Specific volume is 1/ρ.","Pressure must be absolute and temperature must be in kelvins. R is the mass-based gas constant for the gas or mixture, not the universal molar constant.","Example: 101325 Pa, 300 K and R = 287 J/(kg·K) gives approximately 1.17683 kg/m³. The example R is a rounded dry-air assumption.","This is an ideal-gas estimate. Dense gases, conditions near condensation or the critical point, and mixtures with changing composition require appropriate real-fluid property data.","Source: https://www1.grc.nasa.gov/beginners-guide-to-aeronautics/equation-of-state/"]},{"id":"axial-bar","name":"Axial Bar Stress and Extension","description":"For a uniform bar under centered axial load, stress σ = F/A, strain ε = σ/E, and length change δ = εL.","category":"Mechanics","endpoint":"/api/mechanics/axial-bar","inputs":[{"name":"force","type":"number","unit":"N","required":true,"defaultValue":"10000"},{"name":"area","type":"number","unit":"m²","required":true,"defaultValue":"0.001"},{"name":"length","type":"number","unit":"m","required":true,"defaultValue":"2"},{"name":"youngModulus","type":"number","unit":"Pa","required":true,"defaultValue":"200000000000"}],"outputs":[{"id":"stress","label":"Axial stress","unit":"Pa"},{"id":"strain","label":"Axial strain","unit":"m/m"},{"id":"extension","label":"Length change","unit":"m"}],"sources":[{"title":"OpenStax University Physics Volume 1 §12.3","url":"https://openstax.org/books/university-physics-volume-1/pages/12-3-stress-strain-and-elastic-modulus","accessed":"2026-09-08"}],"assumptions":["For a uniform bar under centered axial load, stress σ = F/A, strain ε = σ/E, and length change δ = εL.","Example: 10,000 N, 0.001 m², 2 m and E = 200 GPa gives 10 MPa stress, 0.00005 strain and 0.0001 m extension. The modulus is illustrative; use material- and temperature-appropriate data.","Negative force represents compression and produces negative strain and shortening in this model.","Valid only for small linear-elastic deformation. Does not check yield, buckling, fatigue, connections, stress concentrations or eccentric loading. Compression results do not establish column stability.","Source: https://openstax.org/books/university-physics-volume-1/pages/12-3-stress-strain-and-elastic-modulus"]},{"id":"dc-resistor","name":"DC Resistor Current and Power","description":"For an ideal ohmic resistor, I = V/R and P = VI = V²/R.","category":"Electrical","endpoint":"/api/electrical/dc-resistor","inputs":[{"name":"voltage","type":"number","unit":"V","required":true,"defaultValue":"12"},{"name":"resistance","type":"number","unit":"Ω","required":true,"defaultValue":"100"}],"outputs":[{"id":"current","label":"Current","unit":"A"},{"id":"power","label":"Dissipated power","unit":"W"}],"sources":[{"title":"OpenStax University Physics Volume 2 §9.5","url":"https://openstax.org/books/university-physics-volume-2/pages/9-5-electrical-energy-and-power","accessed":"2026-09-08"}],"assumptions":["For an ideal ohmic resistor, I = V/R and P = VI = V²/R.","Example: 12 V across 100 Ω gives 0.12 A and 1.44 W. Reversing voltage reverses current but leaves dissipated power positive.","Assumes constant DC voltage and resistance. Does not model resistance changing with temperature, reactive AC loads, source impedance or nonlinear devices.","Calculated dissipation is not a selected component rating; consult the component’s thermal derating and operating limits.","Source: https://openstax.org/books/university-physics-volume-2/pages/9-5-electrical-energy-and-power"]},{"id":"wall-conduction","name":"Plane Wall Heat Conduction","description":"For steady one-dimensional conduction, heat rate = kAΔT/L and wall resistance = L/(kA).","category":"Thermal","endpoint":"/api/thermal/wall-conduction","inputs":[{"name":"conductivity","type":"number","unit":"W/(m·K)","required":true,"defaultValue":"0.04"},{"name":"area","type":"number","unit":"m²","required":true,"defaultValue":"10"},{"name":"thickness","type":"number","unit":"m","required":true,"defaultValue":"0.1"},{"name":"temperatureDifference","type":"number","unit":"K","required":true,"defaultValue":"20"}],"outputs":[{"id":"heatRate","label":"Heat rate from surface 1 to 2","unit":"W"},{"id":"heatFlux","label":"Heat flux from surface 1 to 2","unit":"W/m²"},{"id":"thermalResistance","label":"Wall thermal resistance","unit":"K/W"}],"sources":[{"title":"OpenStax University Physics Volume 2 §1.6","url":"https://openstax.org/books/university-physics-volume-2/pages/1-6-mechanisms-of-heat-transfer","accessed":"2026-09-08"}],"assumptions":["For steady one-dimensional conduction, heat rate = kAΔT/L and wall resistance = L/(kA).","Example: k = 0.04 W/(m·K), A = 10 m², L = 0.1 m and ΔT = 20 K gives 80 W, 8 W/m² and 0.25 K/W. Conductivity here is illustrative; use a value appropriate to the material and operating temperature.","The temperature difference is between wall surfaces, not surrounding air. A negative difference reverses the heat-flow direction.","Assumes constant conductivity, no internal heat generation and negligible edge effects. Excludes surface convection, radiation, contact resistance and thermal bridges.","Source: https://openstax.org/books/university-physics-volume-2/pages/1-6-mechanisms-of-heat-transfer"]},{"id":"hydrostatic-pressure","name":"Hydrostatic Pressure","description":"For a fluid at rest with constant density and gravity: Δp = ρgh.","category":"Hydraulics","endpoint":"/api/hydraulics/hydrostatic-pressure","inputs":[{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"1000"},{"name":"depth","type":"number","unit":"m","required":true,"defaultValue":"10"},{"name":"surfacePressure","type":"number","unit":"Pa","required":true,"defaultValue":"101325"},{"name":"gravity","type":"number","unit":"m/s²","required":true,"defaultValue":"9.80665"}],"outputs":[{"id":"pressureIncrease","label":"Pressure increase below surface","unit":"Pa"},{"id":"absolutePressure","label":"Absolute pressure at depth","unit":"Pa"}],"sources":[{"title":"OpenStax College Physics 2e §11.4","url":"https://openstax.org/books/college-physics-2e/pages/11-4-variation-of-pressure-with-depth-in-a-fluid","accessed":"2026-09-08"}],"assumptions":["For a fluid at rest with constant density and gravity: Δp = ρgh.","Absolute pressure at depth is surface absolute pressure + Δp. The increase is gauge pressure only when the reference is the surface pressure.","Example: 1000 kg/m³ at 10 m and g = 9.80665 m/s² gives 98,066.5 Pa increase; with 101,325 Pa at the surface, absolute pressure is 199,391.5 Pa.","Not applicable to a flowing system or a deep gas column with appreciably varying density.","Source: OpenStax, College Physics 2e §11.4 — https://openstax.org/books/college-physics-2e/pages/11-4-variation-of-pressure-with-depth-in-a-fluid"]},{"id":"dynamic-pressure","name":"Dynamic Pressure","description":"Dynamic pressure q = ½ρv² is kinetic energy per unit volume.","category":"Hydraulics","endpoint":"/api/hydraulics/dynamic-pressure","inputs":[{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"1.225"},{"name":"velocity","type":"number","unit":"m/s","required":true,"defaultValue":"20"}],"outputs":[{"id":"dynamicPressure","label":"Dynamic pressure","unit":"Pa"}],"sources":[{"title":"NASA Glenn: Dynamic Pressure","url":"https://www.grc.nasa.gov/www/BGH/dynpress.html","accessed":"2026-09-08"}],"assumptions":["Dynamic pressure q = ½ρv² is kinetic energy per unit volume.","Example: density 1.225 kg/m³ and speed 20 m/s gives 245 Pa. The example density is an input assumption, not an atmospheric property lookup.","Equating q with stagnation pressure minus static pressure requires the incompressible, lossless Bernoulli assumptions. Compressible Pitot measurements need a different relation.","Source: NASA Glenn, Dynamic Pressure — https://www.grc.nasa.gov/www/BGH/dynpress.html"]},{"id":"unit-converter","name":"Engineering Unit Converter","category":"General & Utilities","description":"Convert values within the published unit categories using shared website definitions.","endpoint":"/api/units","inputs":[{"name":"category","type":"string","unit":"","required":true,"defaultValue":"volume"},{"name":"value","type":"number","unit":"Selected source unit","required":true,"defaultValue":"1"},{"name":"fromUnit","type":"string","unit":"","required":true,"defaultValue":"gal_us"},{"name":"toUnit","type":"string","unit":"","required":true,"defaultValue":"L"}],"outputs":[{"id":"convertedValue","label":"Converted value","unit":"Selected target unit"},{"id":"category","label":"Category ID","unit":""},{"id":"fromUnit","label":"Source unit ID","unit":""},{"id":"toUnit","label":"Target unit ID","unit":""},{"id":"symbol","label":"Target unit symbol","unit":""}],"sources":[],"assumptions":["Use category and unit IDs from GET /api/units. Both units must belong to the selected category.","Temperature points use scale offsets; temperature differences use factors only. Values are scale arithmetic, not a physical-state assessment.","Unit scaling preserves pressure reference and gas reference conditions. Dynamic and kinematic viscosity cannot be interconverted without density.","Sources are available for selected categories. Missing references mean the legacy category has not completed a source review. Conversion does not add measurement precision."]},{"id":"pressure-drop","name":"Pressure Drop Calculator","description":"Calculates pressure drop using the Darcy-Weisbach equation","category":"Hydraulics","endpoint":"/api/hydraulics/pressure-drop","inputs":[{"name":"Q","type":"number","unit":"m³/s","required":true,"defaultValue":"0.1"},{"name":"L","type":"number","unit":"m","required":true,"defaultValue":"100"},{"name":"D","type":"number","unit":"m","required":true,"defaultValue":"0.1"},{"name":"roughness","type":"number","unit":"m","required":true,"defaultValue":"0.000045"},{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"998"},{"name":"viscosity","type":"number","unit":"Pa·s","required":true,"defaultValue":"0.001"}],"outputs":[{"id":"pressureDrop","label":"Pressure Drop","unit":"Pa"},{"id":"frictionFactor","label":"Friction Factor","unit":""},{"id":"reynoldsNumber","label":"Reynolds Number","unit":""},{"id":"velocity","label":"Mean Velocity","unit":"m/s"}],"sources":[{"title":"US EPA EPANET 2.2: Pipe head loss and friction factors","url":"https://usepa.github.io/EPANET2.2/3_network_model.html","accessed":"2026-09-08"}],"assumptions":["Calculates pressure drop using the Darcy-Weisbach equation","Uses Darcy friction factor: 64/Re below Re 2300, otherwise the Swamee–Jain approximation. The 2300–4000 transition range is uncertain; this implementation does not reproduce EPANET’s transitional interpolation.","Assumes steady, fully developed, single-phase incompressible flow in a full circular pipe. Input dynamic viscosity, density and roughness for the operating conditions.","Returns straight-pipe friction loss only. Fittings, valves, elevation changes and acceleration are excluded. The friction factor is Darcy, not Fanning."]},{"id":"npsh-calculator","name":"NPSH Calculator","description":"Reservoir model: NPSHA = (surface absolute pressure − vapor pressure)/(density × g) + liquid elevation − suction losses; negligible reservoir velocity","category":"Pumps","endpoint":"/api/pumps/npsh","inputs":[{"name":"elevation","type":"number","unit":"m","required":true,"defaultValue":"2"},{"name":"atmosphericPressure","type":"number","unit":"Pa absolute","required":true,"defaultValue":"101325"},{"name":"vaporPressure","type":"number","unit":"Pa","required":true,"defaultValue":"2300"},{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"998"},{"name":"npshRequired","type":"number","unit":"m","required":true,"defaultValue":"3"},{"name":"frictionLosses","type":"number","unit":"m","required":true,"defaultValue":"2.1"}],"outputs":[{"id":"npshAvailable","label":"NPSH Available","unit":"m"},{"id":"npshRequired","label":"NPSH Required","unit":"m"},{"id":"npshMargin","label":"NPSH Margin","unit":"m"}],"sources":[{"title":"KSB Centrifugal Pump Lexicon: NPSH and cavitation criteria","url":"https://www.ksb.com/en-global/centrifugal-pump-lexicon/article/npsh-1116954","accessed":"2026-09-08"}],"assumptions":["Reservoir model: NPSHA = (surface absolute pressure − vapor pressure)/(density × g) + liquid elevation − suction losses; negligible reservoir velocity","Uses the required NPSH entered from the manufacturer curve; it cannot be inferred from suction conditions","Returns the arithmetic margin NPSHA minus the supplied NPSHR. A positive margin alone does not establish cavitation-free operation or an adequate application-specific margin.","Check the pump curve at the actual flow and speed and confirm its cavitation criterion. NPSH3 refers to a 3% head-drop criterion, not the onset of cavitation. Include suction entry, valve and fitting losses."]},{"id":"pipe-sizing","name":"Pipe Sizing Calculator","description":"Finds a minimum internal bore satisfying the supplied mean-velocity and straight-pipe pressure-gradient limits.","category":"Hydraulics","endpoint":"/api/hydraulics/pipe-sizing","inputs":[{"name":"flowRate","type":"number","unit":"m³/s","required":true,"defaultValue":"0.05"},{"name":"targetVelocity","type":"number","unit":"m/s","required":true,"defaultValue":"2.0"},{"name":"maxPressureDrop","type":"number","unit":"Pa/m","required":true,"defaultValue":"100"},{"name":"density","type":"number","unit":"kg/m³","required":true,"defaultValue":"998"},{"name":"viscosity","type":"number","unit":"Pa·s","required":true,"defaultValue":"0.001"},{"name":"roughness","type":"number","unit":"m","required":true,"defaultValue":"0.000045"}],"outputs":[{"id":"recommendedDiameter","label":"Recommended Diameter","unit":"m"},{"id":"actualVelocity","label":"Actual Velocity","unit":"m/s"},{"id":"actualPressureDrop","label":"Actual Pressure Drop","unit":"Pa/m"}],"sources":[{"title":"US EPA EPANET 2.2: Pipe head loss and friction factors","url":"https://usepa.github.io/EPANET2.2/3_network_model.html","accessed":"2026-09-08"}],"assumptions":["Finds a minimum internal bore satisfying the supplied mean-velocity and straight-pipe pressure-gradient limits.","Considers velocity constraints and pressure drop limits","Uses the pressure-drop calculator’s Darcy friction model and limitations. Transition-region results are uncertain. It does not select wall thickness, pressure class or a pipe-network design.","Returns minimum internal diameter; choose a commercial size with an equal or larger bore"]}]