Question about defining proper joint constraints.

58 views
Skip to first unread message

Evan Yi

unread,
Mar 31, 2022, 10:54:13 AM3/31/22
to LS-DYNA2
Hello everyone,
Recently, I have a model that needs to simulate Joint ( Spherical and Revolute). I built a simple model to understand how joints are defined and work. This scenario contains two balls hung by strings, both of which are modeled with RIGID materials as shown below. And I applied gravity by *LOAD_BODY_Z and initial velocity by *INITIAL_VELOCITY_NODE so that the right ball is supposed to collide with the left one. However, it is turned out that both of them just fall under gravity, the spherical joints are not properly defined though no error reported. The two spherical joints look just do not exist at all. However, when I go to check the kinematic energy of parts, it tells me that the KE is zero for the left ball.
I also studied the example about joints on dynaexamples.com, and cannot recognize the essence of defining joints yet. Could anyone help me with this problem? The keyword file is attached. Thanks a lot in advance.
test small.png

test.k

l...@schwer.net

unread,
Mar 31, 2022, 12:27:22 PM3/31/22
to Evan Yi, LS-DYNA2

The beam (B7) that suspends the rigid ball need to have a “dog leg” that is coincident with the horizontal beam (B1372) and the nodes of  the “dog leg” need to be coincident with the horizontal beam, i.e. A=B and C=D and then the joint definition has

 

N1  N2  N3  N4

A    B     C     D                                                    --len

 

 

--
You received this message because you are subscribed to the Google Groups "LS-DYNA2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ls-dyna2+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ls-dyna2/b3bafc71-39c9-4d85-8151-9f43b8122a92n%40googlegroups.com.

image001.png
image002.png

Evan Yi

unread,
Mar 31, 2022, 1:15:40 PM3/31/22
to LS-DYNA2
Dear Len,
Thanks for your reply, this figure↓ shows how the two revolute joints are defined. It looks the same as you indicate but the result is as same as before.
2.jpg

l...@schwer.net

unread,
Apr 1, 2022, 1:48:37 PM4/1/22
to Evan Yi, LS-DYNA2

Evan –

 

I spent quite a bit of time looking at your model and here are a few things I think are wrong:

 

1\ Your rigid body labeled “Boundary Beam” has two revolute joints – I do not believe a rigid body make have more than one rigid body joint.

 

2\ Since you merged the rigid “Ball” to their corresponding “String” each now represents ONE rigid body. The center of gravity (rotation) of that rigid body does not align with the center of rotation of the revolute joint.

 

3\ Do not use nodal constraints on rigid bodies. Rigid body constraints are applied via the *MAT_RIGID keyword.

 

I suggest you break your “Boundary Beam” into two rigid bodies and similarly break each “String” into two rigid bodies, i.e. one for the revolute joint and the other attached to the ball. Insert a singe elastic element to connected these two rigid bodied at the end of the string nearest the revolute joint.

 

                --len

 

 

From: ls-d...@googlegroups.com <ls-d...@googlegroups.com> On Behalf Of Evan Yi
Sent: Thursday, March 31, 2022 10:16 AM
To: LS-DYNA2 <ls-d...@googlegroups.com>
Subject: Re: [LS-DYNA2] Question about defining proper joint constraints.

 

Dear Len,

Thanks for your reply, this figure↓ shows how the two revolute joints are defined. It looks the same as you indicate but the result is as same as before.

202241日星期五 UTC+8 00:27:22<L...@Schwer.net> 写道:

The beam (B7) that suspends the rigid ball need to have a “dog leg” that is coincident with the horizontal beam (B1372) and the nodes of  the “dog leg” need to be coincident with the horizontal beam, i.e. A=B and C=D and then the joint definition has

 

N1  N2  N3  N4

A    B     C     D                                                    --len

 

Image removed by sender.

 

