Engineering software manual for the 54 product modules shipped under /products/*. This document describes purpose, governing methods, design-code support, UI maturity, and known gaps. It complements the homogenization contract in Homogenization-Roadmap.md.
Audience: engineers evaluating PhyCalcPro for design work, and developers extending modules.
Disclaimer: All modules produce indicative results unless explicitly marked beta with implemented code checks. Nothing here replaces licensed professional review or official code compliance certification.
Equations (authoring): Use LaTeX in $…$ for inline math and `
for display blocks (or$ … $/). The site converts these to KaTeX. List items like - Torque: $T = …$` render as labeled display equations.
Table of contents
- Platform architecture
- Module inventory
- Structural engineering
- Machine design
- Fasteners & connections
- Materials & sections
- Pressure systems
- Dynamics & vibrations
- Manufacturing
- Area properties (profiles)
- Maturity & numerical methods
- Gaps & roadmap
1. Platform architecture
1.1 Navigation and layout
- Single sidebar:
src/app/products/layout.tsxrenders the category sidebar. Category layouts are passthrough wrappers — no nested sidebars. - Module chrome: Each calculator page uses
CalculatorLayoutwith a two-column workspace beside the sidebar:- Inputs column — parameters, mesh controls, calculate/save (
CalculatorInputPanelwhere adopted). - Results column — plots, metric cards, engineering checks, export (
CalculatorResultsShell/ExportableReport).
- Inputs column — parameters, mesh controls, calculate/save (
- Legacy three-slot API: Some pages still pass
left/center/right;CalculatorLayoutmergesleft+centerinto the inputs column and mapsright→ results. Migration to explicitinputs/resultsprops is in progress.
1.2 Calculation pipeline
Standard module contract (see homogenization roadmap):
page.tsx
useStandardCalculation(moduleId, onRegionUnits?) // or useCalculatorModule
CalculatorLayout(moduleId, inputs, results)
calculate → solver engine → wrapResult(output)
*Results → ExportableReport(moduleId=…)
wrapResultattaches aCalculationSpecwith design-code checks viawithCalculationSpec.- Specialized evaluators (full check mapping): beams, columns, gears, combined-loading, welds.
- Generic evaluator (
evaluators/generic.ts): all other catalogued modules — checks are declared but mapped from indicative outputs.
1.3 Design codes
Global selector: US / EU / ISO / Indicative (DesignCodeContext).
| Code | Role |
|---|---|
| Indicative | Textbook / closed-form mechanics; always available. |
| US | AISC, ASME, AGMA, AWS, ASME Y14.5, etc. where catalogued. |
| EU | EN 1993, EN 13445, DIN, VDI references where catalogued. |
| ISO | ISO 281, ISO 6336, ISO 286, ISO 10816, etc. where catalogued. |
Changing design code sets default units via useDesignCodeUnits / moduleProfiles.ts (on code change, not every render). Field unit selectors still expose all units for the dimension unless restrictToProfile is set.
1.4 Units
- Field definitions:
src/lib/units/moduleProfiles.ts(expansion modules profiled; legacy gaps remain for trusses, cost-estimator, cam-toolpaths). - Preferred input widget:
CalculatorUnitField+calculatorNumberInputClass. - Metric display:
CalculatorMetricCard/formatEngineeringValuefor auto scientific notation when $|v| \ge 1000$ or $|v| < 0.01$.
1.5 Export
ExportableReport with moduleId enables:
- PDF capture of results (plots tagged
data-export-plot, diagramsdata-export-diagram). - Default CSV rows from solver output.
- Quality checklist from
moduleQualityDefaults. - Engineering checks panel when
calculationSpecis present.
Charts use EngineeringPlot with separate yLabel, unitLabel, xLabel, xUnit.
1.6 Release tiers
CalculatorLayout shows catalog validationStatus and a computed release tier from benchmark stats (ReleaseTierBadge). Benchmark solvers exist for a subset (gears, columns, combined-loading, impact, fatigue, corrosion, suspension, rotation).
2. Module inventory
| Category | Count | Module IDs |
|---|---|---|
| Structural | 8 | beams, frames, trusses, columns, plates, combined-loading, load-case-manager, circular-plates |
| Power transmission | 4 | v-belts, timing-belts, roller-chains, multi-pulley |
| Machine | 11 | shafts, gears, bearings, cams, flywheels, bevel-gears, worm-gears, planetary-gears, gear-ratio-design, plain-bearings, brakes-clutches |
| Springs | 3 | compression-springs, extension-springs, torsion-springs |
| Fasteners | 7 | bolts, welds, rivets, safety-factor, keys-splines, shaft-hubs, pins |
| Materials | 7 | database, sections, rolled-sections, composites, temperature-properties, fatigue, corrosion |
| Pressure | 4 | pipes, vessels, hydraulics, heat-exchangers |
| Dynamics | 4 | vibrations, rotation, impact, suspension |
| Manufacturing | 4 | tolerance, fits, cost-estimator, cam-toolpaths |
| Tools | 2 | formula-reference, unit-converter |
| Total | 54 |
Homogenization snapshot
| Aspect | Status |
|---|---|
CalculatorLayout + moduleId | All 54 pages |
useStandardCalculation / useCalculatorModule | 54 / 54 |
Unit profiles (moduleProfiles.ts) | All expansion modules + majority of legacy modules |
Modern inputs/results or full *Inputs/*Results | All 19 expansion modules + v-belts; legacy slots on some mature modules |
CalculatorResultsShell / metric cards | Universal on expansion modules; widespread elsewhere |
| Specialized code evaluators | 5 modules |
| Extracted from monolith (complete) | impact, corrosion, fatigue, combined-loading, suspension, load-case-manager, temperature-properties |
Validation catalog status
| Status | Modules |
|---|---|
| beta | beams, columns, combined-loading, gears, welds |
| draft | cost-estimator, cam-toolpaths |
| indicative (default) | all others |
3. Structural engineering
3.1 Beam Analysis (beams) — beta
Purpose: 2D Euler–Bernoulli beam analysis — deflection, moment, shear, bending stress for common supports and arbitrary point/UDL/moment loads.
Method: FEM — 2-node Hermite beam elements; mesh-refinable (meshSegments). Not a full 3D or Timoshenko model.
Key relations:
- Element stiffness from $EI/L^3$; curvature–moment:
\sigma = M,c/I
- Deflection from solved nodal rotations/displacements **Inputs:** span $L$, $E$, $I$, distance to extreme fiber $c$, support type (simply supported, cantilever, fixed–fixed), load list, material preset, mesh density. **Outputs:** $V(x)$, $M(x)$, $w(x)$, $\sigma(x)$; peaks; interactive load diagram; `calculationSpec` with flexure and deflection checks. **Design codes:** AISC 360-22 (Ch. F flexure, serviceability), EN 1993-1-1 (Cl. 6.2.5). **Implemented:** bending stress, deflection. **Planned:** shear (Ch. G / Cl. 6.2.6), lateral–torsional buckling. **UI:** Modern `inputs`/`results`; `useDesignCodeUnits`; local project save. Featured module. **Gaps:** No shear check in solver spec; no LTB; legacy `useCalculationPipeline` instead of `useStandardCalculation`; high refactor risk (core FEM). --- [^aisc-360-22-ch-f-flexure-serviceability-en-1993-]: AISC 360-22 (Ch. F flexure, serviceability), EN 1993-1-1 (Cl. 6.2.5). **Implemented:** bending stress, deflection. **Planned:** shear (Ch. G / Cl. 6.2.6), lateral–torsional buckling. ### 3.2 Frame Analysis (`frames`) **Purpose:** 2D portal frame — column/beam frame with vertical load at mid-span. **Method:** **FEM** — 2D frame elements (3 DOF/node: $u, v, \theta$); fixed-base left, pinned right typical pattern. **Inputs:** bay width, column height, $E$, section properties, applied load. **Outputs:** nodal displacements, member axial/shear/moment, deformed shape diagram. **Design codes:** Indicative member stress and joint equilibrium checks only (generic mapper). **UI:** Modern `inputs`/`results`; unit profile for length, force, stress. **Gaps:** Single topology (portal); no user-defined joints/members; generic code checks only; high refactor risk. --- ### 3.3 Truss Analysis (`trusses`) **Purpose:** Warren truss axial force analysis under mid-span vertical load. **Method:** **FEM** — pin-jointed bar elements; stiffness $k = EA/L$. **Inputs:** span, height, panel count, $A$, $E$, load magnitude. **Outputs:** member axial forces (tension/compression), utilization-style summary. **Design codes:** Indicative axial utilization. **UI:** Modern `inputs`/`results`. **No unit profile** — manual unit state in page. **Gaps:** Fixed Warren geometry; no unit profile; no specialized code evaluator. --- ### 3.4 Column Buckling (`columns`) — **beta** **Purpose:** Elastic column buckling — critical load, effective length, mode shapes. **Method:** **FEM eigenvalue** hybrid — assembles elastic $K_E$ and geometric $K_G$ stiffness; Euler fallback for fast critical load:P_{cr} = \frac{\pi^2 E I}{L_e^2}, \quad L_e = k L
Effective-length factor $k$ from end condition (pinned, fixed, fixed–pinned, etc.). **Inputs:** $L$, $P$, $I$, $A$, $E$, end condition. **Outputs:** $P_{cr}$, critical stress, slenderness, buckling mode shapes (1–3), deflected shape under load. **Design codes:** **Implemented** for US (AISC 360-22 Ch. E), EU (EN 1993-1-1 buckling), ISO 10721 — buckling utilization and Euler critical check. **UI:** Legacy `left`/`center`/`right` with `CalculatorGuidancePanel`; `useStandardCalculation` + region units. **Gaps:** Linear elastic buckling only; no inelastic column curves; area unit conversion noted as incomplete in page code. --- [^implemented-for-us-aisc-360-22-ch-e-eu-en-1993-1]: **Implemented** for US (AISC 360-22 Ch. E), EU (EN 1993-1-1 buckling), ISO 10721 — buckling utilization and Euler critical check. ### 3.5 Plate Bending (`plates`) **Purpose:** Thin rectangular plate under uniform lateral pressure — deflection and bending moments. **Method:** **FEM** — Mindlin/Reissner-style plate discretization (3 DOF/node: $w, \theta_x, \theta_y$); Gauss integration. **Key behavior:** Biharmonic plate equation in weak form; moments from curvature:M_x = -D(\partial^2 w/\partial x^2 + \nu,\partial^2 w/\partial y^2), \quad D = \frac{E t^3}{12(1-\nu^2)}
**Inputs:** $L$, $W$, thickness $t$, $E$, $\nu$, pressure $q$, mesh density, boundary type. **Outputs:** deflection grid, $M_x, M_y, M_{xy}$, peaks, contour-style plots. **Design codes:** Indicative bending stress and deflection checks. **UI:** Modern `inputs`/`results`. **Gaps:** Single rectangular plate; limited boundary catalog; validation quality low in maturity matrix. --- [^indicative-bending-stress-and-deflection-checks]: Indicative bending stress and deflection checks. ### 3.6 Combined Loading (`combined-loading`) — **beta** **Purpose:** Solid rectangular section under simultaneous axial, bending, torsion, and shear — von Mises screening. **Method:** **Closed-form**\sigma_{ax} = \frac{P}{A}, \quad \sigma_b = \frac{M c}{I}, \quad \tau_t = \frac{T c}{J}, \quad \tau_v = \frac{V}{A}
\sigma_{vm} = \sqrt{(\sigma_{ax}+\sigma_b)^2 + 3\tau_t^2}
(Shear $\tau_v$ computed but not folded into von Mises in current engine — limitation.) **Design codes:** **Implemented** von Mises check — Indicative, AISC Ch. H, EN 1993-1-1 Cl. 6.2, ISO 10828. **UI:** Legacy three-column; extracted monolith module; unit profile complete. **Gaps:** Rectangular section only; shear not in von Mises combination; no warping/torsion refinement. --- [^implemented-von-mises-check-indicative-aisc-ch-h]: **Implemented** von Mises check — Indicative, AISC Ch. H, EN 1993-1-1 Cl. 6.2, ISO 10828. ### 3.7 Load Case Manager (`load-case-manager`) **Purpose:** Envelope multiple load cases (axial, moment, shear) and evaluate combined stress on a rectangular section. **Method:** **Closed-form** envelope + von Mises-style combination (similar to combined-loading). **Inputs:** case list, section width/height, yield strength. **Outputs:** envelope forces, stress components, safety factor, design status. **Design codes:** Indicative envelope utilization. **UI:** Legacy layout; extracted monolith; unit profile present. **Gaps:** Orchestration layer only — no links to external FEA; rectangular section; simplified combination formula. --- ## 4. Machine design ### 4.1 Shaft Design (`shafts`) **Purpose:** Rotating shaft under combined torque, bending, and optional axial load — stress, deflection, critical speed. **Method:** **FEM** — 1D shaft elements with torsion and bending DOF; post-processing for von Mises, critical speed estimate. **Key outputs:** $\tau_{max}$, $\sigma_b$, $\sigma_{vm}$, deflection curve, critical speed margin. **Design codes:** Indicative combined stress, deflection, critical speed (AGMA 6001 / DIN 743 referenced in catalog, not fully implemented as code checks). **UI:** Modern `inputs`/`results`; region unit sync; mesh control. Featured module. **Gaps:** Uniform diameter shaft; fixed-end boundary; fatigue screening not integrated; high refactor risk. --- ### 4.2 Gear Design (`gears`) — **beta** **Purpose:** Spur gear pair sizing — Lewis bending and simplified Hertzian contact. **Method:** **Closed-form / empirical** - **Torque:**T = \dfrac{60P}{2\pi n}
\sigma_b = \dfrac{F_t}{b,m,Y}
- Contact (simplified): Hertz-style $\sigma_c \propto \sqrt{F_t E' (1/R_1 + 1/R_2)}$ **Design codes:** Bending and contact **implemented** (Indicative, AGMA 2101, DIN 3990, ISO 6336-2/3). **Planned:** scuffing, bending/contact fatigue, micropitting. **UI:** Legacy three-column; unit profile; benchmarked. **Gaps:** No profile shift, helix angle, or gear mesh FEA; scuffing/fatigue checks catalogued as planned only. --- [^bending-and-contact-implemented-indicative-agma-]: Bending and contact **implemented** (Indicative, AGMA 2101, DIN 3990, ISO 6336-2/3). **Planned:** scuffing, bending/contact fatigue, micropitting. ### 4.3 Bearing Selection (`bearings`) **Purpose:** Rolling-element bearing equivalent load and L10 life screening. **Method:** **Closed-form** (ISO 281 style)P = X F_r + Y F_a, \quad L_{10} = \left(\frac{C}{P}\right)^3 \times 10^6 \text{ rev}
**Inputs:** radial/axial load, speed, bearing type, material dynamic rating factor, required life, safety factor. **Outputs:** equivalent load, required $C$, expected life hours. **Design codes:** ISO 281 referenced; indicative dynamic capacity and L10 checks. **UI:** Legacy layout; unit profile. **Gaps:** Catalog coefficients simplified (deep groove, angular contact only); no temperature or contamination factors. --- [^iso-281-referenced-indicative-dynamic-capacity-a]: ISO 281 referenced; indicative dynamic capacity and L10 checks. ### 4.4 Cam Design (`cams`) **Purpose:** Cam follower kinematics — displacement, velocity, acceleration for standard motion laws. **Method:** **Closed-form** kinematics (harmonic, cycloidal, polynomial rise segments). **Inputs:** base radius, rise, rise angle, motion law, follower parameters. **Outputs:** pressure angle, contact stress estimate, kinematic curves. **Design codes:** Indicative pressure angle and contact stress. **UI:** Legacy layout; unit profile. **Gaps:** No material fatigue or lubrication film; single-dwell profile family. --- ### 4.5 Flywheel Design (`flywheels`) **Purpose:** Energy storage and rim stress in a thin-ring flywheel approximation. **Method:** **Closed-form**E_k = \tfrac{1}{2} I \omega^2, \quad \sigma_\theta \approx \rho \omega^2 r^2
**Inputs:** outer diameter, thickness, face width, density, RPM, yield stress. **Outputs:** mass, inertia, stored energy, hoop stress, safety factor. **Design codes:** Indicative stress and energy checks. **UI:** Legacy layout; unit profile. **Gaps:** Thin-ring assumption; no arm/web stress concentration. --- ## 5. Fasteners & connections [^indicative-stress-and-energy-checks]: Indicative stress and energy checks. ### 5.1 Bolt Calculator (`bolts`) **Purpose:** Bolted joint — preload, tensile, shear, bearing on threads. **Method:** **FEM** wrapper (`solveScrewFEM`) with validation layer — simplified 1D/threaded fastener model, not full 3D contact FEA. **Design codes:** AISC J3, EN 1993-1-8, VDI 2230 referenced; indicative tensile/shear/bearing checks. **UI:** Legacy layout; unit profile. Featured module. **Gaps:** VDI high-fidelity joint analysis not implemented; FEM label is simplified; moderate refactor risk despite good validators. --- ### 5.2 Weld Group Analysis (`welds`) — **beta** **Purpose:** Fillet/butt weld throat stress under shear and axial load. **Method:** **Closed-form** - **Throat area:**A_t = a_t \times L \times n_w
\sigma_{eq} = \sqrt{\tau^2 + \sigma^2}
**Design codes:** **Implemented** throat shear and combined stress — AWS D1.1, EN 1993-1-8. **UI:** Legacy layout; specialized weld evaluator. **Gaps:** No eccentric load / moment on weld group; uniform stress distribution. --- [^implemented-throat-shear-and-combined-stress-aws]: **Implemented** throat shear and combined stress — AWS D1.1, EN 1993-1-8. ### 5.3 Rivet Analysis (`rivets`) **Purpose:** Multi-rivet shear and bearing screening. **Method:** **Closed-form** — load per rivet, bearing on plate, shear in shank. **Design codes:** Indicative shear and bearing safety factors. **UI:** Legacy layout; unit profile. **Gaps:** No pitch/edge distance checks; no fatigue. --- ### 5.4 Safety Factor (`safety-factor`) **Purpose:** General reserve factor calculator for circular solid section under combined loading. **Method:** **Closed-form** von Mises on circular shaft section:\sigma_{vm} = \sqrt{\sigma_n^2 + 3(\tau_v^2 + \tau_t^2)}
**Outputs:** yield and ultimate safety factors, governing limit. **Design codes:** Indicative only. **UI:** Legacy layout. **No unit profile.** **Gaps:** Circular solid only; utility module — overlaps combined-loading/shafts. --- ## 6. Materials & sections ### 6.1 Material Database (`material-db`) **Purpose:** Lookup table for common engineering materials ($E$, $\nu$, density, yield, etc.). **Method:** **Reference data** — no solver. **Design codes:** Property lookup check (indicative). **UI:** Legacy three-column; database in results column; no calculate pipeline. **Gaps:** No unit profile; not integrated as live input source for all modules; static dataset. --- ### 6.2 Section Properties (`sections`) **Purpose:** Geometric properties for standard shapes — rectangle, circle, I-beam. **Method:** **Closed-form** formulas ($A$, $I_{xx}$, $I_{yy}$, centroid). **UI:** Legacy layout; unit profile. **Gaps:** Limited shape library vs. `profiles` FEM route; no built-up sections. --- ### 6.3 Composite Materials (`composites`) **Purpose:** Rule-of-mixtures effective properties for unidirectional laminate. **Method:** **Closed-form micromechanics**E_L = E_f V_f + E_m V_m, \quad \frac{1}{E_T} = \frac{V_f}{E_f} + \frac{V_m}{E_m}
(similar for strength) **Design codes:** Indicative modulus and strength utilization. **UI:** Legacy layout; unit profile. **Gaps:** No ply stacking, failure criteria (Tsai–Wu, Hashin), or plate bending; **advanced-numerics** maturity band with high refactor risk. --- [^indicative-modulus-and-strength-utilization]: Indicative modulus and strength utilization. ### 6.4 Temperature Properties (`temperature-properties`) **Purpose:** Derate yield and modulus vs. operating temperature; thermal expansion. **Method:** **Empirical linear derating** from 20 °C reference:f_y(T) = f_{y,0}(1 - k_y \Delta T), \quad f_E(T) = E_0(1 - k_E \Delta T)
**UI:** Legacy layout; extracted monolith; unit profile. **Gaps:** Generic coefficients — not material-specific tables (ASME, EN). --- ### 6.5 Fatigue Assessment (`fatigue`) **Purpose:** High-cycle fatigue screening with modified Goodman and S–N estimate. **Method:** **Empirical**\sigma_a \le S_e \left(1 - \frac{\sigma_m}{\sigma_u}\right), \quad N \propto \left(\frac{S_e}{\sigma_a}\right)^3
**Design codes:** ISO 12107, ASME VIII-2 referenced; indicative Goodman and life checks. **UI:** Legacy layout; extracted monolith; `CalculatorResultsShell` style results. **Gaps:** Single-stage Goodman; no mean-stress corrections (Gerber, Morrow), notch factors, or multiaxial fatigue; **advanced-numerics**. --- [^iso-12107-asme-viii-2-referenced-indicative-good]: ISO 12107, ASME VIII-2 referenced; indicative Goodman and life checks. ### 6.6 Corrosion Allowance (`corrosion`) **Purpose:** Required wall thickness given corrosion rate and design life. **Method:** **Closed-form**t_{req} = t_0 + \dot{c}, t_{life},(1 + \text{margin})
**UI:** Legacy layout; extracted monolith; unit profile. **Gaps:** Uniform corrosion only; no localized/pitting models; no API/ASME vessel integration. --- ## 7. Pressure systems ### 7.1 Pipe Stress Analysis (`pipes`) **Purpose:** Cylindrical pipe under internal pressure — hoop/longitudinal stress and deformation. **Method:** **FEM** — thin cylindrical shell discretization; compares to thin-wall theory. **Thin-wall reference:**\sigma_h = \frac{p r}{t}, \quad \sigma_l = \frac{p r}{2t}
**Design codes:** ASME B31.3 referenced; indicative hoop/longitudinal utilization. **UI:** Modern `inputs`/`results`; unit profile. **Gaps:** No bends, supports, or thermal expansion; high refactor risk. --- [^asme-b31-3-referenced-indicative-hoop-longitudin]: ASME B31.3 referenced; indicative hoop/longitudinal utilization. ### 7.2 Pressure Vessels (`vessels`) **Purpose:** Cylindrical vessel — thin/thick wall stress and required thickness. **Method:** **FEM** shell model + classical thin-wall checks for required thickness (ASME UG-27 style screening). **UI:** Modern `inputs`/`results`; unit profile. **Design codes:** ASME VIII-1, EN 13445 referenced. **Gaps:** No heads, nozzles, or fatigue; axisymmetric cylinder only. --- ### 7.3 Hydraulic Cylinders (`hydraulics`) **Purpose:** Double-acting cylinder forces, fluid volume, rod stress. **Method:** **Closed-form**F_{ext} = p A_{piston}, \quad F_{ret} = p (A_{piston} - A_{rod})
**UI:** Legacy layout; unit profile. **Gaps:** No seal friction, buckling on rod, or cushioning. --- ### 7.4 Heat Exchangers (`heat-exchangers`) **Purpose:** Thermal duty, LMTD, NTU, effectiveness for parallel/counterflow. **Method:** **Advanced numerics / correlations**\dot{Q} = \dot{m}h c{p,h}(T_{h,in} - T_{h,out}), \quad \text{LMTD} = \frac{\Delta T_1 - \Delta T_2}{\ln(\Delta T_1/\Delta T_2)}
\varepsilon = f(\text{NTU}, C_r), \quad \text{NTU} = \frac{UA}{C_{min}}
**UI:** Legacy layout; unit profile. **Gaps:** No pressure drop or fouling; fixed flow arrangements; **draft**-adjacent maturity (indicative catalog). --- ## 8. Dynamics & vibrations ### 8.1 Vibration Analysis (`vibrations`) **Purpose:** Natural frequencies and mode shapes of prismatic beams. **Method:** **FEM** — Euler–Bernoulli beam eigenproblem; up to 240 segments.(K - \omega^2 M),\phi = 0
**Design codes:** ISO 10816 referenced for severity context; indicative frequency and separation margin. **UI:** Modern `inputs`/`results`; unit profile. Flagship **advanced-numerics** module. **Gaps:** Beam only; no damping or forced response; high refactor risk. --- [^iso-10816-referenced-for-severity-context-indica]: ISO 10816 referenced for severity context; indicative frequency and separation margin. ### 8.2 Rotational Systems (`rotation`) **Purpose:** Basic rotating mass — inertia, kinetic energy, centripetal force, torque from power. **Method:** **Closed-form** rigid-body dynamics. **UI:** Legacy layout; unit profile; benchmarked. **Gaps:** No gyroscopic effects or transients. --- ### 8.3 Impact & Shock (`impact`) **Purpose:** Transient impact — average force and dynamic stress from impulse. **Method:** **Closed-form** rigid impactJ = m,\Delta v, \quad F_{avg} = \frac{J}{\Delta t}, \quad \sigma_d = \frac{F_{avg}}{A}
**UI:** Legacy layout; extracted monolith; `useCalculatorModule`; unit profile. **Gaps:** No stress wave propagation or elastic rebound; step-averaged force only. --- ### 8.4 Suspension & Sway (`suspension`) **Purpose:** Vehicle roll under lateral acceleration — roll angle, load transfer. **Method:** **Closed-form** static roll modelM_{roll} = F_y \frac{WB}{2}, \quad \phi = \frac{M_{roll}}{K_{roll}}, \quad \Delta W = F_y \frac{h_{cg}}{t_{track}}
**UI:** Legacy layout; extracted monolith; unit profile. **Gaps:** No spring–damper dynamics or ride frequency (despite catalog labels); quasi-static only. --- ## 9. Manufacturing ### 9.1 Tolerance Stackup (`tolerance`) **Purpose:** 1D dimensional stack — worst-case and RSS. **Method:** **Closed-form**\text{WC} = \sum t_i, \quad \text{RSS} = \sqrt{\sum t_i^2}
**Design codes:** ISO 286, ASME Y14.5 referenced. **UI:** Legacy layout; unit profile. **Gaps:** Linear stacks only; no GD&T datums or Monte Carlo. --- [^iso-286-asme-y14-5-referenced]: ISO 286, ASME Y14.5 referenced. ### 9.2 Fits & Clearances (`fits`) **Purpose:** ISO-style hole/shaft tolerance band — clearance, interference, transition classification. **Method:** **Closed-form** from user-entered deviation limits:C_{min} = D_{min}^{hole} - D_{max}^{shaft}, \quad C_{max} = D_{max}^{hole} - D_{min}^{shaft}
**Design codes:** ISO 286-1 referenced. **UI:** Legacy layout; `useCalculatorModule`; unit profile. **Gaps:** Manual tolerance entry — no automatic ISO tolerance grade lookup by nominal size. --- [^iso-286-1-referenced]: ISO 286-1 referenced. ### 9.3 Cost Estimation (`cost-estimator`) — **draft** **Purpose:** Rough manufacturing cost from material, machining, labor, overhead heuristics. **Method:** **Empirical** weighted sum — not a quoting system. **UI:** Legacy layout. **No unit profile.** **Gaps:** Draft status; no CAD integration; region/currency not modeled. --- ### 9.4 CAM Toolpaths (`cam-toolpaths`) — **draft** **Purpose:** Basic toolpath length and time estimates from geometry and feed rate. **Method:** **Geometric** — simplified path length; no full CAM kernel. **UI:** Legacy layout. **No unit profile.** **Gaps:** Draft status; no collision or machine kinematics. --- ## 10. Area properties (profiles) ### Profiles (`profiles`) **Route:** `/products/profiles` — not listed in sidebar categories but catalogued in `moduleStandardCatalog`. **Purpose:** Cross-section area properties for rectangle, circle, I-section, T-section, channel — including composite built-up shapes via mesh integration. **Method:** **FEM** numerical integration over meshed section (`solveAreaPropertiesFEM`) with analytical fallbacks for simple shapes. **Outputs:** $A$, centroid, $I_{xx}$, $I_{yy}$, principal axes, torsion constant (where implemented). **UI:** Legacy `center`/`right` only (no dedicated inputs column label); `useStandardCalculation`; unit profile. **Gaps:** Overlaps `sections` closed-form module; maturity metadata unclassified in `moduleMaturity.ts`; layout not migrated to `inputs`/`results`. --- ## 11. Maturity & numerical methods From `src/data/moduleMaturity.ts`: | Band | Count | Representative modules | |------|------:|------------------------| | **formula** | 20 | combined-loading, gears, bearings, welds, fits, tolerance, hydraulics, rotation, impact, … | | **fem** | 9 | beams, frames, trusses, columns, plates, shafts, bolts, pipes, vessels | | **advanced-numerics** | 5 | composites, fatigue, heat-exchangers, vibrations, suspension | **Refactor risk (high):** beams, frames, shafts, bolts, pipes, vibrations, fatigue, composites — prioritize careful regression when homogenizing. **Validation quality:** Most modules score 2–3/5; beams/columns/bolts/pipes/vessels slightly higher where benchmarks exist. ### Method legend | Label | Meaning in PhyCalcPro | |-------|----------------------| | **FEM** | Mesh-based stiffness assembly + linear solve (beams, frames, shells, shafts, buckling, vibrations) | | **Closed-form** | Direct algebraic evaluation from textbook formulas | | **Empirical** | Code-style correlations, derating curves, or heuristic models | | **Reference** | Lookup tables without numerical solve | --- ## 12. Gaps & roadmap ### 12.1 Homogenization (UI / contract) 1. **Layout migration** — ~26 modules still use deprecated `left`/`center`/`right`. Target: `inputs` + `results` only, with `CalculatorInputPanel` and `CalculatorGuidancePanel` inside inputs where guidance is needed. 2. **Unit profiles** — Add profiles for trusses, material-db, safety-factor, cost-estimator, cam-toolpaths; migrate remaining pages to `CalculatorUnitField`. 3. **Results shell** — Standardize on `CalculatorResultsShell`, `CalculatorMetricGrid`, and `CalculatorMetricCard` with `formatEngineeringValue` (column buckling style per AGENTS.md). 4. **Hook consolidation** — Prefer `useStandardCalculation` over ad hoc `useDesignCodeUnits` + manual `attach*CalculationSpec` (beams is the outlier). 5. **Export** — Ensure all plots use `EngineeringPlot` with export attributes; wrap SVG diagrams with `data-export-diagram`. ### 12.2 Design code depth | Priority | Gap | |----------|-----| | Medium | Shafts: Kt UI wiring; DIN 743 / AGMA fatigue checks | | Medium | Tolerance/fits: expose 2D stack, Monte Carlo, ISO 286 auto UI | | Low | Welds: eccentric weld group combined stress refinement | | Low | Bolts: bolt pattern load sharing | **Recently addressed (2026 expansion):** Full UI for 19 expansion modules (springs, power transmission, gearing extensions, connections, circular-plates, rolled-sections, tools); fatigue Gerber/Morrow selector; tolerance 2D + Monte Carlo UI; fits ISO 286 lookup; shaft Kt input. Only **columns, combined-loading, welds**, and partial **beams/gears** have non-generic implemented evaluators. --- ## 13. Expansion modules (2026) ### 13.1 Power transmission | Module | Key relations | |--------|----------------| | **v-belts** | $L = 2C + \frac{\pi(D_1+D_2)}{2} + \frac{(D_2-D_1)^2}{4C}$; pretension from tight/slack ratio with friction wrap | | **timing-belts** | Pitch diameter $d = p z / \pi$; belt length open-drive approximation | | **roller-chains** | Power capacity vs. strand count; life $\propto 1/\text{load}^3$ screening | | **multi-pulley** | Wrap angles from center distance and diameters; segment length sum | ### 13.2 Gearing extensions | Module | Key relations | |--------|----------------| | **bevel-gears** | Lewis bending + Hertzian contact (same family as spur) | | **worm-gears** | Efficiency $\eta = \tan\lambda/(\tan\lambda+\mu)$ | | **planetary-gears** | $z_r = z_s + 2 z_p$, ratio $1 + z_r/z_s$ | | **gear-ratio-design** | Integer search minimizing $\|z_2/z_1 - i\|$ | ### 13.3 Springs Helical compression: $k = G d^4 / (8 D^3 n)$, Wahl factor $K_s$, solid height $\approx n d + 2d$. Extension springs reuse compression core with initial tension estimate. Torsion springs: $k = E d^4 / (116 D n)$, bending stress from torque. ### 13.4 Shaft connections Keys/splines: shear $\tau = T/(0.5 d A_s)$, bearing on key. Shaft hubs: Lamé-type contact pressure from interference. Pins: double shear + bearing on plate thickness. ### 13.5 Other new modules - **brakes-clutches:** friction torque at mean radius, energy $E = P \Delta t$ - **plain-bearings:** Sommerfeld $S = \mu U / W$, film thickness screening - **circular-plates:** $w \propto p a^4 / D$, $D = E t^3 / (12(1-\nu^2))$ - **rolled-sections:** catalog lookup (W/S/C starter set) - **formula-reference / unit-converter:** shared formula hub and unit layer --- ## 14. Expansion module reference (`id`) Each entry summarizes governing relations for the 19 modules added in the 2026 expansion. All ship with dedicated `*Inputs.tsx` / `*Results.tsx`, `moduleProfiles` entries, and `CalculatorResultsShell` export. ### Module (`compression-springs`) Helical compression: spring rate $k = G d^4 / (8 D^3 n)$, Wahl shear factor $K_s = (4C-1)/(4C-4) + 0.615/C$ with $C = D/d$, shear stress $\tau = 8 F D K_s / (\pi d^3)$, solid height $\approx n d + 2d$. ### Module (`extension-springs`) Same rate and stress core as compression; adds initial tension estimate $F_i \approx k \cdot 0.1 L_0$. ### Module (`torsion-springs`) Rate $k = E d^4 / (116 D n)$; torque $T = k \theta$; bending stress $\sigma = 32 T / (\pi d^3)$. ### Module (`timing-belts`) Pitch diameter $d = p z / \pi$; open-drive belt length; tangential force from transmitted power and driver speed. ### Module (`roller-chains`) Sprocket pitch diameters; chain speed $v = \pi d n / 60$; indicative life vs. load index. ### Module (`multi-pulley`) Wrap angle $\theta = \pi \mp 2 \arcsin(|D_2-D_1|/(2C))$ (open/crossed); belt length $L = 2C + \frac{\pi(D_1+D_2)}{2} + \frac{(D_2-D_1)^2}{4C}$. ### Module (`bevel-gears`) Lewis bending with geometry factor $Y$; Hertzian contact stress screening; safety vs. yield. ### Module (`worm-gears`) Ratio $i = z_g / z_w$; efficiency $\eta = \tan\lambda / (\tan\lambda + \mu)$; worm torque with efficiency loss. ### Module (`planetary-gears`) Ring teeth $z_r = z_s + 2 z_p$; ratio $1 + z_r/z_s$; planet count from spacing. ### Module (`gear-ratio-design`) Integer search minimizing $|z_2/z_1 - i_\text{target}|$ subject to tooth limits. ### Module (`plain-bearings`) Sommerfeld $S = \mu \omega r / (W c)$; eccentricity and minimum film thickness screening. ### Module (`brakes-clutches`) Friction torque at mean radius $\bar r = \frac{2}{3}\frac{r_o^3-r_i^3}{r_o^2-r_i^2}$; energy per stop $E = P \Delta t$. ### Module (`keys-splines`) Key shear $\tau = T/(0.5 d A_s)$; bearing $\sigma = 2T/(d A_b)$; capacity from allowable stresses. ### Module (`shaft-hubs`) Lamé-type contact pressure from interference $\delta$; friction torque $T = p \pi d L \mu d/2$. ### Module (`pins`) Double-shear stress $\tau = F/(n A)$; bearing on plate $\sigma = F/(n d t)$. ### Module (`circular-plates`) Roark coefficients: $w_\max = \alpha p a^4 / D$, $\sigma \propto \beta p a^2 / t^2$, flexural rigidity $D = E t^3 / (12(1-\nu^2))$ for simply supported or clamped edge. ### Module (`rolled-sections`) Catalog lookup — area, $I_x$, $I_y$, section moduli, mass per meter for W/S/C starter sections. ### Module (`formula-reference`) Evaluates catalog formulas: kinetic energy $E = \frac{1}{2}mv^2$, pump power $P = Q \Delta p$, thermal expansion $\Delta L = \alpha L \Delta T$, friction $F = \mu N$. ### Module (`unit-converter`) Converts via SI base layer: `toBase` / `fromBase` for length, force, stress dimensions. --- ### 12.3 Physics & solver scope - **No module** provides full 3D solid FEA, nonlinear material, or contact — all "FEM" labels are reduced-order (beam, shell, truss, 1D shaft). - **Load combinations / partial factors** are user responsibility (stated in catalog assumptions). - **Fatigue, composites, suspension** need deeper physics before raising validation tier. - **Draft modules** (cost-estimator, cam-toolpaths) should not be used for production decisions without explicit review. ### 12.4 Testing & release - Expand `benchmarkRunner` coverage beyond the current eight solvers. - Wire release tier gates to CI so **beta** modules require passing benchmarks before promotion. - `npm run validate:layout` enforces no duplicate sidebars / DashboardLayout on product pages — keep in pre-build. ### 12.5 Documentation maintenance When adding a module: 1. Register in `src/data/modules.ts` and `moduleStandardCatalog.ts`. 2. Add `moduleMaturity` entry and `moduleProfiles` fields. 3. Follow the page contract in Homogenization-Roadmap.md. 4. Update this document's inventory table and category section. --- *Generated from codebase review: `modules.ts`, `moduleCatalog.ts`, `moduleMaturity.ts`, `moduleProfiles.ts`, solver engines under `src/lib/**`, and product pages under `src/app/products/**`.*