Dynamic Wave Propagation in a Coupled 3DEC-FLAC3D Model

Problem Statement

Note

To view this project, use the menu command Help ► Examples…. The project’s main data files are shown at the end of this example.

The following example demonstrates the coupling scheme between 3DEC and FLAC3D for a simple 1D dynamic wave propagation problem.

A 1x1x25 m FLAC3D model is created and a 1x1x25 m 3DEC block is added on top. The 3DEC block is zoned with tetrahedral zones with an edge length of 0.5 m. The model is shown in Figure 1.

../../../../../../../../../_images/zoneblockwave-fig1.png

Figure 1: Geometry of dynamic zone block coupling example. History locations are shown with cubes.

The top face of the FLAC3D zone is assigned the group name ‘f3d_faces’ and the bottom layer of 3DEC vertices are assigned the group name ‘3dec_gps’. The coupling is then set up with the command zone-block create.

A shear wave is applied to the bottom by specifying the x-velocity history for the FLAC3D faces on the bottom. y and z velocities are fixed for all gridpoints. Figure 2 shows the recorded x-velocity at different locations in the model (as indicated in Figure 1). It is clear that the wave propagated through the boundary between the FLAC3D and 3DEC model without significant disruption.

../../../../../../../../../_images/zoneblockwave-fig2.png

Figure 2: Histories recorded in the coupled model.

Data Files

wave.dat

model new
model configure dynamic

; make zones 
zone create brick size 1 1 25
zone cmodel assign elastic
zone property density 1000 bulk 2e9 shear 1e9
zone face apply velocity-y 0
zone face apply velocity-z 0

; make blocks
block create brick 0 1 0 1 25 50
block zone generate edgelength 0.5
block zone cmodel assign elastic
block zone property density 1000 bulk 2e9 shear 1e9
block gridpoint apply velocity-y 0 range position-z 25 50
block gridpoint apply velocity-z 0 range position-z 25 50

; identify zone face for coupling
zone face group 'f3d_faces' range position-z 25

; identify 3dec gps for coupling
block gridpoint group '3dec_gps' range position-z 25

; set up coupling
zone-block create zone-face-group 'f3d_faces' block-gp-group '3dec_gps'

; apply wave
fish define wave
  global freq
  if mech.time > 1.0/freq
    wave = 0.0
  else
    wave = 0.5 * (1.0-math.cos(2.0*math.pi*freq*mech.time))
  endif
end
[freq = 40.0]

zone face apply velocity-x 1 fish wave range position-z 0

zone history name 'source' velocity-x position 0 0 0
zone history name 'f3d' velocity-x position 0 0 20
block history name '3dec' velocity-x position 0 0 30
model history name 'time' dynamic time-total

model large-strain off
model solve time 0.06

Endnotes