From: ls-d...@googlegroups.com <ls-d...@googlegroups.com> On Behalf Of Evan Yi
Sent: Thursday, March 31, 2022 7:54 AM
To: LS-DYNA2 <ls-d...@googlegroups.com>
Subject: [LS-DYNA2] Question about defining proper joint constraints.

 

Hello everyone,

Recently, I have a model that needs to simulate Joint ( Spherical and Revolute). I built a simple model to understand how joints are defined and work. This scenario contains two balls hung by strings, both of which are modeled with RIGID materials as shown below. And I applied gravity by *LOAD_BODY_Z and initial velocity by *INITIAL_VELOCITY_NODE so that the right ball is supposed to collide with the left one. However, it is turned out that both of them just fall under gravity, the spherical joints are not properly defined though no error reported. The two spherical joints look just do not exist at all. However, when I go to check the kinematic energy of parts, it tells me that the KE is zero for the left ball.

I also studied the example about joints on dynaexamples.com, and cannot recognize the essence of defining joints yet. Could anyone help me with this problem? The keyword file is attached. Thanks a lot in advance.

Image removed by sender.

 

--
You received this message because you are subscribed to the Google Groups "LS-DYNA2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ls-dyna2+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ls-dyna2/b3bafc71-39c9-4d85-8151-9f43b8122a92n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "LS-DYNA2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ls-dyna2+u...@googlegroups.com.

~WRD0002.jpg
image001.jpg

Evan Yi

unread,
Apr 9, 2022, 5:07:41 AM4/9/22
to LS-DYNA2
Dear Len,
Thank you. It looks like I have some misunderstandings on Constrained_Joints before. After receiving your second reply, I spent several days digging this keyword. So, now I realized that one rigid body cannot be connected to more than one joint, and a joint can only be permissible on rigid body nodes.
I created a simple model and compared it with the example provided by Mr. James and on the dynasupport website, to make sure it has identical structures with the example keyword file except for the unit system and coordinates of nodes, which should not be influence to joints as I can understand. However, the animation of the keyword file I created still show an unexpected result, the rotating plate flies away ignoring the existence of a revolute joint. Could you please help me review this keyword file? Thanks in advance.
try.k

l...@schwer.net

unread,
Apr 9, 2022, 1:10:40 PM4/9/22
to Evan Yi, LS-DYNA2

I think you do not understand a key aspect of rigid bodies and how they interact with constrained joints.

 

Rigid bodies move (translate and rotate) about their mass centers – see circles below. Although you have defined a revolute joint at the edge of the two shells, the rigid bodies attempt to rotate about their mass centers.

 

You could define two rigid beams that form the revolute joint and then merge those beam nodes with deformable shell elements; if you make the shells rigid the resulting beam/shell rigid bodies will be back to your original model with mass centers off the axis of the revolute joint.

 

                --len

 

image001.png

James M. Kennedy

unread,
Apr 9, 2022, 1:43:12 PM4/9/22
to Evan Yi, LS-DYNA2

Dear Evan,

 

Your conversion leaves a bit to be desired.

 

It appears that you are trying to use gram, millimeter, millisec, Newton, megaPa.

 

The example I shared used ton, millimeter. Sec, Newton, megaPa.

 

Please check your conversion and missing input.

 

*KEYWORD

*TITLE

$#                                                                         title

LS-DYNA keyword deck by LS-PrePost

*CONTROL_TERMINATION

$#  endtim    endcyc     dtmin    endeng    endmas     nosol    

     200.0         0       0.0       0.01.000000E8         0

*CONTROL_TIMESTEP

$#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st

      0.01       0.9         0       0.0       0.0         0         0         0

$#  dt2msf   dt2mslc     imscl    unused    unused     rmscl    unused      ihdo

       0.0         0         0                           0.0                   0

*DATABASE_GLSTAT

$#      dt    binary      lcur     ioopt    

       0.1         0         0         1

*DATABASE_JNTFORC

$#      dt    binary      lcur     ioopt    

       0.1         0         0         1

