Flemish Wall

Problem Statement


The project file for this example may be viewed/run in 3DEC. The data files used are 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 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 configure 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 position-z -0.4 0

block mechanical damping local 0.8
model solve

model save 'initial'

block gridpoint initialize displacement 0 0 0
block contact reset displacement

model dynamic active on
block mechanical damping rayleigh 0 0 

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

block apply velocity-x 1 fish cos_ range position-z -0.4 0
block apply velocity-y 1 fish sin_ range position-z -0.4 0
block apply velocity-z 0.1 fish cos_ range position-z -0.4 0

block history velocity-x position -1.8 -1 -0.4
block history velocity-z position -1.8 -1 -0.4

block history velocity-x position 1.4 0 1
block history velocity-z position 1.4 0 1
block history displacement-x position 1.4 0 1
block history displacement-z position 1.4 0 1

model solve time 0.5

model save 'wall'