LS-DYNA keyword writer (implicit static and eigenvalue, M3) (#25)

* decks: LS-DYNA keyword writer (long format, implicit static and eigenvalue)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* decks: LS-DYNA golden files, Jacobian-sign node-order tests, re-reader and refusals

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* docs: LS-DYNA writer status and deck notes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* decks: simplify the LS-DYNA writer (plan decides once, cards written in place, shared test tables)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* decks: LS-DYNA joins FORMATS (deck.write lsdyna), refusals reported together, shared concentrated loads

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* decks: LS-DYNA on main's shared deck API (steps parameter, model helpers)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

---------

Co-authored-by: jyviko <2501648+jyviko@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
authored and GitHub committed 2026-10-13 17:39:45 -04:00
1 parent f4a0333d28
commit 81fa8d7220
13 files changed
+2353 -3

No files matched your search

+93
View File
@@ -0,0 +1,93 @@
*KEYWORD long=y
$ Written by ModelCraft: implicit linear analysis, long format (20-column fields).
$ Units: mm-t-s-N-MPa (consistent; nothing is converted).
*NODE
$ nid x y z
1 0.0 0.0 0.0
2 1.0 0.0 0.0
3 2.0 0.0 0.0
4 3.0 0.0 0.0
5 4.0 0.0 0.0
6 0.0 1.0 0.0
7 1.0 1.0 0.0
8 2.0 1.0 0.0
9 3.0 1.0 0.0
10 4.0 1.0 0.0
11 0.0 0.0 1.0
12 1.0 0.0 1.0
13 2.0 0.0 1.0
14 3.0 0.0 1.0
15 4.0 0.0 1.0
16 0.0 1.0 1.0
17 1.0 1.0 1.0
18 2.0 1.0 1.0
19 3.0 1.0 1.0
20 4.0 1.0 1.0
*MAT_ELASTIC_TITLE
Steel
$ mid ro e pr
1 7.85e-9 210000.0 0.3
*SECTION_SOLID
$ secid elform
1 2
*PART
beam
$ pid secid mid eosid hgid
1 1 1
*ELEMENT_SOLID
$ eid pid
$ n1 n2 n3 n4 n5 n6 n7 n8 n9 n10
1 1
1 2 7 6 11 12 17 16
2 1
2 3 8 7 12 13 18 17
3 1
3 4 9 8 13 14 19 18
4 1
4 5 10 9 14 15 20 19
*SET_NODE_LIST_TITLE
root
$ sid
2
1 6 11 16
*SET_NODE_LIST_TITLE
tip
$ sid
3
5 10 15 20
*TITLE
Bend
*CONTROL_IMPLICIT_GENERAL
$ imflag dt0
1 1.0
*CONTROL_IMPLICIT_SOLUTION
$ nsolvr
1
*CONTROL_TERMINATION
$ endtim
1.0
*DEFINE_CURVE_TITLE
Bend ramp
$ lcid
1
$ a1 o1
0.0 0.0
1.0 1.0
*BOUNDARY_SPC_SET_ID
1clamp
$ nsid cid dofx dofy dofz dofrx dofry dofrz
2 1 1 1 1 1 1
$ load `tip_load`
*LOAD_NODE_SET
$ nsid dof lcid sf
3 3 1 -25.0
*DATABASE_BINARY_D3PLOT
$ dt
1.0
*DATABASE_SPCFORC
$ dt
1.0
*DATABASE_EXTENT_BINARY
$ neiph neips maxint strflg
1
*END
@@ -0,0 +1,124 @@
*KEYWORD long=y
$ Written by ModelCraft: implicit linear analysis, long format (20-column fields).
$ Units: mm-t-s-N-MPa (consistent; nothing is converted).
$ 2 steps are written as *CASE analyses: run LS-DYNA with CASE on its command line.
*NODE
$ nid x y z
1 0.0 0.0 0.0
2 1.0 0.0 0.0
3 2.0 0.0 0.0
4 3.0 0.0 0.0
5 4.0 0.0 0.0
6 0.0 1.0 0.0
7 1.0 1.0 0.0
8 2.0 1.0 0.0
9 3.0 1.0 0.0
10 4.0 1.0 0.0
11 0.0 0.0 1.0
12 1.0 0.0 1.0
13 2.0 0.0 1.0
14 3.0 0.0 1.0
15 4.0 0.0 1.0
16 0.0 1.0 1.0
17 1.0 1.0 1.0
18 2.0 1.0 1.0
19 3.0 1.0 1.0
20 4.0 1.0 1.0
99999999 5.0 0.5 0.5
*MAT_ORTHOTROPIC_ELASTIC_TITLE
Ply
$ mid ro ea eb ec prba prca prcb
1 1.6e-9 140000.0 10000.0 10000.0 0.02142857142857143 0.02142857142857143 0.45
$ gab gbc gca aopt
5000.0 3500.0 5000.0 2.0
$ xp yp zp a1 a2 a3
1.0 0.0 0.0
$ v1 v2 v3 d1 d2 d3
0.0 1.0 0.0
*SECTION_SOLID
$ secid elform
1 -18
*PART
beam
$ pid secid mid eosid hgid
1 1 1
*ELEMENT_SOLID
$ eid pid
$ n1 n2 n3 n4 n5 n6 n7 n8 n9 n10
1 1
1 2 7 6 11 12 17 16
2 1
2 3 8 7 12 13 18 17
3 1
3 4 9 8 13 14 19 18
4 1
4 5 10 9 14 15 20 19
*SET_NODE_LIST_TITLE
root
$ sid
2
1 6 11 16
*SET_NODE_LIST_TITLE
pad (rigid body)
$ sid
4
99999999 5 10 15 20
*CONSTRAINED_NODAL_RIGID_BODY_TITLE
pad
$ pid cid nsid
2 4
*CASE_BEGIN_1
*TITLE
Bend
*CONTROL_IMPLICIT_GENERAL
$ imflag dt0
1 1.0
*CONTROL_IMPLICIT_SOLUTION
$ nsolvr
1
*CONTROL_TERMINATION
$ endtim
1.0
*DEFINE_CURVE_TITLE
Bend ramp
$ lcid
1
$ a1 o1
0.0 0.0
1.0 1.0
*BOUNDARY_SPC_SET_ID
1clamp
$ nsid cid dofx dofy dofz dofrx dofry dofrz
2 1 1 1 1 1 1
*LOAD_NODE_POINT
$ nid dof lcid sf
99999999 2 1 -10.0
99999999 5 1 250.0
*DATABASE_BINARY_D3PLOT
$ dt
1.0
*DATABASE_SPCFORC
$ dt
1.0
*DATABASE_EXTENT_BINARY
$ neiph neips maxint strflg
1
*CASE_END_1
*CASE_BEGIN_2
*TITLE
Modes
*CONTROL_IMPLICIT_GENERAL
$ imflag dt0
1 1.0
*CONTROL_IMPLICIT_EIGENVALUE
$ neig center lflag lftend rflag rhtend
6 1 1.0 1 5000.0
*CONTROL_TERMINATION
$ endtim
1.0
*BOUNDARY_SPC_SET_ID
2clamp
$ nsid cid dofx dofy dofz dofrx dofry dofrz
2 1 1 1 1 1 1
*CASE_END_2
*END
+94
View File
@@ -0,0 +1,94 @@
*KEYWORD long=y
$ Written by ModelCraft: implicit linear analysis, long format (20-column fields).
$ Units: mm-t-s-N-MPa (consistent; nothing is converted).
*NODE
$ nid x y z
1 0.0 0.0 0.0
2 10.0 0.0 0.0
3 20.0 0.0 0.0
4 0.0 10.0 0.0
5 10.0 10.0 0.0
6 20.0 10.0 0.0
7 30.0 0.0 0.0
8 30.0 10.0 0.0
*MAT_ELASTIC_TITLE
Steel
$ mid ro e pr
1 7.85e-9 210000.0 0.3
*SECTION_SHELL
$ secid elform shrf nip
1 4 0.8333333333333334 5
$ t1 t2 t3 t4 nloc
0.5 0.5
*SECTION_SHELL
$ secid elform shrf nip
2 16 0.8333333333333334 5
$ t1 t2 t3 t4 nloc
0.5 0.5
*PART
skin tri3
$ pid secid mid eosid hgid
1 1 1
*PART
skin quad4
$ pid secid mid eosid hgid
2 2 1
*ELEMENT_SHELL
$ eid pid n1 n2 n3 n4 n5 n6 n7 n8
1 2 1 2 5 4
2 2 2 3 6 5
3 1 3 7 8 8
4 1 3 8 6 6
*SET_NODE_LIST_TITLE
edge
$ sid
1
1 4
*SET_SEGMENT_TITLE
top
$ sid
3
$ n1 n2 n3 n4
1 2 5 4
2 3 6 5
3 7 8 8
3 8 6 6
*TITLE
Sag
*CONTROL_IMPLICIT_GENERAL
$ imflag dt0
1 1.0
*CONTROL_IMPLICIT_SOLUTION
$ nsolvr
1
*CONTROL_TERMINATION
$ endtim
1.0
*DEFINE_CURVE_TITLE
Sag ramp
$ lcid
1
$ a1 o1
0.0 0.0
1.0 1.0
*BOUNDARY_SPC_SET_ID
1hold
$ nsid cid dofx dofy dofz dofrx dofry dofrz
1 1 1 1 1 1 1
$ load `press`
*LOAD_SEGMENT_SET
$ ssid lcid sf
3 1 0.01
*LOAD_BODY_Z
$ lcid sf
1 9810.0
*DATABASE_BINARY_D3PLOT
$ dt
1.0
*DATABASE_SPCFORC
$ dt
1.0
*DATABASE_EXTENT_BINARY
$ neiph neips maxint strflg
1
*END
+162
View File
@@ -0,0 +1,162 @@
*KEYWORD long=y
$ Written by ModelCraft: implicit linear analysis, long format (20-column fields).
$ Units: m-kg-s-N-Pa (consistent; nothing is converted).
*NODE
$ nid x y z
1 0.0 0.0 0.0
2 1.0 0.0 0.0
3 0.0 1.0 0.0
4 0.0 0.0 1.0
5 2.0 0.0 0.0
6 3.0 0.0 0.0
7 2.0 1.0 0.0
8 2.0 0.0 1.0
9 2.5 0.0 0.0
10 2.5 0.5 0.0
11 2.0 0.5 0.0
12 2.0 0.0 0.5
13 2.5 0.0 0.5
14 2.0 0.5 0.5
15 4.0 0.0 0.0
16 5.0 0.0 0.0
17 4.0 1.0 0.0
18 4.0 0.0 1.0
19 5.0 0.0 1.0
20 4.0 1.0 1.0
21 6.0 0.0 0.0
22 7.0 0.0 0.0
23 7.0 1.0 0.0
24 6.0 1.0 0.0
25 6.0 0.0 1.0
26 7.0 0.0 1.0
27 7.0 1.0 1.0
28 6.0 1.0 1.0
29 6.5 0.0 0.0
30 7.0 0.5 0.0
31 6.5 1.0 0.0
32 6.0 0.5 0.0
33 6.5 0.0 1.0
34 7.0 0.5 1.0
35 6.5 1.0 1.0
36 6.0 0.5 1.0
37 6.0 0.0 0.5
38 7.0 0.0 0.5
39 7.0 1.0 0.5
40 6.0 1.0 0.5
99999999 6.5 0.5 2.0
*MAT_ELASTIC_TITLE
Aluminium
$ mid ro e pr
1 2700.0 70000000000.0 0.33
*SECTION_SOLID
$ secid elform
1 23
*SECTION_SOLID
$ secid elform
2 16
*SECTION_SOLID
$ secid elform
3 13
*SECTION_SOLID
$ secid elform
4 2
*PART
hex20
$ pid secid mid eosid hgid
1 1 1
*PART
tet10
$ pid secid mid eosid hgid
2 2 1
*PART
tet4
$ pid secid mid eosid hgid
3 3 1
*PART
wedge
$ pid secid mid eosid hgid
4 4 1
*ELEMENT_SOLID
$ eid pid
$ n1 n2 n3 n4 n5 n6 n7 n8 n9 n10
1 3
1 2 3 4 4 4 4 4
2 2
5 6 7 8 9 10 11 13 14 12
3 4
16 15 18 19 17 17 20 20
*ELEMENT_SOLID_H20
$ eid pid
$ n1 n2 n3 n4 n5 n6 n7 n8 n9 n10
4 1
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
*SET_NODE_LIST_TITLE
base
$ sid
1
1 2 3 4
*SET_NODE_LIST_TITLE
lid
$ sid
3
25 26 27 28 33 34 35 36
*SET_NODE_LIST_TITLE
tet10
$ sid
4
5 6 7 8 9 10 11 12
13 14
$ coupling `spider`
*CONSTRAINED_INTERPOLATION
$ icid dnid ddof cidd ityp idnsw fgm
1 99999999 123456 1 1
$ inid idof
3 123
*TITLE
Load
*CONTROL_IMPLICIT_GENERAL
$ imflag dt0
1 1.0
*CONTROL_IMPLICIT_SOLUTION
$ nsolvr
1
*CONTROL_TERMINATION
$ endtim
1.0
*DEFINE_CURVE_TITLE
Load ramp
$ lcid
1
$ a1 o1
0.0 0.0
1.0 1.0
*BOUNDARY_SPC_SET_ID
1hold
$ nsid cid dofx dofy dofz dofrx dofry dofrz
1 1 1 1 1 1 1
*BOUNDARY_PRESCRIBED_MOTION_SET_ID
2lift
$ nsid dof vad lcid sf
4 3 2 1 0.001
*LOAD_NODE_POINT
$ nid dof lcid sf
25 1 1 -83.33333333333337
26 1 1 -83.33333333333336
27 1 1 -83.33333333333323
28 1 1 -83.3333333333333
33 1 1 333.3333333333333
34 1 1 333.33333333333337
35 1 1 333.3333333333334
36 1 1 333.3333333333333
99999999 3 1 50.0
*DATABASE_BINARY_D3PLOT
$ dt
1.0
*DATABASE_SPCFORC
$ dt
1.0
*DATABASE_EXTENT_BINARY
$ neiph neips maxint strflg
1
*END