Ansys Assistant will be unavailable on the Learning Forum starting January 30. An upgraded version is coming soon. We apologize for any inconvenience and appreciate your patience. Stay tuned for updates.
LS Dyna

LS Dyna

Topics related to LS-DYNA, Autodyn, Explicit STR and more.

Hyperelastic material – spurious stress after rigid-to-deformable switch

    • maoy
      Subscriber

      Solver Version:

      Version : smp s R14                           
      Revision: R14.1.1-8-g2ef819c24f 
      AnLicVer: 2025 R1 (20241030+dl-67-g73b144a) 

      Description:

      I've encountered an issue where hyperelastic materials develop strange initial stresses (solver: SMP single precision, double precison solver will crash the simulation immediately) when a part is switched from rigid to deformable using *DEFORMABLE_TO_RIGID_AUTOMATIC. The same setup works perfectly with elastic materials.

      Summary of behavior:

      1. A part with hyperelastic material is initially rigid, then automatically switched to deformable at t=10.0

      2. Immediately after the switch, the part shows spurious stresses

      3. If I replace the hyperelastic material with an elastic material, the problem disappears

      4. The same issue occurs whether using full restart with *STRESS_INITIALIZATION to add a new hyperelastic part, or within a single continuous simulation using *DEFORMABLE_TO_RIGID_AUTOMATIC

      Attached test case:
      A minimal working example demonstrating the issue. One single element uses *DEFORMABLE_TO_RIGID_AUTOMATIC to switch from rigid to deformable at t=10.0 with hyperelastic rubber material. Simply swap the material to elastic (*MAT_ELASTIC) to see the problem disappear.

      Questions:

      1. Is this a known limitation/bug in R14?

      Any insights would be greatly appreciated.

      Key file to reproduce:

      *KEYWORD
      *TITLE
      Hyperelastic part - deformable/rigid automatic switch
      $
      $
      $  Units: mm, kg, ms, kN, GPa, kN-mm
      $
      $
      *CONTROL_TERMINATION
      $   endtim    endcyc     dtmin    endeng    endmas
            13.0         0       0.0       0.0       0.0
      $
      *DEFINE_CURVE
      $ LCID    SIDR    SFA     SFO     OFFA    OFFO    DATTYP  LCINT
            1005         0       1.0       1.0       0.0       0.0         0         0
      $ time    timestep
                       0.0                1e-2
                       10.0               1e-2
      *CONTROL_TIMESTEP
      $#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st
            1e-2       1.0         0       0.0         0      1005         0         0
      *CONTROL_ENERGY
      $     hgen      rwen    slnten     rylen
               2         2
      *CONTROL_OUTPUT
      $    npopt    neecho    nrefup    iaccop     opifs    ipnint    ikedit
               1         3
      *CONTROL_SHELL
      $   wrpang    itrist     irnxx    istupd    theory       bwc     miter
                                             1         2
      *DATABASE_BINARY_D3PLOT
      $       dt      lcdt
            1.00
      *DATABASE_EXTENT_BINARY
      $    neiph     neips    maxint    strflg    sigflg    epsflg    rltflg    engflg

      $   cmpflg    ieverp    beamip
                         1
      *DATABASE_BINARY_D3THDT
      $       dt      lcdt
          999999
      *DATABASE_GLSTAT
      $       dt
            0.10
      *DATABASE_MATSUM
      $       dt
            0.10
      *DATABASE_NODOUT
      $       dt
            0.10
      *DATABASE_RBDOUT
      $       dt
            0.10
      *PART
      $      pid       sid       mid     eosid      hgid    adpopt
      part1
               1         2         2
      $
      $  Aluminum
      $
      *MAT_PLASTIC_KINEMATIC
      $      mid        ro         e        pr      sigy      etan      beta
               1   2.70e-6      68.9     0.330     0.286   0.00689
      $      src       srp        fs

      *SECTION_SHELL
      $
      $      sid    elform      shrf       nip     propt   qr/irid     icomp
               1         2
      $       t1        t2        t3        t4      nloc
             1.0       1.0       1.0       1.0
      *SECTION_SHELL
      $       ID    elform      shrf       nip     propt        qr     icomp     setyp
               2         2  0.833333         3         0         0         0         0
      $       t1        t2        t3        t4      nloc     marea              unused
             0.1       0.1       0.1       0.1         0         0                    
      *MAT_HYPERELASTIC_RUBBER
      $       ID        ro        pr         N        Nv         G      sigf       Ref
               2 8.699E-07 0.4999172         0         0         0         0         0
      $      C10       C01       C11       C20       C02       C30             unused1
         0.11e-3  0.028e-3         0         0         0         0                    
      *NODE
      $   node               x               y               z      tc      rc
             1             0.0             0.0             0.0
             2             1.0             0.0             0.0
             3             1.0             1.0             0.0
             4             0.0             1.0             0.0
      $$$$  Define Elements
      *ELEMENT_SHELL
      $    eid     pid      n1      n2      n3      n4
             1       1       1       2       3       4
      *DEFORMABLE_TO_RIGID
               1
      *DEFORMABLE_TO_RIGID_AUTOMATIC
      $#   SWSET      CODE     TIME1     TIME2     TIME3     ENTNO     RELSW    PAIRED
               1         0      10.0      1.0e20     0.0         0         0         0
      $#    NRBF      NCSF       RWF     DTMAX       D2R       R2D    OFFSET
               0         0         0       0.0         0         1       0.0
      $# Rigid to deformable card: one card because R2D = 1
      $#     PID     PTYPE
               1      PART
      *END
    • maoy
      Subscriber

      To rule out material properties as the root cause, the same model was run without any rigid/deformable switch and completed without issue. See baseline test case below.

      *KEYWORD
      *TITLE
      Hyperelastic part - deformable/rigid automatic switch
      $
      $  Units: mm, kg, ms, kN, GPa, kN-mm
      $
      *CONTROL_TERMINATION
      $   endtim    endcyc     dtmin    endeng    endmas
            13.0         0       0.0       0.0       0.0
      $
      *DEFINE_CURVE
      $ LCID    SIDR    SFA     SFO     OFFA    OFFO    DATTYP  LCINT
            1005         0       1.0       1.0       0.0       0.0         0         0
      $ time    timestep
                       0.0                1e-2
                       10.0               1e-2
      *CONTROL_TIMESTEP
      $#  dtinit    tssfac      isdo    tslimt     dt2ms      lctm     erode     ms1st
            1e-2       1.0         0       0.0         0      1005         0         0
      *CONTROL_ENERGY
      $     hgen      rwen    slnten     rylen
               2         2
      *CONTROL_OUTPUT
      $    npopt    neecho    nrefup    iaccop     opifs    ipnint    ikedit
               1         3
      *CONTROL_SHELL
      $   wrpang    itrist     irnxx    istupd    theory       bwc     miter
                                             1         2
      *DATABASE_BINARY_D3PLOT
      $       dt      lcdt
            1.00
      *DATABASE_EXTENT_BINARY
      $    neiph     neips    maxint    strflg    sigflg    epsflg    rltflg    engflg

      $   cmpflg    ieverp    beamip
                         1
      *DATABASE_BINARY_D3THDT
      $       dt      lcdt
          999999
      *DATABASE_GLSTAT
      $       dt
            0.10
      *DATABASE_MATSUM
      $       dt
            0.10
      *DATABASE_NODOUT
      $       dt
            0.10
      *DATABASE_RBDOUT
      $       dt
            0.10
      *PART
      $      pid       sid       mid     eosid      hgid    adpopt
      part1
               1         2         2
      $
      $  Aluminum
      $
      *MAT_PLASTIC_KINEMATIC
      $      mid        ro         e        pr      sigy      etan      beta
               1   2.70e-6      68.9     0.330     0.286   0.00689
      $      src       srp        fs

      *SECTION_SHELL
      $
      $      sid    elform      shrf       nip     propt   qr/irid     icomp
               1         2
      $       t1        t2        t3        t4      nloc
             1.0       1.0       1.0       1.0
      *SECTION_SHELL
      $       ID    elform      shrf       nip     propt        qr     icomp     setyp
               2         2  0.833333         3         0         0         0         0
      $       t1        t2        t3        t4      nloc     marea              unused
             0.1       0.1       0.1       0.1         0         0                    
      *MAT_HYPERELASTIC_RUBBER
      $       ID        ro        pr         N        Nv         G      sigf       Ref
               2 8.699E-07 0.4999172         0         0         0         0         0
      $      C10       C01       C11       C20       C02       C30             unused1
         0.11e-3  0.028e-3         0         0         0         0                    
      *NODE
      $   node               x               y               z      tc      rc
             1             0.0             0.0             0.0
             2             1.0             0.0             0.0
             3             1.0             1.0             0.0
             4             0.0             1.0             0.0
      $$$$  Define Elements
      *ELEMENT_SHELL
      $    eid     pid      n1      n2      n3      n4
             1       1       1       2       3       4
      $*DEFORMABLE_TO_RIGID
      $         1
      $*DEFORMABLE_TO_RIGID_AUTOMATIC
      $$#   SWSET      CODE     TIME1     TIME2     TIME3     ENTNO     RELSW    PAIRED
      $         1         0      10.0      1.0e20     0.0         0         0         0
      $$#    NRBF      NCSF       RWF     DTMAX       D2R       R2D    OFFSET
      $         0         0         0       0.0         0         1       0.0
      $$# Rigid to deformable card: one card because R2D = 1
      $$#     PID     PTYPE
      $         1      PART
      *END
Viewing 1 reply thread
  • You must be logged in to reply to this topic.
[bingo_chatbox]