Free-free axial rod — natural frequencies#
Companion to Axial rod — fundamental natural frequency (fixed-free) (fixed-free). A uniform rod with both ends free vibrates longitudinally with mode shapes \(u_n(x) = \cos(n \pi x / L)\) and natural frequencies
The \(n = 0\) mode is rigid-body axial translation at zero frequency. The first elastic mode (\(n = 1\)) is at \(f_1 = \sqrt{E/\rho} / (2 L)\) — twice the fixed-free fundamental.
This is a useful sanity check for the eigen solver’s handling of near-zero / rigid-body modes: the solver should return one near-zero rigid-body mode followed by the elastic family.
Problem#
Parameter |
Value |
|---|---|
Rod length |
1.0 m |
Cross-sectional area |
1 × 10⁻⁴ m² (cancels out of f) |
Young’s modulus |
200 GPa |
Density |
7 850 kg/m³ |
Expected |
|
Expected |
2 f₁ = 5 047.54 Hz |
femorph-solver result#
Ran by tests/validation/test_free_free_rod_nf.py using
the LINK180 (TRUSS2) kernel on a chain of 2-node spar
elements. Transverse DOFs (UY, UZ) pinned on every node so the
truss-element zero transverse stiffness doesn’t admit arbitrary
side-sway modes. Axial UX is fully unconstrained — the solver
correctly returns a rigid-body translation mode at f ≈ 0 Hz
followed by the elastic family.
Refinement |
Elements |
|
Error vs closed form |
|---|---|---|---|
Coarse |
20 |
2 526.37 |
+0.10 % |
Medium |
40 |
2 524.42 |
+0.03 % |
Refined |
80 |
2 523.93 |
+0.006 % |
Linear-Lagrange truss elements integrate the wave equation with consistent mass and recover the elastic spectrum to near-machine-precision on dense meshes.
Cross-references#
Source |
Reported |
Problem ID / location |
|---|---|---|
Closed form (wave equation) |
2 523.77 |
Rao 2017 §8.2 Table 8.1 |
Meirovitch (2010) §6.6 |
2 523.77 |
Free-free rod |
femorph-solver (refined) |
2 523.93 |
|
MAPDL Verification Manual |
≈ 2 524 |
VM-47 (free-free torsion analogue) |
Abaqus Verification Manual |
≈ 2 524 |
AVM 1.6.x free-free-rod NF family |
Source#
Problem class:
femorph_solver.validation.problems.FreeFreeRodModes.
Backing regression test:
tests/validation/test_free_free_rod_nf.py.