Skip to content

DOF tables: TDOF starts from zero when generated again after AUTOSPC (stale O-set numbers, ERROR 938) - #330

Open
Valladarex wants to merge 1 commit into
MystranSolver:devfrom
Valladarex:pr/omit-dof-table
Open

Valladarex wants to merge 1 commit into
MystranSolver:devfrom
Valladarex:pr/omit-dof-table

Conversation

@Valladarex

Copy link
Copy Markdown

Fixes #329.

One commit, in Source/LK1/L1B/DOF_NUMBERING.f03.

  • The fix: TDOF(:,:) = 0 at the start of TDOF_PROC. Columns 1-4 and every set are then written in full.
  • Derived sets unchanged: the derived sets (N, SZ, S, F, A, L) already wrote 0 outside them, so their values don't change.

Test: MYSTRAN_Validation MystranSolver/MYSTRAN_Validation#41, aset1_345_strip_static.bdf: a 2 x 5 CQUAD4 strip clamped at one end, with ASET1 345 on the free grids.

  • Four displacements must equal those of the same strip without the ASET1, since static condensation is exact.
  • On dev it stops with ERROR 938. With this PR all four pass.

Also checked on this commit alone:

  • OMIT1 126, OMIT1 6 and ASET1 3 on the same strip give the full model's displacements.
  • In SOL 103, ASET1 345 gives the full model's eigenvalues and mode shapes. On dev the eigenvalues are printed, then ERROR 938 in recovery.

Note for reviewers: the test deck writes one ASET1 entry per THRU range. The current dev also drops IDs written after a THRU range ("2 THRU 6 102 THRU 106" loses 102-106). That separate issue has its own PR (ID lists).

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

…(stale O-set numbers, ERROR 938)

TDOF_PROC wrote the sets taken from TSET (M, SA, SB, SG, SE, O, R, U1, U2) only at their own DOFs, and skipped a
set whose count was 0. When the tables were generated again after AUTOSPC, a DOF that AUTOSPC moved out of the
O-set kept its old O-set number. On plates the drilling DOFs (R3) have no stiffness; in an ASET1 with only some
components (345, 3), or an OMIT1 that names component 6, they are in the O-set, so their stale numbers were larger
than the new NDOFO. In SOL 101, and in SOL 103 data recovery, the run then stopped in LINK5 with ERROR 938
(MERGE_COL_VECS).

Fix: TDOF(:,:) = 0 at the start of TDOF_PROC; columns 1-4 and every set are then written in full. The derived sets
(N, SZ, S, F, A, L) already wrote 0 at the DOFs outside them, so their values are unchanged. TDOFI is copied from
TDOF.

Test (MYSTRAN_Validation): aset1_345_strip_static.bdf, a 2 x 5 CQUAD4 strip clamped at one end with ASET1 345 on
the free grids. Static condensation is exact, so the displacements must equal the full model's. Current dev stops
with ERROR 938. (The same strip in SOL 103 gives the full model's eigenvalues and, with the fix, its mode shapes
instead of ERROR 938 in recovery; OMIT1 126, OMIT1 6 and ASET1 3 give the full model's displacements too.)
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