*DATABASE_NODOUT

$#      dt    binary      lcur     ioopt   option1   option2      

       0.1         0         0         1       0.0         0

*DATABASE_RBDOUT

$#      dt    binary      lcur     ioopt    

       0.1         0         0         1

*DATABASE_BINARY_D3PLOT

$#      dt      lcdt      beam     npltc    psetid     

5.00000E-4         0         0         0         0

$#   ioopt      rate    cutoff    window      type      pset   

         0       0.0       0.0       0.0         0         0

*DATABASE_HISTORY_NODE

$#     id1       id2       id3       id4       id5       id6       id7       id8

         6         8         0         0         0         0         0         0

*LOAD_NODE_POINT

$#     nid       dof      lcid        sf       cid        m1        m2        m3

         6         3         1       1.0         1         0         0         0

         5         3         1       1.0         1         0         0         0

*PART

$#                                                                         title

rotating

$#     pid     secid       mid     eosid      hgid      grav    adpopt      tmid

         1         1         1         0         0         0         0         0

*SECTION_SHELL_TITLE

shell

$#   secid    elform      shrf       nip     propt   qr/irid     icomp     setyp

         1         2       1.0         3       1.0         0         0         1

$#      t1        t2        t3        t4      nloc     marea      idof    edgset

      2.54      2.54      2.54      2.54       0.0       0.0       0.0         0

*MAT_RIGID_TITLE

rigid free

$#     mid        ro         e        pr         n    couple         m     alias

         1   0.00783  200000.0       0.3       0.0       0.0       0.0         

$#     cmo      con1      con2   

       0.0         0         0

$#lco or a1        a2        a3        v1        v2        v3 

       0.0       0.0       0.0       0.0       0.0       0.0

*PART

$#                                                                         title

fixed

$#     pid     secid       mid     eosid      hgid      grav    adpopt      tmid

         2         1         2         0         0         0         0         0

*MAT_RIGID_TITLE

rigid fixed

$#     mid        ro         e        pr         n    couple         m     alias

         2   0.00783  200000.0       0.3       0.0       0.0       0.0         

$#     cmo      con1      con2   

       1.0         7         7

$#lco or a1        a2        a3        v1        v2        v3 

       0.0       0.0       0.0       0.0       0.0       0.0

*DEFINE_COORDINATE_NODES

$#     cid        n1        n2        n3      flag       dir  

         1         5         7         6         0X

*DEFINE_CURVE_TITLE

load

$#    lcid      sidr       sfa       sfo      offa      offo    dattyp     lcint

         1         0       1.0       1.0       0.0       0.0         0         0

$#                a1                  o1 

                 0.0               100.0

              9999.0               100.0

*DEFINE_CURVE_TITLE

timestep

$#    lcid      sidr       sfa       sfo      offa      offo    dattyp     lcint

         2         0       1.0       1.0       0.0       0.0         0         0

$#                a1                  o1 

                 0.0    4.1500002226e-06

              9999.0    4.1500002226e-06

*CONSTRAINED_JOINT_REVOLUTE_ID

$#     jid                                                                 title

         1                                                                     

$#      n1        n2        n3        n4        n5        n6       rps      damp

         1         7         2         8         0         0       1.0       1.0

*ELEMENT_SHELL

$#   eid     pid      n1      n2      n3      n4      n5      n6      n7      n8

       1       2       3       4       2       1       0       0       0       0

       2       1       7       8       6       5       0       0       0       0

*NODE

$#   nid               x               y               z      tc      rc 

       1            25.0            25.0             0.0       0       0

       2            25.0            50.0             0.0       0       0

       3            50.0            25.0             0.0       0       0

       4            50.0            50.0             0.0       0       0

       5             0.0            25.0             0.0       0       0

       6             0.0            50.0             0.0       0       0

       7            25.0            25.0             0.0       0       0

       8            25.0            50.0             0.0       0       0

