Flemish Wall

Problem Statement


To view this project in 3DEC, use the menu command Help ► Examples…. Choose “3DEC/ ExampleApplications/ FlemishWall” and select “flemishwall.prj” to load. The data file FlemishWall.dat used is shown at the end of this example.

Problem Description

This example describes how to create a model of a Flemish bond brick wall in Rhino (Robert McNeel and Associates, 2020). The Rhino model is saved in VRML format and is then imported into 3DEC. The wall is then subjected to dynamic loading.

Building the Model is Rhino 6

  • In Rhino, use Solid | Box | Corner to corner, height to create a 0.2 m x 0.1 m x 0.05 m brick.
  • Use Transform | Copy to create an 8-brick repeatable module of the wall (Figure 1 (a)).
  • Use Transform | Rotate to create the geometry in Figure 1 (b). After selecting Transform | Rotate, change “Copy” to “Yes”. Then select the lower left corner as the center of rotation and enter an angle of 90.
  • Copy the original 8-brick module to create the geometry in Figure 1 (c).
  • Copy and translate the 8-brick modules to create another layer as shown in Figure 1 (d). You will now have a 48-brick repeatable module.

Figure 1: Creating a Flemish bond wall module.

  • Use Transform|Array → Rectangle, with the following parameters to create a complete wall (Figure 2).
  • Number in x-direction: 5
  • Number in y-direction: 1
  • Number in z-direction: 10
  • Spacing in x-direction: 0.6
  • Spacing in z-direction: 0.2

Figure 2: Final wall.

  • Select all the wall bricks and select File | Export selected. When the Export dialog box opens, select VRML as the “Save as” type and set the file name to “wall.wrl”.
  • In the “VRML Export options” window, select “version 2.0”, and when the Polygon mesh detailed options dialog box opens, uncheck everything except “Simple planes”, set all values to 0 except for the Minimum edge length, which should be set to a large number, such as 1000, and click “OK”. This will create a file called “wall.wrl” in your working folder.
  • Start 3DEC and create a new project in your working directory. Create a new data file called “FlemishWall.dat”. Add a model new command and configure for dynamic analysis. Use a :cmde:`block.generate.from-vrml` command to import blocks into 3DEC from the file “wall.wrl” . The complete data file for this example is shown below.
  • Add a block create brick command to create a base for the wall.
  • Plot the blocks as shown in Figure 3.
  • Turn on gravity, assign properties and apply a sinusoidal translation movement to the base to simulate an earthquake. Run the model for 0.5 seconds of dynamic time and you will see the wall collapses (Figure 4).

Figure 3: 3DEC model.


Figure 4: 3DEC model after 0.5 s of earthquake loading.


Robert McNeel & Associates. Rhinoceros Version 6.0, https://www.rhino3d.com/ (2020).


model new
model config dynamic
model large-strain on

block generate from-vrml filename 'wall.wrl'

block create brick -1.8 4.4 -1 1.4 -0.4 0
block property density 2400

block contact generate-subcontacts
block contact jmodel assign mohr
block contact property stiffness-normal 2e9 stiffness-shear 2e9 friction 40
block contact material-table default property stiffness-normal 2e9 stiffness-shear 2e9 friction 40

model gravity 0 0 -9.81

block fix range pos-z -0.4 0

block mech damp local 0.8
model solve

model save 'initial'

block gridpoint ini disp 0 0 0
block contact reset disp

model dynamic active on
block mech damp rayleigh 0 0 

[freq = 5.0]
fish def cos_
  cos_ = math.cos(2.0*math.pi*mech.time*freq)
fish def sin_
  sin_ = math.sin(2.0*math.pi*mech.time*freq)

block apply vel-x 1 fish cos_ range pos-z -0.4 0
block apply vel-y 1 fish sin_ range pos-z -0.4 0
block apply vel-z 0.1 fish cos_ range pos-z -0.4 0

block history vel-x pos -1.8 -1 -0.4
block history vel-z pos -1.8 -1 -0.4

block history vel-x pos 1.4 0 1
block history vel-z pos 1.4 0 1
block history disp-x pos 1.4 0 1
block history disp-z pos 1.4 0 1
model solve time 0.5

model save 'wall'