Skip to content

Warped CQUAD4 rigid again: BMEAN in the element axes (MIN4/MIN4T), K6ROT on warped shells - #322

Open
Valladarex wants to merge 2 commits into
MystranSolver:devfrom
Valladarex:pr/warped-shells
Open

Valladarex wants to merge 2 commits into
MystranSolver:devfrom
Valladarex:pr/warped-shells

Conversation

@Valladarex

Copy link
Copy Markdown

Fixes #321.

Two commits, one per defect.

  1. Warped QUAD4 (MIN4, MIN4T): CALC_BMEANT rotates each 3x2 block of BMEAN by CT_QD into the axes the membrane matrices use (QUADAXIS = SPLITD). It is in ELEMENT_GEOMETRY_PREPARATION.f03.
  2. K6ROT: drilling spring rigid on warped shells. The node rotation term becomes n - sum over its two edges of (n.d) d / (2|d|^2). That makes the spring strain zero for every rigid motion, and it is n alone for flat elements, so flat models are unchanged. For MIN4/MIN4T the edge vectors include the grids' +-HBAR. It is in SHELL_ROTATION_SUPPORT.f03.

Checks:

  • PARAM,EQCHECK,0,1 rigid-rotation grid forces on a warped quad drop to the flat-element level for MIN4, MIN4T and MITC4, with and without K6ROT, at 1x and 10x the warp.
  • An 852-grid shell airframe, free-free: 9 zero modes before, 12 after (first elastic mode 531 Hz). With K6ROT 100 the result is also 12.

Tests: MYSTRAN_Validation MystranSolver/MYSTRAN_Validation#37.

  • warped_quad4_rigid_rotation_min4.bdf and warped_quad4_rigid_rotation_k6rot.bdf (MITC4 + K6ROT): a warped unsymmetric quad with grids 1-3 held at a small rigid rotation. Grid 4 must follow it (11 checks).
    • On dev all 11 fail.
    • Commit 1 fixes the 5 MIN4 checks, and commit 2 the 6 K6ROT checks.
  • The bulk reference of "hemisphere with cutout 4e-4 mitc4+ SNORM K6ROT" is regenerated with commit 2.
    • Its results move toward the same deck without K6ROT and toward the benchmark: load point 0.091269 before, 0.091304 after, 0.091304 without K6ROT, reference 0.091428.
    • Its individual-value checks are unchanged and pass.
    • Commit 1 alone leaves that deck unchanged.

Validation suite: with both PRs, 1 failure of 3,266 checks, the same one current dev has without them ("mitc4 thermal strain free rectangle cylinder"). The 11 new checks and the regenerated hemisphere pass.

…ement axes it is used in

CALC_BMEANT builds BMEAN from the geometry in the axes with x along side 1-2 (X12...Y4 from QUAD_GEOM_CHECK, TE_12), but
with the default QUADAXIS = 'SPLITD' the membrane matrices it multiplies (QMEM1 KE, PTE, BIG_BM) are in the final axes
TE = CT_QD*TE_12. For a warped quad with QUAD_DELTA /= 0 the stiffness was then not rigid: a rigid rotation about an
in-plane axis gave grid forces in proportion to HBAR (PARAM,EQCHECK), and free-free models with warped quads lost rigid
modes. Each 3x2 block of BMEAN is now rotated by CT_QD. Present in release 19; MITC4/MITC4+ and QUADAXIS = 'SIDE12'
were never affected.

Checks (EQCHECK, rigid-rotation grid forces): a single warped quad (HBAR 0.04 on 13 x 16) 1.24E+03 before, 1.0 after
(the flat element's level), unchanged at 10x the warp. A 852-grid shell airframe, free-free: 9 zero modes and three
rigid rotations at 4.6, 6.9 and 11.7 Hz before; 12 zero modes after, first elastic mode 531 Hz (534 Hz with SIDE12).

Test (MYSTRAN_Validation): warped_quad4_rigid_rotation_min4.bdf, a warped
unsymmetric quad with grids 1-3 held at a small rigid rotation; grid 4 must
follow it. Current dev misses by up to 4.5%.
CALC_K6ROT measures the rotation of each edge about the element normal n from the translations of its end nodes,
(n x d).(u_next - u_n) / (2|d|^2), and compares it with n . r_n. When an edge d is not in the element plane (a warped
MITC4 quad, whose XEL has z coordinates, or a warped MIN4/MIN4T quad, whose grids are -HBAR, +HBAR, -HBAR, +HBAR from
the mean plane XEL lies in), a rigid rotation w about an in-plane axis gives edge terms of
(n.d)(w.d) / (2|d|^2) that n . r_n does not cancel, so the spring resisted rigid rotation. The rotation of node n now
enters as n - sum over its 2 edges of (n.d) d / (2|d|^2), which makes the spring strain zero for every rigid motion and
is n alone when the edges lie in the plane (flat elements unchanged). For MIN4/MIN4T the edge vectors now include the
grids' heights from the mean plane.

Checks:
- PARAM,EQCHECK (rigid-rotation grid forces) on a warped quad with K6ROT 100: at the flat element's level for MIN4,
  MIN4T and MITC4 at 1x and 10x the warp.
- A 852-grid shell airframe, free-free, K6ROT 100: rigid rotations at 0.30, 0.46 and 0.71 Hz before (after the BMEAN
  fix), 12 zero modes after (first elastic mode 532 Hz MIN4, 604 Hz MITC4).

Tests (MYSTRAN_Validation): warped_quad4_rigid_rotation_k6rot.bdf (MITC4 + K6ROT 100), a warped quad
with grids 1-3 held at a small rigid rotation; grid 4 must follow it (current dev misses by up to 0.4%, R3
5.7E-5 where it is 0). The bulk reference of "hemisphere with cutout 4e-4 mitc4+ SNORM K6ROT" is regenerated:
its results move toward the same deck without K6ROT and toward the benchmark (load point 0.091269 before,
0.091304 after, 0.091304 without K6ROT, reference 0.091428); its individual-value checks are unchanged.
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