Skip to content

feat(fem): polar second moment of area of a hollow circular shaft#445

Merged
nochallenge merged 1 commit into
masterfrom
feat/fem-hollow-circular-polar-second-moment
Jun 9, 2026
Merged

feat(fem): polar second moment of area of a hollow circular shaft#445
nochallenge merged 1 commit into
masterfrom
feat/fem-hollow-circular-polar-second-moment

Conversation

@nochallenge

Copy link
Copy Markdown
Owner

What

Adds beam::hollow_circular_polar_second_moment_of_area(outer_diameter, inner_diameter) — the polar second moment of a tube/pipe about its axis:

// J = pi * (D^4 - d^4) / 32   (m^4)

Why

For a circular tube this polar second moment is the genuine St-Venant torsion constant (unlike a non-circular section) — the torsional stiffness of drive-shaft tubing, far stiffer per weight than a solid shaft. Guard mirrors hollow_circular_second_moment_of_area. This completes the hollow circular {bending-I, polar-J} pair.

Test

hollow_circular_polar_second_moment_of_area_is_pi_d4_minus_d4_over_32:

Re-exported from lib.rs alphabetically in the beam block. valenx-fem 266 lib tests (was 265); cargo clippy -p valenx-fem --all-targets -- -D warnings clean. Research-grade torsion section-property primitive.

Add beam::hollow_circular_polar_second_moment_of_area(outer_diameter,
inner_diameter), the polar second moment of a tube/pipe about its axis:

  J = pi * (D^4 - d^4) / 32   (m^4)

For a CIRCULAR tube this polar second moment IS the genuine St-Venant
torsion constant (unlike a non-circular section) -- the torsional stiffness
of drive-shaft tubing, far stiffer per weight than a solid shaft. Guard
mirrors hollow_circular_second_moment_of_area.

Analytic test hollow_circular_polar_second_moment_of_area_is_pi_d4_minus_d4_over_32:
(a) worked D=0.1, d=0.05 -> J ~= 9.2038e-6 m^4;
(b) threads hollow_circular_second_moment_of_area (#435) (non-tautological,
    perpendicular-axis theorem): J = 2*I_hollow;
(c) threads circular_polar_second_moment_of_area (#423) (non-tautological,
    annulus): J = J(D) - J(d);
(d) solid limit: a zero bore is a solid shaft;
(e) 0-sentinel guards for D<=0, d>=D, non-finite, negative bore.

Re-exported from lib.rs alphabetically in the beam block. valenx-fem 266
lib tests (was 265), cargo clippy --all-targets -D warnings clean.
@nochallenge nochallenge merged commit 9b12c67 into master Jun 9, 2026
@nochallenge nochallenge deleted the feat/fem-hollow-circular-polar-second-moment branch June 9, 2026 00:31
nochallenge added a commit that referenced this pull request Jun 9, 2026
…an) (#464)

Completes the scale-separation-ratio pair with the integral-to-Kolmogorov
ratio L/η (dimensionless) — the ratio of the energy-containing integral length
scale L (integral_length_scale, #445) to the dissipative Kolmogorov length η
(kolmogorov_length_scale), the total span of the turbulent cascade from the
largest eddies to the smallest. It is the companion to λ/η
(taylor_to_kolmogorov_ratio, #455) and the widest scale-separation measure: it
grows strongly with Reynolds number (∝ 1/ν^(3/2) for a fixed flow) and in
isotropic turbulence satisfies L/η = Re_λ^(3/2)/15^(3/4). Guards η ≤ 0.

Analytic test (4 checks) on a pure shear u(y)=γy (ε=νγ²) and a solid-body
rotation (ε=0): (a) delegation thread L/η = L ÷ η; (b) non-tautological identity
L/η = Re_λ^(3/2)/15^(3/4) threading taylor_reynolds_number (#443); (c) 1/ν^(3/2)
scaling — fixed field, quartering ν multiplies the ratio by 8; (d) no-
dissipation → 0. valenx-cfd-native 141 lib tests (was 140), clippy clean.

Research-grade closed-form diagnostic, not a production turbulence model.
nochallenge added a commit that referenced this pull request Jun 9, 2026
…e trio) (#466)

Completes the turbulence length-scale-ratio trio with the integral-to-Taylor
ratio L/λ (dimensionless) — the ratio of the energy-containing integral length
scale L (integral_length_scale, #445) to the intermediate Taylor microscale λ
(taylor_microscale, #441). It joins λ/η (taylor_to_kolmogorov_ratio, #455) and
L/η (integral_to_kolmogorov_ratio, #457). It grows linearly with Reynolds number
(∝ 1/ν for a fixed flow) and in isotropic turbulence is exactly L/λ = Re_λ/15.
Guards λ ≤ 0 (no dissipation).

Analytic test (4 checks) on a pure shear u(y)=γy (ε=νγ²) and a solid-body
rotation (ε=0): (a) delegation thread L/λ = L ÷ λ; (b) non-tautological identity
L/λ = Re_λ/15 threading taylor_reynolds_number (#443); (c) 1/ν scaling — fixed
field, halving ν doubles the ratio; (d) no-dissipation → 0. valenx-cfd-native
142 lib tests (was 141), clippy clean. No UI change.

Research-grade closed-form diagnostic, not a production turbulence model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant