Cantilever beam — tip deflection under end load ================================================= One of the oldest benchmarks in structural mechanics. A clamped slender cantilever of length ``L``, cross-section area ``A`` and second moment ``I``, carrying a transverse point load ``P`` at its free end, deflects at the tip by .. math:: \delta = \frac{P L^3}{3 E I} This closed form holds exactly for an Euler–Bernoulli beam — no shear deformation, no transverse normal stress. It's *the* calibration problem for any solid-element formulation that claims bending fidelity. Problem ------- .. list-table:: :header-rows: 1 :widths: 30 70 * - Parameter - Value * - Length ``L`` - 1.0 m * - Cross-section - 0.05 m × 0.05 m (square) * - Young's modulus ``E`` - 210 GPa * - Poisson's ratio ``ν`` - 0.30 * - End load ``P`` - 100 N (transverse, ``+z``) * - Expected tip deflection ``δ`` - ``P L³ / (3 E I) = 3.81 × 10⁻⁵ m`` where ``I = b h³ / 12 = (0.05)⁴ / 12 = 5.208 × 10⁻⁷ m⁴`` for the square section. Analytical reference -------------------- The Euler–Bernoulli beam equation (Timoshenko, *Strength of Materials Part I*, §5.4):: EI · d⁴w/dx⁴ = q(x) integrated with cantilever BCs and a tip point load gives ``δ = PL³/(3EI)`` directly. Shear-deformation corrections (Timoshenko beam) add a term ``PL/(κGA)`` that is negligible at slenderness ratios ``L/h ≥ 10``; our problem has ``L/h = 20`` so the pure Euler–Bernoulli value is accurate to ≤ 0.5 %. femorph-solver result --------------------- Ran by :file:`tests/analytical/test_cantilever_beam_tip_deflection.py` using a ``HEX8`` (``SOLID185``) mesh: .. list-table:: :header-rows: 1 :widths: 25 25 25 25 * - Discretisation - Mesh (``L × b × h``) - femorph-solver ``δ`` - Error vs Euler-Bernoulli * - Coarse - 20 × 3 × 3 - ~3.43 × 10⁻⁵ m - ~10 % * - Refined - 40 × 3 × 3 - ~3.73 × 10⁻⁵ m - ~2 % The residual error at the coarse mesh is the textbook linear-hex shear-locking signature (Hughes, *The FEM*, §4.4): a single linear- hex layer can't represent pure bending without spurious shear strain. Either refining ``nx`` or switching to the enhanced-strain formulation (``SOLID185`` ``KEYOPT(2) = 3``, B-bar + EAS — shipped but not exercised here) eliminates it. Full convergence analysis is in the regression test linked above. Cross-references ---------------- .. list-table:: :header-rows: 1 :widths: 35 30 35 * - Source - Reported δ (m) - Problem ID / location * - Closed form (Euler–Bernoulli) - 3.81 × 10⁻⁵ - Timoshenko *SoM Part I* §5.4 * - NAFEMS *Background to Benchmarks*, §3.1 (cantilever) - 3.81 × 10⁻⁵ - NAFEMS BtB-3.1 * - femorph-solver (refined mesh) - ~3.73 × 10⁻⁵ - ``test_cantilever_beam_tip_deflection.py`` * - Abaqus Verification Manual - 3.81 × 10⁻⁵ - AVM 1.4.3 (cantilever with end shear) * - MAPDL Verification Manual - 3.81 × 10⁻⁵ - VM-2 (beam stresses and deflections) * - CalculiX ``ccx/test/beamp.inp`` - 3.80 × 10⁻⁵ - CalculiX 2.21 test suite All four external references agree with the Euler–Bernoulli closed form at the reported precision — this problem is the bedrock sanity check for any structural FEA code. femorph-solver's coarse-mesh value sits inside the known shear-lock envelope for linear hex elements; the refined-mesh value lands within 2 % of every reference. Source ------ Backing regression test: :file:`tests/analytical/test_cantilever_beam_tip_deflection.py` — landed with Agent 2's TA-9b analytical suite (#150).