*END

 

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$  LS-DYNA(970) DECK WRITTEN BY : eta/FEMB-PC version 28.0

$  ENGINEER :

$   PROJECT :

$     UNITS : MM, TON, SEC,  N

$      TIME : 03:09:16 PM

$      DATE : Thursday, July 08, 2004

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*KEYWORD

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*TITLE

hinged shell w/ stop angle

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                                 CONTROL CARD                                 $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*CONTROL_TERMINATION

$   ENDTIM    ENDCYC     DTMIN    ENDENG    ENDMAS

     0.020                                        

*CONTROL_TIMESTEP

$   DTINIT    TSSFAC      ISDO    TSLIMT     DT2MS      LCTM     ERODE     MS1ST

                                                           5                   

$   DT2MSF

         

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                          DATABASE CONTROL FOR ASCII                          $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*DATABASE_GLSTAT

$       DT    BINARY

   0.00010         

*DATABASE_JNTFORC

$       DT    BINARY

   0.00010         

*DATABASE_NODOUT

$       DT    BINARY

   0.00010         

*DATABASE_RBDOUT

$       DT    BINARY

   0.00010         

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                         DATABASE CONTROL FOR BINARY                          $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*DATABASE_BINARY_D3PLOT

$  DT/CYCL      LCDT      BEAM     NPLTC

   0.00050                             

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                            DATABASE HISTORY CARDS                            $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*DATABASE_HISTORY_NODE

$^

$     NID1      NID2      NID3      NID4      NID5      NID6      NID7      NID8

         3         4                                                            

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                                  PART CARDS                                  $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*PART

$HEADING

ROTATING

$      PID     SECID       MID     EOSID      HGID      GRAV    ADPOPT      TMID

         1         1         1         0                                       

*PART

$HEADING

FIXED

$      PID     SECID       MID     EOSID      HGID      GRAV    ADPOPT      TMID

         2         1         2         0                                        

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                                SECTION CARDS                                 $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*SECTION_SHELL

$    SECID    ELFORM      SHRF       NIP     PROPT   QR/IRID     ICOMP     SETYP

         1         2                   3                                       

$       T1        T2        T3        T4      NLOC     MAREA

      2.54      2.54      2.54      2.54                   

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                                MATERIAL CARDS                                $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*MAT_RIGID

$^MAT0001

$      MID        RO         E        PR         N    COUPLE         M     ALIAS

         17.4808E-09  206842.7      0.30                                       

$      CMO      CON1      CON2

                             

$LCO_OR_A1        A2        A3        V1        V2        V3

                                                            

*MAT_RIGID

$^MAT0002

$      MID        RO         E        PR         N    COUPLE         M     ALIAS

         27.4808E-09  206842.7      0.30                                       

$      CMO      CON1      CON2

       1.0       7.0         7

$LCO_OR_A1        A2        A3        V1        V2        V3

                                                           

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                           CONSTRAINED JOINT CARDS                            $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*CONSTRAINED_JOINT_STIFFNESS_GENERALIZED

$^

$     JSID      PIDA      PIDB      CIDA      CIDB       JID

         1         1         2         5         5         

$   LCIDPH     LCIDT    LCIDPS   DLCIDPH    DLCIDT   DLCIDPS

                                                           

$     ESPH      FMPH       EST       FMT      ESPS      FMPS

350.94758

$    NSAPH     PSAPH      NSAT      PSAT     NSAPS     PSAPS

                50.0                                       

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                               LOAD NODE CARDS                                $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*LOAD_NODE_POINT

$^

$     NODE       DOF      LCID        SF       CID        M1        M2        M3

         3         3         1      -1.0                                       

*LOAD_NODE_POINT

$^

$     NODE       DOF      LCID        SF       CID        M1        M2        M3

         4         3         1      -1.0                                       

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                           COORDINATE SYSTEM CARDS                            $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*DEFINE_COORDINATE_NODES

