Skip to content

Scalar masses at their own DOF: DOF table labels, the CMASS component, and masses added at one DOF - #324

Open
Valladarex wants to merge 1 commit into
MystranSolver:devfrom
Valladarex:pr/scalar-masses
Open

Valladarex wants to merge 1 commit into
MystranSolver:devfrom
Valladarex:pr/scalar-masses

Conversation

@Valladarex

Copy link
Copy Markdown

Fixes #323.

One commit, in Source/LK1/L1B/DOF_NUMBERING.f03 and Source/LK1/L1E/MASS_MATRIX_ASSEMBLY.f03.

  • TDOF_PROC labels point I with its own number of components.
  • MGGS_MASS_MATRIX takes the DOF from TDOF_ROW_START and the CMASS component (0 or 1 for a scalar point), and adds the masses at one DOF.
  • A component the point does not have stops with ERROR 1362.

Test: MYSTRAN_Validation MystranSolver/MYSTRAN_Validation#38, scalar_masses_eigen.bdf: three independent systems whose hand eigenvalues k / m are 3, 4, 5 and 8.

  • On dev it stops with ERROR 989.
  • With this PR it gives 3, 4, 5 and 8.

Also checked on this commit alone, outside the suite (11 checks):

  • the oscillators with scalar points below, above and between the grids' IDs, and with no grid;
  • a CMASS1 with PMASS on a grid's T2 (5);
  • component 0 on a grid stops with ERROR 1362;
  • PARAM PRTDOF labels each row with its own point.

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.

…, and masses added at one DOF

With scalar points whose IDs sort below a grid's, scalar masses were put at other DOFs; a CMASS on a grid's T3 went
to T1; and of several masses at one DOF only the first counted. Two scalar oscillators (lambda 4 and 8 by hand) with
SPOINT 1, 2, 9 and GRID 99 stopped with ERROR 989 (MLL not factorisable); two CMASS4 of 1.5 and 2.5 on one scalar point
with k = 12 gave lambda 8, not 3, without a message.

Causes:
- TDOF_PROC labelled the rows of the DOF table (point and component) with the number of components of
  INV_GRID_SEQ(I), the point at sequence position I, while the rows are laid out in GRID_ID order with each point's
  own count (CALC_TDOF_ROW_START). With scalar points and grids sequenced in another order than their IDs, rows got
  the wrong point and component.
- MGGS_MASS_MATRIX found each point's G-set DOF from those labels (the K-th row labelled component 1) and never read
  the CMASS component.
- Of several masses at one DOF only the first was put in MGGS.

Fixes:
- TDOF_PROC labels point I with its own number of components.
- MGGS_MASS_MATRIX takes the DOF from TDOF_ROW_START and the CMASS component (0 or 1 for a scalar point), and adds the
  masses at one DOF.
- A component the point does not have stops with ERROR 1362.

Test (MYSTRAN_Validation): scalar_masses_eigen.bdf, three independent systems with hand eigenvalues k / m: two scalar
oscillators with scalar point IDs below the grids' (4 and 8), two masses on one scalar point (3), and a CMASS2 on a
grid's T3 (5). On current dev it stops with ERROR 989.
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