Loops in mesh input

From FEAP Wiki
Jump to navigation Jump to search

Loops can be used in meshes to repeat commands. When used with incremented parameters, this becomes a powerful technique for meshing. Consider the geometry found in the paper M.M. Ameen, O. Rokoš, R.H.J. Peerlings, M.G.D. Geers, Size effects in nonlinear periodic materials exhibiting reversible pattern transformations, Mechanics of Materials, Volume 124, 2018, Pages 55-70, ISSN 0167-6636, https://doi.org/10.1016/j.mechmat.2018.05.011.

The geometry consists of a repeating pattern as shown in magenta.

Artboard 1-100.jpg

If we have a mesh for the magenta region, we can repeatedly rotate it by 90 degrees to form a unit cell. Then we can loop those commands five times to shift the mesh upwards and twice laterally.

The easy way to generate the mesh for the magenta region is with super-nodes and blending, that way the curved surface can be made an exact circle.

snode
 1 0   l/2
 2 0   0
 3 l/2 0
 4 l/2 l/2
 5 l/2-d/2 l/2
 6 l/2-sqrt(2)*d/4 l/2-sqrt(2)*d/4
 7 l/2 l/2-d/2

side
 polar 5 6 4
 polar 6 7 4

followed by the commands to create the mesh (which we put in a second file called, say, Igeers2)

blend
surface na nt
quad
1 2 6 5
 
blend 
surface nt na 
quad
6 2 3 7

From here we create the unit mesh and then put loops around it to make the full mesh:

parameter
 l  = 9.97  ! mm
 nl = 5     ! repeats vertically
 d  = 8.67  ! mm
 na = 10    ! Arc discretization
 nt = 4     ! Thickness discretization
 ii = 0
 jj = 0

loop,2           ! Right/Left column

 loop,nl         ! Loop over vertical repeats

  transform       ! SW
   1 0 0
   0 1 0
   0 0 1
   -jj*l l*ii 0

  include,Igeers2 ! contains the bending commands from above

  transform       ! SE
   0 -1 0
   1  0 0
   0  0 1
   l-jj*l l*ii 0

  include,Igeers2

  transform       ! NE
   -1  0 0
    0 -1 0
    0  0 1
    l-jj*l  l+l*ii 0

  include,Igeers2

  transform       ! NW
    0 1 0 
   -1 0 0
    0 0 1
    0-jj*l l+l*ii 0

  include,Igeers2

  parameter
   ii = ii + 1

 next

 parameter 
  jj = jj + 1
  ii = 0

next

The full file for the analysis looks like; this version will provide a solution that goes past the bifurcation point in the problem and remains on the unstable branch. To see the stable (bifurcated) solution, one needs to employ branch switching.

GeersUnSt.jpg

If on looks in the output file one will see the tangent stiffness progressively develops a saddle-point structure (negative eigenvalues which represent bifurcations branches).

** Ameen, Rokos, Peerlings, Geers; Mech Mat; 2008 **
feap
0 0 0 2 2 4

parameter
 m1 = 0.55  ! MPa == N/mm^2 (ARPG)
 m2 = 0.30  ! MPa == N/mm^2 (ARPG)
 k1 = m2/m1 ! Yeoh parameters for FEAP
 k2 = 0.d0  ! Yeoh parameters for FEAP
 kk = 55    ! MPa == N/mm^2 (ARPG)
 mu = 2.d0*m1
 ee = 9.d0*kk*mu/(3.d0*kk+mu)
 nu = (ee-2.d0*mu)/(2.d0*mu)
 l  = 9.97  ! mm
 nl = 5     ! repeats vertically
 d  = 8.67  ! mm
 na = 10    ! Arc discretization
 nt = 4     ! Thickness discretization
 ii = 0
 jj = 0

mate
 solid
 finite volume 1
 elastic yeoh ee nu k1 k2


snode
 1 0   l/2
 2 0   0
 3 l/2 0
 4 l/2 l/2
 5 l/2-d/2 l/2
 6 l/2-sqrt(2)*d/4 l/2-sqrt(2)*d/4
 7 l/2 l/2-d/2

side
 polar 5 6 4
 polar 6 7 4


loop,2           ! Right/Left column

 loop,nl

  transform       ! SW
   1 0 0
   0 1 0
   0 0 1
   -jj*l l*ii 0

  include,Igeers2

  transform       ! SE
   0 -1 0
   1  0 0
   0  0 1
   l-jj*l l*ii 0

  include,Igeers2

  transform       ! NE
   -1  0 0
    0 -1 0
    0  0 1
    l-jj*l  l+l*ii 0

  include,Igeers2

  transform       ! NW
    0 1 0 
   -1 0 0
    0 0 1
    0-jj*l l+l*ii 0

  include,Igeers2

  parameter
   ii = ii + 1

 next
 
 parameter 
  jj = jj + 1
  ii = 0

next


eboun
 2 0     1 1
 2 nl*l  1 1 


edisp
 2 nl*l  0 -0.1*nl*l


end

tie

elink
 1 -l l


batch
 opti
 dt,,0.01
 prop,,1
 plot,defo
end


batch
 loop,,100
  time
   loop,,20
    tang,line,1
   next
   plot wipe
   plot cont 1,,1
   iden
   subs,,5
 next
end


inte
stop