Flying Buttress

Problem Statement

Note

To view this project in 3DEC, use the menu command Help ► Examples…. Choose “3DEC/ ExampleApplications/ Buttress” and select “buttress.prj” to load. The main data files used are shown at the end of this example. All data files are found in the project.

Problem Description

The flying buttress is a specific form of buttress composed of an arched structure that extends from the upper portion of a wall to a pier of great mass, in order to convey to the ground the lateral forces that push a wall outwards, which are forces that arise from vaulted ceilings of stone and from wind-loading on roofs [1].

The flying buttresses of Notre-Dame Cathedral (Paris, France) are shown in Figure 1 and a schematic cross section is shown in Figure 2. The Notre Dame Cathedral Paris didn’t originally have flying buttresses included in its design. But after the construction of the cathedral began, the thinner walls (popularized in the Gothic style) grew ever higher and stress fractures began to occur as the walls pushed outward. The cathedral’s architects, in an effort to fix the problem, built supports around the outside walls, and later additions continued the pattern. The Notre-Dame Cathedral was among the first buildings in the world to use the flying buttress [2].

../../../../_images/buttress1.jpg

Figure 1: Butrresses of Notre-Dame Cathedral.

../../../../_images/buttress2.png

Figure 2: Cross-section of flying buttresses of Notre-Dame Cathedral [3].

3DEC Model

A 3DEC model of one set of buttresses is constructed. The buttresses are modelled as 1 m thick blocks (approximately equal to the true thickness). The gothic arch at the top is also modelled as a set of blocks 1 m thick. In reality, the vault is continuous in the out-of-plane direction. Therefore, in order to account for the total weight of the arch acting on the buttresses its weight (density) is multiplied by 6 m, the bay spacing, so that the correct outward push is applied to the pillars. The span of the arch is approximately 11 m and the height is 34 m. The 3DEC model shown in Figure 3 and obviously represents a simplified geometry (compare to Figure 1 and Figure 2).

../../../../_images/buttress-blocks.png

The example shows two different ways to construct the model: (1) using FISH functions to define the block geometries, (2) using a VRML file that was created in Rhino to define the block geometries. With method (2), the command :cmd`block.generate.from-vrml` was used to create the blocks.

The density of the blocks is set to 2500 kg/m^3. As explained above, the density of the arch is set to six times this value (15,000 kg/m^3). The joint friction is set to 35^{circ} except the joints between the pillars and the buttresses, which were given infinite strength (elastic).

Solution and Results

The model is configured to be dynamic to ensure accurate calculate of moments of inertia for the blocks. However, since only a static solution is required, the dynamic calculation is set to off (high damping will be present). Gravity is turned on and the model with buttresses is solved to equilibrium. Displacements are shown in Figure 4. The same model is then run without buttresses. The model is stopped after 20,000 steps due to obvious collapse. The evolution of failure is shown in Figure 5.

../../../../_images/buttress-disp.png

Figure 4: Displacements in buttress

../../../../_images/nobuttress-blocks.png

Figure 5: Blocks when no buttress is present.

References

[1] A Dictionary of Architecture, James Stevens Curls, Editor. 1999:Oxford. pp. 113–114.

[2] http://www.notredamecathedralparis.com/

[3] Tallon, A.J., 2011. “Rethinking medieval structure,” in New Approaches to Medieval Architecture, R.O. Bork, W. W. Clark, A. McGehee (eds.), Routledge.

Data Files

make_buttress_fish.dat

model new
model configure dynamic
model large-strain on
;
;
; Method A
;
;
; base
block create brick -30 30 -3 3 -2 0
;
; outside pillars
block create brick -6.5 -5.5 0 1 0 25
block create brick 5.5 6.5 0 1 0 25
;
block hide range position-z -2 0
block cut joint-set dip 0 dip-direction 0 spacing 2 number 25
block hide off
;
program call 'make_buttress.fis'
[arch]
[arcob]
;
;
; outside pillars
block create brick [xaext] [xa] 0 1 0 [zat]
block create brick [xaa] [xaaext] 0 1 0 [zat]
;
block hide range position-x [xa] [xaa]
block cut joint-set dip 0 dip-direction 0 spacing 4 number 20
block hide off

model save 'blocks'

make_buttress_vrml.dat

model new
model configure dynamic
model large-strain on

block generate from-vrml file 'buttress.wrl'

model save 'blocks'

buttress.dat

model restore 'blocks'
;
; Block properties, stress units of MPa
;
; pillars and base
block property density 0.0025 
;
; arch
block property density 0.015 range position-z 25 35
;
;joints
block contact generate-subcontacts
block contact jmodel assign mohr
block contact property stiffness-normal 10000 stiffness-shear 5000 fric 35
block contact material-table default property stiffness-normal 10000 ...
  stiffness-shear 5000 friction 35
;
; soften and glue joints between pillars and buttresses
;
block contact prop stiff-norm 1000 stiff-shear 500 cohesion 1e9 tension 1e9 ...
  range plane dip 90 dip-direction 90 origin -6.5 0.5 24.5 distance 0.01
block contact prop stiff-norm 1000 stiff-shear 500 cohesion 1e9 tension 1e9 ...
  range plane dip 90 dip-direction 90 origin 6.5 0.5 24.5 distance 0.01
block contact prop stiff-norm 1000 stiff-shear 500 cohesion 1e9 tension 1e9 ...
  range plane dip 90 dip-direction 90 origin -18.7 0.5 16.6 distance 0.01
block contact prop stiff-norm 1000 stiff-shear 500 cohesion 1e9 tension 1e9 ...
  range plane dip 90 dip-direction 90 origin 18.7 0.5 16.6 distance 0.01

;
model dynamic active off
;
model gravity 0 0 -10
;
block fix range position-z -2 0
;
block history displacement-x position 0 0 34
block history displacement-y position 0 0 34
block history displacement-z position 0 0 34
block history displacement-x position -6.5 0 25
block history displacement-y position -6.5 0 25
block history displacement-z position -6.5 0 25
;
model save 'buttress-initial'
;
model cycle 20000
model save 'buttress'
;