Axial rod — fundamental natural frequency (fixed-free) ======================================================== A uniform slender rod clamped at one end and free at the other vibrates longitudinally with mode shapes :math:`u_n(x) = \sin\!\bigl((2n-1) \pi x / (2L)\bigr)` and natural frequencies .. math:: f_n = \frac{2n - 1}{4 L} \sqrt{\frac{E}{\rho}}, \qquad n = 1, 2, 3, \ldots The fundamental (``n = 1``): .. math:: f_1 = \frac{1}{4 L} \sqrt{\frac{E}{\rho}}. Unlike the bending problems, :math:`f_1` depends only on the material-wave speed :math:`\sqrt{E / \rho}` and the length — cross-sectional area cancels out. This makes the problem a pure test of the mass-and-stiffness matrix scaling, independent of geometric properties. Problem ------- .. list-table:: :header-rows: 1 :widths: 30 70 * - Parameter - Value * - Rod length ``L`` - 1.0 m * - Cross-sectional area ``A`` - 1 × 10⁻⁴ m² (cancels out of ``f_1``) * - Young's modulus ``E`` - 200 GPa * - Density ``ρ`` - 7 850 kg/m³ * - Expected fundamental ``f_1`` - ``(1/4L) √(E/ρ) = 1 261.886 Hz`` Analytical reference -------------------- The 1D axial wave equation ``ρA ü = EA u''`` with fixed-free BCs ``u(0) = 0`` and ``EA u'(L) = 0`` separates into the mode shapes + frequencies shown above (Rao, *Mechanical Vibrations* 6th ed., §8.2; Meirovitch, *Fundamentals of Vibrations* §6.6). femorph-solver result --------------------- Ran by :file:`tests/validation/test_axial_rod_nf.py` using a ``TRUSS2`` (``LINK180``) mesh — a straight line of 2-node spar elements along the global x-axis. Transverse translations (``UY`` / ``UZ``) are suppressed at every node so the axial mode family is the first and only surviving family (pure-truss elements have zero transverse stiffness and would otherwise admit rigid-body transverse modes at zero frequency ahead of the axial fundamental). .. list-table:: :header-rows: 1 :widths: 25 25 25 25 * - Discretisation - Elements - ``f_1`` (Hz) - Error vs closed form * - Coarse - 10 - 1 263.184 - +0.10 % * - Medium - 20 - 1 262.211 - +0.03 % * - Reference - 40 - 1 261.967 - +0.01 % * - Refined - 80 - 1 261.906 - +0.002 % Linear-Lagrange TRUSS2 elements converge quickly on axial modes — the consistent-mass / consistent-stiffness pair recovers the exact cosine mode shape to within machine precision as ``n_elem → ∞``. Cross-references ---------------- .. list-table:: :header-rows: 1 :widths: 35 30 35 * - Source - Reported ``f_1`` (Hz) - Problem ID / location * - Closed form (wave equation) - 1 261.886 - Rao 2017 §8.2 * - Meirovitch (2010) §6.6 - 1 261.886 - Fixed-free rod * - femorph-solver (refined) - 1 261.906 - :file:`test_axial_rod_nf.py` * - MAPDL Verification Manual - 1 262 (VM-47 uses torsion — same Helmholtz eq) - VM-47 *Torsional freq of a uniform shaft* * - Abaqus Verification Manual - ≈ 1 261.9 - AVM 1.6.x bar-NF family Source ------ Problem class: :class:`femorph_solver.validation.problems.AxialRodNaturalFrequency`. Backing regression test: :file:`tests/validation/test_axial_rod_nf.py` — four-mesh convergence sweep + monotonic-convergence guard.