$^

$      CID        N1        N2        N3      FLAG

         5         1         2         3         

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                               LOAD CURVE CARDS                               $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*DEFINE_CURVE

$^

$     LCID      SIDR       SFA       SFO      OFFA      OFFO    DATTYP

         5                                                           

$                 A1                  O1

                 0.0          0.00000415

                 1.0          0.00000415

*DEFINE_CURVE

$^

$     LCID      SIDR       SFA       SFO      OFFA      OFFO    DATTYP

         1                                                           

$                 A1                  O1

                 0.0                 1.0

                 1.0                 1.0

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                               NODE INFORMATION                               $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*NODE

$    NID               X               Y               Z      TC      RC

       1             0.0             0.0             0.0     0.0     0.0

       2            25.4             0.0             0.0     0.0     0.0

       3             0.0            25.4             0.0     0.0     0.0

       4            25.4            25.4             0.0     0.0     0.0

       7             0.0           -25.4             0.0     0.0     0.0

       8            25.4           -25.4             0.0     0.0     0.0

       9             0.0             0.0             0.0     0.0     0.0

     10            25.4             0.0             0.0     0.0     0.0

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                             ELEMENTS INFORMATION                             $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                                SHELL ELEMENTS                                $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*ELEMENT_SHELL

$    EID     PID    NID1    NID2    NID3    NID4

       1       1       1       3       4       2

       3       2       7       9      10       8

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

$                                                                              $

$                             JOINT REVOLUTE CARDS                             $

$                                                                              $

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*CONSTRAINED_JOINT_REVOLUTE

$       N1        N2        N3        N4        N5        N6       RPS      DAMP

         1         9         2        10         0         0       1.0         

$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

*END

 

 

Sincerely,

James M. Kennedy

KBS2 Inc.

April 9, 2022

Evan Yi

unread,
Apr 9, 2022, 10:44:02 PM4/9/22
to LS-DYNA2
Dear Len,
Thank you again.
Do you mean the constrained_extra_nodes keyword? I did not reach that far yet since this is a simple model following the manual example. In that example, only rigid bodies are involved and the example run fine. But your suggestions are still enlightening for me in the future. After all, practical works always contain interactions between deformable bodies.
I have found out the problem bothering me is the timestep control. I recalled the theory about defining proper timestep. Before this, my models did not encounter timestep issues so I thought the software will give a proper timestep size if I leave it aside. However, in this example, it seems that the timestep should be prudently defined since elements are all rigid, so the default timestep value leads to an unrealistic result. If I define the Load curve ID(LCTM) in *CONTROL_TIMESTEP as 4.15e-3 milisec (4.15e-6 second in the original example), which was missed because of my carelessness, the revolute joint can work without changing any other keyword. So, I am believed that timestep size is the reason.
Anyway, I would like to express my appreciation for your time and effort spent on my question, your suggestions would help me and any other young or part-time engineers understanding how joints work in LS-DYNA and what needs to be paid attention to. 

Sincerely,
Evan

Evan Yi

unread,
Apr 9, 2022, 10:53:03 PM4/9/22
to LS-DYNA2
Dear James,
Thank you so much. I realized that the problem is caused by the improper timestep size. I missed the LCTM in *CONTROL_TIMESTEP because of my carelessness. After I fix this negligence and make the timestep reasonable according to my unit system, the model gives a realistic result.
It is a good lesson for me because this problem bothered me for several days. I truly appreciate your timely help.

Best Regards
Evan

James M. Kennedy

unread,
Apr 10, 2022, 12:47:19 PM4/10/22
to Evan Yi, LS-DYNA2

Dear Evan,

 

Did you make your units consistent?

Did you try adding *CONSTRAINED_JOINT_STIFFNESS_GENERALIZED?

Sincerely,

James M. Kennedy

KBS2 Inc.

April 10, 2022

Reply all
Reply to author
Forward
0 new messages