Pinched ring — diametrical deflection ======================================== Classical thin-ring benchmark from Castigliano's 1879 derivation. A circular ring of mean radius :math:`R`, bending stiffness :math:`EI`, loaded by two equal and opposite point forces :math:`P` acting along a diameter deflects by .. math:: \delta_{\text{diam}} = \frac{P R^{3}}{E I} \Bigl(\frac{\pi}{4} - \frac{2}{\pi}\Bigr) \approx 0.14868 \, \frac{P R^{3}}{E I}. The line of action of the loads shortens by :math:`\delta_{\text{diam}}`; the perpendicular diameter lengthens by the Castigliano companion value :math:`\delta_{\text{perp}} = P R^{3}(4/\pi - \pi/4) / (E I)`. Problem ------- .. list-table:: :header-rows: 1 :widths: 30 70 * - Parameter - Value * - Mean ring radius ``R`` - 0.1 m * - Cross-section - 10 mm × 5 mm (radial = 5 mm) * - Young's modulus ``E`` - 200 GPa * - Poisson's ratio ``ν`` - 0.30 * - Applied point load ``P`` - 10 N * - Expected ``δ_diam / 2`` - (one loaded point's inward motion) = 3.57 × 10⁻⁵ m femorph-solver result --------------------- Ran by :file:`tests/validation/test_pinched_ring.py` using the ``BEAM2`` kernel on a quarter-symmetry chain of straight 2-node beam segments discretising the arc ``θ ∈ [0, π/2]``. BCs at the two cut ends enforce the full-ring symmetries: * ``θ = 0`` (loaded point ``(R, 0)``): ``UY = UZ = ROTX = ROTY = ROTZ = 0``. ``UX`` is free to register the inward deflection; the in-plane rotation ``ROTZ = 0`` enforces the x-axis symmetry of the cross-section. * ``θ = π/2`` (symmetry point ``(0, R)``): ``UX = UZ = ROTX = ROTY = ROTZ = 0``. ``UY`` is free. Half of the load (``P/2``) is applied at the loaded node inward along ``-x``; by quarter-symmetry the full-ring diametrical deflection equals twice the loaded-node ``|u_x|``. .. list-table:: :header-rows: 1 :widths: 30 25 20 25 * - Refinement - Elements (quarter arc) - ``|u_x(loaded)|`` (m) - Error vs Castigliano * - Coarse - 20 - 3.570 × 10⁻⁵ - −0.02 % * - Medium - 40 - 3.573 × 10⁻⁵ - +0.08 % * - Refined - 80 - 3.574 × 10⁻⁵ - +0.10 % Converges to within 0.1 % — the small positive drift reflects the slight extensional stiffness the 2-node BEAM2 introduces (Castigliano's derivation assumes pure bending with zero axial strain). Inside the published 5 % engineering tolerance. Cross-references ---------------- .. list-table:: :header-rows: 1 :widths: 35 30 35 * - Source - Reported ``δ_diam / 2`` (m) - Problem ID / location * - Closed form (Castigliano) - 3.57 × 10⁻⁵ - Timoshenko & Young 1968 §79 * - Roark's *Formulas for Stress and Strain* - 3.57 × 10⁻⁵ - 8th ed. Table 9.2 Case 13 * - femorph-solver (finest) - 3.574 × 10⁻⁵ - :file:`test_pinched_ring.py` * - MAPDL Verification Manual - ≈ 3.57 × 10⁻⁵ - VM-38 pinched-ring family * - Abaqus Verification Manual - ≈ 3.57 × 10⁻⁵ - AVM 1.5.x pinched-ring family * - NAFEMS R0011 - ≈ 3.57 × 10⁻⁵ - Pinched-ring benchmark (quarter-symmetry) Source ------ Problem class: :class:`femorph_solver.validation.problems.PinchedRing`. Backing regression test: :file:`tests/validation/test_pinched_ring.py` — asserts ``|u_x|`` matches the closed form to within 0.5 % on every refinement, not just the finest.