Whole

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 362

Numerical simulation of fracture in unreinforced masonry

Author:
Chaimoon, Krit
Publication Date:
2007
DOI:
https://doi.org/10.26190/unsworks/17488
License:
https://creativecommons.org/licenses/by-nc-nd/3.0/au/
Link to license to see what you are allowed to do with this resource.

Downloaded from http://hdl.handle.net/1959.4/40757 in https://


unsworks.unsw.edu.au on 2022-08-01
NUMERICAL SIMULATION OF FRACTURE

IN UNREINFORCED MASONRY

by

KRIT CHAIMOON
B.Eng. (Civil, 1st Hons.), Chiang Mai University, Thailand
M.Eng. (Structural), Asian Institute of Technology, Thailand

A thesis submitted as a fulfilment

of the requirements for the degree of

Doctor of Philosophy

School of Civil and Environmental Engineering

The University of New South Wales

Sydney, Australia

July 2007
ORIGINALITY STATEMENT

‘I hereby declare that this submission is my own work and to the best of my
knowledge it contains no materials previously published or written by
another person, or substantial proportions of material which have been
accepted for the award of any other degree or diploma at UNSW or any
other educational institution, except where due acknowledgement is made
in the thesis. Any contribution made to the research by others, with whom I
have worked at UNSW or elsewhere, is explicitly acknowledged in the
thesis. I also declare that the intellectual content of this thesis is the product
of my own work, except to the extent that assistance from others in the
project's design and conception or in style, presentation and linguistic
expression is acknowledged.’

Signed ……………………………………………..............

Date ……………………………………………..............
To my grandfather and grandmother
i

ABSTRACT

The aims of this thesis are to study the fracture behaviour in unreinforced masonry, to

carry out a limited experimental program on three-point bending (TPB) masonry panels

and to develop a time-dependent fracture formulation for the study of mode I fracture in

quasi-brittle materials.

A micro-model for fracture in unreinforced masonry is developed using the

concept of the discrete crack approach. All basic masonry failure modes are taken into

account. To capture brick diagonal tensile cracking and masonry crushing, a linear

compression cap is proposed with a criterion for defining the compression cap. The

failure surface for brick and brick-mortar interfaces are modelled using a Mohr-

Coulomb failure surface with a tension cut-off and a linear compression cap. The

fracture formulation, in nonholonomic rate form within a quasi-prescribed displacement

approach, is based on a piecewise-linear constitutive law and is in the form of a so-

called “linear complementarity problem” (LCP). The proposed model has been applied

to simulating fracture in masonry shear walls and masonry TPB panels.

An experimental program was undertaken to investigate the failure behaviour of

masonry panels under TPB with relatively low strength mortar. The basic material

parameters were obtained from compression, TPB and shear tests on bricks, mortar and

brick-mortar interfaces. The experimental results showed that the failure of masonry

TPB panels is governed by both tensile and shear failure rather than just tensile failure.

The simulation of the masonry TPB tests compared well with the experimental results.
ii

In addition, the LCP fracture formulation is enhanced to study the time-

dependent mode I fracture in quasi-brittle materials. Two main time-dependent sources,

the viscoelasticity of the bulk material and the crack rate dependent opening, are taken

into account. A simplified crack rate model is proposed to include the rate-dependent

crack opening. The model is applied to predicting time-dependent crack growth in plain

concrete beams under sustained loading. The model captures the essential features

including the observed strength increase with loading rate, the load-deflection and load-

CMOD responses, the deflection-time and CMOD-time curves, the predicted time to

failure and the stress distributions in the fracture zone.


iii

ACKNOWLEDGEMENTS

The research work presented in this thesis was undertaken under the supervision of

Associate Professor Mario M. Attard, at the School of Civil and Environmental

Engineering, University of New South Wales.

I wish to express my sincere gratitude to Associate Professor Mario M. Attard

for his invaluable guidance, critical comments and continuous support during the whole

study. I am indebted to Professor Francis Tin-Loi for many valuable discussions and

suggestions on the proposed model in the thesis. I wish to thank Associate Professor

Stephen J. Foster for his assistance at the beginning of this research work. I would also

like to thank Dr. Xiaobo Yu who initially developed some of the computer software.

During the period of this study, my colleagues at the School have given me their

support, which is deeply appreciated. Special thanks are directed to Dr. Nantawat

Khomwan, Dr. Siriluk Chumchean, Mr. Sawekchai Tangaramvong, Mr. Suvinai R.

Santiwong, Mr. Thanh T. Bui, Mr. Niphan Yaiaroon, Mr. Tayakorn Chandrangsu, Mrs.

Kate Brown, Mr. Robert Hegedus and Mr. Jonathan Lo for their assistance and support,

to Mr. William Terry, Mr. Tony Macken, Mr. Paul Gwyne and Mr. Richard Berndt for

their assistance in the experimental work.

This research was funded by a Royal Thai Government Scholarship and

Mahasarakham University, Thailand, which are gratefully acknowledged.

Taking the opportunity, I would like to thank my parents and my wife, Nida

Seelsaen for their great love, encouragement and support.


iv

TABLE OF CONTENTS

ABSTRACT ...................................................................................................................... i

ACKNOWLEDGEMENTS...........................................................................................iii

TABLE OF CONTENTS............................................................................................... iv

ABBREVIATIONS ......................................................................................................... x

PRINCIPAL NOTATIONS .......................................................................................... xi

CHAPTER 1 INTRODUCTION ...................................................................................1

1.1 PROBLEM STATEMENT .............................................................................................1

1.2 AIMS AND SCOPE ......................................................................................................2

1.3 OUTLINE OF THESIS ..................................................................................................4

1.4 LIST OF PUBLICATIONS .............................................................................................5

CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED

MASONRY ......................................................................................................................7

2.1 INTRODUCTION .........................................................................................................7

2.2 FRACTURE BEHAVIOUR OF QUASI-BRITTLE MATERIALS .........................................8

2.2.1 Softening ..........................................................................................................8

2.2.2 Size Effect ........................................................................................................9

2.2.3 Fracture Mechanics Applied to Quasi-Brittle Materials ................................11

2.3 UNREINFORCED MASONRY – MECHANICAL AND FRACTURE BEHAVIOUR..............12

2.3.1 Brick Units .....................................................................................................12

Brick Compressive Strength ...............................................................................13

Brick Tensile Strength.........................................................................................15


v

Brick Rate of Absorption ....................................................................................17

2.3.2 Mortar.............................................................................................................18

Mortar Compressive Strength .............................................................................19

2.3.3 Brick-Mortar Interface ...................................................................................20

Brick-Mortar Interface Tensile Failure ...............................................................20

Brick-Mortar Interface Shear Failure..................................................................22

2.3.4 Uniaxial Compressive Behaviour of Masonry...............................................26

2.3.5 Uniaxial Tensile Behaviour of Masonry ........................................................28

2.3.6 Biaxial Behaviour of Masonry .......................................................................29

2.4 MODES OF FAILURE OF UNREINFORCED MASONRY................................................32

2.5 SUMMARY ..............................................................................................................33

CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY

.........................................................................................................................................36

3.1 INTRODUCTION .......................................................................................................36

3.2 BASIC TRIANGULAR ELEMENT ...............................................................................41

3.2.1 Formulation of Basic Triangular Element......................................................42

Constant Strain Triangle .....................................................................................42

Derivation of Stiffness Matrix of Basic Triangular Element ..............................45

3.3 MASONRY MODELLING ..........................................................................................49

3.3.1 Detailed Micro-Modelling .............................................................................50

3.3.2 Simplified Micro-Modelling ..........................................................................50

3.3.3 Modelling Strategies ......................................................................................52

Failure Surface Compression Cap.......................................................................53

3.4 CONSTITUTIVE MODELS .........................................................................................59


vi

3.4.1 Piece-Wise Linear Inelastic Failure Surface ..................................................60

3.4.2 Softening Laws ..............................................................................................63

3.5 STRUCTURAL GOVERNING EQUATIONS ..................................................................66

3.5.1 Basic Relations...............................................................................................66

3.5.2 Nonholonomic Rate or Finite Incremental Formulation................................68

3.5.3 Quasi-Prescribed Displacement Control ........................................................71

3.6 SOLUTION STRATEGIES AND ALGORITHM ..............................................................72

3.7 VALIDATION...........................................................................................................76

3.7.1 Simulation of Masonry under Uniaxial Compression....................................76

3.7.2 Simulation of Masonry Shear Walls ..............................................................79

3.8 SUMMARY ..............................................................................................................93

CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS

ON MASONRY PANELS ............................................................................................95

4.1 INTRODUCTION .......................................................................................................95

4.2 EXPERIMENTAL PROGRAM .....................................................................................96

4.3 SPECIMEN PREPARATION ........................................................................................99

4.3.1 Materials.........................................................................................................99

Bricks ..................................................................................................................99

Mortar..................................................................................................................99

4.3.2 Preparation ...................................................................................................100

Masonry Specimens ..........................................................................................100

Brick Specimens ...............................................................................................101

Mortar Specimens .............................................................................................102

4.4 TEST SET-UPS AND TEST PROCEDURES ................................................................103


vii

4.4.1 Three-Point Bending Tests...........................................................................103

4.4.2 Shear Tests ...................................................................................................106

4.4.3 Compression Tests .......................................................................................107

4.5 EXPERIMENTAL RESULTS AND DISCUSSION .........................................................109

4.5.1 Basic Material Properties .............................................................................109

4.5.2 Shear Test Results ........................................................................................109

Masonry Joint Shear Test Results .....................................................................110

Brick Shear Test Results ...................................................................................121

Mortar Shear Test Results.................................................................................128

4.5.3 TPB Test Results..........................................................................................140

Brick TPB Test Results.....................................................................................140

Mortar TPB Test Results...................................................................................141

Masonry Panel TPB Test Results......................................................................143

4.6 NUMERICAL SIMULATION OF THREE-POINT BENDING TESTS ...............................147

4.7 SUMMARY ............................................................................................................158

CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR .160

5.1 INTRODUCTION .....................................................................................................160

5.2 SOURCES OF TIME-DEPENDENT FRACTURE ..........................................................161

5.2.1 Creep ............................................................................................................162

5.2.2 Cracking and Rate Dependence ...................................................................166

Influence of Loading Rate on Fracture Parameter and on Size Effect..............166

5.3 TIME-DEPENDENT FRACTURE BEHAVIOUR ..........................................................172

5.3.1 Concrete Creep Rupture Tests .....................................................................172

5.3.2 Concrete Relaxation Tests............................................................................173


viii

5.3.3 Masonry under High Sustained Compressive Loading................................174

5.4 SUMMARY ............................................................................................................178

CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE ..180

6.1 INTRODUCTION .....................................................................................................180

6.2 BASIC STRUCTURAL RELATIONS ..........................................................................183

6.3 BULK CREEP OR VISCOELASTICITY ......................................................................188

6.3.1 Long-Term Bulk Creep ................................................................................188

6.3.2 Short-Term Bulk Creep................................................................................189

6.4 CRACK RATE DEPENDENCY .................................................................................190

6.5 FINITE INCREMENTAL FORMULATION ..................................................................192

6.5.1 Viscoelasticity with Rate-Independent Crack Opening ...............................192

6.5.2 Viscoelasticity with Rate-Dependent Crack Opening..................................193

6.5.3 Quasi-Prescribed Displacement Rate Control..............................................195

6.6 SOLUTION ALGORITHM ........................................................................................196

6.7 SENSITIVITY ANALYSIS AND BEHAVIOUR OF THE PROPOSED MODEL ..................201

6.8 VALIDATION.........................................................................................................204

6.8.1 Simulation of Flexural Creep Rupture Tests on Concrete ...........................204

6.9 SUMMARY ............................................................................................................213

CHAPTER 7 CONCLUSIONS AND RECOMMENDATIONS ............................215

7.1 INTRODUCTION .....................................................................................................215

7.2 MODELLING OF FRACTURE IN UNREINFORCED MASONRY ...................................215

7.3 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS .216

7.4 MODELLING OF TIME-DEPENDENT MODE I FRACTURE ........................................218

7.5 RECOMMENDATIONS FOR FUTURE RESEARCH ......................................................219


ix

APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS ........220

APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES ........................227

REFERENCES............................................................................................................327
x

ABBREVIATIONS

CMOD crack mouth opening displacement

FPZ fracture process zone

I.R.A. initial rate of absorption

LCP linear complementarity problem

LEFM linear elastic fracture mechanics

LVDT linear variable displacement transducer

TPB three-point bending


xi

PRINCIPAL NOTATIONS

A structure equilibrium matrix

Au equilibrium matrix of the basic triangular element

c cohesion

E Young’s modulus

Eb Young’s modulus of brick

Em Young’s modulus of mortar

Eba adjusted Young’s modulus of expanded brick

F structure global force vector

Fi global forces at interface node

Fu global force vector of the basic triangular element

Funit structure global force vector due to unit load factor

F structure global force vector rate

Fix component of Fi in x direction

Fiy component of Fi in y direction

fr compressive residual stress

fcc compressive strength

ftc tensile strength

G shear modulus

Gb shear modulus of brick

Gm shear modulus of motar

Gba adjusted shear modulus of expanded brick

GfI mode I fracture energy


xii

GfII mode II fracture energy

Gfc compressive fracture energy

H structure softening/hardening matrix

Hi softening/hardening matrix of interface node

K structure global elastic stiffness matrix

Ku global elastic stiffness matrix of the basic triangular element

k0 constant for crack rate dependency

Li side/interface length of the basic triangular element

N structure normality matrix

Ni normality matrix of interface node

Nu normality matrix of the basic triangular element

Q structure generalised force vector

Qc creep component of Q

Qe elastic component of Q

Qi generalised forces at interface node

Qp plastic/inelastic component of Q

Qu generalised force vector of the basic triangular element

Qeunit elastic component of Q due to unit load factor


Q structure generalised force vector rate

Qn outward normal component of Qi

Qr residual compressive cap inelastic failure force

Qs anti-clockwise tangential component of Qi

Qcy compressive cap inelastic failure force

Qsy shear inelastic failure force

Qty tensile inelastic failure force


xiii

q structure generalised displacement vector

qc creep component of q

qe elastic component of q

qi generalised displacements at interface node

qp plastic/inelastic component of q

qu generalised displacement vector of the basic triangular element

qcu creep component of qu

qeu elastic component of qu

qpu plastic/inelastic component of qu

q structure generalised displacement vector rate

q c creep component of q

q e elastic component of q

q p plastic/inelastic component of q

qn outward normal component of qi

qs anti-clockwise tangential component of qi

R structure residual force vector

Ri residual force vector at interface node

r structure initial inelastic failure vector

ri initial inelastic failure vector at interface node

S structure generalised elastic stiffness matrix

Su generalised elastic stiffness matrix of the basic triangular element

T1 retardation time

t thickness of element

t time
xiv

tb thickness of brick

ti thickness of the basic triangular element

ti time at previous step

tm thickness of mortar

tc age of material when the first load is applied

u structure global displacement vector

uc creep component of u

ue elastic component of u

up plastic/inelastic component of u

ui global displacements at interface node

uu global displacement vector of the basic triangular element

ueunit elastic component of u due to unit load factor

u structure global displacement vector rate

ur value of u at control point

uix component of ui in x direction

uiy component of ui in y direction

uerunit value of ueunit at control point

u r rate of ur

V structure dilatancy matrix

Vi dilatancy matrix of interface node

Vu dilatancy matrix of the basic triangular element

 load factor

D load factor rate

 parameter representing interaction between tension and shear failure planes

I friction angle
xv

I(t) or I creep coefficient

I0 initial friction angle

Ir residual friction angle

If creep coefficient at time infinity

I creep coefficient rate

J angle defining the linear compression cap slope

 displacement factor

 potential function vector

M potential function vector rate

 structure inelastic multiplier vector

i inelastic multiplier vector of interface node

u inelastic multiplier vector of the basic triangular element

 structure inelastic multiplier vector rate

 inelastic multiplier

c multiplier associated with the linear compression cap of interface failure

surface

s multiplier associated with the Mohr-Coulomb portion of interface failure

surface

t multiplier associated with the tension cut-off of interface failure surface

cc critical value of c

sc critical value of s

tc or tc critical value of t

O inelastic multiplier rate

Or constant reference multiplier rate


xvi

Q Poisson’ratio

 normal stress

 shear stress

u shear strength

r residual shear strength

i vector representing evolution of interface failure surface

\ dilatancy angle
CHAPTER 1 INTRODUCTION 1

CHAPTER 1
INTRODUCTION

1.1 Problem Statement

A large number of historical buildings have been constructed by using masonry, as

masonry is one of the oldest building materials. In the present, masonry is still widely

used in building industries due to its simplicity in construction, aesthetics, durability,

low maintenance, versatility, sound absorption and fire protection. However, many

aspects of masonry design and construction are still based on traditional construction

practice rather than on rationalised design requirements. One of the reasons behind this

is the lack of good understanding in the complex fracture behaviour of masonry.

Application of fracture mechanics to failure analysis of quasi-brittle materials,

such as concrete and masonry, has generally been accepted. For the analysis of fracture

in masonry, there are two main approaches including macro-modelling and micro-

modelling. In macro-models, interaction between units and mortar is excluded as no

distinctions between units and mortar are made. The masonry components are smeared

into an averaged continuum. Masonry stresses are related to masonry strains in an

average sense. In micro-models, units and mortar are separately represented. The best

insight into the behaviour of masonry structures can be obtained as all possible failure

modes can be captured. The micro-modelling approach is therefore more preferable in

terms of the accuracy and sophistication. Although several micro-models have been

purposed to study the behaviour of masonry structures, micro-models that can predict

the complete response of masonry structures have appeared only during the late 1990s.
CHAPTER 1 INTRODUCTION 2

Also, each of micro-models proposed in the literature has its own drawbacks and

numerical difficulties. It is therefore believed that a robust micro-model for the analysis

of masonry structures, capable of predicting the structural response from the linear

elastic stage through cracking and degradation until complete loss of strength, is still

needed. Much research effort is still required to refine and improve existing models or

to develop new models.

Another crucial aspect of quasi-brittle materials is the time-dependent fracture

behaviour. Karihaloo and Santhikumar (1999) described the formation of a large crack

almost 43m deep that had developed in the Zhexi diamond-head buttressed concrete

dam built in the Hunan Province of China which was detected almost 8 years after

completion. Extensive measures were required to repair the crack and thwart further

crack growth. Also, there were a number of sudden collapses of historical buildings

such as the collapse of the civic masonry tower of Pavia, Italy, in 1989 due to sustained

loading, after surviving for nine centuries and the partial collapse of the Noto Cathedral,

Italy, in 1996. These collapses reinforce the importance of taking into account time-

dependent fracture.

1.2 Aims and Scope

The primary aims of this thesis are to study the fracture behaviour in unreinforced

masonry and to study the time-dependent mode I fracture behaviour in quasi-brittle

materials under static loading by using a micro-modelling approach based on a discrete

crack model. This study focuses on in-plane behaviour with small displacements only.

No geometric nonlinearity is considered herein. The formulation is based on a


CHAPTER 1 INTRODUCTION 3

piecewise-linear constitutive law and is in the form of a so-called “linear

complementarity problem” (LCP). Solutions to the system of equations that results from

a finite element discretisation are obtained using a mathematical programming

procedure based on the solution of the LCP. The specific objectives and scope of this

study are:

- to develop a micro-model capable of predicting the complete structural response

by taking into account softening and all failure mechanisms including tensile,

shear and compressive failure for the study of fracture behaviour in unreinforced

masonry;

- to conduct an experimental study on masonry three-point bending panels in

order to investigate the failure behaviour of masonry panels with relatively low

strength mortar;

- to develop a micro-model competent to predict the time-dependent mode I

fracture behaviour in quasi-brittle materials, especially at high load levels, by

taking into account viscoelasticity of bulk material outside fracture process zone

(FPZ) and rate-dependent crack inside the FPZ. Temperature and humidity

effects are not considered in this study. In other words, the temperature is

assumed to be constant and shrinkage is excluded;

- to verify and validate the developed models by comparing the predicted

behaviour with the behaviour observed in experiments carried out in this study

and from published results.


CHAPTER 1 INTRODUCTION 4

1.3 Outline of Thesis

In Chapter 2 the fracture behaviour of quasi-brittle materials is mentioned first and then

an overview of the mechanical and fracture behaviour of unreinforced masonry relevant

for numerical purposes is given. Modes of failure which characterise unreinforced

masonry are addressed.

In Chapter 3 the numerical modelling purposed in this study, which attempts to

capture and simulate the fracture behaviour in unreinforced masonry from the linear

elastic stage through cracking and degradation until complete loss of strength, is

presented after the discussion on the ability of numerical models available in the

literature is made. The formulation of the basic element mainly used in this study is

presented. The masonry modelling and strategies adopted are described. A proposed

compression cap for the micro-model is introduced and explained in detail. The

constitutive models are elucidated. The nonholonomic rate formulation in a LCP form is

expressed. The solution algorithm using a mathematical programming procedure is

outlined. Some examples to verify and validate the proposed model are given.

Chapter 4 describes the experimental work performed to investigate the failure

behaviour of masonry three-point bending specimens with relatively low strength

mortar where both tensile and shear failure are relevant. Also the numerical results

using the model developed in Chapter 3 are presented and compared with the

experimental results.

In Chapter 5 a literature review of the time effect on fracture in quasi-brittle

materials such as concrete and masonry is given to provide some background for the

formulation in the subsequent chapter.


CHAPTER 1 INTRODUCTION 5

Chapter 6 expresses the extension of the formulation proposed in Chapter 3 to

include time-dependent crack growth in quasi-brittle materials. A review of numerical

models for time-dependent fracture available in the literature is also made. Some

examples to verify and validate the proposed model are given.

Finally, concluding and reflecting remarks are made in Chapter 7. Some

recommendations for future research are also given.

1.4 List of Publications

During this research work, the following papers have been published, accepted or have

been submitted for publication.

(1) Chaimoon, K., and Attard, M.M. (2004). “Shear-compression fracture in

unreinforced masonry”. Proceedings of the 18th Australasian Conference on the

Mechanics of Structures and Materials (ACMSM18), Perth, Australia, 1241-

1246.

(2) Attard, M.M., Chaimoon, K., and Nappi, A. (2004). “Fracture of unreinforced

masonry walls under shear”. Proceedings CDROM of the 6th World Congress on

Computational Mechanics (WCCM VI) in conjunction with the 2nd Asian-Pacific

Congress on Computational Mechanics (APCOM'04), Beijing, China, 4341-

4346.

(3) Chaimoon, K., and Attard, M.M. (2005). “Shear fracture in masonry joints”.

Proceedings of the 12th International Conference on Computational Methods

and Experimental Measurements (CMEM 2005), Malta, 205-215.


CHAPTER 1 INTRODUCTION 6

(4) Chaimoon, K., and Attard, M.M. (2006). “A model for compressive failure in

unreinforced masonry”. Proceedings of the 19th Australasian Conference on the

Mechanics of Structures and Materials (ACMSM 19), Christchurch, New

Zealand, 563-567.

(5) Chaimoon, K., Attard, M.M., and Tin-Loi, F. (2006). “Numerical simulation of

time-dependent creep fracture in quasi-brittle materials”. Proceedings of the 10th

East Asia-Pacific Conference on Structural Engineering and Construction

(EASEC-10), Bangkok, Thailand, 351-356.

(6) Chaimoon, K., and Attard, M. M. (2006). “Modeling of unreinforced masonry

walls under shear and compression”. Engineering Structures,

doi:10.1016/j.engstruct.2006.10.019.

(7) Chaimoon, K., Attard, M.M., and Tin-Loi, F. (2007). “Crack propagation due to

time-dependent creep in quasi-brittle materials under sustained loading”.

Computational Methods in Applied Mechanics and Engineering, (submitted).

(8) Chaimoon, K., and Attard, M. M. (2007). “Experimental and numerical

investigation of masonry under three-point bending”. Engineering Structures,

(submitted).
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 7

CHAPTER 2
REVIEW OF FRACTURE BEHAVIOUR IN
UNREINFORCED MASONRY

2.1 Introduction

It is well understood that behaviour of masonry is strongly dependent upon the

properties of its constituents, the bricks and the mortar, as reported by many researchers,

see Binda et al. (1988), Van Der Pluijm (1992) and Ignatakis et al. (1998). To be able to

model the fracture behaviour of masonry structures, it is necessary to study the

mechanical and fracture behaviour of its constituents, of brick-mortar interface and of

masonry assemblage, particularly when a micro-modelling approach will be adopted.

This review is focused on the behaviour at macroscopic level and the prominent features

that are to be captured. A complete description of unreinforced masonry can be found in

Hendry (1998) and Drysdale et al. (1994).

This chapter starts with fracture in quasi-brittle materials to provide some

background of their salient features and then focuses on the mechanical and fracture

behaviour of masonry constituents, of brick-mortar interface and of masonry

assemblage and deals with the modes of failure. Note that the literature review for time-

dependent fracture is given in Chapter 5.


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 8

2.2 Fracture Behaviour of Quasi-Brittle Materials

In fracture mechanics, concrete, clay brick and mortar are classified as quasi-brittle

materials as they do not exhibit significant plastic deformations but have relatively large

fracture process zone (FPZ) as compared with metals and brittle materials, see Figure

2.1. The FPZ is a nonlinear zone characterised by progressive softening.

N N
N

F F F
L L L

Brittle materials Metals Quasi-brittle materials

Figure 2.1. Relative sizes of fracture process zone (F), nonlinear hardening zone

(N) and linear elastic zone (L) in different types of materials (Zhou, 1992).

2.2.1 Softening

Softening is the most crucial feature of fracture in quasi-brittle materials and takes place

in the FPZ. Softening is a mechanical phenomenon that mechanical resistance of a

material gradually decreases under a continuous increase of deformation. Softening

occurs simultaneously with the growth of macro-cracks causing localization of cracking

in a narrow zone and unloading in the rest of material. To be able to predict fracture

behaviour in quasi-brittle materials correctly, softening must be taken into account.

For tensile failure, softening has been well identified for concrete. Van Mier

(1997) pointed out that the softening or post-peak behaviour can assume two different

shapes depending on the end restraints of the tested specimen, as demonstrated in Figure
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 9

2.2. This behaviour is due to the rotation of the specimen during the loading. When

fixed platens are applied, a bending moment is introduced and multiple cracks will

occur resulting in a slightly larger tensile strength and a higher value of energy

dissipated or fracture energy.


F M F

fixed

rotating

a) hinges b) fixed platens c) stress-crack width diagrams

Figure 2.2. Effect of the end condition on softening curve, Van Mier (1997).

2.2.2 Size Effect

Another feature of quasi-brittle materials is size effect. Size effect is understood as the

dependence of the structure strength on the structure size. Although in the classical

theories based on plasticity or limit analysis the strength of geometrically similar

structures is independent of the structure size, quasi-brittle materials do not follow this

trend. The size effect is generally defined through a comparison of geometrically similar

structures of different sizes. It is normally characterized in terms of the nominal

strength. There are six different size effects that may cause the nominal strength to

depend on structure size including boundary layer effect, diffusion phenomena,

hydration heat, statistical size effect, fracture mechanics size effect and fractal nature of

crack surfaces, see Bazant and Planas (1998). The fracture mechanics size effect is the
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 10

most important source of size-effect. This size effect is due to the release of stored

energy of the structure into the fracture front.

Bazant (1984) generalised the fracture mechanics size effect of quasi-brittle

materials as a transitional behaviour illustrated by the solid curve in Figure 2.3(b). This

curve approaches a horizontal line for the strength criterion if the structure is very small

and an inclined straight line of slope -1/2 if the structure is very large.

log (strength)
strength criteria

2
most laboratory 1
stress tests
LEFM
small size

large size
most structures
relative deflection log (size)

(a) (b)

Figure 2.3. Size effect: (a) on the curves of nominal stress vs. relative deflection,

and (b) on the strength in a bi-logarithmic plot, Bazant and Planas (1998).

The simplest size effect law was derived and proposed by Bazant (1984) as a

function depending on two parameters as

Bf tc d
VN , = (2.1)
1  d0

where V N is nominal stress at failure, f tc is tensile strength of the material, B is a

dimensionless constant and d 0 is a constant with the dimension of length.  is called

the brittleness number. d is a characteristic dimension of the structure, which may be


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 11

chosen as any dimension, e.g. the depth of the beam, or the span, or half of the span,

since only the relative values of V N matter. Both empirical parameters, B and d 0 ,

depend on the fracture properties of the material, which are dependent on the loading

rate and on the geometry (shape) of the structure, but not on the structure size. They can

be identified by any fitting procedure to get the optimal fit to the experimental data.

The Bazant’s size effect equation has been verified by a large number of

experimental data, for both notched fracture specimens and unnotched structures, see

e.g. Bazant and Pfeiffer (1986), Bazant and Pfeiffer (1987), Gettu et al. (1990) and

Bazant and Kazemi (1991).

2.2.3 Fracture Mechanics Applied to Quasi-Brittle Materials

A historical review of the application of fracture mechanics to quasi-brittle materials

can be found in Bazant and Planas (1998). In general, there are two main approaches

including continuum-based and discrete crack approaches. The continuum-based

models (which are formulated in terms of stress and strain tensors) such as the crack

band model see Bazant and Oh (1983), the gradient and non-local models see Jirasek

(1998) and Peerlings et al. (2001), and the strong singularity model see Oliver et al.

(2002) are not discussed here. Two major descriptions of the discrete crack approach

are the equivalent elastic crack models and cohesive crack models.

In the equivalent crack models, the linear elastic fracture mechanics (LEFM)

was modified by using an effective crack length or equivalent crack length concept. The

two parameter fracture model by Jeng and Shah (1985) and the effective crack model by

Karihaloo and Nallathambi (1989) are in this class.


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 12

In the cohesive crack models, the crack is assumed to propagate and to open

while still transferring stress from one face to the other. The cohesive crack models

were developed based on the ideas of the pioneering work of Barenblatt (1962) and

Dugdale (1960) which were restricted to the analysis of the fracture processes near the

tip of a pre-existing crack. Since then more elaborate cohesive crack models have been

proposed with various names to simulate various physically different fracture

mechanisms such as the fictitious crack model for crack growth in concrete see

Hillerborg et al. (1976) and the bridged crack model for crack bridging in ceramics see

Mai and Lawn (1987). However, the fictitious crack model proposed by Hillerborg for

concrete merits special comment as mentioned in Bazant and Planas (1998). To analyse

failure of a structure or component no pre-existing crack is required for the Hillerborg’s

model because it includes crack initiation rules for any situation. Such a model can be

applied to initially uncracked concrete structures and describes all the fracture processes

from no crack at all to complete structural failure. An evaluation of the models

describing fracture of concrete can be found in Elices and Planas (1989).

2.3 Unreinforced Masonry – Mechanical and Fracture


Behaviour

2.3.1 Brick Units

From a structural viewpoint, bricks used today are generally made from clay, calcium

silicate (sand-lime) and concrete. This study will be mainly focused on clay bricks as it

is the most extensively used type of masonry unit throughout the world.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 13

Clay bricks may be kiln fired or sun dried. Typical contemporary clay bricks are

shown in Figure 2.4. An overview of the compressive, tensile and other mechanical

properties of clay bricks is given as follows. Note there is very little information on

shear mechanical properties of bricks available in the literature.

(a) solid pressed brick (b) cored brick (c) hollow brick

Figure 2.4. Contemporary clay bricks: (a) solid pressed brick; (b) cored brick; (c)

hollow brick.

Brick Compressive Strength

In general, compressive strength obtained from any uniaxial test has been known to be

influenced by several factors such as loading rate, specimen size and shape, and

specimen end conditions. Consequently, the actual compressive strength is intricate to

determine.

The major factor affecting compressive strength is the restraint effect, occurring

at the end of specimen. The restraint effect occurs because under a uniaxial compression

load, materials tend to expand in the transverse directions (Poisson’s effect). Where this

expansion is restrained, transverse compressive confining stresses are built up, resulting

in a triaxial compression stress state. As a result of such confinement, the axial

compressive strength increases particularly when hard capping, such as a thin layer of

molten sulphur compound or a gypsum plaster compound, is used. However, the effect
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 14

of platen restraint can be minimize by the use of other types of soft capping such as

teflon sheets or the use of greased platens. Another approach is to use brush platens as

shown in Figure 2.5. This technique has been used successfully for the testing of both

concrete and masonry, see Hegemier et al. (1978), Page (1981) and Page (1983). The

restraint effect has been discussed in detail by Drysdale et al. (1994) and Dhanasekar

(1985).

Figure 2.5. Brick uniaxial compression testing using brush platen.

To be able to keep the simplicity in determining brick compressive strength

some standard codes, e.g. CEN (1995) and AS/NZS-4456.4 (2003), account for the

restraint effect by adopting a correction factor to convert the confined compressive

strength to an equivalent unconfined value which can be used in design and research

work.

The measured compressive strength of clay bricks can vary from 20 to 145 MPa

(3000 to 21000 psi), depending on various factors such as the constituents of clay, firing

conditions, coring pattern and the size and shape of units. Furthermore, different

mechanical properties including compressive strength, elastic modulus and Poisson’s

ratio are obtained if a brick is loaded in different directions, see e.g. Ignatakis et al.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 15

(1998). This indicates the material anisotropy, which may be attributed to nonuniform

firing or manufacturing processes, as pointed out by Drysdale et al. (1994).

Brick Tensile Strength

Although tensile strength can be determined by a direct tensile test, such tests are

difficult to perform and produce quite variable results because of alignment

complications in the test apparatus and stress concentrations associated with gripping

the test specimen. In order to avoid the difficulties in performing direct tensile tests,

indirect tensile tests are usually adopted including three-point bending test for flexural

strength and splitting test. However the flexural tensile strength is found to be

considerably higher than the direct tension results. The reason for this difference is that

the strain gradient in a three-point bending test results in a smaller fraction of the

section being highly stressed. Alternatively, a splitting tension test is often performed to

obtain a comparative measure of tensile strength. It produces results with lower

variability compared with other tests and is easy to carry out. The nearly constant

tension developed over the central part of the unit height between the loading points is

closer to a direct tension condition and the calculated average strengths tend to be close

to (slightly higher than) the direct tension results, see Drysdale et al. (1994).

Experiments have shown that the tensile strength of clay bricks, as measured by

indirect methods, increases with brick compressive strength. Sahlin (1971) reported that

the ratio of flexural strength to compressive strength varies between about 0.1 to 0.32.

The flexural strength values are 20% to 50% higher than the values obtained from

splitting tests. For the longitudinal tensile strength of clay, calcium-silicate and concrete
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 16

units, Schubert (1988) found that the ratio between the tensile and compressive strength

ranges from 0.03 to 0.10.

There is little investigation about mode I fracture energy of brick units reported

in the literature. Van Der Pluijm (1992) performed direct tensile tests on brick

specimens and found that mode I fracture energy of solid clay and calcium silicate units

ranges from 0.06 to 0.13 Nmm/mm2 for tensile strength values ranging from 1.5 to 3.5

N/mm2.

Almeida et al. (2002) also utilised direct tensile tests to characterise the tensile

behaviour of bricks and brick-mortar interfaces. Solid bricks, hollow bricks produced in

Portugal and hollow bricks produced in Spain were considered. Due to the constraints of

the testing machine, all specimens were obtained by extracting from original bricks. The

tests were performed under displacement control with a deformation rate of 0.5 Pm/s.

Both the tensile strength and mode I fracture energy were quantified. The results for all

types of brick were in the same order. An average value of the tensile strength was in

the order of 3 N/mm2. The average mode I fracture energy was between 0.0512 and

0.081 Nmm/mm2. However, the scatter of the test results was very high, for example see

Figure 2.6. It can be observed that for specimens with higher strength, larger stress

decays after peak load occurred and the descending curves of some specimens displayed

irregularities. The reported causes of the scatter on the test results were due to the non-

uniform crack opening and the orientation of the cracks developed during the

manufacturing processes. This scatter is typical of masonry materials under tension,

Van Der Pluijm (1999). It was also reported that a significant number of specimens

(20% to 50% of specimens) failed before attaining the ultimate deformation condition

which reflects the testing difficulties.


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 17

6.0

5.0

4.0
 (N/mm2)
3.0

2.0

1.0

0.0
0 10 20 30 40 50 60
u (Pm)

Figure 2.6. Brick direct tensile test responses according to Almeida et al. (2002).

Brick Rate of Absorption

One brick property that does significantly influence the brick masonry strength is its

initial rate of absorption (I.R.A.) or brick suction. Brick suction plays an important role

in the achievement of bond and as such, significantly influences both the compressive

and tensile strength of brick masonry. The influence of the initial rate of absorption of

brick on shear bond capacity was illustrated by Drysdale et al. (1982). Bricks should

have an optimum value of I.R.A. to maximise the bond strength of the masonry. As

mentioned by Dhanasekar (1985) that if the brick has a high value of I.R.A. it will

absorb most of the water from the mortar without leaving sufficient moisture for

hydration of cement which makes the bricks very difficult to lay. By contrast, bricks

with smaller values of I.R.A. will not develop proper bond with the mortar, if they have

been pre-wet.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 18

2.3.2 Mortar

Mortar is used in masonry construction as a binding material to bond individual

masonry units into a composite assemblage that will withstand the imposed conditions

of loads and weather. There are various types of mortar which have been used over

several centuries such as lime-pozzolanic, cement-lime and cement mortar. In most

cases the mortar is weaker and more flexible than the bricks.

The weathering characteristics of mortar are strongly dependent upon local

exposure conditions and the thickness of the joint, while its inherent properties are

affected by mixing, curing, age, joint thickness and its constituents such as cement,

sand, lime or admixture (if used) and water. Properties of adequate constituents can be

found in Dhanasekar (1985). Mortar types and their proportions according to ASTM-C-

270 (1989) were discusses by Drysdale et al. (1994). Fundamentally, the cement adds

strength, the lime and water contribute to workability and the sand provides an

inexpensive filler.

Mortar should have good workability, sufficient bond and appropriate strength.

However, the two most critical properties are bond and workability. The bonding is

dependent upon a satisfactory value of the brick suction and mortar water retention. The

workability is the ability of the mortar to flow easily over the surface of bricks. Even

though the use of large quantities of water will improve the mortar flow and

workability, its water-cement ratio will increase and hence reduce the mortar strength.

Only information on the compressive behaviour of mortar is discussed here

since less information on tensile and shear properties is available in the literature.

Additionally, standard specimens for mortar tests are usually cast in non-absorbent
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 19

moulds and the water absorption effect of the masonry unit is therefore ignored, since

the mortar strength is therefore non-representative of the mortar in a masonry joint. The

measured values from any standard test are therefore not the real properties of the

mortar. The influence of the suction rate was measured in the experimental results

carried out by Van Der Pluijm (1992). For this reason, mortar properties are merely

used as a measure of quality control rather than representative of the actual properties.

Typically, only the mortar compressive strength and mortar flexural strength are

measured and reported, see e.g. Almeida et al. (2002) and Abdou et al. (2006).

Some researchers have investigated the properties of mortar disks extracted from

masonry joints see e.g. Bierwirth et al. (1993), Schubert and Hoffmann (1994) and

Stockl et al. (1994). There is still a lack of knowledge on the complete mortar uniaxial

behaviour, both in compression and tension, Lourenco (1996).

Mortar Compressive Strength

Although mortar compressive strength is frequently less important than bond as

discussed above, it has an influence on masonry compressive strength. The CEN (1995)

uses the compressive strength of masonry components to determine the compressive

strength of masonry.

Mortar compressive strength may be determined using either cube or prism tests.

The standard mortar specimen according to ASTM-C-109 (1988) is a 50 mm (2 in.)

cube cast in a non-absorbent mould. A minimum of three specimens is typically

required and these are cured under specified conditions before testing at ages of 7 and/or

28 days.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 20

Grim (1975) expressed the compressive strength of mortar as a function of

shape, curing, age, air content and initial flow rate of a mortar.

2.3.3 Brick-Mortar Interface

The brick-mortar interface is the most important characteristic that governs the

behaviour of brick masonry since it usually acts as plane of weakness. There are two

modes of failure occurring in the brick-mortar interface including tensile failure (mode

I) and shear failure (mode II) as discussed by Lourenco (1996).

Brick-Mortar Interface Tensile Failure

The brick-mortar interface tensile strength is a key parameter for numerical modelling

of masonry structures. There are various types of test methods used and proposed in the

literature to measure tensile strength. A review of the test methods and problems related

to each method was described by Jukes and Riddington (1998). Jukes and Riddington

(1998) suggested the direct tensile test using couplet specimens, made of two bricks

connected by only one mortar joint, with the load applied via bolts that pass through

holes drilled through the bricks. Jukes and Riddington (1998) proposed that this

measure of tensile strength be used when a bond strength value is required for checking

for in-plane strength or for use in a finite element analysis. However, this test cannot be

used when there is a combination of low strength bricks with and high joint bond

strength.

Experiments on the direct tensile strength of solid clay and calcium-silicate

bricks were performed by Van Der Pluijm (1992). These tensile results showed that the

tension softening response was an exponential curve as shown in Figure 2.7. Van Der
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 21

Pluijm found that the mode I fracture energy, which is defined as the amount of energy

to create a unitary area of a crack along the unit/mortar interface, ranges from 0.005 to

0.02 Nmm/mm2 for a tensile strength varying between 0.3 to 0.9 N/mm2 according to

the unit/mortar combination.

V 0.4

0.3

 (N/mm2)
0.2

0.1

V 0
0 0.05 0.1 0.15
Crack displacement (mm)

(a) (b)

Figure 2.7. Tensile behaviour of brick-mortar interface (Van Der Pluijm 1992): (a)

test specimen; (b) typical response for solid clay brick masonry (the shaded area

represents the envelope of three tests).

Recently, a set of tests on the direct tensile strength of brick and the brick-mortar

interface was carried out by Almeida et al. (2002). The tensile strength of bricks has

been briefly summarised in Section 2.3.1. Almeida et al. quantified the tensile strength

and mode I fracture energy for different types of brick-mortar interfaces. The average

bond tensile strength was in the order of 2 N/mm2 and the average mode I fracture

energy was around 0.008 Nmm/mm2. However, there was considerable scatter of the

test results, as well as on the shape of the softening branch. The tests were also rather

unstable and the softening branch was obtained only in a few tests. Figure 2.8 shows an

example of the scatter of the reported test results. The causes of the scatter were due to

the non-uniform crack opening and the nature of the masonry materials.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 22

3.5

3.0

2.5
 (N/mm2) 2.0

1.5

1.0

0.5

0.0
0 2 4 6 8 10 12
u (Pm)

Figure 2.8. Responses obtained from direct tensile tests of brick-mortar interfaces

according to Almeida et al. (2002).

Brick-Mortar Interface Shear Failure

Shear failure in a brick-mortar interface has been studied by many researchers using

either masonry specimens with several horizontal and vertical joints, see e.g. Riddington

and Ghazali (1988) and Lourenco et al. (2004), or small specimens containing only one

mortar joint, see e.g. Hamid and Drysdale (1982) and Jukes and Riddington (2001). The

shear failure behaviour investigated from both types of specimens seems to have similar

trends, Lourenco et al. (2004).

The failure of masonry joints under shear can be represented by a Mohr-

Coulomb failure law which expresses a linear relationship between the shear stress W

and the normal stress V as

W c  tan I ˜ V (2.2)

In which c is cohesion and I is friction angle.


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 23

In order to obtain shear failure parameters, Van Der Pluijm (1993) purposed a

shear test set-up as shown in Figure 2.9. This test set-up reportedly provided a uniform

state of stress in the masonry joint. Note that a uniform state of shear stress is difficult to

generate because the equilibrium constraints introduce non-uniform stresses in

specimen. Van Der Pluijm’s shear test permits a constant normal confining pressure to

be maintained upon shearing. Van Der Pluijm used this test set-up to study masonry

shear behaviour for solid clay and calcium-silicate bricks. Confining stresses were

applied of three different levels: 0.1, 0.5 and 1.0 N/mm2. The results showed an

exponential shear softening with a residual friction level, Figure 2.10(a). Van Der

Pluijm found that the value of mode II fracture energy G fII , the area defined by the

stress/displacement diagram and the residual friction shear level, depends on the level of

the confining stress, Figure 2.10(b). The mode II fracture energy value ranges from 0.01

to 0.25 Nmm/mm2 while the initial cohesion value ranges from 0.1 to 1.8 N/mm2.

actuator load cell


counter wt. counter wt.

ball hinge

M V V M
load cell actuator
d

M
100 mm specimen
V
centring plate line hinges

(a) (b)

Figure 2.9. Shear test set-up and loading on the specimen (Van Der Pluijm 1993).
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 24

2.0 0.25

GfII (Nmm/mm2)
1.5 0.20
 (N/mm2)

1.0  = -1.0 (N/mm2) 0.15

0.5  = -0.5 (N/mm2) 0.10


 = -0.1 (N/mm2)
0.0 0.05
0.0 0.2 0.4 0.6 0.8 1.0 0.00 0.25 0.50 0.75 1.00 1.25
Shear displacement (mm) 2
Confining stress (N/mm )

(a) (b)

Figure 2.10. Typical shear behaviour of brick-mortar interface for clay bricks

(Van Der Pluijm 1993): (a) stress/displacement diagram for different normal stress

levels; (b) mode II fracture energy as a function of the normal stress level.

In addition, Van Der Pluijm found that the tangent of the initial internal friction

angle tan I0 ranges from 0.7 to 1.2 for different unit/mortar combinations. The tangent

of the residual internal friction angle tan Ir was approximately constant and equal to

0.75. The dilatancy angle \ which measures the uplift of one unit over the other upon

shearing, see Figure 2.11, depends on the level of the confining stress, see Figure

2.12(a). The average value of tan \ ranges from 0.2 to 0.7 depending on the roughness

of the brick surface for low confining pressures. The dilatancy angles soften to zero

with increasing confining pressures indicating pure shear sliding displacement at the

residual state, see Figure 2.12(b).


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 25

|W | Gn
\ arctan
ø0 Gs

Gn
ør

V Gs
(a) (b)

Figure 2.11. Definition of friction and dilatancy angles (Van Der Pluijm 1993).

0.8 0.25

Normal displacement (mm)


0.20
0.6
0.15
tan \

0.4
0.10
0.2
0.05

0.0 0.00
0.00 0.25 0.50 0.75 1.00 1.25 0.0 0.2 0.4 0.6 0.8 1.0
Confining stress (MPa) Shear displacement (mm)

(a) (b)

Figure 2.12. Typical shear behaviour of brick-mortar interface for clay bricks

(Van Der Pluijm 1993): (a) tangent of the dilatancy angle \ as a function of the

normal stress level; (b) relation between the normal and the shear displacement.

The results of 74 shear tests on clay brick masonry assemblages were also

reported by Drysdale et al. (1982). Shear was transmitted along the bed joints with or

without normal compressive stress. Constant levels of precompression ranging from 0

to 30% of the compressive strength were considered. Different types of mortar were

used. The shear bond failure capacities of the bed joints were influenced by the mortar

type but were not proportional to the compressive strength of either the mortars or the

corresponding masonry prisms. Under compressive stresses normal to the bed joints, the
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 26

type and strength of the mortar had more significance for the shear strength. Also, the

additional shear resistance obtained by increasing the normal compressive stress was

not proportional to the level of compressive stress and the so-called coefficient of

friction along the bed joint decreased with increased normal compressive stress.

Abdou et al. (2006) studied the influence of holes on joint mortar behaviour by

testing on half brick couplet specimens made of both solid and hollow bricks. A

relatively high compressive strength mortar (20 MPa) was used. In both cases, the

experimental results showed that there was not any stiffness degradation even in the

softening regime. However, it seems that the presence of holes increases the stiffness

due to mortar filling in the holes but does not affect the internal friction angle of the

mortar joint.

2.3.4 Uniaxial Compressive Behaviour of Masonry

There are several factors influencing the compressive behaviour of masonry,

particularly brick and mortar characteristics. The difference in elastic properties of the

brick and mortar generating composite action governs the compressive failure of

masonry. Under compression, both brick and mortar tend to expand laterally at different

rates due to Poisson’s effect. The mortar usually has a higher value of Poisson’s ratio

and will therefore expand laterally more than the bricks. The mortar expansion is

restrained by the bond and friction at the brick-mortar interface leading to state of

triaxial compression in the mortar and of compression/biaxial tension in the brick (see

Figure 2.13). This phenomenon has been discussed in detail by Hilsdorf (1969), Khoo

and Hendry (1973), Dhanasekar (1985) and Chaimoon and Attard (2006).
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 27

Other influencing factors on the masonry compressive behaviour, see Hendry

(1998), are workmanship, coring patterns of extruded bricks causing significant

reduction in the strength of brick masonry due to stress concentration effect,

dimensional variations produced by variations in size and poor workmanship inducing

eccentricities into the wall, and thickness of mortar joints. As the thickness of the joint

increases the compressive strength decreases because the flexible mortar tends to spread

more and causes tensile splitting of brick units at lower loads.

Vnb
P Vtb

Vpb brick

Vnm
Vtm
Vpm mortar

Vnm
P

Figure 2.13. Failure mechanism of brick masonry in compression (Dhanasekar

1985).

The compressive strength of brick masonry is one of the most important material

parameters for the analysis and design of masonry structures. It can be determined either

from brick and mortar strength using an approximating approach or from compression

tests on masonry prisms. Dhanasekar (1985) pointed out that if the approximate method

is adopted they should be interpreted carefully because no allowance has been made for

variations in workmanship and when a more reliable estimate of compressive strength is

required, a prism test should be used. Although the real uniaxial compressive strength of

masonry could be obtained from the so-called RILEM test, see Figure 2.14, the RILEM
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 28

specimen is relatively large and costly to carry out, particularly when compared to the

standard cube or cylinder tests for concrete as mentioned by Lourenco (1996). As a

result, the stacked bond prism as shown in Figure 2.13 is frequently used to obtain the

uniaxial compressive strength instead. And the more representative value of the

compressive strength is achieved by adopting correction factors to account for the

effects of pier aspect ratio and brick height/joint thickness ratio.

hb
h  5 hb
h h  3 tb
h  5 tb
hb

lb
tb
b

Figure 2.14. Specimen for determination of masonry compressive strength

according to RILEM test.

2.3.5 Uniaxial Tensile Behaviour of Masonry

The uniaxial tensile behaviour of masonry is dependent upon the direction of loading.

The tensile strength in the direction parallel to bed joint will be higher than that in the

direction normal to bed joint because either some brick must also fracture or the failure

line must follow a staggered path along the bed and head joints.

A review of the uniaxial tensile behaviour of masonry was made by Lourenco

(1996). Lourenco (1996) pointed out that if the tensile loading is perpendicular to the

bed joints, failure is generally caused by failure of the relatively low tensile bond

strength of the brick-mortar interface. The masonry tensile strength may be


CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 29

approximately equal to the tensile bond strength of brick-mortar interface. For tensile

loading parallel to the bed joints, there are two different types of failure depending on

the relative strength of joints and units, see Figure 2.15 (Backes 1985). In the first type

of failure, cracks zigzag through the head and bed joints. A typical stress-displacement

diagram shows some residual plateau upon increasing deformation. In the second type

of failure, cracks run almost vertically through the bricks and head joints. A typical

stress-displacement diagram shows progressive softening with no residual strength.


 (MPa)

Total displacement (mm)

Figure 2.15. Typical experimental responses of masonry under tensile loading

parallel to the bed joints (Backes 1985).

2.3.6 Biaxial Behaviour of Masonry

The biaxial behaviour of masonry is more complex than that of plain concrete due to the

composite interaction of its constituents and the distinct directional properties of

masonry caused by the mortar joints and/or brick arrangement. The overall biaxial

behaviour is a result of the combination of stress redistribution, local cracking and

progressive failure in localised regions. Various experimental programs have been

performed to study the overall behaviour of masonry subjected to biaxial states of stress.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 30

These programs concentrated on the study of the definition of failure (failure envelope)

and failure modes. For example, Ganz and Thurlimann (1982) reported a failure surface

for hollow brick masonry subjected to biaxial stresses. Guggisberg and Thurlimann

(1987) studied the biaxial behaviour of clay and calcium-silicate unit masonry and

Lurati et al. (1990) for concrete unit masonry.

In order to illustrate the influence of stress ratio and stress orientation an

intensive testing program on masonry subjected to proportional biaxial loading was

performed by Dhanasekar (1985). The most complete set of experimental data is shown

in Figure 2.16. Half scale solid clay bricks and 1:1:6 (cement:lime:sand, by volume)

mortar were used. Different bed joint angles with different load combinations were

adopted. The different modes of failure are illustrated in Figure 2.17.

Figure 2.16. Biaxial strength of solid clay unit masonry (Page, 1981&1983).
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 31

Angle Uniaxial Tension/ Uniaxial Biaxial


T tension compression compression compression

0q

Splitting
crack
22.5q

45q

67.5q

90q

Figure 2.17. Modes of failure of solid clay unit masonry under biaxial loading

(Dhanasekar, 1985).

As can be observed in Figure 2.17, under uniaxial tension, cracking and sliding

of the head and bed joints govern failure. Under tension-compression, failure occurs

either by cracking and sliding of the joints alone or in a combined mechanism involving

both units and joints. Similar types of failure occur for uniaxial compression. In biaxial

compression, failure typically occurs by splitting of the specimen at mid-thickness (see

Figure 2.17), in a plane parallel to its free surface, regardless of the orientation of the

principal stresses.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 32

2.4 Modes of Failure of Unreinforced Masonry

Different cracking patterns are found when masonry is subjected to loads. This is

attributed to the composite nature of masonry and the characteristics of brick and

mortar. In a macroscopic sense, modes of failure of masonry may be identified

according to Mann and Müller (1982). Failure can occur in many modes under shear

and compression, see Figure 2.18, including (a) friction failure of the bed joints, (b)

failure due to cracking of the bricks and (c) compression failure of the masonry. In some

cases failure due to the bed joint cracking open may also be found if the tensile strength

of the joint is exceeded.

(a)

(b) (c)

Figure 2.18. Failure modes of unreinforced masonry in a macroscopic sense: (a)

friction failure; (b) brick cracking; (c) masonry compression failure, Mann and

Müller (1982).

Lourenco and Rots (1997) pointed out that the basic failure mechanisms of

masonry consist of (i) tensile cracking of the joints, (ii) sliding along a bed or head joint
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 33

at low values of normal stress, (iii) cracking of the masonry units in direct tension, (iv)

diagonal tension cracking of masonry units at values of normal stress sufficient to

develop friction in joints and (v) compressive failure, characterised by splitting of units

in tension as a result of mortar dilatancy at high compression values, see Figure 2.19.

(i,ii) are joint mechanisms, (iii) is a brick mechanism and (iv,v) are combined

mechanisms involving bricks and joints.

(i) Joint Tensile Cracking

(ii) Joint Slip (iii) Unit Direct Tensile Cracking

(iv) Unit Diagonal Tension Cracking (v) Masonry Crushing

Figure 2.19. Failure modes of unreinforced masonry in a microscopic sense

according to Lourenco and Rots (1997).

2.5 Summary

An overview of the main features of the mechanical and fracture behaviour of the

masonry constituents, the brick-mortar interface and the masonry assemblage has been
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 34

given in this chapter. Masonry is a composite material which consists of brick units and

mortar. It is apparent from the literature that the behaviour of masonry is strongly

dependent upon the properties of its constituents (the brick units and the mortar) and

exhibits distinct directional properties. Masonry fracture behaviour is complex not only

due to the inherent features in quasi-brittle materials especially softening but also due to

the composite interaction between the brick units and the mortar. As a result, masonry

exhibits various modes of failure which include tensile cracking of the joints, sliding

along the bed or head joints, cracking of the masonry units, diagonal tension cracking of

the masonry units and masonry compressive failure.

The measured compressive strength of clay bricks can vary from 20 to 145 MPa,

depending on various factors such as the constituents of clay, firing conditions, coring

pattern and the size and shape of units. Different mechanical properties are obtained if a

brick is loaded in different directions. The ratio of flexural strength to compressive

strength of bricks varies between about 0.1 to 0.32. The flexural strength values are

20% to 50% higher than the values obtained from splitting tests. For the longitudinal

tensile strength of clay, calcium-silicate and concrete units, the ratio between the tensile

and compressive strength ranges from 0.03 to 0.10. Based on the limited investigation

of brick mode I failure, the mode I fracture energy of bricks ranges from 0.05 to 0.13

Nmm/mm2 for tensile strength values ranging from 1.5 to 3.5 N/mm2.

Standard specimens for mortar tests are usually cast in non-absorbent moulds

and the water absorption effect of the masonry unit is ignored. The mortar strength is

therefore non-representative of the mortar in a masonry joint. The measured values from

any standard test are not the real properties of the mortar within a masonry assembly.
CHAPTER 2 REVIEW OF FRACTURE BEHAVIOUR IN UNREINFORCED MASONRY 35

For this reason, mortar properties are merely used as a measure of quality control rather

than representative of the actual mortar properties within masonry.

The brick-mortar interface is the most important characteristic that governs the

behaviour of brick masonry since it usually acts as a plane of weakness. The mode I

fracture energy of brick-mortar interfaces ranges from 0.005 to 0.02 Nmm/mm2 for a

tensile strength varying between 0.3 to 0.9 N/mm2. The failure of masonry joints under

shear can be represented by a Mohr-Coulomb failure law. The value of mode II fracture

energy depends on the level of the confining stress. The mode II fracture energy value

ranges from 0.01 to 0.25 Nmm/mm2 while the initial cohesion value ranges from 0.1 to

1.8 N/mm2. The tangent of initial friction angle of brick-mortar interfaces ranges from

0.7 to 1.2. The tangent of residual friction angle is approximately constant. The

dilatancy angle of brick-mortar interfaces, which measures the uplift of one unit over

the other upon shearing, depends on the level of the confining stress. The average value

of tangent of dilatancy angle ranges from 0.2 to 0.7. The dilatancy angle softens to zero

with increasing confining pressures.

The difference in elastic properties of brick and mortar generating composite

action governs the compressive failure of masonry. The uniaxial tensile behaviour of

masonry is dependent upon the direction of loading. The tensile strength in the direction

parallel to bed joint is higher than that in the direction normal to bed joint. The biaxial

behaviour of masonry is more complex than that of plain concrete due to the composite

interaction of its constituents and the distinct directional properties of masonry caused

by the mortar joints and/or brick arrangement.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 36

CHAPTER 3
MODELLING OF FRACTURE IN UNREINFORCED
MASONRY

3.1 Introduction

There are two main approaches to analyse the linear and nonlinear behaviour of

masonry structures either the macro-modelling or the micro-modelling approaches, see

Giambanco et al. (2001), Sutcliffe et al. (2001), Lourenco (1996) and Ma et al. (2001).

In the macro-modelling approach, homogenisation techniques and continuum-based

theories (Figure 3.1) are usually adopted for large and practice-oriented analysis. The

interaction between units and mortar is generally ignored for the global structural

behaviour and a relation is established between average strains and average stresses.

The material parameters must be obtained from masonry tests of sufficiently large size

under homogeneous states of stress. A complete macro-model must reproduce an

orthotropic material with different tensile and compressive strengths along the material

axes as well as different inelastic behaviour for each material axis. Macro-modelling

approaches have been adopted by many researchers such as Luciano and Sacco (1997),

Luciano and Sacco (1998), Ma et al. (2001) and Giambanco et al. (2001).

Homogeneous

Homogenisation

Figure 3.1. Macro-modelling of masonry (Ma et al. 2001).


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 37

In the micro-modelling approach, a representation of the unit, mortar and the

unit/mortar interface must be included, see e.g. Page (1978), Lourenco and Rots (1997),

Guinea et al. (2000), Giambanco et al. (2001), Van Zijl et al. (2001c), Sutcliffe et al.

(2001) and Chaimoon and Attard (2006). Cohesive crack models are usually adopted in

the micro-modelling formulation through the interface elements. This approach is

suitable for small structural elements with particular interest in strongly heterogeneous

states of stress and strain. The primary aim of micro-modelling is to closely represent

masonry from the knowledge of the properties of each constituent and the interface. The

experimental data must be obtained from laboratory tests on masonry constituents and

small masonry samples. Two levels of refinement are widely used in the literature

including detailed micro-modelling and simplified micro-modelling as shown in Figure

3.2. In the detailed micro-modelling, the units, mortar and the unit/mortar interfaces are

all modelled separately. While this leads to more accurate results, the level of

refinement means that any analysis will be computational intensive and so limit its

application to small laboratory specimens and structural details. In the simplified micro-

modelling, the properties of the mortar and the unit/mortar interface are lumped into a

common element, while expanded elements are used to present the brick units. Some

accuracy is obviously lost, however the reduction in computational effort results in a

model which would be applicable to a wider range of structures.

unit mortar unit joint

interface
unit/mortar

a) Detailed micro-modelling b) Simplified micro-modelling

Figure 3.2. Two levels of refinement of masonry micro-modelling (Lourenco 1996).


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 38

Since the best insight into the behaviour of masonry structures can be obtained

from the use of a micro-model, the micro-modelling approach is used in this study.

Several researchers have adopted micro-models to study the complex behaviour

of masonry structures. For an elaborate model the shear wall problem is often used for

the validation purpose, as in such a problem all possible failure modes are involved and

govern the structural response. In order to model the complicated behaviour of shear

walls different micro-models have been proposed. Giambanco et al. (2001) used a

micro-model in which only tensile and shear failure were considered in the interface

mortar joint elements. Lourenco and Rots (1993) included compressive failure of

masonry via a Von Mises plasticity criterion for the brick units. There were numerical

difficulties with this approach which were overcome by Lourenco (1996) who

introduced a sophisticated model capable of predicting the behaviour of masonry

structures from the linear elastic stage, through cracking and degradation until complete

loss of strength. All possible failure modes were taken into account. The compressive

failure of masonry was lumped and modelled via interface elements leading to a robust

type of modelling. Although the complete load path of masonry structures could be

reproduced reasonably well, Lourenco (1996) had to set the shear stresses in the brick

units to zero in a single load step upon initiation of cracking so that convergence could

be achieved. Large amounts of energy were therefore released in a single load step

which affected the robustness of the numerical procedure. The numerical difficulties

arose because at certain load increments bifurcations in the load path could not be

resolved with the analysis unable to choose “ …whether to propagate the crack in the

unit or the crack/slip in the head and bed joint around the unit, Lourenco (1996)”.

Sutcliffe et al. (2001) included both the tensile and shear failure in brick units for a
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 39

lower bound limit analysis. A compression cap for the interface elements was also

included. Nevertheless, softening was not taken into account. It is therefore believed

that a robust micro-model for the analysis of masonry structures is still needed.

A micro-model based on a discrete crack model using a piecewise-linear

constitutive law will be developed herein. The formulation is in the form of a so-called

“linear complementarity problem” (LCP). Solutions to the system of equations that

results from a finite element discretisation are obtained using a mathematical

programming procedure based on the solution of a LCP. To achieve this purpose, the

formulation devised by Attard and Tin-Loi (1999, 2005) for the numerical simulation of

fracture in concrete is extended and enhanced to model the fracture in unreinforced

masonry. The advantages of this formulation are that:

x As with the discrete crack models, there is no length scale required and

hence the softening response is only marginally affected by the mesh

used.

x Snap-back of the load deflection path is easily handled.

x Different crack profiles, including curved, can be followed

simultaneously, as well as branching and interacting cracks without

requiring remeshing.

x Bifurcation of the equilibrium path is identified and the path with the

minimum second order work followed. The formulation enables

capturing both symmetric and asymmetric failure modes.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 40

The formulation of Attard and Tin-Loi (1999, 2005) was based on a linear

complementarity formulation as in Bolzon et al. (1995) and used a mathematical

programming algorithm to obtain solutions to a nonholonomic rate form within a quasi-

prescribed displacement approach. The inelastic failure surface of a structure was an

assembled piece-wise linear failure surface. However, compressive failure was not

taken into account. The purpose of this study is therefore to enhance the formulation by

including the compressive failure to be able to completely capture the behaviour of

unreinforced masonry structures.

This chapter begins with an introduction to the basic unit which is adopted as the

major element in the finite element modelling. After that the masonry modelling and

strategies are described. The proposed compression cap which is one of the main

contributions of this study is presented in detail. A criterion for defining the

compression cap is provided. The piecewise-linear constitutive relationships are then

expressed. The two most important components of the constitutive model are the

interface failure surface and the softening law. These components are elucidated. The

structural governing equations are then formulated. The nonholonomic rate formulation

(note that the rate is with respect to displacement, not time) in LCP form is expressed.

The solution algorithm needed to solve the LCP is then outlined. Finally, some

examples to verify and validate the proposed model are given.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 41

3.2 Basic Triangular Element

To model a complete structural system, a triangular element developed by Attard and

Tin-Loi (1999) is utilised in this study as the basic element. Figure 3.3 shows the basic

triangular element.

Interface node
Qs, qs Fiy, uiy
Q n, q n
Fix, uix
Li / 2n

Li

a) Generalised coordinate system b) Global coordinate system

Figure 3.3. Basic triangular element: a) in generalised coordinate system and b) in

global coordinate system.

The basic triangular element is formed by assembling nine constant strain

triangles and condensing out the freedoms at the vertices and the centre, more details

are given in next section. There are two nodes along each of its sides/interfaces. The

position of each interface node is set at Li/2n from the nearest vertex, where Li is the

interface length and n is a chosen number. In this study a value of 10 is set for n

following the original assumption stated in Attard and Tin-Loi (2005) to make the

elastic displacement predictions closely match those from a continuum formulation.

At the interface nodes, generalised interface displacements represented by q i are

defined and correspond to the outward normal q n and tangential q s displacements

(anti-clockwise defined as positive) at each interface node. The conjugate generalised


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 42

interface forces denoted by Qi correspond to the outward normal Qn and shear Qs

forces (see Figure 3.3(a)). Figure 3.3(b) shows the interface forces in global coordinates

designated by Fi corresponding to the forces in x direction Fix and in y direction Fiy

with the conjugate displacements u i , u ix and u iy , respectively.

3.2.1 Formulation of Basic Triangular Element

In this section the constant strain triangle is briefly introduced first as it is used to form

the basic triangular element. The derivation of the characteristic or stiffness matrix,

which relates the nodal displacements to the nodal forces, of the basic triangular

element, is then presented.

Constant Strain Triangle

The constant strain triangle is one of the earliest and simplest finite elements. A

complete formulation of this element can be found in any finite element text book, e.g.

Cook et al. (1989) and Desai and Abel (1971). It can be used to solve problems of either

plane stress or plane strain. This study focuses on the plane stress problem.

Consider a typical constant strain triangle as shown in Figure 3.4. Displacement

at any point is denoted by u(x,y) and is written in terms of displacements in the x, y

coordinate directions, ux and uy, respectively, which can be further approximated and

related to the nodal displacements by means of shape functions as expressed in Equation

(3.1).
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 43

y
u6

3 u5

uy
u2
ux

1 u1 u4

u3
2
x

Figure 3.4. Constant strain triangle.

­°u x ½°
u x, y ® ¾ N(x, y)ua (3.1)
°¯ u y °¿

where N(x,y) is shape function matrix defined by Equations (3.2) to (3.6) and ua is

nodal displacement vector defined by Equation (3.7).

ª N1 0 N2 0 N3 0 º
N(x, y) «0 (3.2)
¬ N1 0 N2 0 N3 »¼

in which

N1
1
2A e
^ x 2 y3  x3 y2  y2  y3 x  x 3  x 2 y` (3.3)

N2
1
2A e
^ x 3 y1  x1y3  y3  y1 x  x1  x 3 y` (3.4)

1
N3
2A e
^ x1y2  x 2 y1  y1  y2 x  x 2  x1 y` (3.5)

1
Ae x 2 y3  x1y 2  x 3 y1  y1x 2  y 2 x 3  y3 x1 (3.6)
2
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 44

ua ^u1 u2 u3 u4 u5 u6`
T
(3.7)

where Ae is the area of the element. For 2-D problems, the relation between strains, H,

and displacements is given by the kinemetic equation for small displacements as

T
°­ wu x wu y § wu x wu y · °½
^ x `
T
 y xy ® ¨  ¸¾ (3.8)
¯° wx wy © wy wx ¹ ¿°

By substituting Equation (3.1) into Equation (3.8), strains can be expressed in terms of

the nodal displacements as

 Bua (3.9)

where

ª wN1 wN 2 wN3 º
« 0 0 0 »
« wx wx wx »
« wN1 wN 2 wN3 »
B « 0 0 0 » (3.10)
« wy wy wy »
« wN1 wN1 wN 2 wN 2 wN3 wN3 »
« »
¬ wy wx wy wx wy wx ¼

or

ª y 2  y 3 0 y3  y1 0 y1  y2 0 º
1 «
B 0 x3  x 2 0 x1  x 3 0 x 2  x1 »» (3.11)
2A e «
«¬ x 3  x1 y2  y3 x1  x 3 y3  y1 x 2  x1 y1  y2 »¼

It can be seen that strains are constant and independent of x and y within the

element, hence the name “constant strain triangle”. For plane stress problems, the stress-

strain relation for an elastic material is given by

^ x `
T
 y  xy De  (3.12)
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 45

where

ª º
«1 Q 0 »
E « »
De «Q 1 0 » (3.13)
(1  Q 2 ) «
«0 0 1  Q »»
¬« 2 ¼»

where E is Young’s modulus and Q is Poisson’s ratio. From the principle of stationary

potential energy, general expressions for the element elastic stiffness matrix, Ke, can be

expressed as

³V B
T
Ke De BdV (3.14)

where V is the element domain. If the element thickness t is constant over the element,

Equation (3.14) becomes

Ke A e tB T D e B (3.15)

Substituting Equations (3.11) and (3.13) into Equation (3.15), the elastic

stiffness matrix of a constant strain triangle which relates the nodal forces to the nodal

displacements can be obtained.

Derivation of Stiffness Matrix of Basic Triangular Element

To form a basic triangular element nine constant strain triangles are assembled and the

freedoms at the vertices and the centre are condensed out, see Figure 3.5.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 46

7 Constant strain triangles


9
6

1 2
3 4

a) Uncondensed triangle b) Condensed triangle

Figure 3.5. Forming of a basic triangular element.

Assembling of nine constant strain triangles produces an element with 20

degrees of freedom as shown in Figure 3.5(a), its elastic stiffness matrix in global

coordinate system, denoted by K cu , can be constructed by superimposing the elastic

stiffness matrices of the individual constant strain triangles which are calculated using

Equation (3.15). The conjugate displacement vector is denoted by ucu . In order to derive

the stiffness matrix of the condensed triangle as shown in Figure 3.5(b), let the equation

K cu ucu Fuc represent the basic relationship of the uncondensed triangle. Let ucu be

^ur uc ` , where ur are the degrees of freedom to be retained


T
partitioned so that ucu

and uc are the degrees of freedom to be eliminated by condensation. Thus K cu ucu Fuc

becomes

ª K rr K rc º ­u r ½ ­Fr ½
«K ® ¾ ® ¾ (3.16)
¬ cr K cc »¼ ¯u c ¿ ¯Fc ¿

The lower partition is solved for uc

uc K cc 1 K cr u r  Fc (3.17)

By substituting uc into the upper partition of Equation (3.16) gives


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 47

K rr
 K rc K cc 1K cr ur Fr  K rc K cc 1Fc (3.18)

or

K uu u Fu (3.19)

Equation (3.19) represents the fundamental relationship of the basic triangular

element or the condensed triangle in global coordinate system, where K u is the elastic

element stiffness matrix, uu is the nodal displacement vector and Fu is the nodal force

vector. To obtain the element elastic stiffness matrix in generalised coordinates, see

Figure 3.6, the relationship between the forces at the interface nodes in global

coordinates Fu and the forces at the interface nodes in generalised coordinates Qu are

given by

AuQu Fu (3.20)

where A u is an equilibrium matrix. The matrix A u is a block diagonal matrix of the

form diag > A1 A1 A2 A2 A3 A 3 @ with the A i matrices representing the

transformation matrices relating the generalised coordinate system to the global

coordinate system. Equation (3.21) shows the expansion form of the matrix A u .
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 48

Q10 3 F10 3
Q7 F8
Q8 F9
Q9 F7
Q12 F10
L3 L3
F11 L2
L2 Q5
Q11 Q6 F6
1 L1 1 L1 F5
F2
Q1
2 F1 F4 2
Q2 Q3
F3
Q4

a) Generalised coordinate system b) Global coordinate system

Figure 3.6. Force components of the basic triangular element: a) in generalised

coordinate system and b) in global coordinate system.

ª ct1 st1 0 0 0 0 0 0 0 0 0 0 º
« st ct1 0 0 0 0 0 0 0 0 0 0 »
« 1 »
«0 0 ct1 st1 0 0 0 0 0 0 0 0 »
« »
«0 0 st1 ct1 0 0 0 0 0 0 0 0 »
«0 0 0 0 ct 2 st 2 0 0 0 0 0 0 »
« »
«0 0 0 0 st 2 ct 2 0 0 0 0 0 0 »
Au «0 (3.21)
0 0 0 0 0 ct 2 st 2 0 0 0 0 »
« »
«0 0 0 0 0 0 st 2 ct 2 0 0 0 0 »
«0 0 0 0 0 0 0 0 ct 3 st 3 0 0 »
« »
«0 0 0 0 0 0 0 0 st 3 ct 3 0 0 »
« »
«0 0 0 0 0 0 0 0 0 0 ct 3 st 3 »
«¬ 0 0 0 0 0 0 0 0 0 0 st 3 ct 3 »¼

where

ct1
x 2  x1 , ct 2
x3  x 2 , ct 3
x1  x 3
L1 L2 L3
(3.22)
st1
y 2  y1 , st 2
y3  y 2 , st 3
y1  y3
L1 L2 L3
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 49

Compatibility conditions between the displacement vector in global coordinates

uu and the displacement vector in generalised coordinates qu can be determined

through the theorem of virtual work ( FuTuu QuTqu ) and Equation (3.20), that is

A uTuu qu (3.23)

Since the equilibrium matrix in Equation (3.20) is invertible and using Equations

(3.19) and (3.23), the basic relationship of the basic triangular element in generalised

coordinates can be obtained as

Suqu Qu (3.24)

where Su is the element elastic stiffness matrix of the basic triangular element in the

generalised coordinate system and can be expressed as


1
Su A u1K u A uT (3.25)

3.3 Masonry Modelling

In this study, masonry is modelled using a micro-modelling approach. Both detailed and

simplified micro-modelling are considered. The detailed micro-modelling enables

analyses of the micro-behaviour of masonry and verifications of the validity of

characterising material properties determined from micro-experimental studies. The

simplified micro-modelling allows simulations of masonry structures of more practical

scale such as shear walls.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 50

3.3.1 Detailed Micro-Modelling

In the detailed micro-modelling, the bricks, the mortar and the brick-mortar interfaces

are all modelled separately. The basic triangular elements presented in Figure 3.3 are

grouped into rectangular zones mimicking the bricks and the mortar. Figure 3.7 depicts

a detailed micro-modelling of masonry comprising two bricks and a mortar joint with a

coarse mesh. Properties are properly assigned to each component. With this approach,

the actual sizes of bricks and mortar can be considered.

Figure 3.7. Detailed micro-modelling of masonry.

3.3.2 Simplified Micro-Modelling

In the simplified micro-modelling, the mortar thickness and the brick-mortar interfaces

are lumped into a zero-thickness interface while the dimensions of the bricks are

expanded to keep the geometry of a masonry structure unchanged. A masonry structure

is thus modelled as a set of masonry units. Each masonry unit is further subdivided into

interior brick elements which have boundaries either representing the mortar interfaces

or internal brick interfaces. The masonry unit is subdivided using the basic triangular

elements demonstrated in Figure 3.3. Figure 3.8 shows a simple model for a single

masonry unit using four basic triangular elements while Figure 3.9 illustrates a

simplified micro-modelling of masonry using the masonry units. In each masonry unit,
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 51

different inelastic constitutive properties are assigned to the mortar interface around the

perimeter of the masonry unit and to the interior brick interfaces. Fracture is restricted

to the horizontal and/or vertical mortar interface and the vertical and/or diagonal brick

interior interfaces.

brick interface

tb + tm

mortar interface

Figure 3.8. Single masonry unit.

Figure 3.9. Simplified micro-modelling of masonry using the masonry units.

Due to the assumption of the zero thickness brick-mortar interfaces, the elastic

properties of the expanded bricks must be adjusted to yield the elastic modulus of the

represented masonry. The adjusted averaged elastic stiffness of the bricks can be

obtained by considering the elastic properties of the two masonry components (brick

and mortar) and the thickness of the mortar if available. With the assumption of stack

bond, i.e. a serial chain connection of the components, and uniform stress distributions

both in the brick and the mortar, the adjusted average elastic stiffness of expanded

bricks can be simply derived from


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 52

EbEm t b  t m G bG m t b  t m
E ba G ba (3.26)
t bEm  t mEb t bG m  t mG b

where Eba and Gba are the adjusted Young’s modulus and adjusted shear modulus of the

expanded bricks, respectively. E and G are the Young’s modulus and the shear modulus,

respectively, and t is the actual thickness. The subscripts b and m denote brick and

mortar, respectively.

In practice, however, it is difficult to determine the actual stiffness of the

masonry components (brick and mortar) because of the water absorption effect of the

brick units within the constructed composite masonry structure. An alternative is to

directly use the masonry stiffness for the adjusted stiffness of the expanded brick units.

3.3.3 Modelling Strategies

In this study, fracture is captured through a constitutive softening-fracture law at the

boundary nodes along the sides of the triangular finite element units. The material

within each triangular finite element unit remains linear elastic if the plasticity

constitutive relationship for the interface forces is softening (see Attard and Tin-Loi

(1999, 2005)). In order to take all basic failure modes into account, the modelling

strategy proposed by Lourenco (1996) is followed. Figure 3.10 shows the basic failure

mechanisms in masonry and the associated point on the failure surfaces proposed in this

study. With an attempt to concentrate most of the damage in the relatively weak joints,

the failure mechanism types (i), (ii), (iv) and (v) are considered to be interface/joint

failure mechanisms while the failure mechanism type (iii) is considered to occur in the

brick unit. A compression cap is included into the joint failure surface to limit the

compressive/shear stress in the interface and to enable the capturing of the diagonal
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 53

tensile cracking of brick units and masonry crushing as failure at the interface. To do so,

nevertheless, a compression cap needs to be included into the original failure surface

proposed by Attard and Tin-Loi (1999, 2005) which only has a tension cut-off to

capture tensile failure and a Mohr-Coulomb friction envelope to represent shear failure.

V Joint failure surface

(i) Joint Tensile Cracking

W W

V Joint failure surface V Unit failure surface

(ii) Joint Slip (iii) Unit Direct Tensile Crack

W W

V Joint failure surface V Joint failure surface

(iv) Unit Diagonal Tension Crack (v) Masonry Crushing

Figure 3.10. Modelling strategy to capture all basic failure modes in masonry.

Failure Surface Compression Cap

A compression cap in the shear compression region of a material’s failure surface was

first introduced by Drucker et al. (1957) for problems in soil mechanics. A spherical

compression cap was introduced in order to describe experimental evidence which

showed that yielding does occur for a state of hydrostatic stress. The compression cap

concept for micro-level failure envelopes for masonry was introduced by Lourenco
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 54

(1996). An elliptical compression cap which had some basis from experimental results

in rock joints subjected to high confining stresses which showed some deviation from

the usual linear Coulomb friction model to a parabolic Mohr failure envelope was

adopted. The micro-level failure envelopes were found to be similar to the macro-level

failure envelopes proposed by Mann and Müller (1982) which were derived from

experiments carried out on shear walls. The shape of the elliptical cap was controlled by

a parameter Css. The square root of Css is equal to the ratio of the masonry compressive

strength f
c to the ultimate shear strength Wu. Higher values of Css are associated with

lower values of the ultimate shear strength. Different values of Css were studied and the

results showed that a value of Css = 4 allowed the cap to approximately fit the ultimate

Mohr-circle. This, however, lead to incorrect values for the shear strength. A higher

value of Css = 9 was used which limited the shear strength to one-third of the masonry

compressive strength. Essentially, the value of Css controlled the intersection of the

compression cap with the Coulomb failure line. However, no clear criterion was

provided to define this intersection point as mentioned in Chaimoon and Attard (2006).

An attempt to identify the point of intersection between the compression cap and the

Coulomb failure line is addressed herein. First the stress state at masonry compressive

failure is examined.

As reviewed in Chapter 2, the compressive strength of masonry is neither due to

brick strength alone nor to the strength of the mortar alone but depends on the

composite nature of the brick and mortar. While the separate mechanical properties, e.g.

elastic modulus and Poisson’s ratio, of brick and mortar, as well as the dimensions of

the brick and mortar joint affect the compressive strength, of importance is also the

confining effect of the brick on the free expansion of the mortar joint under
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 55

compression. Uniaxial compression of masonry leads to an approximate state of triaxial

compression in the mortar joint and of compression/biaxial tension in the bricks. Figure

3.11 attempts to demonstrate the confining effect of the bond between the brick and

mortar joint in two dimensions. The bricks prevent the free expansion of the mortar

joint under compression and hence induce an approximate state of triaxial stress in the

mortar. This increases the apparent failure stress in the mortar.

V
Transverse
tension
Em, Pm Transverse
compression
Eb, Pb

Figure 3.11. Confining effect of bond between mortar and bricks due to differences

of mechanical properties (Mann and Betzler 1994).

In order to gain a better understanding of a state of stresses in brick units and

mortar under compression and to quantify the level of confining stress in mortar joints,

a three dimensional linear elastic analysis was performed on a masonry sample under

uniaxial compressive using the program STRAND 7. The experimental specimen tested

by Vermeltfoort and Van Der Pluijm (1991) was modelled. All the required material

properties were available. The specimen consisted of 5 bricks with 4 mortar joints in

stack bond. The bricks were solid clay bricks fabricated by JOOSTEN with dimensions

of 52u100u210 mm. The mortar proportion by volume was 1:2:9 of cement, lime and

sand, respectively. The brick and mortar compressive strengths were 66 and 3 MPa,

respectively. The total height of the specimen was approximately 312 mm. Figure 3.12

shows the geometry, loading and symmetrical boundary conditions used in the analysis.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 56

Two symmetry planes were exploited, enabling only one fourth of the specimen to be

modelled. The problem was modelled with 20-noded hexahedral brick elements.

Applied load

13 mm
thick
mortar
156 mm

Brick
Symmetrical
plane and
boundary
conditions

110 mm
105 mm

Figure 3.12. Geometry, load and symmetrical boundary conditions provided by

STRAND 7 for masonry uniaxial compressive analysis.

The parameters used in the analysis for the bricks were: Young’s modulus 17500

MPa, Poisson’s ratio 0.15, while for the mortar a Young’s modulus of 2100 MPa and a

Poisson’s ratio of 0.22 were used. The applied load corresponded to the experimental

masonry compressive strength of 11.73 MPa as reported by Vermeltfoort et al. (1993).

The compressive strength reported is much less than the brick compressive strength but

also considerably higher than the mortar compressive strength. Table 3.1 shows the

principal stresses in the mortar joint and brick obtained from the analysis (tension is

taken as positive).
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 57

Table 3.1. Principal stresses obtained from the analysis using STRAND 7.

Material Principal stresses (MPa)

11 (max) 22 33 (min)

Brick 0.80 0.21 -11.73

Mortar -2.58 -2.88 -11.73

These results agree with Hilsdorf (1969) in that the mortar joint is found to be in

a state of approximate triaxial compression while the brick is subjected to compression

combined with biaxial tension (see Table 3.1). The mortar joint is subjected to a

confining stress of approximately 2.6 to 2.9 MPa and this explains why the masonry

compressive strength is much higher than its weakest component that of the mortar. The

mortar can bear much higher compression due to internal confining stresses. The state

of stresses in the mortar joint given in Table 3.1 were further investigated by examining

the Mohr-circle corresponding to the calculated principal stresses and superimposing

this on the Mohr-Coulomb failure surface as shown in Figure 3.13 (the tension and

shear failure properties were provided by Lourenco (1996)). The Mohr-circle

tangentially intersects the Mohr-Coulomb failure line at point 1 which represents

Coulomb type failure. Point 2 represents the compressive strength of the mortar joint

under confinement and is equivalent to the compressive strength of the masonry. A two

dimensional analysis of a masonry structure using zero-thickness interfaces will not

reproduce the three dimensional confining stresses. Hence, to represent mechanism

types (iv) and (v) as shown in Figure 3.10 at least points 1 and 2 should be included in

the failure surface of the modelled masonry interfaces. This implies that the intersection

of the compression cap with the Mohr-Coulomb line is point 1. Point 2 clearly
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 58

corresponds to the masonry compressive strength. Lourenco’s (1996) compression cap

with a Css = 9 also intersects the Mohr-Coulomb failure line at point 1, see Figure 3.13.

Mohr-Coulomb
failure surface I
Lourenco’s
elliptical line,
Css=9 Mohr-circle

Wu 1

The proposed
compression cap
c
J 2
V
ftc Vmax Vmin
tension compression

Figure 3.13. Failure surface showing the Mohr-circle, the failure surface of

Lourenco (1996) and the proposed linear compression cap in stress space.

It is proposed here to use a linear compression cap connecting points 1 and 2, as

shown in Figure 3.13. The angle J shown in Figure 3.13 can be derived from the

geometry of the failure surface and can be expressed as (in radians)

S I
J  (3.27)
4 2

where I is the mortar friction angle. Hence, to define the proposed linear compression

cap only two material properties are required, the masonry compressive strength and the

friction angle of the mortar. The masonry compressive strength corresponds to point 2

while the friction angle is used to calculate the angle J defining point 1 on Figure 3.13.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 59

3.4 Constitutive Models

To be able to model structural behaviour, three basic relations comprising equilibrium,

compatibility and constitutive relations are required. The most important component is

the constitutive model which is the mathematical description of material behaviour. In

this study, the formulation is developed in a plasticity framework. The piecewise-linear

constitutive laws with interacting yield planes developed by Maier (1970) are followed.

In a discrete system, the material behaviour is directly represented by the behaviour of

the basic triangular element which is described by the generalised interface

displacements qu and generalised interface forces Qu as elucidated in Section 3.2.

The interface displacements qu are taken to be the sum of elastic qeu and

plastic/ inelastic qpu components, hence

qu qeu  qpu (3.28)

The elastic interface displacements qeu are further related to the interface forces Qu

through

Qu Suqeu (3.29)

where Su is the elastic stiffness matrix of the basic triangular element in generalised

coordinate system defined in Equation (3.25). Figure 3.14 shows diagrammatically the

relationships defined in Equations (3.28) and (3.29). It is assumed that there is no

damage (degrading of the instantaneous unloading stiffness) through the history of

loading and that the instantaneous unloading stiffness is equal to the initial secant

stiffness.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 60

Qu

Su
Su 1
1
qu
qpu qeu

Figure 3.14. Unloading constitutive relationship.

The inelastic components qpu are given by

qpu NuO u (3.30)

for an associated flow rule and by

qpu Vu O u (3.31)

for a non-associated flow rule, where N u , Vu and O u are the interface normality

matrix, the dilatancy matrix and the interface multiplier vector (analogous to plastic

multipliers used in conventional plasticity) of the basic triangular element, respectively.

3.4.1 Piece-Wise Linear Inelastic Failure Surface

At the level of the interface nodes, the inelastic failure surface is a function of the

normal and shear interface forces as opposed to conventional continuum models which

are based on stresses. Figure 3.15 demonstrates a typical interface inelastic failure

surface that includes a tension cut-off for tension failure, the classical Mohr-Coulomb

type law for shear failure and the purposed compression cap for compression failure.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 61

Qs Ni
I
Os1 Qcy
\
cLiti/2
Qsy Qi Oc1

I Qr
J
Qn Ot Qty

Residual failure surface

Oc2

Initial failure surface


\
Os2

Tension (+) Compression (-)

Figure 3.15. Piecewise-linear failure surface in generalised force space.

Each of the failure planes is associated with an interface multiplier. For the

nodal interface inelastic failure surface shown in Figure 3.15, O i collects the interface

multipliers into an interface vector given by

^O t O c1 O c2 `
T
i O s1 O s2 (3.32)

where Ot is the multiplier associated with the tension cut-off; Os1 and Os2 are the

multipliers associated with the Mohr-Coulomb portions of interface inelastic failure

surface; Oc1 and Oc2 are the multipliers associated with the compression cap. In Figure

3.15, Q i represents the resultant force vector at an interface node at any stage of the

analysis, Qty is the tensile inelastic failure force, Qsy is the shear inelastic failure force,

Qcy is the compressive cap inelastic failure force and Qr is the residual compressive
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 62

inelastic force. The inelastic failure forces and residual forces are grouped into an initial

inelastic failure vector ri and a residual force vector R i , respectively, defined by

^Q Qcy `
T
ri ty Qsy Qsy Qcy (3.33)

^0 Qr `
T
Ri 0 0 Qr (3.34)

The interface failure surface is defined by the inelastic failure vector ri and the

orientations of the normals to each of the failure planes. The interface normality matrix

N i contains the orientations of the normal to each failure plane. The dilatancy matrix

Vi defines the flow rule for the interface irreversible deformation multipliers. Both

these matrices are defined, respectively, by

ª0 cos I  cos I cos J  cos J º


Ni «1 sin I sin I  sin J  sin J » (3.35)
¬ ¼

ª0 cos \  cos \ 0 0 º
Vi «1 sin \ sin \ 1 1» (3.36)
¬ ¼

The angle I is the friction angle, \ is the dilatancy angle and J is the angle defining the

compression cap slope calculated using Equation (3.27). Clearly, the flow rule is

“associated” when inelastic failure is initiated by tension and “non-associated” when

initiated by shear if the friction and dilatancy angles are different. The flow rule for the

compression cap is also non-associated and here we assume that initiation of failure on

the compression cap results in irreversible deformations in the normal direction towards

the interface (compression).


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 63

The tensile inelastic failure force Qty is estimated from the product of the

material tensile strength f tc obtained from a pure tension test, and half the interface

length Li (see Figure 3.3(a)) and the specimen thickness ti. That is,

f tcLiti
Q ty (3.37)
2

This is an average measure of the inelastic failure capacity since the tractions along the

interface will not normally be uniform. Similarly, Qsy, Qcy and Qr are defined by

c cos ILiti f cc sin JLiti f r sin JLiti


Qsy , Qcy , Qr (3.38)
2 2 2

where c is the cohesion, fc


is the masonry compressive strength and fr is the residual.

3.4.2 Softening Laws

At the interface nodes, the softening constitutive laws for the interface forces are shown

in Figure 3.16. A single-branch softening curve is adopted for tensile and shear failure

as shown in Figures 3.16(a) and 3.16(b), respectively. A single-branch softening curve

with a residual level is assumed for compression failure as shown in Figure 3.16(c). Otc,

Osc and Occ are the critical opening displacements for cracking, sliding and compression,

respectively.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 64

Qn Qs Qn

Softening slope Softening slope Softening slope


Qty Qsy Qcy
= -Qty/Otc = -Qsy/Osc = -(Qcy-Qr)/Occ

Elastic Elastic
unloading unloading Qr
Elastic
unloading
Ot Os Oc
Otc Osc Occ
(a) For tensile mode (b) For shear mode (c) For compression mode

Figure 3.16. Interface softening law for each mode.

The multipliers O i can only have positive values along the descending branch.

Elastic unloading is allowed from the descending softening branch. Once the critical

displacement is reached, the corresponding multiplier can go either forwards or

backwards freely. The critical displacements are approximated here by

2G fI 2G fII 2G fc
O tc , O sc , O cc (3.39)
f tc c cos \ f cc  f r

where G fI , G fII and G cf are the mode I, mode II and compressive fracture energy,

respectively. The derivation of O sc is depicted in Figure 3.17. When pure shear failure is

considered, see Figure 3.17(a), the mode II fracture energy is defined and assumed

numerically to be the area beneath the curve in Figure 3.17(b). With this assumption O sc

can be expressed as in Equation (3.39).


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 65

Os 
\
c
c

GfII
 scos\
sccos\
Tension (+) Compression (-)

(a) Pure shear failure in stress space (b) Description of G fII in the model

Figure 3.17. Definition of O sc

The evolution of the inelastic failure surface is represented through an interface

hardening (softening) matrix H i . If the multipliers have not exceeded their critical

values (given in Equation (3.38)) then the general form of the matrix H i is defined by

ª Q ty Q ty Q ty º
«  E  E 0 0 »
« O tc O sc O sc »
« Qsy Qsy »
« E  0 0 0 »
« O tc O sc »
« Q Qsy »
Hi «  sy E 0  0 0 » (3.40)
« O tc O sc »
« »
« 0 Qcy
0 0  0 »
« O cc »
« »
« Qcy »
« 0 0 0 0 
¬ O cc »¼

where E is an interaction parameter with a typical value of 0.95, see Attard and Tin-Loi

(2005) for a discussion. The off-diagonal terms in the matrix above represent interaction

between the tension and shear failure planes. If E is taken as unity the inelastic failure

surface contracts in an isotropic manner. Here, there is no interaction between the shear
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 66

and compression failure planes. The evolution of the interface inelastic failure surface

can be represented by the vector  i given by

i ri  H i  i  R i (3.41)

3.5 Structural Governing Equations

3.5.1 Basic Relations

The governing relations for a complete structure are formulated and assembled

following the procedures in Attard and Tin-Loi (2005) and Chaimoon and Attard (2006)

and are based on the classical approach developed by Maier (1970). All quantities are

all assembled for the complete structure. Consequently, the relationship between the

structure global force vector F and the structure generalised force vector Q is given by

F AQ (3.42)

where A is the assembled structure equilibrium matrix. Compatibility conditions

between the structure global displacement vector u and the structure generalised

displacement vector q can be expressed as

A Tu q (3.43)

And the relationship between the structure elastic displacement vector qe and the

structure generalised force vector Q is

Q Sqe (3.44)
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 67

in which S diag >S1 , S 2 ...S m @ is the assembled block-diagonal matrix of “m” (basic

triangular) element elastic stiffness matrices. For the sake of generality the non-

associated flow rule will be assumed in the following derivations. According to

Equations (3.28), (3.31) and (3.43), the structure elastic interface displacements qe can

be expressed as

qe A Tu  VO (3.45)

Combining Equations (3.42) and (3.44), and using Equation (3.45), we have

F AQ ASqe ASA Tu  ASVO Ku  ASVO (3.46)

or

u K -1F  K -1 ASVO K -1F unit  DO ue  up (3.47)

where ue and up are the elastic and plastic/inelastic components of u , respectively, 

is a scalar load factor, F unit is the global structure load vector due to a unit load factor,

K is the both the secant and tangent structure stiffness matrix and D K -1 ASV for

non-associated flow rule.

To determine the elastic and plastic/inelastic components of Q , denoted by Qe

and Qp respectively, we use Equations (3.44), (3.45) and (3.47), hence

Q SA T K -1F unit  (SA T K -1 AS  S)VO Qunit


e  ZVO Qe  Qp (3.48)

where Qunit
e is the elastic component of Q due to a unit load factor. Applying the

equilibrium equation described in Equation (3.42) and employing Equation (3.48), we

find that
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 68

AQp AZVO Kup  ASqp 0 (3.49)

since AZ 0 . The set of inelastic generalised interface forces Qp define a set of forces

in equilibrium with zero applied loads.

3.5.2 Nonholonomic Rate or Finite Incremental Formulation

The yield surface is approximated by a piecewise-linear inelastic failure surface. The

inelastic failure is activated if the interface generalised force vector Q reaches the

inelastic failure surface, see Figure 3.18. The projections of Q in all phases must,

therefore, satisfy the following condition.

0t M N TQ - r - H A  t 0 (3.50)

which is in holonomic form and can be written in nonholonomic rate form as

0 t M  - H A  t 0
N TQ (3.51)

where M is a potential function vector, r is the vector of initial inelastic failure values

and H is the hardening/softening matrix. Also given in Equation (3.50) is the

complementarity condition between the inelastic multiplier vector and the potential

function vector MT  0 which indicates that the multiplier vector O and the function

vector M must be orthogonal. If the ith inelastic failure plane is active then i = 0 while

for the non-active planes the corresponding multipliers must be zero.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 69

Q2
NO

VO

Q
r

NTQ

Q1

Figure 3.18. Definition of yielding and unloading for piecewise-linear failure

surface.

According to Equation (3.50) and using Equation (3.48), we can write the

yielding and unloading conditions for the complete structure as

0t M N TQeunit - r  N T ZV - H  A  t 0
(3.52)
N TQeunit - r  W A  t 0

Equation (3.52) represents the holonomic relations in total quantities. In order to

capture critical events such as unloading and the start of a fully developed crack, a

nonholonomic problem must be formulated and solved. This is can be cast in terms of

“active” variables (active multipliers, etc.) in finite incremental form using Equation

(3.52). Active variables pertain to those points on either the descending branch or on the

horizontal branch (see Figure 3.16) while points on the unloaded branch are termed

“inactive”. The active set also needs to distinguish between these two types of active

variables, since for a softening branch 'O


O is nonnegative whereas it is free (i.e. can take
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 70

negative or positive values as required by a crack opening or closing) on the horizontal

branch.

In the following, the subscripts a and b, are used to refer to the active set of

plastic multipliers on the descending branch and the active set on the horizontal branch,

respectively. The genetic finite step complementarity problem to be solved requires

evaluation of quantities pertaining to both sets. Let the increment of the plastic

^'O a 'O b ` . Thus the finite incremental form


T
multipliers be partitioned so that 'O

of Equation (3.52) becomes

­ 'Ma ½
­ N TQunit
° e ½° ª W * *
Wab º ­ 'O a ½
0t ® ¾ ' ® T unit ¾ « ¾ A ' t 0
a aa
* »®
(3.53)
¯ 'Mb ¿ °¯ N Qe °¿ ¬ W
b
*
ba Wbb ¼ ¯'O b ¿

where the subscripting indicates an appropriate subset of the relevant quantity, '

denotes a finite increment and the superscript * designates the current value. The lower

partition of Equation (3.53) must be zero as the failure planes corresponding to the

active set b are always active, thus 'O b can be solved in terms of 'D and 'O a .

'O b *

 Wbb
1
 N Q
T unit
e b
 Wba
*
'O a (3.54)

Substituting Equation (3.54) into the upper partition of Equation (3.53), gives

'Ma
­

 ® N TQunit
¯
e a
 Wab
*

*
Wbb N Q
1
T unit
e b

1

Waa*  Wab
* *
Wbb
1
*
Wba ½
'O a ¾
¿
'Ma
T
'Ma d 0 'O a t 0 'O a 0
(3.55)

when { 'O b } is the null set, Equation (3.55) becomes


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 71

­ ½
'Ma
 ® N TQeunit
¯
a

1

Waa* 'O a ¾
¿ (3.56)
'Ma
T
'Ma d 0 'O a t 0 'O a 0

Both governing equations, Equations (3.55) and (3.56), are in the standard LCP form

which is commonly expressed as

z p  Mx t 0 xt0 zTx 0 (3.57)

3.5.3 Quasi-Prescribed Displacement Control

To be able to simulate the complete responses of a structure, Equation (3.52) will be

recast in quasi-prescribed displacement control which maintains proportional loading.

The displacement vector defined in Equation (3.47) is rewritten as

u Duunit
e  DO (3.58)

where uunit
e is the elastic displacement vector for a unit load factor. Further, vector u

can be split into a scalar term ur representing the displacement at a control point and a

vector us such that

­u r ½ ­° u erunit  Dr O ½°
u ® ¾ ® unit ¾ (3.59)
¯us ¿ °¯ues  Ds O ¿°

where u erunit is the r-th term of uunit


e and Dr is the r-th row of D . The upper partition is

solved for the load factor.

ur 1
 unit
 unit Dr O   Dcr O (3.60)
u er u er
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 72

where  is a control displacement factor. Substituting Equation (3.60) into Equation

(3.52) provides the finite incremental form for the potential function vector M under

quasi-prescribed displacement control, or

­ ½
0 t 'M  ®N TQeunit 
1
W*  N TQeunit Dcr 'O ¾ A ' t 0 (3.61)
¯  ¿

The necessary modification can also be applied to Equations (3.55) and (3.56).

3.6 Solution Strategies and Algorithm

From Equation (3.61), the LCP is given by

z p  Mx t 0 xt0 zTx 0
z  'M x 'O (3.62)
p  N TQunit
e M N Q
T unit
e Dcr  W*
The problem is solved in incremental steps as a series of LCPs. For a LCP as

expressed in Equation (3.62), unique solutions are guaranteed if the M matrix is positive

definite and standard algorithms such that of Lemke (1965) can be used. The procedures

proposed by Attard and Tin-Loi (2005) are followed herein. When the M matrix is not

symmetric, the symmetric part of the M matrix is checked for positive definiteness.

When the M matrix is not positive definite, a multiplicity of solutions is possible. For

problems which involve a large number of variables either the strategy outlined in Tin-

Loi and Tseng (2003) or a single event by event strategy can be employed. When

multiple solutions are detected, the equilibrium solution which provides the minimum

increment in external work is taken as the critical solution. This approach becomes

important when bifurcations in the equilibrium path exist. If the solution algorithm is
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 73

restricted to only a single event at each step (simultaneous points reaching failure

excluded), the number of possible multiple solutions to the equilibrium path is reduced.

This is a single event by event strategy. Real structures with imperfections could be

argued exclude simultaneous inelastic failure produced by symmetry. When several

locations within a structure simultaneously reach inelastic failure, the minimum work

would be done if only one location softens and the rest elastically unload (excluding the

solution where all elastically unload). For large problems, the single event by event

strategy is adopted here. At each event, a set of active inelastic multipliers is maintained

and updated, with unloading failure points removed from the active set.

The steps in the solution algorithm are

i) The initial inelastic failure set of multipliers is determined from

§ r j ·
K0 min ¨ T unit ! 0¸ (3.63)
¨ N Q j ¸
© e ¹

where K0 is the initial displacement factor and j is a member in the potential

set. Equation (3.63) is used to identify a set of initial active multipliers “x”

and an inactive set “y”. The initial values for the potential function are then

M0 K0 N TQunit
e -r (3.64)

and the initial values for the evolution of the inelastic failure surface vector

are set equal to  0 r  R . The first event is taken as the initial inelastic

failure.

ii) To reduce the storage space, the elements associated with the active set are

only required in the formation of the W* and Dcr matrices. These matrices
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 74

are assembled at each increment. The p x and M xx matrices are determined

for the active set “x”. The symmetric part of the M xx matrix is then checked

to see if it is positive definite. For the active set, Equation (3.61) becomes

0 d -'M p x  M xx 'O A ' t 0 (3.65)

As p  N TQeunit , the increment in the control displacement factor  is

initially set to unity. If the M xx matrix is positive definite, Lemke (1965)’s

routine is used to solve the LCP for a unique solution. If no solutions exist,

then the possibility of snapback is checked. This is done by solving the LCP

with  = -1 .

When the M xx matrix is not positive definite, an enumerative procedure

can be employed to check for bifurcation of the equilibrium path and

capture possible multiple solutions. This is done for both  = +1 and -1.

When multiple solutions exist, a bifurcation has been encountered and the

solution which provides the minimum increment in external work is taken as

the critical solution. This is seen as very important when investigating

softening and especially so for interacting and/or branching cracks. To

determine the increment in the external work, the load factor increment is

first calculated from

' '  Dcr 'O (3.66)

The displacement increments conjugate to the load freedoms are then

computed as well as the external increment in work. Total unloading of all

multipliers (total elastic unloading) is excluded from the solution set. When
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 75

all the solutions provide positive increments in the external work, the

solution corresponding to the minimum increment is chosen. When

solutions provide negative increments in external work, the critical solution

corresponds to the maximum increment.

iii) The load path is traced by determining events corresponding to either the

activation of the inelastic failure surface or an interface inelastic failure

surface contracting to zero/residual value (corresponding to unrestrained

movement). Each event is linear in 'O . The control displacement increment

for the next inelastic failure event is hence calculated from

§ M j ·
'Knext yield min ¨
¨ 'M j ¸¸
(3.67)
© ¹

where j is a member in the inactive set. The control displacement increment

required for the next inelastic failure surface to contract to zero/residual

value is determined from

§ [ j ·
min ¨ *
¨ H j,: 'O ¸¸
critical (3.68)
© ¹

where j is a member in the active set on the descending branch and : are all

member of 'O . The critical displacement increment is determined from the

minimum of Equations (3.67) and (3.68). If this increment is associated with

a fully contracted inelastic failure surface, the elements of the row and

column of the hardening/softening matrix H associated with the contracted

inelastic failure surface are set to zero. At each event, a set of active

multipliers is maintained and updated, with points unloading removed from


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 76

the active set. Unloading is detected when the increment to a multiplier is

zero.

3.7 Validation

The proposed formulation is validated and verified by comparing the results with

available experimental and numerical results. Some examples, including direct tension,

micro-shear test and three-point bending of masonry panels, have been studied in Attard

et al. (2007) where only tensile and shear failure were considered. Shear walls under

shear and compression loading where all modes of failure can govern the structural

response are investigated herein to verify and validate the purposed compression cap

model. A computer program in MATLAB was written to perform the fracture

simulations. Flow chart of the MATLAB program and main MATLAB codes are

provided in Appendix B. To show the capability and limitation of the proposed model,

experimental results on simple masonry panels under uniaxial compression are studied

first.

3.7.1 Simulation of Masonry under Uniaxial Compression

The experimental work by Vermeltfoort and Van Der Pluijm (1991) on simple masonry

walls under uniaxial compression, discussed in Section 3.3.3 in regard to the need of a

failure surface compression cap, is simulated using the proposed model. The geometry

and boundary conditions used for the simulation are shown in Figure 3.19 for the five

brick case. Walls with two bricks and 10 bricks are also considered.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 77

The basic 312 mm


triangular
element

210 mm

Figure 3.19. Geometry modelling and boundary conditions used for the analysis of

masonry compression test carried out by Vermeltfoort and Van Der Pluijm (1991).

The simplified micro-modelling approach described in Section 3.3.2 is adopted

for this purpose. Each masonry unit is subdivided into 16 basic triangular elements. No

brick failure is allowed in the simulation so as to study the activation of the compression

cap in the mortar interface. Adjusted elastic material properties are required for this

modelling approach as discussed in Section 3.3.2. The adjusted Young’s modulus for

the masonry is taken as 8000 MPa while the Poisson’s ratio is set at 0.15, as reported by

Vermeltfoort et al. (1993). Table 3.2 lists the parameters used for the mortar interface.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 78

Table 3.2. Inelastic properties for the mortar interface used for the analysis of

masonry compression test carried out by Vermeltfoort and Van Der Pluijm (1991).

Tension Shear Compression

f tc G fI c tanI tan\ G fII f cc G cf fr

(MPa) (Nmm/mm2) (MPa) (Nmm/mm2) (MPa) (Nmm/mm2) (MPa)

0.25 0.024 0.35 0.75 0.0 0.167 11.73 14.91 11.73/3

The predicted masonry compressive strength is found to be equal to the

experimental result of 11.73 MPa, as expected and as shown in Figure 3.20

(compression is taken as positive). The masonry compressive strength is captured

through the activation of the compression cap in the horizontal mortar interfaces. The

effect of specimen height represented by varying the number of bricks is also

investigated to demonstrate that the post-peak stress-displacement response is not

affected by the height of the specimen. The resulting stress-strain diagrams are plotted

in Figure 3.20(a) where the stress-strain curves are the same in the pre-peak regime but

beyond peak, the slope of the descending stress-strain branch is affected by the height of

the wall. The stresses versus post-peak displacements are plotted in Figure 3.20(b) and

show that the post-peak curves are almost the same. The model is therefore able to

capture the post-peak behaviour reasonably well but does not display non-linear pre-

peak behaviour. This is due to the adoption of the single-branch softening curve without

hardening behaviour (before peak). However, the aim of this study is to predict the

behaviour of shear wall problems and the simple assumption is still adopted.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 79

16 16
2 bricks 2 bricks
12 5 bricks 12 5 bricks
10 bricks 10 bricks
Stress (MPa)

Stress (MPa)
8 8

4 4

0 0
0 0.005 0.01 0.015 0.02 0 0.5 1 1.5 2
Strain Post peak displacement (mm)

(a) Stress-strain diagram (b) Stress-post peak displacement diagram

Figure 3.20. Results showing effect of specimen height obtained from the analysis

of masonry compression test; (a) Stress-strain diagram; (b) Stress-post peak

displacement diagram.

3.7.2 Simulation of Masonry Shear Walls

Shear wall tests carried out by Vermeltfoort et al. (1993) are simulated here to study the

performance of the proposed model for the case of shear compression. Vermeltfoort’s

specimens had a width/height ratio of 0.99 (990×1000 mm). The walls were built with

18 courses (16 courses were active and 2 courses were clamped in steel beams). The

bricks were Joosten solid clay bricks (dimensions 204×98×50 mm) and a 10 mm thick

mortar joint was used. The distance measured between the mortar joints above the

bottom layer of bricks and below the top layer of bricks was approximately 1000 mm.

The mortar was low strength and had a composition of 1 part cement to 2 parts lime to 9

parts sand, by volume. Three different vertical pre-compression distributed loads of

0.30, 1.21 and 2.12 MPa were first applied to the top of walls. These pre-compression

loads are equivalent to a total vertical pre-compression load of 30, 120 and 210 kN,
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 80

respectively. Monotonically increasing horizontal loading was then applied at the top of

the wall through a horizontal upper beam. Three vertical jacks were used to keep the

upper beam in a horizontal position (see Figure 3.21).

jacks 3 and 4 jack 2

jack 1

jack

front view

1 4
2
3

top view

Figure 3.21. Shear wall test-setup (Vermeltfoort et al. 1993).

The reported behaviour of the walls under the three pre-compression loadings

was similar, see Figure 3.22. For the lowest pre-compression load of 30 kN (two tests

were successfully carried out identified as walls J4D and J5D), the deformation

behaviour of the tested walls was characterized by an initial horizontal tension crack

that grew along the bottom and top of the wall. For all the tested walls, a diagonal

stepped shear crack developed which under increasing deformation led to collapse of

the wall. There were also some vertical cracks in the brick units and crushing at the

compressed toe of the wall.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 81

(a)

J5D J4D Compressive failure


Experimental (30 kN) Numerical (30 kN)

(b)

Compressive
failure

Experimental (120 kN) Numerical (120 kN)

(c)

Compressive
failure

Experimental (210 kN) Numerical (210 kN)

Figure 3.22. Comparison of the experimental and numerical crack patterns for

each case of the shear wall problem.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 82

For the numerical analyses, as described in Chaimoon and Attard (2006),

Chaimoon and Attard (2004) and Attard et al. (2004), in order to simulate the

experimental results the loading conditions and confinement control through the upper

loading beam were identified as very important and proved to be the most difficult

aspect of the simulation to model, as the upper beam was not actually maintained in a

horizontal position throughout the test as noted by Van Zijl et al. (2001c). Furthermore,

the bending of the top beam was not measured hence the actual stiffness of upper beam

could not be estimated. As a result, different finite element models for the loading

conditions have been adopted by different researchers. Lourenco (1996) and Chaimoon

and Attard (2006) modelled the top boundary with rollers based on the assumption that

the bottom and top boundaries are always horizontal and precluding any vertical

movement, while Giambanco et al. (2001) introduced a spring between the rollers and

the top brick course. Attard et al. (2004) and Chaimoon and Attard (2004) applied a

layer of soft material placed between the rollers and the horizontal loading beam.

In the present study, similar loading and boundary conditions are adopted to

those used by Lourenco (1996). Since the stiffness of the upper loading beam was not

known and the loading configuration did not restrain vertical deformation a zero

dilatancy angle was adopted. Figure 3.23 presents the finite element mesh, the model

geometry, the boundary conditions and loading. The simplified micro-modelling

approach described in Section 3.3.2 is also adopted. Each masonry unit is subdivided

into 16 basic triangular segments. As all failure modes described in Section 2.4 would

be presented, the interface failure surface is modelled using a Mohr-Coulomb failure

surface with a tension cut-off and a compression cap. In addition, to be able to represent

cracking of the brick units, the failure surface for the brick units is represented by Mohr-
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 83

Coulomb failure surface with a tension cut-off. It is noted that only vertical brick

cracking is considered here. Cracking is not permitted in the brick diagonal interfaces.

Pre-compression load

70 mm
Loading
steel beam

1000 mm (a)

70 mm
Steel beam

990 mm

Horizontal
load

(b)

Figure 3.23. Geometry modelling, boundary conditions, mesh and loads for shear

wall problems: (a) phase 1 – pre-loading; (b) phase 2 – horizontal loading.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 84

First of all, the masonry Young’s modulus is estimated. As mentioned

previously this can be either estimated using Equation (3.26) or by adopting measured

masonry properties. The individual properties of brick and mortar joint provided by

Lourenco (1996) are employed. Table 3.3 gives the estimated Young’s modulus with

Eba1 based on Equation (3.26) and Eba2 estimated using the force-displacement

experimental results which included shear effects. The values estimated using the

experimental results are utilised here.

Table 3.3. The adjusted model properties used for the shear wall problems.

Pre-load (kN) Eba1 (MPa) Eba2 (MPa) Q (Poisson’s ratio)

30 3800 3150 0.14

120 4700 3900 0.11

210 3800 3150 0.14

Some of the inelastic properties used by Lourenco (1996) for the joint interface

and brick can be found in Tables 3.4 and 3.5, where f tc refers to the tensile strength, c

is the cohesive strength, f cc is the compressive strength, I is the friction angle, \ is the

dilatancy angle, G fI is the mode I fracture energy, G fII is the mode II fracture energy

and G cf is the compressive fracture energy.

As mentioned earlier, because of the modelling of the upper boundary a zero

dilatancy for the mortar interface is adopted. Several parameters in Tables 3.4 and 3.5

particularly the inelastic properties for the brick including the cohesion, friction angle

and mode II fracture energy, needed for this study had to be estimated. A sensitivity

analysis on these parameters was performed for the case of the 30 kN pre-load, with the
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 85

results presented in Figure 3.24. The base parameter set for the brick cohesion, friction

angle and mode II fracture energy are given in Table 3.5. It is noted that the dilatancy

angle of the expanded brick units was assumed to be zero.

As only the brick properties are varied in Figure 3.24, failure in the brick units

starts after the peak load since the pre-peak responses are identical. For the range of

brick inelastic parameters studied, the simulation behaviour is more brittle than the

experimental observations. The inelastic properties defining the Mohr-Coulomb failure

for the brick have a significant influence on the descending branch of the load

deformation response. Increasing the cohesion and mode II fracture energy increases the

ductility while increasing the friction angle has the opposite effect. The simulation

matches the pre-peak experimental response well but not the descending branch, only

matching the general trend. This may be related to the difficulty in modelling the

experimental boundary conditions and the need to estimate some of the required

material parameters.

Table 3.4. Inelastic properties for the mortar interface adopted for shear wall

problems.

Pre- Tension Shear Compression

load f tc G fI c tanI tan\ G fII f cc G cf fr

(kN) (MPa) (Nmm/mm2) (MPa) (Nmm/mm2) (MPa) (Nmm/mm2) (MPa)

30 0.25 0.018 1.4 f tc 0.75 0.0 0.125 10.50 5.0 f cc /7

120 0.16 0.012 0.050 11.50 5.5

210 0.16 0.012 0.050 11.50 5.5


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 86

Table 3.5. Inelastic properties for the brick interface adopted for shear wall

problems.

Tension Shear

f tc G fI c tanI tan\ G fII

(MPa) (Nmm/mm2) (MPa) (Nmm/mm2)

2.0 0.08 1.4 f tc 1.0 0.0 0.50

60
c = 3.2

50
c = 2.0 J5D
c = 2.8
Horizontal Load (kN)

40 c = 2.4
J4D

30

20

Experimental
10
Numerical

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Horizontal Displacement (mm)

(a) Effects of brick cohesion


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 87

60
I = 30q

50

I = 60q I = 40q J5D


I = 45q
Horizontal Load (kN)

40 I = 50q
J4D

30

20

Experimental
10
Numerical

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Horizontal Displacement (mm)

(b) Effects of brick friction angle

60

50

GfII = 1.0 J5D


GfII = 0.1
Horizontal Load (kN)

40
GfII = 0.5 J4D

30

20

Experimental
10
Numerical

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Horizontal Displacement (mm)

(c) Effects of brick mode II fracture energy

Figure 3.24. Sensitivity analysis results of shear wall with 30 kN pre-load.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 88

Using the parameters listed in Tables 3.4 and 3.5, Figure 3.25 shows the

comparison of results of the simulation with the experimental results and with the

simulations of Lourenco (1996). As expected, higher pre-compression loads lead to

increasing strength of the walls. The comparisons for all cases are in reasonable

agreement with the experimental results, particularly the case for the 120 kN pre-

compression. In the case of the 210 kN pre-compression, Figure 3.25(c), the pre-peak

and post-peak trends are reproduced well, but the peak load is approximately 15%

greater than the experimental value. This was also the case with Lourenco’s prediction.

Again, the level of uncertainty in the material inelastic properties may be the cause of

this discrepancy.

60

50
J5D
Horizontal Load (kN)

40
J4D

30

20
Experimental
10 Lourenco (1996)
This study

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Horizontal Displacement (mm)

(a) For case of 30 kN pre-compression load


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 89

100

80
Horizontal Load (kN)

60

40

Experimental
20
Lourenco (1996)
This study

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Horizontal Displacement (mm)

(b) For case of 120 kN pre-compression load

120

100
Horizontal Load (kN)

80

60

40

Experimental
20 Lourenco (1996)
This study
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Horizontal Displacement (mm)

(c) For case of 210 kN pre-compression load

Figure 3.25. Comparison of load-displacement responses for the shear wall

problems.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 90

The crack patterns and scaled deformed meshes obtained from the simulations

for each of the pre-compression load cases are illustrated in Figures 3.22 and 3.26,

respectively. For all cases, the main failure characteristics are captured well including

the stepped diagonal shear crack and compressive failure at the compressed toes.

Horizontal tension cracks are only clearly observed for the case of the 30 kN pre-

compression load and are less visible in the other pre-compression cases.

In the experiments the vertical reaction was also measured for the case of 30 kN

pre-compression. A comparison between the experimentally measured vertical reaction

and the results of the simulation is given in Figure 3.27. Figure 3.27(a) illustrates the

evolution of the vertical reaction under increasing horizontal displacement indicating

dilatant behavior. The experimental results show that the vertical reaction is almost

constant at the initial state indicating no dilatancy. The reaction then gradually increases

with increasing horizontal displacement with dilatant effects coming into play, until the

maximum value of the reaction is reached. This behavior can be reasonably captured by

the proposed model. It is noted that the reaction drop occurs due to progressive

compression failure at the toe. The predicted reaction is less than the experimental

observations and those predicted by Lourenco (1996). Again this is attributed to the

assumed values of the unknown parameters used.


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 91

(a) Pre-compression = 30 kN (scale = 30)

(b) Pre-compression = 120 kN (scale = 30)

(c) Pre-compression = 210 kN (scale = 30)

Figure 3.26. Scaled deformed meshes obtained from the analysis of shear walls.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 92

The redistribution of vertical stresses in the bottom support represented by the

eccentricity of the vertical reaction with respect to the middle line of the wall is also

compared and illustrated in Figure 3.27(b). The experiment results show that the

reaction moves initially away from the middle line of the wall under increasing

horizontal displacement until it reaches a certain point and then moves back in the

direction of the middle line of the wall. The result predicted by this study shows the

same trend to the experimental results and closely matches the simulation of Lourenco

(1996) as the same loading and boundary conditions are employed.

C
L

x F
w

120

100
Vertical reaction F (kN)

80

60

40
Experimental
20 Lourenco (1996)
This study
0
0 1 2 3 4 5
Horizontal displacement (mm)

(a) Vertical reaction versus horizontal displacement


CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 93

0.8
Eccentricity x/w

0.6

0.4

Experimental
0.2
Lourenco (1996)
This study

0
0 1 2 3 4 5
Horizontal displacement (mm)

(b) Eccentricity versus horizontal displacement

Figure 3.27. Comparison of the experimental and numerical vertical reaction and

its eccentricity of shear wall with 30 kN pre-compression load.

3.8 Summary

The choice of modelling approaches, macro and micro modelling, depends on the level

of accuracy and the simplicity desired. A macro-model is more precious when a

compromise between accuracy and efficiency is needed whereas a micro-model gives a

better understanding about the local behaviour as mortar and units are modelled

separately and can lead to the best insight into the behaviour of masonry structures.

A micro-model proposed for the simulation of fracture in unreinforced masonry

has been developed. Masonry is discretised by means of triangular elements constructed

from nine constant strain triangles with two nodes on each side but not at the vertices.
CHAPTER 3 MODELLING OF FRACTURE IN UNREINFORCED MASONRY 94

The triangular elements are grouped into rectangular zones mimicking the brick units

and mortar joints. The mortar joint, which is a plane of weakness, can be modelled as an

interface of zero thickness or of a given thickness. The model is ideally suited to the

modelling of fracture in masonry because fracture usually runs along a horizontal or

vertical joint in the mortar or is approximately vertical in the bricks. Fracture is captured

through a constitutive softening-fracture law at the interface boundary nodes. The

inelastic failure surface is modelled using a Mohr-Coulomb failure surface with a

tension cut-off and a linear compression cap. The proposed linear compression cap was

discussed in detail. A procedure to define the intersection between the compression cap

and the Coulomb failure line was proposed. The model is implemented in a robust

algorithm. The path-dependent softening behaviour is solved using a LCP formulation,

in nonholonomic rate form.

Validation of the model was successful. Comparison of the formulation with the

experimental results on masonry shear walls under pre-compression and shear showed

good agreement. The formulation was able to capture the pre-peak and post-peak

responses and the cracking characteristics reasonably well without significant numerical

difficulties.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 95

CHAPTER 4
EXPERIMENTAL STUDY – THREE-POINT
BENDING TESTS ON MASONRY PANELS

4.1 Introduction

As mentioned in Chapter 2, the behaviour of masonry structures depends strongly on the

properties of the mortar joint. The failure of masonry panels under three-point bending

(TPB) with relatively low bond strength may be governed by both mode I and mode II

fracture rather than just mode I failure as for example in a concrete beam or in a

masonry panel with relatively high bond strength, see e.g. Guinea et al. (2000). In order

to investigate the failure behaviour of low mortar strength masonry panels, an

experimental research program was carried out. Full-scale masonry panels with two

different strengths of mortar were tested under TPB. The fracture behaviour of the

constituents (the bricks and the mortar) was also investigated. It is worth noting that the

mortar test results were not intended to represent properties of the mortar inside the

masonry as the mortar specimens were separately cast in moulds and the water

absorption effect of the unit was ignored. All test results are reported herein. A

comparison between the experimental and numerical results is also presented.

The experimental program is detailed in Section 4.2. The specimen preparation

and the test set-ups are described in Sections 4.3 and 4.4, respectively. The experimental

results are presented in Section 4.5 along with some discussion. Before a summary is

made, a numerical simulation of the TPB tests using the model described in Chapter 3 is

demonstrated in Section 4.6.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 96

4.2 Experimental Program

Three different tests including TPB, shear and compression tests were performed on

masonry, brick and mortar specimens. The experimental program is summarised in

Table 4.1. All specimens were tested in a servo-hydraulically controlled INSTRON

testing machine. The mortar type is denoted by W – weak or S – strong.

The TPB tests on brick and mortar specimens were performed to determine and

investigate mode I fracture energy G fI . The RILEM TC-50 FMC Recommendation

(1985) was followed and applied for this purpose. In order to determine and investigate

shear fracture behaviour, the shear test arrangement proposed by Van Der Pluijm (1993)

which can provide an approximately uniform state of stress in the shear plane (see

Chapter 2) was employed with some modifications. The compression tests were carried

out to determine the compressive strength f cc of each material. Elastic modulus E of

each material and Poisson’s ratio Q of brick and mortar were also considered. More

details on each test will be given in the following sections.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 97

Table 4.1. Experimental program.

Geometry of specimen (mm) Test Mortar No. of


type test
P

W 3
Masonry TPB
334
test

1200 110 S 3
1430

M
W 3u3
P
112 Masonry shear
P
test
M S 3u3
110
230

P
W 3

420 Masonry
compression test

S 3
P
110
230

76
10 Brick TPB test - 3

200 110
230

M
P
50
P Brick shear test - 3u3
M
230 110
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 98

Geometry of specimen (mm) Test Mortar No.


type of
test
P

230 - 3

P
50
110 Brick
compression
test
P

50 - 3

P 110
230

P
W 3
100
50 Mortar TPB
test
400 100
S 3
500

M
W 3u3
P
100 Mortar shear
P test
M
100 S 3u3
200

W 3
Mortar
200 compression
test

S 3
P
I100
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 99

4.3 Specimen Preparation

4.3.1 Materials

Bricks

Bricks used in this work are solid clay bricks (Austral Bowral Brown dry pressed brick).

The dimensions of each unit are about 230u110u76 mm. There is a frog at the top bed

of each unit as shown in Figure 4.1(a). The depth of the frog is about 16 mm.

32 20
frog 16
mortar

76

230
(a) The brick used (b) Typical x-section of the two-brick masonry specimen

Figure 4.1. The brick and the two-brick masonry specimen. Dimensions are in mm.

Mortar

Two proportions of mortar as shown in Table 4.2 were mixed so that two types of

mortar, types W and S, in terms of compressive strength were obtained. Note that with

these proportions it was found that the mortar type W had better workability.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 100

Table 4.2. Mix proportions by weight of the mortar.

Mortar type Cement : lime : sand : water

W 1 : 0.00 : 6.05 : 1.58

S 1 : 0.12 : 3.50 : 1.10

4.3.2 Preparation

All specimens as shown in Table 4.1 were prepared and cured in the laboratory. All

masonry specimens were laid by a trade-man mason. The original size bricks were used.

The mortar thickness excluding frog was about 10 mm.

Masonry Specimens

The masonry panels used for the TPB tests were built up with four courses. The length

of panels was equivalent to six bricks with five head joints. Figure 4.2 shows the

dimensions of all masonry TPB specimens. The age of the specimens at the time of

testing varied between 250 and 258 days. Prior to testing, the frog in the brick at the

position of loading point was filled with plaster to reduce any lack of plane surfaces on

the loaded faces and a central notch 3 mm wide was sawn up to a specific depth as

indicated in Figure 4.2.

Each specimen for the masonry shear tests was made of two bricks and a mortar

joint, see Figure 4.1(b). One side of the joint is in frog. The age of specimens at the time

of testing varied between 40 and 61 days. Prior to testing, both sides of each two-brick

specimen were cut symmetrically in order to eliminate the frog in the exposed face.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 101

Specimens for the masonry compression tests consisted of five bricks with four

joints as presented in Table 4.1.

Plaster filled in frog prior to testing

a
3 mm
B
L

Panel D (mm) L (mm) B (mm) a (mm)

WMWTP1 334 1428 110 0

WMWTP2 334 1427 110 0

WMWTP3 335 1431 110 0

SMWTP1 335 1429 110 10

SMWTP3 334 1427 110 10

SMWTP4 336 1430 110 10

Figure 4.2. Geometry and dimensions of the masonry panels.

Brick Specimens

Figure 4.3(a) presents a typical specimen for the brick TPB tests. The frog was filled

with plaster to reduce the effects of roughness and lack of plane surfaces on the loaded

faces. Before testing, a central notch 3 mm in width and 10 mm in depth was cut.

In the brick shear tests, specimens of 230u110u50 mm were cut from the

original size bricks to eliminate the effects of the frog, see Figure 4.3(b). Notches were

cut around each specimen before testing. The shear area of each specimen is given in

Table 4.7. The notch was 3 mm wide.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 102

notches cut around

frog filled
with plaster
230
76
10
110
230 110
50
(a) (b)

Figure 4.3. The brick specimens: (a) for the TPB test; (b) for the shear test.

Dimensions are in mm.

To determine brick compressive strength the original size bricks were also cut to

eliminate the effects of the frog. The final dimensions of each specimen were

230u110u50 mm. Tests were performed in both directions, vertical and parallel to bed

face, see Table 4.1.

Mortar Specimens

Both types of mortar (types W and S) were separately cast in moulds at the time of

construction of the masonry specimens. Prismatic specimens 500u100u100 mm, see

Figure 4.4(a), were cast for the mortar TPB tests. The age of the mortar specimens at the

time of testing was about 228 days. The TPB notch was cut before testing with a notch

to depth ratio of 1/4.

For the mortar shear tests, prismatic specimens 200u100u100 mm were cast.

The age of the shear specimens at the time of testing varied between 172 and 194 days.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 103

The notches were cut around the specimens before testing as shown in Figure 4.4(b).

The shear area of each specimen is given in Table 4.9.

Cylinder specimens with dimensions 100 mm in diameter and 200 mm in height

were used for determining the compressive strength of the mortar.

notches cut around

200
100 25
100
500 100
100
(a) (b)

Figure 4.4. The mortar specimens: (a) for the TPB test; (b) for the shear test.

Dimensions are in mm.

4.4 Test Set-Ups and Test Procedures

4.4.1 Three-Point Bending Tests

All TPB tests were carried out under crack mouth opening displacement (CMOD)

control. During the test, load-point displacement and CMOD were continuously

recorded.

Figure 4.5 shows the test set-up of the TPB test on the masonry panel and Figure

4.6 shows the device arrangement. In order to obtain a complete response, a CMOD rate

of 0.09 mm/min (9000 PH/min) was applied for panels with mortar type W and 0.12

mm/min (12000 PH/min) for panels with mortar type S.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 104

LVDT at each side Aluminium angle


glued on each side

CMOD gauge

1200 mm

Figure 4.5. TPB test set-up scheme for the masonry panel.

LVDT

CMOD
gauge

Figure 4.6. TPB test arrangement for the masonry panel.

In Figure 4.7, the TPB test set-up for the brick specimen is shown. A CMOD

rate of 0.032 mm/min (3200 PH/min) was used, which was chosen so that the maximum

load was reached within about 30-60 seconds after the start of the test according to the

RILEM TC-50 FMC Recommendation (1985).


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 105

P
LVDT at each side

CMOD gauge

200 mm

Figure 4.7. TPB test set-up scheme for the brick specimen.

Figure 4.8 shows the TPB test set-up for the mortar specimen. However, in order

to obtain a complete response, the CMOD rate resulted in a time to peak load which was

larger than that recommended in RILEM TC-50 FMC Recommendation (1985). Two

counter weights compensating the specimen weight also had to be used. A CMOD rate

of 0.010 mm/min (1000 PH/min) was adopted for mortar type W and 0.015 mm/min

(1500 PH/min) for mortar type S. The peak load was reached within 2.5 minutes. Note

that at the first test attempt, the CMOD rates were performed according to the RILEM

recommendation without counter weights, but the specimens failed suddenly after the

peak load was reached. Hence the counter weights were added and slower CMOD rates

were adopted.

P
LVDT at each side
Counter wt.

CMOD gauge

400 mm

Figure 4.8. TPB test set-up scheme for the mortar specimen.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 106

4.4.2 Shear Tests

The test set-up introduced by Van Der Pluijm (1993) was adopted and modified for all

shear tests carried out in this study. The main part of the test rig is shown schematically

in Figure 4.9(a) and the photographs of the device arrangement are shown in Figure

4.10. This test rig cannot maintain a confining pressure on the mortar joint while

applying a shear load through the joint as in the test rig of Van Der Pluijm. However,

any change in the confining pressure was recorded during the test by means of a load

cell positioned as shown in Figure 4.9(a). The test rig of Van Der Pluijm was also

modified by inserting two steel blocks between the L-shaped steel blocks and specimen

at the top and the bottom. The steel blocks were positioned closely to the edge of

specimen. By this means, any slip of the specimen was avoided without having to glue

the specimens to the L-shaped steel blocks.

actuator
actuator
LVDT
LVDT

100mmmm
100

ball hinge
ball hinge V2
V2

specimen
specimen V1
V1 M
M
N N
load cell
load cell

N N
M
M V1
V1
V2
V2
V=V1+V2
V=V1+V2
ballhinge
ball hinge
steel
steel block
block
counter
counter wt.
weight line hinge
line hinge M
M

(a) (b)

Figure 4.9. (a) Shear test set-up modified from Van Der Pluijm (1993); (b) loading

on the specimen.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 107

Three different initial confining pressures were considered for each type of

specimen and three tests were repeated for each initial confining pressure. Four

displacements, two vertical on each side and two horizontal on the same side of each

specimen, were measured with LVDTs which were installed after the application of the

initial confining pressure and before applying any shear load. The positions of the

LVDTs are also shown in Figure 4.9(a). Load was applied continuously under

controlled rate until the peak load was reached and then for some specimens unloading-

reloading was applied at some stages by manually controlling the strain rate. All data

was recorded until the residual stage was reached.

4.4.3 Compression Tests

For masonry and mortar specimens, the compression tests were performed according to

the Australian standards AS3700 and AS1012, respectively. The compressive strength

of brick specimens was determined according to the Australian standard AS4456:2003

in which the effects of platen restraint are taken into account.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 108

hori. ball
LVDT hinge

steel
block

counter
weight

line
hinge

(a) At one side

load
cell

vert.
LVDT

(b) At the other side

Figure 4.10. Shear test arrangement.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 109

4.5 Experimental Results and Discussion

4.5.1 Basic Material Properties

The basic properties, i.e. compressive strength, elastic modulus and Poisson’s ratio, of

each material are reported in Table 4.3. The bricks clearly exhibit anisotropic behaviour

as different compressive strength was detected from different loading directions. Mortar

type S is about two times stronger in terms of compressive strength and elastic modulus

than type W. Both types of mortar have relatively low compressive strength in

comparison with that of the brick (vertical to bed face). The combination of the brick

and the two different mortar types resulted in masonry of roughly the same compressive

strength but with an elastic modulus for type S mortar double that of the type W mortar.

Table 4.3. Basic properties of each material.

Properties Brick Mortar Masonry

vertical parallel type type with with

to bed to bed W S mortar mortar

face face type W type S

Compressive strength, fc' (MPa) 33.31 21.68 7.26 16.79 18.97 18.71

Modulus of elasticity, E (MPa) - 14525 6175 11320 4500 8270

Poisson’s ratio, Q - 0.06 0.13 0.18 - -

4.5.2 Shear Test Results

In all the analyses of the shear test results a uniform stress distribution across the bed

joint was assumed. The results will be discussed here and concern shear bond strength
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 110

in relation to the cohesion c and angle of internal friction I, shear modulus G and post-

peak behaviour (residual bond strength, unloading-reloading behaviour, mode II

fracture energy G fII and dilatancy angle \). The results for each type of material

(masonry joint, brick and mortar) are as follows.

Masonry Joint Shear Test Results

For masonry specimens, the three initial confining pressures applied perpendicularly to

the bed joint were approximately 0.2, 0.4 and 0.8 MPa. The test results showed that the

shear failure at the final stage could be classified into two groups. To aid the

explanation, interface 1 is the interface between mortar and brick face without frog

while interface 2 refers to the interface between mortar and brick face having the frog,

see Figure 4.11(a). In one failure group, a single peak in the load-deformation response

was produced. The failure of the specimens occurred completely along interface 1 or

occurred almost completely along interface 1 and partially along interface 2 with a

crack crossing the mortar near the bottom edge of the frog, see

Figures 4.11(a) and 4.11(b). In the other failure group, two peaks were produced. The

position and number of the crack crossing the mortar are different from group one, as

shown in Figures 4.11(c) and 4.11(d). The irregularity of the mortar in the frog as can

be seen in Figure 4.11 may be responsible for the two different failure modes.

Furthermore, it may also be the major cause of scatter of the test results.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 111

(a) 1 2

(b)

(c)

(d)

Figure 4.11. Failure characteristics of the mortar joints under shear.

Figure 4.12 shows some typical shear stress-displacement curves obtained from

the tests. The results for all specimens can be found in Appendix A.

Table 4.4 summarises the shear bond strength, residual shear bond strength and

mode of failure of each specimen. The additional confining pressure and total confining

pressure at the peak load are also reported.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 112

0.9

S1-10

0.7
Shear stress (MPa)

0.5

0.3

0.1

-0.1
0 0.3 0.6 0.9 1.2 1.5 1.8 2.1
Shear displacement (mm)

(a) one peak

0.9
W15-5

0.7
Shear stress (MPa)

0.5

0.3

0.1

-0.1
0 0.7 1.4 2.1 2.8 3.5
Shear displacement (mm)

(b) two peaks

Figure 4.12. Typical shear stress-displacement curves obtained from the masonry

mortar joint shear tests.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 113

Table 4.4. Shear bond strength, residual bond strength and mode of failure of the

mortar joints.

Specimen* Initial Additional Total Shear Residual Mode of

confining confining confining bond shear bond failure

pressure pressure at peak pressure at peak strength strength

(MPa) (MPa) (MPa) (MPa) (MPa)

W15-5 0.20 0.10 0.30 0.75 0.27 two peaks

W16-5 0.20 0.10 0.30 0.70 0.28 two peaks

W17-5 0.19 0.08 0.27 0.40 0.24 one peak

W4-10 0.35 0.12 0.47 0.83 0.40 one peak

W5-10 0.39 0.03 0.42 0.68 0.36 one peak

W11-10 0.44 0.04 0.48 0.82 0.40 two peaks

W13-20 0.79 0.00 0.79 1.02 0.66 one peak

W18-20 0.79 0.01 0.80 0.88 0.52 one peak

W19-20 0.81 0.02 0.83 1.03 0.58 two peaks

S7-5 0.21 0.07 0.28 0.30 0.24 one peak

S8-5 0.21 0.03 0.24 0.25 0.18 one peak

S9-5 0.21 0.07 0.28 0.42 0.18 two peaks

S1-10 0.41 0.10 0.51 0.67 0.37 one peak

S2-10 0.40 0.02 0.42 0.62 0.30 one peak

S3-10 0.42 0.04 0.46 0.88 0.36 one peak

S4-20 0.77 0.04 0.81 0.82 0.58 two peaks

S5-20 0.83 0.07 0.90 0.92 0.78 two peaks

S6-20 0.76 0.03 0.79 0.87 0.64 two peaks

* The first character indicates the mortar type.

To be able to derive the cohesion and internal friction angle, the shear bond

strength is plotted versus the confining pressure in Figure 4.13. The linear best fit for

each mortar type is also presented. The cohesion, here estimated to be 0.43 and 0.18 for
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 114

masonry joint with mortar types W and S, respectively, depends on the mortar type. The

internal friction angle, which is the arctangent of the slope was estimated at 35.0q and

41.7q for masonry joint with mortar types W and S, respectively, and also depends on

the mortar type. It can be observed that mortar type W having the better workability

provides a cohesion greater than mortar type S even though mortar type S possesses

higher compressive strength. This may be due to the fact that the bond strength is

dependent on many factors and one of those is workability. The effect of water

absorption of the unit could also be a major factor.

1.2
Shear Bond Strength, u (MPa)

Wu = 0.43 + 0.70V
R2 = 0.70
0.8

Wu = 0.18 + 0.89V
R2 = 0.74
0.4
mortar type W
mortar type S
0.0
0.0 0.2 0.4 0.6 0.8 1.0
Total Confining Pressure, V (MPa)

Figure 4.13. Shear bond strength of the mortar joints as a function of total

confining pressure.

The residual bond strength is plotted against the total confining pressure in

Figure 4.14. As expected this figure indicates that at the residual stage the cohesion

reduces to zero. The relation between residual bond strength and confining pressure is

independent of the mortar used. The residual friction coefficient was estimated at 0.74.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 115

1.00

Residual Bond Strength, r (MPa)


Wr = 0.00 + 0.74V
R2 = 0.93
0.75

0.50

0.25 mortar type W


mortar type S
0.00
0.00 0.25 0.50 0.75 1.00
V
Total Confining Pressure, (MPa)

Figure 4.14. Residual bond strength of the mortar joins as a function of total

confining pressure.

An important aspect of this study is the examination of the unloading-reloading

characteristics of masonry joints under shear. A typical unloading-reloading behaviour

is illustrated in Figure 4.15. It can be observed that the unloading stiffness at the

residual stage is close to the initial stiffness (G1|G2|G3|G4|G5). This is probably due

to the fact that micro-cracking which is the main mechanism responsible for the

reduction of stiffness formed only along the interface rather than in the whole mortar

joint.

The shear modulus of the mortar joints was determined by applying linear

regression. The results are presented in Table 4.5. Due to the irregularity of the mortar

within the frog, the estimated values of the shear modulus are variable. However, the

results give the same trend found when the cohesion is considered as masonry with

mortar type W has a higher average value of the shear modulus than type S. In addition,

the estimated values of the shear modulus at the residual stage are also given in Table

4.5.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 116

G1

G2 G3 G4 G5

Stress
Shear Stress
Shear

Shear Displacement
Shear Displacement

Figure 4.15. Typical unloading-reloading behaviour of the mortar joints under

shear.

Table 4.5. Shear modulus of the mortar joints.

Specimen* Initial shear Shear modulus Specimen* Initial shear Shear modulus

modulus at residual modulus at residual

(MPa) stage (MPa) (MPa) stage (MPa)

W15-5 2070 1420 S7-5 1550 1300

W16-5 2415 2000 S8-5 1295 1110

W17-5 525 - S9-5 895 -

W4-10 1835 - S1-10 1020 900

W5-10 1600 - S2-10 1420 -

W11-10 1945 1490 S3-10 1917 1750

W13-20 1420 1315 S4-20 1415 1160

W18-20 1565 - S5-20 1190 1150

W19-20 1470 1380 S6-20 1650 -

Average 1649 Average 1372

* The first character indicates the mortar type.

Mode II fracture energy was determined as the area beneath the shear stress

versus irreversible slip displacement curve and the residual shear stress level, as

depicted in Figure 4.16(a). The irreversible slip displacement (see Figure 4.16(b)) was
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 117

determined from the unloading response and the use of an estimated unloading stiffness.

For this purpose the initial shear modulus given in Table 4.5 was adopted. Mode II

fracture energies are presented in Table 4.6 and plotted against the total confining

pressure in Figure 4.17. The mode II fracture energy increases with increased confining

pressure. It was also found that the mode II fracture energy depends on the mortar type.

Note that since some values of the mode II fracture energy, marked by asterisk in Table

4.6, are not consistent (mainly due to the two-peak failure mode), these values were not

plotted in Figure 4.17.

(a) (b)

slope equal to
W - Wr

stress

mode II initial slope


fracture energy

Irreversible slip displacement di de displacement

Figure 4.16. Definitions of: (a) mode II fracture energy; (b) irreversible

displacement, di.
Mode II fracture energy, GfII (N/mm)

0.15
(N/mm)

GfII = 0.016 + 0.13V


R2 = 0.98
0.10
Fracture Energy,

0.05
mortar type W
II
Gf = 0.027 + 0.06V mortar type S
R2 = 0.26
0.00
0.0 0.4 0.8 1.2
Total Confining Pressure, V (MPa)

Figure 4.17. Mode II fracture energy of the mortar joints as a function of total

confining pressure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 118

Table 4.6. Mode II fracture energy of the mortar joints.

Specimen G fII (N/mm) Failure mode Specimen G fII (N/mm) Failure mode

W15-5 0.2755* two peaks S7-5 0.0400 one peak

W16-5 0.2550* two peaks S8-5 0.0386 one peak

W17-5 0.0302* one peak S9-5 0.1271* two peaks

W4-10 0.0760 one peak S1-10 0.0441 one peak

W5-10 0.0318* one peak S2-10 0.0709 one peak

W11-10 0.0920* two peaks S3-10 0.0578 one peak

W13-20 0.1201 one peak S4-20 0.2250* two peaks

W18-20 0.1154 one peak S5-20 0.1242* two peaks

W19-20 0.9329* two peaks S6-20 0.0964* two peaks

As the mortar joint fails under shear an opening displacement also occurs which

characterises the dilatant behaviour of the joint. If this dimensional change is restrained,

compressive stresses may build up, causing confining pressure increase and enhancing

the resistance to slip. Therefore, this behaviour was also investigated by plotting

irreversible opening displacement versus irreversible slip displacement as depicted in

Figure 4.18. The irreversible opening displacement was determined by subtracting the

elastic displacement of masonry specimen due to additional confining pressure from

total displacement. Young’s modulus derived from compression tests, 4500 and 8270

MPa for masonry with mortar types W and S, respectively, were employed. In Figure

4.18, it can be seen that the dilantancy depends on the confining pressure, with

significantly reduced opening displacement with increased confining pressure. The

dilatancy coefficient (tan\), which is the tangent to the irreversible opening

displacement versus the irreversible slip displacement curve, exponentially decreases

with increasing slip displacement, see Figure 4.19. At large slip displacement, the
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 119

dilatancy coefficient tends to become zero as the opening displacement is totally

arrested indicating a pure friction slip across the bed joint. The dilatancy coefficient at

the initial stage is also plotted versus the total confining pressure in Figure 4.20. The

figure shows that the dilatancy coefficient decreases when the total confining pressure

increases.

0.4

W16-5 (0.30 MPa)


Irreversible opening displ. (mm)

0.3

W15-5 (0.30 MPa)


0.2

W11-10 (0.48 MPa)


0.1

W18-20 (0.80 MPa)


0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Irreversible slip displacement (mm)

(a) Specimens with mortar type W

0.15
S7-5 (0.28 MPa)
Irreversible opening displ. (mm)

0.10 S8-5 (0.24 MPa)

0.05 S1-10 (0.51 MPa)


S3-10 (0.46 MPa)
S4-20 (0.81 MPa)
0.00
0.0 0.5 1.0 1.5 2.0
Irreversible slip displacement (mm)

(b) Specimens with mortar type S

Figure 4.18. Dilatancy softening responses of the mortar joints under shear. The

value in the parenthesis is the total confining pressure.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 120

0.5

w16-5
0.4 w11-10
w18-20

0.3 W16-5 (0.30 MPa)


tan \
W11-10 (0.48 MPa)
tan

0.2 W18-20 (0.80 MPa)

0.1

0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Irreversible slip displacement (mm)

(a) Specimens with mortar type W

0.3

s8-5
s1-10
s4-20
0.2
S8-5 (0.24 MPa)
tan \
tan

S1-10 (0.51 MPa)


0.1 S4-20 (0.81 MPa)

0
0.0 0.4 0.8 1.2 1.6 2.0
Irreversible slip displacement (mm)

(b) Specimens with mortar type S

Figure 4.19. Evolution of tan \ with irreversible slip displacement for the mortar

joints under shear. The value in the parenthesis is the total confining pressure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 121

0.5
mortar type W

) .
0.4

(tan
Initial tan \ 0.3
Dilatancy coefficient

0.2

0.1
tan\ = -0.57 + 0.49
R2 = 0.59
0
0.0 0.2 0.4 0.6 0.8 1.0
Total
Total confining
confining pressure, (MPa)
pressure,  (MPa)

0.3
mortar type S
) . (tan

0.2
Initial tan \
Dilatancy coefficient

0.1

tan\ = -0.24 + 0.31


R2 = 0.77
0
0.0 0.2 0.4 0.6 0.8 1.0
Total confining pressure, (MPa)
Total confining pressure,  (MPa)

Figure 4.20. Dilatancy coefficient at the initial stage of the mortar joints as a

function of total confining pressure.

Brick Shear Test Results

In the brick shear tests, three different initial confining pressures of approximately 0.40,

0.60 and 0.85 MPa were applied. A typical failure pattern was observed and shown in

Figure 4.21. There was only a single crack propagating straight through the shear plane.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 122

The failure surface was quite smooth. Figure 4.22 presents all results obtained from the

brick shear tests. In general, the value and scatter of the peak load increases when

higher initial confining pressure was applied. A series of analyses to determine and

investigate the shear properties of the bricks were carried out and are presented here.

Table 4.7 summarises the shear area, additional confining pressure at the peak

load, shear bond strength and residual shear bond strength of each brick specimen. The

shear bond strength is plotted against the total confining pressure in Figure 4.23. The

linear best fit is also presented. The estimated cohesion was 0.62 and the friction angle

was about 76.6q. The residual bond strength is also plotted against total confining

pressure in Figure 4.24. At the residual stage the cohesion was approximately zero. The

friction angle at this stage was about 60.1q.

Figure 4.21. Typical failure pattern of the bricks under shear.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 123

10
BST1 (a)

8 BST2
BST3
BST3

Shear stress (MPa)


6 BST2
BST1
4

0
0 0.5 1 1.5 2 2.5 3
Shear displacement (mm)

10
BST4 (b)
BST4 BST5
8
BST5 BST6
Shear stress (MPa)

6 BST6

0
0 0.5 1 1.5 2 2.5 3
Shear displacement (mm)

10
BST9 BST7 (c)

8 BST7 BST8
BST9
Shear stress (MPa)

6
BST8

0
0 0.5 1 1.5 2 2.5 3
Shear displacement (mm)

Figure 4.22. All test responses obtained from shear tests on the brick specimens.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 124

Table 4.7. Shear bond strength and residual bond strength of the brick specimens.

Specimen Shear area Initial Additional Total Shear Residual

(mmumm) confining confining confining bond shear bond

pressure pressure at peak pressure at peak strength strength

(MPa) (MPa) (MPa) (MPa) (MPa)

BST1 39u174.5 0.40 1.02 1.42 6.55 2.31

BST2 38u173 0.42 1.18 1.60 6.60 2.39

BST3 42u181 0.40 1.04 1.44 6.76 2.44

BST4 40u180 0.61 1.05 1.66 7.54 2.65

BST5 42.5u178 0.63 0.95 1.58 7.86 2.60

BST6 39u182.5 0.62 0.79 1.41 6.68 2.75

BST7 37u177 0.90 0.90 1.80 7.89 3.45

BST8 38u143 0.85 0.60 1.45 6.70 2.66

BST9 40u183 0.82 1.19 2.01 9.30 3.45

10.0
Shear Bond Strength, (MPa)
Shear bond strength, Wu (MPa)

8.0

6.0

4.0

2.0 Wu = 0.62 + 4.20V


R2 = 0.84

0.0
0.0 0.5 1.0 1.5 2.0 2.5
Total
TotalConfining
confiningPressure,
pressure,  (MPa)
(MPa)

Figure 4.23. Shear bond strength of the brick specimens as a function of total

confining pressure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 125

4.0

(MPa)
Strength,Wr (MPa)
Wr
3.0

Bondstrength,
2.0

Residual bond
1.0 Wr = 1.74V
R2 = 0.68

0.0
0.0 0.5 1.0 1.5 2.0 2.5
Total Confining
Total confining Pressure,
pressure,  (MPa)
(MPa)

Figure 4.24. Residual bond strength of the brick specimens as a function of total

confining pressure.

A typical unloading-reloading characteristic of the brick specimens under shear

is presented in Figure 4.25. It shows that the behaviour is similar to that of plain

concrete as the stiffness decreases compared to the initial stiffness when damage exists

(G2, G3, G4, G5 < G1). The values of the shear modulus at the initial stage and at the

residual stage of each specimen were estimated and summarized in Table 4.8. Table 4.8

also gives the mode II fracture energy of each brick specimen. The mode II fracture

energy is plotted against the total confining pressure in Figure 4.26. The same procedure

used in the calculation of the mode II fracture energy of the masonry joints was adopted.

Figure 4.26 shows a large scatter of data which may be attributed to nonuniform firing

or manufacturing processes. Despite of the large scatter of data, the mode II fracture

energy of the bricks depends on the confining pressure as found in the masonry

specimens. Figure 4.27 shows the dilatant behaviour of the brick specimens. The

behaviour is similar to that of the masonry specimens, with the opening displacement

increasing with increasing of the shear displacement until pure friction slip occurs.

Figure 4.28 shows the evolution of tan \ with slip displacement of the brick specimens.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 126

8
G1

Shear stress (MPa)


4 G2 G3 G4 G5

0
0 0.5 1 1.5 2 2.5
Shear displacement (mm)

Figure 4.25. Typical unloading-reloading behaviour at residual stage of the bricks

under shear.

Table 4.8. Shear modulus and mode II fracture energy of each brick specimen.

Specimen Initial shear modulus Shear modulus at Mode II fracture energy

(MPa) residual stage (MPa) (N/mm)

BST1 6810 3050 0.564

BST2 5300 2145 0.920

BST3 7090 1800 0.916

BST4 too high 3140 1.243

BST5 6370 2845 2.436

BST6 too high 2885 1.318

BST7 6575 2790 1.292

BST8 6970 2975 1.914

BST9 6120 2780 1.610

Average 6462 2712


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 127

3.0

Mode II fracture energy (N/mm)


Fracture Energry, (N/mm)
2.0

1.0

0.0
0.0 0.5 1.0 1.5 2.0 2.5
Total
TotalConfining
confiningPressure, (MPa)
pressure (MPa)

Figure 4.26. Influence of total confining pressure on the mode II fracture energy of

the bricks.

1.2
BST2 (1.60 MPa)
Irreversible opening displacement (mm)

1 BST4 (1.66 MPa)

0.8

0.6 BST3 (1.44 MPa)


BST6 (1.41 MPa)

0.4
BST7 (1.80 MPa)
BST5 (1.58 MPa)
0.2
BST8 (1.45 MPa)

0
0 0.6 1.2 1.8 2.4 3
Irreversible slip displacement (mm)

Figure 4.27. Dilatant behaviour of the brick specimens. The value in the

parenthesis is the total confining pressure.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 128

3.5
BST6 (1.41 MPa)
3.0
BST7 (1.80 MPa) BST5
2.5 BST6

2.0 BST7
BST8 (1.45 MPa) BST8
tan \

1.5
tan

BST5 (1.58 MPa)


1.0

0.5

0.0

-0.5
0.0 0.5 1.0 1.5 2.0 2.5
Irreversible slip displacement (mm)

Figure 4.28. Evolution of tan \ with irreversible slip displacement for the bricks

under shear. The value in the parenthesis is the total confining pressure

Mortar Shear Test Results

As mentioned earlier, the mortar test results were not intended to represent the

properties of the mortar within the masonry as the mortar specimens had different water

content. The test results reported herein merely aim to present the fracture behaviour of

the two types of mortar used. Three different initial confining pressures of

approximately 0.25, 0.40 and 0.90 MPa were considered in the shear tests. The typical

failure pattern is shown in Figure 4.29. The crack pattern was not straight but clearly

wavy along the shear plane. The evolution of the shear stress and shear displacement

were plotted for mortar types W and S in Figures 4.30 and 4.31, respectively. The

results were very similar for each initial confining pressure in case of mortar type W,

while in case of mortar type S there was a much greater scatter of the load-deformation

response. Table 4.9 summarises the shear area, additional confining pressure at the peak
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 129

load, shear bond strength and residual shear bond strength for each of the mortar

specimens. The shear bond strength is plotted against the total confining pressure and is

shown in Figure 4.32. The linear best fit is also presented. The estimated cohesion was

1.75 and 2.73 for mortar types W and S, respectively. The estimated friction angle was

32.2q and 54.1q for mortar types W and S, respectively.

Figure 4.29. Typical failure pattern in the mortar specimens under shear.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 130

3.0
(a)
2.5 WMST1 WMST2

Shear stress (MPa)


2.0

1.5

1.0

0.5

0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Shear displacement (mm)

3.0
(b)
2.5
Shear stress (MPa)

WMST5 WMST6
2.0

1.5

1.0

0.5

0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

3.0
WMST7 (c)
2.5
Shear stress (MPa)

2.0
WMST9
1.5

1.0

0.5

0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

Figure 4.30. Shear stress - displacement curves obtained from shear tests on the

type W mortar specimens.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 131

6
SMST2(a)
5
SMST2 SMST3

Shear stress (MPa)


4
SMST3
3

0
0.0 0.5 1.0 1.5 2.0 2.5
Shear displacement (mm)

6
SMST4(b)
SMST4
5 SMST5
SMST6 SMST6
Shear stress (MPa)

4
SMST5
3

0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

6
SMST7(c)
SMST7 SMST8
5 SMST9
SMST8
Shear stress (MPa)

4 SMST9

0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
Shear displacement (mm)

Figure 4.31. Shear stress - displacement curves obtained from shear tests on the

type S mortar specimens.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 132

Table 4.9. Shear bond strength and residual bond strength of each mortar

specimen.

Specimen* Shear area Initial Additional Total Shear Residual

(mmumm) confining confining confining bond shear bond

pressure pressure at peak pressure at peak strength strength

(MPa) (MPa) (MPa) (MPa) (MPa)

WMST1 81u184 0.24 0.35 0.59 2.04 1.60***

WMST2 78u182 0.25 0.32 0.57 2.16 1.50***

WMST3** - - - - - -

WMST4** - - - - - -

WMST5 79u181 0.43 0.38 0.81 2.31 1.44

WMST6 79u180 0.43 0.46 0.89 2.25 1.55

WMST7 81u180 0.85 0.13 0.98 2.45 1.80

WMST8** - - - - - -

WMST9 77u179 0.84 0.25 1.09 2.38 1.90

SMST1** - - - - - -

SMST2 77u180 0.26 0.71 0.97 3.87 1.71

SMST3 82u178 0.24 1.07 1.31 4.79 2.09

SMST4 78u182 0.41 0.69 1.10 4.08 2.15

SMST5 80u180 0.41 0.63 1.04 4.07 2.12

SMST6 79u178 0.41 0.62 1.03 4.45 1.93

SMST7 74u177 0.96 0.63 1.59 4.63 3.21

SMST8 77u191 0.85 0.83 1.68 5.04 3.32

SMST9 79u181 0.88 0.60 1.48 5.03 2.33

* The first character indicates the mortar type.


** Specimen did not fail under pure shear (there was crack out of shear plane).
*** Not used in evaluation of residual shear bond strength.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 133

6.0

(MPa)
Strength,Wu (MPa)
5.0

4.0 Wu = 2.73 + 1.38V

bond strength,
R2 = 0.74
3.0

Shear Bond 2.0


Wu = 1.75 + 0.63V mortar type W
Shear
1.0 R2 = 0.77 mortar type S
0.0
0.0 0.5 1.0 1.5 2.0
Total Confining
confining pressure,
Pressure,  (MPa)
(MPa)

Figure 4.32. Shear bond strength of the mortar as a function of total confining

pressure.

The residual bond strength is plotted against total confining pressure in Figure

4.33. At the residual stage the cohesion becomes zero for both types of mortar. The

friction angle at this stage was approximately 62.2q for both mortar types.
(MPa)

4.0
Strength,Wr (MPa)

Wr = 1.90V
R2 = 0.85
3.0
Bondstrength,

2.0
Residual bond

1.0 mortar type W


mortar type S
0.0
0.0 0.5 1.0 1.5 2.0
confining Pressure,
Total Confining pressure,  (MPa)
(MPa)

Figure 4.33. Residual bond strength of the mortar as a function of total confining

pressure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 134

A typical unloading-reloading response of the mortar is presented in Figure 4.34.

The behaviour is similar to that of plain concrete as the stiffness decreases compared to

the initial stiffness when damage exists (G2, G3, G4 < G1). The values of the shear

modulus at the initial stage and at the residual stage of each specimen were estimated

and summarized in Table 4.10.

5
G1

4
Shear stress (MPa)

3
G2 G3 G4

0
0.0 0.5 1.0 1.5 2.0 2.5
Shear displacement (mm)

Figure 4.34. Typical unloading-reloading behaviour at the residual stage of the

mortar under shear.

Table 4.11 gives the mode II fracture energy for each mortar specimen. The

same procedure used in the calculation of the mode II fracture energy for the masonry

joints was adopted. Figure 4.35 presents the relationship between the mode II fracture

energy and the total confining pressure.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 135

Table 4.10. Shear modulus of each mortar specimen.

Specimen* Initial Shear Specimen* Initial Shear

shear modulus at shear modulus at

modulus residual stage modulus residual

(MPa) (MPa) (MPa) stage (MPa)

WMST1 6470 1005 SMST1** - -

WMST2 7325 1300 SMST2 6695 2060

WMST3** - - SMST3 10790 2175

WMST4** - - SMST4 12720 2565

WMST5 7265 1460 SMST5 9975 2330

WMST6 9840 1185 SMST6 9800 2215

WMST7 4070 1360 SMST7 9910 2140

WMST8** - - SMST8 22695 2880

WMST9 11610 1140 SMST9 16190 3190

Average 7763 1242 12347 2444

* The first character indicates mortar type.


** Specimen did not fail under pure shear (there was crack out of shear plane).

Figures 4.36 and 4.37 present the dilatant behaviour for mortar types W and S,

respectively. The typical trend, opening displacement increases with increasing of shear

displacement until pure friction slip occurs, was found. Figure 4.38 shows the evolution

of tan \ with slip displacement of the mortar specimens.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 136

Table 4.11. Mode II fracture energy of each mortar specimen.

Specimen* Mode II fracture Specimen* Mode II fracture

energy (N/mm) energy (N/mm)

WMST1 0.370 SMST1** -

WMST2 0.856 SMST2 1.015

WMST3** - SMST3 1.076

WMST4** - SMST4 0.855

WMST5 0.621 SMST5 0.314***

WMST6 0.640 SMST6 1.084

WMST7 0.790 SMST7 2.524***

WMST8** - SMST8 1.052

WMST9 0.860 SMST9 1.468

* The first character indicates mortar type.


** Specimen did not fail under pure shear.
*** Not taken into account in Figure 4.35.

2.0
f (N/mm)

mortar type W GfII = 0.68 + 0.33V


(N/mm)

mortar type S
II
energy, G
Energry,

1.0
II fracture
ModeFracture

GfII = 0.35 + 0.42V


0.0
0.0 0.5 1.0 1.5 2.0
confining pressure,
Total Confining Pressure,  (MPa)
(MPa)

Figure 4.35. Mode II fracture energy of the mortar as a function of total confining

pressure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 137

1.25

Opening displacement (mm)


1.00 WMST2 (0.57 MPa)

0.75
WMST1 (0.59 MPa)
0.50

WMST1
0.25
(a)
WMST2
0.00
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

1.25
Opening displacement (mm)

1.00 WMST5 (0.81 MPa)

0.75 WMST6 (0.89 MPa)

0.50

WMST5
0.25
(b)
WMST6
0.00
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

1.25
Opening displacement (mm)

1.00

WMST7 (0.98 MPa)


0.75

0.50
WMST9 (1.09 MPa)
WMST7
0.25
(c)
WMST9
0.00
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
Shear displacement (mm)

Figure 4.36. Dilatant behaviour of the mortar type W. The value in the parenthesis

is the total confining pressure.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 138

1.2
SMST3 (1.31 MPa)

Opening displacement (mm)


0.9

SMST2 (0.97 MPa)


0.6

0.3
SMST2
SMST3(a)
0.0
0.0 0.5 1.0 1.5 2.0 2.5
Shear displacement (mm)

0.8
Opening displacement (mm)

SMST6 (1.03 MPa)


0.6 SMST4 (1.10 MPa)

SMST5 (1.04 MPa)


0.4

SMST4
0.2
SMST5
SMST6(b)
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

2.5
SMST7 SMST8 (1.68 MPa)
Opening displacement (mm)

2.0 SMST8
SMST9
1.5

1.0
SMST7 (1.59 MPa)
0.5
SMST9 (1.48 MPa) (c)
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0
Shear displacement (mm)

Figure 4.37. Dilatant behaviour of the mortar type S. The value in the parenthesis

is the total confining pressure.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 139

4.0

3.0 WMST2 (0.57 MPa)

WMST5 (0.81 MPa) WMST2


tan\

2.0 WMST5
tan

WMST7
WMST7 (0.98 MPa)

1.0

0.0
0.0 0.5 1.0 1.5 2.0 2.5
Irreversible slip displacement (mm)

(a) Type W mortar

2.5

SMST3
SMST4
2.0 SMST3 (1.31 MPa) SMST6
SMST7
SMST4 (1.10 MPa)
1.5
SMST7 (1.59 MPa)
tan\
tan

SMST6 (1.03 MPa)


1.0

0.5

0.0
0.0 0.5 1.0 1.5 2.0 2.5
Irreversible slip displacement (mm)

(b) Type S mortar

Figure 4.38. Evolution of tan \ with irreversible slip displacement for the mortar

specimens under shear. The value in the parenthesis is the total confining pressure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 140

4.5.3 TPB Test Results

Brick TPB Test Results

The TPB test results were used to determine mode I fracture energy. The mode I

fracture energy, defined as the amount of energy necessary to create a unit area of a

crack, was calculated from Equation (4.1) according to the RILEM TC-50 FMC

Recommendation (1985).

G fI
W0  mgG0 (4.1)
A lig

where W0 is the energy supplied by the external load represented by the area under the

load-deformation curve, m = m1 + m2 in which m1 is the mass of the beam between

supports and m2 is the mass of the part of the loading arrangement which is not attached

to the machine but follows the beam until failure, g is the acceleration due to gravity, 0

is the displacement at the final failure of the beam and Alig is the area of the initial

ligament which is equivalent to the product of the beam depth without the notch depth

and the beam thickness.

As for an example, Figure 4.39 shows a set of typical results obtained from the

TPB test of a brick specimen (FBTP8). The results of all specimens can be found in

Appendix A. The requirements of the recommendation were met as the maximum load

was reached within 60 seconds after the start of the test, see Figure 4.39(c), and the test

was performed with a constant rate of CMOD, see Figure 4.39(d). Table 4.12

summarises the flexural strength and mode I fracture energy of each brick specimen.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 141

10 10
8 8

Load (kN)

Load (kN)
6 6
(a) (b)
4 4
2 2
0 0
0 0.1 0.2 0.3 0.4 0 0.1 0.2 0.3 0.4 0.5 0.6
CMOD (mm) Load-point displacement (mm)

10 0.4

8 0.3

CMOD (mm)
Load (kN)

6
(c) 0.2 (d)
4
2 0.1

0 0
0 4 8 12 0 4 8 12
Time (min) Time (min)

Figure 4.39. A set of typical results obtained from the brick TPB test.

Table 4.12. Flexural strength and mode I fracture energy of the brick specimens.

Specimen Flexural strength (MPa) Mode I fracture energy (N/mm)

FBTP6 11.58 0.315

FBTP8 10.86 0.321

FBTP9 10.83 0.301

Average 11.09 0.312

Mortar TPB Test Results

Figure 4.40 presents a set of typical results obtained from the TPB test of a type W

mortar specimen (WMTP1) while Figure 4.41 presents the results for a type S mortar

specimen (SMTP2). The results of all specimens can be found in Appendix A.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 142

1 1
0.8 0.8

Load (kN)

Load (kN)
0.6 0.6
(a) (b)
0.4 0.4
0.2 0.2
0 0
0 0.1 0.2 0.3 0 0.1 0.2 0.3
CMOD (mm) Load-point displacement (mm)

1 0.25

0.8 0.2

CMOD (mm)
Load (kN)

0.6 0.15
(c) (d)
0.4 0.1

0.2 0.05

0 0
0 10 20 30 0 10 20 30
Time (min) Time (min)

Figure 4.40. A set of typical results obtained from the type W mortar TPB test.

3 3
2.5 2.5
Load (kN)
Load (kN)

2 2
1.5 (a) 1.5 (b)
1 1
0.5 0.5
0 0
0 0.1 0.2 0.3 0 0.1 0.2 0.3 0.4
CMOD (mm) Load-point displacement (mm)
3 0.25
2.5 0.2
CMOD (mm)
Load (kN)

2
0.15
1.5 (c) (d)
0.1
1
0.5 0.05
0 0
0 5 10 15 20 0 5 10 15 20
Time (min) Time (min)

Figure 4.41. A set of typical results obtained from the type S mortar TPB test.

Table 4.13 summarises the flexural strength and mode I fracture energy of each

mortar specimen. Each mode I fracture energy was calculated from Equation (4.1).
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 143

Table 4.13. Flexural strength and mode I fracture energy of the mortar specimens.

Specimen* Flexural G fI Specimen* Flexural G fI

strength (MPa) (N/mm) strength (MPa) (N/mm)

WMTP1 0.94 0.012 SMTP1** 2.17 -

WMTP2** 0.77 - SMTP2 2.47 0.033

WMTP3** - - SMTP3** 2.20 -

Average 0.85 - Average 2.28 -

* The first character indicates mortar type.


** Response is not complete or test failed.

Masonry Panel TPB Test Results

Although three panels were tested for each case (with mortar types W and S), only one

panel for each case was successfully carried out and gave a complete response. The

main cause was inappropriate CMOD rate. Figure 4.42 presents all responses obtained

from the TPB test of masonry panel with mortar type W (denoted WMWTP1) while

Figure 4.43 presents the responses for the masonry panel with mortar type S (denoted

SMWTP4). Tests were stable due to the CMOD control performed during the tests.

Some instabilities were produced which were due to the sudden tensile failure in the

head joints. The crack patterns for both mortar types are shown in Figure 4.44. The

cracks zigzagged through the head and bed joints without brick failure. Both crack

patterns clearly show that the failure of the masonry beams with relatively low bond

strength mortar were governed by both tensile and shear fracture (mode I and mode II

fracture) of the mortar joints.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 144

4
(a)
WMWTP1

Load (kN) 3

0
0 0.5 1 1.5 2
Load-point displacement (mm)

4
(b)
WMWTP1

3
Load (kN)

0
0 0.5 1 1.5 2
CMOD (mm)

Figure 4.42. Test results obtained from the TPB test of masonry panel with mortar

type W: a) load vs. load-point displacement curve and b) load vs. CMOD curve.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 145

4.5
(a)
4 SMWTP4
3.5
3
2.5
Load (kN)

2
1.5

1
0.5
0
-0.5
0 0.2 0.4 0.6 0.8 1 1.2
Load-point displacement (mm)

4.5
(b)
4 SMWTP4
3.5

3
2.5
Load (kN)

2
1.5

1
0.5

0
-0.5
0 0.2 0.4 0.6 0.8 1 1.2
CMOD (mm)

Figure 4.43. Test results obtained from the TPB test of masonry panel with mortar

type S: a) load vs. load-point displacement curve and b) load vs. CMOD curve.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 146

(a) Masonry panel with mortar type W (WMWTP1)

(b) Masonry panel with mortar type S (SMWTP4)

Figure 4.44. Crack patterns of masonry panels under TPB load.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 147

4.6 Numerical Simulation of Three-Point Bending Tests

In order to simulate the fracture behaviour of the masonry beams, the micro-model

proposed in Chapter 3 was utilised for this purposed. The simplified micro-modelling

approach was followed wherein the mortar joints are represented through interfaces of

zero thickness. Figure 4.45 presents the finite element modelling employed for the

masonry beams. Although there was a central notch in each panel with mortar type S,

the notch was neglected in the modelling because the notch depth was very small in

comparison with the panel depth. As the failure of the panels were governed by tensile

and shear failure in the mortar joints, only mode I and mode II failure were considered

and the interface failure surface was modelled using a Mohr-Coulomb failure surface

with a tension cut-off. Brick failure was excluded. The elastic modulus of 3360 MPa

obtained from a fit of the initial linear part of the test results was employed and a

Poisson’s ratio of 0.2 was assumed in the simulations. The parameters used for the

mortar interfaces are listed in Table 4.14. The shear parameters were within 20% of the

reported results in Section 4.5.2 which are still acceptable in comparison with the scatter

of masonry test results. As the model employs a constant dilatancy angle, the dilatancy

angle was assumed to equal zero initially. A reason for this choice and an investigation

of the effect of dilatancy angle will be given later. The tensile bond strengths were

related to the values of the cohesion. Van Der Pluijm (1993) carried out a testing

program and obtained a ratio of the cohesion to the tensile bond strength that ranges

from 1.3 to 6.5. In this study the ratios of 4 and 1.7 were employed for the interfaces

with mortar types W and S, respectively. Using the estimated tensile bond strengths, the

values of mode I fracture energy were also then estimated.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 148

334 mm
1200 mm

Figure 4.45. Finite element modelling for the masonry beams.

Table 4.14. Parameters used for the mortar interfaces for the simulations of

masonry beams.

Mortar Tension Shear

type f tc (MPa) G fI (Nmm/mm2) c (MPa) tanI tan\ G fII (Nmm/mm2)

W 0.086 0.002 0.344 0.74 0.0 0.037

S 0.128 0.003 0.216 0.89 0.0 0.0125

The experimental and numerical responses are compared in Figures 4.46 and

4.47 for masonry beams with mortar types W and S, respectively. With the parameters

used a reasonable agreement was achieved in each case in terms of the load-

displacement and load-CMOD curves. The model was able to capture the post-peak

behaviour reasonably well.


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 149

4
(a)
Experimental
Numerical
Load (kN) 3

0
0 0.5 1 1.5 2
Load-point displacement (mm)

4
(b)
Experimental
Numerical
3
Load (kN)

0
0 0.5 1 1.5 2
CMOD (mm)

Figure 4.46. Comparisons of the experimental and numerical results of the

masonry beam with mortar type W: a) load-displacement curve and b) load-

CMOD curve.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 150

4.5
(a)
4 A Experimental
Numerical
3.5

3
2.5
Load (kN)

2 B

1.5
C
1
0.5

0
-0.5
0 0.2 0.4 0.6 0.8 1 1.2
Load-point displacement (mm)

4.5
(b)
4 Experimental
Numerical
3.5

3
2.5
Load (kN)

1.5
1

0.5
0

-0.5
0 0.2 0.4 0.6 0.8 1 1.2
CMOD (mm)

Figure 4.47. Comparisons of the experimental and numerical results of the

masonry beam with mortar type S: a) load-displacement curve and b) load-CMOD

curve.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 151

The crack patterns at failure for both mortar types are also depicted and

compared with the deformed specimens obtained from the simulations (note the

deformations were scaled to enhance the visualization). Figure 4.48 compares the crack

patterns of the masonry panel with mortar type W, while Figure 4.49 shows the

simulated and actual crack pattern for the masonry with mortar type S. The cracks zig-

zagged through the head and bed joints without any crack penetrating the bricks. The

crack patterns clearly show that the failure of the masonry beams with the relatively low

bond strength mortar was governed by both tensile and shear fracture (mode I and mode

II fracture) of the mortar joints. For the panel with mortar type W, the simulation result

was slightly different from the experimental crack pattern whereas the crack pattern of

the panel with mortar type S was reasonably and compared well.

WMWTP1

(a) Experimental

(b) Numerical

Figure 4.48. Comparison of the experimental and numerical crack patterns at

failure for the masonry panel with mortar type W under TPB.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 152

SMWTP4

(a) Experimental

(b) Numerical

Figure 4.49. Comparison of the experimental and numerical crack patterns at

failure for the masonry panel with mortar type S under TPB.

To be able to acquire a better understanding of the failure behaviour of masonry

beams and how cracks propagate, the simulation of a masonry beam with mortar type S

was used to study in detail the importance of several of the material parameters. Several

points along the load-displacement path are also examined in detail. The considered

points were A, B and C on the load-displacement curve as shown in Figure 4.47(a).

From the analysis it was found that the initial tensile inelastic failure occurred at the

bottom interface node of the central head joint of the bottom course. In the tension

region a number of the interface nodes were subjected to both tension and shear. The

bottom midspan region reached the critical crack opening displacement before the peak

load was reached. The active failure points at the peak load point A are depicted in

Figure 4.50(a). The symbols used in Figure 4.50 denote either an activated inelastic

failure surface, unloading from a failure surface or a critical displacement either

opening or sliding being activated. At this stage, only one point had reached the critical
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 153

opening displacement indicating that the crack would not be visible in the test at the

peak load. However, shortly after the peak, the tensile crack propagated through the

central head joint where the initial tensile inelastic failure occurred. The second head

joint crack followed and was associated with a snap back corresponding to point B in

Figure 4.47(a) and the failure points illustrated in Figure 4.50(b). The failure points

when the crack propagated through the third head joints are presented in Figure 4.50(c)

and correspond to point C in Figure 4.47(a). Finally, the collapse mechanism was

formed with a stepped crack through the head and bed joints as shown in Figure 4.50(d).

(a) The failure points at the peak load, point A

(b) The failure points when the snap back occurs, point B

3
2
1

(c) The failure points when the cracks propagate through three head joints, point C
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 154

(D) The failure points at collapse

Critical displacement Inelastic tensile failure Inelastic shear failure Unloading

Figure 4.50. The simulation results — Progression of the failure points at several

points along the load-displacement curve of the masonry beam with mortar type S.

In the study so far, a zero dilatancy angle was assumed and the dilatancy angle

was taken to be independent of the amount of slip. A parametric investigation of the

effect of the dilatancy angel was carried out. As the model employs a constant dilatancy

angle, the numerical responses with different values of the dilatancy angle were

compared and examined. The dilatancy coefficients (tan\) of 0.1 and 0.2 were

considered for both mortar types as it was found that the initial dilatancy coefficient, at

zero shear-slipping displacement, varies from 0.021 to 0.438 for masonry joints with

mortar type W and from 0.100 to 0.266 for mortar type S, see Figure 4.20.

Figures 4.51 and 4.52 show the experimental and simulation load-displacement

and load-CMOD curves of the masonry beams with mortar types W and S, respectively.

As can be seen, the dilatancy effect starts its role from the first peak by increasing the

peak slightly and plays an important role on the softening branch which leads to an

increasing of the second peak in particular in the case of panel with mortar type W as

the second peak becomes higher than the first peak even if a small dilatancy angle is

adopted. This implies that a constant nonzero dilatancy coefficient leads to an


CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 155

overestimated strength. Employing a zero dilatancy coefficient seems to be a better

choice for the model used in this study.

5.0
tan\ = 0.2
Experimental
tan\ = 0.1
4.0 Numerical
tan\ = 0.0

3.0
Load (kN)

(a)

2.0

1.0

0.0
0 0.5 1 1.5 2
Load-point displacement (mm)

5.0
tan\ = 0.2
Experimental
tan\ = 0.1
4.0 Numerical
tan\ = 0.0

3.0
Load (kN)

(b)
2.0

1.0

0.0
0 0.5 1 1.5 2
CMOD (mm)

Figure 4.51. Effects of the dilatancy angle on the simulation of masonry beam with

mortar type W: a) on the load-displacement curve and b) on the load-CMOD

curve.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 156

4.5

4 tan\ = 0.2 Experimental


3.5 tan\ = 0.1 Numerical
tan\ = 0.0
3 X

2.5 Y
Load (kN)

2 (a)

1.5
Z
1

0.5
0

-0.5
0 0.2 0.4 0.6 0.8 1 1.2
Load-point displacement (mm)

4.5

4 tan\ = 0.2 Experimental


tan\ = 0.1 Numerical
3.5
tan\ = 0.0
3

2.5
Load (kN)

2 (b)
1.5

0.5
0
-0.5
0 0.2 0.4 0.6 0.8 1 1.2
CMOD (mm)

Figure 4.52. Effects of the dilatancy angle on the simulation of masonry beam with

mortar type S: a) on the load-displacement curve and b) on the load-CMOD curve.

The increased second peak leads to an overestimation of the post peak response.

To understand the effect of dilatancy, the progression of inelastic activated failure

points within the finite element mesh at relevant points on the load-displacement curve
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 157

are re-investigated as dilatancy is a phenomenon which accompanies inelastic shearing

deformation. The simulation of masonry beam with mortar type S was utilised. It was

found that shear and hence dilatancy was activated when the load reached point X on

the load-displacement curve, see Figures 4.52(a) and 4.53(a). The effect of dilatancy

however appeared after the peak load because shear inelastic failure extends over the

bed joint as can be seen in Figure 4.50(a) which shows the failure points at the peak

load. When the load reached point Y in Figure 4.52(a) with the dilatancy effect was

more dominant, some of the interface nodes had attained their critical shear

displacements, see Figure 4.53(b). The corresponding dilatancy coefficients should at

this stage be zero as can be observed from the experimental results in Figure 4.18: the

dilatancy coefficient not only depends on the confining pressure but also decreases

exponentially with increasing shear-slip displacements. This is one reason why a

constant nonzero dilatancy coefficient leads to an overestimation of the strength of the

masonry panel. The activated failure zones when the load reached point Z where the

effect of dilatancy was prevalent, are presented in Figure 4.53(c). Beyond load point Z,

the three values of the dilatancy angle have very little effect on the load deformation

path as there is no further restraint to opening of the horizontal bed joints.

(a) The failure points when the dilatancy first occurs, at point X
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 158

(b) The failure points at point Y

(c) The failure points at point Z

Critical displacement Inelastic tensile failure Inelastic shear failure Unloading

Figure 4.53. The simulation results of the masonry beam with mortar type S — the

failure points at relevant locations on the load-displacement curve to reflect the

dilatancy effects.

4.7 Summary

Three different tests including TPB, shear and compression tests have been performed

on masonry, brick and mortar specimens with the main aim to investigate the failure

behaviour of masonry TPB panels with relatively low bond strength under three-point

bending. The full-scale masonry beams with two different types of mortar were tested.

It was found that the failure of the masonry beams was governed by both tensile and

shear fracture (mode I and mode II) of the mortar joints rather than just mode I failure.

The cracks zigzagged through the head and bed joints without brick failure.
CHAPTER 4 EXPERIMENTAL STUDY – THREE-POINT BENDING TESTS ON MASONRY PANELS 159

In addition, it has been shown that the bricks used exhibited anisotropic

behaviour as different compressive strength was detected from different loading

directions. The shear parameters including the shear bond strength, cohesion, friction

angle, shear modulus and post-peak behaviour (residual bond strength, unloading-

reloading behaviour, mode II fracture energy and dilatancy angle) of each material have

been presented and discussed. The properties of the mortar specimens were very

different from the brick-mortar interface within masonry because of the brick water

absorption and the restraint of the mortar expansion causing triaxial/biaxial stresses in

the mortar. The unloading-reloading behaviour revealed that the behaviour of brick and

mortar was similar to the behaviour of plain concrete, as the unloading stiffness

decreased compared to the initial stiffness when damage exists. Masonry joints

exhibited a different behaviour as the unloading stiffness at the residual stage was close

to the initial stiffness.

Finally, the proposed model using the simplified micro-modelling approach has

been utilised to simulate the fracture behaviour of masonry TPB beams. The model

captured and predicted the experimental results reasonably well with the parameters

adopted. The role of the dilatancy angle were studied and discussed.
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 160

CHAPTER 5
REVIEW OF TIME-DEPENDENT FRACTURE
BEHAVIOUR

5.1 Introduction

As mentioned in the introduction, another crucial aspect of quasi-brittle materials is the

time-dependent fracture behaviour. In the previous chapters, fracture has been treated as

independent of time. In fact, the fracture behaviour depends on the rate of loading. A

number of experimental studies, e.g. Rüsch (1960), Bazant and Gettu (1992) and Zhou

(1992), provided evidence of the time-dependent fracture behaviour of quasi-brittle

materials at static loading rates. Those results revealed that there was a strong

interaction between fracture and creep. At the structure level, many structures built of

quasi-brittle materials, when subjected to sustained loading, can develop cracks which

over time propagate and could eventually lead to structural failure. Karihaloo and

Santhikumar (1999) described the formation of a large crack almost 43 m deep that had

developed in the Zhexi diamond-head buttressed concrete dam built in the Hunan

Province of China which was detected almost 8 years after completion. Extensive

measures were required to repair the crack and thwart further crack growth. Also, there

were a number of sudden collapses of historical buildings such as the collapse of the

civic masonry tower of Pavia, Italy, in 1989 due to sustained loading after surviving for

nine centuries and the partial collapse of the Noto Cathedral, Italy, in 1996. These

examples render the important role of time-dependent effects in the fracture zone and

the need for taking time-dependent fracture into consideration.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 161

In this chapter, the time-dependent fracture behaviour of quasi-brittle materials

is reviewed and briefly presented to provide some background for the formulation in the

subsequent chapter. The review is focused on the fracture behaviour at macroscopic

level to study the prominent features that are to be captured. Mechanisms at microscopic

level can be found in Neville (1995), Young (1988) and Wittmann (1982). Temperature

and humidity effects are not considered in this study.

5.2 Sources of Time-Dependent Fracture

Despite the effects of temperature and humidity, sources of time-dependent fracture

may be classified accordingly to the zones surrounding the crack tip depicted in Figure

5.1 according to Bazant and Planas (1998). As a result, there are three sources of the

time-dependent fracture including the time dependence in the linear elastic zone

(viscoelasticity), in the nonlinear hardening zone (viscoplasticity) and in FPZ (time-

dependent fracture growth or crack rate dependence). However, their relative

importance can be quite variable. For example, in most metals, the contributions of

viscoelasticity and crack rate dependence to the time-dependent response are negligible

compared to the contribution of viscoplasticity.

For quasi-brittle materials in which the nonlinear hardening zone is very small

there are only two main sources of time-dependent fracture: the viscoelasticity due to

creep of the bulk material within the structure outside the FPZ and the crack rate

dependence inside the FPZ. This was numerically confirmed by Bazant and Li (1997)

and Van Zijl et al. (2001a).


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 162

N N
N

F F F
L L L

Brittle materials Metals Quasi-brittle materials

Figure 5.1. Relative sizes of fracture process zone (F), nonlinear hardening zone

(N) and linear elastic zone (L) in different types of materials.

5.2.1 Creep

Creep is one of the major contributions to time-dependent deformation. It is mainly

dependent on stress and also influenced by temperature and moisture content. In a

loaded specimen which is at a constant temperature and without drying, the basic creep

is defined, see e.g. Neville (1995), otherwise shrinkage and the additional creep

simultaneously occur. The additional creep is known as the drying creep or the so-called

“Pickett effect”, see Pickett (1942). In Figure 5.2, creep components are illustrated.

Experimentally, creep can be determined as the difference between the total time-

dependent deformation of a loaded specimen in a drying environment and the

shringkage of a similar unloaded specimen. The drying creep can be calculated by

subtracting the basic creep from the total creep. However, the real mechanism of creep

has not clearly been understood. According to research investigations the real creep

mechanism might be divided into short-time and long-time creep, Wittmann (1982).

The short-time creep is caused by a stress induced redistribution of capillary water

within the microstructure, while the long-time creep is the consequence of displacement

of gel particles and to some extent creep within particles under high concentrated stress.
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 163

Time-dependent deformation
Drying creep = A-B-C

Creep = A-B
C
Basic creep
sealed A

B
Shrinkage

Time

Figure 5.2. Illustration of creep components (Van Zijl 1999).

At the macroscopic level, creep is a phenomenon in which a material continues

to deform with time under sustained loading, see Figure 5.3(a). If deformation is kept

constant, the force required for the constraint relaxes in time, see Figure 5.3(b). The

creep deformation-time curve, Figure 5.3(a), is usually divided into three stages which

include the primary, secondary and tertiary stages. In the primary stage the initial high

creep rate gradually decreases followed by an approximately constant rate, the

secondary stage. Only a part of the creep is recovered upon unloading, Lenczner (1981)

and Neville (1995). Finally, an increased deformation rate marks the onset of the

tertiary stage. In the latter stage the deformation rate increases rapidly until failure

occurs. The last two stages will occur only when the creep load level is high enough to

initiate a sufficiently high level of diffuse micro-cracking coalescing into a macro-crack

which propagates and leads to failure.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 164

failure

primary secondary tertiary


stage stage stage

Deformation
(a)

partial recovery
upon unloading

Time

(b)
Force

Time

Figure 5.3. Time-dependent behaviour: (a) schematic creep deformation-time

curve; (b) schematic relaxation-time curve, (Van Zijl 1999).

In quasi-brittle materials, creep can be observed at all load levels. For example

in concrete at low load levels, it has been found that for stress levels not exceeding

about one-half of the ultimate strength, creep varies in an almost linear proportion to the

applied stress and is known as linear creep, Gilbert (1988). There is only the primary

stage present for this case. At higher stress levels creep increases at a faster rate and

becomes non-linear with respect to stress, as shown in Figure 5.4. This non-linear

behaviour of creep at high stress levels is thought to be related to an increase in

microcracking. Rüsch (1960) found that if the sustained stress is greater than 80% of the

short term peak load, the deformation will continue under the sustained load until failure
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 165

limit is reached. If a creep load is less than 80% of the short term peak load, the

deformation will continue until the creep limit, at which creep is absent, is reached. In

this case failure does not occur and the structure has infinite life. However, Karsan and

Jirsa (1969) and Zhou (1992) found that the descending branch of the load-crack mouth

opening displacement (CMOD) curve in static loading might serve as a failure limit for

sustained loadings, see Figure 5.5.

Specific stress

1.0 failure limit


t=0

creep limit non-linear creep


at t = f
linear creep

0 Strain

Figure 5.4. Influence of load intensity and duration of strain (Gilbert 1988).

Load

failure limit

t=0

CMOD

Figure 5.5. Failure limit for high sustained loadings according to Zhou (1992).
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 166

5.2.2 Cracking and Rate Dependence

In all materials, even those that do not show significant creep, fracture is rate-sensitive.

Bazant and Gettu (1992) mentioned that this is due to the fact that the rupture of

interatomic or intermolecular bonds is a thermally activated process. The probability

that the thermal vibration energy of an atom or molecule (depending on the load) would

exceed the activation energy barrier of the bond increases with the number of

oscillations. It is equal to zero for an infinitely short time interval (high loading rate). A

number of experimental results illustrating the rate effect on the time-dependent

behaviour and on the fracture process are available in the literature, Wittmann et al.

(1987), Bazant et al. (1995), Bazant and Gettu (1992) and Zhou (1992). Some of them

are presented below.

Influence of Loading Rate on Fracture Parameter and on Size Effect

Experimental data clearly showed that fracture parameters (modulus of elasticity, tensile

strength, fracture energy, softening curve, etc.) and size effect are influenced by the

loading rate. The experiments carried out by Bazant and Gettu (1992) dealt with

simultaneous rate and size effects for three-point bending concrete fracture specimens.

Each test was performed under a constant CMOD rate. Figure 5.6(b) shows two load-

CMOD responses for two different rates of loading while Figure 5.6(c) presents two

load-deflection responses. The increase in peak load can be observed when the loading

rate is increased from 1.2 seconds to 20000 seconds.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 167

D
D/6
2.5D
(a)
4000 4000
tp=1.2s

3000 3000
tp=1.2s
load (N)

load (N)
2000
tp=time to peak 2000
tp=20000s
1000 1000 tp=20000s
f'c=37MPa
age=150days
0 0
0.00 0.05 0.10 0.15 0.000 0.025 0.050 0.075 0.100
crack
Crackmouth
mouth open displ.(mm)
open displ. (mm) load-line
Load-line displ. (mm)
displ. (mm)
(b) (c)

Figure 5.6. (a) Specimen geometry; (b) rate effect on load-CMOD response; (c)

rate effect on load-deflection response, Bazant and Gettu (1992).

The influence of loading rate on size effect was investigated using specimens of

three different sizes (D = 38 mm, 76 mm, 152 mm) and CMOD rates ranging from

4u10-11 m/s to 10-5 m/s (the corresponding times to peak ranging from 250000 seconds

to 1 second). Figure 5.7 shows the effect of the loading rate on the peak load for each

size and Figure 5.8 shows the log-log size effect plot, in which the full line represents

Bazant’s size effect equation. According to Bazant and Planas (1998), some general

trends were pointed out that: (i) the peak loads increase with increasing rate of loading;

(ii) the rate dependence of the peak loads is stronger for larger specimens than for small

ones; (iii) the nominal strength decreases with increasing size, approximately following

the size effect law; (iv) the size effect on the peak loads is stronger for slow loading

rates than for fast ones; and (v) a decrease of loading rate causes a shift towards more

brittle behaviour.
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 168

7
large medium small
6

Peak load (kN) 5

0
10-11
1.E-11 10-10
1.E-10 10-9
1.E-09 10-8
1.E-08 10-7
1.E-07 10-6
1.E-06 10-5
1.E-05 10-4
1.E-04
CMOD rate (m/s)

Figure 5.7. Effect of loading rate and specimen size on the peak load, Bazant and

Gettu (1992).

plasticity
0
LEFM
ln ((N/Bf tt)
ln

-1
fast
very slow
slow
usual

-2
-2 -1 0 1 2 3
ln (D/D0 )

Figure 5.8. Log-log size effect plot showing the rate-dependent shift of brittleness,

Bazant and Gettu (1992).


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 169

The rate effect on mode I fracture energy was investigated by Zhou (1992) by

means of three-point bending tests of notched concrete beams (50u50u640 mm). The

loading span was 600 mm and the notch depth was 25 mm. The deflection rates varied

from 0.05 Pm/s to 50 Pm/s, with time to peak loads ranging from about 5 seconds to

5000 seconds. The mean curves of the load-displacement responses are depicted in

Figure 5.9. This figure also depicts the rate effect on the modulus of elasticity and the

softening curve.

300

250 50 Pm/s
2 Pm/s
200 0.2 Pm/s
(N)
load (N)

0.05 Pm/s
150
Load

100

50

0
0.0 0.2 0.4 0.6 0.8 1.0
Deflection (mm)

Figure 5.9. Rate effects on the load-displacement responses obtained from the

central deflection-controlled three-point bending tests on notched concrete beams

carried out by Zhou (1992).

Mode I fracture energy was evaluated according to the RILEM TC-50 FMC

Recommendation (1985) for each rate. The results are plotted in a double logarithm plot

as shown in Figure 5.10.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 170

GfI (Nm/m2)

100
90

80

70

60

50 u (Pm/s)
0.01 0.1 1 10 100

Figure 5.10. Rate effect on mode I fracture energy obtained from the three-point

bending tests on notched concrete beams carried out by Zhou (1992).

The mode I fracture energy reported by Zhou (1992) seems to decrease as

loading rate decreases. The mode I fracture energy was related to the deflection rate in a

power law as

0.04
G fI § u ·
¨ ¸ (5.1)
G fI 0 © u 0 ¹

where u is deformation rate, u 0 = 2 Pm/s and G fI 0 is mode I fracture energy in Nm/m2

at displacement rate u 0 . However, experimental data with a wider range of deflection

rates varying from about 0.0167 Pm/s to 166.67 Pm/s provided by Wittmann et al.

(1987) showed that for much slower loading than static loading (about 1.67 Pm/s) mode

I fracture energy seems to increase with decreasing loading rate, see Figure 5.11. This

trend agrees with Bazant’s size effect law reported in Bazant and Gettu (1992). Both

Wittmann et al. (1987) and Bazant and Gettu (1992) pointed out that the mode I fracture

energy increases under very slow loading due to the influence of creep.
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 171

140

Nm/m ))
GGffI ((Nm/m22

90

40
10-5
1.E-05 10-4
1.E-04 10-3
1.E-03 10-2
1.E-02 10-1
1.E-01 100
1.E+00 101
1.E+01 102
1.E+02
Rate of deflection (mm/min)

Figure 5.11. Rate effect on mode I fracture energy according to Wittmann et al.

(1987).

The effect due to a sudden change of loading rate was also studied by Bazant et

al. (1995). In the tests, the initial CMOD rate was held constant up to a certain point in

the post-peak region. After the load decreased from its peak value to some lower value,

the CMOD rate was suddenly increased or decreased by several orders of magnitude

and the test continued with the new value of a constant CMOD rate. Figure 5.12

illustrates the effect on the load-CMOD curves. Curves A and B correspond to a large

and relatively smaller specimens, respectively. For each curve, a sudden change of slope

of the load-CMOD curve can be observed. Increasing of the loading rate caused the load

capacity to increase resulting in a second peak (Figure 5.12, curve A). Decreasing the

loading rate produced a fast drop in the slope of the load-CMOD curve (Figure 5.12,

curve B).
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 172

5.0
10-8 m/s

4.0
10-5 m/s

Load (kN) 3.0

10-7 m/s
A
2.0
10-8 m/s
B
1.0

0.0
0 10 20 30 40 50 60 70 80
CMOD (micro
CMOD m)
(Pm)

Figure 5.12. Effect of a sudden change of rate on load-CMOD curves, Bazant et al.

(1995).

5.3 Time-Dependent Fracture Behaviour

5.3.1 Concrete Creep Rupture Tests

In order to study time-dependent fracture behaviour, flexural creep rupture tests were

performed on notched concrete beams (100u100u840 mm) by Zhou (1992). The loading

span was 800 mm and the notch depth was 50 mm. Figure 5.13(a) shows a typical creep

curve which exhibits the general trend as illustrated in Figure 5.3(a) in which the

CMOD rate first decreased (primary creep), goes through a constant-rate state

(secondary creep) and then starts to increase at an accelerated rate up to failure (tertiary

creep). The experimental results are presented by the data points. The dashed line is the

theoretical prediction of the model purposed by Zhou (1992).


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 173

100 1.0
(a) (b)
80

Relative load, P/PU


CMOD (Pm) experimental 0.9
60 theoretical

0.8
40
experimental
20 power fit
0.7
theoretical
0
0 100 200 300 400 500 600 10 100 1000 10000
Time (s) Time to failure (s)

Figure 5.13. Flexural creep rupture test results of Zhou (1992): (a) CMOD-creep

results; (b) load-failure time results.

Figure 5.13(b) depicts the experimental results for the load-failure time curve.

The solid line is the power-law regression according to the relationship estimated by

Zhou (1992) as

22
§P·
tf 6¨ ¸ (5.2)
© Pu ¹

where tf is failure time in second, P is sustained load in kN and Pu is the peak load in kN

determined under deflection control (5 Pm/s).

5.3.2 Concrete Relaxation Tests

Another type of test which demonstrates time-dependent fracture behaviour is the

relaxation test. Relaxation tests in tension were also performed by Zhou (1992).

Concrete cylinders, 64 mm in diameter and 60 mm in length with 12 mm depth

circumferential notches, were used in the tests. The tests were performed under

displacement control. The displacement was increased at a constant rate up to a point


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 174

just after the peak and then the displacement was held constant for a certain period of

time and the stress relaxation recorded. Figure 5.14 illustrates a typical result. In this

test, the held time period was about 60, 30, 30 minutes, when the stress was 2.65, 1.75,

0.90 MPa, respectively. It can be seen that the stress decreases quickly at first but then

slows down at each held period, see Figure 5.14(b).

3.0 3.0
(a) (b)
2.5 2.5

2.0 2.0

Stress (MPa)
Stress (MPa)

1.5 1.5

1.0 1.0

0.5 0.5

0.0 0.0
0 0.01 0.02 0.03 0.04 0.05 0 20 40 60 80 100 120 140
Displacement (mm) Time (min)

Figure 5.14. A typical result obtained from relaxation test on a notched concrete

cylinder of Zhou (1992): (a) stress vs. displacement; (b) stress vs. time.

5.3.3 Masonry under High Sustained Compressive Loading

The time-dependent effects of heavily stressed masonry structures have found

increasing interest from masonry researchers due to sudden collapses of famous

masonry buildings such as the Pavia Civic Tower in 1989 and the Noto Cathedral in

1996. Also collapse investigation of the tower of Pavia made by Binda et al. (1992)

revealed that the time-dependent mechanical damage due to high sustained loading was

a possible cause of collapse.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 175

To obtain a characterisation of creep behaviour of ancient masonry under high

sustained compressive stresses, Pina-Henriques (2005) carried out short-term creep tests

in which failure occurred between 0.5 and 8 days and long-term creep tests in which

failure took place between 400 to 800 days. Three different types of ancient masonry

prisms were considered: rubble prisms from the crypt of the Monza Cathedral denoted

by MRu, rubble prisms recovered from the wall ruins of the Pavia Civic Tower denoted

by PRu and regular prisms recovered from the belfry ruins of the Pavia Civic Tower

denoted by PRe. The dimensions of the MRu specimens were about 200u200u320 mm

while the PRu and PRe specimens were approximately 200u200u330 mm. Teflon sheets

were used to minimize restraining frictional effect. Both creep tests were performed by

applying the load in successive steps at a given time interval instead of executing

standard creep test with a constant load. Both creep tests were repeated with a series of

different loads to characterise the creep behaviour of the material, as a limited number

of specimens were available. For short-term creep tests, the average vertical (Hv) and

horizontal (Hh) strains are illustrated in Figure 5.15 while Figure 5.16 depicts the results

for long-term creep tests. Note that MRu specimens were tested with load steps of 0.25

N/mm2 at intervals of three hours while load steps of 0.30 N/mm2 at intervals of eight

hours were applied to PRu and PRe specimens for short-term creep tests. For long-term

creep tests only PRe specimens were considered with two different holding periods of

three months and six months. The same crack patterns were reported for both short-term

and long-term creep tests. It was pointed out that the failure mode is quite dangerous as

thin and diffuse vertical cracks developed in the specimens during testing but large

cracks and spalling were only observed at failure. Also, the investigation of the strain

rate evolution with the applied stress demonstrated that the three main stages of creep

curve existed for both short-term and long-term creep tests.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 176

-8.0 -12.0
MRu_3 MRu_4 PRu_4
MRu_1
-6.0 PRu_2
-8.0 PRu_5
MRu_2
v [10-3]

v [10-3]
MRu_5
-4.0

-4.0 PRu_3
-2.0
MRu_6
0.0 0.0

MRu_6

4.0 10.0 PRu_5


h [10-3]

h [10-3]
PRu_3 PRu_2

MRu_2 MRu_5
8.0 20.0

MRu_3 MRu_4
MRu_1 PRu_4
12.0 30.0
0.0 0.5 1.0 1.5 2.0 2.5 0.0 1.0 2.0 3.0 4.0 5.0
Time [days] Time [days]

(a) MRu prisms (b) PRu prisms

-6.0
PRe_5
PRe_8 PRe_7

-4.0
v [10-3]

PRe_6
-2.0

0.0

PRe_6
4.0
h [10-3]

8.0

12.0 PRe_5
PRe_8
PRe_7
16.0
0.0 2.0 4.0 6.0 8.0
Time [days]

(c) PRe prisms

Figure 5.15. Strain-time diagrams obtained from short-term creep tests on ancient

masonry prisms according to Pina-Henriques (2005).


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 177

-3.0 -4.5
 =1.5  =2.2  =2.8  =3.5  =4.1  =4.1  =4.8  =5.4  =6.1
 =4.8  =6.7
-2.0 -3.0

v [10-3]
v [10-3]

-1.0 -1.5

89 days 95 days 91 days 91 days 97 days 184 days 187 days 188 days 180 days
0.0 0.0

1.0 2.0

h [10-3]
h [10-3]

2.0 4.0 PRe_11


PRe_9 PRe_12
PRe_10 PRe_13
PRe_14
3.0 6.0
0 100 200 300 400 500 0 200 400 600 800
Time [days] Time [days]

(a) with holding periods of three months (b) with holding periods of six months

Figure 5.16. Stain-time diagrams obtained from long-term creep tests on ancient

masonry PRe prisms according to Pina-Henriques (2005).

In addition, the evolution of the creep coefficient, defined as the ratio of the

creep strain to the elastic strain, was interpreted from both short-term and long-term

creep results as shown in Figures 5.17(a) and 5.17(b), respectively. Creep coefficients

of approximately 0.10 and 0.15 were found at the end of 8 hours and 90 days of

sustained loading, respectively, implying that most creep strain occurs at an early stage

as the fastest failure time for short-term creep tests is more than 0.5 days while it is

more than 400 days for long-term creep tests. It was also pointed out that the long-term

creep coefficient of approximately 0.15 is significantly lower than the values

recommended by Eurocode 6, CEN (2003), for new masonry made with clay units,

which range from 0.5-1.0.


CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 178

0.20 0.20

Creep coefficient (-)


Creep coefficient (-) 0.16 0.16

0.12 0.12

0.08 0.08

0.04 0.04

0.00 0.00
0.0 2.0 4.0 6.0 8.0 0 20 40 60 80 100
Time (h) Time (days)

(a) (b)

Figure 5.17. Evolution of creep coefficient with time obtained from creep tests on

ancient masonry PRe prisms according to Pina-Henriques (2005): (a) short-term

creep tests and (b) long-term creep tests with holding periods of three months.

5.4 Summary

An overview of the main features of time-dependent fracture behaviour at macroscopic

level of quasi-brittle materials especially concrete and masonry has been given in this

chapter. For mode I fracture in quasi-brittle materials, there are two main sources of

time-dependent fracture including the viscoelasticity due to creep of the bulk material

within the structure outside the FPZ and the crack rate dependence inside the FPZ.

Creep behaviour was described and discussed at both low and high load levels. For a

sufficiently high load level, all three main stages of creep curve could be observed.

Some experimental evidence for the effect of loading rate on time-dependent behaviour

and on the fracture process has been presented. All fracture parameters and size effect

are influenced by the loading rate. Not only does the peak load increase with increasing

loading rate but also the modulus of elasticity. Furthermore mode I fracture energy is
CHAPTER 5 REVIEW OF TIME-DEPENDENT FRACTURE BEHAVIOUR 179

likely to have the same trend. Rate dependence of the peak load is stronger for larger

specimen than for small one. Sudden changes of the loading rate have a significant

effect on the load deformation response.

There is a strong interaction between fracture and creep in quasi-brittle

materials, which is very important for both failure and serviceability analyses of

structures. Analysis of long-term fracture propagation in quasi-brittle materials must

take this interaction into account.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 180

CHAPTER 6
MODELLING OF TIME-DEPENDENT MODE I
FRACTURE

6.1 Introduction

As pointed out in the previous chapter, many structures built of quasi-brittle materials

such as concrete or masonry, when subjected to sustained loading, can develop cracks

which over time propagate and could eventually lead to structural failure. Analysis of

creep under sustained loading is of fundamental importance in the prediction of the time

to failure of many concrete and masonry structures. Understanding and being able to

predict how cracks propagate under various levels of load rate and load duration is very

important for critical infrastructure such as mass concrete dams (see Karihaloo and

Santhikumar (1999), Barpi et al. (1999), Barpi and Valente (2000), Barpi and Valente

(2002) and Barpi and Valente (2005)), concrete tunnel lining, bridge abutments, historic

structures and many more.

Time dependence may be accounted for in several ways. The simplest way is to

include its effect indirectly through parameters in the time-independent formulation.

Thus, the time-independent elastic and fracture parameters (E, ftc, GfI, softening curve,

etc.) are simply considered to depend on the rate. This may be a useful expedient for

some situations with constant rate only. More detailed models are required for the

situations with widely variable loading rates, Bazant and Planas (1998).
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 181

Bazant and Li (1997) identified two main sources for time-dependent fracture in

quasi-brittle materials: the viscoelasticity of the bulk material within the structure

outside the crack zone and the cohesive crack rate dependent opening. The crack rate

dependence is associated with the rate of the process of the breakage of bonds within

the fracture process zone (FPZ). The viscoelasticity of the bulk material can lead to a

redistribution of stress as well as additional stresses which cause the micro-cracks

within the process zone to spread with time and a possible propagation of cracking and

potential failure at an early age. Nevertheless, the observed strength increase with

loading rate cannot be captured if only bulk creep is considered as confirmed by Wu

and Bazant (1993). Bazant and Xiang (1997) also suggested that there is a mechanism

in the FPZ which is solely related to crack rate dependence and which governs the crack

propagation velocity, especially in the final stages of crack opening. In addition, Van

Zijl et al. (2001b) presented evidence that the inclusion of crack rate dependence was

important in the estimate of the time to failure of a structure under the sustained load.

Many attempts have been proposed in the past to study time-dependent fracture

and to explain the macroscopically observed behaviour of creep fracture. Santhikumar

and Karihaloo (1998) discuss three main approaches. The first approach is based on the

concept of activation energy and rate-dependent softening (see Bazant (1990), Bazant

and Jirasek (1992), Bazant (1993), Bazant and Jirasek (1993), Wu and Bazant (1993),

Bazant and Li (1997), Li and Bazant (1997), Van Zijl et al. (2001a) and Van Zijl et al.

(2001b)). The second approach introduces time dependency into the fictitious crack

model by adoption of a rheological model (see Hansen (1990), Zhou (1992), Zhou and

Hillerborg (1992), Carpinteri et al. (1992), Carpinteri et al. (1995), Barpi and Valente

(1998), Barpi et al. (1999), Barpi and Valente (2002) and Barpi and Valente (2005)).
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 182

The constitutive laws are obtained by fitting test results. This approach ignores the

structural interaction of the bulk creep on the stresses induced on the crack from the

surrounding uncracked material. The third approach combines a rheological model for

viscoelastic behaviour with a micromechanical homogenization model for tension

softening in the FPZ (see Santhikumar and Karihaloo (1996), Santhikumar and

Karihaloo (1998), Santhikumar et al. (1998), Karihaloo and Santhikumar (1999), Barpi

and Valente (2003a), Barpi and Valente (2003b) and Barpi and Valente (2004)).

This research considers static fracture under sustained loading, time-dependent

fracture resulting from the viscoelasticity of the bulk material outside the FPZ and

cohesive crack rate dependence. Creep deformations are assumed to be irrecoverable

and are treated as dislocations. The magnitude of the bulk creep deformations are taken

to be related to the elastic deformations, material parameters and time. The simple

concept of a creep coefficient is adopted to account for bulk creep. When inelastic

deformations such as those within the FPZ are present under a sustained load, bulk

creep within the elastic material of a structure causes a system of self-equilibrating

stresses to develop and additional tension at the head of the FPZ which results in

propagation of the crack tip. A simplified crack rate model is proposed in this chapter

and used to represent rate-dependent crack opening. Only time-dependent mode I

fracture is considered in the present study.

In order to capture time-dependent creep fracture, the finite element model

described in Chapter 3 is extended by introducing creep displacements and crack rate

dependency into the equilibrium system leading to the interaction between cracking and

time-dependent behaviour.
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 183

This chapter begins with the basic structural relations. A description of bulk

creep (both long-term and short-term) is given and a proposed model for crack rate

dependency is presented. The structural governing equations are then formulated in LCP

form as a function of a quasi-prescribed displacement rate control. The solution

algorithm needed to solve the LCP is outlined. The sensitivity analysis and behaviour of

the proposed model are illustrated. Finally, in order to verify the formulation, the

developed model is applied to predicting time-dependent crack propagation in plain

concrete subjected to sustained loading as experimental data on masonry are lacking.

Some examples are given and compared with published results.

It is worth noting that the time-dependent behaviour of masonry structures at

low (service) load levels have been intensively studied and a number of models have

been proposed and utilised, for example, Shrive and England (1981), Warren and

Lenczner (1981), Brooks and Bingel (1994), Maksoud and Drysdale (1995) and Anand

and Bhatia (1995).

Although the major causes of time-dependent deformation are shrinkage and

creep, shrinkage is disregarded in this study as it is assumed that at high load level creep

appears to be a more important source of time dependence and time-dependent fracture

behaviour is mainly governed by interaction of creep and rate-dependent cracking. A

model of both shrinkage and creep can be found in Van Zijl (1999).

6.2 Basic Structural Relations

Consider a matrix-vector formulation such as the finite element method describing

structural behaviour in Chapter 3. Here the structural behaviour is written in rate form
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 184

with respect to time. The global structure load vector rate is denoted by F while the

conjugate unconstrained global displacement vector rate is denoted by u . For a linear

elastic small displacement problem the fundamental relationship can be expressed as

F Ku (6.1)

where K represents both the secant and tangent structure stiffness matrix. As described

in Chapter 3, associated with each finite element (the basic triangular element) are

generalised forces/stresses which can be grouped into a vector Qu as well as conjugate

generalised displacements/strains qu (the subscript “u” refers to element quantities). At

a structural level the element generalised forces and displacements can be assembled

into structural vectors Q and q , respectively. Equilibrium relations between the load

vector rate and the rate of the generalised forces can be established for each element.

Assembling the equilibrium relations on a structural level gives

F AQ Ÿ F 
AQ (6.2)

where A is the assembled equilibrium matrix. The equilibrium matrix, when nodal

movements are ignored, is a matrix of constants and hence is independent of

deformation and time. Compatibility conditions between the global displacement vector

rate u and the vector of generalised displacement rates can be determined through the

theorem of virtual work ( F Tu Q Tq ) and Equation (6.2), that is

A Tu q (6.3)

The generalised displacement rates q are taken to be the sum of recoverable

generalised elastic displacement rates q e , irrecoverable generalised inelastic

displacement rates q p and irrecoverable generalised creep displacement rates q c , hence


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 185

q q e  q p  q c (6.4)

Note again the recoverable component of creep, shrinkage and thermal effects

are not considered here. Using Equations (6.3) and (6.4), the recoverable generalised

elastic displacement rates are expressible by

q e A Tu  q p  q c (6.5)

Q q p + q c dt

 dt
Q

q e dt

S
1

q
qp + qc qe

Figure 6.1. Unloading constitutive relationship for time-dependent behaviour.

As it is assumed that there is no damage (degrading of the instantaneous

unloading stiffness) through the history of loading and that the instantaneous unloading

stiffness is equal to the initial secant stiffness. For a linear elastic material the

recoverable component of the generalised displacement rates can therefore be

represented by

 Sq
Q (6.6)
e

where S diag ª¬S1 , S 2 ...Sm º¼ is an assembled block-diagonal matrix of “m” element

kernel stiffness matrices. Figure 6.1 shows a representation of Equation (6.6).

Combining Equations (6.2), (6.5) and (6.6), yields


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 186

F 
AQ ASq e ASA Tu  AS q p + q c Ku  AS q p + q c (6.7)

or

u K -1F  K -1 AS q p + q c (6.8)

or

u D K -1F unit  K -1 AS q p + q c D ueunit  K -1 AS q p + q c (6.9)

where D is a load factor rate. F unit and uunit


e are the global structure load vector and the

elastic component of the global displacement u due to a unit load factor, respectively.

The term  AS q p + q c in Equation (6.7) represents equivalent nodal loads calculated

by imposing the irrecoverable displacement rates q p + q c on the structure. Substituting

Equation (6.5) into Equation (6.6), and using Equation (6.8) one can write

 SA Tu  Sq  Sq


Q p c SA TK -1F  SA T K -1 AS q p + q c  S q p + q c (6.10)

or

 SA T K -1F  Z q + q
Q (6.11)
p c

or

 D SA T K -1F unit  Z q + q D Qunit  Z q + q


Q (6.12)
p c e p c

in which Z is a stress matrix defined by SATK-1AS-S and Qunit


e is the elastic component

of the generalised forces Q due to a unit load factor. Equation (6.10) is in the familiar

relaxation format where the structure is firstly disconnected at the nodes and the

displacements q p + q c applied to the structural members, deforming the members. To


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 187

reconnect the structure, imposed generalised forces due to the irrecoverable

displacements need to be applied and are given by

S q p + q c (6.13)

The members are then reconnected and the structure finds its own equilibrium

state. The restoring generalised forces to maintain equilibrium are given by

SA T K -1 AS q p + q c (6.14)

Note that the system of generalised forces Z q p + q c is a self equilibrating

system since (see Equation (6.2))

AZ ASA T K -1 AS  AS 0 (6.15)

One can also show using Equations (6.3) and (6.4) that

Zq ZA Tu SA K ASA


T -1 T
 SA T u 0
(6.16)
? Zq e  Z q + q
p c

The generalised inelastic displacement rates q p can be expressed as a function

of a supervector of inelastic multiplier rates, denoted by  . For an associated flow rule

it can be expressed as

q p N (6.17)

while for a non-associated flow rule, q p reads

q p V (6.18)

where N is a normality matrix and V is a dilatancy matrix (dilatancy assumed to be

independent of  ).
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 188

6.3 Bulk Creep or Viscoelasticity

The generalised creep displacements qc and its rate are defined by assuming that the

creep displacements are proportional to the recoverable generalised elastic

displacements at time t and a creep coefficient I t , as determined by

qc I t qe q c I q e  I qe (6.19)

Since the creep displacements are assumed to be proportional to the elastic

deformations, creep only scales uniformly all deformations and there will be no induced

stresses for a homogenous material if there are no inelastic displacements. This implies

that for a crack to propagate under creep in a “homogenous material” there must exist a

process zone (microcracking).

6.3.1 Long-Term Bulk Creep

For long periods exceeding several months, the creep coefficient I(t), which is the ratio

of the creep displacement to the elastic displacement at time t, is expressed by an

exponential growth function or negative exponential power law as

§ t
·
I t If ¨1  e T1 ¸ (6.20)
¨ ¸
© ¹

where If is the creep coefficient at time infinity, T1 is the retardation time at which

63% of the maximum value of I is obtained. Figure 6.2 illustrates the evolution of I

with time.
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 189

If

I 0.63If

T1
t

Figure 6.2. Evolution of long-term creep coefficient with time.

For a time increment such that t t i  't , Equation (6.20) can be approximated by

 ti

If e T1
'I 't (6.21)
T1

For an acceptable error H, the maximum time increment 't max must be less than

't max 2
d  ti
(6.22)
T1
If e T1

6.3.2 Short-Term Bulk Creep

For short creep duration (not exceeding several months), Bazant and Chern (1985)

proposed a double power law for the creep coefficient I(t). Bazant and Chern’s

expression is written here in a modified form as

§ 1
· 1
I t, t c If ¨ t c 3  0.05 ¸ t 8 (6.23)
© ¹

where t' is age of the material when the first load is applied; t and t' are in days. The

incremental form of Equation (6.23) may be expressed as


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 190

0.125If § 31 ·
'I 7 ¨ t c  0.05 ¸ 't (6.24)
t i8 © ¹

The time increment must be less than the maximum time increment 't max calculated

using Equation (6.25) for an acceptable error H.

15
8
128t 
't max d i
(6.25)
§ 1 ·
7If ¨ t c 3  0.05 ¸
© ¹

Equations (6.21) and (6.24) can be written in general form as

'I CI 't (6.26)

6.4 Crack Rate Dependency

Based on the activation energy theory of the rate-process of bond ruptures in the

fracture process zone and the assumption that the cracking rate is governed by this

process, Wu and Bazant (1993) derived the following expression for the crack opening

 for the case of constant temperature.


rate w

ª V  V t (w) º

w  r sinh «
w » (6.27)
«¬ k 0 V t (w)  k1f tc »¼

 r is a constant, reference crack opening displacement rate, t(w) describes the


where w

strength degradation with an infinitely slow displacement rate and k0 is a constant in the

range of 0.01-0.08. The parameter k1 is a small positive constant to prevent the

denominator in Equation (6.27) from becoming zero. The expression for describing the
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 191

crack rate dependency was modified by Van Zijl et al. (2001b) and is here recast

without the residual term and written in terms of the inelastic multiplier and its rate, as

ª § O ·º
  t O «1  k 0 sinh 1 ¨  ¸» (6.28)
¬ © Or ¹¼

with Or being a constant and refers to a reference inelastic multiplier rate. A simple,

alternative expression proposed by Sluys (1992) and De Borst et al. (1993), in which the

cracking process is considered to be viscous and the activation energy-controlled

process is described with a viscosity term which acts only in the fracture process zone,

is

ª m º
V V t ( N) «1  N » (6.29)
¬ f tc ¼

where m is the cracking viscosity, N is the cracking strain and N is the cracking strain

rate. The rate term is degraded with increasing crack width to avoid a residual strength.

Van Zijl et al. (2001b), however, showed that with the simple expression, Equation

(6.29), it was impossible to capture the observed strength increase over the entire range

of loading rates. Using Equation (6.28), Equation (3.50) in Section 3.5.2 (Chapter 3) can

be modified to include rate-dependent cracking and can be rewritten as

0tM
¬
N TQ - ªI + L O º r  H A  t 0
¼
(6.30)

ª § O · § O · § O ·º

where L O diag « k 0 sinh 1 ¨ 1 ¸ ,k 0 sinh 1 ¨  2 ¸ ,...k 0 sinh 1 ¨  A ¸ » is an assembled
¬ © Or1 ¹ © Or 2 ¹ © OrA ¹¼

block-diagonal crack rate dependency matrix of “ A ” inelastic multipliers and I is the

identity matrix. According to Equations (3.41) and (6.30), the evolution of the inelastic

failure surface with rate-dependent crack opening may thus be represented as


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 192

¬
 = ª I + L O º r  H
¼
(6.31)

6.5 Finite Incremental Formulation

6.5.1 Viscoelasticity with Rate-Independent Crack Opening

Assuming a non-associated flow rule and using Equations (6.12) and (6.18), the

nonholonomic rate form of Equation (3.51) in Section 3.5.2 becomes

0 t M  N TQunit
e  N T Zq c  N T ZV  H  A  t 0 (6.32)

Via Equations (6.16) and (6.19), one can write

§ ·
Zq c
I
1

 Z q p + q e  Z ¨ q p + q c  I qe ¸
© ¹ (6.33)
? Zq c
1
1 I
I Zq p  IZqe

Substituting the above into Equation (6.32) and using Equation (6.18) gives

I T § 1 ·
0 t M  N TQeunit  N Zqe  ¨ N T ZV  H ¸  A  t 0 (6.34)
1 I © 1 I ¹

To be able to solve the problem numerically the rate equations must be transformed into

approximate incremental form. When the time increment is small enough Equation

(6.19) can be approximated by

q c I t i qe  'I qe t i (6.35)

Note that subscript “i” denotes the value at the time step t t i . Using Equations (6.26)

and (6.35), Equation (6.34) can be written in incremental form as


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 193

§ 'tCI · T § 1 ·
0 t M 'N TQ eunit  ¨ ¸ N Zq e t i  ¨ N T ZV  H ¸  A  t 0 (6.36)
¨ 1 I t ¸ ¨ 1 I t ¸
© i ¹ © i ¹

When the applied loads are sustained we have F 0 or 'D 0 , hence, under

sustained loading Equation (6.36) becomes

§ CI · T § 1 ·
0 t M 't ¨ ¸ N Zq e t i  ¨ N T ZV  H ¸  A  t 0 (6.37)
¨ 1 I t ¸ ¨ 1 I t ¸
© i ¹ © i ¹

Equation (6.37) is the governing equation with rate-independent cracking under

sustained loading.

6.5.2 Viscoelasticity with Rate-Dependent Crack Opening

Equation (6.30) can be approximated by using a Taylor’s series expansion of the crack


rate dependency matrix L O about O t i and is expressed by

0tM N TQ t i - r - H t i - L
§ 1 · (6.38)
©
't ¹

 N T Q - ¨ I  Lˆ H  L ¸  A  t 0

in which

^L L 2 ...LA `
T
L 1 (6.39)

§ § O (t i ) · · ª §  · § O (t i ) · º
Ln k 0 rn ¨ 1  ¨ ¸ ¸ «sinh 1 ¨ O (t i ) ¸  ¨ ¸ » n 1, 2...A (6.40)
¨ © Otc ¹ ¸ « 
© n ¹
¬ © Or ¹ n ¨© Or2  O (t i ) 2 ¸ »
¹n ¼

L diag > L1 , L 2 ...LA @ (6.41)

k 0 rn § § O (t i ) · ·
¨1  ¨ ¸ n 1, 2...A
¨ © Otc ¸¹ ¸

Ln (6.42)
Or2  O (t i ) 2 © n¹
n
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 194

Lˆ diag ª¬ Lˆ 1 , Lˆ 2 ...Lˆ A º¼ (6.43)

ª § O (t i ) · § O (t i ) · º
L̂ n k 0 «sinh 1 ¨ ¸ ¨ ¸ » n 1, 2...A (6.44)
« © Or ¹n ¨ O 2  O (t ) 2 ¸ »
¬ © r i ¹n ¼

where Otc denotes the critical crack opening inelastic multiplier. Using the incremental

form of Equation (6.12), Equation (6.38) becomes

0tM N TQ t i - r - H t i - L
§ 1 · (6.45)

'N TQ eunit  N T Zqc  ¨ N T ZV  I  Lˆ H  L ¸  A  t 0
© 't ¹

Adopting the incremental form of Equation (6.16) and using Equation (6.35) gives

Zqc
1
1  I ti
I t Zq
i p  'I Zq e t i (6.46)

Substituting Equation (6.46) into Equation (6.45) and using incremental form of

Equation (6.18) and Equation (6.26), Equation (6.45) becomes

'tCI
0tM N TQ t i - r - H t i - L  N TQ eunit  N T Zq e t i
1  I t
i
(6.47)
§ 1 ·

1

N T ZV  I  Lˆ H  L ¸  A  t 0
© 1  I t i
¨ 't ¸¹

Under sustained loading as 'D 0 , we have the governing equation with rate-

dependent cracking as

'tCI
0tM N TQ t i - r - H t i - L  N T Zq e t i
1  I t
i
(6.48)
§ 1 ·

1
¨ 1  I t i
N T ZV  I  Lˆ H  L ¸  A  t 0
't ¸¹
©
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 195

6.5.3 Quasi-Prescribed Displacement Rate Control

The incremental form of the global displacement vector defined in Equation (6.9) can be

written as

u 'Duunit
e  D + K -1 ASqc (6.49)

where D K -1 ASV for non-associated flow rule. Substituting Equation (6.35) into

Equation (6.49) yields

u 1  I t 'u
i
unit
e  D + 'I  t i u eunit (6.50)

Choosing the rth displacement u r as the control displacement, the increment in the

control displacement reads

'u r 1  I t ' u
i
unit
er  Dr  + 'I  t i u erunit (6.51)

Solving the above equation for the incremental load factor 'D , therefore

'u r  Dr   'I  t i u erunit '  Dcr   'I  t i


' (6.52)
1  I t u
i
unit
er 1  I t
i

where  is the control displacement factor and Dcr Dr / u erunit . Using Equation (6.26) and

assuming the rth displacement rate u r is set, Equation (6.52) can be expressed as

't u r (Dc   't CI  t i )


'  r (6.53)
1  I t i u er
unit
1  I t i

Substituting Equation (6.53) into Equation (6.36) provides the incremental governing

equation for bulk creep with rate-independent cracking under quasi-prescribed

displacement rate control u r as


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 196

§§ u · T unit § CI · T ·
0 t M 't ¨ ¨ unit r ¸
¨ ¨ u er (1  I t i ) ¸
N Qe  ¨
¨ 1 I t ¸ ¸ N Zqe t i   t i N TQeunit ¸
¸
©© ¹ © i ¹ ¹
(6.54)
§§ 1 · § 1 · ·
¨¨ N T ZV  H  ¨ c
e D r ¸  A  t 0
N TQunit
¨ ¨ 1  I t i ¸¸ ¨ 1  I t ¸¸ ¸
©© ¹ © i ¹ ¹

Similarly, substituting Equation (6.53) into Equation (6.47) the governing equation with

bulk creep combined with rate-dependent cracking under quasi-prescribed displacement

rate control u r can be expressed as

0tM N TQ t i - r - H t i - L
§§ u · T unit § CI · T ·
't ¨ ¨ unit r ¸
¨ ¨ u er (1  I t i ) ¸
N Qe  ¨ ¸
¨ 1 I t ¸ N Zqe t i   t i N TQunit
e ¸
¸
(6.55)
©© ¹ © i ¹ ¹
§§ · T § · T unit L·
¨¨
¨¨
1
¸
¸
N ZV  ¨
¨
1
¸
¸
N Qe Dcr  I  Lˆ H  ¸  A  t 0
© © 1  I ti ¹ © 1  I ti ¹ 't ¹¸

6.6 Solution Algorithm

The analysis is carried out by stepping the time interval from zero and using a quasi-

prescribed displacement rate control. Equations (6.54) and (6.55) need an estimate of

the elastic displacements at the time of interest. Firstly assume an estimate of the

inelastic multiplier vector  at time t i  't is known so that only the elastic

displacements and the bulk creep displacements are unknown. Estimating the inelastic

multiplier vector will be discussed later in this section. From Equations (6.5) and (6.9),

the elastic generalised displacement rates can be written as

q e A Tu  q p  q c D A Tuunit
e  A T K -1 AS  I q p + q c
(6.56)
D A Tueunit  B q p + q c
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 197

This equation is complicated by the fact that the bulk creep displacements are

themselves a function of the elastic displacements. Substituting Equation (6.19) into

(6.56) yields

q e  A Tuunit
e
 B q p  I qe  I Bq e (6.57)

and

q e I I B
1
 A u
T unit
e
 B q p  I qe (6.58)

Using the incremental form of Equation (6.18) and assuming a small time increment,

the above equations can be approximated by

qe 'A Tuunit


e  B V  'I qne  In Bqe (6.59)

and

I  I B 'A u  B V  'I qen


1 T unit
qe n e (6.60)

The elastic generalised displacements can therefore be calculated using Equation

(6.60). However, the computationally most efficient means to calculate these elastic

generalised displacements is to solve Equation (6.59) iteratively rather than to use

Equation (6.60) which makes excessive demands on computer memory. Therefore, the

following is used until convergence ( qe n 1  qe n d 106 )

qe n+1 'A Tu eunit  B VO  'I q e t i  I t i Bqe n (6.61)

and then

qe q e t i  qe (6.62)
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 198

All the governing equations including Equations (6.37), (6.48), (6.54) and (6.55)

are in the form of a standard LCP

0dz p  Mx A x t 0 (6.63)

which can be solved for x =  ( z = -M if crack rate dependency is not considered or

z = -M if crack rate dependency is considered) using standard LCP solvers as outlined

in Section 3.6 for a given increment in time 't d 't max .

The analysis in this study for time-dependent behaviour can be divided into three

main stages with the first stage before cracking, the next stage when cracking exists and

the final stage under sustained loading.

For a prescribed displacement rate u r at the rth freedom, the stage before

cracking is first analysed until the first inelastic interface node is reached. The analysis

steps for the uncracked stage are:

(1.1) Estimate the time increment t = min (tbc, tfy) in which tbc is the time

increment limited by the bulk creep. tbc can be calculated using Equation (6.22)

or (6.25) depending on the type of the creep process being considered. tfy is the

time increment limited by the first inelastic point which can be estimated using:

min ^'t y1 't y2 .......`


T
't fy (6.64)

where

1  I t N Q t  r
i
T
i
't yn n
n 1, 2,3.... (6.65)
§§ u r · T unit ·
¨¨ ¨ CI  t i  unit ¸ N Q e n  CI N Zq e t i n ¸¸
T

©© u er ¹ ¹
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 199

Note that if the first time increment cannot be determined (which can occur if

the short-term creep process is considered), a very small time increment is used

instead.

(1.2) Calculate the load factor increment, , using Equation (6.53) with  = 0 and

update all corresponding quantities.

(1.3) If the first inelastic/yielding interface node is reached where t = tfy, skip to the

next stage when cracking exists. Otherwise return to Step (1.1) for next time

increment.

For the stage when cracking exists, the problem is solved in incremental steps as

a series of LCPs; the strategy follows Section 3.6. The set of inelastic multipliers  is

divided into two groups including active and inactive sets of inelastic multipliers. The

active multipliers pertain to those points which are still inelastic and are not unloading.

The analysis steps for this stage are:

(2.1) Assume the time increment t = tbc using Equation (6.22) or (6.25) depending

on the type of the creep process being considered.

(2.2) Form LCP for the active set using either Equation (6.54) if crack rate

dependency is not considered or Equation (6.55) if crack rate dependency is

considered. Information from the previous time step is utilised.

(2.3) Solve the LCP for  corresponding to the assumed time increment.

(2.4) Check whether the assumed time increment is acceptable. If there are any new

active multipliers or if any active multipliers reach their critical opening


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 200

displacement value Otc , the assumed time increment is adjusted and the iteration

returns to Step (2.2) with a new time increment determined.

The new time increment is estimated from t = min (tbp, tny, tlimit)

where tbp is the time increment required for the critical crack opening

displacement Otc to be reached by any of the active set (at any point in the

process zone). tny is the time increment required for the process zone or the

inactive set to be activated at a new point. Note that both tbp and tny are

predicted based on the assumption that all variables vary linearly with . This

assumption is true for the case of rate-independent crack opening. tlimit is the

time increment used to make sure that the new time increment is less than the

old time increment.

(2.5) If the assumed time increment is acceptable, update all corresponding quantities

along with finding the new active point if t = tny and/or updating the active set

due to new critical point if t = tbp. Return to Step (2.1) for next time step until

there is no load carrying capacity or until the prescribed sustained load is

reached.

For the stage under sustained loading, the load level is kept constant ( = 0)

and the creep behaviour is analysed until creep failure/rupture is reached. The problem

is also solved in incremental steps as a series of LCPs. The analysis steps for this stage

are:

(3.1) Assume the time increment t = tbc using Equation (6.22) or (6.25) depending

on the type of creep process being considered.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 201

(3.2) Form LCP for the active set using Equation (6.37) if crack rate dependency is

not considered or Equation (6.48) if crack rate dependency is considered.

Information from the previous time step is utilised.

(3.3) Solve the LCP for  corresponding to the assumed time increment.

(3.4) Check whether the assumed time increment is acceptable. If there are any new

active multipliers or if any active multipliers reach their critical values, the

assumed time increment is adjusted and the analysis returns to Step (3.2) with a

new time increment. The new time increment is estimated as in Step (2.4).

(3.5) If the assumed time increment is acceptable, update all corresponding quantities

along with finding the new active point if t = tny and/or updating the active set

due to new critical point if t = tbp. Then return to Step (3.1) for next time step

until creep failure/rupture is reached indicated by the final/tertiary stage of

creep-time curve.

6.7 Sensitivity Analysis and Behaviour of the Proposed Model

In this section, a sensitivity analysis is carried out varying the parameters If and k0

which significantly influence the time-dependent response of the proposed model. The

If parameter controls the bulk creep behaviour while k0 influences the crack rate

dependency. Short-term bulk creep with rate dependent cracking is considered. For this

purpose, a three-point bending problem loaded under a constant deflection rate is

considered. The span-to-depth ratio is 8.0. The ratio of the notch depth to specimen
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 202

depth is 0.5. The results of this analysis are shown in Figure 6.3. All material properties

are held constant and the only parameters that are varied is either If or k0.

1200
If
High phi
1000 If
Low phi

800
F (N)

600

400

200

0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
u (mm)

1200
High k0
k0
1000 Low k0
k0

800
F (N)

600

400

200

0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
u (mm)

Figure 6.3. Sensitivity analysis results from the time-dependent fracture model.
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 203

As can be seen in Figure 6.3, the selected parameters influence the response in

different ways. The discussion is focussed on the effects on the basic characteristics

associated with mode I fracture, i.e. modulus of elasticity indicated by the initial slope,

tensile strength reflected by the peak load and mode I fracture energy represented by the

area under the curve. As can be observed in Figure 6.3, the bulk creep parameter If

affects all properties, but predominately the modulus of elasticity and strength. The

crack rate dependency factor k0 has very little influence on the modulus of elasticity but

plays an important role on strength and mode I fracture energy.

Increasing the loading rate should result in an increase in the peak load. In order

to show the capability of the proposed formulation in capturing this behaviour, a three-

point bending problem with different deflection rates is again considered. The results of

this analysis are shown in Figure 6.4.

1.2

1.0
50 Pm/s

2 Pm/s
0.8
F/Fp at highest rate

0.2 Pm/s
0.05 Pm/s
0.6

0.4

0.2

0.0
0.0 0.2 0.4 0.6 0.8 1.0 1.2
u/u max at highest rate

Figure 6.4. Numerical responses with different displacement rates.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 204

As can be seen, the proposed formulation with crack rate dependency displays

an increasing strength with increasing loading rate which is what is expected. In the

next section, the predictions of the formulation are compared to experimental results. It

can be observed that all the basic material parameters including modulus of elasticity,

tensile strength and mode I fracture energy are strongly dependent on the loading rate.

This is why tests on structural materials must be performed at a standardized rate.

6.8 Validation

6.8.1 Simulation of Flexural Creep Rupture Tests on Concrete

The proposed formulation is applied to predicting the time-dependent crack propagation

in concrete notched beams subjected to sustained mid-span concentrated loads. These

creep experiments were conducted by Zhou (1992). In the creep tests, the beams were

subjected to sustained loadings of 76%, 80%, 85% and 92% of the peak load obtained

from displacement-controlled tests. The deflection rate was 5 Pm/s. The beam

dimensions were 840u100u100 mm with a span of 800 mm and a 4 mm notch of depth

50 mm (see Figure 6.5). The reported material properties were: tensile strength f tc = 2.8

MPa, modulus of elasticity E = 36 GPa and mode I fracture energy G fI = 0.082

Nmm/mm2. All specimens were about 4 months old at testing. All beams were sealed to

avoid shrinkage. The finite element model employed in this study is shown in Figure

6.5. A computer program in MATLAB was written to perform the time-dependent

fracture analyses. Flow chart of the MATLAB program and main MATLAB codes are

provided in Appendix B.
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 205

4 mm wide, 50 mm depth v-notch

800 mm

Figure 6.5. Finite element model for creep rupture simulations.

Since the sustained loads being considered are greater than 50% of peak load,

crack rate dependency becomes crucial and plays an important role in the prediction of

the creep behaviour, in particular the time to failure as discussed in Van Zijl et al.

(2001b). The formulation with crack rate dependency is used here coupled with short-

term bulk creep as all the loading periods are less than 1 hour.

The formulation parameters including the tensile strength, modulus of elasticity

and mode I fracture energy are all rate-dependent and the reported values are those at a

specific loading rate. For this reason, a set of reference material properties need to be

estimated. The formulation parameters are obtained by studying Zhou (1992)’s results

on smaller three-point bending specimens (640u50u50 mm) made of the same concrete

as the larger beam specimens but tested under various loading rates. The span of the

smaller beams was 600 mm and the notch length was 25 mm. The deflection rates

varied from 0.05 Pm/s to 50 Pm/s. The same finite element mesh as in Figure 6.5 but

scaled to the smaller geometry was used for the simulation. Self-weight was also

included in all the simulations in this study. Figure 6.6 compares the normalised

numerical and experimental peak loads at different deflection rates.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 206

1.0

m/s
50 Pm/s 0.9

0.8
at 50
Fp/Fp at
Fp/Fp

0.7

0.6 Experimental

Numerical

0.5
-2 -1
10
0.01 10
0.1 1010 10
10
1
10
100
2

Deflection rate ((Pm/s)


Deflection m/s)

Figure 6.6. Rate effect on peak load in three-point bending tests.

The peak load increases over the entire range of the loading rates. The reference

parameters used for these simulations are listed in Table 6.1 where the subscript “o”

denotes a reference value. Note that these parameters are different to the material

properties quoted by Zhou (1992).

Table 6.1. List of the parameters used in creep rupture test simulations.

f toc Eo G foI If k0 t' Or

(MPa) (GPa) (Nmm/mm2) (days) (s-1)

2.66 26 0.040 6 0.08 112 4e-7

Using the obtained parameters listed in Table 6.1 the creep rupture tests were

simulated. Firstly, a simulation was carried out for the complete load-displacement

response at the deflection rate of 5 Pm/s. The various sustained load cases were then
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 207

simulated using the same testing procedure as in the experiments where the load was

firstly increased under the deflection rate 5 Pm/s until the prescribed sustained load was

reached after which the load was kept constant. Using this strategy the initial inelastic

multiplier rate is known at the point when the load is held constant. The simulated load-

deflection and load-crack mouth opening displacement (CMOD) curves are shown in

Figures 6.7(a) and 6.7(b), respectively. Zhou (1992) observed that creep failure

occurred when CMOD approximately reached the value on the descending part of the

displacement-controlled curve. The simulated sustained load responses were initially

found to be different from those of Zhou (1992).

1.2
Disp. rate control
1.0
Sustained load
0.92Fp
0.85Fp
0.8 0.80Fp
0.76Fp
F/Fp

0.6

0.4

0.2

0.0
0.0 0.3 0.6 0.9 1.2 1.5
u/u max

(a) load-deflection curve


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 208

1.2
Disp. rate control
1.0 Sustained load
0.92Fp
0.85Fp
0.8 0.80Fp
0.76Fp
F/Fp

0.6

0.4

0.2

0.0
0.0 0.3 0.6 0.9 1.2 1.5
CMOD/CMODmax

(b) load-CMOD curve

Figure 6.7. Numerical results of creep rupture test simulations.

Figures 6.8(a) and 6.8(b) show the numerical deflection-time and CMOD-time

curves, respectively, for all the sustained loads. The results show that the proposed

formulation captured all the three stages of the deflection time curve observed in the

creep rupture tests. The response increases rapidly in the primary stage and then

gradually slows down to a constant rate in the secondary stage. Finally in the last stage

the response grows increasingly rapidly until creep failure.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 209

0.7

0.85Fp

0.80Fp

0.76Fp
0.92Fp
0.6

0.5

0.4
u/umax
u/umax

0.3

0.2

0.1

0.0
0 500 1000 1500 2000 2500
Time (s)

(a) deflection-failure lifetime curve

0.5
0.85Fp

0.80Fp

0.76Fp
0.92Fp

0.4
CMOD/CMODmax
CMOD/CMODmax

0.3

0.2

0.1

0.0
0 500 1000 1500 2000 2500
Time (s)

(b) CMOD-failure lifetime curve

Figure 6.8. Predicted creep curves.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 210

As failure occurs suddenly and extremely fast the measured displacement at

failure could be extremely difficult to capture experimentally. The numerical responses

shown in Figure 6.7 are re-plotted in Figure 6.9 with the failure point estimated as at the

point marked with a cross in Figure 6.8 (the point where there is a rapid increase in the

time interval). The displacements at the creep rapture estimated in this way and shown

in Figure 6.9 agree with Zhou (1992)’s proposition.

1.2

Disp. rate control


1.0
0.92Fp Sustained load
0.85Fp
0.8 0.80Fp
0.76Fp
F/Fp

0.6

0.4

0.2

0.0
0.0 0.3 0.6 0.9 1.2 1.5
u/u max

(a) load-deflection curve


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 211

1.2

Disp. rate control


1.0
0.92Fp Sustained load
0.85Fp
0.8 0.80Fp
0.76Fp
F/Fp

0.6

0.4

0.2

0.0
0.0 0.3 0.6 0.9 1.2 1.5
CMOD/CMODmax

(b) load-CMOD curve

Figure 6.9. Numerical results of creep rupture test simulations when only the

initial failure points are considered.

1.0

Experimental

Numerical
0.9
F/Fp

0.8

0.7

0.6
1
10
10 102
100 103
1000 104
10000
Time to failure (s)

Figure 6.10. Comparison in terms of load-failure lifetime curve.


CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 212

In Figure 6.10, the failure lifetime is plotted for each of the sustained load levels

and compared with the measured results. The simulated lifetime increases with

deceasing load level and shows excellent agreement with the test results.

The stress distributions within the fracture zone at different stages were also

predicted by Zhou (1992), as shown in Figure 6.11. The stress distributions within the

fracture zone at different stages obtained from the simulation for the case of 0.85Fp are

plotted in Figure 6.12. The stress distribution at the point of failure (t = tf ) looks similar

to that shown in Figure 6.11 except that there is no residual stress at the notch tip. The

difference might be because there is no residual term in Equation (6.28).

Compression (-) Tension (+)

Figure 6.11. Stress distributions in fracture zone under sustained load predicted by

Zhou (1992).
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 213

100

-
+
90

t/tf=1
Beam Depth (mm) .

0.96
80 0.86
0.72
0.56
0.4
70 0.27
0.16
0.07
0.01
60

50
-15 -10 -5 0 5 10
Stress (MPa)

Figure 6.12. Stress distributions in fracture zone under sustained load for case of

0.85Fp.

6.9 Summary

The extension of the finite element model described in Chapter 3 to include time-

dependent mode I fracture behaviour in quasi-brittle materials has been presented and

has been verified by comparison to experimental results. The formulation includes bulk

creep and crack rate dependency. The bulk creep component was introduced into the

formulation by considering the creep displacements as inelastic irrecoverable

displacements which were assumed to be proportional to the elastic recoverable

displacements. A simplified crack rate model was proposed and used to represent the

rate-dependent crack opening. The numerical formulation was shown to accurately

predict the time-dependent crack propagation behaviour of plain concrete beams under

sustained three-point bending loads. The essential behaviour was captured and
CHAPTER 6 MODELLING OF TIME-DEPENDENT MODE I FRACTURE 214

presented, and included the observed strength increase with loading rate, the load-

deflection and load-CMOD responses, the deflection-time and CMOD-time curves, the

predicted time to failure and the stress distributions in the fracture zone.
CHAPTER 7 CONCLUSIONS AND RECOMMENDATIONS 215

CHAPTER 7
CONCLUSIONS AND RECOMMENDATIONS

7.1 Introduction

This thesis aims to study the fracture of unreinforced masonry, to carry out a limited

experimental program on three-point bending masonry panels and to develop a time-

dependent fracture formulation for the study of mode I fracture in quasi-brittle

materials.

A summary of conclusions drawn in this study is given below.

7.2 Modelling of Fracture in Unreinforced Masonry

By applying the basic idea of the discrete crack approach, a micro-model has been

developed in Chapter 3 for the simulation of fracture in unreinforced masonry. Masonry

is discretised by means of a triangular element constructed from nine constant strain

triangles with two nodes on each side but not at the vertices.

Fracture is captured through a constitutive softening-fracture law at the interface

boundary nodes, while the material within the triangular element remains linear elastic.

All basic failure modes for masonry failure are taken into account. The inelastic failure

surface for the brick and brick-mortar interface is modelled using a Mohr-Coulomb

failure surface with a tension cut-off and a linear compression cap. The compression cap

is included into the brick-mortar interface failure surface to limit the compressive/shear
CHAPTER 7 CONCLUSIONS AND RECOMMENDATIONS 216

stress in the interface and to capture brick diagonal tensile cracking and masonry

crushing. The proposed compression cap which is a major contribution was presented in

detail. A criterion for defining the compression cap was provided.

The fracture formulation is based on a piecewise-linear constitutive law and is in

the form of a so-called “linear complementarity problem” (LCP). The path-dependent

softening behaviour is solved in nonholonomic rate form within a quasi-prescribed

displacement formulation. Solutions to the nonholonomic rate formulation are obtained

using a mathematical programming procedure based on the solution of the LCP. A

computer program in MATLAB was written to perform the fracture simulations.

The proposed model has been applied to simulating fracture in unreinforced

masonry shear walls under shear and compression loading where all modes of failure

govern the structural response. In this study, dilatancy degradation has not been

considered. Validation of the model was successful. Comparison of the formulation

with the experimental results showed good agreement. The formulation was able to

capture the pre-peak and post-peak responses and the cracking characteristics

reasonably well without significant numerical difficulties.

7.3 Experimental Study – Three-Point Bending Tests on


Masonry Panels

Behaviour of masonry structures depends strongly on the properties of the mortar joints.

The failure of masonry panels under three-point bending (TPB) with relatively low bond

strength may be governed by both mode I and mode II fracture rather than just mode I

failure as for example in a concrete beam or in a masonry panel with relatively high
CHAPTER 7 CONCLUSIONS AND RECOMMENDATIONS 217

bond strength. In order to investigate the failure behaviour of masonry panels under

TPB with relatively low strength mortar, an experimental program was undertaken.

Full-scale masonry panels with two different strengths of mortar were tested under TPB.

Fracture tests on bricks, mortar and brick-mortar interfaces were also performed. The

basic material parameters were obtained from compression, TPB and shear tests on

bricks, mortar and brick-mortar interfaces. For the shear tests, a modified version of the

shear test set-up proposed by Van Der Pluijm (1993) was introduced and used.

The experimental results were reported in Chapter 4. The bricks exhibited

anisotropic behaviour as different compressive strength was detected from different

loading directions. The shear parameters including the shear bond strength, cohesion,

friction angle, shear modulus and post-peak behaviour (residual bond strength,

unloading-reloading behaviour, mode II fracture energy and dilatancy angle) of each

material were presented and discussed. The properties of the mortar were very different

from the brick-mortar interface within a masonry unit because of the water absorption

of the brick and the restraint due to the brick on expansion of the mortar causing

triaxial/biaxial stresses in the mortar. The experimental results showed that the failure of

masonry panels under TPB with relatively low strength mortar are governed by both

tensile and shear fracture (mode I and mode II) of the mortar joints rather than just

mode I failure. The cracks zigzagged through the head and bed joints without brick

failure.

The experimental results provided a comparison basis for the verification of the

accuracy of the proposed model. The numerical results provided a good match to the

experimental results even though the numerical formulation assumed a zero dilatancy.

The effects of including some dilatancy were studied.


CHAPTER 7 CONCLUSIONS AND RECOMMENDATIONS 218

7.4 Modelling of Time-Dependent Mode I Fracture

By extending the LCP formulation in Chapter 3, a time-dependent fracture model was

proposed in Chapter 6 to study time-dependent mode I fracture in quasi-brittle

materials. Two main time-dependent sources, the viscoelasticity of the bulk material

within the structure outside the crack zone and the cohesive crack rate dependent

opening, have been taken into account. The bulk creep component was introduced into

the formulation by considering the creep displacements as inelastic irrecoverable

displacements which were assumed to be proportional to the elastic recoverable

displacements, while the rate-dependent crack opening was introduced through a

simplified crack rate model proposed in this study.

The structural governing equations were formulated in LCP form as a function

of a quasi-prescribed displacement rate control. The LCP formulation has never been

applied to this problem. The solution algorithm needed to solve the LCP was outlined.

To be able to solve the problem numerically the rate equations were transformed into

approximate incremental form without the second derivative terms. The analysis was

carried out by stepping the time interval from zero and using the quasi-prescribed

displacement rate control so that the initial inelastic multiplier rate is known at the point

when the load is held constant.

The sensitivity analysis and behaviour of the proposed model were illustrated.

The model was applied to predicting time-dependent crack propagation. The time-

dependent crack model was able to capture the time-dependent crack propagation

behaviour of plain TPB concrete beams under sustained loads. The essential behaviour

was presented and included the observed strength increase with loading rate, the load-
CHAPTER 7 CONCLUSIONS AND RECOMMENDATIONS 219

deflection and load-CMOD responses, the deflection-time and CMOD-time curves, the

predicted time to failure and the stress distributions in the fracture zone.

7.5 Recommendations for Future Research

Some further developments that can be suggested are the following.

ƒ To include a more refined softening law such as a bi-linear softening law.

ƒ To include decaying dilatancy as a function of the shear slip and the

confining stress.

ƒ To include shrinkage in the time-dependent analysis.

ƒ To include geometric nonlinearity.

ƒ To extend the time-dependent formulation to masonry.

ƒ To extend the time-dependent formulation to mode II fracture.


APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 220

APPENDIX A
EXPERIMENTAL DATA AND ADDITIONAL
RESULTS

Table A. 1. Brick compression test data.

Loading Test Width Thickness, Height, fc' H/T Ka(1)


Corrected
direction No. (mm) T (mm) H (mm) (MPa) fc' (MPa)(2)
Parellel kc2 109.0 49.8 228.2 21.83 4.58 0.969 21.15
to bed kc3 108.7 51.4 228.5 22.60 4.45 0.958 21.65
face kc5 109.3 51.2 229.4 23.14 4.48 0.961 22.24
average 21.68
Vertical kc6 109.2 109.2 50.7 75.68 0.46 0.521 39.43
to bed kc7 109.1 109.1 50.8 50.60 0.47 0.523 26.46
face kc8 109.4 109.4 51.4 65.06 0.47 0.523 34.03
average 33.31
Note: (1) Aspect ratio factor Ka, which is dependent on the height to thickness ratio, was estimated
according to the Australian standard AS4456:2003.
(2) Corrected fc' = Ka u fc'.

Table A. 2. Mortar compression test data (at age of 28 days).

Mortar type Test No. fc' (MPa) Mortar type Test No. fc' (MPa)
1 7.19 1 16.59
W 2 7.32 S 2 16.98
3 7.28 3 16.80
average 7.26 average 16.79

Table A. 3. Masonry compression test data.

Mortar type Test No. fc' (MPa) Mortar type Test No. fc' (MPa)
1 18.78 1 18.81
W 2 19.91 S 2 19.70
3 18.23 3 17.63
average 18.97 average 18.71
APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 221

Table A. 4. Total confining pressure at residual stage of mortar joint shear tests.

Specimen* Initial Total Specimen* Initial Total


confining confining confining confining
pressure pressure at pressure pressure at
(MPa) residual (MPa) (MPa) residual (MPa)
W15-5 0.20 0.33 S7-5 0.21 0.29
W16-5 0.20 0.33 S8-5 0.21 0.23
W17-5 0.19 0.30 S9-5 0.21 0.25
W4-10 0.35 0.46 S1-10 0.41 0.49
W5-10 0.39 0.48 S2-10 0.40 0.40
W11-10 0.44 0.52 S3-10 0.42 0.44
W13-20 0.79 0.82 S4-20 0.77 0.77
W18-20 0.79 0.74 S5-20 0.83 0.99
W19-20 0.81 0.81 S6-20 0.76 0.85
* The first character indicates the mortar type.

Table A. 5. Total confining pressure at residual stage of brick shear tests

Specimen Initial Total


confining confining
pressure pressure at
(MPa) residual (MPa)
BST1 0.40 2.27
BST2 0.42 2.37
BST3 0.40 2.16
BST4 0.61 2.31
BST5 0.63 2.71
BST6 0.62 3.12
BST7 0.90 3.70
BST8 0.85 3.32
BST9 0.82 2.86
APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 222

0.9
W15-5 W15-5
0.7 W16-5 W16-5

Shear Stress (MPa)


W17-5
W17-5
0.5

0.3

0.1

-0.1
0 0.5 1 1.5 2 2.5 3 3.5
Shear Displacement (mm)

0.9
W4-10 W4-10
0.7 W5-10 W5-10
W11-10
Shear Stress (MPa)

W11-10
0.5

0.3

0.1

-0.1
0 0.25 0.5 0.75 1 1.25
Shear Displacement (mm)

1.1 W19-20 W13-20


W18-20
Shear Stress (MPa)

W13-20 W19-20
0.7 W18-20

0.3

-0.1
0 1 2 3 4 5
Shear Displacement (mm)

Figure A. 1. All shear stress-displacement curves obtained from the mortar joint

shear tests (type W mortar).


APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 223

0.5
S7-5 S7-5
S9-5 S8-5
S8-5

Shear Stress (MPa)


S9-5
0.3

0.1

-0.1
0 0.5 1 1.5 2 2.5
Shear Displacement (mm)

1.1
S3-10 S1-10
0.9 S2-10
S1-10
Shear Stress (MPa)

S3-10
0.7
S2-10
0.5

0.3

0.1

-0.1
0 0.5 1 1.5 2
Shear Displacement (mm)

1.1 S5-20 S4-20


S6-20 S5-20
S4-20
0.9
Shear Stress (MPa)

S6-20
0.7
0.5

0.3

0.1

-0.1
0 0.4 0.8 1.2 1.6 2 2.4 2.8 3.2
Shear Displacement (mm)

Figure A. 2. All shear stress-displacement curves obtained from the mortar joint

shear tests (type S mortar).


APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 224

12

FBTP6
FBTP6
10 FBTP8
FBTP9
8
FBTP8
Load (kN)

6 FBTP9

0
0 0.1 0.2 0.3 0.4 0.5 0.6
CMOD (mm)

12

FBTP6
10 FBTP8
FBTP6
FBTP9
8 FBTP8
Load (kN)

FBTP9
6

0
0 0.1 0.2 0.3 0.4 0.5 0.6
Load-point displacement (mm)

Figure A. 3. All results obtained from the brick TPB tests.


APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 225

1.1

WMTP1
0.9
WMTP2

Load (kN) 0.7

0.5

0.3

0.1

-0.1
0 0.05 0.1 0.15 0.2 0.25 0.3
CMOD (mm)

1.1

WMPT1
0.9

0.7
Load (kN)

0.5

0.3

0.1

-0.1
0 0.05 0.1 0.15 0.2 0.25 0.3
Load-point displacement (mm)

Figure A. 4. All results obtained from the mortar TPB tests (type W mortar).
APPENDIX A EXPERIMENTAL DATA AND ADDITIONAL RESULTS 226

2.5
SMTP1
SMTP2 SMTP2
2 SMTP3
SMTP1
SMTP3
1.5
Load (kN)

0.5

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
CMOD (mm)

2.5
SMTP2 SMPT1
SMTP1 SMTP2
2 SMTP3
SMTP3

1.5
Load (kN)

0.5

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
Load-point displacement (mm)

Figure A. 5. All results obtained from the mortar TPB tests (type S mortar).
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 227

APPENDIX B
FLOW CHARTS AND MAIN MATLAB CODES

Fracture_main_ncap4.m
START

Fracture_pre_ncap4.m READ INPUT FILE


(Prepared by User)

CREATE MESH & TOPOGRAPHY

ESTABLISH BASIC MATRICES

DETERMINE INITIAL FAILURE /ACTIVE SET

Solver_fracture_ncap4.m INITIALISE VARIABLES

FORM LCP Action_Assemble_ncap4.m


FOR ACTIVE SET

NO BREAK POINT (BP) YES


SET EXISTS

EXCLUDE BP FROM LCP

SOLVE LCP FOR LAMBDA INCREMENT


DUE TO UNIT FACTOR INCREMENT

DETERMINE UNLOADING SET


& UPDATE VARIABLES

NO BREAK POINT (BP) YES


SET EXISTS

DETERMINE LAMBDA
INCREMENT OF BP SET

DETERMINE FACTOR INCREMENT


REQUIRED TO REACH NEXT BP

DETERMINE FACTOR INCREMENT REQUIRED


TO REACH NEXT YIELD POINT (YP)

DETERMINE FACTOR INCREMENT


& UPDATE VARIABLES

POST-PROCESS & STORE RESULTS

NO YIELD LIMIT
EXCEEDED

YES

END

Figure B. 1. Flow chart of MATLAB program for fracture model.


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 228

Fracture_main_time.m
START

Fracture_pre_time.m READ INPUT FILE


(Prepared by User)

CREATE MESH & TOPOGRAPHY

ESTABLISH BASIC MATRICES

PRE-PROCESS & CALCULATE CREEP LOAD (CL)

Solver_fracture_time.m INITIALISE VARIABLES

DETERMINE INITIAL FAILURE /ACTIVE SET UNDER DISP. RATE CONTROL

ASSUME TIME INCREMENT (t)

FORM LCP Action_Assemble_time.m


FOR ACTIVE SET

NO BREAK POINT (BP) YES


SET EXISTS

EXCLUDE BP FROM LCP

SOLVE LCP FOR LAMBDA INCREMENT

DETERMINE UNLOADING SET


& UPDATE VARIABLES

NO BREAK POINT (BP) YES


SET EXISTS
Incremental Loop

DETERMINE LAMBDA
Iterative Loop

INCREMENT OF BP SET

DETERMINE t REQUIRED TO REACH


NEXT BP (tbp)

UPDATE POTENTIAL FUNC. (Phi_Total),


EVOLUTION FUNC. (Evol_Total) & LOAD FACTOR (LF)

YES Phi_Total < -10-6 OR NO


Evol_Total < -10-6 OR LF > CL

ESTIMATE t REQUIRED CHECK FOR NEW ACTIVE


TO REACH NEXT YP (typ) & UPDATE VARIABLES

ESTIMATE t REQUIRED CHECK FOR NEW BP


TO GET CREEP LOAD (tcl) & UPDATE VARIABLES

NEW t
= min (tbp, typ, tlimit, tcl)

RESTORE OLD VALUES


OF MAIN PARAMETERS

2 1
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 229

Fracture_main_time.m
2 1

Solver_fracture_time.m POST-PROCESS & STORE RESUTS

NO
LF = CL

YES
INITIALISE VARIABLES

ASSUME TIME INCREMENT (t)

FORM LCP Action_Assemble_creep.m


FOR ACTIVE SET (under sustained loading)

NO BREAK POINT (BP) YES


SET EXISTS
EXCLUDE BP FROM LCP

SOLVE LCP FOR LAMBDA INCREMENT

DETERMINE UNLOADING SET


& UPDATE VARIABLES

NO BREAK POINT (BP) YES


SET EXISTS
DETERMINE LAMBDA
Incremental Loop

Iterative Loop

INCREMENT OF BP SET

DETERMINE t REQUIRED TO REACH


NEXT BP (tbp)

UPDATE POTENTIAL FUNC. (Phi_Total)


& EVOLUTION FUNC. (Evol_Total)

YES Phi_Total < -10-6 OR NO


Evol_Total < -10-6

ESTIMATE t REQUIRED
TO REACH NEXT YP (typ) CHECK FOR NEW ACTIVE
& UPDATE VARIABLES
NEW t
= min (tbp, typ, tlimit) CHECK FOR NEW BP
& UPDATE VARIABLES
RESTORE OLD VALUES
OF MAIN PARAMETERS

POST-PROCESS & STORE RESUTS

NO CREEP FAILURE IS
REACHED

YES

END

Figure B. 2. Flow chart of MATLAB program for time-dependent fracture model.


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 230

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Fracture_main_ncap4.m %%%%%
%%%%% DISCRETE TRIANGULAR FRACTURE MODEL %%%%%
%%%%% UNIVERSITY OF NEW SOUTH WALES %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

disp(' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
disp(' %%% START OF FRACTURE ANALYSIS - UNIVERSITY OF NEW SOUTH WALES %%%');
disp(' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
clear all;

if exist('restart.mat', 'file') == 0 % 1st start

disp(' --- PREPROCESS : MESH GENERATION & MATRIX ASSEMBLY ---');


Fracture_pre_ncap4; % call a written sub-script (& open Diary_Fracture.txt)

flag_restart = 0;

else % restart mode

diary Diary_Fracture.txt; % write & append diary of MATLAB input/output


disp('--- RESTART MODE : LOAD RESTART FILE & SETUP ---');
load restart;
flag_restart = 1;

disp(' -------------------------------------');
disp(' - CURRENT NUMBER FACTOR -');
disp([' - ', num2str(num_factors)]);
disp(' -------------------------------------');
num_factors = input('ENTER NEW NUMBER FACTOR:');
num_factors

disp(' -------------------------------------');
disp(' - CURRENT RESTART NUBBER -');
disp([' - ', num2str(Restart_Number)]);
disp(' -------------------------------------');
Restart_Number = input('ENTER NEW RESTART NUMBER:');
Restart_Number

end;

jdisplacement = [1:1:num_factors]; % step for calculating displacement


jdisplacement = [2,jdisplacement]; % j=2 is used for one-off title writing
jrestart = [200:50:num_factors]; % step for over-wrinting restart file

disp(' ---SOLVER FRACTURE ---');


Solver_fracture_ncap4; % call a written sub-script

%%% PLOT ACTIVE LAMBDAS %%%

Active_NonBreak = Active;
IVec_ones = ismember(Active,BreakPointSet);
IVec = find(IVec_ones == 1);
Active_NonBreak(IVec) = [];
IActive_Tension = find(VecPotential(Active_NonBreak) == 1);
Active_Tension = Active_NonBreak(IActive_Tension);

if shear == 6 % cap model is included


IActive_Comp1 = find(VecPotential(Active_NonBreak) == 4);
IActive_Comp2 = find(VecPotential(Active_NonBreak) == 5);
IActive_Comp = unique([IActive_Comp1,IActive_Comp2]);
Active_Comp = Active_NonBreak(IActive_Comp);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 231

IActive_Shear1 = find(VecPotential(Active_NonBreak) == 2);


IActive_Shear2 = find(VecPotential(Active_NonBreak) == 3);
IActive_Shear = unique([IActive_Shear1,IActive_Shear2]);
Active_Shear = Active_NonBreak(IActive_Shear);

plot(XY_Midpoint(VecIncidence(Active_Tension),1),XY_Midpoint...
(VecIncidence(Active_Tension),2),'rv') % tension failure points

if shear == 6 % cap model is included


plot(XY_Midpoint(VecIncidence(Active_Comp),1),XY_Midpoint...
(VecIncidence(Active_Comp),2),'mh') % compression failure points
end;

plot(XY_Midpoint(VecIncidence(Active_Shear),1),XY_Midpoint...
(VecIncidence(Active_Shear),2),'b^') % shear failure points
plot(XY_Midpoint(VecIncidence(UnLoadSet_Total),1),XY_Midpoint...
(VecIncidence(UnLoadSet_Total),2),'r.'); % unloading points

title(case_title);
print -dmfile BrickFig1
hold;
figure;
plot(udisplay,pdisplay,'r*-')
title(case_title);
grid;
print -dmfile BrickFig2
dlmwrite('u_p.txt', [udisplay', pdisplay'],','); % write a output file

if exist('Bifurcation_p','var') == 1 % if this variable exist


dlmwrite('bifurcation_u_p.txt', [Bifurcation_u', Bifurcation_p'],',');
end;

disp(' --- DRAWING DEFORMED MESH ---');


Deflection_Assemble_ncap4; % call a sub-script

status = fclose('all'); % close all files


masonry_makefile(2) % call a written funtion to delete temporary input files

disp(' --- END OF PROGRAM ---');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% EXAMPLE OF INPUT FILE FOR Fracture_main_ncap4.m %%%%
%%%% FOR MASONRY SHEAR WALL PROBLEM WITH 30 kN PRELOAD %%%%
%%%% UNITS ARE IN N & mm %%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

*** control_main.m
function [Restart_Mesh, Restart_Assemble, Restart_Number, ...
shear, num_factors, jplot, jsave, Lemke_Use, mesh_style, ...
case_title, nonassociated, Yield_Tolerance, Select_Mode, ...
Snap_Back_Factor] = control_main
%
% shear: ID number for interface constitutive relationship
% =0 : Mode I -- Assumed;
% =1 : Mode I -- Interaction betw. normal & shear, non-asso. flow rules;
% =2 : Mode 2 -- Mohr-Coulomb, 2 planes in Tension-Shear Quadrant;
% =3 : Mode 1 -- Shear retention, 1 plane in Tension. 2 for Shear;
% =4 : Mode 2 -- Mohr-Coulomb, 1 planes in Tension, 2 for Shear;
% =6 : Mode 2 -- Mohr-Coulomb-Cap, 1 in Tens, 2 for Shear, 2 in Comp;
%------------------------------------------------------------------------
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 232

Restart_Mesh = 0; % = 0 (current model)


Restart_Assemble = 0; % = 0 (current model)

shear = 6;
num_factors = 9000; % number of load steps
Restart_Number = 100; % start saving restart file at this step

jplot = [1:100:num_factors+5]; % Plot Ouput at these Load Steps


jsave = [1:100:num_factors+5]; % Plot saved at these load steps
Lemke_Use = [1:9500]; % Use Lemke Solver at these Load Steps

%mesh_style = 0; % mesh prepared by easymesh


%case_title = 'double edge plate under tension';

mesh_style = 1; % brickwall mesh to be generated


case_title = 'Shear wall without diag. brick failure';

%mesh_style = 2; % brickwall + lintel mesh to be generated


%case_title = 'Lintel bending';

%mesh_style = 3; % brickwall + tension fixture to be generated


%case_title = 'Brick wall tension';

%mesh_style = 8; % brickwall mesh to be generated with brick failure


%case_title = 'Shear wall with diag. brick failure';

%mesh_style = 13; % brickwall mesh to be generated


%case_title = 'Brick wall with stack bond';

nonassociated = 1; % = 0 for normality


Yield_Tolerance = 1.0; % = 1 Event by Event - No simultaneous Yield
Select_Mode = 0; % = 1 Select Equilibrium Path; = 0 use Min Work Criteria
Snap_Back_Factor = 1.0E-2; % = 1.0E-2 (currently used)

%=========================== end of control_main.m ======================

*** control_mesh1.m
function [sidenum, Panel_Length, Panel_Height, flaglb, bd, bw, tm, ...
exclude_ratio, Nx, Ny] = control_mesh1
% (for mesh_style = 1, 2, 3, 8, 13)
%--parameters used to generate brickwall mesh
% sidenum: distance_midpoint^vetice = side length / (2*sidenum)
% Panel_Length: Length of the wall panel;
% Panel_Height: Height of the wall panel;
% flaglb: options of left bottom brick;
% =0: full brick;
% =1: half brick;
% bd: brick dimension along panel height direction;
% bw: brick dimension along Penal length direction;
% tm: mortar thickness, assume even mortar thickness
% along a brick.
% exclude_ratio: potentials are not consided for nodes whose distance
% from either end of the wall samller than
% (exclude_ratio * Panel_Length)
% Nx, Ny: element number along x-, y- within half brick
%------------------------------------------------------------------------

sidenum = 10; % = 10 (currently used)

Panel_Length = 990; % mm
Panel_Height = 1125; % mm
flaglb = 1;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 233

bd = 62.5; % mm
bw = 220; % mm
tm = 0; % mm
exclude_ratio = 0.001;

Nx = 2;
Ny = 2;

%=========================== end of control_mesh1.m =====================

*** verticeShift_definition.m
function BoxVerticeShift = verticeShift_definition
%
% function used to shift vertices of elements
%------------------------------------------------------------------------

stol = 1e-6;

% Top and bottom rigid parts are expanded from 62.5 to 70 mm.
BoxVerticeShift = [0-stol, 0-stol, 990+stol, 0+stol, 0, -7.5;...
0-stol, 31.25-stol, 990+stol, 31.25+stol, 0, -3.75;...
0-stol, 1125-stol, 990+stol, 1125+stol, 0, 7.5;...
0-stol, 1093.75-stol, 990+stol, 1093.75+ stol, 0, 3.75];

%================= end of verticeShift_Definition.m =====================

*** control_BC.m
function [Bx, By, Tx, Ty, Txp, Typ, T_control] = control_BC(XY_Midpoint);
%
% purpose : to define boundary conditions and loadings
%------------------------------------------------------------------------

%%% Geometrical Information %%%

xmin = min(XY_Midpoint(:,1));
ymin = min(XY_Midpoint(:,2));
xmax = max(XY_Midpoint(:,1));
ymax = max(XY_Midpoint(:,2));

stol = 1e-5;
y = (XY_Midpoint(:,2))';
x = (XY_Midpoint(:,1))';

%%% Node Set for Displacement Constraints %%%

% Boundary Nodes

L1 = find(y<=ymin+stol); % bottom -- all nodes


L2 = find(y>ymax-stol); % top -- all nodes

Bx = [L1]; % x-displacements are fixed


By = [L1,L2]; % y-displacements are fixed

%%% Node Set for Loads & Constraints %%%

L = find(x<=xmin+stol & y > 1062.5-stol & y < 1132.5 + stol);


%(left midpoint at top rigid part)

Tx = L;
Txp(1:length(Tx)) = 1/length(Tx); % let sum of forces = 1 N

Ty = []; Typ = []; % no force along y-direction


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 234

T_control = 3 % T_control >0 ==> use Tx (third node in Tx set)


%T_control = -1 % T_control <0 ==> use Ty (first node in Ty set)

%===================== end of control_BC.m ============================

*** Data_Material_Interface_raw.m
function [plastic_ten_stress, opening_crack_width, breakpoint, ...
plastic_shear_stress, opening_crack_width_shear, breakpoint_shear, ...
shear_friction, Yield_Angle, Misalignment_Angle, Dilatancy_Angle, ...
Friction_Angle, Thickness, beta_factor, compression_strength, ...
opening_crack_width_comp, breakpoint_comp, Residual_Comp_Stress, ...
beta_factor_comp] = Data_Material_Interface_raw(material)
%
%--purpose : to provide interface material properties
% called by : Data_Material_Interface_ncap4.m
%
% Input:
% material: ID number of interface material;
%------------------------------------------------------------------------

if material == 1 % for Brick Interface

% Tensile Properties
plastic_ten_stress = 2.0; % N/mm2 or MPa
modeI_frac_energ = 0.08; % N/mm
opening_crack_width = 2.0*modeI_frac_energ/plastic_ten_stress;
breakpoint = opening_crack_width; % mm

% Shear Properties
Dilatancy_Angle = 0.0; % in radian
Friction_Angle = 0.7854; % in radian
shear_friction = tan(Friction_Angle);

Cohesion = 2.8; % N/mm2 or MPa


plastic_shear_stress = Cohesion*cos(Friction_Angle);
modeII_frac_energ = 0.50; % N/mm
opening_crack_width_shear = 2.0*modeII_frac_energ/Cohesion/...
cos(Dilatancy_Angle); % mm
breakpoint_shear = opening_crack_width_shear; % mm

% Compressive Properties (No brick compressive failure)


compression_strength = 66.0*1000; % N/mm2 or MPa

Residual_Comp_Stress = 66/7; % N/mm2 or MPa


beta_factor_comp = 0.00; % no interaction between shear & comp.
comp_frac_energ = 5.40*66/11.73; % N/mm
opening_crack_width_comp = 2.0*comp_frac_energ/...
(compression_strength-
Residual_Comp_Stress);
breakpoint_comp = opening_crack_width_comp; % mm

%
Yield_Angle = 0; % in degree, = 0 (currently used)
Misalignment_Angle = 0; % in degree, = 0 (currently used)

beta_factor = 0.95; % = 0.95 (currently used)


Thickness = 100.0; % mm

end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 235

if material == 2 % for Mortar Interface

% Tensile Properties
plastic_ten_stress = 0.25; % N/mm2 or MPa
modeI_frac_energ = 0.018; % N/mm
opening_crack_width = 2.0*modeI_frac_energ/plastic_ten_stress;
breakpoint = opening_crack_width; % mm

% Shear Properties
Dilatancy_Angle = 0.0; % in radian
Friction_Angle = 0.6435; % in radian
shear_friction = tan(Friction_Angle);

Cohesion = 1.4*0.25; % N/mm2 or MPa


plastic_shear_stress = Cohesion*cos(Friction_Angle);
modeII_frac_energ = 0.125; % N/mm
opening_crack_width_shear = 2.0*modeII_frac_energ/Cohesion/...
cos(Dilatancy_Angle); % mm
breakpoint_shear = opening_crack_width_shear; % mm

% Compressive Properties
compression_strength = 10.5; % N/mm2 or MPa

Residual_Comp_Stress = 10.5/7; % N/mm2 or MPa


beta_factor_comp = 0.00; % no interaction between shear & comp.
comp_frac_energ = 5.0; % N/mm
opening_crack_width_comp = 2.0*comp_frac_energ/...
(compression_strength-
Residual_Comp_Stress);
breakpoint_comp = opening_crack_width_comp; % mm

%
Yield_Angle = 0; % in degree, = 0 (currently used)
Misalignment_Angle = 0; % in degree, = 0 (currently used)

beta_factor = 0.95; % = 0.95 (currently used)


Thickness = 100.0; % mm

end;

if material == 3 % for rigid part (No failure)

% Tensile Properties
plastic_ten_stress = 2.00*1000; % N/mm2 or MPa
modeI_frac_energ = 0.08; % N/mm
opening_crack_width = 2*modeI_frac_energ/plastic_ten_stress;
breakpoint = opening_crack_width; % mm

% Shear Properties
Dilatancy_Angle = 0.0; % in radian
Friction_Angle = 0.6435; % in radian
shear_friction = tan(Friction_Angle);

Cohesion = 2.8*1000; % N/mm2 or MPa


plastic_shear_stress = Cohesion*cos(Friction_Angle);
modeII_frac_energ = 1.09; % N/mm
opening_crack_width_shear = 2*modeII_frac_energ/Cohesion/...
cos(Dilatancy_Angle); % mm
breakpoint_shear = opening_crack_width_shear; % mm

% Compressive Properties
compression_strength = 11.20*1000; % N/mm2 or MPa
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 236

Residual_Comp_Stress = 2.8*11.2/7; % N/mm2 or MPa


beta_factor_comp = 0.00; % no interaction between shear & comp.
comp_frac_energ = 5.0*11.2/3.5; % N/mm
opening_crack_width_comp = 2.353*comp_frac_energ/...
(compression_strength-
Residual_Comp_Stress);
breakpoint_comp = opening_crack_width_comp; % mm

%
Yield_Angle = 0; % in degree, = 0 (currently used)
Misalignment_Angle = 0; % in degree, = 0 (currently used)

beta_factor = 0.95; % = 0.95 (currently used)


Thickness = 100.0; % mm

end;

%================ end of Data_Material_Interface_raw.m =================

*** Data_Material_Body.m
function [elastic, nu, Thickness] = Data_Material_Body(material)
%
%--purpose : to provide body material properties.
% called by : SMat_Fracture_ncap4.m
%
% Input:
% material : ID number of body material;
%
% Output & Usage:
% elastic, nu, Thickness
%------------------------------------------------------------------------

if material == 1 % for Masonry unit


elastic = 3150; % N/mm2 or MPa
nu = 0.14;
Thickness = 100.0; % mm
end;

if material == 2 % for Rigid Part


elastic = 200000; % N/mm2 or MPa
nu = 0.30;
Thickness = 100.0; % mm
end;

%=================== end of Data_Material_Body.m ========================

*** box_ReDefineMaterialID.m
function [Box_InterID, Box_BodyID] = box_ReDefineMaterialID
%
%--purpose : to define boxes covering area where material ID to be redefined
% called by : Redefine_MaterialID.m
%
% Output & Usage:
% Box_InterID: boxes covering an area where interface ID to be redefined
% judged by the centre of the element edge
% Box_BodyID: boxes covering an area where body ID to be redifined
% judged by centre of the element
% each row: [x1, y1, x2, y2, id]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
% id -- ID number to be assigned
%------------------------------------------------------------------------
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 237

stol = 1e-5;

Box_InterID = [0-stol, -7.5-stol, 990+stol, 62.50-stol, 3;...


0-stol, 1062.5+stol, 990+stol, 1132.5+stol, 3]; % rigid parts

Box_BodyID = [0-stol, -7.5-stol, 990+stol, 62.50+stol, 2;...


0-stol, 1062.5-stol, 990+stol, 1132.5+stol, 2]; % rigid parts

%==================== end of box_ReDefineMaterialID.m ===================

*** box_ReDefineListExclude.m
function [Box_ListExclude, mode] = box_ReDefineListExclude
%
% Purpose: to define boxes covering midpoints
% where yield potentials are ignored
% Called by: Redefine_ListExclude.m
%
% Output & Usage:
% Box_ListExclude: boxes covering midpoints
% where yield potentials are ignored;
% each row: [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
% later row's definition append to earliers.
%------------------------------------------------------------------------

stol = 1e-3;
mode = 0;

Box_ListExclude = [0-stol, -7.5-stol, 990+stol, 62.50-stol;...


0-stol, 1062.5+stol, 990+stol, 1132.5+stol]; % rigid parts

%================ end of box_ReDefineListExclude.m ======================

*** qhistory_boxs.m
function Bxy = qhistory_boxs
%
%--purpose : to define boxes covering midpoints whose interface force
% & displacement history will be exported
% called by : qhistory_position.m
%
% Output & Usage:
% Bxy: box covering an area within which the midpoints are selected
% each row [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
%------------------------------------------------------------------------

stol = 1e-5;

Bxy = [0-stol, 62.5-stol, 990+stol, 62.5+stol]; % at bottom of wall

%==================== end of qhistory_boxs ==============================

*** dhistory_boxs.m
function [Bx, By] = dhistory_boxs
%
% Purpose:
% To define boxes covering midpoints whose deflec. history will be exported
%
% Called by: dhistory_dof.m
%
% Output & Usage:
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 238

% Bx: box covering an area within


% which the x-deflec. of midpoints are selected
% By: box covering an area within
% which the y-deflec. of midpoints are selected
% each row [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
%------------------------------------------------------------------------

stol = 1e-5;

Bx = [0-stol, 1130.75-stol, 0+stol, 1130.75+1];


By = [0-stol, 1130.75-stol, 0+stol, 1130.75+1]; % control point

%================== end of dhistory_boxs ================================

*** preload_boxs.m
function [Bxp, Byp, Pxp, Pyp, Bxb, Byb] = preload_boxs(XY_Midpoint);
%
% Purpose:
% To define boxes covering midpoints where preloads are applied
% To define the set of points for BC control
% Called by: preload_function.m
%
% Input: XY_Midpoint
%
% Output & Usage:
% Bxp: boxes covering an area where the midpoints have x-preloads
% Byp: boxes covering an area where the midpoints have y-preloads
% each row [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
% Pxp: load values defined per box corresponding to Bxp,(1:n_rowx)
% Pyp: load values defined per box corresponding to Byp,(1:n_rowy)
% Bxb: boxes covering an area where the midpoints has x-displ. are fixed
% Byb: boxes covering an area where the midpoints has y-displ. are fixed
%------------------------------------------------------------------------

%%% PreLoad Information %%%

stol = 1e-5;

Bxp = [];
Pxp = [];

y1 = 1132.5;
Byp = [0-stol, y1-stol, 990+stol, y1+stol]; % top of wall

% Pyp =(-209880)/36; % 2.12Mpa = 2.12*990*100 = 209880 kN (using N points)


% Pyp =(-119790)/36; % 1.21Mpa = 1.21*990*100 = 119790 kN (using N points)
Pyp =(-29700)/36; % 0.30Mpa = 0.30*990*100 = 29700 kN (using N points)

%%% Geometrical Information %%%

xmin = min(XY_Midpoint(:,1));
ymin = min(XY_Midpoint(:,2));
xmax = max(XY_Midpoint(:,1));
ymax = max(XY_Midpoint(:,2));

stol = 1e-5;
y = (XY_Midpoint(:,2))';
x = (XY_Midpoint(:,1))';
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 239

%%% Node Set for Displacement Constraints %%%

% Boundary Nodes

L1 = find(y<=ymin+stol); % bottom -- all nodes

Bxb = [L1]; % x-displacements are fixed


Byb = [L1]; % y-displacements are fixed

%====================== end of preload_boxs.m ==========================

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Fracture_pre_ncap4.m %%%%%
%%%%% CALLED BY Fracture_main_ncap4.m %%%%%
%%%%% FOR PREPROCESSING : MESH GENERATION & MATRIX ASSEMBLY %%%%%
%%%%% CALLED ONLY IF RESTART FILE ("restart.mat") DOES NOT EXIST %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all;

%%% GET INPUT FILENAME FROM USER %%%

inputtemp = input('ENTER NEW INPUT FILE NAME (without extension) :', 's');

if isempty(inputtemp)
inputfile = [inputfile '.m'];
else
inputfile = [inputtemp '.m'];
end;

%%% CALL A WRITTEN FUNCTION TO CREATE FUNCTIONS DEFINED IN INPUT FILE

masonry_makefile(1, inputfile); % (create temporary input files)

while exist('control_main.m', 'file') == 0 end;

%%% GET MAIN CONTROL PARAMETERS %%%


% FROM FUNCTION control_main.m DEFINED IN INPUT FILE %

[Restart_Mesh, Restart_Assemble, Restart_Number, shear, num_factors,...


jplot, jsave, Lemke_Use, mesh_style, case_title, nonassociated, ...
Yield_Tolerance, Select_Mode, Snap_Back_Factor] = control_main;

%%% START WRITING DIARY OF MATLAB INPUT/OUTPUT %%%

diary Diary_Fracture.txt;

num_actions = 12; % number of actions per element


num_nodes = 6; % number of nodes per element

%%% ASSIGN NUMBER OF POTENTIALS PER NODE DEPENDENT ON YIELD SURFACE USED

if shear == 0 % Mode 1 - Assumed


num_potentials_node = 1;
end;

if shear == 1 % Mode 1 - Interaction between Normal & Shear


num_potentials_node = 2; % Non-Assocated Flow Rule
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 240

if shear == 2 % Mode 2 - Mohr-Coulomb


num_potentials_node = 4; % Two Planes in Tension - Shear Quadrant
end;

if shear == 3 % Mode 1 - Shear Reduction


num_potentials_node = 3; % One Plane in Tension - Two Planes for Shear
end;

if shear == 4 % Mode 2 - Mohr-Coulomb (USUALLY USED, WITHOUT COMP. CAP)


num_potentials_node = 3; % One Plane in Tension - Two in Shear
end;

if shear == 6 % Mode 2 - Mohr-Coulomb-CAP


% One Plane in Tension - Two in Shear - Two in Compression
num_potentials_node = 5;
end;

num_potentials = num_nodes*num_potentials_node; % num. of potentials per Elem.

%%% CALL A WRITTEN FUNCTION TO GENERATE & DISPLAY MESH %%%

disp('--- PREPARE & DISPLAY MESH - CASE SPECIFIC ---');


[XY_Midpoint, Incidence, XYvertices, tri, Ele_Mat, ...
List_exclude] = Case_definition_Mesh_ncap4(mesh_style);

X1 = XYvertices(:,1);
Y1 = XYvertices(:,2);

%%% CALL A WRITTEN FUNC. TO CREATE TOPOGRAPHY FOR POTENTIAL, LOAD, etc.

disp('--- CREATE TOPOGRAPHY FOR POTENTIAL, LOAD, FREEDOMS etc. ---');


[VecIncidence, VecPotential, Free, Load, Top, pindex, Incidence] ...
= Masonry_topography_ncap4(Incidence, XY_Midpoint, Ele_Mat,...
shear, List_exclude);

%%% CALL A WRITTEN FUNC. TO FINDOUT FREEDOM ID FOR DEFLECTION HISTORY OUTPUT

dhistory_dofID = []
if exist('dhistory_boxs.m', 'file')
dhistory_dofID = dhistory_dof (XY_Midpoint, Free, Incidence, Ele_Mat)
end;

%%% CALL A WRITTEN FUNCTION TO CALCULATE PRELOAD %%%


% DEFINED IN FUNCTION preload_boxs.m IN INPUT FILE %

if exist('preload_boxs.m', 'file')
disp('--- PRELOAD - CASE SPECIFIC ---');
[preload, pdof2, dp2, fdof2] = ...
preload_function(XY_Midpoint, Incidence, Ele_Mat, Free);
end;

%%% CALL A WRITTEN FUNCTION TO CALCULATE DEADLOAD %%%


% DEFINED IN FUNCTION deadLoad_boxs.m IN INPUT FILE %
% (RETURN ZEROS IF deadLoad_boxs.m DOESN'T EXIST) %

deadLoad = deadLoad_treat(XY_Midpoint,Free,Incidence,Ele_Mat);

%%% CALL A WRITTEN FUNC. TO FINDOUT INDEXES FOR INTERFACE FORCE HISTORY OUTPUT

qhistory_midpoints = [];
qhistory_S2row = [];
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 241

qhistory_S2col = [];

if exist('qhistory_boxs.m', 'file')
[qhistory_midpoints, qhistory_S2row, qhistory_S2col] = ...
qhistory_position (XY_Midpoint, Incidence, Ele_Mat);
end;

%%% CALL A WRITTEN FUNCTION TO CREATE BOUNDARY CONDITIONS - CASE SPECIFIC

disp('--- CREATE BOUNDARY CONDITIONS - CASE SPECIFIC ---');


[B_Supports, pdof, dp, fdof, display_free_node, control_node, ...
load_nodes, control_free, display_free, Load, load_free_total] = ...
Case_definition_BC(XY_Midpoint, abs(Incidence), Ele_Mat, Free, Load);

disp('--- DISPLAY MESH ---');

hf_1 = figure('units', 'normalized', 'position', [0.01, 0.3, 0.98, 0.6]);


ha_1 = axes('units', 'normalized', 'position', [0.07, 0.12, 0.42, 0.8],...
'visible', 'on'); % for mesh
ha_2 = axes('units', 'normalized', 'position', [0.55, 0.12, 0.42, 0.8],...
'visible', 'off'); % for u-p display

set(hf_1, 'currentaxes',ha_1);
eledraw(XYvertices, tri, Ele_Mat, 1); % call a written function

%%%%%%%%%%%%%%%%%%%% START ASSEMBLING MATRICES %%%%%%%%%%%%%%%%%%%%%

num_members = size(Incidence, 1); % number of members/elements


free_total = max(max(Free)); % number of freedoms
size_pindex = length(pindex); % number of potentials

%%% ZERO A, S, K & H MATRICES (STRUCTURAL) %%%

num_col = num_actions*num_members;
A2 = spalloc(free_total,num_col,1); % structural equilibrium matrix
S2 = spalloc(num_col,num_col,1); % structural kernel stiffness matrix

if shear < 3
H2 = zeros(num_potentials*num_members,1); % structural softening matrix
else
H2 = spalloc(num_potentials*num_members,num_potentials*num_members,1);
end;

N2 = spalloc(num_actions*num_members,num_potentials*num_members,1);

if nonassociated == 1
V2 = spalloc(num_actions*num_members,num_potentials*num_members,1);
end;

%%% PREPARE MATRIX USED FOR PLOTTING DEFLECTION

A_ele = spalloc(num_actions*num_members,num_actions*num_members,1);

%%% MAJOR LOOP - FOR EACH MEMBER/ELEMENT %%%

for i = 1:num_members

%%% CALL A WRITTEN FUNCTION TO CALCULATE ELEMENT MATRICES %%%

[Se, Ae, Ke, He, Be, Ne, Ve, ResidualE] = ...


SMat_Fracture_ncap4(i, abs(Incidence), XY_Midpoint, tri,...
XYvertices, shear, Ele_Mat, nonassociated);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 242

if shear < 5
clear ResidualE
end;

%%% ASSEMBLE STRUCTURAL MATRICES %%%

n1 = num_actions*(i-1)+1:num_actions*i;
A2(Top(i,2:13),n1) = sparse(Ae); % structural equilibrium matrix
A_ele(n1,n1) = sparse(Ae);
VecGeneralised(i,1:num_actions) = n1; % generalised stress numbering
S2(n1,n1) = sparse(Se); % structural S matrix
n1 = num_potentials*(i-1)+1:num_potentials*i;
n2 = num_actions*(i-1)+1:num_actions*i;
N2(n2,n1) = sparse(Ne); % structural normality matrix

if nonassociated == 1
V2(n2,n1) = sparse(Ve); % structural dilatancy matrix
end;

VecYield(i,1:num_potentials) = n1; % plastic yield numbering


K(n1) = Ke; % structural initial-inelastic-failure vector

if shear == 6 % cap model is included


Residual_temp(n1) = ResidualE; % temp. structural residual vector
end;

if shear < 3
H2(n1) = sparse(He); % structural softening matrix
else
H2(n1,n1) = sparse(He); % structural softening matrix
end;

BP(n1) = Be; % structural break-point matrix (critical displacement)


end;

%%%%%%%%%%%%%%%%%%% END OF ASSEMBLING MATRICES %%%%%%%%%%%%%%%%%%%%

%%% CALCULATE STRUCTURAL STIFFNESS MATRIX %%%

Kuu = sparse(A2*S2*A2');

%%% CALCULATE UNIT DISP. & UNIT FORCE DUE TO PRELOAD %%%

if exist('preload_boxs.m', 'file')
ue_preload2 = Kuu(fdof2,fdof2)\preload(fdof2);
ue_unit_preload(fdof2) = ue_preload2;
ue_unit_preload(pdof2) = dp2; % unit displacement (u)
clear ue_preload2
Qe_preload = S2*A2(fdof2,:)'*ue_unit_preload(fdof2)'; % unit force (Q)
P_preload = N2(:,pindex)'*Qe_preload; % proj. of Q on yield surfaces
end;

%%%% CALCULATE UNIT DISP. & UNIT FORCE DUE TO DEADLOAD & UNIT LOAD %%%

ue_unit2 = Kuu(fdof,fdof)\Load(fdof);
ue_deadLoad2 = Kuu(fdof,fdof)\deadLoad(fdof);
ue_unit(fdof) = ue_unit2;
ue_unit(pdof) = dp; % unit displacement (u)
ue_unit_deadLoad(fdof) = ue_deadLoad2;
ue_unit_deadLoad(pdof) = dp; % unit displacement (u)
Qe_unit = S2*A2(fdof,:)'*ue_unit(fdof)'; % unit force (Q)
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 243

P_unit = N2(:,pindex)'*Qe_unit; % projection of Q on yield surfaces


Qe_deadLoad = S2*A2(fdof,:)'*ue_unit_deadLoad(fdof)'; % unit force (Q)
P_deadLoad = N2(:,pindex)'*Qe_deadLoad; % projection of Q on yield surfaces
ue_load_unit = ue_unit(load_free_total); % unit disp. (u) at load points
ue_load_unit_deadLoad = ue_unit_deadLoad(load_free_total);

%%% CAL. UNIT DISPLACEMENT (u) AT CONTROL POINT

ue_r = ue_unit(control_free);
ue_r_deadLoad = ue_unit_deadLoad(control_free);

%%% INITIALISE VARIABLES %%%

NonActive = pindex'; % non-active set


NonActive_Band = [1:size_pindex];
Factor = zeros(num_factors,1); % displacement factor vector
Lambda_Increment = zeros(size_pindex,1);
Lambda_Total = zeros(size_pindex,1);
BreakPointSet = [];

%%%%%%%%%%%%%%%%%%% DETERMINE 1st YIELD POINT %%%%%%%%%%%%%%%%%%%%%%

%%% CALCULATE 1st DISPLACEMENT FACTOR %%%

if exist('preload_boxs.m', 'file')
K_NonActive = K(NonActive) - P_deadLoad' - P_preload';
else
K_NonActive = K(NonActive) - P_deadLoad';
end;

index_positive = find(K_NonActive'./P_unit(NonActive_Band) > 0);


K_P_unit_ratio = K_NonActive'./P_unit(NonActive_Band);
Factor(1) = min(K_P_unit_ratio(index_positive)); % 1st displacement factor

%%% FIND LOCATION OF ALL POINTS THAT REACH YIELD %%%

IndexActive = find(Factor(1)==K_NonActive'./P_unit(NonActive_Band));

%%% UPDATE ACTIVE SET %%%

Active = NonActive(IndexActive);
Active_Band = IndexActive;
Initial_Active = Active;
disp(' Initial Active Set');
Active

%%% UPDATE NON-ACTIVE SET %%%

[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
[Cp,IA,IB] = intersect(NonActive,pindex);
NonActive_Band = IB;
clear Cp IA IB;

disp(' Initial Load Factor'); % equal to displacement factor for 1st yield
Factor(1)
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 244

%%% CALCULATE POTENTIAL FUNCTION INCREMENT & UPDATE POTENTIAL FUNCTION VECTOR

if exist('preload_boxs.m', 'file')
Phi_Increment = K(pindex)' - P_unit*Factor(1) - P_deadLoad - P_preload;
else
Phi_Increment = K(pindex)' - P_unit*Factor(1) - P_deadLoad;
end;

Phi_Total = Phi_Increment; % potential function vector

%%% DISPLAY & PLOT INITIAL ACTIVE SET & SAVE FIGURE %%%

disp('Coordinates of Initial Active Set');


XY_Midpoint(VecIncidence(Active),:)

plot(XY_Midpoint(VecIncidence(Active),1),XY_Midpoint...
(VecIncidence(Active),2),'kp');

title(' Initial Active Set');


text_save = ['Event_' num2str(1)];
pause(0.1)
hgsave(hf_1, text_save); % save figure
close all % figures

%%%%%%%%%%%%%%%% END OF DETERMINING 1st YIELD POINT %%%%%%%%%%%%%%%%%

%%% PREPARE VARIABLES FOR FUNCTION Solver_fracture_ncap4.m %%%

q_path_rate = -P_unit; % P_unit = N2(:,pindex)'*Qe_unit;


BT = sparse(A2(fdof,:))*S2*N2(:,pindex);
NTQ = sparse(-N2(:,pindex)'*Qe_unit);

disp('--- END OF PREPROCESSING ---')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Solver_fracture_ncap4.m %%%
%%% CALLED BY Fracture_main_ncap4.m %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if flag_restart == 0 % 1st start

%%% INITIALISE VARIABLES %%%

Bifurcation_u = [];
Bifurcation_p = [];
udisplay(1) = 0;
pdisplay(1) = 0;
udisplay(2) = Factor(1)*ue_r % excluding effects of preload & deadload
pdisplay(2) = Factor(1)
Yield_Limit_Exceeded = 0;
j = 1;
BP_Band = BP(pindex);
UnLoadSet_Total = []; % a vector for storing unloading set
clear BP;
ZeroNu = 1.0E-25; % a constant used in LCP solver
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 245

if Select_Mode == 1
Eliminate_Elastic_Unloading = 0;
else
Eliminate_Elastic_Unloading = 1;
end;

if shear <= 4
Evol_Total = K(pindex)'; % structural evolution vector
else
Residual = Residual_temp(pindex)'; % structural residual vector
Evol_Total = K(pindex)'- Residual;
end;

%%% OPEN solvec.txt FOR STORING DETAILS OF SOLVING %%%

if exist('solvec.txt', 'file')
delete solvec.txt;
end;

fidsol = fopen('solvec.txt','a');
% one-off write for titles
fprintf(fidsol, '\n\nsolution\n');
fprintf(fidsol, 'j, load, no. forward, no. snapback, pnum,');
fprintf(fidsol, 'no. active, no. breakset, no. yield,');
fprintf(fidsol, 'no. break, no. unload');
fprintf(fidsol, '\n');
fprintf(fidsol, '\n');
else % restart mode
fidsol = fopen('solvec.txt','a');
end;

%%%%%%%%%%%%%%%%%%%%%%% MAIN WHILE LOOP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

j000 = j;
while j <= num_factors,

fprintf(fidsol, '%d', j); % write data in solvec.txt

%%% RESET VALUES OF VARIABLES %%%

forward_marker = 0;
snap_marker = 0;
p_num = 0;

%%% CHECK YIELD LIMIT %%%

if Yield_Limit_Exceeded
disp('Yield Limit Exceeded');
break;
end;

disp('Load Step:');
j

%%% WRITE RESTART FILE, NO WRITING IMMEDIATELY AFTER RESTARTING %%%

if j > j000
if ismember(j,jrestart) | j == Restart_Number | j == num_factors
disp(['--- Saving Files for Restart, j = ', num2str(j)]);
text_save = ['restart' num2str(j)];
save(text_save);
clear text_save
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 246

disp('--- Files written for Restart Option');


end;
end;

%%% RESET VALUES OF VARIABLES %%%

if size(Active,1) == 1
Active = Active'; % convert Active vector to column vector
end;

lenActive = length(Active);
lenBreakSet = 0;
lenYield = 0;
lenBreak = 0;
lenUnLoad = 0;
unbounded = 0;
SolNum = 1;

disp(' Before Assemble M & q');


size_Active = size(Active) % including break point set

%%% CALL A WRITTEN SUB-SCRIPT (Action_Assemble_ncap4.m) TO FORM LCP %%%

clear q_path M_path; % q_path == p & M_path == M in general LCP form

Action_Assemble_ncap4; % call a written sub-script

disp('After Assembly');
size_Active = size(Active) % excluding break point set
ActiveWithBreaks = union(Active,BreakPointSet); % total active set

disp('Active without Breakpoint');


Active

if isempty(Active)
Factor_Increment_BP = inf; % disp. factor incre. required to get BP
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% START SOLVING LCP %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if ~isempty(Active) % * ------------------------%%%%%%%%%%%%% LINE AAA

%%% CHECK POSITIVE DEFINITENESS OF M_path MATRIX %%%

M_Sym = (M_path + M_path');


[R_temp, p_num] = chol(M_Sym);

if p_num > 0
disp('Matrix Not Positive Definite')
p_num
else
disp('Matrix Positive Definite')
p_num
end;
clear M_Sym R_temp;

%%% LCP SOLVERS %%%


%%% Bounded = 0 Solution Found
%%% Bounded = 1 No Solution Found
%%% Bounded = -1 Elastic Solution
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 247

jintersect = 0;
jintersect = ismember(j,Lemke_Use); % Lemke_Use defined in input file
if p_num == 0; jintersect = 1; end; % p_num = 0 - unique forward sol.

if jintersect == 1 % **
clear z z_tmp z_temp;
unbounded = 0;
disp(' Forward Solution Using Lemke');
[z_tmp,Bounded] = Lemke(M_path,q_path);
z_temp(:,1) = z_tmp(1:size_Active(1))

if Bounded == 1 & Yield_Tolerance ~= 1.0


Bounded = 0;
disp(' Forward Solution Using LPCMEX'); % (pathlcp.m)
clear z_lcpmex;
clear functions;
[z_lcpmex,Bounded] = pathlcp(M_path,q_path)
z_temp(:,1) = z_lcpmex;
end;

if Bounded == -1
disp(' Elastic Solution Only');

if p_num ~= 0
Bounded = 0;
clear z_temp;
clear z_lcpmex;
clear functions;
[z_lcpmex,Bounded_path] = pathlcp(M_path,q_path)
z_temp(:,1) = z_lcpmex;
Bounded = Bounded_path;
clear Bounded_path;
z_temp2 = zeros(size_Active(1),1);
G_tmp2 = z_temp(:,1)'*q_path+z_temp(:,1)'*...
M_path*z_temp(:,1);
phi_tmp2 = q_path + M_path*z_temp(:,1);

if isequal(z_temp(:,1),z_temp2)
Bounded = -1;
end;

clear z_temp2;
else
unbounded = 0;
z = z_temp(:,1);
end;
end;

if Bounded == 0 & p_num == 0


forward_marker = -1;
z = z_temp(:,1);
end;

if Bounded == 1
unbounded = 1;
snap_marker = -1;
end;

if Bounded == 1 | p_num ~= 0
disp(' Snap Back Solution Using LPCMEX'); % (pathlcp.m)
clear z_lcpmex;
clear functions;
size(z_temp)
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 248

[z_lcpmex,Bounded_path] = pathlcp(M_path,-q_path)
z_temp(:,2) = z_lcpmex;
size(z_lcpmex)
G_tmp = -z_temp(:,2)'*q_path+z_temp(:,2)'*M_path*z_temp(:,2);
phi_tmp = -q_path + M_path*z_temp(:,2);

if Bounded_path == 1 & p_num == 0


disp(' No Solution');
break;
end;

if Bounded == 1 & abs(G_tmp) > 0.001


disp(' Error G Not Zero');
j
pause;
end;
clear G_tmp phi_tmp;

if p_num == 0
unbounded = 1;
snap_marker = -1;
z = z_temp(:,2);
end;

if p_num > 0 & Bounded ~= 1


Forward_Solution_Only = 0;

if Eliminate_Elastic_Unloading == 1
z_temp2 = zeros(size_Active(1),1);

if isequal(z_temp(:,2),z_temp2)
disp(' Warning Elastic UnLoading Deletted');
z_temp(:,2) = [];
Forward_Solution_Only = 1;
end;

clear z_temp2;
end;

if Forward_Solution_Only == 0
forward_marker = -1;
snap_marker = -1;

% Snap Back Norm used to get rid of spurious modes


clear Snap_Back_Norm;
Snap_Back_Norm = sqrt(sum(z_temp(:,2).*...
z_temp(:,2)))/length(z_temp(:,2))

if Snap_Back_Norm > Snap_Back_Factor


i_select = input('Bifurcation Select Solution 1
(increasing) 2 (snap-back)');
else
i_select = 1;
end;
z = z_temp(:,i_select);

if i_select == 1
unbounded = 0;
else
unbounded = 1;
end;
else
unbounded = 0;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 249

forward_backer = -1;
z = z_temp(:,1);
end;
else
% Snap Back Critical
unbounded = 1;
snap_marker = -1;
z = z_temp(:,2);
end;

clear z_temp i_select;


end;
else % **
disp(' Forward Solution Using CPXMAT');
[Bounded,SolNum_Forward] = cpxmat(q_path,M_path,ZeroNu)
forward_marker = SolNum_Forward;

if SolNum_Forward ~= 0
clear z_sol_Forward;
z_sol_Forward = zeros(size_Active(1),SolNum_Forward);
fid = fopen('cpxmat.out','r');

for i = 1:SolNum_Forward
Sol = fscanf(fid,'%5d');
z_sol_Forward(1:size_Active(1),i) =...
fscanf(fid,'%e',size_Active(1));
end;
status = fclose(fid);

%%% Determine Critical Path %%%

disp(' Lambda Increment Forward')


z_sol_Forward

% Load Factor for Unit Prescribed Displacement


clear us_free;
disp(' Load Factors')

if isempty(BreakPointSet) == 0
clear z_sol_Break;

for i = 1:size(z_sol_Forward,2)
z_sol_Break(:,i) = q_break -...
Z_break*z_sol_Forward(:,i);
end;

Factor_inc = 1 - Rr*z_sol_Forward - RrBreak*z_sol_Break


disp(' Displacment Increment')

for i = 1:SolNum_Forward
us_free(:,i) = ue_load_unit'*Factor_inc(i) + ...
(Rloadfree*z_sol_Forward(:,i) + ...
RloadfreeBreak*z_sol_Break(:,i))
end;
else
Factor_inc = 1 - Rr*z_sol_Forward
disp(' Displacment Increment')

for i = 1:SolNum_Forward
us_free(:,i) = ue_load_unit'*Factor_inc(i) + ...
(Rloadfree*z_sol_Forward(:,i))
end;
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 250

disp(' Work Increment')


% Minimum Second Order Work
Work_inc_Forward = (Load(load_free_total)'*us_free).*...
pdisplay(j) + 0.5*(Load(load_free_total)'*...
us_free).*Factor_inc
Second_Order_Work_Forward = (Load(load_free_total)'*...
us_free).*Factor_inc
end;

disp(' Snap Back Solution Using CPXMAT');


[Bounded_path,SolNum_Snap] = cpxmat(-q_path,M_path,ZeroNu)
snap_marker = SolNum_Snap;

if SolNum_Snap ~= 0
clear z_sol_Snap;
z_sol_Snap = zeros(size_Active(1),SolNum_Snap);

% z_temp used to check elastically unloading path


z_temp = zeros(size_Active(1),1);

fid = fopen('cpxmat.out','r');

for i = 1:SolNum_Snap
Sol = fscanf(fid,'%5d');
z_sol_Snap(1:size_Active(1),i) =...
fscanf(fid,'%e',size_Active(1));
end;

disp(' Lambda Increment Snap')


z_sol_Snap

if Select_Mode == 0
if (size(z_sol_Snap,2) == 1 & size(z_sol_Forward,2) > 0)
disp(' Warning SnapBack Solution Deletted');
z_sol_Snap = [];
SolNum_Snap = 0;
end;
end;

if Eliminate_Elastic_Unloading == 1
i = 1;
SolNum_Temp = SolNum_Snap;
z_sol_Temp = z_sol_Snap;

while i <= SolNum_Temp


if isequal(z_sol_Snap(:,i),z_temp)
disp(' Warning Elastic UnLoading Deletted');
z_sol_Temp(:,i) = [];
SolNum_Snap = SolNum_Snap -1 ;
end;
i = i+1;
end;

z_sol_Snap = z_sol_Temp;
clear i z_sol_Temp;
end;

status = fclose(fid);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 251

%%% Determine Critical Path %%%


if SolNum_Snap ~= 0

% Load Factor for - Unit Prescribed Displacement


clear us_free;
disp(' Load Factors')

if isempty(BreakPointSet) == 0
clear z_sol_Break;

for i = 1:size(z_sol_Snap,2)
z_sol_Break(:,i) = -q_break -...
Z_break*z_sol_Snap(:,i);
end;

Factor_inc = -1 - Rr*z_sol_Snap - RrBreak*z_sol_Break


disp(' Displacment Increment')

for i = 1:SolNum_Snap
us_free(:,i) = ue_load_unit'*Factor_inc(i) + ...
(Rloadfree*z_sol_Snap(:,i) + ...
RloadfreeBreak*z_sol_Break(:,i));
end;

us_free
else
Factor_inc = -1 - Rr*z_sol_Snap
disp(' Displacement Increment')

for i = 1:SolNum_Snap
us_free(:,i) = ue_load_unit'*Factor_inc(i) + ...
(Rloadfree*z_sol_Snap(:,i));
end;

us_free
end;

disp(' Work Increment')


Work_inc_Snap = (Load(load_free_total)'*us_free).*...
pdisplay(j) + 0.5*(Load(load_free_total)'*...
us_free).*Factor_inc
Second_Order_Work_Snap = (Load(load_free_total)'*...
us_free).*Factor_inc
end;
end;

if SolNum_Forward ~= 0 | SolNum_Snap ~= 0

if SolNum_Forward ~=0 & SolNum_Snap ~=0


clear z_sol Work_inc;
z_sol = [z_sol_Forward, z_sol_Snap]
Work_inc = [Work_inc_Forward,Work_inc_Snap]

if Select_Mode == 0
clear WorkNegIndex i_vec_work y_vec_work;
WorkNegIndex = find(Work_inc < 0);

if isempty(WorkNegIndex)
[y_vec,i_vec] = min(Work_inc);
else
[y_vec_work,i_vec_work] =...
max(Work_inc(WorkNegIndex));
i_vec = WorkNegIndex(i_vec_work);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 252

end;
else
disp(' Select Equilibrium Path');
i_vec = input('Select Solution 1 2 3 4 etc.');
end;
end;

if SolNum_Forward == 0
clear z_sol Work_inc;
z_sol = z_sol_Snap
Work_inc = Work_inc_Snap

if Select_Mode == 0
clear WorkNegIndex i_vec_work y_vec_work;
WorkNegIndex = find(Work_inc < 0);

if isempty(WorkNegIndex)
[y_vec,i_vec] = min(Work_inc);
else
[y_vec_work,i_vec_work] =...
max(Work_inc(WorkNegIndex));
i_vec = WorkNegIndex(i_vec_work);
end;
else
disp(' Select Equilibrium Path');
i_vec = input('Select Solution 1 2 3 4 etc.');
end;
end;

if SolNum_Snap == 0
clear z_sol Work_inc;
z_sol = z_sol_Forward
Work_inc = Work_inc_Forward

if Select_Mode == 0
clear WorkNegIndex i_vec_work y_vec_work;
WorkNegIndex = find(Work_inc < 0);

if isempty(WorkNegIndex)
[y_vec,i_vec] = min(Work_inc);
else
[y_vec_work,i_vec_work] =...
max(Work_inc(WorkNegIndex));
i_vec = WorkNegIndex(i_vec_work);
end;
else
disp(' Select Equilibrium Path');
i_vec = input('Select Solution 1 2 3 4 etc.');
end;
end;

if isequal(z_sol(:,i_vec),z_temp)
disp(' Elastic UnLoading Critical');
i_vec = input('Select Solution 1 2 3 4 etc.');
end;

if i_vec > SolNum_Forward


unbounded = 1;
G_tmp = -z_sol(:,i_vec)'*q_path+z_sol(:,i_vec)'*...
M_path*z_sol(:,i_vec)
phi_tmp = -q_path + M_path*z_sol(:,i_vec)
else
unbounded = 0;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 253

G_tmp = z_sol(:,i_vec)'*q_path+z_sol(:,i_vec)'*...
M_path*z_sol(:,i_vec)
phi_tmp = q_path + M_path*z_sol(:,i_vec)
end;

if abs(G_tmp) > 0.001


disp(' Error G Not Zero');
j
break;
end;
clear G_tmp phi_tmp;
else
disp(' No Solutions');
break;
end;

z(1:size_Active(1)) = z_sol(:,i_vec);
end; % ** ------------------------%%%%%%%%%%%%% LINE BBB

%%% GET LAMBDA INCREMENT DUE TO UNIT DISP. FACTOR INCREMENT %%%

if size(z,2) > 1
Lambda_Increment = z(1:size_Active(1))';
else
Lambda_Increment = z(1:size_Active(1));
end;

%%% DETERMINE UNLOADING SET %%%

UnLoadSet = find(Lambda_Increment<1.0E-25&Lambda_Increment>-1.0E-25);

disp('Unloading Lambda');
Active(UnLoadSet)

if isempty(intersect(Active(UnLoadSet),BreakPointSet)) == 0
disp('UnLoadSet contains Breakpoint');
break;
end;

ActiveBeforeUnLoad = Active; % excluding break point set

%%% UPDATE VARIABLES DUE TO UNLOADING SET %%%

UnLoadSet_Total = unique([UnLoadSet_Total;Active(UnLoadSet)]);
Active(UnLoadSet) = []; % update active set
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;
Lambda_Increment(UnLoadSet) = []; % update lambda increment

if ~isempty(BreakPointSet)
Z_break(:,UnLoadSet) = []; % Z_break from Action_Assemble_ncap4.m
end;

if ~isempty(UnLoadSet)
lenUnLoad = length(UnLoadSet);
end;

NonActive = union(NonActive,UnLoadSet); % update non-active set


[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 254

%%% CALC. LAMBDA INCRE. DUE TO UNIT DISP. FACTOR INCRE. OF BP SET %%%

if ~isempty(Active) % ***
ActiveNoBreak = Active; %Active no break and no unloading
ActiveNoBreak_Band = Active_Band;

if ~isempty(BreakPointSet)
Lambda_Increment_2 = Lambda_Increment;

if unbounded == 0
if ~isempty(Lambda_Increment)
Lambda_Break_Increment = q_break -...
Z_break*Lambda_Increment;
else % q_break from Action_Assemble_ncap4.m
Lambda_Break_Increment = q_break;
end;
else
if ~isempty(Lambda_Increment)
Lambda_Break_Increment = -q_break -...
Z_break*Lambda_Increment;
else
Lambda_Break_Increment = -q_break;
end;
end;

Active = union(Active,BreakPointSet);

if size(Active,2) > 1
Active = Active';
end;

[Cp,IA,IB] = intersect(ActiveNoBreak,Active);
Lambda_Increment_New(IB) = Lambda_Increment;
clear Cp IA IB;
[Cp,IA,IB] = intersect(BreakPointSet,Active);
Lambda_Increment_New(IB) = Lambda_Break_Increment;
clear Cp IA IB;

%%% Update Lambda Increment Due to Break Point Set %%%

Active_Band = union(Active_Band,BreakPointSet_Band);
Lambda_Increment = Lambda_Increment_New';
clear Rr Rloadfree;

Rr = RrOld; % Rr from Action_Assemble_ncap4.m


Rloadfree = RloadfreeOld;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;
clear Lambda_Increment_New Lambda_Break_Increment
end;

%%% DETERMINE (DISP.) FACTOR INCREMENT REQUIRED TO REACH NEW BP.

ActiveBreak = ActiveNoBreak;
ActiveBreak_Band = ActiveNoBreak_Band;

Factor_ratio = (-Evol_Total(ActiveNoBreak_Band))./...
(full(H(ActiveNoBreak_Band,Active_Band))*Lambda_Increment);
index_positive = find(Factor_ratio > 0);
IFactor=find(Factor_ratio == -inf);
Factor_ratio(IFactor) = inf;
Factor_Increment_BP = min(Factor_ratio(index_positive));
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 255

if isempty(Factor_Increment_BP)
Factor_Increment_BP = inf;
end;

Factor_Increment_BP

if Factor_Increment_BP ~= inf

if Yield_Tolerance ~= 1.0
ActiveBreak_Band_index_temp = find(Factor_ratio >= ...
Factor_Increment_BP & Factor_ratio < ...
Factor_Increment_BP*1.0000001);
else
ActiveBreak_Band_index_temp = ...
find(Factor_Increment_BP==Factor_ratio);
end;
Active_Break_Temp2 = pindex(ActiveNoBreak_Band...
(ActiveBreak_Band_index_temp))'
else
Active_Break_Temp2 = [];
end;

clear index_positive ActiveBreak_Band_index_temp;


else % ***

if exist('q_break','var') == 0 | isempty(q_break)
disp('Active Set Empty');
break;
end;

Lambda_Increment = q_break;
Active = BreakPointSet;

if size(Active,2) > 1
Active = Active';
end;

Active_Break_Temp2 = [];
Active_Band = BreakPointSet_Band;
clear Rr Rloadfree;
Rr = RrOld; % Rr from Action_Assemble_ncap4.m
Rloadfree = RloadfreeOld; % Rloadfree from Action_Assemble_ncap4.m
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;
Factor_Increment_BP = inf;
end; % ***
else % *
Lambda_Increment = q_break;
Active = BreakPointSet;

if size(Active,2) > 1
Active = Active';
end;

Active_Break_Temp2 = [];
Active_Band = BreakPointSet_Band;
clear Rr Rloadfree;
Rr = RrOld; % Rr from Action_Assemble_ncap4.m
Rloadfree = RloadfreeOld; % Rloadfree from Action_Assemble_ncap4.m
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;
Factor_Increment_BP = inf;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 256

end; % *

%%%%%%%%%%%%%%%%%%%%%%% END OF SOLVING LCP %%%%%%%%%%%%%%%%%%%%%%%

Active_Band_Old = Active_Band; % active set corresponding to lambda inc.


ActiveOld = Active;

%%% UPDATE OTHER VARIABLES DUE TO UNLOADING SET %%%

[C,IA,IB] = intersect(ActiveBeforeUnLoad(UnLoadSet),ActiveWithBreaks);
M_path_rate(:,IB) = [];
Rr(:,IB) = []; % Rr from Action_Assemble_ncap4.m
Rloadfree(:,IB) = []; % Rloadfree from Action_Assemble_ncap4.m
clear C IA IB;

%%% DETERMINE (DISP.) FACTOR INCREMENT REQUIRED TO REACH NEW YIELD POINT

if unbounded == 0
Phi_NonActive = q_path_rate(NonActive_Band) + ...
M_path_rate(NonActive_Band,:)*Lambda_Increment;
Phi_NotZero_index = find(Phi_NonActive~=0);
index_positive = find(Phi_Total(NonActive_Band(Phi_NotZero_index))...
./-Phi_NonActive(Phi_NotZero_index) > 0);
Phi_ratio = Phi_Total(NonActive_Band(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index);

if ~isempty(index_positive)
Factor_Increment_YP = min(Phi_ratio(index_positive));
Factor_Increment_YP
NewActiveElm_Band_Temp = find(Factor_Increment_YP==Phi_ratio);
NewActive_Band_Temp = ...
NonActive_Band(Phi_NotZero_index(NewActiveElm_Band_Temp));
NewActive_Yield = pindex(NewActive_Band_Temp)'
clear NewActive_Yield NewActive_Band_Temp;
clear NewActiveElm_Band_Temp;
else
Factor_Increment_YP = inf;
end;
else % Snap Back Solution
Phi_NonActive = q_path_rate(NonActive_Band) - ...
M_path_rate(NonActive_Band,:)*Lambda_Increment;
Phi_NotZero_index = find(Phi_NonActive~=0);
index_neg = find(Phi_Total(NonActive_Band(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index) < 0);
Phi_ratio = Phi_Total(NonActive_Band(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index);

if ~isempty(index_neg)
Factor_Increment_YP = max(Phi_ratio(index_neg));
Factor_Increment_YP
NewActiveElm_Band_Temp = find(Factor_Increment_YP==Phi_ratio);
NewActive_Band_Temp =...
NonActive_Band(Phi_NotZero_index(NewActiveElm_Band_Temp));
NewActive_Yield = pindex(NewActive_Band_Temp)'
clear NewActive_Yield NewActive_Band_Temp;
clear NewActiveElm_Band_Temp;
else
Factor_Increment_YP = inf;
end;
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 257

if ~isempty(BreakPointSet)
lenBreakSet = length(BreakPointSet);
end;

%%% DETERMINE & GET (DISP.) FACTOR INCREMENT %%%

if unbounded == 0
Sign_Factor = 1;
Factor_Increment_BP
else % Snap Back Solution
Sign_Factor = -1;
Factor_Increment_BP = -Factor_Increment_BP;
Factor_Increment_BP
end;

if isempty(Factor_Increment_BP) == 1;
Factor_Increment_BP = inf*Sign_Factor;
end;

if (Factor_Increment_BP*Sign_Factor > Factor_Increment_YP*Sign_Factor)

%%% WHEN Factor_Increment = Factor_Increment_YP %%%

if Factor_Increment_YP > 1.0E10


Factor_Increment_YP = 10000;
Yield_Limit_Exceeded = 1;
end;
Factor_Increment = Factor_Increment_YP;

%%% Update Phi_Total, Evol_Total %%%

if ~isempty(Active_Band)
Phi_Total = Phi_Total + (q_path_rate + (M_path_rate*...
Lambda_Increment).*Sign_Factor).*Factor_Increment;
Evol_Total = Evol_Total + ((full(H(:,Active_Band_Old))*...
Lambda_Increment).*Sign_Factor).*Factor_Increment;
Phi_Index = find(abs(Phi_Total(Active_Band))>0.01);

if isempty(Phi_Index) == 0
disp(' Error Phi Not Zero');
j
pause;
end;
end;

%%% Determine New Active %%%

if Yield_Tolerance ~= 1.0

if(Factor_Increment>0)
NewActiveElm_Band = find(Phi_ratio>=Factor_Increment&...
Phi_ratio<Factor_Increment*Yield_Tolerance);
else
NewActiveElm_Band = find(Phi_ratio<=Factor_Increment&...
Phi_ratio>Factor_Increment*Yield_Tolerance);
end;
else
NewActiveElm_Band = find(Factor_Increment==Phi_ratio);
end;

NewActive_Band = NonActive_Band(Phi_NotZero_index(NewActiveElm_Band));
NewActive = pindex(NewActive_Band)';
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 258

if ~isempty(NewActive)
lenYield = length(NewActive);
end;

%%% Update Active Set %%%

Active = unique([Active;NewActive]);
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

%%% Update Non-Active Set %%%

NonActive = pindex';

if isempty(Active) == 0
[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
end;

[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;
else

%%% WHEN Factor_Increment = Factor_Increment_BP %%%

Factor_Increment = Factor_Increment_BP;

%%% Update Active_Break_Temp Containing Actives that have reached BP

Active_Break_Temp = Active_Break_Temp2;
lenBreak=length(Active_Break_Temp);

%%% Update Phi_Total, Evol_Total %%%

Phi_Total = Phi_Total + (q_path_rate + ...


(M_path_rate*Lambda_Increment).*Sign_Factor).*Factor_Increment;
Evol_Total = Evol_Total+((full(H(:,Active_Band_Old))*...
Lambda_Increment).*Sign_Factor).*Factor_Increment;
Phi_Index = find(abs(Phi_Total(Active_Band))>0.01);
if isempty(Phi_Index) == 0
disp(' Error Phi Not Zero');
j
pause;
end;

%%% Update Softening Matrix,H, Due to New Break Point %%%

if shear < 3
H2(Active_Break_Temp) = 0;
else
if shear == 3
for i = 1:size(Active_Break_Temp,1),
H2(Active_Break_Temp(i),Active_Break_Temp(i)) = 0;
size(Active_Break_Temp)
temp1 = Active_Break_Temp+ones(size(Active_Break_Temp));
temp2 = temp1+ones(size(Active_Break_Temp));
H2(Active_Break_Temp(i),temp1(i)) = 0;
H2(Active_Break_Temp(i),temp2(i)) = 0;
end;
elseif shear == 4
Active_Break_Temp
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 259

for i = 1:size(Active_Break_Temp,1),
Active_Break_Temp
H2(Active_Break_Temp(i),Active_Break_Temp(i)) = 0;
clear temp1;
temp1 = Active_Break_Temp+ones(size(Active_Break_Temp));
temp2 = temp1+ones(size(Active_Break_Temp));
temp3 = Active_Break_Temp-ones(size(Active_Break_Temp));
temp4 = temp3-ones(size(Active_Break_Temp));

H2(Active_Break_Temp(i),temp1(i)) = 0;
H2(Active_Break_Temp(i),temp2(i)) = 0;
H2(Active_Break_Temp(i),temp3(i)) = 0;
H2(temp1(i),Active_Break_Temp(i)) = 0;
H2(temp2(i),Active_Break_Temp(i)) = 0;
H2(temp3(i),Active_Break_Temp(i)) = 0;

if temp4(i) ~= 0
H2(Active_Break_Temp(i),temp4(i)) = 0;
H2(temp4(i),Active_Break_Temp(i)) = 0;
end;
end;
clear temp1 temp2 temp3 temp4;
else % shear == 6
Active_Break_Temp

for i = 1:size(Active_Break_Temp,1),
Active_Break_Temp
H2(Active_Break_Temp(i),Active_Break_Temp(i)) = 0;
clear temp1;
temp1 = Active_Break_Temp+ones(size(Active_Break_Temp));
temp2 = temp1+ones(size(Active_Break_Temp));
temp3 = temp2+ones(size(Active_Break_Temp));
temp4 = Active_Break_Temp-ones(size(Active_Break_Temp));
temp5 = temp4-ones(size(Active_Break_Temp));
temp6 = temp5-ones(size(Active_Break_Temp));

H2(Active_Break_Temp(i),temp1(i)) = 0;
H2(Active_Break_Temp(i),temp2(i)) = 0;
H2(Active_Break_Temp(i),temp3(i)) = 0;
H2(Active_Break_Temp(i),temp4(i)) = 0;
H2(Active_Break_Temp(i),temp5(i)) = 0;

H2(temp1(i),Active_Break_Temp(i)) = 0;
H2(temp2(i),Active_Break_Temp(i)) = 0;
H2(temp3(i),Active_Break_Temp(i)) = 0;
H2(temp4(i),Active_Break_Temp(i)) = 0;
H2(temp5(i),Active_Break_Temp(i)) = 0;

if temp6(i) ~= 0
H2(Active_Break_Temp(i),temp6(i)) = 0;
H2(temp6(i),Active_Break_Temp(i)) = 0;
end;
end;
clear temp1 temp2 temp3 temp4 temp5 temp6;
end;
end;

%%% Update Break Point Set %%%

BreakPointSet = unique([BreakPointSet;Active_Break_Temp]);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 260

%%% Update Non-Active Set %%%

NonActive = pindex';
[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;
end;

if Factor_Increment == inf
disp('Factor Increment = inf');
break;
end;

%%%%%%%%%%%%%%%%%%%%%%%
%%% POST-PROCESSING %%%
%%%%%%%%%%%%%%%%%%%%%%%

Factor(j+1) = Factor(j) + Factor_Increment; % update disp. factor


Lambda_Total(Active_Band_Old) = Lambda_Total(Active_Band_Old) + ...
Sign_Factor*Lambda_Increment*Factor_Increment; % update lambda

%%% Check Lambda %%%

Lambda_Index = find(Lambda_Total(Active_Band_Old)<0 &...


Lambda_Total(Active_Band_Old)>-1.0E-20);

if isempty(Lambda_Index) == 0
disp(' Error Lambda Less Than Zero');
j
pause;
end;

%%%

j = j+1

disp(' New Displacement Factor')


Factor(j)

disp(' Load Factor');


Load_Factor_Increment = Factor_Increment*...
(1 - Rr*Sign_Factor*Lambda_Increment);
pdisplay(j+1) = pdisplay(j)+ Load_Factor_Increment;
Load_Factor = pdisplay(j+1)

%%% Write Data to solvec.txt %%%

fprintf(fidsol, ',%d', Load_Factor);


fprintf(fidsol, ',%d', forward_marker);
fprintf(fidsol, ',%d', snap_marker);
fprintf(fidsol, ',%d', p_num);
fprintf(fidsol, ',%d', lenActive);
fprintf(fidsol, ',%d', lenBreakSet);
fprintf(fidsol, ',%d', lenYield);
fprintf(fidsol, ',%d', lenBreak);
fprintf(fidsol, ',%d', lenUnLoad);
fprintf(fidsol, '\n');
clear lenActive lenYield lenBreak lenUnLoad;

%%%
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 261

udisplay(j+1) = Factor(j)*ue_r;
pdisplay(j+1) = Load_Factor
udisplay(j+1)
save pudata.dat j udisplay pdisplay -ascii

if forward_marker>1 | snap_marker>0
Bi_Size = size(Bifurcation_u);
Bifurcation_u(Bi_Size+1) = udisplay(j);
Bifurcation_p(Bi_Size+1) = pdisplay(j);
end;

%%% Plot Figure Showing Results %%%

if j == 2
u_display_max = 1.5*max(udisplay); p_display_max = 1.5*max(pdisplay);
u_display_min = 1.5*min(udisplay); p_display_min = 1.5*min(pdisplay);
end;

if ismember(j,jplot) | j == num_factors | exist('stop.m', 'file')


disp('Plot Figures');
close all;

hf_1 = figure('units', 'normalized', 'position',[0.01,0.3,0.98,0.6]);


ha_1 = axes('units', 'normalized', 'position', ...
[0.07, 0.12, 0.42, 0.8], 'visible', 'on'); % for mesh
ha_2 = axes('units', 'normalized', 'position', ...
[0.55, 0.12, 0.42, 0.8], 'visible', 'on'); % for u-p display
set(hf_1, 'currentaxes',ha_1);
hold on;

eledraw(XYvertices, tri, Ele_Mat, 1);


xlabel('X'); ylabel('Y');
hold on

plot(XY_Midpoint(B_Supports,1),XY_Midpoint(B_Supports,2),'rsquare')
plot(XY_Midpoint(load_nodes,1),XY_Midpoint(load_nodes,2),'gd')
plot(XY_Midpoint(control_node,1),XY_Midpoint(control_node,2),'kh')
plot(XY_Midpoint(VecIncidence(Initial_Active),1),...
XY_Midpoint(VecIncidence(Initial_Active),2),'kp');

Active_NonBreak = Active;
IVec_ones = ismember(Active,BreakPointSet);
IVec = find(IVec_ones==1);
Active_NonBreak(IVec) = [];
IActive_Tension = find(VecPotential(Active_NonBreak)==1);
Active_Tension = Active_NonBreak(IActive_Tension);

if shear == 6 % Cap is included


IActive_Comp1 = find(VecPotential(Active_NonBreak)==4);
IActive_Comp2 = find(VecPotential(Active_NonBreak)==5);
IActive_Comp = unique([IActive_Comp1,IActive_Comp2]);
Active_Comp = Active_NonBreak(IActive_Comp);
end;

IActive_Shear1 = find(VecPotential(Active_NonBreak)==2);
IActive_Shear2 = find(VecPotential(Active_NonBreak)==3);
IActive_Shear = unique([IActive_Shear1,IActive_Shear2]);
Active_Shear = Active_NonBreak(IActive_Shear);

plot(XY_Midpoint(VecIncidence(Active_Tension),1),...
XY_Midpoint(VecIncidence(Active_Tension),2),'rv')
plot(XY_Midpoint(VecIncidence(Active_Shear),1),...
XY_Midpoint(VecIncidence(Active_Shear),2),'b^')
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 262

if shear == 6 % Cap is included


plot(XY_Midpoint(VecIncidence(Active_Comp),1),...
XY_Midpoint(VecIncidence(Active_Comp),2),'mh')
clear IActive_Comp;
clear Active_Comp;
end;

clear IActive_Tension IActive_Shear IActive_Shear1 IActive_Shear2


clear Active_Tension Active_Shear IVec IVec_ones Active_NonBreak

plot(XY_Midpoint(VecIncidence(BreakPointSet),1),...
XY_Midpoint(VecIncidence(BreakPointSet),2),'bo'); %Break Point
plot(XY_Midpoint(VecIncidence(UnLoadSet_Total),1),...
XY_Midpoint(VecIncidence(UnLoadSet_Total),2),'r.'); %Unloading

text_title = ['Event ' num2str(j) ' : udisplay=' ...


num2str(udisplay(j+1))];
text_title = [text_title ' : pdisplay=' num2str(pdisplay(j+1))];
title(text_title);
text_save = ['Event_' num2str(j)];
set(hf_1, 'currentaxes', ha_2);
hold on;

if max(udisplay)>u_display_max, u_display_max = 1.5*max(udisplay);end;


if max(pdisplay)>p_display_max, p_display_max = 1.5*max(pdisplay);end;
if min(udisplay)<u_display_min, u_display_min = 1.5*min(udisplay);end;
if min(pdisplay)<p_display_min, p_display_min = 1.5*min(pdisplay);end;

axis([u_display_min, u_display_max, p_display_min, p_display_max]);


plot(udisplay, pdisplay, 'b-o');
hold on;

if ~isempty(Bifurcation_u)
plot(Bifurcation_u,Bifurcation_p, 'rh');
end;

xlabel('u');ylabel('p');
pause(0.1)

if ismember(j,jsave) | j == num_factors | exist('stop.m', 'file')


hgsave(hf_1, text_save);
end;
end;

%%% Calculate Deflection History & Interface Force History %%%

if ismember(j,jdisplacement)| j == num_factors | exist('stop.m', 'file')

%%% Call a Written Function to Calculate R2 Matrix (R2 = K\ASV) %%%


% R2 can only be calculated when j >=2 %

if (~isempty( dhistory_dofID ) | ~isempty(qhistory_S2row)) & j >= 2


[R2, Total_Active, Total_Active_Band] = History_R2(j, VecYield,...
Active, UnLoadSet_Total, fdof, VecGeneralised, Kuu, A2, S2,...
N2, V2, nonassociated,pindex);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 263

%%% Call a Written Function to Calculate Deflection History %%%

if ~isempty( dhistory_dofID )
% deflection_history to be appended to dhistory.txt
if j == 2
History_Deflection(1, Factor, ue_unit, dhistory_dofID,...
pdisplay, udisplay, ue_unit_deadLoad);
end;

History_Deflection(j, Factor, ue_unit, dhistory_dofID,...


pdisplay, udisplay, ue_unit_deadLoad, fdof,...
control_free, ue_r, Lambda_Total, R2, Total_Active_Band);
end;

%%% Call a Written Function to Calculate Interface Force History %%%

if ~isempty(qhistory_S2row) & j >= 2


if exist('preload_boxs.m', 'file')
History_Interface_preload(j, qhistory_midpoints,...
qhistory_S2row, qhistory_S2col, Load_Factor,Qe_unit,...
fdof, S2, A2, R2, N2, V2, Total_Active,...
Total_Active_Band, Lambda_Total, nonassociated, ...
Incidence, XY_Midpoint, Qe_deadLoad, Qe_preload)
else
History_Interface(j, qhistory_midpoints, qhistory_S2row,...
qhistory_S2col, Load_Factor, Qe_unit, fdof, S2, A2, R2,...
N2, V2, Total_Active, Total_Active_Band, Lambda_Total,...
nonassociated, Incidence, XY_Midpoint, Qe_deadLoad)
end;
end;
end;

%%%

if exist('stop.m', 'file') | j == num_factors


disp(' ');
disp('-------------------------------------');
disp('- CURRENT NUMBER FACTOR -');
disp(['- ', num2str(num_factors)]);
disp('-------------------------------------');
m_choice = input('ENTER NEW NUMBER FACTOR (0 FOR NO CHANGE):');

if m_choice > 0
num_factors = m_choice;
end;

disp('-------------------------------------');
disp('- CURRENT RESTART NUMBER -');
disp(['- ', num2str(Restart_Number)]);
disp('-------------------------------------');
m_Restart = input('ENTER NEW RESTART NUMBER (0 FOR NO CHANGE):');

if m_Restart > 0
Restart_Number = m_Restart;
end;

jdisplacement = [1:1:num_factors];
jdisplacement = [2, jdisplacement];
jrestart = [50:50:num_factors];
jplot = [1:100:num_factors];
jsave = [1:100:num_factors];
end;
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 264

%%%%%%%%%%%%%%%%%%%%%%%% END MAIN WHILE LOOP %%%%%%%%%%%%%%%%%%%%%%%%

if exist('Bifurcation_p','var') == 1 % if this variable exist


dlmwrite('bifurcation_u_p.txt', [Bifurcation_u', Bifurcation_p'],',');
end;

fclose(fidsol); % close solvec.txt

disp('--- END LOOP ---');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Action_Assemble_ncap4.m %%%
%%% CALLED BY Solver_fracture_ncap4.m %%%
%%% TO FORM LCP %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Determine Members with Active Potentials %%%

VecMember = ismember(VecYield,Active);
[iAction,jAction] = find(VecMember==1);
iActions = unique(iAction);
pActions_Matrix = VecGeneralised(iActions,:);
size1 = size(pActions_Matrix,1);
size2 = size(pActions_Matrix,2);
pActions = reshape(pActions_Matrix',1,size1*size2);

%%% Calculate R2 = K\ASN or K\KSV %%%


% Each row of R2 corresponds to a freedom number given in fdof while
% the columns correspond to potential numbering given in pindex

clear R2;
if nonassociated == 0
R2 = sparse(Kuu(fdof,fdof)\(A2(fdof,pActions)*...
S2(pActions,pActions)*N2(pActions,Active)));
else
R2 = sparse(Kuu(fdof,fdof)\(A2(fdof,pActions)*...
S2(pActions,pActions)*V2(pActions,Active)));
end;

%%% Calculate Rr Rloadfree %%%

clear Ir Rr Rloadfree;

Ir = find(fdof==control_free);
Rr = sparse((R2(Ir,:))./(ue_r));
[ytemp,Isort] = sort(load_free_total);
[ytemp2,IIsort] = sort(Isort);
IVec2 = ismember(fdof,load_free_total);
IVecf = find(IVec2==1);
Rloadfree_temp = sparse(R2(IVecf,:));
Rloadfree = Rloadfree_temp(IIsort,:);
clear IVec2 IVecf ytemp ytemp2 Isort IIsort Rloadfree_temp

%%% Calculate Z = SA'(K\AS)-S

Z1 = sparse(BT'*R2);
size1 = size(Z1,1);
size2 = size(Z1,2);
Z2 = spalloc(size1,size2,1);
pack;
Z2 = sparse(Z1+(NTQ*Rr));
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 265

clear Z1 size1 size2;

if nonassociated == 0
Z = sparse(Z2 - N2(pActions,pindex)'*...
(S2(pActions,pActions)*N2(pActions,Active)));
else
Z = sparse(Z2 - N2(pActions,pindex)'*...
(S2(pActions,pActions)*V2(pActions,Active)));
end;
clear Z2;

%%% Form H (Softening) Matrix Corresponding to pindex %%%

clear H;

if shear < 3
H3 = H2(pindex);
nn = size(H3,1);
for i = 1:nn
H(i,i) = sparse((H3(i)));
end;
clear H3 nn;
else
H = sparse(H2(pindex,pindex));
end;

%%% Form LCP %%%


% H (Active_Band, Active_Band)
% Z (Active_Band, Active)

M_path_rate = sparse(H(:,Active_Band) - Z);


M_path = full(H(Active_Band,Active_Band) - Z(Active_Band,:));

q_path = q_path_rate(Active_Band);

sizeq = size(q_path);
sizeq1 = sizeq(1);

%%% Exclude Break Point Set %%%

if ~isempty(BreakPointSet)
ActiveWithoutBreak = Active;
[Cintersect,IA,IB] = intersect(Active,BreakPointSet);
ActiveWithoutBreak(IA) = []; % active set excluding break point set
B_Index = IA; % for break point set
clear Cintersect IA IB;

[Cp,IA,IB] = intersect(ActiveWithoutBreak,Active);
A_Index = IB; % for active set
clear Cp IA IB;

[Cp,IA,IB] = intersect(ActiveWithoutBreak,pindex');
Active_BandWithoutBreak = IB;
clear Cp IA IB;

[Cp,IA,IB] = intersect(BreakPointSet,pindex');
BreakPointSet_Band = IB;
clear Cp IA IB;

clear M_path;

%%% Re-form M_path Matrix Due to Break Point Set %%%


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 266

M_path = full(H(Active_BandWithoutBreak,Active_BandWithoutBreak)...
-Z(Active_BandWithoutBreak,A_Index));

M_path = M_path + full((Z(Active_BandWithoutBreak,B_Index) - ...


H(Active_BandWithoutBreak,BreakPointSet_Band))*...
((Z(BreakPointSet_Band,B_Index)-H(BreakPointSet_Band,...
BreakPointSet_Band))\(Z(BreakPointSet_Band,A_Index) - ...
H(BreakPointSet_Band,Active_BandWithoutBreak)) ) );

%%% Calculate q_break = Wbb\(N'Qe_unit) & Z_break = Wbb\Wba %%%

q_break = full((Z(BreakPointSet_Band,B_Index) - ...


H(BreakPointSet_Band,BreakPointSet_Band))\q_path(B_Index));
Z_break = full((Z(BreakPointSet_Band,B_Index) - H(BreakPointSet_Band,...
BreakPointSet_Band))\(Z(BreakPointSet_Band,A_Index) - ...
H(BreakPointSet_Band,Active_BandWithoutBreak)));

%%% Update Active Set Due to Break Point Set %%%

Active = ActiveWithoutBreak;
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

%%% Re-form q_path Vector Due to Break Point Set %%%

if ~isempty(A_Index)
q_path2 = q_path(A_Index)-full((Z(Active_BandWithoutBreak,B_Index)-...
H(Active_BandWithoutBreak,BreakPointSet_Band))*...
((Z(BreakPointSet_Band,B_Index) - H(BreakPointSet_Band,...
BreakPointSet_Band))\q_path(B_Index)));
else
q_path2 = - full((Z(Active_BandWithoutBreak,B_Index) - ...
H(Active_BandWithoutBreak,BreakPointSet_Band))...
*((Z(BreakPointSet_Band,B_Index) - H(BreakPointSet_Band,...
BreakPointSet_Band))\q_path(B_Index)));
end;
clear q_path;
q_path = q_path2;

%%% Update Rr Rloadfree Due to Break Point Set

RrOld = Rr;
RloadfreeOld = Rloadfree;
RrBreak = Rr(:,B_Index);
Rr(:,B_Index) = [];
RloadfreeBreak = Rloadfree(:,B_Index);
Rloadfree(:,B_Index) = [];

%%%

clear q_path2;
sizeq = size(q_path);
sizeq1 = sizeq(1);
end;

clear Z R2 B;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 267

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Fracture_main_time.m %%%%%
%%%%% TIME-DEPENDENT MODE I FRACTURE MODEL %%%%%
%%%%% UNIVERSITY OF NEW SOUTH WALES %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

disp(' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
disp(' %%%%%%% START OF TIME-DEPENDENT MODE I FRACTURE ANALYSIS %%%%%%%%');
disp(' %%%%%%% UNIVERSITY OF NEW SOUTH WALES %%%%%%%%');
disp(' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
clear all;

if exist('restart.mat', 'file') == 0 % 1st start

disp(' --- PREPROCESS : MESH GENERATION & MATRIX ASSEMBLY ---');


Fracture_pre_time; % call sub-script (and open Diary_Fracture.txt)

flag_restart = 0;

else % restart mode

diary Diary_Fracture.txt; % write & append diary of MATLAB input/output


disp('--- RESTART MODE : LOAD RESTART FILE & SETUP ---');
load restart;
flag_restart = 1;

disp(' -------------------------------------');
disp(' - CURRENT NUMBER FACTOR -');
disp([' - ', num2str(num_factors)]);
disp(' -------------------------------------');
num_factors = input('ENTER NEW NUMBER FACTOR:');
num_factors

disp(' -------------------------------------');
disp(' - CURRENT RESTART NUBBER -');
disp([' - ', num2str(Restart_Number)]);
disp(' -------------------------------------');
Restart_Number = input('ENTER NEW RESTART NUMBER:');
Restart_Number

end;

jdisplacement = [1:2:num_factors]; % step for calculating displacement


jdisplacement = [2, jdisplacement]; % j=2 is used for one-off title writing
jrestart = [200:50:num_factors]; % step for over-wrinting restart file

disp(' ---SOLVER TIME-DEPENDENT MODE I FRACTURE ---');


Solver_fracture_time; %Lsi2

%%% PLOT ACTIVE LAMBDAS %%%

Active_NonBreak = Active;
IVec_ones = ismember(Active,BreakPointSet);
IVec = find(IVec_ones==1);
Active_NonBreak(IVec) = [];

IActive_Tension = find(VecPotential(Active_NonBreak)==1);
Active_Tension = Active_NonBreak(IActive_Tension);

IActive_Shear1 = find(VecPotential(Active_NonBreak)==2);
IActive_Shear2 = find(VecPotential(Active_NonBreak)==3);
IActive_Shear = unique([IActive_Shear1,IActive_Shear2]);
Active_Shear = Active_NonBreak(IActive_Shear);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 268

plot(XY_Midpoint(VecIncidence(Active_Tension),1),XY_Midpoint...
(VecIncidence(Active_Tension),2),'rv') % tension failure points
plot(XY_Midpoint(VecIncidence(Active_Shear),1),XY_Midpoint...
(VecIncidence(Active_Shear),2),'b^') % shear failure points
plot(XY_Midpoint(VecIncidence(UnLoadSet_Total),1),XY_Midpoint...
(VecIncidence(UnLoadSet_Total),2),'r.'); % unloading points

title(case_title);
print -dmfile BrickFig1
hold;
figure;
plot(udisplay,pdisplay,'r*-')
title(case_title);
grid;
print -dmfile BrickFig2
dlmwrite('u_p.txt', [udisplay', pdisplay'],','); % write a output file

if exist('Bifurcation_p','var')==1 % if this variable exist


dlmwrite('bifurcation_u_p.txt', [Bifurcation_u', Bifurcation_p'],',');
end

disp(' --- DRAWING DEFORMED MESH ---');


Deflection_Assemble_time; % call sub-script

status = fclose('all'); % close all files


masonry_makefile(2) % delete temporary input files

disp(' --- END OF PROGRAM ---');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% EXAMPLE OF INPUT FILE FOR Fracture_main_time.m %%%%
%%%% FOR SIMULATION OF FLEXURAL CREEP RUPTURE TEST (92% PEAK LOAD) %%%%
%%%% UNITS ARE IN N, mm & s %%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

*** Time_parameter.m
function [creep_coef_inf, t_age, Displacement_rate, Peak_Load, ...
creep_load_percent, num_time, Time_Increment_Limit_Initial, ...
Time_Stepping_Factor, Time_control_factor, k0, Lr] = Time_parameter
%
% creep_coef_inf : creep coef. at time infinity varying from 2 to 6
% t_age : time or age at which load is first applied (days)
% k0 : a constant varying from 0.01 - 0.08
% Lr : a constant, reference crack opening disp. rate
% Peak_Load : peak load under the considering displacement rate (N)
% creep_load_percent : sustained load in terms of percent of peak load
% Time_Increment_Limit_Initial : initial time increment limit (s)
%-----------------------------------------------------------------------

% Bulk Creep Parameters


creep_coef_inf = 6;
t_age = 4*28; % days

% Crack-Rate Dependence Parameters


Displacement_rate = 5*1e-3; % mm/s
k0 = 0.08;
Lr = 4*1e-7;

% Sustained Load Parameters


Peak_Load = 998.6; % N
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 269

creep_load_percent = 92;
num_time = 5000; % No. of steps for sustained load

% Time Stepping Parameters


Time_Increment_Limit_Initial = 0.01; % second
Time_Stepping_Factor = 0.1; % (0.01 - 0.15)
Time_control_factor = 2.0; % (1.5 - 2.0)

%===================== end of Time_parameter.m =======================

*** control_main.m
function [Restart_Mesh, Restart_Assemble, Restart_Number, ...
shear, num_factors, jplot, jsave, Lemke_Use, mesh_style, ...
case_title, nonassociated, Yield_Tolerance, Select_Mode, ...
Snap_Back_Factor] = control_main
%
% shear: ID number for interface constitutive relationship
% =0 : Mode I -- Assumed;
% =1 : Mode I -- Interaction betw. normal & shear, non-asso. flow rules;
% =2 : Mode 2 -- Mohr-Coulomb, 2 planes in Tension-Shear Quadrant;
% =3 : Mode 1 -- Shear retention, 1 plane in Tension. 2 for Shear;
% =4 : Mode 2 -- Mohr-Coulomb, 1 planes in Tension, 2 for Shear;
% =6 : Mode 2 -- Mohr-Coulomb-Cap, 1 in Tens, 2 for Shear, 2 in Comp;
%------------------------------------------------------------------------

Restart_Mesh = 0; % = 0 (current model)


Restart_Assemble = 0; % = 0 (current model)

shear = 4;
num_factors = 5000; % number of load steps
Restart_Number = 100; % start saving restart file at this step

jplot = [1:100:num_factors+5]; % Plot Ouput at these Load Steps


jsave = [1:100:num_factors+5]; % Plot saved at these load steps
Lemke_Use = [1:6500]; % Use Lemke Solver at these Load Steps

%mesh_style = 0; % mesh prepared by easymesh


%case_title = 'double edge plate under tension';

%mesh_style = 1; % brickwall mesh to be generated


%case_title = '3-point bending';

%mesh_style = 2; % brickwall + lintel mesh to be generated


%case_title = 'Lintel bending';

%mesh_style = 3; % brickwall + tension fixture to be generated


%case_title = 'Brick wall tension';

mesh_style = 14; % mesh prepared by GiD, similar to mesh_style = 0


case_title = '3-point bending creep rupture';

nonassociated = 1; % = 0 for normality


Yield_Tolerance = 1.0; % = 1 Event by Event - No simultaneous Yield
Select_Mode = 0; % = 1 Select Equilibrium Path; = 0 use Min Work Criteria
Snap_Back_Factor = 1.0E-2; % = 1.0E-2 (currently used)

%=========================== end of control_main.m ======================


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 270

*** control_mesh0.m
function [sidenum, file, exclude_ratio] = control_mesh0
% (for mesh_style = 0, 14)
%--parameters used to generate mesh based on what prepared by Easymesh or GiD
% sidenum: distance_midpoint^vetice = side length / (2*sidenum)
% file: Easymesh/GiD file name (without extension) for
% nodal (*.n) and element (*.e) information
% Thickness: constant thickness of the mesh
% exclude_ratio: potentials are not consided for nodes whose distance
% from either end of the wall smaller than
% (exclude_ratio * Panel_Length)
%------------------------------------------------------------------------

sidenum = 10.; % = 10 (currently used)

file = 'Zhou92b';

exclude_ratio = 0.33;

%=========================== end of control_mesh0.m =====================

*** control_BC.m
function [Bx, By, Tx, Ty, Txp, Typ, T_control] = control_BC(XY_Midpoint);
%
% purpose : to define boundary conditions and loadings
%------------------------------------------------------------------------

%%% Geometrical Information %%%

xmin = min(XY_Midpoint(:,1));
ymin = min(XY_Midpoint(:,2));
xmax = max(XY_Midpoint(:,1));
ymax = max(XY_Midpoint(:,2));

stol = 1e-2;
y = (XY_Midpoint(:,2))';
x = (XY_Midpoint(:,1))';

%%% Node Set for Displacement Constraints %%%

% Boundary Nodes

L = find(y<=ymin+stol); % bottom -- all nodes


length_L = length(L);

x1min = min(XY_Midpoint(L,1));
x1max = max(XY_Midpoint(L,1));

% x=0 is at bottom left corner of beam


L1 = []; L2 = []; % for collecting No. of nodes needed
for i = 1:length_L
x_t = XY_Midpoint(L(i), 1);
% node # of left supporting point
if x_t > x1min-stol & x_t < x1min+stol; L1 = [L1,L(i)]; end
% node # of right supporting point
if x_t > x1max-stol & x_t < x1max+stol; L2 = [L2,L(i)]; end
end

Bx = [L1]; % x-displacements are fixed


By = [L1,L2]; % y-displacements are fixed
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 271

%%% Node Set for Loads & Constraints %%%

L = find(y>=ymax-stol); % top -- all nodes


x_L = x(L); % x-values of nodes at top
[L_sorted,L_index] = sort(x_L); % sort from left to right

m = length(L) / 2; % 1/2 of node number in L


L1 = L([L_index(m),L_index(m+1)]); % node # of middle load point

Tx = []; Txp = []; % no force along x-direction

Ty = L1;
Typ(1:length(Ty)) = -1.0/length(Ty) % let sum of forces = 1 N

%T_control = +1 % T_control >0 ==> use Tx (first node in Tx set)


T_control = -1 % T_control <0 ==> use Ty (first node in Ty set)

%===================== end of control_BC.m ============================

*** Data_Material_Interface_raw.m
function [plastic_ten_stress, opening_crack_width, breakpoint, ...
plastic_shear_stress, opening_crack_width_shear, breakpoint_shear, ...
shear_friction, Yield_Angle, Misalignment_Angle, Dilatancy_Angle, ...
Friction_Angle, Thickness, beta_factor, compression_strength, ...
opening_crack_width_comp, breakpoint_comp, Residual_Comp_Stress, ...
beta_factor_comp] = Data_Material_Interface_raw(material)
%
%--purpose : to provide interface material properties
% called by : Data_Material_Interface_ncap4.m
%
% Input:
% material: ID number of interface material;
%------------------------------------------------------------------------

if material == 1 % for Concrete Interface

% Tensile Properties
plastic_ten_stress = 2.66; % N/mm2 or MPa
modeI_frac_energ = 0.040; % N/mm
opening_crack_width = 2.0*modeI_frac_energ/plastic_ten_stress;
breakpoint = opening_crack_width; % mm

% Shear Properties (Doesn't matter)


Dilatancy_Angle = 0.0; % in radian
Friction_Angle = 0.6435; % in radian
shear_friction = tan(Friction_Angle);

Cohesion = 3.92; % N/mm2


plastic_shear_stress = Cohesion*cos(Friction_Angle); % N/mm2
modeII_frac_energ = 0.125; % N/mm
opening_crack_width_shear = 2.0*modeII_frac_energ/Cohesion/...
cos(Dilatancy_Angle); % mm
breakpoint_shear = opening_crack_width_shear; % mm

% Compressive Properties (Doesn't matter)


compression_strength = 100; % N/mm2 or MPa

Residual_Comp_Stress = 10.5/5; % N/mm2 or MPa


beta_factor_comp = 0.00; % no interaction between shear & comp.
comp_frac_energ = 5.4; % N/mm
opening_crack_width_comp = 2.0*comp_frac_energ/...
(compression_strength-Residual_Comp_Stress);
breakpoint_comp = opening_crack_width_comp; % mm
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 272

%
Yield_Angle = 0; % in degree, = 0 (currently used)
Misalignment_Angle = 0; % in degree, = 0 (currently used)

beta_factor = 0.95; % = 0.95 (currently used)


Thickness = 100.0; % mm

end

if material == 2 % for Concrete Interface (the same as mat. 1)

% Tensile Properties
plastic_ten_stress = 2.66; % N/mm2 or MPa
modeI_frac_energ = 0.040; % N/mm
opening_crack_width = 2.0*modeI_frac_energ/plastic_ten_stress;
breakpoint = opening_crack_width; % mm

% Shear Properties (Doesn't matter)


Dilatancy_Angle = 0.0; % in radian
Friction_Angle = 0.6435; % in radian
shear_friction = tan(Friction_Angle);

Cohesion = 3.92; % N/mm2


plastic_shear_stress = Cohesion*cos(Friction_Angle); % N/mm2
modeII_frac_energ = 0.125; % N/mm
opening_crack_width_shear = 2.0*modeII_frac_energ/Cohesion/...
cos(Dilatancy_Angle); % mm
breakpoint_shear = opening_crack_width_shear; % mm

% Compressive Properties (Doesn't matter)


compression_strength = 100; % N/mm2 or MPa

Residual_Comp_Stress = 10.5/5; % N/mm2 or MPa


beta_factor_comp = 0.00; % no interaction between shear & comp.
comp_frac_energ = 5.4; % N/mm
opening_crack_width_comp = 2.0*comp_frac_energ/...
(compression_strength-Residual_Comp_Stress);
breakpoint_comp = opening_crack_width_comp; % mm

%
Yield_Angle = 0; % in degree, = 0 (currently used)
Misalignment_Angle = 0; % in degree, = 0 (currently used)

beta_factor = 0.95; % = 0.95 (currently used)


Thickness = 100.0; % mm

end

if material == 3 % Doesn't matter & No use in this problem

% Tensile Properties
plastic_ten_stress = 2.66; % N/mm2 or MPa
modeI_frac_energ = 0.040; % N/mm
opening_crack_width = 2.0*modeI_frac_energ/plastic_ten_stress;
breakpoint = opening_crack_width; % mm

% Shear Properties
Dilatancy_Angle = 0.0; % in radian
Friction_Angle = 0.6435; % in radian
shear_friction = tan(Friction_Angle);

Cohesion = 3.92; % N/mm2


plastic_shear_stress = Cohesion*cos(Friction_Angle); % N/mm2
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 273

modeII_frac_energ = 0.125; % N/mm


opening_crack_width_shear = 2.0*modeII_frac_energ/Cohesion/...
cos(Dilatancy_Angle); % mm
breakpoint_shear = opening_crack_width_shear; % mm

% Compressive Properties
compression_strength = 100; % N/mm2 or MPa

Residual_Comp_Stress = 10.5/5; % N/mm2 or MPa


beta_factor_comp = 0.00; % no interaction between shear & comp.
comp_frac_energ = 5.4; % N/mm
opening_crack_width_comp = 2.0*comp_frac_energ/...
(compression_strength-Residual_Comp_Stress);
breakpoint_comp = opening_crack_width_comp; % mm

%
Yield_Angle = 0; % in degree, = 0 (currently used)
Misalignment_Angle = 0; % in degree, = 0 (currently used)

beta_factor = 0.95; % = 0.95 (currently used)


Thickness = 100.0; % mm

end

%================ end of Data_Material_Interface_raw.m =================

*** Data_Material_Body.m
function [elastic, nu, Thickness] = Data_Material_Body(material)
%
%--purpose : to provide body material properties.
% called by : SMat_Fracture_ncap4.m
%
% Input:
% material : ID number of body material;
%
% Output & Usage:
% elastic, nu, Thickness
%------------------------------------------------------------------------

if material == 1 % for Concrete unit


elastic = 26000; % N/mm2 or MPa
nu = 0.2;
Thickness = 100.0; % mm
end;

%=================== end of Data_Material_Body.m ========================

*** dhistory_boxs.m
function [Bx, By] = dhistory_boxs
%
% Purpose:
% To define boxes covering midpoints whose deflec. history will be exported
%
% Called by: dhistory_dof.m
%
% Output & Usage:
% Bx: box covering an area within
% which the x-deflec. of midpoints are selected
% By: box covering an area within
% which the y-deflec. of midpoints are selected
% each row [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 274

%------------------------------------------------------------------------

stol = 1e-2;

Bx = [398-2, 0-stol, 402+2, 0+stol]; % CMOD


By = [398-2, 0-stol, 402+2, 0+stol];

%================== end of dhistory_boxs ================================

*** qhistory_boxs.m
function Bxy = qhistory_boxs
%
%--purpose : to define boxes covering midpoints whose interface force
% & displacement history will be exported
% called by : qhistory_position.m
%
% Output & Usage:
% Bxy: box covering an area within which the midpoints are selected
% each row [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
%------------------------------------------------------------------------

stol = 0.01;

Bxy = [400-stol, 50-stol, 400+stol, 100+stol]; % At mid of beam

%==================== end of qhistory_boxs ==============================

*** deadLoad_boxs.m
function [Bx, By, Px, Py] = deadLoad_boxs(XY_Midpoint) % (modified)
%
% Purpose:
% To define boxes covering midpoints where dead loads are applied
% Called by: deadLoad_Treat.m
%
% Input: XY_Midpoint
%
% Output & Usage:
% Bx: boxes covering an area where the midpoints have x-dead loads
% By: boxes covering an area where the midpoints have y-dead loads
% each row [x1, y1, x2, y2]
% x1, y1 -- coordinates of lower left corner
% x2, y2 -- coordinates of upper right corner
% Px: load values defined per box corresponding to Bx, (1:n_rowx)
% Py: load values defined per box corresponding to By, (1:n_rowy)
%------------------------------------------------------------------------

sidenum = 10.; % = 10 (currently used)

stol = 1e-5; s = 5.0;

Bx = [];
Px = [];

By = [0-stol, 100-stol, 800+stol, 100+stol];

% for unequal element length


Density = 2400*10/1e9; % N/mm3 (2400 kg/m3)
Thickness = 100.0; % mm
Panel_Height = 100; % mm (depth of beam)
DL = Density*Thickness*Panel_Height; % N/mm
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 275

ymax = max(XY_Midpoint(:,2));
y =(XY_Midpoint(:,2))';
L = find(y>ymax-stol); % top -- all nodes
length_L = length(L);

Py = [];
for i = 1:2:length_L
x1 = XY_Midpoint(L(i),1);
x2 = XY_Midpoint(L(i+1),1);
Ln = (x2-x1)*2*sidenum/(2*sidenum-2);
Py(i) = -DL*Ln/2;
Py(i+1) = -DL*Ln/2;
end

%===================== end of deadLoad_boxs.m ===========================

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Fracture_pre_time.m %%%%%
%%%%% CALLED BY Fracture_main_time.m %%%%%
%%%%% FOR PREPROCESSING : MESH GENERATION & MATRIX ASSEMBLY %%%%%
%%%%% CALLED ONLY IF RESTART FILE ("restart.mat") DOES NOT EXIST %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all;

%%% GET INPUT FILENAME FROM USER %%%

inputtemp = input('ENTER NEW INPUT FILE NAME (without extension) :', 's');

if isempty(inputtemp)
inputfile = [inputfile '.m'];
else
inputfile = [inputtemp '.m'];
end;

%%% CALL A FUNCTION TO CREATE FUNCTIONS DEFINED IN INPUT FILE

masonry_makefile(1, inputfile); % (create temporary input files)

while exist('control_main.m', 'file')==0 end;

%%% GET MAIN TIME PARAMETERS %%%


% FROM FUNCTION Time_parameter.m DEFINED IN INPUT FILE %

[creep_coef_inf, t_age, Displacement_rate, Peak_Load,...


creep_load_percent, num_time, Time_Increment_Limit_Initial,...
Time_Stepping_Factor, Time_control_factor, k0, Lr] = Time_parameter;

%%% GET MAIN CONTROL PARAMETERS %%%


% FROM FUNCTION control_main.m DEFINED IN INPUT FILE %

[Restart_Mesh, Restart_Assemble, Restart_Number, shear, num_factors,...


jplot, jsave, Lemke_Use, mesh_style, case_title, nonassociated, ...
Yield_Tolerance, Select_Mode, Snap_Back_Factor] = control_main;

%%% START WRITING DIARY OF MATLAB INPUT/OUTPUT %%%

diary Diary_Fracture.txt;

%
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 276

jdisplay = [];
num_actions = 12; % number of actions per element
num_nodes = 6; % number of nodes per element

%%% ASSIGN NUMBER OF POTENTIALS PER NODE DEPENDENT ON YIELD SURFACE USED

if shear == 0 % Mode 1 - Assumed


num_potentials_node = 1;
end;

if shear == 1 % Mode 1 - Interaction between Normal & Shear


num_potentials_node = 2; % Non-Assocated Flow Rule
end;

if shear == 2 % Mode 2 - Mohr-Coulomb


num_potentials_node = 4; % Two Planes in Tension - Shear Quadrant
end;

if shear == 3 % Mode 1 - Shear Reduction


num_potentials_node = 3; % One Plane in Tension - Two Planes for Shear
end;

if shear == 4 % Mode 2 - Mohr-Coulomb


num_potentials_node = 3; % One Plane in Tension - Two in Shear
end;

num_potentials = num_nodes*num_potentials_node; % num. of potentials per Elem.

%%% CALL A FUNCTION TO GENERATE & DISPLAY MESH %%%

disp('--- PREPARE & DISPLAY MESH - CASE SPECIFIC ---');


[XY_Midpoint, Incidence, XYvertices, tri, Ele_Mat, ...
List_exclude] = Case_definition_Mesh_ncap4(mesh_style);

X1 = XYvertices(:,1);
Y1 = XYvertices(:,2);

%%% CALL A FUNCTION TO CREATE TOPOGRAPHY FOR POTENTIAL, LOAD, FREEDOMS etc.

disp('--- CREATE TOPOGRAPHY FOR POTENTIAL, LOAD, FREEDOMS etc. ---');


[VecIncidence, VecPotential, Free, Load, Top, pindex, Incidence] ...
= Masonry_topography_ncap4(Incidence, XY_Midpoint, Ele_Mat,...
shear, List_exclude);

%%% CALL A FUNCTION TO FINDOUT FREEDOM ID FOR DEFLECTION HISTORY OUTPUT

dhistory_dofID = []
if exist('dhistory_boxs.m', 'file')
dhistory_dofID = dhistory_dof_time (XY_Midpoint, Free, Incidence, Ele_Mat)
end;

%%% CALL A FUNCTION TO CALCULATE PRELOAD %%%


% DEFINED IN FUNCTION preload_boxs.m IN INPUT FILE %

if exist('preload_boxs.m', 'file')
disp('--- PRELOAD - CASE SPECIFIC ---');
[preload, pdof2, dp2, fdof2] = ...
preload_function(XY_Midpoint, Incidence, Ele_Mat, Free);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 277

%%% CALL A FUNCTION TO CALCULATE DEADLOAD %%%


% DEFINED IN FUNCTION deadLoad_boxs.m IN INPUT FILE %
% (RETURN ZEROS IF deadLoad_boxs.m DOESN'T EXIST) %

deadLoad = deadLoad_treat(XY_Midpoint,Free,Incidence,Ele_Mat);

%%% CALL A FUNCTION TO FINDOUT INDEXES FOR INTERFACE FORCE HISTORY OUTPUT

qhistory_midpoints = [];
qhistory_S2row = [];
qhistory_S2col = [];

if exist('qhistory_boxs.m', 'file')
[qhistory_midpoints, qhistory_S2row, qhistory_S2col] = ...
qhistory_position (XY_Midpoint, Incidence, Ele_Mat);
end;

%%% CALL A FUNCTION TO CREATE BOUNDARY CONDITIONS - CASE SPECIFIC

disp('--- CREATE BOUNDARY CONDITIONS - CASE SPECIFIC ---');


[B_Supports, pdof, dp, fdof, display_free_node, control_node, ...
load_nodes, control_free, display_free, Load, load_free_total] = ...
Case_definition_BC(XY_Midpoint, abs(Incidence), Ele_Mat, Free, Load);

disp('--- DISPLAY MESH ---');

hf_1 = figure('units', 'normalized', 'position', [0.01, 0.3, 0.98, 0.6]);


ha_1 = axes('units', 'normalized', 'position', [0.07, 0.12, 0.42, 0.8], ...
'visible', 'on'); % for mesh
ha_2 = axes('units', 'normalized', 'position', [0.55, 0.12, 0.42, 0.8], ...
'visible', 'off'); % for u-p display

set(hf_1, 'currentaxes',ha_1);
eledraw(XYvertices, tri, Ele_Mat, 1);

%%%%%%%%%%%%%%%%%%%% START ASSEMBLING MATRICES %%%%%%%%%%%%%%%%%%%%%

num_members = size(Incidence, 1); % number of members/elements


free_total = max(max(Free)); % number of freedoms
size_pindex = length(pindex); % number of potentials

%%% ZERO A, S, K & H MATRICES (STRUCTURAL) %%%

num_col = num_actions*num_members;
A2 = spalloc(free_total,num_col,1); % structural equilibrium matrix
S2 = spalloc(num_col,num_col,1); % structural kernel stiffness matrix

if shear < 3
H2 = zeros(num_potentials*num_members,1); % structural softening matrix
else
H2 = spalloc(num_potentials*num_members,num_potentials*num_members,1);
end;

N2 = spalloc(num_actions*num_members,num_potentials*num_members,1);

if nonassociated == 1
V2 = spalloc(num_actions*num_members,num_potentials*num_members,1);
end;

%%% PREPARE MATRIX USED FOR PLOTTING DEFLECTION

A_ele = spalloc(num_actions*num_members,num_actions*num_members,1);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 278

%%% MAJOR LOOP - FOR EACH MEMBER/ELEMENT %%%

for i = 1:num_members

%%% CALL A FUNCTION TO CALCULATE ELEMENT MATRICES %%%

[Se, Ae, Ke, He, Be, Ne, Ve, ResidualE] = ...


SMat_Fracture_ncap4(i, abs(Incidence), XY_Midpoint, tri, ...
XYvertices, shear, Ele_Mat, nonassociated);

if shear < 5
clear ResidualE
end;

%%% ASSEMBLE STRUCTURAL MATRICES %%%

n1 = num_actions*(i-1)+1:num_actions*i;
A2(Top(i,2:13),n1) = sparse(Ae); % structural equilibrium matrix
A_ele(n1,n1) = sparse(Ae);
VecGeneralised(i,1:num_actions) = n1; % generalised stress numbering
S2(n1,n1) = sparse(Se); % structural S matrix
n1 = num_potentials*(i-1)+1:num_potentials*i;
n2 = num_actions*(i-1)+1:num_actions*i;
N2(n2,n1) = sparse(Ne); % structural normality matrix

if nonassociated == 1
V2(n2,n1) = sparse(Ve); % structural dilatancy matrix
end;

VecYield(i,1:num_potentials) = n1; % plastic yield numbering


K(n1) = Ke; % structural initial-inelastic-failure vector

if shear < 3
H2(n1) = sparse(He); % structural softening matrix
else
H2(n1,n1) = sparse(He); % structural softening matrix
end;

BP2(n1) = Be; % structural break-point matrix (critical displacement)


end;

%%%%%%%%%%%%%%%%%%% END OF ASSEMBLING MATRICES %%%%%%%%%%%%%%%%%%%%

%%% CALCULATE STRUCTURAL STIFFNESS MATRIX %%%

Kuu = sparse(A2*S2*A2');

%%% CALCULATE UNIT DISP. & UNIT FORCE DUE TO PRELOAD %%%

if exist('preload_boxs.m', 'file')
ue_preload2 = Kuu(fdof2,fdof2)\preload(fdof2);
ue_unit_preload(fdof2) = ue_preload2;
ue_unit_preload(pdof2) = dp2; % unit displacement (u)
clear ue_preload2
Qe_preload = S2*A2(fdof2,:)'*ue_unit_preload(fdof2)'; % unit force (Q)
P_preload = N2(:,pindex)'*Qe_preload; % proj. of Q on yield surfaces
end;

%%%% CALCULATE UNIT DISP. & UNIT FORCE DUE TO DEADLOAD & UNIT LOAD %%%

ue_unit2 = Kuu(fdof,fdof)\Load(fdof);
ue_deadLoad2 = Kuu(fdof,fdof)\deadLoad(fdof);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 279

ue_unit(fdof) = ue_unit2;
ue_unit(pdof) = dp; % unit displacement (u)
ue_unit_deadLoad(fdof) = ue_deadLoad2;
ue_unit_deadLoad(pdof) = dp; % unit displacement (u)
Qe_unit = S2*A2(fdof,:)'*ue_unit(fdof)'; % unit force (Q)
P_unit = N2(:,pindex)'*Qe_unit; % projection of Q on yield surfaces
Qe_deadLoad = S2*A2(fdof,:)'*ue_unit_deadLoad(fdof)'; % unit force (Q)
P_deadLoad = N2(:,pindex)'*Qe_deadLoad; % projection of Q on yield surfaces
ue_load_unit = ue_unit(load_free_total); % unit disp. (u) at load points
ue_load_unit_deadLoad = ue_unit_deadLoad(load_free_total);

%%% CAL. UNIT DISPLACEMENT (u) AT CONTROL POINT

ue_r = ue_unit(control_free);
ue_r_deadLoad = ue_unit_deadLoad(control_free);

%%% INITIALISE VARIABLES %%%

creep_load = creep_load_percent/100*Peak_Load; % value of sustained load


NonActive = pindex'; % non-active set
NonActive_Band = [1:size_pindex];
Factor = zeros(num_factors,1); % displacement factor vector
Lambda_Total = zeros(size_pindex,1);
BreakPointSet = [];

j = 1;

if exist('preload_boxs.m', 'file')
Q = Qe_deadLoad + Qe_preload;
Phi_Total = K(pindex)' - P_deadLoad - P_preload;
else
Q = Qe_deadLoad;
Phi_Total = K(pindex)' - P_deadLoad;
end;

qp = 0*Q; % plastic interface displacement


u = 0*ue_unit_deadLoad; % excluding effects of preload & deadload
qe = A2'*u'; % elastic interface displacement

%%% PREPARE VARIABLES FOR FUNCTION Solver_fracture_time.m %%%

BT = sparse(A2(fdof,:))*S2*N2(:,pindex);

disp('--- END OF PREPROCESSING ---')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Solver_fracture_time.m %%%
%%% CALLED BY Fracture_main_time.m %%%
%%% USING SHORT-TERM CREEP %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if flag_restart == 0 % 1st start

%%% INITIALISE VARIABLES %%%

t = 0; % time at start
j_sustained = 0; % step at first load is sustained
t_sustained = 0; % time at first load is sustained
Active = [];
Initial_Active = [];
creep_coef = 0; % creep coefficient
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 280

creep_coef_check = 0;
qc = 0*Q; % creep generalised displacement
Load_Factor = 0;
R = K(pindex)'; % structural initial-inelastic-failure vector (constant)
Bifurcation_u = [];
Bifurcation_p = [];
udisplay(1) = 0;
pdisplay(1) = 0;
Yield_Limit_Exceeded = 0;
BP_Exceeded = 0;
UnLoadSet_Total = [];
ZeroNu = 1.0E-25; % a constant used in LCP solver
Lambda_Inc_Max = 0; % maximum lambda increment

if Select_Mode == 1
Eliminate_Elastic_Unloading = 0;
else
Eliminate_Elastic_Unloading = 1;
end;

Evol_Total = K(pindex)'; % structural evolution vector

%%% OPEN solvectime.txt FOR STORING DETAILS OF SOLVING %%%

if exist('solvectime.txt', 'file')~=0;
delete solvectime.txt;
end;

fidsol = fopen('solvectime.txt','a');
% one-off write for titles
fprintf(fidsol, '\n\nsolution(time)\n');
fprintf(fidsol, 'j, load, no. forward, no. snapback, pnum, no. active,');
fprintf(fidsol, 'no. breakset, no. yield, no. break, no. unload, t,');
fprintf(fidsol, 't_sustained, creep_coef, creep_coef_check,');
fprintf(fidsol, 'j_sustained, Lambda_Inc_Max');
fprintf(fidsol, '\n');
fprintf(fidsol, '\n');
else % restart mode
fidsol = fopen('solvectime.txt','a');
end;

SAT = sparse(S2*A2(fdof,:)');
AS = sparse(A2(fdof,:)*S2);

%%%%%%%%%%%%%%%%%%%%%%%
%%% BEFORE CRACKING %%%
%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%% WHILE LOOP FOR DETERMINING FIRST YIELD POINT %%%%%%%%%%%%%%%%

while isempty(Active)

fprintf(fidsol, '%d', j); % write data in solvectime.txt

disp(' ');
disp('at Step:');
j

%%% DETERMINE TIME INCREMENT %%%


% Time_Increment_YP : time increment required to reach next yield point
% Time_Increment_BC : time increment limited by bulk creep
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 281

if t == 0
Time_Increment_YP = inf;
Time_Increment = Time_Increment_Limit_Initial;
else

%%% Estimate Time_Increment_BC %%%

if creep_coef_inf ~= 0
Time_Increment_BC = 86400*sqrt((t/86400)^(15/8)*1e-6*128/7/...
creep_coef_inf/(t_age^(-1/3)+0.05)); % short-term creep
else
Time_Increment_BC = inf;
end;

%%% Estimate Time_Increment_YP %%%

A = (R - N2(:,pindex)'*Q)*(1+creep_coef);
c1 = 1/86400*creep_coef_inf*(t_age^(-1/3)+0.05)*...
0.125/(t/86400)^(7/8); % short-term creep
ASqe = AS*qe;
NTZqe = N2(:,pindex)'*SAT*(Kuu(fdof,fdof)\ASqe)-N2(:,pindex)'*S2*qe;
B1 = c1*NTZqe;
if t == 0
B2 = abs(Displacement_rate/ue_r)*P_unit; %P_unit = N'Qe_unit
else
B2 =(abs(Displacement_rate/ue_r) - c1*Load_Factor)*P_unit;
end;
B = B1+B2;
index_nonzero = find(B ~= 0);
Time_Increment_YP_temp = A(index_nonzero)./B(index_nonzero);
index_positive = find(Time_Increment_YP_temp > 0);
Time_Increment_YP = min(Time_Increment_YP_temp(index_positive));
clear A B ASqe NTZqe B1 B2 index_nonzero

%%% Get Time_Increment %%%

Time_Increment = [Time_Increment_BC,Time_Increment_YP];
Time_Increment = min(Time_Increment)
clear Time_Increment_BC
end;

%%% CALCULATE LOAD FACTOR INCREMENT %%%

Factor_Increment = abs(Displacement_rate/ue_r)*Time_Increment

if t == 0
creep_coef_increment = creep_coef_inf*(t_age^(-1/3)+0.05)*...
(Time_Increment/86400)^(1/8); % short-term creep
else
creep_coef_increment = c1*Time_Increment
end;
clear c1

if t == 0
Load_Factor_Increment = Factor_Increment
else
Load_Factor_Increment = (Factor_Increment-creep_coef_increment*...
Load_Factor)/(1+creep_coef)
end;

%%% UPDATE VARIABLES %%%

Load_Factor = Load_Factor + Load_Factor_Increment


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 282

if j == 1
Factor(j) = Factor_Increment; % displacement factor
else
Factor(j) = Factor(j-1) + Factor_Increment;
end;

j = j+1;

Phi_Total = Phi_Total - Load_Factor_Increment*P_unit; % potential func.

%%% Calculate qe_increment & qc_increment %%%

term1 = Load_Factor_Increment*A2(fdof,:)'*ue_unit(fdof)' +...


A2(fdof,:)'*(Kuu(fdof,fdof)\(AS*creep_coef_increment*qe)) -...
creep_coef_increment*qe;
qe_increment_old = (1+creep_coef).\term1;
qe_increment = qe_increment_old;
clear term1
criterion = 1;
icount_time = 1;

while criterion >= 1e-6 | icount_time > 1000


icount_time = icount_time+1;
qe_inc = (1+creep_coef).\AS*creep_coef*qe_increment;
qe_increment_new = qe_increment_old + A2(fdof,:)'*...
(Kuu(fdof,fdof)\qe_inc);
criterion = norm(qe_increment)\norm(qe_increment_new-qe_increment);

qe_increment = qe_increment_new;
end;

if icount_time > 1000


disp(' Convergence Not Achieved')
pause(5);
break;
end;

criterion
clear qe_increment_old icount_time qe_inc qe_increment_new criterion

qc_increment = creep_coef*qe_increment + creep_coef_increment*qe;

%%% Calculate Other Variables %%%

qe = qe + qe_increment; % elastic generalised displacement


qc = qc + qc_increment; % creep generalised displacement

Qe_increment = Qe_unit*Load_Factor_Increment;
ASqc_inc = AS*qc_increment;
Qc_increment = SAT*(Kuu(fdof,fdof)\ASqc_inc) - S2*qc_increment;
Q_increment = Qe_increment + Qc_increment;
Q = Q + Q_increment; % generalised force
clear Qe_increment Qc_increment Q_increment

ue_increment = Load_Factor_Increment.*ue_unit;
uc_increment(fdof) = (Kuu(fdof,fdof)\(ASqc_inc))';
u_increment = ue_increment + uc_increment;
u = u + u_increment; % displacement
clear qe_increment ue_increment ASqc_inc uc_increment
clear u_increment

q = A2'*u'; % generalised displacement


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 283

t = t + Time_Increment % time
creep_coef = creep_coef + creep_coef_increment; % creep coefficient
creep_coef_check = creep_coef_inf*( t_age^(-1/3)+0.05 )*(t/86400)^(1/8);

udisplay(j) = u(control_free)
pdisplay(j) = Load_Factor

forward_marker = 0;
snap_marker = 0;
p_num = 0;
lenActive = length(Active);
lenBreakSet = 0;
lenYield = 0;
lenBreak = 0;
lenUnLoad = 0;
Lambda_Inc_Max = 0;

%%% Write Data to solvectime.txt %%%

fprintf(fidsol, ',%d', Load_Factor);


fprintf(fidsol, ',%d', forward_marker);
fprintf(fidsol, ',%d', snap_marker);
fprintf(fidsol, ',%d', p_num);
fprintf(fidsol, ',%d', lenActive);
fprintf(fidsol, ',%d', lenBreakSet);
fprintf(fidsol, ',%d', lenYield);
fprintf(fidsol, ',%d', lenBreak);
fprintf(fidsol, ',%d', lenUnLoad);
fprintf(fidsol, ',%.15e', t);
fprintf(fidsol, ',%.15e', t_sustained);
fprintf(fidsol, ',%.15e', creep_coef);
fprintf(fidsol, ',%.15e', creep_coef_check);
fprintf(fidsol, ',%d', j_sustained);
fprintf(fidsol, ',%.15e', Lambda_Inc_Max);
fprintf(fidsol, '\n');
clear lenActive lenYield lenBreak lenUnLoad;

if Time_Increment == Time_Increment_YP

%%% Find Location of All Points That Reach Yield %%%

Active_Band = find(Time_Increment_YP==Time_Increment_YP_temp);
Active = pindex(Active_Band)';
Initial_Active = Active;
disp(' Initial Active Set');
Active
disp(' Coordinates of Initial Active Points')
XY_Midpoint(VecIncidence(Active),:)

[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
[Cp,IA,IB] = intersect(NonActive,pindex);
NonActive_Band = IB;
clear CNA INA Cp IA IB;
end;

%%% Plot Figure %%%

if j == 2
u_display_max = 1.5*max(udisplay); p_display_max = 1.5*max(pdisplay);
u_display_min = 1.5*min(udisplay); p_display_min = 1.5*min(pdisplay);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 284

if ismember(j,jplot) | j == num_factors | exist('stop.m', 'file') |...


Time_Increment == Time_Increment_YP

disp('Plot Figures');
close all;

hf_1 = figure('units', 'normalized', 'position', ...


[0.01, 0.3, 0.98, 0.6]);
ha_1 = axes('units', 'normalized', 'position', ...
[0.07, 0.12, 0.42, 0.8], 'visible', 'on'); % for mesh
ha_2 = axes('units', 'normalized', 'position', ...
[0.55, 0.12, 0.42, 0.8], 'visible', 'on'); % for u-p display
set(hf_1, 'currentaxes',ha_1);
hold on;

eledraw(XYvertices, tri, Ele_Mat, 1); % call a written function


xlabel('X'); ylabel('Y');
hold on

plot(XY_Midpoint(B_Supports,1),XY_Midpoint(B_Supports,2),'rsquare')
plot(XY_Midpoint(load_nodes,1),XY_Midpoint(load_nodes,2),'gd')
plot(XY_Midpoint(control_node,1),XY_Midpoint(control_node,2),'kh')

if ~isempty(Initial_Active)
plot(XY_Midpoint(VecIncidence(Initial_Active),1),...
XY_Midpoint(VecIncidence(Initial_Active),2),'kp');

Active_NonBreak = Active;
IActive_Tension = find(VecPotential(Active_NonBreak)==1);
Active_Tension = Active_NonBreak(IActive_Tension);

IActive_Shear1 = find(VecPotential(Active_NonBreak)==2);
IActive_Shear2 = find(VecPotential(Active_NonBreak)==3);
IActive_Shear = unique([IActive_Shear1,IActive_Shear2]);
Active_Shear = Active_NonBreak(IActive_Shear);

plot(XY_Midpoint(VecIncidence(Active_Tension),1),...
XY_Midpoint(VecIncidence(Active_Tension),2),'rv')
plot(XY_Midpoint(VecIncidence(Active_Shear),1),...
XY_Midpoint(VecIncidence(Active_Shear),2),'b^')

clear IActive_Tension IActive_Shear IActive_Shear1 IActive_Shear2


clear Active_Tension Active_Shear IVec IVec_ones Active_NonBreak
end;

text_title = ['Event ' num2str(j-1) ' : udisplay=' ...


num2str(udisplay(j))];
text_title = [text_title ' : pdisplay=' num2str(pdisplay(j))];
title(text_title);
text_save = ['Event_' num2str(j-1)];
set(hf_1, 'currentaxes', ha_2);
hold on;

if max(udisplay)>u_display_max, u_display_max = 1.5*max(udisplay);end;


if max(pdisplay)>p_display_max, p_display_max = 1.5*max(pdisplay);end;
if min(udisplay)<u_display_min, u_display_min = 1.5*min(udisplay);end;
if min(pdisplay)<p_display_min, p_display_min = 1.5*min(pdisplay);end;

axis([u_display_min, u_display_max, p_display_min, p_display_max]);


plot(udisplay, pdisplay, 'b-o');
hold on;

xlabel('u'); ylabel('p');
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 285

pause(0.1)

if ismember(j,jsave) | j == num_factors | exist('stop.m', 'file')


hgsave(hf_1, text_save);
end;
end;

%%% Calculate Deflection History & Interface Force History %%%

if ~isempty( dhistory_dofID ) % call a written function


History_Deflection_creep_rate(j-1, dhistory_dofID, pdisplay,...
udisplay, u, t);
end;

if ~isempty(qhistory_S2row) % call a written function


History_Interface_creep_rate(j-1, qhistory_midpoints, ...
qhistory_S2row, Incidence, XY_Midpoint, Q, q, qe, qp, qc, t)
end;

creep_coef = creep_coef_check;

disp (' -------- End Current Loop --------')


end;

%%%%%%% END OF WHILE LOOP FOR DETERMINING FIRST YIELD POINT %%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% WHEN CRACKING EXISTS %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if exist('restart.mat', 'file') == 0 % --- not a restart runing

%%% STORE CONSTANT PARAMETERS %%%

save ViVpMidR VecIncidence VecPotential XY_Midpoint % maintime1


save A2SatAsFdof A2 SAT AS fdof % maintime1a
save N2V2Pin N2 V2 pindex % ActionDef1
save LoVgVyLemBt Load VecGeneralised VecYield Lemke_Use BT % begintime1
save KuS2 Kuu S2 % begintime2
save AeFree A_ele Free % deflection1
save EleTriVer Ele_Mat tri XYvertices % postprocess1
save JsJpJd jsave jplot jdisplacement % postprocess1a
save Inc Incidence % PostDeflec1

%%% CLEAR PARAMETERS NO LONGER USED %%%

clear Qe_deadLoad Top VecQ deadLoad ue1 K


clear ue_deadLoad2 ue_unit2 ue_unit_deadLoad Y1 X1 Ve Se Ne He NTQ
clear List_exclude Ae Le Be Ke BP

%%% INITIALISE VARIABLES %%%

m_choice = 1;
t_initial = 1;
Lambda_rate = zeros(size_pindex,1);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 286

%%%%%%%%%%%%%% MAIN WHILE LOOP WHEN CRACKING EXISTS %%%%%%%%%%%%%%%%%%

j000 = j;
while j_sustained == 0 & j <= num_factors,

%%% LOAD PARAMETERS %%%

load N2V2Pin % ActionDef1


load LoVgVyLemBt % begintime1
load KuS2 % begintime2

%%%

fprintf(fidsol, '%d', j); % write data in solvectime.txt

%%% CHECK YIELD LIMIT %%%

if Yield_Limit_Exceeded
disp('Yield Limit Exceeded');
break;
end;

disp(' ');
disp('at Step:');
j

%%% WRITE RESTART FILE, NO WRITING IMMEDIATELY AFTER RESTARTING %%%

if j > j000
if ismember(j,jrestart) | j == Restart_Number | j == num_factors
disp(['--- Saving Files for Restart, j = ', num2str(j)]);
text_save = ['restart' num2str(j)];
save(text_save);
clear text_save
disp('--- Files written for Restart Option');
end;
end;

%%% CONVERT ACTIVE VECTOR TO COLUMN VECTOR %%%

if size(Active,1) == 1
Active = Active';
end;

%%% ASSUME TIME INCREMENT %%%


% Time_Increment_BC : time increment limited by bulk creep
% Time_Increment_qp : time increment limited by previous plastic disp.
% Time_Increment_qc : time increment limited by previous creep disp.

%%% Estimate Time_Increment_BC %%%

if creep_coef_inf ~= 0
Time_Increment_BC = 86400*sqrt((t/86400)^(15/8)*1e-6*128/7/...
creep_coef_inf/(t_age^(-1/3) + 0.05)); % short-term creep
else
Time_Increment_BC = inf;
end;

%%% Estimate Time_Increment_qp %%%

if exist('qp_increment','var')
index_qp_nonzero = find(qp_increment ~= 0);
else
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 287

index_qp_nonzero = [];
end;

if ~isempty(index_qp_nonzero)
Time_Increment_qp = Time_Stepping_Factor*q(index_qp_nonzero)./...
(qp_increment(index_qp_nonzero)/Time_Increment);
index_positive = find(Time_Stepping_Factor*q(index_qp_nonzero)./...
(qp_increment(index_qp_nonzero)/Time_Increment) > 0);
Time_Increment_qp = min(Time_Increment_qp(index_positive));
else
Time_Increment_qp = inf;
end;
clear index_qp_nonzero index_positive

%%% Estimate Time_Increment_qc %%%

index_qc_nonzero = find(qc_increment ~= 0);

if ~isempty(index_qc_nonzero)
Time_Increment_qc = Time_Stepping_Factor*q(index_qc_nonzero)./...
(qc_increment(index_qc_nonzero)/Time_Increment);
index_positive = find(Time_Stepping_Factor*q(index_qc_nonzero)./...
(qc_increment(index_qc_nonzero)/Time_Increment) > 0);
Time_Increment_qc = min(Time_Increment_qc(index_positive));
else
Time_Increment_qc = inf;
end;
clear index_qc_nonzero index_positive qc_increment

%%% GET ASSUMED TIME INCREMENT %%%

Time_Increment_temp = [Time_Increment_BC, Time_Increment_qp, ...


Time_Increment_qc];
Time_Increment_temp = min(Time_Increment_temp);

if Time_Increment_temp > Time_control_factor*Time_Increment


Time_Increment = Time_control_factor*Time_Increment;
else
Time_Increment = Time_Increment_temp;
end;
clear Time_Increment_temp

Time_Increment
clear Time_Increment_BC Time_Increment_qp Time_Increment_qc

%%% WHILE LOOP TO GET A SOLUTION ACCORDING TO THE ASSUMED TIME INCREMENT

%%% INITIALISE VARIABLES %%%

icount_rate = 0;
Active_BeforeAssemble = Active;
Time_Increment_Accepted = 0;

while Time_Increment_Accepted == 0

%%% INITIALISE VARIABLES %%%

icount_rate = icount_rate + 1;
forward_marker = 0;
snap_marker = 0;
p_num = 0;
lenActive = length(Active);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 288

lenBreakSet = 0;
lenYield = 0;
lenBreak = 0;
lenUnLoad = 0;
unbounded = 0;
SolNum = 1;

disp(' Before Assembly M & q with Time Effect');


size_Active = size(Active) % including break point set

%%% CALL A WRITTEN SUB-SCRIPT (Action_Assemble_time.m) TO FORM LCP %%%


% q_path_time == p & M_path_time == M in general LCP form

clear q_path_time M_path_time;

Action_Assemble_time; % call a written sub-script

disp('After Assembly');
size_Active = size(Active) % excluding break point set
ActiveWithBreaks = union(Active,BreakPointSet); % total active set

disp('Active without Breakpoint');


Active

if isempty(Active)
Time_Increment_BP = inf; % time increment required to get new BP
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% START SOLVING LCP %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
% NOTE: use the same procedure as shown in Solver_fracture_ncap4.m
% from line as marked by LINE AAA to LINE BBB to solve LCP
% by setting q_path = q_path_time and M_path = M_path_time
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

%%% GET LAMBDA INCREMENT %%%

if size(z,2) > 1
Lambda_Increment = z(1:size_Active(1))';
else
Lambda_Increment = z(1:size_Active(1));
end;

if unbounded == 0
Sign_Factor = 1;
else
Sign_Factor = -1; % snap back solution
end;

%%% DETERMINE UNLOADING SET %%%

disp ('---- Determine Unloading Set -----')


UnLoadSet = find(Lambda_Increment < 1E-25 & ...
Lambda_Increment > -1E-25);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 289

if ~isempty(UnLoadSet)
lenUnLoad = length(UnLoadSet);
end;

disp('Unloading Lambda');
Active(UnLoadSet)

if isempty(intersect(Active(UnLoadSet),BreakPointSet)) == 0
disp('UnLoadSet contains Breakpoint');
break;
end;

ActiveBeforeUnLoad = Active; % excluding break point set

%%% UPDATE VARIABLES DUE TO UNLOADING SET & KEEP OLD VALUES %%%

UnLoadSet_Total_old = UnLoadSet_Total;
UnLoadSet_Total = unique([UnLoadSet_Total;Active(UnLoadSet)]);

NonActive = union(NonActive,Active(UnLoadSet)); % non-active set


[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;

Active(UnLoadSet) = []; % active set


[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

Lambda_Increment(UnLoadSet) = []; % lambda increment

if ~isempty(BreakPointSet)
Z_break_time(:,UnLoadSet) = []; % from Action_Assemble_time.m
end;

%%% CALCULATE LAMBDA INCREMENT OF BP SET %%%

if ~isempty(Active)
ActiveNoBreak = Active; %Active no break and no unloading
ActiveNoBreak_Band = Active_Band;

if ~isempty(BreakPointSet)
disp (' ---- Calc. Lambda_Break_Increment ----')
Lambda_Increment_2 = Lambda_Increment;

if unbounded == 0
if ~isempty(Lambda_Increment)
Lambda_Break_Increment = q_break_time - ...
Z_break_time*Lambda_Increment;
else % q_break_time from Action_Assemble_time.m
Lambda_Break_Increment = q_break_time
end;
else
if ~isempty(Lambda_Increment)
Lambda_Break_Increment = -q_break_time - ...
Z_break_time*Lambda_Increment;
else
Lambda_Break_Increment = -q_break_time
end;
end;

Active = union(Active,BreakPointSet);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 290

if size(Active,2) > 1
Active = Active';
end;

%%% Update Lambda Increment Due to Break Point Set %%%

[Cp,IA,IB] = intersect(ActiveNoBreak,Active);
Lambda_Increment_New(IB) = Lambda_Increment;
clear Cp IA IB;

[Cp,IA,IB] = intersect(BreakPointSet,Active);
Lambda_Increment_New(IB) = Lambda_Break_Increment;
clear Cp IA IB;

Active_Band = union(Active_Band,BreakPointSet_Band);
Lambda_Increment = Lambda_Increment_New';
clear Rr Rloadfree;

Rr = RrOld; % Rr from Action_Assemble_time.m


Rloadfree = RloadfreeOld;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;
clear Lambda_Increment_New Lambda_Break_Increment
end;

%%% ESTIMATE TIME INCREMENT REQUIRED TO REACH NEW BP. %%%

Evol_Total_new_temp = R(ActiveNoBreak_Band) + ...


full(H(ActiveNoBreak_Band,Active_Band))*...
Lambda_Total(Active_Band) + Lb_term(ActiveNoBreak_Band)...
+ full(H(ActiveNoBreak_Band,Active_Band) +...
L_term(ActiveNoBreak_Band,Active_Band)/Time_Increment +...
LH(ActiveNoBreak_Band,Active_Band))*...
Lambda_Increment*Sign_Factor;

Evol_Total_Inc_temp = Evol_Total_new_temp - ...


Evol_Total(ActiveNoBreak_Band);
Factor_ratio = -Evol_Total(ActiveNoBreak_Band)./...
(Evol_Total_Inc_temp/Time_Increment);
index_positive = find(Factor_ratio > 0);
IFactor = find(Factor_ratio==-inf);
Factor_ratio(IFactor) = inf;

Time_Increment_BP = min(Factor_ratio(index_positive));

if isempty(Time_Increment_BP)
Time_Increment_BP = inf;
end;

clear Evol_Total_new_temp Evol_Total_Inc_temp


clear Factor_ratio index_positive IFactor
else % if ~isempty(Active) -- all active unloading

if exist('q_break_time','var') == 0 | isempty(q_break_time)
disp('Active Set Empty');
break;
end;

Lambda_Increment = q_break_time;

Active = BreakPointSet;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 291

if size(Active,2) > 1
Active = Active';
end;

Active_Band = BreakPointSet_Band;
ActiveNoBreak = [];
ActiveNoBreak_Band = [];
clear Rr Rloadfree;
Rr = RrOld; % Rr from Action_Assemble_time.m
Rloadfree = RloadfreeOld;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;

Time_Increment_BP = inf;
end;
else % no actice set

Lambda_Increment = q_break_time;

Active = BreakPointSet;

if size(Active,2) > 1
Active = Active';
end;

Active_Band = BreakPointSet_Band;
ActiveNoBreak = [];
ActiveNoBreak_Band = [];
BP_Exceeded = 1;
clear Rr Rloadfree;
Rr = RrOld; % Rr from Action_Assemble_time.m
Rloadfree = RloadfreeOld;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;

Time_Increment_BP=inf;
end;

%%%%%%%%%%%%%%%%%%%%% END OF SOLVING LCP %%%%%%%%%%%%%%%%%%%%%

Lambda_Increment

if ~isempty(BreakPointSet)
lenBreakSet = length(BreakPointSet);
end;

Active_Band_Old = Active_Band;
ActiveOld = Active; % active set corresponding to lambda inc.

%%% UPDATE OTHER VARIABLES DUE TO UNLOADING SET %%%

[C,IA,IB] = intersect(ActiveBeforeUnLoad(UnLoadSet),ActiveWithBreaks);
M_path_rate_time(:,IB) = [];
Rr(:,IB) = [];
clear C IA IB;

%%% UPDATE Phi_Total & Evol_Total & Load Factor %%%

Phi_Total_old = Phi_Total;
Evol_Total_old = Evol_Total;
Load_Factor_old = Load_Factor;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 292

Phi_Total = q_path_rate_time + M_path_rate_time*...


Lambda_Increment.*Sign_Factor;

Evol_Total = R + full(H)*Lambda_Total + Lb_term + ...


full(H(:,Active_Band) + L_term(:,Active_Band)/Time_Increment+...
LH(:,Active_Band))*Lambda_Increment*Sign_Factor;

Load_Factor_Increment = (Factor_Increment - ...


Rr*Sign_Factor*Lambda_Increment - creep_coef_increment*...
Load_Factor)/(1+creep_coef);
Load_Factor = Load_Factor + Load_Factor_Increment;

%%% CHECK Phi_Total & Evol_Total & Load_Factor %%%

%Check for New Yield Point or New Break Point


NY_index = find(Phi_Total(NonActive_Band) < -1E-6);
NBP_index = find(Evol_Total(ActiveNoBreak_Band) < -1E-6);

if ~isempty(ActiveNoBreak)
Lambda_Inc_Limit = BP(ActiveNoBreak_Band) - ...
Lambda_Total(ActiveNoBreak_Band);
[Cp,IA,ActiveNoBreak_index] = intersect(ActiveNoBreak,Active);
NBPC_index = find(Lambda_Increment(ActiveNoBreak_index) > ...
Lambda_Inc_Limit);
else
NBPC_index = [];
end;

if ~isempty(NY_index) | ~isempty(NBP_index) | ...


Load_Factor > creep_load | ~isempty(NBPC_index)

Time_Increment_Accepted = 0 % Time_Increment too much

%%% Estimate New Time_Increment %%%

Time_Increment_limit = 0.99*Time_Increment;

%%% Estimate Time_Increment to Reach New Break Point %%%

if isempty(Time_Increment_BP) == 1
Time_Increment_BP = inf*Sign_Factor;
end;

Factor_ratio_lambda = Lambda_Inc_Limit./...
(Lambda_Increment(ActiveNoBreak_index)/Time_Increment);
Time_Increment_BP_lambda = min(Factor_ratio_lambda);

Time_Increment_BP = [Time_Increment_BP;Time_Increment_BP_lambda];
Time_Increment_BP = min(Time_Increment_BP);

%%% Estimate Time_Increment to Reach New Yield Point

Phi_NonActive = (Phi_Total(NonActive_Band) - ...


Phi_Total_old(NonActive_Band))/Time_Increment;
Phi_NotZero_index = find(Phi_NonActive~=0);
Phi_ratio = Phi_Total_old(NonActive_Band(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index);

if unbounded == 0
%Forward Solution
index_positive = find(Phi_Total_old(NonActive_Band...
(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index) > 0);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 293

if ~isempty(index_positive)
Time_Increment_YP = min(Phi_ratio(index_positive));
else
Time_Increment_YP = inf;
end;
else
%Snap Back Solution
index_neg = find(Phi_Total_old(NonActive_Band...
(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index) < 0);
if ~isempty(index_neg)
Time_Increment_YP = max(Phi_ratio(index_neg));
else
Time_Increment_YP = inf;
end;
end;

clear Phi_NonActive Phi_NotZero_index index_positive


clear Phi_ratio index_neg

%%% Estimate Time_Increment to Reach Creep Load %%%

Time_Increment_CL = (creep_load - Load_Factor_old)/...


(Load_Factor_Increment/Time_Increment);

%%% Get new Time_Increment %%%

Time_Increment_limit
if Time_Increment_limit < 0
Time_Increment_limit = inf
end;

Time_Increment_BP
if Time_Increment_BP < 0
Time_Increment_BP = inf
end;

Time_Increment_YP
if Time_Increment_YP < 0
Time_Increment_YP = inf
end;

Time_Increment_CL
if Time_Increment_CL < 0
Time_Increment_CL = inf
end;

Time_Increment = [Time_Increment_limit, Time_Increment_BP,...


Time_Increment_YP, Time_Increment_CL];
Time_Increment = min(Time_Increment)

if Time_Increment < 1e-10


if icount_rate < 500
Time_Increment = rand(1)*1e-4
pause(1);
else
disp('Time_Increment < 1e-10');
disp('1. Continue');
disp('0. Exit');
clear m_choice
m_choice = input('Enter your choice (1/0):');
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 294

if m_choice == 1
Time_Increment = input('input Time_Increment:');
end;

if m_choice == 0
disp('Time_Increment < 1e-10');
break;
end;
end;
end;
clear Time_Increment_limit Time_Increment_BP Time_Increment_YP
clear Time_Increment_CL

%%%%%%%%%% End of Estimating New Time_Increment %%%%%%%%%%%%

%%% Restore Old Values of Main Parameters %%%

Active = Active_BeforeAssemble;
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

NonActive = pindex';
[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB CNA INA;

UnLoadSet_Total = UnLoadSet_Total_old;
Phi_Total = Phi_Total_old;
Evol_Total = Evol_Total_old;
Load_Factor = Load_Factor_old;
else

Time_Increment_Accepted = 1
icount_rate

%%% Determine New Active %%%

PhiNonActive_zero_index = find(Phi_Total(NonActive_Band) < ...


1.0E-6 & Phi_Total(NonActive_Band) > -1.0E-6);

if length(PhiNonActive_zero_index) > 1;
disp('Multi-Yielding occurs !')
pause;
end;

if ~isempty(PhiNonActive_zero_index)

%Get New Active and lenYield


NewActive_Band = NonActive_Band(PhiNonActive_zero_index);
disp(' New Active Set');
NewActive = pindex(NewActive_Band)'
if ~isempty(NewActive)
lenYield = length(NewActive);
end;

%Update Active and Active_Band


Active = unique([Active;NewActive]);
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 295

%Update NonActive and NonActive_Band


NonActive = pindex';
if isempty(Active) == 0
[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
end;
[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;
end;

%%% Determine New Break Point %%%

Evol_zero_index = find(Evol_Total(ActiveNoBreak_Band) < ...


1.0E-6 & Evol_Total(ActiveNoBreak_Band) > -1.0E-6);

if length(Evol_zero_index) > 1;
disp('Multi-BP occurs !')
length(Evol_zero_index)
pause;
end;

if ~isempty(ActiveNoBreak)
critical_disp_index = find(abs(Lambda_Increment...
(ActiveNoBreak_index) - Lambda_Inc_Limit) < 1e-6);
else
critical_disp_index = [];
end;

if length(critical_disp_index) > 1;
disp('Multi-BP occurs !')
length(critical_disp_index)
pause;
end;

NewBP_Band1 = []; NewBP_Band2 = [];

%Get New Break Points and lenBreak


if ~isempty(Evol_zero_index)
NewBP_Band1 = ActiveNoBreak_Band(Evol_zero_index);
if size(NewBP_Band1,1) ~= 1
NewBP_Band1 = NewBP_Band1';
end;
end;

if ~isempty(critical_disp_index)
NewBP_Band2 = ActiveNoBreak_Band(critical_disp_index);
Evol_Total(ActiveNoBreak_Band(critical_disp_index)) = 0;
if size(NewBP_Band2,1) ~= 1
NewBP_Band2 = NewBP_Band2';
end;
end;

NewBP_Band = unique([NewBP_Band1,NewBP_Band2]);
clear NewBP_Band1 NewBP_Band2

if ~isempty(NewBP_Band)
NewBP = pindex(NewBP_Band)'
lenBreak = length(NewBP);

%Update BreakPointSet
BreakPointSet = unique([BreakPointSet;NewBP]);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 296

%Update R
if shear <= 4
R(NewBP_Band) = 0;
else
R(NewBP_Band) = Residual(NewBP_Band);
end;

%Update H2
if shear < 3
H2(NewBP) = 0;
else
if shear == 3
for i = 1:size(NewBP,1),
H2(NewBP(i),NewBP(i)) = 0;
size(NewBP)

temp1 = NewBP+ones(size(NewBP));
temp2 = temp1+ones(size(NewBP));
H2(NewBP(i),temp1(i)) = 0;
H2(NewBP(i),temp2(i)) = 0;
end;
else
for i = 1:size(NewBP,1),
H2(NewBP(i),NewBP(i)) = 0;

clear temp1;
temp1 = NewBP+ones(size(NewBP));
temp2 = temp1+ones(size(NewBP));
temp3 = NewBP-ones(size(NewBP));
temp4 = temp3-ones(size(NewBP));

H2(NewBP(i),temp1(i)) = 0;
H2(NewBP(i),temp2(i)) = 0;
H2(NewBP(i),temp3(i)) = 0;
H2(temp1(i),NewBP(i)) = 0;
H2(temp2(i),NewBP(i)) = 0;
H2(temp3(i),NewBP(i)) = 0;
if temp4(i) ~= 0
H2(NewBP(i),temp4(i)) = 0;
H2(temp4(i),NewBP(i)) = 0;
end;
end;
clear temp1 temp2 temp3 temp4;
end;
end; % Update H2
end;

if ~isempty(PhiNonActive_zero_index) & ~isempty(NewBP_Band)


disp('Both new active and BP occur simultaneously');
pause;
end;
end;

clear NY_index NBP_index PhiNonActive_zero_index


clear Evol_zero_index
clear Lambda_Inc_Limit NBPC_index critical_disp_index
clear NewBP NewBP_Band ActiveNoBreak_index
end; %while Time_Increment_Accepted == 0

clear UnLoadSet_Total_old Active_BeforeAssemble


clear Phi_Total_old Evol_Total_old
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 297

if m_choice == 0
break;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% POST-PROCESSING WHEN CRACING EXISTS %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

disp (' ------- Post Processing (Time Effect) --------')

if Time_Increment == inf
disp('Time Increment = inf');
break;
end;

Factor(j) = Factor(j-1) + Factor_Increment; % displacement factor

Lambda_Total(Active_Band_Old) = Lambda_Total(Active_Band_Old)...
+ Sign_Factor*Lambda_Increment;

disp(' Lambda Total Active')


Lambda_Total(Active_Band_Old)

Lambda_rate = zeros(size_pindex,1);
Lambda_rate(Active_Band_Old) = Lambda_Increment/Time_Increment;

Lambda_Inc_Max = max(Lambda_Increment); % maximum lambda increment

%%% Check Lambda %%%

Lambda_Index = find(Lambda_Total(Active_Band_Old) < 0 & ...


Lambda_Total(Active_Band_Old) > -1E-20);

if isempty(Lambda_Index) == 0
disp(' Error Lambda Less Than Zero');
j
pause;
end;

%%%

j = j+1;

if nonassociated == 0
qp_increment = N2(:,ActiveOld)*Sign_Factor*Lambda_Increment;
else
qp_increment = V2(:,ActiveOld)*Sign_Factor*Lambda_Increment;
end;

%%% Store & Clear Values of Variables to Save Memory %%%

save maintime2 q u Lambda_Total Phi_Total Evol_Total H2 BP2


save postprocess2 R2

clear H M_path_rate_time M_path_time q_path_rate_time q_path_time


clear VecIncidence VecPotential XY_Midpoint
clear N2 V2 pindex
clear Load VecGeneralised VecYield Lemke_Use BT
clear A_ele Free
clear Ele_Mat R2c u_j1 tri XYvertices
clear jsave jplot jdisplacement
clear Incidence
clear q u uc ue up Lambda_Total Phi_Total Evol_Total H2 L2 LC2 BP2
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 298

clear Z22

%%% Calculate qe_increment & qc_increment %%%

qpterm = qp_increment + creep_coef_increment*qe;


term1 = Load_Factor_Increment*A2(fdof,:)'*ue_unit(fdof)' +...
A2(fdof,:)'*(Kuu(fdof,fdof)\(AS*qpterm)) - qpterm;
qe_increment_old = (1+creep_coef).\term1;
qe_increment = qe_increment_old;
clear qpterm term1
criterion = 1;
icount_time = 1;

while criterion >= 1e-6 | icount_time > 1000


icount_time = icount_time + 1;
qe_inc = (1+creep_coef).\AS*creep_coef*qe_increment;
qe_increment_new = qe_increment_old + ...
A2(fdof,:)'*(Kuu(fdof,fdof)\qe_inc);

criterion = norm(qe_increment)\norm(qe_increment_new - qe_increment);

qe_increment = qe_increment_new;
end;

if icount_time > 1000


disp(' Convergence Not Achieved')
pause(5);
break;
end;

criterion
clear qe_increment_old icount_time qe_inc qe_increment_new criterion

qc_increment = creep_coef*qe_increment + creep_coef_increment*qe;

%%% Calculate Other Variables %%%

Qe_increment = Qe_unit*Load_Factor_Increment;
ASqp_inc = AS*qp_increment;
Qp_increment = SAT*(Kuu(fdof,fdof)\ASqp_inc) - S2*qp_increment;
ASqc_inc = AS*qc_increment;
Qc_increment = SAT*(Kuu(fdof,fdof)\ASqc_inc) - S2*qc_increment;
Q_increment = Qe_increment + Qc_increment + Qp_increment;
clear Qe_increment ASqp_inc ASqc_inc Qc_increment Qp_increment

%%% Load Parameters %%%

load ViVpMidR %maintime1


load maintime2
load EleTriVer %postprocess1
load JsJpJd %postprocess1a
load Inc %PostDeflec1

%%%

ue_increment = Load_Factor_Increment.*ue_unit;
up_increment = 0*u;
[C,IA,IB] = intersect(ActiveBeforeUnLoad(UnLoadSet),ActiveWithBreaks);
R2(:,IB) = [];
up_increment(fdof) = (R2*Sign_Factor*Lambda_Increment)';
uc_increment = 0*u;
ASqc = AS*qc_increment;
uc_increment(fdof) = (Kuu(fdof,fdof)\(ASqc))';
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 299

u_increment = ue_increment + up_increment + uc_increment;


clear ue_increment ASqc up_increment uc_increment

creep_coef = creep_coef + creep_coef_increment % creep coefficient

disp(' Total Time');


t = t + Time_Increment % time

creep_coef_check = creep_coef_inf*( t_age^(-1/3)+0.05 )*(t/86400)^(1/8);

qe = qe + qe_increment; % elastic generalised displacement


qp = qp + qp_increment; % plastic generalised displacement
qc = qc + qc_increment; % creep generalised displacement

u = u + u_increment; % displacement

q = A2'*u'; % generalised displacement

Q = Q + Q_increment; % generalised force


clear u_increment Q_increment

udisplay(j) = u(control_free)
pdisplay(j) = Load_Factor

%%% Write Data to solvectime.txt %%%

fprintf(fidsol, ',%d', Load_Factor);


fprintf(fidsol, ',%d', forward_marker);
fprintf(fidsol, ',%d', snap_marker);
fprintf(fidsol, ',%d', p_num);
fprintf(fidsol, ',%d', lenActive);
fprintf(fidsol, ',%d', lenBreakSet);
fprintf(fidsol, ',%d', lenYield);
fprintf(fidsol, ',%d', lenBreak);
fprintf(fidsol, ',%d', lenUnLoad);
fprintf(fidsol, ',%.15e', t);
fprintf(fidsol, ',%.15e', t_sustained);
fprintf(fidsol, ',%.15e', creep_coef);
fprintf(fidsol, ',%.15e', creep_coef_check);
fprintf(fidsol, ',%d', j_sustained);
fprintf(fidsol, ',%.15e', Lambda_Inc_Max);
fprintf(fidsol, '\n');
clear lenActive lenYield lenBreak lenUnLoad;

if forward_marker > 1 | snap_marker > 0


Bi_Size = size(Bifurcation_u)
Bifurcation_u(Bi_Size+1) = udisplay(j);
Bifurcation_p(Bi_Size+1) = pdisplay(j);
end;

%%% Plot Figure %%%

if j == 2
u_display_max = 1.5*max(udisplay); p_display_max = 1.5*max(pdisplay);
u_display_min = 1.5*min(udisplay); p_display_min = 1.5*min(pdisplay);
end;

if ismember(j,jplot) | j == num_factors | exist('stop.m','file') |...


BP_Exceeded == 1

disp('Plot Figures');
close all;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 300

hf_1 = figure('units', 'normalized', 'position', ...


[0.01, 0.3, 0.98, 0.6]);
ha_1 = axes('units', 'normalized', 'position', ...
[0.07, 0.12, 0.42, 0.8], 'visible', 'on'); % for mesh
ha_2 = axes('units', 'normalized', 'position', ...
[0.55, 0.12, 0.42, 0.8], 'visible', 'on'); % for u-p display
set(hf_1, 'currentaxes',ha_1);
hold on;

eledraw(XYvertices, tri, Ele_Mat, 1); % call a written function


xlabel('X'); ylabel('Y');
hold on

plot(XY_Midpoint(B_Supports,1),XY_Midpoint(B_Supports,2),'rsquare')
plot(XY_Midpoint(load_nodes,1),XY_Midpoint(load_nodes,2),'gd')
plot(XY_Midpoint(control_node,1),XY_Midpoint(control_node,2),'kh')
plot(XY_Midpoint(VecIncidence(Initial_Active),1),...
XY_Midpoint(VecIncidence(Initial_Active),2),'kp');

Active_NonBreak = Active;
IVec_ones = ismember(Active,BreakPointSet);
IVec = find(IVec_ones==1);
Active_NonBreak(IVec) = [];
IActive_Tension = find(VecPotential(Active_NonBreak)==1);
Active_Tension = Active_NonBreak(IActive_Tension);

IActive_Shear1 = find(VecPotential(Active_NonBreak)==2);
IActive_Shear2 = find(VecPotential(Active_NonBreak)==3);
IActive_Shear = unique([IActive_Shear1,IActive_Shear2]);
Active_Shear = Active_NonBreak(IActive_Shear);

plot(XY_Midpoint(VecIncidence(Active_Tension),1),...
XY_Midpoint(VecIncidence(Active_Tension),2),'rv')
plot(XY_Midpoint(VecIncidence(Active_Shear),1),...
XY_Midpoint(VecIncidence(Active_Shear),2),'b^')
plot(XY_Midpoint(VecIncidence(BreakPointSet),1),...
XY_Midpoint(VecIncidence(BreakPointSet),2),'bo');
plot(XY_Midpoint(VecIncidence(UnLoadSet_Total),1),...
XY_Midpoint(VecIncidence(UnLoadSet_Total),2),'r.');

text_title = ['Event ' num2str(j-1) ' : udisplay=' ...


num2str(udisplay(j))];
text_title = [text_title ' : pdisplay=' num2str(pdisplay(j))];
title(text_title);
text_save = ['Event_' num2str(j-1)];
set(hf_1, 'currentaxes', ha_2);
hold on;

if max(udisplay)>u_display_max, u_display_max = 1.5*max(udisplay);end;


if max(pdisplay)>p_display_max, p_display_max = 1.5*max(pdisplay);end;
if min(udisplay)<u_display_min, u_display_min = 1.5*min(udisplay);end;
if min(pdisplay)<p_display_min, p_display_min = 1.5*min(pdisplay);end;

axis([u_display_min, u_display_max, p_display_min, p_display_max]);


plot(udisplay, pdisplay, 'b-o');
hold on;

if ~isempty(Bifurcation_u)
plot(Bifurcation_u,Bifurcation_p, 'rh');
end;

xlabel('u'); ylabel('p');
pause(0.1)
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 301

if ismember(j,jsave) | j == num_factors | exist('stop.m', 'file') |...


BP_Exceeded == 1
hgsave(hf_1, text_save);
end;
end;

%%% Calculate Deflection History & Interface Force History %%%

if ~isempty( dhistory_dofID ) % call a written function


History_Deflection_creep_rate(j-1, dhistory_dofID, pdisplay, ...
udisplay, u, t);
end;

if ~isempty(qhistory_S2row) % call a written function


History_Interface_creep_rate(j-1, qhistory_midpoints, ...
qhistory_S2row, Incidence, XY_Midpoint, Q, q, qe, qp, qc, t);
end;

%%%

creep_coef = creep_coef_check;

udisplay_new = udisplay(j);
udisplay_old = udisplay(j-1);
udisplay_increment = udisplay_new - udisplay_old;

if creep_coef >= creep_coef_inf


if abs(udisplay_increment) < 1e-16
disp ('!!! Creep Limit is reached !!! ')
udisplay_old
udisplay_new
udisplay_increment
break;
end;
end;
clear udisplay_new udisplay_old

%%% Cheak Creep Load %%%

if abs(Load_Factor - creep_load) < 1e-6


j_sustained = 1; % in order to start sustained loading
end;

%%%

disp (' -------- End Current Loop (Time Effect) ---------')

if BP_Exceeded == 1
disp('BP_Exceeded');
break;
end;

if exist('stop.m', 'file') | j == num_factors


disp(' ');
disp('-------------------------------------');
disp('- Current Number Factor -');
disp(['- ', num2str(num_factors)]);
disp('-------------------------------------');
m_choice = input('Enter new number factor(0 for no change):');

if m_choice > 0
num_factors = m_choice;
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 302

disp('-------------------------------------');
disp('- Current Restart Number -');
disp(['- ', num2str(Restart_Number)]);
disp('-------------------------------------');
m_Restart = input('Enter new Restart (0 for no change):');

if m_Restart > 0
Restart_Number = m_Restart;
end;

jdisplacement = [1:1:num_factors];
jdisplacement = [2, jdisplacement];
jrestart = [50:50:num_factors];

save JsJpJd jsave jplot jdisplacement % postprocess1a


end;
end;

%%%%%%%%%%%%%%%%%%%% END (WHEN CRACKING EXISTS) %%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% UNDER SUSTAINED LOADING %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if j_sustained ~= 0

%%% INITIALISE VARIABLES %%%

if j_sustained == 1
u_t_display(1) = abs(udisplay(j));
tdisplay(1) = 0;
t_ref = t;
end;

m_choice = 1;
j000 = j_sustained;

%%%%%%%%%%%%%% MAIN WHILE LOOP UNDER SUSTAINED LOADING %%%%%%%%%%%%%%

while j_sustained <= num_factors,

%%% LOAD PARAMETERS %%%

load N2V2Pin % ActionDef1


load LoVgVyLemBt % begintime1
load KuS2 % begintime2

%%%

fprintf(fidsol, '%d', j); % write data in solvectime.txt

disp(' ');
disp('at Sustained Loading Step:');
j_sustained

%%% WRITE RESTART FILE, NO WRITING IMMEDIATELY AFTER RESTARTING %%%

if j_sustained > j000


if ismember(j_sustained,jrestart) | ...
j_sustained == Restart_Number | j_sustained == num_time
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 303

disp(['--- Saving Files for Restart, j_sustained = ', ...


num2str(j_sustained)]);
text_save = ['restart' num2str(j)];
save(text_save);
clear text_save
disp('--- Files written for Restart Option');
end;
end;

%%% CONVERT ACTIVE VECTOR TO COLUMN VECTOR %%%

if size(Active,1) == 1
Active = Active';
end;

%%% ASSUME TIME INCREMENT %%%


% Time_Increment_BC : time increment limited by bulk creep
% Time_Increment_qp : time increment limited by previous plastic disp.
% Time_Increment_qc : time increment limited by previous creep disp.

%%% Estimate Time_Increment_BC %%%

if creep_coef_inf ~= 0
Time_Increment_BC = 86400*sqrt((t/86400)^(15/8)*1e-6*128/7/...
creep_coef_inf/(t_age^(-1/3)+0.05)); % short-term creep
else
Time_Increment_BC = inf;
end;

%%% Estimate Time_Increment_qp %%%

index_qp_nonzero = find(qp_increment ~= 0);

if ~isempty(index_qp_nonzero)
Time_Increment_qp = Time_Stepping_Factor*q(index_qp_nonzero)./...
(qp_increment(index_qp_nonzero)/Time_Increment);
index_positive =find(Time_Stepping_Factor*q(index_qp_nonzero)./...
(qp_increment(index_qp_nonzero)/Time_Increment) > 0);
Time_Increment_qp = min(Time_Increment_qp(index_positive));
else
Time_Increment_qp = inf;
end;
clear index_qp_nonzero index_positive

%%% Estimate Time_Increment_qc %%%

index_qc_nonzero = find(qc_increment ~= 0);

if ~isempty(index_qc_nonzero)
Time_Increment_qc = Time_Stepping_Factor*q(index_qc_nonzero)./...
(qc_increment(index_qc_nonzero)/Time_Increment);
index_positive =find(Time_Stepping_Factor*q(index_qc_nonzero)./...
(qc_increment(index_qc_nonzero)/Time_Increment) > 0);
Time_Increment_qc = min(Time_Increment_qc(index_positive));
else
Time_Increment_qc = inf;
end;
clear index_qc_nonzero index_positive

%%% GET ASSUMED TIME INCREMENT %%%

Time_Increment_temp = [Time_Increment_BC, Time_Increment_qp, ...


Time_Increment_qc];
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 304

Time_Increment_temp = min(Time_Increment_temp);

if Time_Increment_temp > Time_control_factor*Time_Increment


Time_Increment = Time_control_factor*Time_Increment;
else
Time_Increment = Time_Increment_temp;
end;
clear Time_Increment_temp

Time_Increment
clear Time_Increment_BC Time_Increment_qp Time_Increment_qc

%%% WHILE LOOP TO GET A SOLUTION ACCORDING TO THE ASSUMED TIME INCRE.

%%% INITIALISE VARIABLES %%%

icount_rate = 0;
Active_BeforeAssemble = Active;
Time_Increment_Accepted = 0;

while Time_Increment_Accepted == 0

%%% INITIALISE VARIABLES %%%

icount_rate = icount_rate + 1;
forward_marker = 0;
snap_marker = 0;
p_num = 0;
lenActive = length(Active);
lenBreakSet = 0;
lenYield = 0;
lenBreak = 0;
lenUnLoad = 0;
unbounded = 0;
SolNum = 1;

disp(' Before Assembly M & q with Time Effect');


size_Active = size(Active) % including break point set

%%% CALL Action_Assemble_creep.m TO FORM LCP %%%


% q_path_time == p & M_path_time == M in general LCP form

clear q_path_time M_path_time;

Action_Assemble_creep; % call a written sub-script

disp('After Assembly');
size_Active = size(Active) % excluding break point set
ActiveWithBreaks = union(Active,BreakPointSet); % total active set

disp('Active without Breakpoint');


Active

if isempty(Active) == 1
Time_Increment_BP = inf; % time incre. required to get new BP
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 305

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% START SOLVING LCP %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
% NOTE: use the same procedure as shown in Solver_fracture_ncap4.m
% from line as marked by LINE AAA to LINE BBB to solve LCP
% by setting q_path = q_path_time and M_path = M_path_time
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

%%% GET LAMBDA INCREMENT %%%

if size(z,2) > 1
Lambda_Increment = z(1:size_Active(1))';
else
Lambda_Increment = z(1:size_Active(1));
end;

if unbounded == 0
Sign_Factor = 1;
else
Sign_Factor = -1; % snap back solution
end;

%%% DETERMINE UNLOADING SET %%%

disp ('---- Determine Unloading Set -----')


UnLoadSet = find(Lambda_Increment < 1E-25 & ...
Lambda_Increment > -1E-25);

if ~isempty(UnLoadSet)
lenUnLoad = length(UnLoadSet);
end;

disp('Unloading Lambda');
Active(UnLoadSet)

if isempty(intersect(Active(UnLoadSet),BreakPointSet)) == 0
disp('UnLoadSet contains Breakpoint');
break;
end;

ActiveBeforeUnLoad = Active; % excluding break point set

%%% UPDATE VARIABLES DUE TO UNLOADING SET & KEEP OLD VALUES

UnLoadSet_Total_old = UnLoadSet_Total;
UnLoadSet_Total = unique([UnLoadSet_Total;Active(UnLoadSet)]);

NonActive = union(NonActive,Active(UnLoadSet)); % non-active


[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;

Active(UnLoadSet) = []; % active set


[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

Lambda_Increment(UnLoadSet) = []; % lambda increment


APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 306

if ~isempty(BreakPointSet)
Z_break_time(:,UnLoadSet) = [];
end; % Z_break_time from Action_Assemble_creep.m

%%% CALCULATE LAMBDA INCREMENT OF BP SET %%%

if ~isempty(Active)
ActiveNoBreak = Active; %Active no break and no unloading
ActiveNoBreak_Band = Active_Band;

if ~isempty(BreakPointSet)
disp (' ---- Calc. Lambda_Break_Increment ----')
Lambda_Increment_2 = Lambda_Increment;

if unbounded == 0
if ~isempty(Lambda_Increment)
Lambda_Break_Increment = q_break_time - ...
Z_break_time*Lambda_Increment;
else % q_break_time from Action_Assemble_creep.m
Lambda_Break_Increment = q_break_time
end;
else
if ~isempty(Lambda_Increment)
Lambda_Break_Increment = -q_break_time - ...
Z_break_time*Lambda_Increment;
else
Lambda_Break_Increment = -q_break_time
end;
end;

Active = union(Active,BreakPointSet);

if size(Active,2) > 1
Active = Active';
end;

%%% Update Lambda Increment Due to Break Point Set %%%

[Cp,IA,IB] = intersect(ActiveNoBreak,Active);
Lambda_Increment_New(IB) = Lambda_Increment;
clear Cp IA IB;

[Cp,IA,IB] = intersect(BreakPointSet,Active);
Lambda_Increment_New(IB) = Lambda_Break_Increment;
clear Cp IA IB;

Active_Band = union(Active_Band,BreakPointSet_Band);
Lambda_Increment = Lambda_Increment_New';

clear Rr Rloadfree;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;
clear Lambda_Increment_New Lambda_Break_Increment
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 307

%%% ESTIMATE TIME INCREMENT REQUIRED TO REACH NEW BP. %%%

Evol_Total_new_temp = R(ActiveNoBreak_Band) + ...


full(H(ActiveNoBreak_Band,Active_Band))*...
Lambda_Total(Active_Band) + ...
Lb_term(ActiveNoBreak_Band) + ...
full(H(ActiveNoBreak_Band,Active_Band) + ...
L_term(ActiveNoBreak_Band,Active_Band)/...
Time_Increment+LH(ActiveNoBreak_Band,Active_Band))*...
Lambda_Increment*Sign_Factor;

Evol_Total_Inc_temp = Evol_Total_new_temp - ...


Evol_Total(ActiveNoBreak_Band);
Factor_ratio = -Evol_Total(ActiveNoBreak_Band)./...
(Evol_Total_Inc_temp/Time_Increment);
index_positive = find(Factor_ratio > 0);
IFactor = find(Factor_ratio==-inf);
Factor_ratio(IFactor) = inf;

Time_Increment_BP = min(Factor_ratio(index_positive));

if isempty(Time_Increment_BP)
Time_Increment_BP = inf;
end;

clear Evol_Total_new_temp Evol_Total_Inc_temp


clear Factor_ratio index_positive IFactor
else % if ~isempty(Active) -- all active unloading

if exist('q_break_time','var')== 0 | isempty(q_break_time)
disp('Active Set Empty');
break;
end;

Lambda_Increment = q_break_time;

Active = BreakPointSet;

if size(Active,2) > 1
Active = Active';
end;

Active_Band = BreakPointSet_Band;
ActiveNoBreak = [];
ActiveNoBreak_Band = [];

clear Rr Rloadfree;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;

Time_Increment_BP = inf;
end;
else % no actice set

Lambda_Increment = q_break_time;

Active = BreakPointSet;

if size(Active,2) > 1
Active = Active';
end;

Active_Band = BreakPointSet_Band;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 308

ActiveNoBreak = [];
ActiveNoBreak_Band = [];

clear Rr Rloadfree;
clear RrOld RloadfreeOld;
clear RrBreak RloadfreeBreak;

Time_Increment_BP = inf;
BP_Exceeded = 1;
end;

%%%%%%%%%%%%%%%%%%%% END OF SOLVING LCP %%%%%%%%%%%%%%%%%%

Lambda_Increment

if ~isempty(BreakPointSet)
lenBreakSet = length(BreakPointSet);
end;

Active_Band_Old = Active_Band;
ActiveOld = Active; % active set corresponding to lambda inc.

%%% UPDATE OTHER VARIABLES DUE TO UNLOADING SET %%%

[C,IA,IB] = intersect(ActiveBeforeUnLoad(UnLoadSet),...
ActiveWithBreaks);
M_path_rate_time(:,IB) = [];
clear C IA IB;

%%% UPDATE Phi_Total & Evol_Total %%%

Phi_Total_old = Phi_Total;
Evol_Total_old = Evol_Total;

Phi_Total = q_path_rate_time + ...


M_path_rate_time*Lambda_Increment.*Sign_Factor;

Evol_Total = R + full(H)*Lambda_Total + Lb_term + ...


full(H(:,Active_Band) + L_term(:,Active_Band)/...
Time_Increment+ LH(:,Active_Band))*...
Lambda_Increment*Sign_Factor;

%%% CHECK Phi_Total & Evol_Total %%%

%Check for New Yield Point or New Break Point


NY_index = find(Phi_Total(NonActive_Band) < -1E-6);
NBP_index = find(Evol_Total(ActiveNoBreak_Band) < -1E-6);

if ~isempty(ActiveNoBreak)
Lambda_Inc_Limit = BP(ActiveNoBreak_Band) - ...
Lambda_Total(ActiveNoBreak_Band);
[Cp,IA,ActiveNoBreak_index] = intersect(ActiveNoBreak,Active);
NBPC_index = find(Lambda_Increment(ActiveNoBreak_index) > ...
Lambda_Inc_Limit);
else
NBPC_index = [];
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 309

if ~isempty(NY_index) | ~isempty(NBP_index) | ~isempty(NBPC_index)

Time_Increment_Accepted = 0 % Time_Increment too much

%%% Estimate New Time_Increment %%%

Time_Increment_limit = 0.99*Time_Increment;

%%% Estimate Time_Increment to Reach New Break Point %%%

if isempty(Time_Increment_BP) == 1
Time_Increment_BP = inf*Sign_Factor;
end;

Factor_ratio_lambda = Lambda_Inc_Limit./...
(Lambda_Increment(ActiveNoBreak_index)/Time_Increment);
Time_Increment_BP_lambda = min(Factor_ratio_lambda);

Time_Increment_BP = [Time_Increment_BP;...
Time_Increment_BP_lambda];
Time_Increment_BP = min(Time_Increment_BP);

%%% Estimate Time_Increment to Reach New Yield Point

Phi_NonActive = (Phi_Total(NonActive_Band) - ...


Phi_Total_old(NonActive_Band))/Time_Increment;
Phi_NotZero_index = find(Phi_NonActive~=0);
Phi_ratio = Phi_Total_old(NonActive_Band...
(Phi_NotZero_index))./-Phi_NonActive(Phi_NotZero_index);

if unbounded == 0
%Forward Solution
index_positive = find(Phi_Total_old(NonActive_Band...
(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index) > 0);
if ~isempty(index_positive)
Time_Increment_YP = min(Phi_ratio(index_positive));
else
Time_Increment_YP = inf;
end;
else
%Snap Back Solution
index_neg = find(Phi_Total_old(NonActive_Band...
(Phi_NotZero_index))./...
-Phi_NonActive(Phi_NotZero_index) < 0);
if ~isempty(index_neg)
Time_Increment_YP = max(Phi_ratio(index_neg));
else
Time_Increment_YP = inf;
end;
end;

clear Phi_NonActive Phi_NotZero_index index_positive


clear Phi_ratio index_neg

%%% Get new Time_Increment %%%

Time_Increment_limit
Time_Increment_BP
Time_Increment_YP

Time_Increment = [Time_Increment_limit, Time_Increment_BP,...


Time_Increment_YP];
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 310

Time_Increment = min(Time_Increment)

if Time_Increment < 1e-10


disp('Time_Increment < 1e-10');
disp('1. Continue');
disp('0. Exit');
clear m_choice
m_choice = input('Enter your choice (1/0):');

if m_choice == 1
Time_Increment = input('input Time_Increment:');
end;

if m_choice == 0
disp('Time_Increment < 1e-10');
break;
end;
end;
clear Time_Increment_limit Time_Increment_BP Time_Increment_YP

%%%%%%%%% End of Estimating New Time_Increment %%%%%%%%%%

%%% Restore Old Values of Main Parameters %%%

Active = Active_BeforeAssemble;
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

NonActive = pindex';
[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB CNA INA;

UnLoadSet_Total = UnLoadSet_Total_old;
Phi_Total = Phi_Total_old;
Evol_Total = Evol_Total_old;
else

Time_Increment_Accepted = 1
icount_rate

%%% Determine New Active %%%

PhiNonActive_zero_index = find(Phi_Total(NonActive_Band) <...


1E-6 & Phi_Total(NonActive_Band) > -1E-6);

if length(PhiNonActive_zero_index) > 1;
disp('Multi-Yielding occurs !')
pause;
end;

if ~isempty(PhiNonActive_zero_index)

%Get New Active and lenYield


NewActive_Band = NonActive_Band(PhiNonActive_zero_index);
disp(' New Active Set');
NewActive = pindex(NewActive_Band)'
if ~isempty(NewActive)
lenYield = length(NewActive);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 311

%Update Active and Active_Band


Active = unique([Active;NewActive]);
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

%Update NonActive and NonActive_Band


NonActive = pindex';
if isempty(Active) == 0
[CNA,INA,IA] = intersect(NonActive,Active);
NonActive(INA) = [];
end;
[Cp,IA,IB] = intersect(NonActive,pindex');
NonActive_Band = IB;
clear Cp IA IB;
end;

%%% Determine New Break Point %%%

Evol_zero_index = find(Evol_Total(ActiveNoBreak_Band) <...


1E-6 & Evol_Total(ActiveNoBreak_Band) > -1E-6);
if length(Evol_zero_index) > 1;
disp('Multi-BP occurs !')
length(Evol_zero_index)
pause;
end;

if ~isempty(ActiveNoBreak)
critical_disp_index = find(abs(Lambda_Increment...
(ActiveNoBreak_index) - Lambda_Inc_Limit) < 1e-6);
else
critical_disp_index = [];
end;

if length(critical_disp_index) > 1;
disp('Multi-BP occurs !')
length(critical_disp_index)
pause;
end;

NewBP_Band1 = []; NewBP_Band2 = [];

%Get New Break Points and lenBreak


if ~isempty(Evol_zero_index)
NewBP_Band1 = ActiveNoBreak_Band(Evol_zero_index);
if size(NewBP_Band1,1) ~= 1
NewBP_Band1 = NewBP_Band1';
end;
end;

if ~isempty(critical_disp_index)
NewBP_Band2 = ActiveNoBreak_Band(critical_disp_index);
Evol_Total(ActiveNoBreak_Band(critical_disp_index)) = 0;
if size(NewBP_Band2,1) ~= 1
NewBP_Band2 = NewBP_Band2';
end;
end;

NewBP_Band = unique([NewBP_Band1,NewBP_Band2]);
clear NewBP_Band1 NewBP_Band2
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 312

if ~isempty(NewBP_Band)
NewBP = pindex(NewBP_Band)'
lenBreak = length(NewBP);

%Update BreakPointSet
BreakPointSet = unique([BreakPointSet;NewBP]);

%Update R
if shear <= 4
R(NewBP_Band) = 0;
else
R(NewBP_Band) = Residual(NewBP_Band);
end;

%Update H2
if shear < 3
H2(NewBP) = 0;
else
if shear == 3
for i = 1:size(NewBP,1),
H2(NewBP(i),NewBP(i)) = 0;
size(NewBP)

temp1 = NewBP+ones(size(NewBP));
temp2 = temp1+ones(size(NewBP));
H2(NewBP(i),temp1(i)) = 0;
H2(NewBP(i),temp2(i)) = 0;
end;
else
for i = 1:size(NewBP,1),
H2(NewBP(i),NewBP(i)) = 0;

clear temp1;
temp1 = NewBP+ones(size(NewBP));
temp2 = temp1+ones(size(NewBP));
temp3 = NewBP-ones(size(NewBP));
temp4 = temp3-ones(size(NewBP));

H2(NewBP(i),temp1(i)) = 0;
H2(NewBP(i),temp2(i)) = 0;
H2(NewBP(i),temp3(i)) = 0;
H2(temp1(i),NewBP(i)) = 0;
H2(temp2(i),NewBP(i)) = 0;
H2(temp3(i),NewBP(i)) = 0;
if temp4(i) ~= 0
H2(NewBP(i),temp4(i)) = 0;
H2(temp4(i),NewBP(i)) = 0;
end;
end;
clear temp1 temp2 temp3 temp4;
end;
end; % Update H2
end;

if ~isempty(PhiNonActive_zero_index) & ~isempty(NewBP_Band)


disp('Both new active and BP occur simultaneously');
pause;
end;
end;

clear NY_index NBP_index PhiNonActive_zero_index


clear Evol_zero_index
clear Lambda_Inc_Limit NBPC_index critical_disp_index
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 313

clear NewBP NewBP_Band ActiveNoBreak_index

if icount_rate > 1000


disp(' Time Convergence Not Achieved')
pause(5);
break;
end;
end; %while Time_Increment_Accepted == 0

clear UnLoadSet_Total_old Active_BeforeAssemble


clear Phi_Total_old Evol_Total_old

if m_choice == 0 | icount_rate > 1000


break;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% POST-PROCESSING UNDER SUSTAINED LOADING %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

disp (' ------- Post Processing (Time Effect) --------')

if Time_Increment == inf
disp('Time Increment = inf');
break;
end;

Lambda_Total(Active_Band_Old) = Lambda_Total(Active_Band_Old)...
+ Sign_Factor*Lambda_Increment;

disp(' Lambda Total Active')


Lambda_Total(Active_Band_Old)

Lambda_rate = zeros(size_pindex,1);
Lambda_rate(Active_Band_Old) = Lambda_Increment/Time_Increment;

Lambda_Inc_Max = max(Lambda_Increment); % maximum lambda increment

%%% Check Lambda %%%

Lambda_Index = find(Lambda_Total(Active_Band_Old) < 0 & ...


Lambda_Total(Active_Band_Old) > -1E-20);

if isempty(Lambda_Index) == 0
disp(' Error Lambda Less Than Zero');
j
j_sustained
pause;
end;

%%%

j = j+1;

disp(' Time Increment');


Time_Increment
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 314

if nonassociated == 0
qp_increment = N2(:,ActiveOld)*Sign_Factor*Lambda_Increment;
else
qp_increment = V2(:,ActiveOld)*Sign_Factor*Lambda_Increment;
end;

%%% Store & Clear Values of Variables to Save Memory %%%

save maintime2 q u Lambda_Total Phi_Total Evol_Total H2 BP2


save postprocess2 R2

clear H M_path_rate_time M_path_time q_path_rate_time q_path_time


clear VecIncidence VecPotential XY_Midpoint
clear N2 V2 pindex
clear Load VecGeneralised VecYield Lemke_Use BT
clear A_ele ue_unit Free
clear Ele_Mat R2c u_j1 tri XYvertices
clear jsave jplot jdisplacement
clear Incidence
clear q u uc ue up Lambda_Total Phi_Total Evol_Total H2 L2 LC2 BP2
clear R2
clear Z22

%%% Calculate qe_increment & qc_increment %%%

qpterm = qp_increment + creep_coef_increment*qe;


qe_inc_1 = AS*qpterm;
qe_inc_2 = A2(fdof,:)'*(Kuu(fdof,fdof)\qe_inc_1) - qpterm;
qe_increment_old = (1+creep_coef).\qe_inc_2;
qe_increment = qe_increment_old;
clear qe_inc_1 qe_inc_2 qpterm
criterion = 1;
icount_time = 1;

while criterion >= 1e-6 | icount_time > 1000


icount_time = icount_time+1;
qe_inc = (1+creep_coef).\AS*creep_coef*qe_increment;
qe_increment_new = qe_increment_old + ...
A2(fdof,:)'*(Kuu(fdof,fdof)\qe_inc);

criterion = norm(qe_increment)\...
norm(qe_increment_new - qe_increment);

qe_increment = qe_increment_new;
end;

if icount_time > 1000


disp(' Convergence Not Achieved')
pause(5);
break;
end;

criterion
clear qe_increment_old icount_time qe_inc qe_increment_new criterion

qc_increment = creep_coef*qe_increment + creep_coef_increment*qe;

%%% Calculate Other Variables %%%

ASqp_inc = AS*qp_increment;
Qp_increment = SAT*(Kuu(fdof,fdof)\ASqp_inc) - S2*qp_increment;
ASqc_inc = AS*qc_increment;
Qc_increment = SAT*(Kuu(fdof,fdof)\ASqc_inc) - S2*qc_increment;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 315

Q_increment = Qc_increment + Qp_increment;


clear ASqp_inc ASqc_inc Qc_increment Qp_increment

%%% Load Parameters %%%

load ViVpMidR %maintime1


load maintime2
load EleTriVer %postprocess1
load JsJpJd %postprocess1a
load postprocess2
load Inc %PostDeflec1

%%%

up_increment = 0*u;
[C,IA,IB] = intersect(ActiveBeforeUnLoad(UnLoadSet),ActiveWithBreaks);
R2(:,IB) = [];
up_increment(fdof) = (R2*Sign_Factor*Lambda_Increment)';
uc_increment = 0*u;
ASqc = AS*qc_increment;
uc_increment(fdof) = (Kuu(fdof,fdof)\(ASqc))';
u_increment = up_increment + uc_increment;
clear ASqc up_increment uc_increment

creep_coef = creep_coef + creep_coef_increment % creep coefficient

disp(' Total Time');


t = t + Time_Increment % time

creep_coef_check = creep_coef_inf*(t_age^(-1/3)+0.05)*(t/86400)^(1/8);

qe = qe + qe_increment; % elastic generalised displacement


qp = qp + qp_increment; % plastic generalised displacement
qc = qc + qc_increment; % creep generalised displacement

u = u + u_increment; % displacement

q = A2'*u'; % generalised displacement

Q = Q + Q_increment; % generalised force


clear u_increment Q_increment

pdisplay(j) = Load_Factor
udisplay(j) = u(control_free)

t_sustained = t-t_ref; % time since load is sustained

%%% Write Data to solvectime.txt %%%

fprintf(fidsol, ',%d', Load_Factor);


fprintf(fidsol, ',%d', forward_marker);
fprintf(fidsol, ',%d', snap_marker);
fprintf(fidsol, ',%d', p_num);
fprintf(fidsol, ',%d', lenActive);
fprintf(fidsol, ',%d', lenBreakSet);
fprintf(fidsol, ',%d', lenYield);
fprintf(fidsol, ',%d', lenBreak);
fprintf(fidsol, ',%d', lenUnLoad);
fprintf(fidsol, ',%.15e', t);
fprintf(fidsol, ',%.15e', t_sustained);
fprintf(fidsol, ',%.15e', creep_coef);
fprintf(fidsol, ',%.15e', creep_coef_check);
fprintf(fidsol, ',%d', j_sustained);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 316

fprintf(fidsol, ',%.15e', Lambda_Inc_Max);


fprintf(fidsol, '\n');
clear lenActive lenYield lenBreak lenUnLoad;

%%%

j_sustained = j_sustained + 1;

u_t_display(j_sustained) = abs(udisplay(j));
tdisplay(j_sustained) = t - t_ref;

if forward_marker > 1 | snap_marker > 0


Bi_Size = size(Bifurcation_u)
Bifurcation_u(Bi_Size+1) = udisplay(j);
Bifurcation_p(Bi_Size+1) = pdisplay(j);
end;

%%% Plot Figure %%%

if j_sustained == 2
u_t_display_max = 1.5*max(u_t_display);
u_t_display_min = 0;
t_display_max = 1.5*max(tdisplay);
t_display_min = 1.5*min(tdisplay);
end;

if ismember(j_sustained,jplot) | j_sustained == num_time | ...


exist('stop.m', 'file') | BP_Exceeded == 1

disp('Plot Figures');
close all;

hf_1 = figure('units', 'normalized', 'position', ...


[0.01, 0.3, 0.98, 0.6]);
ha_1 = axes('units', 'normalized', 'position', ...
[0.07, 0.12, 0.42, 0.8], 'visible', 'on'); % for mesh
ha_2 = axes('units', 'normalized', 'position', ...
[0.55, 0.12, 0.42, 0.8], 'visible', 'on'); % for u-p display
set(hf_1, 'currentaxes',ha_1);
hold on;

eledraw(XYvertices, tri, Ele_Mat, 1);


xlabel('X'); ylabel('Y');
hold on

plot(XY_Midpoint(B_Supports,1),...
XY_Midpoint(B_Supports,2),'rsquare')
plot(XY_Midpoint(load_nodes,1),XY_Midpoint(load_nodes,2),'gd')
plot(XY_Midpoint(control_node,1),XY_Midpoint(control_node,2),'kh')
plot(XY_Midpoint(VecIncidence(Initial_Active),1),...
XY_Midpoint(VecIncidence(Initial_Active),2),'kp');

Active_NonBreak = Active;
IVec_ones = ismember(Active,BreakPointSet);
IVec = find(IVec_ones==1);
Active_NonBreak(IVec) = [];
IActive_Tension = find(VecPotential(Active_NonBreak)==1);
Active_Tension = Active_NonBreak(IActive_Tension);

IActive_Shear1 = find(VecPotential(Active_NonBreak)==2);
IActive_Shear2 = find(VecPotential(Active_NonBreak)==3);
IActive_Shear = unique([IActive_Shear1,IActive_Shear2]);
Active_Shear = Active_NonBreak(IActive_Shear);
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 317

plot(XY_Midpoint(VecIncidence(Active_Tension),1),...
XY_Midpoint(VecIncidence(Active_Tension),2),'rv')
plot(XY_Midpoint(VecIncidence(Active_Shear),1),...
XY_Midpoint(VecIncidence(Active_Shear),2),'b^')
plot(XY_Midpoint(VecIncidence(BreakPointSet),1),...
XY_Midpoint(VecIncidence(BreakPointSet),2),'bo');
plot(XY_Midpoint(VecIncidence(UnLoadSet_Total),1),...
XY_Midpoint(VecIncidence(UnLoadSet_Total),2),'r.');

text_title = ['Event ' num2str(j-1) ' : u=' num2str(udisplay(j))];


text_title = [text_title ' : p=' num2str(pdisplay(j))];
text_title = [text_title ' : jtime=' num2str(j_sustained)];
text_title = [text_title ' : t(sustained)=' ...
num2str(tdisplay(j_sustained))];
title(text_title);
text_save = ['Event_' num2str(j-1)];
set(hf_1, 'currentaxes', ha_2);
hold on;

if max(u_t_display) > u_t_display_max,


u_t_display_max = 1.5*max(u_t_display);
end;

if max(tdisplay) > t_display_max,


t_display_max = 1.5*max(tdisplay);
end;

if min(tdisplay) < t_display_min,


t_display_min = 1.5*min(tdisplay);
end;

axis([t_display_min, t_display_max, u_t_display_min, ...


u_t_display_max]);
plot(tdisplay, u_t_display, 'b-o');
hold on;

if ~isempty(Bifurcation_u)
plot(Bifurcation_u,Bifurcation_p, 'rh');
end;

xlabel('t(sustained)'); ylabel('abs(u)');

text_title = ['%CLoad= ' num2str(creep_load_percent)];


text_title = [text_title ' : creep coef=' num2str(creep_coef)];
title(text_title);
pause(0.1)

if ismember(j_sustained,jsave) | j == num_time | ...


exist('stop.m', 'file') | BP_Exceeded == 1
hgsave(hf_1, text_save);
end;
end;

%%% Calculate Deflection History & Interface Force History %%%

if ~isempty( dhistory_dofID ) % call a written function


History_Deflection_creep_rate(j-1, dhistory_dofID, ...
pdisplay, udisplay, u, t);
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 318

if ~isempty(qhistory_S2row) % call a written function


History_Interface_creep_rate(j-1, qhistory_midpoints, ...
qhistory_S2row, Incidence, XY_Midpoint, Q, q, qe, qp, qc, t)
end;

%%%

creep_coef = creep_coef_check;

udisplay_new = udisplay(j);
udisplay_old = udisplay(j-1);
udisplay_increment = udisplay_new - udisplay_old;

if creep_coef >= creep_coef_inf


if abs(udisplay_increment) < 1e-16
disp ('!!! Creep Limit is reached !!! ')
udisplay_old
udisplay_new
udisplay_increment
break;
end;
end;
clear udisplay_new udisplay_old

disp (' -------- End Current Loop (Time Effect) ---------')

if BP_Exceeded == 1;
disp('BP_Exceeded');
break;
end;

if exist('stop.m', 'file') | j_sustained == num_factors


disp(' ');
disp('-------------------------------------');
disp('- Current Number factors -');
disp(['- ', num2str(num_factors)]);
disp('-------------------------------------');
clear m_choice
m_choice = input('Enter new number factors(0 for no change):');

if m_choice > 0
num_factors = m_choice;
end;

disp('-------------------------------------');
disp('- Current Restart Number -');
disp(['- ', num2str(Restart_Number)]);
disp('-------------------------------------');
m_Restart = input('Enter new Restart (0 for no change):');

if m_Restart > 0
Restart_Number = m_Restart;
end;
end;
end; % while j_sustained <= num_time,

%%%%%%%%%%% END OF MAIN WHILE LOOP UNDER SUSTAINED LOADING %%%%%%%%%%%

end; % if j_sustained ~= 0

if exist('Bifurcation_p','var') == 1 % if this variable exist


dlmwrite('bifurcation_u_p.txt', [Bifurcation_u', Bifurcation_p'],',');
end;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 319

fclose(fidsol); % close solvectime.txt

%%% CLEAR VARIABLES %%%

clear N2 V2 pindex
clear Kuu Load S2 VecGeneralised VecYield Lemke_Use BT
clear A_ele ue_unit Free
clear R2c u_j1 fdof tri XYvertices
clear jsave jplot jdisplacement
clear Incidence
clear q uc up Lambda_Total Phi_Total Evol_Total H2 L2 LC2 BP2
clear R2
clear Qe_unit

%%% LOAD PARAMETERS %%%

load AeFree %deflection1


load Inc %PostDeflec1

disp('--- END LOOP ---');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Action_Assemble_time.m %%%
%%% CALLED BY Solver_fracture_time.m %%%
%%% TO FORM LCP %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Determine Members with Active Potentials %%%

VecMember = ismember(VecYield,Active);
[iAction,jAction] = find(VecMember==1);
iActions = unique(iAction);
pActions_Matrix = VecGeneralised(iActions,:);
size1 = size(pActions_Matrix,1);
size2 = size(pActions_Matrix,2);
pActions = reshape(pActions_Matrix',1,size1*size2);

%%% Calculate R2 = K\ASN or K\KSV %%%


% Each row of R2 corresponds to a freedom number given in fdof while
% the columns correspond to potential numbering given in pindex

clear R2;
if nonassociated == 0
R2 = sparse(Kuu(fdof,fdof)\(A2(fdof,pActions)*...
S2(pActions,pActions)*N2(pActions,Active)));
else
R2 = sparse(Kuu(fdof,fdof)\(A2(fdof,pActions)*...
S2(pActions,pActions)*V2(pActions,Active)));
end;

%%% Calculate Rr Rloadfree %%%

clear Ir Rr Rloadfree;

Ir = find(fdof==control_free);
Rr = sparse((R2(Ir,:))./(ue_r));
[ytemp,Isort] = sort(load_free_total);
[ytemp2,IIsort] = sort(Isort);
IVec2 = ismember(fdof,load_free_total);
IVecf = find(IVec2==1);
Rloadfree_temp = sparse(R2(IVecf,:));
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 320

Rloadfree = Rloadfree_temp(IIsort,:);
clear IVec2 IVecf ytemp ytemp2 Isort IIsort Rloadfree_temp

%%% Calculate Z_time = N'ZN or N'ZV and Z = SA'(K\AS)-S

Z1 = sparse(BT'*R2);
size1 = size(Z1,1);
size2 = size(Z1,2);
Z2_time = spalloc(size1,size2,1);
pack;
Z2_time = sparse(Z1);
clear Z1 size1 size2;

if nonassociated == 0
Z_time = sparse(Z2_time - N2(pActions,pindex)'*...
(S2(pActions,pActions)*N2(pActions,Active)));
else
Z_time = sparse(Z2_time - N2(pActions,pindex)'*...
(S2(pActions,pActions)*V2(pActions,Active)));
end;
clear Z2_time;

%%% Form H (Softening) & BP Matrices Corresponding to pindex %%%

clear H BP;

if shear < 3
H3 = H2(pindex);
nn = size(H3,1);
for i = 1:nn
H(i,i) = sparse((H3(i)));
end;
clear H3 nn;
else
H = sparse(H2(pindex,pindex));
end;

BP = BP2(pindex)';

%%% Form LCP %%%


% H (Active_Band, Active_Band)
% Z_time (Active_Band, Active)

creep_coef_increment = creep_coef_inf*( t_age^(-1/3)+0.05 )*...


0.125/(t/86400)^(7/8)*Time_Increment/86400; % short-term creep
ASqe = AS*qe;
NTZqe = N2(:,pindex)'*SAT*(Kuu(fdof,fdof)\ASqe) - N2(:,pindex)'*S2*qe;
NTQ1 = N2(:,pindex)'*Q;

Factor_Increment = abs(Displacement_rate/ue_r)*Time_Increment;

NTQRr = P_unit*Rr; % N'Q*Rr

Lr_vec = Lr*ones(size(pindex))';
Lbb = Lambda_rate./sqrt(Lr_vec.*Lr_vec + Lambda_rate.*Lambda_rate);
Lb_term = k0*R.*(asinh(Lambda_rate./Lr) - Lbb) - ...
k0*R.*(asinh(Lambda_rate./Lr) - Lbb).*(Lambda_Total./BP);

L_prime = k0*(asinh(Lambda_rate./Lr) - Lbb);


L_prime = diag(L_prime); %form diag. matrix
LH = L_prime*H;
clear L_prime
clear Lbb
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 321

L_term = k0*R./sqrt(Lr_vec.*Lr_vec + Lambda_rate.*Lambda_rate) - ...


k0*R./sqrt(Lr_vec.*Lr_vec+Lambda_rate.*Lambda_rate).*(Lambda_Total./BP);
L_term = diag(L_term); %form diag. matrix

M_path_rate_time = sparse(H(:,Active_Band) - Z_time/(1+creep_coef) +...


L_term(:,Active_Band)/Time_Increment + NTQRr/(1+creep_coef) + ...
LH(:,Active_Band));
M_path_time = full(H(Active_Band,Active_Band) - ...
Z_time(Active_Band,:)/(1+creep_coef) + ...
L_term(Active_Band,Active_Band)/Time_Increment + ...
NTQRr(Active_Band,:)/(1+creep_coef) + LH(Active_Band,Active_Band));

q_path_rate_time = -NTQ1 + R + sparse(H(:,Active_Band)*...


Lambda_Total(Active_Band)) + (creep_coef_increment*Load_Factor - ...
Factor_Increment)*P_unit/(1+creep_coef) - ...
creep_coef_increment/(1+creep_coef)*NTZqe + Lb_term;

clear ASqe NTZqe NTQ1 Lr_vec

q_path_time = q_path_rate_time(Active_Band);

sizeq = size(q_path_time);
sizeq1 = sizeq(1);

%%% Exclude Break Point Set %%%

if ~isempty(BreakPointSet)
ActiveWithoutBreak = Active;
[Cintersect,IA,IB] = intersect(Active,BreakPointSet);
ActiveWithoutBreak(IA) = []; % active set excluding break point set
B_index = IA; % for break point set
clear Cintersect IA IB;

[Cp,IA,IB] = intersect(ActiveWithoutBreak,Active);
A_index = IB; % for active set
clear Cp IA IB;

[Cp,IA,IB] = intersect(ActiveWithoutBreak,pindex');
Active_BandWithoutBreak = IB;
clear Cp IA IB;

[Cp,IA,IB] = intersect(BreakPointSet,pindex');
BreakPointSet_Band = IB;
clear Cp IA IB;

%%% Re-form M_path_time Matrix Due to Break Point Set %%%

clear M_path_time;

Waa = full(H(Active_BandWithoutBreak,Active_BandWithoutBreak) - ...


Z_time(Active_BandWithoutBreak,A_index)/(1+creep_coef) + ...
L_term(Active_BandWithoutBreak,Active_BandWithoutBreak)/...
Time_Increment + NTQRr(Active_BandWithoutBreak,A_index)/...
(1+creep_coef) + LH(Active_BandWithoutBreak,Active_BandWithoutBreak));
Wab = full(H(Active_BandWithoutBreak,BreakPointSet_Band) - ...
Z_time(Active_BandWithoutBreak,B_index)/(1+creep_coef) + ...
L_term(Active_BandWithoutBreak,BreakPointSet_Band)/...
Time_Increment + NTQRr(Active_BandWithoutBreak,B_index)/...
(1+creep_coef) + LH(Active_BandWithoutBreak,BreakPointSet_Band));
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 322

Wbb = full(H(BreakPointSet_Band,BreakPointSet_Band) - ...


Z_time(BreakPointSet_Band,B_index)/(1+creep_coef) + ...
L_term(BreakPointSet_Band,BreakPointSet_Band)/Time_Increment + ...
NTQRr(BreakPointSet_Band,B_index)/(1+creep_coef) + ...
LH(BreakPointSet_Band,BreakPointSet_Band));
Wba = full(H(BreakPointSet_Band,Active_BandWithoutBreak) - ...
Z_time(BreakPointSet_Band,A_index)/(1+creep_coef) + ...
L_term(BreakPointSet_Band,Active_BandWithoutBreak)/Time_Increment+ ...
NTQRr(BreakPointSet_Band,A_index)/(1+creep_coef) + ...
LH(BreakPointSet_Band,Active_BandWithoutBreak));

M_path_time = Waa - Wab*(Wbb\Wba);

%%% Calculate q_break_time & Z_break_time %%%

q_break_time = -Wbb\q_path_time(B_index);
Z_break_time = Wbb\Wba;

%%% Update Active Set Due to Break Point Set %%%

Active = ActiveWithoutBreak;
[Cp,IA,IB] = intersect(Active,pindex');
Active_Band = IB;
clear Cp IA IB;

%%% Re-form q_path_time Vector Due to Break Point Set %%%

if ~isempty(A_index)
q_path_time2 = q_path_time(A_index)-Wab*(Wbb\q_path_time(B_index));
else
q_path_time2 = -Wab*(Wbb\q_path_time(B_index));
end;
clear q_path_time;

q_path_time = q_path_time2;

%%% Update Rr Rloadfree Due to Break Point Set

RrOld = Rr;
RloadfreeOld = Rloadfree;
RrBreak = Rr(:,B_index);
Rr(:,B_index) = [];
RloadfreeBreak = Rloadfree(:,B_index);
Rloadfree(:,B_index) = [];

%%%

clear q_path_time2;
sizeq = size(q_path_time);
sizeq1 = sizeq(1);
end;

save Z_time Z_time


clear Z_time VecMember sizeq NTQRr
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 323

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Action_Assemble_creep.m %%%
%%% CALLED BY Solver_fracture_time.m %%%
%%% TO FORM LCP UNDER SUSTAINED LOADING %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Determine Members with Active Potentials %%%

VecMember = ismember(VecYield,Active);
[iAction,jAction] = find(VecMember==1);
iActions = unique(iAction);
pActions_Matrix = VecGeneralised(iActions,:);
size1 = size(pActions_Matrix,1);
size2 = size(pActions_Matrix,2);
pActions = reshape(pActions_Matrix',1,size1*size2);

%%% Calculate R2 = K\ASN or K\KSV %%%


% Each row of R2 corresponds to a freedom number given in fdof while
% the columns correspond to potential numbering given in pindex

clear R2;
if nonassociated == 0
R2 = sparse(Kuu(fdof,fdof)\(A2(fdof,pActions)*...
S2(pActions,pActions)*N2(pActions,Active)));
else
R2 = sparse(Kuu(fdof,fdof)\(A2(fdof,pActions)*...
S2(pActions,pActions)*V2(pActions,Active)));
end;

%%% Calculate Rr Rloadfree %%%

clear Ir Rr Rloadfree;

Ir = find(fdof==control_free);
Rr = sparse((R2(Ir,:))./(ue_r));
[ytemp,Isort] = sort(load_free_total);
[ytemp2,IIsort] = sort(Isort);
IVec2 = ismember(fdof,load_free_total);
IVecf = find(IVec2==1);
Rloadfree_temp = sparse(R2(IVecf,:));
Rloadfree = Rloadfree_temp(IIsort,:);
clear IVec2 IVecf ytemp ytemp2 Isort IIsort Rloadfree_temp

%%% Calculate Z_time = N'ZN or N'ZV and Z = SA'(K\AS)-S

Z1 = sparse(BT'*R2);
size1 = size(Z1,1);
size2 = size(Z1,2);
Z2_time = spalloc(size1,size2,1);
pack;
Z2_time = sparse(Z1);
clear Z1 size1 size2;

if nonassociated == 0
Z_time = sparse(Z2_time - N2(pActions,pindex)'*...
(S2(pActions,pActions)*N2(pActions,Active)));
else
Z_time = sparse(Z2_time - N2(pActions,pindex)'*...
(S2(pActions,pActions)*V2(pActions,Active)));
end;
clear Z2_time;
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 324

%%% Form H (Softening) & BP Matrices Corresponding to pindex %%%

clear H BP;

if shear < 3
H3 = H2(pindex);
nn = size(H3,1);
for i = 1:nn
H(i,i) = sparse((H3(i)));
end;
clear H3 nn;
else
H = sparse(H2(pindex,pindex));
end;

BP = BP2(pindex)';

%%% Form LCP %%%


% H (Active_Band, Active_Band)
% Z_time (Active_Band, Active)

if t == 0
creep_coef_increment = creep_coef_inf*( t_age^(-1/3)+0.05 )*...
(Time_Increment/86400)^(1/8); % short-term creep
else
creep_coef_increment = creep_coef_inf*( t_age^(-1/3)+0.05 )*...
0.125/(t/86400)^(7/8)*Time_Increment/86400; % short-term creep
end

ASqe = AS*qe;
NTZqe = N2(:,pindex)'*SAT*(Kuu(fdof,fdof)\ASqe) - N2(:,pindex)'*S2*qe;
NTQ1 = N2(:,pindex)'*Q;

Lr_vec = Lr*ones(size(pindex))';

if t == 0
Lb_term = zeros(size_pindex,1);
Lambda_rate = zeros(size_pindex,1);
LH = zeros(size_pindex,size_pindex);
else
Lbb = Lambda_rate./sqrt(Lr_vec.*Lr_vec + Lambda_rate.*Lambda_rate);
Lb_term = k0*R.*(asinh(Lambda_rate./Lr) - Lbb) - ...
k0*R.*(asinh(Lambda_rate./Lr) - Lbb).*(Lambda_Total./BP);

L_prime = k0*(asinh(Lambda_rate./Lr) - Lbb);


L_prime = diag(L_prime); %form diag. matrix
LH = L_prime*H;
clear L_prime
clear Lbb
end

L_term = k0*R./sqrt(Lr_vec.*Lr_vec + Lambda_rate.*Lambda_rate) - ...


k0*R./sqrt(Lr_vec.*Lr_vec + Lambda_rate.*Lambda_rate).*(Lambda_Total./BP);
L_term = diag(L_term); %form diag. matrix

M_path_rate_time = sparse(H(:,Active_Band) - Z_time/(1+creep_coef) + ...


L_term(:,Active_Band)/Time_Increment + LH(:,Active_Band));
M_path_time = full(H(Active_Band,Active_Band) - ...
Z_time(Active_Band,:)/(1+creep_coef) + ...
L_term(Active_Band,Active_Band)/Time_Increment + ...
LH(Active_Band,Active_Band));
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 325

q_path_rate_time = -creep_coef_increment/(1+creep_coef)*NTZqe - NTQ1...


+ R + sparse(H(:,Active_Band)*Lambda_Total(Active_Band)) + Lb_term;

clear ASqe NTZqe NTQ1

q_path_time = q_path_rate_time(Active_Band);

sizeq = size(q_path_time);
sizeq1 = sizeq(1);

%%% Exclude Break Point Set %%%

if ~isempty(BreakPointSet)
ActiveWithoutBreak = Active;
[Cintersect,IA,IB] = intersect(Active,BreakPointSet);
ActiveWithoutBreak(IA) = []; % active set excluding break point set
B_index = IA; % for break point set
clear Cintersect IA IB;

[Cp,IA,IB] = intersect(ActiveWithoutBreak,Active);
A_index = IB; % for active set
clear Cp IA IB;

[Cp,IA,IB] = intersect(ActiveWithoutBreak,pindex');
Active_BandWithoutBreak = IB;
clear Cp IA IB;

[Cp,IA,IB] = intersect(BreakPointSet,pindex');
BreakPointSet_Band = IB;
clear Cp IA IB;

%%% Re-form M_path_time Matrix Due to Break Point Set %%%

clear M_path_time;

Waa = full(H(Active_BandWithoutBreak,Active_BandWithoutBreak) - ...


Z_time(Active_BandWithoutBreak,A_index)/(1+creep_coef) + ...
L_term(Active_BandWithoutBreak,Active_BandWithoutBreak)/...
Time_Increment + LH(Active_BandWithoutBreak,Active_BandWithoutBreak));
Wab = full(H(Active_BandWithoutBreak,BreakPointSet_Band) - ...
Z_time(Active_BandWithoutBreak,B_index)/(1+creep_coef) + ...
L_term(Active_BandWithoutBreak,BreakPointSet_Band)/...
Time_Increment + LH(Active_BandWithoutBreak,BreakPointSet_Band));
Wbb = full(H(BreakPointSet_Band,BreakPointSet_Band) - ...
Z_time(BreakPointSet_Band,B_index)/(1+creep_coef) + ...
L_term(BreakPointSet_Band,BreakPointSet_Band)/Time_Increment + ...
LH(BreakPointSet_Band,BreakPointSet_Band));
Wba = full(H(BreakPointSet_Band,Active_BandWithoutBreak) - ...
Z_time(BreakPointSet_Band,A_index)/(1+creep_coef) + ...
L_term(BreakPointSet_Band,Active_BandWithoutBreak)/...
Time_Increment + LH(BreakPointSet_Band,Active_BandWithoutBreak));

M_path_time = Waa - Wab*(Wbb\Wba);

%%% Calculate q_break_time & Z_break_time %%%

q_break_time = -Wbb\q_path_time(B_index);
Z_break_time = Wbb\Wba;

%%% Update Active Set Due to Break Point Set %%%

Active = ActiveWithoutBreak;
[Cp,IA,IB] = intersect(Active,pindex');
APPENDIX B FLOW CHARTS AND MAIN MATLAB CODES 326

Active_Band = IB;
clear Cp IA IB;

%%% Re-form q_path_time Vector Due to Break Point Set %%%

if ~isempty(A_index)
q_path_time2 = q_path_time(A_index) - Wab*(Wbb\q_path_time(B_index));
else
q_path_time2 = -Wab*(Wbb\q_path_time(B_index));
end
clear q_path_time;

q_path_time = q_path_time2;

%%% Update Rr Rloadfree Due to Break Point Set

RrOld = Rr;
RloadfreeOld = Rloadfree;
RrBreak = Rr(:,B_index);
Rr(:,B_index) = [];
RloadfreeBreak = Rloadfree(:,B_index);
Rloadfree(:,B_index) = [];

%%%

clear q_path_time2;
sizeq = size(q_path_time);
sizeq1 = sizeq(1);
end;

clear Z_time VecMember sizeq


REFERENCES 327

REFERENCES

Abdou, L., Ami Saada, R., Meftah, F., and Mebarki, A. (2006). "Experimental

investigations of the joint-mortar behaviour." Mechanics Research

Communications, 33, 370-384.

Almeida, J. C., Lourenco, P. B., and Barros, J. O. (2002). "Characterization of brick and

brick–mortar interface under uniaxial tension." Proceedings of the 7th

International Seminar on Structural Masonry for Developing Countries, Brazil,

67-76.

Anand, S. C., and Bhatia, N. (1995). "Modeling creep in masonry based on creep of

units and mortar." Proceedings of Structures Congress XIII: Restructuring --

America and beyond, Boston, Massachusetts, 397-400.

AS/NZS-4456.4 (2003) - Australian/New Zealand standard: Determining compressive

strength of masonry units.

ASTM-C-109 (1988) - American Society for Testing and Materials: Test method for

compressive strength of hydraulic cement mortar.

ASTM-C-270 (1989) - American Society for Testing and Materials: Standard

specification for mortar for unit masonry.

Attard, M. M., Chaimoon, K., and Nappi, A. (2004). "Fracture of unreinforced masonry

walls under shear." Proceedings CDROM of the 6th World Congress on

Computational Mechanics (WCCM VI) in conjunction with the 2nd Asian-


REFERENCES 328

Pacific Congress on Computational Mechanics (APCOM'04), Beijing, China,

4341-4346.

Attard, M. M., Nappi, A., and Tin-Loi, F. (2007). "Modeling fracture in masonry."

ASCE Journal of Structural Engineering, Accepted for Publication.

Attard, M. M., and Tin-Loi, F. (1999). "Fracture simulation using a discrete triangular

element." Proceedings of the 16th Australasian Conference on the Mechanics of

Structures and Materials (ACMSM16), Sydney, Australia, 11-16.

Attard, M. M., and Tin-Loi, F. (2005). "Numerical simulation of quasibrittle fracture in

concrete." Engineering Fracture Mechanics, 72, 387-411.

Barenblatt, G. I. (1962). "The mathematical theory of equilibrium of cracks in brittle

fracture." Advances in Applied Mechanics, 7, 55-129.

Barpi, F., Ferrara, G., Imperato, L., and Valente, S. (1999). "Lifetime of concrete dam

models under constant loads " Materials and Structures, 32(216), 103-111.

Barpi, F., and Valente, S. (1998). "Crack propagation under constant load: Constitutive

laws for the process zone." Proceedings of the Conference on Computational

Modelling of Concrete Structures Austria, 285-290.

Barpi, F., and Valente, S. (2000). "Numerical simulation of prenotched gravity dam

models." Journal of Engineering Mechanics, 126(6), 611-619.

Barpi, F., and Valente, S. (2002). "Fuzzy parameters analysis of time-dependent fracture

of concrete dam models." International Journal for Numerical and Methods in

Geomechanics, 26, 1005-1027.


REFERENCES 329

Barpi, F., and Valente, S. (2003a). "Creep and fracture in concrete: A fractional order

rate approach." Engineering Fracture Mechanics, 70(5), 611-623.

Barpi, F., and Valente, S. (2003b). "Long time behaviour of concrete: Creep, fracture

and size effects." Proceedings of the Conference on Computational Modelling of

Concrete Structures, 373-379.

Barpi, F., and Valente, S. (2004). "A fractional order rate approach for modeling

concrete structures subjected to creep and fracture." International Journal of

Solids and Structures, 41, 2607-2621.

Barpi, F., and Valente, S. (2005). "Lifetime evaluation of concrete structures under

sustained post-peak loading." Engineering Fracture Mechanics, 72, 2427-2443.

Bazant, Z. P. (1984). "Size effect in blunt fracture: Concrete, rock, metal." Journal of

Engineering Mechanics - ASCE, 110, 518-535.

Bazant, Z. P. (1990). "Rate effect, size effect and nonlocal concepts for fracture of

concrete and other quasi-brittle materials." Proceedings of the Conference on

Mechanisms of Quasi-brittle Materials, 131-153.

Bazant, Z. P. (1993). "Current status and advances in the theory of creep and interaction

with fracture." Proceedings of the 5th International RILEM Symposium on Creep

and Shrinkage of Concrete, U.P.C., Barcelona, 291-307.

Bazant, Z. P., and Chern, J. C. (1985). "Strain softening with creep and exponential

algorithm." Journal of Engineering Mechanics, ASCE, 111, 391-415.


REFERENCES 330

Bazant, Z. P., and Gettu, R. (1992). "Rate effects and load relaxation in static fracture of

concrete." ACI Materials Journal, 89(5), 456-468.

Bazant, Z. P., Gu, W.-H., and Faber, K. T. (1995). "Softening reversal and other effects

of a change in loading rate on fracture of concrete." ACI Materials Journal, 92,

3-9.

Bazant, Z. P., and Jirasek, M. (1992). "R-curve modeling of rate effect in static fracture

and its interference with size effect." Proceedings of the Conference on Fracture

Mechanics of Concrete Structures, 918-923.

Bazant, Z. P., and Jirasek, M. (1993). "R-curve modeling of rate and size effects in

quasibrittle fracture." International Journal of Fracture, 62, 355-373.

Bazant, Z. P., and Kazemi, M. T. (1991). "Size effect on diagonal shear failure of beams

without stirrups." ACI Structural Journal, 88(3), 268-276.

Bazant, Z. P., and Li, Y.-N. (1997). "Cohesive crack with rate-dependent opening and

viscoelasticity: I. Mathematical model and scaling." International Journal of

Fracture, 86(3), 247-265.

Bazant, Z. P., and Oh, B.-H. (1983). "Crack band theory for fracture of concrete."

Materials and Structures, 16, 155-177.

Bazant, Z. P., and Pfeiffer, P. A. (1986). "Shear fracture tests of concrete." RILEM,

Materials and Structures, 19, 111-121.

Bazant, Z. P., and Pfeiffer, P. A. (1987). "Determination of fracture energy from size

effect and brittleness number." ACI Materials Journal, 84(6), 463-480.


REFERENCES 331

Bazant, Z. P., and Planas, J. (1998). Fracture and size effect in concrete and other

quasibrittle materials, Boca Raton : CRC Press.

Bazant, Z. P., and Xiang, Y. (1997). "Crack growth and lifetime of concrete under long

time loading." Journal of Engineering Mechanics, 123(4), 350-358.

Bierwirth, H., Stockl, S., and Kupfer, H. (1993). "Triaxial tests on mortar specimens

taken from bed joints." Proceedings of the 6th North American Masonry

Conference, 995-1007.

Binda, L., Fontana, A., and Frigerio, G. (1988). "Mechanical behaviour of brick

masonries derived from units and mortar characteristics." Proceedings of the 8th

IBMAC on Brick and Block Masonry, 205-216.

Binda, L., Gatti, G., Mangano, G., Poggi, C., and Landriani, G. S. (1992). "The collapse

of the Civic Tower of Pavia: a survey of the materials and structure." Masonry

International, 6(1), 11-20.

Bolzon, G., Maier, G., and Tin-Loi, F. (1995). "Holonomic and nonholonomic

simulations of quasi-brittle fracture: A comparative study of mathematical

programming approaches." Proceedings of the 2nd International Conference on

Fracture Mechanics of Concrete Structures (FRAMCOS-2), 885-898.

Brooks, J. J., and Bingel, P. R. (1994). "Creep of masonry under varying stress."

Proceedings of the 10th International Brick/Block Masonry Conference, 789-

796.
REFERENCES 332

Carpinteri, A., Valente, S., Ferrara, G., and Imperato, L. (1992). "Experimental and

numerical fracture modelling of a gravity dam." Proceedings of the Conference

on Fracture Mechanics of Concrete Structures, 351-360.

Carpinteri, A., Valente, S., and Zhou, Z. P. (1995). "Crack propagation in concrete

specimens subjected to sustained loads." Proceedings of the 2nd International

Conference on Fracture Mechanics of Concrete Structures (FRAMCOS-2),

1315-1328.

CEN (1995) - Eurocode 6: Design of masonry structures.

CEN (2003) - Eurocode 6: Design of masonry structures.

Chaimoon, K., and Attard, M. M. (2004). "Shear-compression fracture in unreinforced

masonry." Proceedings of the 18th Australasian Conference on the Mechanics of

Structures and Materials (ACMSM18), Perth, Australia, 1241-1246.

Chaimoon, K., and Attard, M. M. (2006). "Modeling of unreinforced masonry walls

under shear and compression." Engineering Structures,

doi:10.1016/j.engstruct.2006.10.019.

Cook, R. D., Malkus, D. S., and Plesha, M. E. (1989). Concepts and applications of

finite element analysis John Wiley & Sons Inc.

De Borst, R., Van Den Boogaard, A. H., Sluys, L. J., and Van Der Bogert, P. A. J.

(1993). "Computational issue in time-dependent deformation and fracture in

concrete." Proceedings of the 5th International RILEM Symposium: Creep and

Shrinkage of Concrete, 309-325.


REFERENCES 333

Desai, C. S., and Abel, J. F. (1971). Introduction to the finite element method : A

numerical method for engineering analysis, N.Y. : Van Nostrand Reinhold.

Dhanasekar, M. (1985). "Performance of brick masonry under biaxial loading," PhD

Thesis, University of Newcastle, Australia.

Drucker, D. C., Gibson, R. E., and Henkel, D. J. (1957). "Soil mechanics and work

hardening theories of plasticity." Transactions of the American Society of Civil

Engineers, 338-346.

Drysdale, R. G., Hamid, A. A., and Baker, L. R. (1994). Masonry structures: Behavior

and design, Prentice Hall, New Jersey, USA.

Drysdale, R. G., Vanderkeyl, R., and Hamid, A. A. (1982). "Shear strength of brick

masonry joints." Proceedings of the 5th International Brick Masonry

Conference (VIBMaC), Washington, DC, USA, 106-113.

Dugdale, D. S. (1960). "Yielding of steel sheets containing slits." Journal of the

Mechanics and Physics of Solids, 8, 100-108.

Elices, M., and Planas, J. (1989). "Material models." Proceedings of the Conference on

Fracture Mechanics of Concrete Structures: From Theory to Application, 16-66.

Ganz, H. R., and Thurlimann, B. (1982). "Tests on the biaxial strength of masonry (in

German)." Report No.7502-3, Institute for Structural Statics and Construction

Federal Technical University Zurich, Zurich, Switzerland.

Gettu, R., Bazant, Z. P., and Karr, M. E. (1990). "Fracture properties and brittleness of

high-strength concrete." ACI Materials Journal, 87, 608-618.


REFERENCES 334

Giambanco, G., Rizzo, S., and Spallino, R. (2001). "Numerical analysis of masonry

structures via interface models." Computer Methods in Applied Mechanics and

Engineering, 6494-6511.

Gilbert, R. I. (1988). Time effects in concrete structures, Elsevier Science Publishers.

Grim, C. T. (1975). "Strength and related properties of brick masonry." Journal of

Structural Division, ASCE, 101(1), 217-232.

Guggisberg, R., and Thurlimann, B. (1987). "Experimental determination of masonry

strength parameters (in German)." Report No.7502-5 Institute of Structural

Engineering, ETH Zurich, Zurich, Switzerland.

Guinea, G. V., Hussein, G., Elices, M., and Planas, J. (2000). "Micromechanical

modelling of brick-masonry fracture." Cement and Concrete Research, 30, 731-

737.

Hamid, A. A., and Drysdale, R. G. (1982). "The shear behaviour of brickwork bed

joints." Proceedings of the British Ceramic Society, 101-109.

Hansen, E. A. (1990). "A visco-elastic fictitious crack model." Proceedings of the

Conference on Micromechanics of Quasi-brittle Materials, 156-165.

Hegemier, G. A., Arya, S. K., Krishnamoorthy, G., Nachbar, W., and Furguson, R.

(1978). "On the behaviour of joints in concrete masonry." Proceedings of the

North American Masonry Conference, Boulder, Colorado, 4.1-4.21.

Hendry, A. W. (1998). Structural masonry, Macmillan, London.


REFERENCES 335

Hillerborg, A., Modeer, M., and Petersson, P. E. (1976). "Analysis of crack formation

and crack growth in concrete by means of fracture mechanics and finite

elements." Cement and Concrete Research, 6, 773-782.

Hilsdorf, H. K. (1969). "Investigation into the failure mechanism of brick masonry

loaded in axial compression." Proceedings of the Conference on Designing,

Engineering and Constructing with Masonry Products, 34-41.

Ignatakis, C., Zygomalas, M., Liapis, S., Poulioulis, C., and Roussos, J. (1998).

"Mechanical behaviour of thick mortar joints under compression: Experimental

and analytical evaluation." Proceedings of the 4th International Symposium on

Computer Methods in Structural Masonry, Florence, Itary, 261-268.

Jeng, Y. S., and Shah, S. P. (1985). "Two parameter fracture model for concrete." ASCE

Journal of Engineering Mechanics, 111(10), 1227-1241.

Jirasek, M. (1998). "Nonlocal models for damage and fracture: comparison of

approaches." International Journal of Solids and Structures, 35(31), 4133-45.

Jukes, P., and Riddington, J. R. (1998). "Review of masonry tensile bond strength test

methods." Masonry International, 12(2), 51-57.

Jukes, P., and Riddington, J. R. (2001). "The failure of brick triplet test specimens."

Masonry International, 15(1), 30-33.

Karihaloo, B. L., and Nallathambi, P. (1989). "An improved effective crack model for

the determination of fracture toughness of concrete." Cement and Concrete

Research, 19, 603-610.


REFERENCES 336

Karihaloo, B. L., and Santhikumar, S. (1999). "Application of a visco-elastic tension-

softening constitutive model to cracked and ageing concrete." Construction and

Building Materials, 13, 15-21.

Karsan, I. D., and Jirsa, J. O. (1969). "Behaviour of concrete under compressive

loadings." Journal of Structural Division, ASCE, 95(ST12), 2543-2563.

Khoo, C. L., and Hendry, A. W. (1973). "A failure criteria for brickwork in axial

compression." Proceedings of the 3rd International of Brick Masonry

Conference, Essen, 141-145.

Lemke, C. E. (1965). "Bimatrix equilibrium points and mathematical programming."

Management Science, 11, 681-689.

Lenczner, D. (1981). Movements in buildings, Pergamon Press, Oxford, England.

Li, Y.-N., and Bazant, Z. P. (1997). "Cohesive crack model with rate-dependent

opening and viscoelasticity: II. Numerical algorithm, behavior and size effect."

International Journal of Fracture, 86(3), 267-288.

Lourenco, P. B. (1996). "Computational strategies for masonry structures " PhD Thesis,

Delft University of Technology, The Netherlands.

Lourenco, P. B., Barros, J. O., and Oliveira, J. T. (2004). "Shear testing of stack bonded

masonry." Construction and Building Materials, 18(2), 125-132.

Lourenco, P. B., and Rots, J. G. (1993). "On the use of micro-models for the analysis of

masonry shear walls." Proceedings of the 2nd International Symposium on

Computer Methods in Structural Masonry, 14-26.


REFERENCES 337

Lourenco, P. B., and Rots, J. G. (1997). "Multisurface interface model for analysis of

masonry structures." Journal of Engineering Mechanics, 123(7), 660-668.

Luciano, R., and Sacco, E. (1997). "Homogenization technique and damage model for

old masonry material." International Journal of Solids and Structures, 34(24),

3191-3208.

Luciano, R., and Sacco, E. (1998). "A damage model for masonry structures." European

Journal of Mechanics A-Solids, 17(2), 285-303.

Lurati, F., Graf, H., and Thürlimann, B. (1990). "Experimental determination of the

strength parameters of concrete masonry (in German)." Report No. 8401-2,

Institute of Structural Engineering, ETH Zurich, Zurich, Switzerland.

Ma, G., Hao, H., and Lu, Y. (2001). "Homogenization of masonry using numerical

simulations." Journal of Engineering Mechanics 127(5), 421-431.

Mai, Y.-W., and Lawn, B. R. (1987). "Crack-interface bridging as a fracture resistance

mechanism in ceramics: II theoretical fracture mechanics model." Journal of the

American Ceramic Society, 70, 289-294.

Maier, G. (1970). "A matrix structural theory of piecewise linear elastoplasticity with

interaction yield planes." Meccanica, 5, 54-66.

Maksoud, A., and Drysdale, R. G. (1995). "Creep effects on unreinforced slender

concrete block walls." Proceedings of the 7th Canadian Masonry Symposium,

McMaster University, Hamilton, Ontario, Canada, 353- 363.


REFERENCES 338

Mann, W., and Müller, H. (1982). "Failure of shear-stressed masonry- An enlarged

theory, tests and application to shear walls." Proceedings of the British Ceramic

Society 223-235.

Neville, A. M. (1995). Properties of concrete, Burnt Mill, Harlow, Essex ; New York :

Longman Scientific & Technical.

Oliver, J., Huespe, A. E., Pulido, M. D. G., and Chaves, E. (2002). "From continuum

mechanics to fracture mechanics: the strong discontinuity approach."

Engineering Fracture Mechanics, 69, 113-36.

Page, A. W. (1978). "Finite element model for masonry." ASCE Journal of the

Structural Division, 108(8), 1267-1285.

Page, A. W. (1981). "The biaxial compressive strength of brick masonry." Proceedings

of the Institution of Civil Engineers, 893-906.

Page, A. W. (1983). "The strength of brick masonry under biaxial compression-

tension." International Journal of Masonry Construction, 3(1), 26-31.

Peerlings, R. H., Geers, M. G. D., De Borst, R., and Brekelmans, W. A. M. (2001). "A

critical comparison of nonlocal and gradient-enhanced softening continua."

International Journal of Solids and Structures, 38, 7732-46.

Pickett, G. (1942). "The effect of change in moisture content on the creep of concrete

under a sustained load." Journal of the ACI, 38, 333-355.

Pina-Henriques, J. (2005). "Masonry under compression : failure analysis and long-term

effects," PhD Thesis, University of Minho, Portugal.


REFERENCES 339

Riddington, J. R., and Ghazali, M. Z. (1988). "Shear strength of masonry walls."

Proceedings of the 8th International Brick and Block Masonry Conference,

Dublin, Republic of Ireland, 548-558.

RILEM TC-50 FMC Recommendation. (1985). "Determination of the fracture energy

of mortar and concrete by means of three-point bend tests on notched beams."

Materials and Structures, 18(106), 285-290.

Rüsch, H. (1960). "Researchs toward a general flexural theory for structural concrete."

ACI Journal, 57(1), 1-28.

Sahlin, S. (1971). Structural masonry, Prentice-Hall, Englewood Cliffs, NJ.

Santhikumar, S., and Karihaloo, B. L. (1996). "Time-dependent tension softening."

Mechanics of Cohesive-Frictional Materials, 1, 295-304.

Santhikumar, S., and Karihaloo, B. L. (1998). "Time-dependent behaviour of cracked

and ageing concrete." Proceedings of the Conference on Computational

Modelling of Concrete Structures, 455-465.

Santhikumar, S., Karihaloo, B. L., and Reid, S. G. (1998). "A model for ageing visco-

elastic tension softening materials." Mechanics of Cohesive-Frictional

Materials, 3, 27-39.

Schubert, P. (1988). "The influence of mortar on the strength of masonry." Proceedings

of the 8th International Brick and Block Masonry Conference, 162-174.


REFERENCES 340

Schubert, P., and Hoffmann. (1994). "Compressive strength of mortar in masonry:

Significance, influences, test methods, requirements." Proceedings of the 10th

International Brick and Block Masonry Conference, 1335-1344.

Shrive, N. G., and England, G. L. (1981). "Creep and shrinkage behavior of masonry."

International Journal of Masonry Construction, 1(3), 103-109.

Sluys, L. J. (1992). "Wave propagation, localisation and dispersion in softening solids,"

Doctoral Dissertation, Delft University of Technology, Delft, The Netherlands.

Stockl, S., Bierwirth, H., and Kupfer, H. (1994). "The influence of test method on the

results of compression tests on mortar." Proceedings of the 10th International

Brick and Block Masonry Conference, 1397-1406.

Sutcliffe, D. J., Yu, H. S., and Page, A. W. (2001). "Lower bound limit analysis of

unreinforced masonry shear walls." Computers and Structures, 79, 1295-1312.

Tin-Loi, F., and Tseng, P. (2003). "Efficient computation of multiple solutions in

quasibrittle fracture analysis." Computer Methods in Applied Mechanics and

Engineering, 192, 1377-1388.

Van Der Pluijm, R. (1992). "Material properties of masonry and its components under

tension and shear." Proceedings of the 6th Canadian Masonry Symposium,

Saskatoon, Saskatchewan, Canada, 675-686.

Van Der Pluijm, R. (1993). "Shear behavior of bed joints." Proceedings of the 6th North

American Masonry Conference, 125-136.


REFERENCES 341

Van Der Pluijm, R. (1999). "Out-of-plane bending of masonry behaviour and strength,"

PhD Thesis, Eindhoven University of Technology, The Netherlands.

Van Mier. (1997). Fracture processes of concrete, CRC Press, New York.

Van Zijl, G. P. A. G. (1999). "Computational modelling of masonry creep and

shrinkage," Dissertation, Delft University of Technology, Delft, The

Netherlands.

Van Zijl, G. P. A. G., De Borst, R., and Rots, J. G. (2001a). "A numerical model for the

time-dependent cracking of cementitious materials." International Journal for

Numerical Methods in Engineering, 52, 637-654.

Van Zijl, G. P. A. G., De Borst, R., and Rots, J. G. (2001b). "The role of crack rate

dependence in the long-term behaviour of cementitious materials " International

Journal of Solids and Structures, 38(30-31), 5063-5079

Van Zijl, G. P. A. G., Rots, J. G., and Vermeltfoort, A. T. (2001c). "Modelling shear-

compression in masonry." Proceedings of the 9th Canadian Masonry

Symposium.

Vermeltfoort, A. T., Raijmakers, T. M. J., and Janssen, H. J. M. (1993). "Shear tests on

masonry walls." Proceedings of the 6th North American Masonry Conference,

1183-1193.

Vermeltfoort, A. T., and Van Der Pluijm, R. (1991). "Strength and deformation

properties of masonry to be used in computer calculations." Proceedings of the

9th International Brick Masonry Conference, Berlin, 244-252.


REFERENCES 342

Warren, D., and Lenczner, D. (1981). "A creep-time function for single-leaf brickwork

walls." International Journal of Masonry Construction, 2(1), 13-20.

Wittmann, F. H. (1982). "Creep and shrinkage mechanisms." Creep and Shrinkage in

Concrete Structures, Z. P. Bazant and F. H. Wittmann, eds., John Wiley & Sons

Ltd, Ch. 6, 129-161.

Wittmann, F. H., Roelfstra, P. E., Mihashi, H., Huang, Y.-y., Zhang, X., and Nomura,

N. (1987). "Influence of age of loading, water-cement ratio and rate of loading

on fracture energy of concrete." RILEM, Materials and Structures, 20, 103-110.

Wu, Z. S., and Bazant, Z. P. (1993). "Finite element modeling of rate effect in concrete

fracture with influence of creep." Proceedings of the 5th International RILEM

Symposium on Creep and Shrinkage of Concrete, U.P.C., Barcelona, 427-432.

Young, J. F. (1988). "Physical mechanisms and their mathematical descriptions."

Mathematical Modeling of Creep and Shrinkage of Concrete, 63-98.

Zhou, F. P. (1992). "Time-dependent crack growth and fracture in concrete," Doctoral

Dissertation, Lund University, Lund, Sweden.

Zhou, F. P., and Hillerborg, A. (1992). "Time-dependent fracture of concrete: testing

and modeling." Proceedings of the Conference on Fracture Mechanics of

Concrete Structures, 906-911.

You might also like