080105884 Dissertation

82
MATERIAL FAILURE SIMULATED WITH 2D TRUSS DYNAMICS Dissertation submitted as part requirement for the degree of Master of Science in Structural Engineering. By Muhammad Bilal Shah Supervisor Prof. Harm Askes The University of Sheffield Department of Civil and Structural Engineering September 2009

Transcript of 080105884 Dissertation

MATERIAL FAILURE SIMULATED WITH 2D TRUSS DYNAMICS

Dissertation submitted as part requirement for the degree of Master of Science in

Structural Engineering.

By

Muhammad Bilal Shah

Supervisor

Prof. Harm Askes

The University of Sheffield

Department of Civil and Structural Engineering

September 2009

ii

Muhammad Bilal Shah certifies that all the material contained within this document

is his own work except where it is clearly referenced to others.

_

(Signature)

iii

Acknowledgement

First of all, I would like to thank God, the Almighty, for making everything possible

by giving me strength and ability to accomplish this dissertation.

I would like to thank Prof. Harm Askes for all his support and guidance throughout

this dissertation. It was his constant encouragement and appreciation that kept me

going throughout this dissertation.

I would like to thank my family and friends for all their support throughout this

dissertation. A special thanks to my brother who funded my masters and supported

me all the way through my masters.

iv

Abstract

Failure of an engineering material is almost always not a desirable event. One of the

modes of failure of materials is through cracking of the material. It is possible

simulate material failure using finite element analysis. In fact one of the very first

applications of finite element analysis was analysis of structures. In this dissertation

we will utilize finite element method to simulate material failure.

This dissertation can broadly be divided in two phases. In the first phase, a computer

application incorporating finite element analysis was developed using MatLab. The

developed application simulates a simple beam structure by generating a finite

element lattice model made up of finite bar elements. The capability of simulating

material heterogeneity is incorporated in the program to simulate materials like

concrete. Dynamic analysis of the structure can be performed by the program using

implicit direct integration Newmark constant average acceleration method. Stress

patterns in the beam material are also generated simulating material failure.

In the second phase of the dissertation a number of analyses were carried out using

the application. These tests were designed keeping in view the basic hypothesis of

the dissertation: possibility of modeling static tests using dynamic implementation.

The general procedure for carrying out the tests was to change a single parameter at

one time to find out the effect of changing that parameter. The results from the

analyses performed not only delivered answers to the basic hypothesis but also

verified the functionality of the application developed.

It was concluded from the results obtained from the analyses that it is possible to

model static tests using dynamic implementation provided the there is a gradual

increase in the dynamic load that is applied to the structure. It was also concluded

that heterogeneity of material may not influence the global structural behavior like

reaction forces or displacements but does have local effects like cracking of

interfaces between aggregate and cement sand matrix. Some recommendations for

further research and possible future enhancements are provided at the end of

dissertation.

v

List of Tables

Acknowledgement ........................................................................................................................ 1-iii

Abstract ........................................................................................................................................ 1-iv

List of Figures ............................................................................................................................ 1-viii

List of Tables ................................................................................................................................. 1-x

1 INTRODUCTION .................................................................................... 1

1.1 Aims and Objectives ................................................................................................................ 2

1.1.1 Aims .............................................................................................................................. 2

1.1.2 Objectives ...................................................................................................................... 2

1.2 Scope of Dissertation ............................................................................................................... 3

1.3 Outline of Dissertation ............................................................................................................. 4

2 LITERATURE REVIEW .......................................................................... 5

2.1 Fracture Mechanics.................................................................................................................. 5

2.2 Lattice Model .......................................................................................................................... 6

2.3 Material Heterogeneity ............................................................................................................ 7

2.3.1 Tensile Strength of Plain Concrete .................................................................................. 8

2.3.2 Micro-cracking in Concrete ............................................................................................ 8

2.3.3 Aggregate and Cement-Sand Matrix Interface ................................................................. 9

2.3.4 Modeling Heterogeneity in Finite Element Methods ...................................................... 10

2.4 Local Orientation of Finite Elements ...................................................................................... 11

2.5 Crack Propagation ................................................................................................................. 12

3 THEORETICAL ANALYSIS ................................................................. 14

3.1 Actual Structure ..................................................................................................................... 15

3.2 Working Model ..................................................................................................................... 15

3.2.1 Dimensions .................................................................................................................. 15

3.2.2 Materials ...................................................................................................................... 15

3.2.3 Support Conditions ....................................................................................................... 15

3.2.4 Loading Conditions ...................................................................................................... 16

3.2.5 Desired Outputs ............................................................................................................ 16

3.3 Mathematical Model .............................................................................................................. 16

3.3.1 Spatial Discretization .................................................................................................... 16

3.3.2 Choice of Finite Element .............................................................................................. 16

3.3.3 Meshing ....................................................................................................................... 17

3.3.4 Properties of Material ................................................................................................... 18

3.3.5 Boundary Conditions .................................................................................................... 19

3.3.6 Strong Form of Governing Equation ............................................................................. 19

vi

3.3.7 Weak Form .................................................................................................................. 20

3.3.8 Semi-discretized System of Equations ........................................................................... 20

3.4 Computational Model ............................................................................................................ 21

3.4.1 Element Mass Matrix .................................................................................................... 21

3.4.2 Element Stiffness Matrix .............................................................................................. 23

3.4.3 Transforming from Local Coordinates to Global Coordinates ........................................ 23

3.4.4 Assembling Element Matrices ....................................................................................... 25

3.4.5 Time Discretization ...................................................................................................... 25

4 APPLICATION DEVELOPMENT ......................................................... 28

4.1 User Interface ........................................................................................................................ 30

4.2 Initialize System (Helium.m) ................................................................................................. 30

4.3 Getting User Input (GetUserData.m) ...................................................................................... 31

4.3.1 Analysis Geometry ....................................................................................................... 31

4.3.2 Dynamic Analysis Time and Loading ........................................................................... 32

4.3.3 Material Properties ....................................................................................................... 33

4.3.4 Support Conditions ....................................................................................................... 34

4.3.5 Load Patterns................................................................................................................ 34

4.3.6 Output Options ............................................................................................................. 35

4.4 Initializing Model Based on User Input .................................................................................. 36

4.4.1 Generating Nodal Coordinates (InitialCoordinates.m) ................................................... 36

4.4.2 Generating Finite Elements (InitialElements.m) ............................................................ 36

4.4.3 Initializing Material Properties (InitMaterialProperties.m) ............................................. 36

4.4.4 Initializing Heterogeneity (InitHeterogeneity.m) ........................................................... 36

4.4.5 Initializing Boundary Conditions (InitBoundaryConditions.m) ...................................... 37

4.4.6 Initializing Load Pattern (InitLoads.m).......................................................................... 37

4.4.7 Computing Element Matrices (ElementMassAndStiffnessMatrix.m).............................. 37

4.4.8 Assembling Structural Matrices (AssembleGlobalMatrices.m) ...................................... 37

4.5 Dynamic Analysis ................................................................................................................. 37

4.5.1 Load Factor (Helium.m) ............................................................................................... 37

4.5.2 Computing Displacements (Helium.m) ......................................................................... 38

4.5.3 Computing Velocities and Accelerations (Helium.m) .................................................... 38

4.5.4 Axial Force Calculations in Finite Elements (ElementAxialForce.m) ............................. 38

4.5.5 Removing Element Mass and Stiffness of Failed Elements (Helium.m) ......................... 38

4.5.6 Element Stress Levels ................................................................................................... 38

4.5.7 Calculating Reaction Forces.......................................................................................... 39

4.6 Program Outputs.................................................................................................................... 39

4.6.1 Time Histories .............................................................................................................. 39

4.6.2 Stress Pattern ................................................................................................................ 40

4.6.3 Deflection and Stress Pattern Animation ....................................................................... 41

vii

4.6.4 Program Variables ........................................................................................................ 41

4.7 Program Exit ......................................................................................................................... 41

5 RESEARCH METHODOLOGY ............................................................ 42

5.1 Application Development ...................................................................................................... 42

5.2 General Procedure for Performing Tests ................................................................................. 43

5.3 Program Outputs.................................................................................................................... 43

5.3.1 Inspected Nodes ........................................................................................................... 43

5.3.2 Displacement-Time History .......................................................................................... 44

5.3.3 Velocity-Time History .................................................................................................. 44

5.3.4 Acceleration-Time History............................................................................................ 44

5.3.5 Reaction Forces ............................................................................................................ 44

5.3.6 Stress Pattern ................................................................................................................ 45

5.3.7 Rate of Failure of Finite Elements ................................................................................. 45

5.3.8 Animation of Loaded Beam .......................................................................................... 45

5.4 Analyses Performed ............................................................................................................... 45

5.4.1 Effect of Changing Finite Element Length .................................................................... 45

5.4.2 Effect of Changing Loading Rate .................................................................................. 48

5.4.3 Effect of Changing the Aspect Ratio of the Beam .......................................................... 50

5.4.4 Effect of Heterogeneity ................................................................................................. 53

6 CONCLUSION ...................................................................................... 55

6.1 Summary of Achievements .................................................................................................... 55

6.2 Recommendations ................................................................................................................. 57

REFERENCES ............................................................................................ 59

APPENDIX A – APPLICATION FILES AND FUNCTIONS ......................... 61

APPENDIX B – MAIN FUNCTION FILE CODE .......................................... 62

viii

List of Figures

Figure 2-1: Three modes of crack propagation: (Wikipedia, 2009) ........................... 6

Figure 2-2: Lattice types (Ince, Arslan, & Karihaloo, 2002) ..................................... 7

Figure 2-3: Relationship between crack length and stress-strength ratio (Neville,

1995) ....................................................................................................................... 9

Figure 2-4: Schematic representation of transition zone (Mehta & Monteiro, 2006) 10

Figure 2-5: Grain structure modeling (Ince, Arslan, & Karihaloo, 2002) .................11

Figure 2-6: Example of crack face bridging .............................................................12

Figure 3-1: Process flow diagram (after (Dimov, 2008)) .........................................14

Figure 3-2: Common types of finite elements (Sadd, 2009) .....................................17

Figure 3-3: Meshing options provided .....................................................................18

Figure 3-4: Cross section area assignment to bar elements ......................................18

Figure 3-5: Liner shape function .............................................................................22

Figure 3-6: Bar element oriented at an angle (modified from (Alexander, 2006)) ....23

Figure 3-7: Assembling structural stiffness matrix (Alexander, 2006) .....................25

Figure 4-1: Program execution flowchart ................................................................29

Figure 4-2: Initialize system environment ...............................................................30

Figure 4-3: Analysis geometry input .......................................................................31

Figure 4-4: Dynamic load behavior .........................................................................32

Figure 4-5: Dynamic analysis time and loading behavior input................................33

Figure 4-6: Input for material properties ..................................................................33

Figure 4-7: Support conditions input .......................................................................34

Figure 4-8: Load pattern input .................................................................................35

Figure 4-9: Output options ......................................................................................35

Figure 4-10: Sample output of time histories generated by the program...................40

Figure 4-11: Sample output of reaction time history generated by the program .......40

ix

Figure 4-12: Stress pattern generated by the program ..............................................40

Figure 5-1: Inspected nodes for a beam marked with squares ..................................44

Figure 5-2: Displacement-Time histories of loaded node for test 1 ..........................46

Figure 5-3: Acceleration-Time history of loaded node for test 1 ..............................47

Figure 5-4: Displacement-Time history for test2 .....................................................49

Figure 5-5: Acceleration-Time history for test 2 ......................................................50

Figure 5-6: Stresses and failed elements around mid span .......................................51

Figure 5-7: Displacement-Time history for loaded node for test 3, analysis 3 ..........52

Figure 5-8: Acceleration-Time history for loaded node of test3, analysis 3 ..............52

Figure 5-9: Displacement-Time histories of loaded nodes for test 4 .........................53

Figure 5-10: Axial forces in finite elements (analysis without aggregate) ................54

Figure 5-11: Axial forces in finite elements (analysis with aggregates) ...................54

x

List of Tables

Table 4-1: Color codes for element stress levels ......................................................39

Table 5-1: Unchanged parameters for test 1 ............................................................46

Table 5-2: Unchanged parameters for test 2 ............................................................48

Table 5-3: Varying parameters for test 2 .................................................................48

Table 5-4: Unchanged parameters for test 3 ............................................................50

Table 5-5: Varying parameters for test 3 .................................................................51

Table 5-6: Unchanged parameters for test 4 ............................................................53

Introduction

1

11 IINNTTRROODDUUCCTTIIOONN

One of the most significant decisions in any engineering design is selection of a

suitable material for the design. In case of structural engineering, the selected

material should be able to withstand the applied stresses which may occur during the

life time of the designed structural element without failing. Failure of materials in

almost always not a desirable event as it may result in loss of lives, economic losses

and interruption in use of the structure. One of the definitions of material failure

given in material sciences is:

“Material failure is the loss of load carrying capacity of a material unit.”

This definition itself points out to the fact that material failure can be anywhere

between atomic to macroscopic level. At atomic level, the material failure can be

corresponded to exceeding the bond energy between two atoms. It is interesting to

note that research is being carried out to simulate material failure at atomic level

using up to one billion atoms (Abraham, Robert, Huajian, Mark, Tomas, & Mark,

2002). If we consider material failure at a microscopic level, it relates to initiation

and propagation of micro-cracks in the material. The microscopic cracks combine,

forming a macroscopic crack. Eventually, these cracks lead to the failure of the

material.

Materials can be modeled and analyzed using Finite Element Methods. The very first

contributions to finite element method in engineering can be traced back to J. H.

Argyris, S. Kelly and R. W. Clough. The term „finite element‟ was first used in a

Introduction

2

paper by R. W. Clough (Bathe, 1996). Although the approaches used vary, but there

is one essential characteristic shared by all of them: mesh discretization of a

continuous domain in to discrete sub-domains.

Engineering mechanics problems can broadly be divided in to two categories i.e.

statics and dynamics. Statics is concerned with equilibrium of forces on a body

whereas Dynamics deals with accelerated motion of bodies. Crack initiation and

propagation can be modeled using finite element method. The problem of

mechanism, in which fractured material is attached to the rest of the body through

one node, arises while trying to model fracture propagation using static analysis. The

problem of mechanism of fractured material may be solved by using dynamic

implementation by assigning mass to finite elements lumped at nodes. Moreover, this

may give an insight whether dynamic failure is fundamentally different from static

failure. Possibility of solving the mechanism problem in material fracture modeling

and the presence of any differences in material failure through dynamic

implementation forms the basic hypothesis of this dissertation.

1.1 Aims and Objectives

The aims and objectives for this dissertation are as follows:

1.1.1 Aims

1. To develop an accurate and efficient finite element solution based on 2D-bar

elements capable of performing dynamic analysis

2. Formulate an algorithm which is capable of removing bar elements thus

simulating fracture propagation

3. Developing a solution capable of simulating crack propagation in material

using dynamic implementation

4. Improving the program to which can simulates heterogeneous material like

concrete up to a certain level of accuracy

5. Determine the possibility to model static tests with dynamic implementation

1.1.2 Objectives

1. Develop an efficient and flexible mesh/lattice generation algorithm

2. Understand the basic implementation of implicit time integration schemes

Introduction

3

3. Consider the implementation of implicit time integration scheme for solution

of dynamic analysis in which the problem of mechanism would be solved

4. Develop an algorithm capable of removing bar elements from the mesh based

on ultimate stress limit for elements

5. Implementation of an accurate solution to simulate crack propagation through

least resistance path

6. Implementation of algorithm capable of joining different cracks simulating

the crack propagation

7. Develop an algorithm to simulate heterogeneity of material with different

material strength and sizes of the aggregate

8. Implement a solution capable of assigning weaker material strength at the

boundary of aggregates hence simulating interfaces between aggregate and

cement/sand matrix

9. Perform analyses using the developed application to determine the possibility

of modeling static tests using dynamic implementation

1.2 Scope of Dissertation

The scope of this dissertation can be broadly divided in two phases. In the first phase

a computer program was required to be developed using MatLab which is capable of

performing dynamic analysis. The material modeled by the program was required to

be able to simulate homogeneous materials such as steel and was also required to be

extended to material heterogeneity as is the case with concrete. Different loading

types such as concentrated loads, uniformly distributed loads and varying distributed

loads were incorporated. Two support conditions i.e. simply supported beam and

cantilever beam were also provided.

In the second phase of the dissertation tests were being performed using the

application to get the answers to the questions put forward in the objectives of this

dissertation. These tests include checking the effect of finite elements length, loading

rate, aspect ratio of the member under test and effect of heterogeneity. The data

obtained from these tests was analyzed to get meaningful results.

Introduction

4

1.3 Outline of Dissertation

The dissertation is broken down in to six chapters including current chapter. A brief

overview of each chapter is given down as under:

Chapter 2 “Literature Review” summarizes the literature review of state of the art

researches and approaches to modeling material failure and fracture mechanics using

finite element methods. The approaches used by different researchers towards

generating finite element mesh, simulating heterogeneous materials and crack

propagation are discussed.

Chapter 3 “Theoretical Analysis” deals with the theory behind formulating bar

elements, stiffness matrices, mass matrices, forces, displacements and time

integration schemes.

Chapter 4 “Application Development” explains the conceptual programming of the

application developed in a generic way. The procedures adopted for initializing nodal

coordinates, element topology, mass matrices, stiffness matrices, essential and

natural boundary conditions, time integration, and saving the outputs are discussed.

Chapter 5 “Research Methodology” discusses the procedure for analyses carried out

using the application, the results from these analysis and conclusions regarding the

analyses results.

Chapter 6 “Conclusion” summarizes the conclusions reached from the test results,

compares aims and objectives with achievements, and possible future work and

enhancements to the project.

The list of MatLab files and their function is given as appendix A. The code for main

MatLab file which calls all the sub functions is attached with this report as appendix

B. All the files used in the computer application and some sample outputs of the

program are included in a compact disc with this dissertation. The author hopes you

enjoy reading through the dissertation.

Literature Review

5

22 LLIITTEERRAATTUURREE RREEVVIIEEWW

A great amount of research has been done over the years in simulating crack

initiation and propagation of heterogeneous materials like concrete. This chapter

starts with an introduction to fracture mechanics and then moves on to focus mainly

on state of the art research and approaches towards crack initiation and propagation

in heterogeneous materials like concrete. An overview of meshes or lattice models

adopted by researchers, coping with material heterogeneity, relation of local finite

element strength to its global position, and crack propagation simulated using FEM is

provided in this chapter.

2.1 Fracture Mechanics

The field of fracture mechanics is basically related to fracture related failures of

materials. Failure of a material can broadly be divided in to two categories i.e. ductile

failure and brittle failure. In a ductile failure a large amount of deformation is

involved as well as considerable amount of yielding and plastic deformation occurs

before the material actually fails. Ductile failure can be seen in materials like steel.

On the other hand, in brittle failures the deformations involved are small and the

failure is normally abrupt without any warning. Concrete failure is an example of

brittle failure where the failure is abrupt and without warning. There is always some

stress concentration at the tip of propagating crack. Due to high amount of plastic

deformation in ductile materials, the crack propagation in ductile materials is

Literature Review

6

different from that of brittle materials. A part of the energy from stress concentration

at the crack tip is therefore utilized in plastic deformation.

There are three basic modes of crack propagation. These modes depend on the forces

applied on the body and the direction of crack displacement. The three crack

propagation modes (Janssen, Zuidema, & Wanhill, 2004) are shown in figure 2-1

below.

Figure 2-1: Three modes of crack propagation: (Wikipedia, 2009)

In mode I, the applied forces are perpendicular to the plan of crack propagation. In

this way the two crack surfaces are pulled apart propagating the crack. In the second

mode, also known as sliding mode, the basic forces acting on the body are shear

forces. These shear forces make the two crack surfaces slide over one another. In the

third mode, also known as tearing mode, the shear forces applied are parallel to the

crack front tip in a way that the two crack surfaces slide over each other. In most

practical considerations, the first mode is important for calculation of elastic stress

field equations (Janssen, Zuidema, & Wanhill, 2004).

2.2 Lattice Model

The study of crack propagation in materials like concrete can efficiently be carried

out using Finite Element Analysis. The whole material is discretized in to a number

of small elements known as finite elements. The basic idea of the lattice model is

quite old as in 1941 Hrennikoff proposed a macroscopic model based on truss

elements (Schlengen, 1993). These elements are connected together at nodal joints.

The finite elements can either be spring or bar elements which can only transfer axial

forces or can be beam elements which can carry axial, shear and moment forces.

Literature Review

7

The crack growth in such type of lattice models is simulated by removing finite

elements from the mesh depending on certain conditions. These conditions can be

ultimate tensile or compressive strengths in case of bar elements. For beam elements

these conditions may include ultimate tensile or compressive strength along with

shear capacity and moment capacity.

The arrangement of the finite elements or the lattice model can be done in many

different ways. Researchers come up with different advantages of one type of

arrangement over the other type of mesh arrangement for the lattice model. Figure 2-

2 below some of the possible arrangements of elements in a lattice model.

a. Square lattice b. Triangular lattice c. Irregular lattice

Figure 2-2: Lattice types (Ince, Arslan, & Karihaloo, 2002)

For this dissertation, a triangular lattice was chosen. A triangular lattice minimizes

the preferential growth of the crack (Schlangen & Van Mier, Simple lattice model for

numerical simulation of fracture of concrete materials and structures, 1992). The

elements in the lattice can be considered as small springs or bar elements which

would be capable of transferring axial forces only. The finite bar element length can

be around 5 mm for a dense mesh. In case of static analysis, this may actually result

in the problem of having a mechanism when certain elements are connected to the

rest of the elements by means of a single node. To overcome this problem, dynamic

analysis is considered instead of static analysis in which mechanism does not pose a

problem.

2.3 Material Heterogeneity

Heterogeneity of materials like concrete makes it difficult to simulate fracture

propagation in these materials. The micros-structure of these materials complicates

the application of finite element methods to model these elements. The fracture

Literature Review

8

process in these materials consists of a main crack along with branching crack and

micro-cracks (Schlangen & Garboczi, Fracture Simulation of Concrete using Lattice

Models: Computational Aspects, 1997). In this section we will be focusing our

attention mainly on concrete as a heterogeneous material and its properties which

effects the fracture mechanics simulation.

2.3.1 Tensile Strength of Plain Concrete

Concrete is good at compressive strength but its tensile strength is quite less when

compared to compressive strength. That is why plain concrete is generally never used

to resist tensile or flexural stresses. Reinforced concrete is used for structural element

which needs to resist flexural stresses.

The actual tensile strength of heterogeneous materials is very small as compared with

theoretical strength based on molecular cohesion (Neville, 1995). This difference can

be understood by the presence of flaws at microscopic level. These flaws lead to a

very high concentration of stresses at the location of these flaws resulting in a

microscopic fracture. The nominal stress in areas surrounding this microscopic

fracture might be very less as compared with the stresses at the location of these

flaws.

The approximate tensile strength of concrete of plain concrete related to its

compressive cylindrical strength may be calculated using the simple formula

(Neville, 1995) below:

𝑓𝑡 = 0.0018 × 𝑓𝑐𝑦1 + 2.3 (Eq. 2.1)

In the equation above, 𝑓𝑡 is the tensile strength of concrete and 𝑓𝑐𝑦1 is the

compressive cylinder strength of concrete specimen. From the equation above, it can

be safely said that the tensile strength of plain concrete is almost always less than

10% of its compressive strength. In practical design of structures the tensile strength

of concrete might not be of much interest as the structural elements are reinforced

with steel rebars counters the tensile forces applied to the member.

2.3.2 Micro-cracking in Concrete

Literature Review

9

The major reason of failure of plain concrete is cracking of concrete which starts

initially with micro-cracking. It is interesting to note that some micro-cracks exist at

the interface of cement-sand matrix and aggregates even before the member is

loaded. The presence of these micro-cracks is probably due to the difference in the

mechanical properties of aggregates and cement-sand matrix (Neville, 1995).

Figure 2-3: Relationship between crack length and stress-strength ratio (Neville, 1995)

The exact range of size of micro-crack is not defined however it may be taken as 0.1

mm which is the smallest size which can be detected by naked eye (Neville, 1995).

However for engineering purposes, it can be taken as the smallest size that can be

seen by optical microscope. The length of the micro-cracks does not increase

significantly when the stress in the material is below 30 % of the ultimate stress

limit. However when the stress reaches from 70 % to 90 % of the ultimate stress, the

cracks opens up bridging with bond cracks until the ultimate failure of the material

by cracking. The relationship between the crack length and stress-strength ratio is

shown in figure 2-3 above.

2.3.3 Aggregate and Cement-Sand Matrix Interface

As mentioned in the preceding topic, some very fine cracks are present at the

interface of aggregate and cement-sand matrix even before the concrete is loaded.

These interfaces are called interface zones or transition zones. The important of these

zones can be clearly seen as the crack patterns that appears in cracked concrete

Literature Review

10

includes these zones. The micro-structure of concrete around the transition zone is

different than that of mortar. The strength of this zone in comparison with cement-

sand mortar and aggregate is very low. Transition zone may also exist around fine

aggregate and cement paste but at a smaller level. Figure 2-4 below shows a scanning

electron micrograph of crystals in transition zone and its schematic representation.

Figure 2-4: Schematic representation of transition zone (Mehta & Monteiro, 2006)

The study of the properties of transition zone in concrete is difficult to carry out.

Some experiments which contain a single rock with mortar around it have been

carried out. The results of these experiments might be misleading as it does not take

in to account the transition zone around the fine aggregates as well as the interface of

other coarse aggregates. However, it is clear that the strength of the transition zone is

lower when compared to the strength of cement-sand matrix.

2.3.4 Modeling Heterogeneity in Finite Element Methods

Accurate modeling the heterogeneity of concrete is a complex scenario owing to

many variables that are involved like the size, shape and location of the aggregate.

However, approximate model of heterogeneous material like concrete can be created

using some very easy procedures.

In one of the lattice models (Ince, Arslan, & Karihaloo, 2002) very convenient

approach was used to model material heterogeneity. The lattice model consisted of

elements connected in square shapes. The aggregates were modeled as circular and

Literature Review

11

elliptical shape. When both ends of a finite element were inside the region of the

aggregate, the properties of aggregate were assigned to that finite element. When one

of the ends of the finite element was inside the region of aggregate and the other one

outside, the element was assigned the properties for the interface zone or transition

zone. All other elements were assigned the properties of cement-sand matrix. This

arrangement is shown schematically in the figure below.

a. General grain structure b. Definition of aggregate, matrix

and interface elements

Figure 2-5: Grain structure modeling (Ince, Arslan, & Karihaloo, 2002)

A similar approach was used for modeling the heterogeneity of concrete in this

dissertation.

2.4 Local Orientation of Finite Elements

One of the important considerations specially when dealing with bar elements rather

than beam elements in a lattice model is local orientation of finite element. The local

position and orientation of the finite element should be considered while assigning

ultimate tensile strength to that finite element. The position of local finite element

with respect to overall global model of member should be taken in to consideration.

If equal tensile strength is assigned to all finite elements without taking in to

consideration their local position and orientation, it may result in some finite

elements positioned and oriented in certain way to fail at a lower load than other

finite elements positioned and oriented differently.

Literature Review

12

This consideration should also be kept in mind while generating the lattice model.

The generated lattice should have elements arranged in a way that specific properties

can be assigned to groups of finite elements.

2.5 Crack Propagation

Crack propagation modeling has been one of the earliest uses of finite element

methods. There are two basic procedures that need to be defined for modeling crack

propagation. First is how the crack will be included in the mesh and secondly how to

model crack instability or crack growth.

Cracks normally propagate in the direction perpendicular to applied tensile force.

Also, cracks tend to follow the path of least resistance. In case of heterogeneous

materials, cracks never travel in a straight line and they are not continuous. There are

many different cracks that move in the material in a random fashion based on the

path of least resistance. This gives rise to crack face bridging in which different

cracks overlap to form a single crack. A fictitious example of crack face bridging

simulated through finite elements method is displayed in the figure below.

Figure 2-6: Example of crack face bridging

If we want to model crack propagation to a very high degree of accuracy, we might

probably be using a model at an atomic level. The inter-atomic bond forces can be

used and the initiation, propagation and growth of the crack can be studied at an

atomic level. It is interesting to note that some researchers (Abraham, Robert,

Huajian, Mark, Tomas, & Mark, 2002) are actually performing research on fracture

Literature Review

13

propagation on an atomic level using up to one billion atoms. What was considered

impossible yesterday is reality today.

In case of concrete as well the cracks are expected to follow the path of least

resistance. This most likely region to fall under this path is the transition zone. The

transition zone already has micro-cracks and also as its strength is the least when

compared to aggregate and cement-sand matrix. So there is a high probability that

micro-cracks would form in the transition zone, combining to form bigger cracks

eventually leading to macro-cracking and failure of concrete. The behavior crack

propagation simulated through finite element method depends on the lattice type

selected and the type of finite element chosen. The behavior would also depend on

the way heterogeneity and distribution of aggregate was performed in the model and

its relation with actual concrete heterogeneity.

Theoretical Analysis

14

33 TTHHEEOORREETTIICCAALL AANNAALLYYSSIISS

Any continuous solution field such as displacement, stress, temperature or pressure

can be approximated by a discrete model composed of a set of piecewise continuous

functions defined over a set of finite number of sub-domains. In this dissertation we

would be mainly considering the failure of beam through crack propagation with

different types of support condition and loading. The process that would be followed

can be illustrated in the figure below.

Figure 3-1: Process flow diagram (after (Dimov, 2008))

We will first choose an actual structure or real world structure which will then be

simplified to give us a working model. From the working model we will generate a

mathematical model that represents the problem in terms of governing equations.

Actual Structure

Working Model

Mathematical Model

Computational Model

Results

Conclusions

Analysis

Simulate Translate

Represent

Interpret

& Optimize Simplify

Theoretical Analysis

15

This mathematical model will then be translated in to a computational model which

can be developed using finite element method. Detailed implementation of the

computational model will be discussed in the next chapter. The final two stages

would be running some simulations and tests on the developed application to get

results and then analyze these results to make conclusions relating to the basic

hypothesis of this dissertation. The first four stages of this process will be discussed

in this chapter and the final two stages would be discussed in the subsequent

chapters.

3.1 Actual Structure

The actual structure considered for this dissertation is a rectangular beam made with

either a homogeneous material like steel or a heterogeneous material like concrete. In

case of concrete, the beam would be considered as made up of plain concrete. The

support conditions can either be simply supported beam or cantilever beam.

3.2 Working Model

To be able to obtain answers to the hypothesis of this dissertation, a simplified

working model of the actual structure of a beam is considered. The desired properties

of this working model of the beam and other conditions are discussed as below:

3.2.1 Dimensions

A rectangular section beam with varying dimensions is required to be modeled. The

dimensions of the beam would be changed to run different tests.

3.2.2 Materials

The beam material can either be homogeneous material like steel or can be

heterogeneous material like concrete. An option is provided in the application for

selecting either predefined materials or entering properties for custom homogenous

material type.

3.2.3 Support Conditions

The beam can either be simply supported or as a cantilever beam.

Theoretical Analysis

16

3.2.4 Loading Conditions

Three basic types of loads i.e. concentrated load, uniformly distributed load and

variable distribute load with different values and locations should be provided.

3.2.5 Desired Outputs

Some of the important outputs of the physical problem for this dissertation would be

the reaction forces, time histories of displacement, velocity and acceleration of some

predefined points on the beam, and failure pattern of the beam.

3.3 Mathematical Model

The working model of the problem will now be represented with a mathematical

model. The mathematical model of the problem is governed by the differential

equations used in solving the problem. For this dissertation we would be mainly

dealing with linear elastic finite elements. Before we actually discuss the

mathematical model, some basic decisions like finite element types to be used and

the boundary conditions to be applied would be discussed. This is necessary as the

mathematical model that would be developed depends on the type of finite element

and relevant information. As we would be using dynamic analysis for the application

to be developed so the general equation of motion will be considered. In the

following section we will consider the example of a simple bar element with body

force acting on it and subsequently derive the weak form and semi-discretized

equations.

3.3.1 Spatial Discretization

In order to apply finite element method to the actual structure, the whole structure

must be discretized in to small elements or finite elements. The properties of the real

structure should then be assigned to these finite elements along with boundary

conditions.

3.3.2 Choice of Finite Element

There are many different types of finite element in different dimensions. The figure

below shows commonly used finite elements. The simplest form of a finite element

is a rod or rod element which can only transmit axial forces.

Theoretical Analysis

17

Figure 3-2: Common types of finite elements (Sadd, 2009)

The figure above displays a few common types of finite elements. One of the

problems faced during static analysis of crack simulation is mechanism of part of

member that is attached with the rest of the member through a single node. To

overcome this problem, dynamic analysis seems an appropriate choice. Using a

lattice model with beam elements can be considered along dynamically analyzed.

However, relating the properties like axial, shear and moment resistance of

heterogeneous material to these finite elements is a challenging task. Choosing a

lattice model with simple bar elements may actually simplify the problem. The only

force that a bar or spring element can carry is axial load. The Ultimate tensile

strength of these bar elements can then be assigned on the basis of the region they

fall within the member.

3.3.3 Meshing

There can be a variety of ways in which the finite element mesh can be constructed.

A simple lattice model consisting of bar elements connected in triangular shape has

been adopted for this project. One of the advantages of triangular shaped mesh is that

it does not allow preferential growth of crack. An equilateral triangular arrangement

also helps minimizing the chances of having very small or large angles between the

elements. The two initial meshing options proposed are displayed in figure below.

Theoretical Analysis

18

a. Right angled triangular mesh b. Equilateral triangular mesh

Figure 3-3: Meshing options provided

The second option with equilateral triangular arrangement was subsequently selected

for this project.

3.3.4 Properties of Material

Two types of materials i.e. homogeneous and heterogeneous were selected for this

dissertation. Following material properties were required to be assigned to the finite

bar elements:

E: Modulus of Elasticity

ρ: Material density

fu: Ultimate tensile strength

For a homogenous material these three properties were assigned for all elements for

the calculations. However, for concrete these properties differed for the finite

elements depending on the region in which the finite element was located.

The cross sectional area of the bar was approximated in a way that each bar element

had equal share of the area around it. This is shown schematically in the figure

below.

Figure 3-4: Cross section area assignment to bar elements

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

-0.1

0

0.1

0.2

0.3

0.4

0.5

X-Axis

Y-A

xis

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-0.1

0

0.1

0.2

0.3

0.4

0.5

X-Axis

Y-A

xis

Theoretical Analysis

19

Each triangular area was divided in two three equal areas. The share of each bar

element (except the boundary elements) was two third the area of a triangular region.

This area was then divided by the length of the bar element to get the in-plan

dimension of the bar element used to calculate the cross-sectional. The out of plan

dimension of the cross section of bar element was taken as 1 (one).

3.3.5 Boundary Conditions

There are two types of boundary conditions, displacement (essential) and force

(natural). The essential boundary conditions are normally used to describe the

support or constraints on the member. The prescribed values of such boundaries are

often zero. The natural boundary condition deals with force or stress boundary

condition at designated parts of the body.

The terms essential and natural comes from the use of weak form for deriving system

equations. In weak form formulation, the essential boundary condition has to be

satisfied before the derivation starts. If it is not satisfied, the process will fail. When

the essential boundary conditions are satisfied, the process will move on to

equilibrium equations and natural boundary conditions. The force boundary

conditions are this naturally derived from the process and hence called natural

boundary conditions (Liu & Quek, 2003).

There are two types of support conditions provided for the application developed i.e.

simply supported beam and cantilever beam. The displacements in either X or Y

direction of nodes on supports would be prescribed a zero value for displacement.

3.3.6 Strong Form of Governing Equation

In a static analysis problem the equilibrium of forces is considered. However, in case

of dynamic analysis, the applied forces are equated to dynamic inertia. The dynamic

equilibrium equation for 1D solid is given by:

𝜕𝜎𝑥

𝜕𝑥+ 𝑓𝑥 = 𝜌𝑢 (Eq. 3.1)

Where

Theoretical Analysis

20

𝜎𝑥 is the stress in x-direction

fx is the body force

ρ is the mass density

𝑢 =𝜕2𝑢

𝜕𝑡2 (Eq. 3.2)

The equilibrium equation can be written in concise matrix form as

𝐋𝑇𝜎 + 𝐟𝑏 = 𝜌𝐔 (Eq. 3.3)

In the equation above 𝐟𝑏 is the body force and 𝐋𝑇 is the matrix of partial differential

operators (for 2D and 3D).

3.3.7 Weak Form

The strong form as mentioned above, in contrast to the weak form requires strong

continuity on dependant variables. Obtaining the exact solution using the strong form

is normally very difficult. Therefore an approximate solution of the strong form is

developed known as the weak form using finite difference method. The weak form is

a reformulation of the strong form and the finite element method is established from

this weak form. The weak form of the Eq. 3.3 after rearranging can be written as

below:

δuT𝜌u

Ω

𝑑𝛺 − δuTLTσ

Ω

𝑑𝛺 = δuTb

Ω

𝑑𝛺 (Eq. 3.4)

3.3.8 Semi-discretized System of Equations

If we apply integration by parts on the spectral derivatives of Eq. 3.4 and spectral

interpolation we will get an equation of the form:

δdT NT𝜌N

Ω

𝑑𝛺. d + δdT BTDB

Ω

𝑑𝛺. d

= δdT NT

Γn

t dΓ + δdT NTb

Ω

𝑑𝛺 (Eq. 3.5)

This equation must be valid for all arbitrary values of δd . The equation above can be

written in the following generalized form:

𝐦e𝐝 + 𝐤e𝐝 = 𝐟 (Eq. 3.6)

Where

Theoretical Analysis

21

𝐤e = BTDB

Ω

𝑑𝛺 (Eq. 3.7)

𝐦e = NT𝜌N

Ω

𝑑𝛺 (Eq. 3.8)

𝐟 = NT

Γn

t dΓ + NTb

Ω

𝑑𝛺 (Eq. 3.9)

In the equation 3.9 above, the first term on the right hand side represents the forces

on the boundary and the second term represents the forces on the body itself.

The equation 3.6 above is called semi-discretized system of equations as it is

discretized (interpolated) in space but it is still continuous in time.

3.4 Computational Model

In order to be able to apply finite element method to the mathematical model

discussed above it is required to translate the mathematical model discussed above in

a form that can be implemented in a finite element method.

3.4.1 Element Mass Matrix

We will now quantify the element mass matrix using the same 1D example as above.

The mass matrix can be described by Eq. 3.8. Let the total length of the linear

element be h. Equation 3.8 can be re-written as:

𝐦e = Φi

Φi+1

h

0

𝜌 Φi Φi+1 𝑑𝑥

𝐦e = 𝜌

h

0

Φ𝑖

2 Φ𝑖 Φi+1

Φ𝑖 Φi+1 Φ𝑖+1

2 𝑑𝑥 (Eq. 3.10)

In this specific case

Φi = 1 −x

h

and

Φi+1 =x

h

Theoretical Analysis

22

Now we define the three terms different terms inside the matrix in Eq. 3.10

𝜌

h

0

Φ𝑖2𝑑𝑥 = 𝜌

h

0

(1 −x

h)

2𝑑𝑥 = −𝜌h

3[1 −

x

h]3 |0

ℎ =𝜌h

3

Similarly we derive the other two terms with the following results

𝜌

h

0

Φ𝑖 Φ𝑖+1

𝑑𝑥 =𝜌h

6

𝜌

h

0

Φ𝑖+12 𝑑𝑥 =

𝜌h

3

Substituting the values in Eq. 3.10 we get

𝐦e = 𝜌h 1

3 1

6

16

13 (Eq. 3.11)

A representation of the linear shape function used above is given in the figure below.

Figure 3-5: Liner shape function

The proper integration of the weak form leads to the “Consistent Mass Matrix”

derived in Eq. 3.11 above. An alternative for of the mass matrix is lumped mass

matrix. It is a diagonalised version of the consistent mass matrix so that the total

mass remains the same. For this project we will be using the lumped mass matrix

which is given as below:

Φi

i + 1 i

Φi+1

i+1

Theoretical Analysis

23

𝐦elump

= 𝜌h 1

2 0

0 12 (Eq. 3.12)

A lumped mass matrix provides significant advantage in terms of computational time

especially in cases where M-1

is required to be calculated.

3.4.2 Element Stiffness Matrix

Following the same 1D example and the procedure as adopted for the derivation of

element mass matrix, the element stiffness matrix is given by the equation:

𝐤e =E

h

1 −1−1 1

(Eq. 3.13)

Where h is the total length of the element and E is the modulus of Elasticity.

3.4.3 Transforming from Local Coordinates to Global Coordinates

The equations 3.12 and 3.13 are the element mass and stiffness matrices in local

coordinates system where the origin of the coordinate system coincides with the

center of the bar. To be able to extend these matrices to the whole system of bars at

different locations and orientations in the truss structure these must be converted to

global coordinate system. The figure below shows a bar element oriented at an

arbitrary angle θ with respect to X-Axis.

Figure 3-6: Bar element oriented at an angle (modified from (Alexander, 2006))

(X1, Y1)

(X2, Y2)

Theoretical Analysis

24

The displacement at a global node in 2D has two components X and Y. The

coordinate transformation gives a relation between the displacement vector 𝐝𝑒 in

local coordinates and displacement vector 𝐃𝑒 in global coordinate system:

𝐝𝑒 = 𝐓𝐃𝑒 (Eq. 3.14)

Where

𝐃𝑒 =

D𝑥1

D𝑥2

D𝑦1

D𝑦2

and

𝐓 = 𝑙𝑖𝑗 𝑚𝑖𝑗 0 0

0 0 𝑙𝑖𝑗 𝑚𝑖𝑗 (Eq. 3.15)

In which

𝑙𝑖𝑗 =𝑋𝑗 − 𝑋𝑖

𝑙𝑒

𝑚𝑖𝑗 =𝑌𝑗 − 𝑌𝑖

𝑙𝑒

Where 𝑋𝑖 , 𝑋𝑗 , 𝑌𝑖 and 𝑌𝑗 represents the global coordinates of the nodes. 𝑙𝑒 represents

the length of the finite element which can be calculated as:

𝑙𝑒 = 𝑋𝑗 − 𝑋𝑖 2

+ (𝑌𝑗 − 𝑌𝑖)2

In the case of this project as the triangular mesh is made up of elements of same

length, we will just calculate the length of one element and use it in all calculations

rather than calculating it for each element.

It can be easily verified that

𝐓𝐓𝑇 = 𝐈 (Eq. 3.16)

Where 𝐈 is an identity matrix. The matrix 𝐓 is therefore orthogonal matrix. The

transformation vector is also applicable to force vector:

𝐟𝑒 = 𝐓𝐅𝑒 (Eq. 3.17)

Substituting Eq. 3.14 in the system equation (Eq. 3.6) gives:

Theoretical Analysis

25

𝐤𝑒𝐓𝐃𝑒 + 𝐦𝑒𝐓𝐃 𝑒 = 𝐟𝑒

Pre-multiplying 𝐓𝑇 to both sides in the above equation gives us:

(𝐓𝑇𝐤𝑒𝐓)𝐃𝑒 + (𝐓𝑇𝐦𝑒𝐓)𝐃 𝑒 = 𝐓𝑇𝐟𝑒

The above equation can alternatively be written as:

𝐊𝑒𝐃𝑒 + 𝐌𝑒𝐃 𝑒 = 𝐅𝑒 (Eq. 3.19)

Where 𝐊𝑒 and 𝐌𝑒 are element stiffness and mass matrices in global coordinate

system. 𝐅𝑒 is the element force vector in global coordinate system.

3.4.4 Assembling Element Matrices

After transforming the element stiffness and mass matrices from local coordinates

system to global coordinates system, the process of assembling these matrices in to

structural stiffness and mass matrices can be performed. This process for the

structural stiffness matrix can be illustrated by the figure (Alexander, 2006) below:

Figure 3-7: Assembling structural stiffness matrix (Alexander, 2006)

A similar process is carried out to assemble the structural mass matrix.

3.4.5 Time Discretization

The semi-discretized system of equations is discrete in space but is still continuous in

time. Structural systems are normally loaded with transient excitation (Liu & Quek,

Theoretical Analysis

26

2003). Transient excitation is a dynamic time dependant force applied on to a

structural system. The method generally adopted for solving the semi-discretized

system of equation is called direct time integration.

The direct integration method is based on finite difference method for time stepping

the semi-discretized system of equations. There are two basic ideas (Bathe, 1996)

behind direct time integration. The first concept is that instead of trying to satisfy the

governing semi-discretized equation at all times t, it satisfies the equation at discrete

time steps Δt. The second concept is that the variation in displacement, velocity and

acceleration within each time step is assumed. There are two main types of direct

integration method i.e. implicit time integration and explicit time integration. The

implicit time integration is unconditionally stable and the stability of the solution

does not depend on the duration of time step selected. Explicit time integration on the

other hand is only conditionally stable. Explicit time integration is faster in terms of

computation time than the implicit time integration and is used for very fast

phenomenon such as impact loading. In this project we will be using most widely

used implicit algorithm known as Newmark method.

In the Newmark time integration it is first assumed that

Dt+∆t = Dt + ∆t D t + (∆t)2 1

2− β D t + βD t+∆t (Eq. 3.17)

D t+∆t = D t + (∆t) 1 − γ D t + γD t+∆t

Where β and γ are constants which are selected based on the desired results. Equation

3.17 is then substituted in to the un-damped system Equation (Eq. 3.16):

𝐊 Dt + ∆t D t + (∆t)2 1

2− β D t + βD t+∆t + 𝐌D t+∆t = 𝐅t+∆t

By grouping all the terms containing D t+∆t on the left hand side and shifting the

remaining terms to the right, the equation becomes:

𝐊𝐌D t+∆t = 𝐅𝑡+∆𝑡residual (Eq. 3.18)

Theoretical Analysis

27

Where

𝐊𝐌 = [𝐊β ∆t 2 + M]

And

𝐅𝑡+∆𝑡residual = 𝐅t+∆t − 𝐊 Dt + ∆t D t + (∆t)2

1

2− β D t

The acceleration D t+∆t can now be obtained by solving equation 3.18:

D t+∆t = 𝐊𝐌−1𝐅𝑡+∆𝑡

residual (Eq. 3.19)

As this process involves matrix inversion so it requires matrix inversion so it is

similar to solving matrix equation thus making this method implicit.

The algorithm generally starts with predefined initial values of displacement and

velocity. If the initial value of acceleration is not know, it can be obtained by putting

values of displacement and velocity in to the system matrix. The acceleration D t+∆t

can then be calculated by using equation B. After the acceleration D t+∆t is calculated,

the displacement and velocity at time t+Δt can be calculated by using the relations x

and v above.

This is the general form of the Newmark method. Using the value of β as 1

4 yields the

constant average acceleration method. For this project the constant average

acceleration method will be used with value of β as 1

4 and γ as

1

2. All the equations

used above are linear. Therefore it is possible to solve the system of equations for

displacement rather than acceleration. In this project, displacement is calculated first

and rest of the values are calculated from that displacement.

Application Development

28

44 AAPPPPLLIICCAATTIIOONN DDEEVVEELLOOPPMMEENNTT

In the previous chapter actual structure, working model, mathematical model and

computational model were discussed. In this chapter we will go through the

implementation of the computational model by developing a finite element method

based application using MatLab. MatLab is a high-level technical computing

language and interactive environment for algorithm development, data visualization,

data analysis, and numeric computation. The ease of use of matrices and matrix

operations makes MATLAB quite efficient for the development of an application

involving numerous matrices and matrix operations.

Effort was made to make the application developed both flexible and efficient. The

code name for the developed application is Helium. The relevance of the name

Helium is that Helium‟s atom is the simplest atom that cannot be solved using an

exact analytical mathematical approach. Instead numerical mathematical methods are

employed for solving even a simple atom consisting of one nucleus and two

electrons.

The program execution flowchart is displayed on the next page. Some of the minor

details of the execution of the program are not included in this flow chart and would

be described in the sections to come. Each step in the flow chart will be described in

detail with the inputs and outputs with available options for each step. This chapter

will also act as a user guide for using the application or further development in the

future.

Application Development

29

Bu

y S

ma

rtD

raw

!- p

urc

ha

se

d c

op

ies p

rin

t th

is

do

cu

me

nt

with

ou

t a

wa

term

ark

.

Vis

it w

ww

.sm

art

dra

w.c

om

or

ca

ll 1

-80

0-7

68

-37

29

.

Fig

ure

4-1

: P

rogra

m e

xec

uti

on

flo

wch

art

Application Development

30

4.1 User Interface

All the user inputs and messages generated by Helium are displayed at the command

window. Deflected shapes and graphs are displayed in a maximized figure window.

All the outputs from the program like movie file, screen captures, graphs and

variables are stored in a unique folder and the user is notified the location of this

folder and files by a message on the command window. The graphs, screen captures,

movie file having the animation of the analysis variables are stored so that the user

can further analyze the results or perform further operations on the generated

variables.

4.2 Initialize System (Helium.m)

The application developed (call it helium from here onwards) initializes the system

environment before taking the user input. Helium.m is the main file which calls all

the other function files for performing different operations. Operations to initialize

the system environment are called directly by Helium.m. This involves clearing all

the variables from the memory, clearing the command window, clearing any figures

and closing these figure windows. The process is summarized in figure below.

Figure 4-2: Initialize system environment

There are two other operations performed during initializing the system for the

analysis. The first one is to find resolution of the current display and store

information regarding length and width of the current display. This information is

passed on to the plotting function (Plot2D.m) so that a fully maximized figure

window can be loaded. The other function is to get program run counter variable

from an external file ProgramRunCounter.mat. This variable is used for creating

Application Development

31

unique output folders for each analysis outputs. The variable is incremented by 1 and

saved in the external file ProgramRunCounter.mat for any subsequent runs.

The MatLab environment is ready to start with other operations after the MatLab

environment is initialized.

4.3 Getting User Input (GetUserData.m)

Helium is quite flexible when it comes to providing different customizable options

related to almost every operation. In this section we will go through the different user

inputs that the program gets from the user. Options for each input are also described.

Default values for every input option are already entered in the program making it

much easier and user friendly. Although some of the inputs are gathered from the

user at different stages, however we will go through all the available user inputs in

this section.

4.3.1 Analysis Geometry

The user input for the length and depth of the beam are asked from the user. The

dimensions for the length and height are in meters and the default values are 1.0 m

for length and 0.4 m for depth of the beam. The length of the finite element bar is

also required to be entered in millimeters. The default finite element length value is

15 mm. All the three inputs can range to any values, but user should be careful as not

to enter too large dimensions or too small finite element length as the system may get

out of memory due to very large number of finite elements. The process is

summarized in figure below.

Figure 4-3: Analysis geometry input

Application Development

32

One of the functions in getting any user input in Helium is catching any empty values

entered by the user. Any empty value entered by the user may eventually lead to an

error during subsequent operation as the variable in which that value is stored would

be null. If a user enters a null value, the default value for that variable is stored in the

variable instead and the user is notified through a message on the command window.

4.3.2 Dynamic Analysis Time and Loading

The dynamic analysis time duration, time step and dynamic load behavior are

required to be input at this stage of Helium input. There are three types of dynamic

load behaviors incorporated in the program. The first one is a constant dynamic load

from time 0 to end time. The second one is a linearly increasing load from time zero

to a mid time and then constant from mid time to end time. The third option is a

linearly increasing load from time 0 to end time. These three types of loading

behavior are illustrated in the figure below.

Figure 4-4: Dynamic load behavior

When the user opts for constant load or linearly increasing load from time 0 to end

time, the subsequent inputs required are time step and end time. The values are

Application Development

33

entered in seconds and the default value for time step is 0.0001 seconds and end time

is 0.02 second. If the user opts for linearly increasing load from 0 to middle time and

constant loading thereafter, the user is required to input time step, middle time and

end time. The default value for middle time is 0.01 seconds. The process is

summarized in the figure below.

Figure 4-5: Dynamic analysis time and loading behavior input

4.3.3 Material Properties

Different options are provided for defining material of the beam. These options

include 3 pre-defined concrete mixes, steel and an option to define a custom

homogenous material. The properties for the three concrete mixes are hard coded

with each concrete mix having different tensile strength, different type of aggregate

and bond strength between aggregate and cement-sand matrix. The properties for

steel are also hard coded. The user will have to enter material properties like density,

modulus of elasticity and ultimate tensile strength if opting for custom homogenous

material. The process is summarized in the figure below.

Figure 4-6: Input for material properties

Application Development

34

A simple extension which would make the program more flexible is to provide an

option for the user to be able to define custom homogenous material as well by

entering the properties for the custom homogeneous material.

4.3.4 Support Conditions

Two types of support conditions are provided for the beam i.e. simply supported

beam and cantilever beam. An option a third support condition is provided in the user

input informing the user in which file changes should be made to develop a new

support condition. These options are illustrated in the figure below.

Figure 4-7: Support conditions input

4.3.5 Load Patterns

Seven different options are provided for applying loads to the beam. The value of

load is defined by the user however default values for all the loads are provided if the

user does not enter any value. Three basic types of loading i.e. point load, universally

distributed load and varying distributed load are provided. The seven load patterns

consist of any one of these or a combination.

The first load pattern is a single concentrated load at the center of the beam. The

second load pattern is two concentrated loads at 1/3 and 2/3 of length of the beam.

The third and fourth load patterns are UDL and VDL on full length of the beam. The

fifth and sixth options are UDL and VDL on middle 1/3 length of the beam. The final

option called the special case is required to be defined by the user before it could be

assigned. The values of these loads are required to be provided by the user but

default values are present if the user misses out any value. The loads are required to

be entered in kN for concentrated loads and in kN/m for UDL and VDL loadings.

The figure below illustrates different available options.

Application Development

35

Figure 4-8: Load pattern input

4.3.6 Output Options

A number of options are defined in the application for generating and saving outputs

of the application. The application can plot time histories or displacement, velocity,

acceleration and reaction forces. It also captures the stress distribution figures of the

analysis at each time step. These screen captures are saved in enhanced meta file

(emf) format. A movie is also generated in AVI file format of the complete analysis.

All the variables generated during the analysis are also stored in a MatLab file which

is useful for further analysis of a specific test. It is up to the user to select what data

needs to be generated and saved. The three basic options are generating all outputs,

no outputs and custom outputs. The first option generates all the data and graphs.

The second option is does not generate any graphs, screen captures or movies but

saved all the output variables. This option is much faster and can be applied to

analysis having very large beam dimensions or very small finite element sizes. The

variables generated can then be analyzed manually. The third option gives the user a

choice of exactly which data to generate and save. These options are illustrated in the

figure below.

Figure 4-9: Output options

Application Development

36

4.4 Initializing Model Based on User Input

After getting all the user inputs, the finite element model is initialized based on the

user input. This involves generating nodal coordinates, generating finite elements,

initializing material properties, initializing heterogeneity for heterogeneous materials,

initializing boundary conditions, initializing load pattern, generating element mass

and stiffness matrices and assembling these matrices in structural mass and stiffness

matrices. Each of these steps is defined briefly in the section below.

4.4.1 Generating Nodal Coordinates (InitialCoordinates.m)

Based on the geometry and the finite element length entered by the user, the nodal

coordinated for all the nodes are generated and stored. The algorithm implement is

flexible and is theoretically able to generate nodal coordinates for any beam

dimensions and finite element length.

4.4.2 Generating Finite Elements (InitialElements.m)

After generating nodal coordinates, finite elements can be numbered with the nodes

to which the finite element is attached.

4.4.3 Initializing Material Properties (InitMaterialProperties.m)

Based on user input the material properties of density, modulus of elastic and

ultimate tensile strength are assigned to variables. These variables are used while

generating element mass and stiffness matrices and to check element stress level.

4.4.4 Initializing Heterogeneity (InitHeterogeneity.m)

For heterogeneous materials, three different sets of material properties are defined

while initializing the material properties. These three sets are for aggregate, cement

sand matrix and the interface between aggregate and cement sand matrix. Different

sizes of aggregates are randomly generated and distributed throughout the beam. The

algorithm is designed such that aggregates do not overlap each other aggregates to a

certain degree of accuracy. The material properties for each finite element is assigned

based on the region it is located. This function is not invoked in case of a

homogenous material selected by the user.

Application Development

37

4.4.5 Initializing Boundary Conditions (InitBoundaryConditions.m)

The essential boundary conditions are initialized based on the support conditions

selected by the user. The displacement values for all the nodes at the supports are

prescribed as zero in the direction in which displacement is restrained.

4.4.6 Initializing Load Pattern (InitLoads.m)

The load pattern and load values selected by the users are applied on to the nodes.

The concentrated loads are applied at a single node where as the distributed loads are

divided by the length on which the load is applied and distributed on the nodes as

point loads on that length.

4.4.7 Computing Element Matrices (ElementMassAndStiffnessMatrix.m)

The program generates the element stiffness and mass matrices for each element. The

properties of each finite element are already defined for homogeneous and

heterogeneous materials. These properties are used to generate the stiffness and mass

matrices for each element in global coordinates system.

4.4.8 Assembling Structural Matrices (AssembleGlobalMatrices.m)

The assembling of structural stiffness and mass matrices is done in the same lope in

which the element mass and stiffness matrices are computed. The element mass and

stiffness matrices are generated for each element and are assembled in a pre-

allocated sparse structural mass and stiffness matrices. Using sparse matrices

increases the computation time in subsequent operations on these matrices.

4.5 Dynamic Analysis

After initializing all the model variables and assembling structural matrices, the main

dynamic analysis loop is executed. The operations in this section are carried out at

each instance of the dynamic analysis time integration loop. The number of iterations

of the loop depends on the end time and the time step calculated by dividing the end

time by time step.

4.5.1 Load Factor (Helium.m)

The load factor is used to generate the loading factor for the dynamic load. This

depends on the middle time (if any) and the end time selected by the user. The

Application Development

38

loading factor is multiplied with the force vector for each instance to increase the

load.

4.5.2 Computing Displacements (Helium.m)

Newmark constant average acceleration is implemented in the code to compute

displacements for all nodes in both degrees of freedom at each instant. The initial

velocities and accelerations at time 0 are prescribed to be zero.

4.5.3 Computing Velocities and Accelerations (Helium.m)

After the computation of displacements, the velocities and accelerations for all the

nodes can be computed for each instance of time step. These accelerations and

velocity values are used in the subsequent iteration to compute displacement.

4.5.4 Axial Force Calculations in Finite Elements (ElementAxialForce.m)

This process is performed in a sub-loop of the main integration loop. The axial forces

for all the finite element analysis are calculated. These values are used to check if an

element stress level exceeded the allowable stress limit in the subsequent steps in the

same loop.

4.5.5 Removing Element Mass and Stiffness of Failed Elements (Helium.m)

If the element stress level of an element exceeds from the ultimate tensile strength of

an element, the element mass and stiffness values are removed from the structural

mass and stiffness matrices. This is done through a function defined in the file

DisAssembler.m. The element mass and stiffness matrices for the failed elements are

again calculated and are removed from the structural matrices.

4.5.6 Element Stress Levels

The colour in which an element is plotted for each of the iterations depends on the

tensile stress level of that element. Each element is assigned a tag depending on the

level of tensile stress. These tags are subsequently used to plot these elements in the

defined colour. The elements which exceed ultimate tensile strength level are

permanently assigned red colour. The colour codes for element stress levels are given

in the table below:

Application Development

39

Table 4-1: Color codes for element stress levels

Element Tensile Stress (ETS) Assigned Colour

Greater than Ultimate Tensile Strength (UTS) Red

0.75 UTS < ETS < UTS Magenta

0.5 UTS < ETS < 0.75 UTS Yellow

0.25 UTS < ETS < 0.5 UTS Blue

0 < ETS < 0.25 UTS Cyan

No Tensile Stress Green

4.5.7 Calculating Reaction Forces

After computing all the element axial forces, the reactions at the support are

calculated. These reactions are used later on to generate time history graphs for

reaction forces.

4.6 Program Outputs

The program generates almost all possible time histories and plots the information.

Screen captures displaying stress levels in the finite elements are also generated. In

addition a movie displaying the visual displacement of the beam is also generated.

These outputs are discussed briefly in the following section with sample outputs.

4.6.1 Time Histories

Time histories for nodal displacement, nodal velocity and nodal acceleration in both

x and y direction are plotted and the output is saved as enhanced meta file. The time

histories for reactions at the support are also plotted. A sample time history of

displacement, velocity and acceleration of the loaded node is displayed in the figure

below.

Application Development

40

Figure 4-10: Sample output of time histories generated by the program

The sample outputs for reaction time history as generated by the program are

displayed in the figure below.

Figure 4-11: Sample output of reaction time history generated by the program

4.6.2 Stress Pattern

The stress pattern in all the finite elements of the beam is plotted at each instance of

time step. This stress pattern is saved as an enhanced meta file which helps in

visually identifying the stresses at different location of the beam. A sample of the

stress pattern screen capture saved by the program is displayed in the figure below.

Figure 4-12: Stress pattern generated by the program

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-0.1

0

0.1

0.2

0.3

0.4

X-Axis

Y-A

xis

Crack Simulation - Dynamic Loading

Application Development

41

4.6.3 Deflection and Stress Pattern Animation

An animation displaying the scaled deflection and stress pattern of the beam at all

instances of the time step is generated and is saved in AVI file format. This

animation gives a general overview of failure of the beam and the stresses in

different locations of the beam. A sample animation has been included in the

attached CD.

4.6.4 Program Variables

All the program variables generated during the analysis are saved in a MatLab file.

This file may be used to perform further analysis on any test of interest if required.

4.7 Program Exit

After completing the analysis and saving all the outputs, the program clears the

memory of all the variables. It also displays messages on the command window

informing the location of the program output.

The program code including all the MatLab files has been included in the CD with

this dissertation. This chapter has been included with the code as a user guide. Some

sample outputs from the program have also been included in the CD.

Research Methodology

42

55 RREESSEEAARRCCHH MMEETTHHOODDOOLLOOGGYY

In this chapter we will be focusing on the research methodology adopted for this

dissertation. A number of tests were performed on the application developed in an

effort to get answers for the dissertation hypothesis. The output data from the

application was then analyzed and some results were deduced from this analysis. The

general procedure for carrying out these tests and detailed description of tests with

interesting results are discussed in this chapter

5.1 Application Development

Developing the application on which the tests could be carried out was the first step.

The working model, mathematical model and computational model of the application

developed had already been discussed in chapter 3. The detailed implementation of

the computational model for the development of the application was discussed in the

previous chapter. The decisions taken while developing the application were

dependant on the hypothesis of this dissertation. The choice of dynamic analysis was

made so that mechanism of cracked parts of the member would not cause any

problems. The implementation of heterogeneous material modeling was executed to

be able to see the material behavior under tested under dynamic loading. The

selection of bar element as the finite element for the analysis was carried out as it

would be quite difficult to relate the overall shear and moment capacity of

heterogeneous material like concrete to finite elements like beam elements. Implicit

time integration scheme was selected as it is unconditionally stable. These were some

of the key driving principles which dominated the application development.

Research Methodology

43

5.2 General Procedure for Performing Tests

The tests that were carried out were selected carefully such that results that would

prove to be useful for this dissertation could be obtained. The application developed

was carefully optimized for faster performance so that the time taken for the tests

could be minimized. Still each test performed required at least more than 2 hours to

get completed. Some of the tests with very small finite element length or very large

dimensions for the beam even took longer than 6 hours to be completed. This proved

to be a constraint as limited number of tests could be performed.

A general rule applicable to all tests was that only one parameter was changed for

one specific type of test. This would result in understanding the effects specifically

from that changed parameter and changes in results would not be confused with any

other parameter.

All of the possible outputs like element stress patterns at different times, time

histories of displacement, velocity and acceleration at a number of locations across

the beam, rate of failure of elements, reaction forces and the animation of the beam

under dynamic loading were generated and recorded for each tests. The program

variables for each test were also saved so that further analysis of different variables is

possible at a later stage.

5.3 Program Outputs

Almost all possible outputs were being generated by the program. The outputs that

were analyzed for each test are given below.

5.3.1 Inspected Nodes

A number of nodes across the beam were selected and the values of displacement,

velocity and acceleration at each time step were recorded for these nodes. We will

call these nodes inspected nodes. In the vertical direction, the inspected nodes were

located along the top, bottom and middle of the beam. Horizontally, the same nodes

were located right next to beam supports on both sides, at a distance of one fourth of

beam length from the beam supports, at a distance of one third of beam length from

the beam support and at the middle of beam length. The total number of inspected

nodes was thus 21. The location of these nodes is displayed in the figure below.

Research Methodology

44

Figure 5-1: Inspected nodes for a beam marked with squares

In the figure above, the nodes at the center of the small squares were inspected for

displacement, velocity and acceleration at each time step.

5.3.2 Displacement-Time History

Displacement values at each time step for loaded nodes and inspected nodes were

recorded. A displacement-time history was then plotted using these values and was

analyzed for each test.

5.3.3 Velocity-Time History

Velocity values at each time step for loaded nodes and inspected nodes were

recorded and plotted. These plots were analyzed for each test.

5.3.4 Acceleration-Time History

Acceleration values at each time step for all loaded nodes and inspected nodes were

recorded and a graph between the time and acceleration was plotted. The plots were

analyzed to study the pattern of acceleration changes for each test.

5.3.5 Reaction Forces

All the possible reaction forces in both X and Y direction were calculated and

recorded. These reaction forces were then plotted against time to get the time history

of these reaction forces as the analysis continued. The reaction forces for all the tests

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-0.05

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

X-Axis

Y-A

xis

Crack Simulation - Dynamic Loading

Research Methodology

45

were analyzed and compared to check the influence of changing any parameter on

the reaction forces.

5.3.6 Stress Pattern

The stress pattern and the pattern of failed finite elements across the beam was

recorded and analyzed for each test. This pattern was recorded by the program by

saving screen captures of the stressed beam at each time step instance.

5.3.7 Rate of Failure of Finite Elements

The number of finite elements failing at each time step was stored. The influence of

changing a parameter on the rate of failure of finite elements analyzed and compared

for each test.

5.3.8 Animation of Loaded Beam

The video compiled by the program by putting frames of the stressed beam captured

at each time step were saved by for each step. The animation presents a general idea

of the behavior of the beam and motion of impulsive waves through the beam.

5.4 Analyses Performed

Different sets of analysis were performed by varying different parameters. Some of

the test group results were not taken in to consideration as there was no significant

change in the outputs or the results seemed to be irrelevant. Four groups of analyses

performed are discussed below with a commentary on the observed outputs.

5.4.1 Effect of Changing Finite Element Length

In this test the effect of changing the finite element length was analyzed. A range of

lengths for the finite element was selected and all the other properties were kept

constant. The velocity-time history for any of the nodes in the analysis group did not

show a specific pattern. However, there was a visible pattern of displacement-time

histories and acceleration-time histories. The reaction forces also acted in a pattern

similar to the pattern of load application. The parameters which remained unchanged

during the analysis are given below:

Research Methodology

46

Table 5-1: Unchanged parameters for test 1

Parameter Value

Load 95 kN Concentrated load at mid span

Time step 0.0001 sec

End time 0.02 sec

Support condition Simply supported

Beam material Heterogeneous (Concrete mix 1)

Beam dimensions 1.0m x 0.4m

Five analyses were carried out for this test with finite element length as 5mm, 10mm,

15mm, 20mm and 25mm.

No significant changes were observed in displacement-time history or reaction-time

history graphs. The stress pattern was similar but could not be compared due to

different element sizes. The displacement-time histories for all the five analysis of

the loaded node are displayed in the figure below.

Figure 5-2: Displacement-Time histories of loaded node for test 1

The peak values for the displacements in all the analyses are almost the same.

However, frequency of peaks increases slightly with the increase in element length.

-6

-4

-2

0x 10

-4 Displacement-Time Histories

-6

-4

-2

0x 10

-4

-6

-4

-2

0x 10

-4

Dis

pla

cem

ent

(m)

-6

-4

-2

0x 10

-4

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02-6

-4

-2

0x 10

-4

Time (sec)

5mm

10mm

15mm

20mm

25mm

Research Methodology

47

The only significant influence of changing the finite element length appeared in the

acceleration-time history graph. The figure below displays the acceleration-time

history of the node that was loaded with the concentrated load at the mid-span.

Figure 5-3: Acceleration-Time history of loaded node for test 1

The acceleration values are higher when smallest size for the finite element of 5mm

was selected. These values keep on decreasing as the finite element length is

increased. This can be explained by the fact that the acceleration history of a single

node was recorded for these analyses. In case of a smaller finite element length, the

lumped nodal mass on that node was small as the elements attached to this node were

small in length. Similarly, the nodal mass of the loaded node was higher when the

length of the finite elements attached to that node increased. This resulted in large

value of accelerations for the nodes with smaller masses when the force applied was

the same and vice versa.

An improved method of applying the loads to meshes with different element lengths

is to distribute the point load to a number of nodes depending on the element length.

Also a correction factor can be applied to the values of the acceleration depending on

the element length and nodal mass of the node on which the load is applied. The

magnitude of acceleration may be adjusted by doing so but the shape of the graphs

would remain the same in X-direction.

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.020

2

4

6

8

10

12x 10

5

Time (sec)

Acce

lera

tio

n (

m/s

ec

2)

Acceleration-Time History

5 mm

10 mm

15 mm

20 mm

25 mm

Research Methodology

48

5.4.2 Effect of Changing Loading Rate

The second analysis performed was observing the effect of changing the loading rate

on the beam. The loading rate was varied from being constant from time 0 to end

time to being linearly increasing from time 0 to end time in 5 steps. The parameters

which remained unchanged during the analysis are given in the table below:

Table 5-2: Unchanged parameters for test 2

Parameter Value

Load Two 15 kN Concentrated loads on 1/3 and 2/3 of span

Support condition Simply supported

Beam material Heterogeneous (Concrete mix 2)

Beam dimensions 1.0m x 0.4m

Finite element length 10mm

The changing parameters are the middle time and time durations for the 5 tests are

given in the table below:

Table 5-3: Varying parameters for test 2

Analysis No. Description

1 Constant load from time 0 to 0.02

2 Linearly increasing load from time 0 to 0.005, constant from time 0.005 to 0.02

3 Linearly increasing load from time 0 to 0.01, constant from time 0.01 to 0.02

4 Linearly increasing load from time 0 to 0.015, constant from time 0.015 to 0.02

5 Linearly increasing load from time 0 to 0.02

A number of observations were made during these analyses which were closely

related to one of the hypothesis of the dissertation. As the rate of loading decreased

from being constant to linearly increasing from time 0 to end time, the rate of finite

elements failing decreased as well as expected. The reaction forces also responded in

a similar fashion, increasing as with the load increasing. The comparison between

displacement-time histories and acceleration-time histories is shown in the figures

below. The graph for analysis 1 was not plotted in the same graph as the acceleration

values and displacement values for analysis 1 were very high and could not be

related to the other tests. The displacement-time history graph for the analyses is

shown below.

Research Methodology

49

Figure 5-4: Displacement-Time history for test2

The displacement-time history displayed above reflects a similar characteristics

displayed by static tests. As the load increases, the deflection of the beam increases.

This is an important observation as it relates to one of the dissertation hypothesis. As

the rate of loading decreases, the analysis tends to behave more like a static test.

Thus it may be possible to model static tests using dynamic implementation.

The acceleration-time history also tends to display a similar conclusion. As the

loading rate is high, the acceleration values are high. But as the loading rate

decreases, the peak acceleration values also decrease. The acceleration-time history

graph also strengthens the conclusion reached by inspecting the displacement-time

history graph. Thus it can be assumed that it is possible to model static tests using

dynamic implementation provided the loading rate is kept gradual. The more

gradually the load is applied, the better the chances of the test result matching a static

model. The acceleration-time history graph is displayed in the figure below.

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02-6

-5

-4

-3

-2

-1

0x 10

-5

Time (sec)

Dis

pla

ce

me

nt

(m)

Displacement-Time History

Analtsis 2

Analysis 3

Analysis 4

Analysis 5

Research Methodology

50

Figure 5-5: Acceleration-Time history for test 2

The graph above shows clearly that as the rate of loading is decrease, the peak values

of the acceleration at the node also decrease.

5.4.3 Effect of Changing the Aspect Ratio of the Beam

The last test that will be discussed in this dissertation is the effect of changing the

aspect ratio of the beam. In this test, all the other parameters of the test were kept

constant and the aspect ratio of the beam was changed. The constant parameters for

this test are given in the table below.

Table 5-4: Unchanged parameters for test 3

Parameter Value

Load 15 kN Concentrated load at mid span

Support condition Simply supported

Beam material Heterogeneous (Concrete mix 3)

Finite element length 20mm

Time step 0.0001 sec

End time 0.02 sec

The changing parameter of length and height for this test are given in the table

below.

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.020

200

400

600

800

1000

1200

Time (sec)

Accele

ration (

m/s

ec

2)

Acceleration-Time History

Analysis 2

Analysis 3

Analysis 4

Analysis 5

Research Methodology

51

Table 5-5: Varying parameters for test 3

Analysis No. Beam Dimensions

1 2.0m x 1.0m

2 3.0m x 0.8m

3 4.0m x 0.6m

The observations made during this test was that as the length of the beam increased

and the depth decreased, the displacement and acceleration values kept on increasing.

For the third analysis, after time 0.003, the beam practically had failed. Any beam

with length to depth ration higher than test 3 would fail in a similar fashion. This

result coincides with simple experimental results that slender beams tend to fail at

lower loads. The diagram for stresses in beam elements and failed elements around

the mid span for test 3 at time 0.0034 seconds is displayed below.

Figure 5-6: Stresses and failed elements around mid span

The results shows relevance to general behavior of beams observed practically. If the

length of the beam is more as compared to its depth, the beam is likely to fail at by

cracking. The failure of the beam in the analysis simulates brittle behavior. As soon

as some of the elements fail, the whole beam fails rapidly in a very short period of

time. This is a characteristic of brittle failure where there is little or no yielding of the

material before failure.

The displacement-time history for the same analysis is displayed below showing a

sudden failure at time around 0.0034 sec.

0 0.5 1 1.5 2 2.5 3 3.5

-0.5

0

0.5

1

X-Axis

Y-A

xis

Crack Simulation - Dynamic Loading

Research Methodology

52

Figure 5-7: Displacement-Time history for loaded node for test 3, analysis 3

The acceleration-time history for the analysis is displaying a similar characteristic

where the magnitude of acceleration becomes very high and irregular after failure.

Figure 5-8: Acceleration-Time history for loaded node of test3, analysis 3

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02-5

-4

-3

-2

-1

0

1

2

3x 10

-4

Time (sec)

Dis

pla

cem

ent

(m)

Displacement-Time History

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.020

0.5

1

1.5

2

2.5

3

3.5

4

4.5x 10

4

Time (sec)

Acce

lera

tio

n (

m/s

ec

2)

Acceleration-Time History

Research Methodology

53

5.4.4 Effect of Heterogeneity

The last test that is included in this chapter is the effect of heterogeneity on the

behavior of the beam. Two analyses were performed for this test. In the first analysis

only cement-mortar matrix was considered without any aggregates. In the second

analysis, aggregates were added to the same cement-mortar matrix.

Table 5-6: Unchanged parameters for test 4

Parameter Value

Load 23 kN Concentrated load at mid span

Support condition Simply supported

Beam dimensions 1.0m x 0.4m

Finite element length 10mm

Time step 0.0001 sec

End time 0.02 sec

The changing parameter was heterogeneity of the material as aggregate was added to

the same cement-sand matrix in the second analysis. There was no significant change

in any of the time histories. This means that the influence of heterogeneity on a

structural level is minimal. The displacement-time histories of the loaded nodes of

both the analyses are displayed in the figure below.

Figure 5-9: Displacement-Time histories of loaded nodes for test 4

The elements that were around the aggregate in the second analysis of material with

aggregate failed as the analysis continued. The screen capture of the analysis without

aggregate at the end of dynamic analysis is displayed below.

-1.8

-1.6

-1.4

-1.2

-1

-0.8

-0.6

-0.4x 10

-4 Displacement-Time Histories

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02-16

-14

-12

-10

-8

-6

-4

-2x 10

-5

Time (sec)

Dis

pla

ce

me

nt

(m)

Without Aggregate

With Aggregate

Research Methodology

54

Figure 5-10: Axial forces in finite elements (analysis without aggregate)

The screen capture of the analysis having the aggregates is given in the figure below.

Observe that the elements on the aggregate matrix interface failed for heterogeneous

material.

Figure 5-11: Axial forces in finite elements (analysis with aggregates)

The behavior of stresses around the aggregate signifies the influence of heterogeneity

at a local level. This certainly influences the crack propagation in the material.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.1

0

0.1

0.2

0.3

0.4

X-Axis

Y-A

xis

Crack Simulation - Dynamic Loading

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-0.05

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

X-Axis

Y-A

xis

Crack Simulation - Dynamic Loading

Conclusion

55

66 CCOONNCCLLUUSSIIOONN

The results from a number of tests performed using the application developed and

discussed in the previous chapter. Based on the results of the analyses carried out the

following conclusions were reached:

1. It may be possible to model static tests using a dynamic implementation. In

such cases, the loading rate should be gradually increased. The results from a

gradually increasing load test using dynamic implementation resembles

closely with the results from a static test. This proves the basic hypothesis of

this dissertation to be true.

2. The results from the aspect ratio analysis test demonstrate that slender beams

tend to fail at a lower load in a brittle manner. This analysis result is

compatible with the practical behavior of concrete beams.

3. Heterogeneity of material does not have any significant effect on overall

structural responses like reaction forces or displacement of a specific point on

the beam.

4. Heterogeneity of material does have a profound effect in the area around the

aggregate where the elements on the aggregate-matrix interface are among

the first elements to fail.

6.1 Summary of Achievements

Most of the aims and objectives set during the dissertation plan for this dissertation

have been achieved. High level objective of implementing material heterogeneity

Conclusion

56

which depended on availability of time was also achieved during the course of this

dissertation. Below is a summary of main achievements of this dissertation:

1. Two flexible options were provided for mesh generation. Theoretically a

mesh for any beam dimensions with any size of finite element can be

generated using the algorithm.

2. The basic implementation of time integration schemes was studies and

implemented

3. A dynamic analysis using implicit time integration based on Newmark

constant average acceleration was implemented.

4. An algorithm to find out the axial forces in a bar element. If the bar forces in

any element exceeds the ultimate tensile strength of the bar, the stiffness and

mass of that element are removed from the structural stiffness and mass

matrix. This implementation simulated removal of the bar element from the

mesh.

5. Implementation of heterogeneity in the material was accomplished. Different

sized aggregates were randomly distributed throughout the beam. Different

properties were assigned to elements based on the region in which the finite

element was located.

6. A solution capable of assigning weaker material strength at the boundary of

aggregates hence simulating interfaces between aggregate and cement/sand

matrix was implemented.

7. The stresses and cracks in the beam were simulated by assigning different

colors to the element with certain level of tensile stresses.

8. The program is capable of generating time history graphs, screen captures

and animation movies for each analysis run.

9. A number of tests were performed using the developed application. Some

interesting results were obtained from these analyses.

10. The basic hypothesis of this dissertation was found to be correct after

studying the results from the analysis. It is possible to model static tests with

dynamic implementation.

11. A few other conclusions were also made from the results as given in the

section above.

Conclusion

57

6.2 Recommendations

Owing to time limitation, a very simple approach was taken towards accomplishing

this dissertation. During the course of this dissertation a few observations regarding

possible enhancement in the project and future work were made. These

enhancements and possible future research are summarized below:

1. The aggregate shape incorporated in this dissertation was approximated as

circular shaped aggregates with four possible sizes. In reality, aggregates are

irregularly shaped in a variety of sizes. A possible future enhancement to the

project can be modeling these irregular shaped aggregates with different

sizes.

2. A 2 dimensional approximation of a solid was adopted for the course of this

dissertation. To simulate the behavior of crack propagation in a solid closely,

a 3 dimensional extension of the model is recommended.

3. One of the areas of research may be the effect of local orientation of a finite

element with respect to the structure. If a bar element is used as a finite

element, the properties assigned to the bar element might be changed based

on its location in the structure and orientation. This may hold true for other

types of finite elements as well. Experimental data of stress at different

locations of the structure may be collected and the model can be improved by

relating these stresses to the local finite elements.

4. There is a significant stress concentration at the crack tip. In this dissertation

a constant mesh density was adopted for the whole structure. It would be

more efficient and accurate if the mesh in the area around the crack is refined.

This may be accomplished by automatic mesh refinement algorithm which

will give more accurate results and will be more efficient as regard to

computer time.

5. The experimental data of failure mode of concrete exhibits a difference in

failure modes of concrete depending on the loading rate. In case of a sudden

impact on the concrete, the crack might pass through aggregates rather than

finding the path of least resistance around the aggregate. This behavior of

concrete failure should be studied and effects of loading rate on concrete

fracture behavior can be modeled.

Conclusion

58

6. An interesting extension to this dissertation can be the comparison of using

different types of finite elements and their effect on crack propagation and

failure pattern. A simple extension can be the use of beam elements instead of

bar elements in the same project. The global properties of the material in this

case should be related to the finite element properties of the beam element.

7. The lattice model or mesh can be generated in a variety of different ways.

The effect of using different lattice models should be studied and compared.

8. Incorporating non-linear behavior of material may be another interesting area

in which research may be carried out.

9. No plastic deformation in finite elements was considered during the course of

this dissertation. In practice, plastic deformation does occur even in brittle

materials. Plastic deformations in finite elements may be incorporated in the

material and the change in behavior due to plastic deformation may be

studied.

10. Random placement of aggregates was incorporated in this dissertation. A

much more accurate representation would be statistical distribution of

aggregate in the material based on standard sieve analysis of practical

concrete mixes.

11. Some very fine cracks are inherently present due to the differences in

mechanical properties of the materials at the interface of aggregate and

cement-sand matrix even before concrete is loaded. These micro-cracks

initiate the cracking process in concrete. These micro-cracks can be

incorporated in the model while initializing the model before the load is

applied.

With these recommendations we reach the end of this dissertation. The list of files

MatLab files used in the application and a short description of their function has been

included as appendix A. The MatLab code for the main file which calls all the sub-

functions is included in appendix B. The author hopes you enjoyed reading through

the dissertation.

References

59

RREEFFEERREENNCCEESS

Abraham, F. F., Robert, W., Huajian, G., Mark, D., Tomas, D. D., & Mark, S.

(2002). Simulating materials failure by using up to one billion atoms and the world‟s

fastest computer: Brittle fracture. Proceedings of the National Academy of Sciences

of the United States of America. 99 no.9. California: PNAS.

Alexander, N. A. (2006). Introduction to Finite Element Analysis for Skeletal

Structures. University of Bristol.

Bathe, K. J. (1996). Finite Element Procedures. New Jersey: Prentice-Hall, Inc.

Ince, R., Arslan, A., & Karihaloo, B. L. (2002). Lattice modelling of size effect in

concrete strength. (70).

Janssen, M., Zuidema, J., & Wanhill, R. J. (2004). Fracture Mechanics (2nd Edition

ed.). Oxfordshire: Spon Press.

Liu, G. R., & Quek, S. S. (2003). The Finite Element Method - A Practical Course.

Elsevier Science Ltd.

Mehta, P. K., & Monteiro, P. J. (2006). Concrete - Microstructure, Properties and

Materials (3rd Edition ed.). McGraw-Hill.

Neville, A. M. (1995). Properties of Concrete (4th Edition ed.). Longman Group

Limited.

Sadd, M. H. (2009). Introduction to Finite Element Methods. University of Rhode

Island.

Schlangen, E., & Garboczi, E. J. (1997). Fracture Simulation of Concrete using

Lattice Models: Computational Aspects. 57 (2/3), 319-332.

Schlangen, E., & Van Mier, J. G. (1992). Simple lattice model for numerical

simulation of fracture of concrete materials and structures. Materials and Structures

(25).

References

60

Schlengen, E. (1993). Experimental and Numerical Analysis of Fracture Processes

in Conccrete. Delft University of Technology.

Wikipedia. (2009). Fracture. (Wikipedia) Retrieved August 12, 2009, from

http://en.wikipedia.org/: http://en.wikipedia.org/wiki/Fracture

Appendix A – Application Files and Functions

61

77 AAPPPPEENNDDIIXX AA –– AAPPPPLLIICCAATTIIOONN FFIILLEESS AANNDD FFUUNNCCTTIIOONNSS

The application developed contains several files performing different functions.

Following are the Matlab files and their functionality described briefly in

alphabetical order:

AssembleGlobalMatrices: Assembles the Structural Stiffness and Mass Matrices

Circle: Draws a circle with centre defined as a vector CENTER

DisAssembler: Removes failed element's stiffness/mass from Structural Matrix

Dsxy2figxy: Transform point or position from axis to figure coordinates

ExtractCoordinates: Extracts the Element X and Y coordinates (x1, x2, y1 and y2)

ExtractDisplacements: Extract element displacements from the global displacement

vector according to the topology matrix edof

ElementAxialForcefunc: Computes the axial force in a bar element

ElementMassAndStiffnessMatrix: Computes the element stiffness and mass matrix

in Global Coordinates

GetEdof: Get numbering for Dofs and Edofs

GetUserData: Gets geometric and dynamic analysis data from user

Helium: Main file for execution of all functions

InitHeterogeneity: Initializes Material Heterogeneity based on concrete mix

InitialCoordinates: Gives back the initial coordinates matrix based on inputs

InitialElements: Generates matrix having all the bar elements node numbers

InitBoundaryConditions: Initializes the boundary conditions for the analysis

InitLoads: Initializes Loading condition for the analysis

InitMaterialProperties: Initializes Material Properties based on selected material

OutputOptions: Gets outputs to be generated options from user

Plot2D: Plot elements based on element information. Used for generating both initial

mesh and failed elements

SolveEquation: Solves the equation for Nodal Displacements

Appendix B – Main Function File Code

62

88 AAPPPPEENNDDIIXX BB –– MMAAIINN FFUUNNCCTTIIOONN FFIILLEE CCOODDEE

% Description: Main file for execution of all functions % Project: Dissertation - Material Failure Simulated With 2D Truss Dynamics % Author: MB Shah ([email protected]) % Supervisor: Harm Askes ([email protected]) % Project Code Name: Helium % File: Helium.m % File Version: 1.0 % Date File Created: 04 August, 2009 % % Input(s) % None % % Output(s) % Iterative Plots % Movie file in .avi format % Program inputs % %========================================================================== % Initialize Program % Clear everything clc; % Clear the screen clear figure; % Clear any previous figures clear all; % Clear all memory %profile on; % Turn on if want to see profile of the program for %optimization load('ProgramRunCounter.mat','ProgramRunCounter'); ProgramRunCounter = ProgramRunCounter + 1; save('ProgramRunCounter.mat','ProgramRunCounter'); % ========================================================================= % Run function: GetUserData [AdjustedBeamLength,AdjustedBeamHeight,ElementSideLength,ElementAltitude,NumberOfElementsXDir,NumberOfElementsYDir,TimeStep,MiddleTime,EndTime,DLO] = GetUserData(); % ========================================================================= % Run function: InitMaterialProperties [IsHetero,BeamMaterial,BarCrossSectionArea,ModGen,ModAgg,ModBond,UTSGen,UTSAgg,UTSBond,RhoGen,RhoAgg,RhoBond] = InitMaterialProperties(ElementSideLength); % ========================================================================= % Run function: InitialCoordinates [NodalCoordinates,NumberOfNodes] = InitialCoordinates(ElementSideLength,ElementAltitude,NumberOfElementsXDir,NumberOfElementsYDir); % ========================================================================= % Run function: InitialElements [ElementTopology,NumberOfElements] = InitialElements(NumberOfElementsXDir,NumberOfElementsYDir); % ========================================================================= % Run function: InitHeterogeneity [ElementTypes,IsHetero,TaggedNodes] = InitHeterogeneity(IsHetero,NumberOfElements,NumberOfNodes,NodalCoordinates,ElementTopology,ElementSideLength,ElementAltitude,AdjustedBeamHeight,NumberOfElementsXDir,NumberOfElementsYDir); %disp('function run complete'); %pause % ========================================================================= % Run function: InitBoundaryConditions

Appendix B – Main Function File Code

63

BoundaryConditions = []; [SupportCondition,BoundaryConditions] = InitBoundaryConditions(NodalCoordinates,ElementSideLength,AdjustedBeamLength); % ========================================================================= % Run function: InitLoads FGlobal = sparse(NumberOfNodes*2,1); [LoadCase,FGlobal,LoadedNodes,VLoad] = InitLoads(NodalCoordinates,NumberOfElementsXDir,NumberOfElementsYDir, ElementSideLength); [GenMovie,GenImages,GenGraphs, GenGraphsin, GenXNodes, GenYNodes, GenDisp, GenVelo, GenAcce] = OutputOptions(); NewFolderPath = ['He_' int2str(ProgramRunCounter) '_' num2str(AdjustedBeamLength,1) '_' num2str(AdjustedBeamHeight,1) '_' int2str(fix(ElementSideLength*1000)) '\']; mkdir('c:\HeliumOutPuts\',NewFolderPath); MovieFileNamePath = ['c:\HeliumOutPuts\' NewFolderPath 'Movie.avi']; OutputFileNamePath= ['c:\HeliumOutPuts\' NewFolderPath 'Output']; disp('Get User Data...'); disp('Init Materials Properties...'); disp('Init Coordinates...'); disp('Init Elements...'); disp('Init Heterogeneity...'); disp('Init Boundary Conditions...'); disp('Init Loads...'); disp('Init Element Degrees of Freedom...'); % ========================================================================= % Run function: GetEdof [DegreesOfFreedom,ElementDegreesOfFreedom] = GetEdof(NumberOfNodes,NumberOfElements,ElementTopology); disp('Extract Coordinates...'); % ========================================================================= % Run function: Extract Coordinates [ElementXCoords,ElementYCoords] = ExtractCoordinates(NumberOfElements,NodalCoordinates,ElementTopology); % Global Stiffness Matrix and Global Mass Matrix Initialization KGlobal = sparse(NumberOfNodes*2,NumberOfNodes*2); MGlobal = sparse(NumberOfNodes*2,NumberOfNodes*2); % Assembly disp('Global Stiffness and Mass Matrices...'); if IsHetero == 0 for i = 1:NumberOfElements % Compute the element stiffness/mass matrix... [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(i,:),ElementYCoords(i,:),ModGen,RhoGen,BarCrossSectionArea,ElementSideLength); % ... and assemble into structural stiffness/mass matrix [KGlobal,MGlobal] = AssembleGlobalMatrices(ElementDegreesOfFreedom(i,:),KGlobal,Ke,MGlobal,Me); end elseif IsHetero == 1 for i = 1:NumberOfElements

Appendix B – Main Function File Code

64

if ElementTypes(i,1) == 1 % Compute the element stiffness/mass matrix... [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(i,:),ElementYCoords(i,:),ModGen,RhoGen,BarCrossSectionArea,ElementSideLength); % ... and assemble into structural stiffness/mass matrix [KGlobal,MGlobal] = AssembleGlobalMatrices(ElementDegreesOfFreedom(i,:),KGlobal,Ke,MGlobal,Me); elseif ElementTypes(i,1) == 2 % Compute the element stiffness/mass matrix... [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(i,:),ElementYCoords(i,:),ModAgg,RhoAgg,BarCrossSectionArea,ElementSideLength); % ... and assemble into structural stiffness/mass matrix [KGlobal,MGlobal] = AssembleGlobalMatrices(ElementDegreesOfFreedom(i,:),KGlobal,Ke,MGlobal,Me); elseif ElementTypes(i,1) == 3 % compute the element stiffness/mass matrix... [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(i,:),ElementYCoords(i,:),ModBond,RhoBond,BarCrossSectionArea,ElementSideLength); % ... and assemble into structural stiffness/mass matrix [KGlobal,MGlobal] = AssembleGlobalMatrices(ElementDegreesOfFreedom(i,:),KGlobal,Ke,MGlobal,Me); else disp('Unexpected Error...'); pause end end else disp('Unexpected Error...'); pause end disp('Dynamic Analysis...'); % Fill all element lives with 1 ElementLives = ones(NumberOfElements,1); nors = NumberOfElementsYDir + 1; nocs = NumberOfElementsXDir + 1; if GenGraphsin == 1 TappedNodes = zeros(15,1); TappedNodes(1,1) = nors + 1; TappedNodes(2,1) = nors + fix(nors/2); TappedNodes(3,1) = 2*nors; TappedNodes(4,1) = ((fix(nocs/4))*nors) + 1; TappedNodes(5,1) = ((fix(nocs/4))*nors) + fix(nors/2); TappedNodes(6,1) = ((fix(nocs/4))*nors) + nors; TappedNodes(7,1) = ((fix(nocs/3)-1)*nors) + 1; TappedNodes(8,1) = ((fix(nocs/3)-1)*nors) + fix(nors/2); TappedNodes(9,1) = ((fix(nocs/3)-1)*nors) + nors; TappedNodes(10,1) = ((fix(nocs/2)-1)*nors) + 1; TappedNodes(11,1) = ((fix(nocs/2)-1)*nors) + fix(nors/2); TappedNodes(12,1) = ((fix(nocs/2)-1)*nors) + nors; TappedNodes(13,1)= (2*(fix(nocs/3)-1)*nors) + 1; TappedNodes(14,1)= (2*(fix(nocs/3)-1)*nors) + fix(nors/2); TappedNodes(15,1)= (2*(fix(nocs/3)-1)*nors) + nors; TappedNodes(16,1)= (3*(fix(nocs/4))*nors) + 1; TappedNodes(17,1)= (3*(fix(nocs/4))*nors) + fix(nors/2); TappedNodes(18,1)= (3*(fix(nocs/4))*nors) + nors; TappedNodes(19,1)= ((nocs-2)*nors) + 1; TappedNodes(20,1)= ((nocs-2)*nors) + fix(nors/2);

Appendix B – Main Function File Code

65

TappedNodes(21,1)= ((nocs-2)*nors) + nors; elseif GenGraphsin == 2 TappedNodes = LoadedNodes; end % Get the full screen coordinates fullscreen = get(0,'ScreenSize'); % and set the figure to full screen but less 5% from bottom for task bar % etc. figure('OuterPosition',[0 fullscreen(4)*0.05 fullscreen(3) fullscreen(4)-(fullscreen(4)*0.05)],'Name','Helium 1.0'); %Plot2D(NumberOfElements,NodalCoordinates,ElementTopology,ElementLives,LoadedNodes,AdjustedBeamLength,AdjustedBeamHeight,TaggedNodes,VLoad); % Initialize solution: displacements, velocities and accelerations Displacement = sparse(1,NumberOfNodes*2); Velocity = sparse(1,NumberOfNodes*2); Acceleration = sparse(1,NumberOfNodes*2); % Initialize (constant) TotalMatrix TotalMatrix = sparse(NumberOfNodes*2,NumberOfNodes*2); TotalMatrix = KGlobal + MGlobal * 4/(TimeStep^2); % Initialize movie - call it moofie after Harm Askes :) if GenMovie == 1 moofie = avifile(MovieFileNamePath); moofie.compression = 'cinepak'; end NTime = round(EndTime/TimeStep); MTime = round(MiddleTime/TimeStep); % Initialize TotalDeadElements variable TotalDeadElements = 0; if SupportCondition == 1 LeftNodes(:,1) = 1:nors; RightNodes(:,1)= (((nocs-1)*nors)+1):(nocs*nors); LeftElements(:,1) = 1:(3*nors - 2); RightElements(:,1)= (((3*nors - 2)*(nocs-2))+1):((3*nors - 2)*(nocs-1)); nle = length(LeftElements); nre = length(RightElements); nnl = length(LeftNodes); nnr = length(RightNodes); elseif SupportCondition == 2 LeftNodes(:,1) = 1:nors; LeftElements(:,1) = 1:(3*nors - 2); nle = length(LeftElements); nnl = length(LeftNodes); end NodalReactionsLeftX = zeros(nnl,NTime); NodalReactionsLeftY = zeros(nnl,NTime); NodalReactionsRightX= zeros(nnr,NTime); NodalReactionsRightY= zeros(nnr,NTime); for i = 1:NTime if DLO == 1

Appendix B – Main Function File Code

66

%Set LoadFactor to 1 LoadFactor = 1; elseif DLO == 2 if i <= MTime LoadFactor = i/MTime; else LoadFactor = 1; end elseif DLO == 3 LoadFactor = i/NTime; else LoadFactor = 1; end TotalVector = LoadFactor*FGlobal + MGlobal * ( Displacement'*4/(TimeStep^2) + Velocity'*4/TimeStep + Acceleration' ); % Solve for Nodal Displacements: NewDisplacement = SolveEquation(TotalMatrix,TotalVector,BoundaryConditions); % Compute accelerations and velocities NewAcceleration = (NewDisplacement - Displacement)*4/(TimeStep^2) - Velocity*4/TimeStep - Acceleration; NewVelocity = Velocity + 0.5*TimeStep*(Acceleration + NewAcceleration); Displacement = NewDisplacement; Velocity = NewVelocity; Acceleration = NewAcceleration; TimeTappedNodes(i,1) = (i*TimeStep); for tns = 1:length(TappedNodes) DispXTappedNodes(i,:) = [Displacement(1,2*TappedNodes(1:length(TappedNodes),1))]; DispYTappedNodes(i,:) = [Displacement(1,2*TappedNodes(1:length(TappedNodes),1)+1)]; VeloXTappedNodes(i,:) = [Velocity(1,2*TappedNodes(1:length(TappedNodes),1))]; VeloYTappedNodes(i,:) = [Velocity(1,2*TappedNodes(1:length(TappedNodes),1)+1)]; AcceXTappedNodes(i,:) = [Acceleration(1,2*TappedNodes(1:length(TappedNodes),1))]; AcceYTappedNodes(i,:) = [Acceleration(1,2*TappedNodes(1:length(TappedNodes),1)+1)]; end [ElementDisplacements] = ExtractDisplacements(NumberOfElements,ElementDegreesOfFreedom,Displacement); % Initialize DeadElementsCurrentCycle DeadElementsCurrentCycle = 0; AllAxialForces = zeros(NumberOfElements,1); if IsHetero == 0 for j = 1:NumberOfElements ElementAxialForce(1,1)= 0;

Appendix B – Main Function File Code

67

if (ElementLives(j,1) > 0) ElementAxialForce = ElementAxialForcefunc(ElementXCoords(j,:),ElementYCoords(j,:),ModGen,BarCrossSectionArea,ElementDisplacements(j,:)); end if ((ElementAxialForce >= UTSGen) && (ElementLives(j,1) > 0)) DeadElementsCurrentCycle = DeadElementsCurrentCycle+1; [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(j,:),ElementYCoords(j,:),ModGen,RhoGen,BarCrossSectionArea,ElementSideLength); [KGlobal,MGlobal] = DisAssembler(ElementDegreesOfFreedom(j,:),KGlobal,Ke,MGlobal,Me); % If element life = 0 then element color would be red means % failed elements ElementLives(j,1) = -1; else if ((ElementAxialForce < UTSGen) && (ElementAxialForce >= (0.75*UTSGen)) && (ElementLives(j,1) > 0)) % I am Magenta ElementLives(j,1) = 1; elseif ((ElementAxialForce < 0.75*UTSGen) && (ElementAxialForce >= (0.5*UTSGen)) && (ElementLives(j,1) > 0)) % I am Yellow ElementLives(j,1) = 2; elseif ((ElementAxialForce < 0.5*UTSGen) && (ElementAxialForce >= (0.25*UTSGen)) && (ElementLives(j,1) > 0)) %I am Blue ElementLives(j,1) = 3; elseif ((ElementAxialForce < 0.25*UTSGen) && (ElementAxialForce >= 0) && (ElementLives(j,1) > 0)) %I am Cyan ElementLives(j,1) = 4; elseif (ElementAxialForce < 0) && (ElementLives(j,1) > 0) %I will remain green ElementLives(j,1) = 5; end end AllAxialForces(j,1) = ElementAxialForce; end elseif IsHetero == 1 for j = 1:NumberOfElements ElementAxialForce(1,1)= 0; if (ElementLives(j,1) > 0) if ElementTypes(j,1) == 1 ElementAxialForce = ElementAxialForcefunc(ElementXCoords(j,:),ElementYCoords(j,:),ModGen,BarCrossSectionArea,ElementDisplacements(j,:)); elseif ElementTypes(j,1) == 2

Appendix B – Main Function File Code

68

ElementAxialForce = ElementAxialForcefunc(ElementXCoords(j,:),ElementYCoords(j,:),ModAgg,BarCrossSectionArea,ElementDisplacements(j,:)); elseif ElementTypes(j,1) == 3 ElementAxialForce = ElementAxialForcefunc(ElementXCoords(j,:),ElementYCoords(j,:),ModBond,BarCrossSectionArea,ElementDisplacements(j,:)); else disp('Unexpected Error: IsHetero = 1, but ElementType is not 1,2 or 3'); pause end end if ElementTypes(j,1) == 1 if ((ElementAxialForce >= UTSGen) && (ElementLives(j,1) > 0)) DeadElementsCurrentCycle = DeadElementsCurrentCycle+1; [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(j,:),ElementYCoords(j,:),ModGen,RhoGen,BarCrossSectionArea,ElementSideLength); [KGlobal,MGlobal] = DisAssembler(ElementDegreesOfFreedom(j,:),KGlobal,Ke,MGlobal,Me); % if element life = 0 then element color would be red means % failed elements ElementLives(j,1) = -1; %j %disp(['Element nr ',num2str(j),' has now sadly failed']); else if ((ElementAxialForce < UTSGen) && (ElementAxialForce >= (0.75*UTSGen)) && (ElementLives(j,1) > 0)) % I am Magenta ElementLives(j,1) = 1; elseif ((ElementAxialForce < 0.75*UTSGen) && (ElementAxialForce >= (0.5*UTSGen)) && (ElementLives(j,1) > 0)) % I am Yellow ElementLives(j,1) = 2; elseif ((ElementAxialForce < 0.5*UTSGen) && (ElementAxialForce >= (0.25*UTSGen)) && (ElementLives(j,1) > 0)) %I am Blue ElementLives(j,1) = 3; elseif ((ElementAxialForce < 0.25*UTSGen) && (ElementAxialForce >= 0) && (ElementLives(j,1) > 0)) %I am Cyan ElementLives(j,1) = 4; elseif (ElementAxialForce < 0) && (ElementLives(j,1) > 0) %I will remain green ElementLives(j,1) = 5; end end elseif ElementTypes(j,1) == 2 if ((ElementAxialForce >= UTSAgg) && (ElementLives(j,1) > 0)) DeadElementsCurrentCycle = DeadElementsCurrentCycle+1;

Appendix B – Main Function File Code

69

[Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(j,:),ElementYCoords(j,:),ModAgg,RhoAgg,BarCrossSectionArea,ElementSideLength); [KGlobal,MGlobal] = DisAssembler(ElementDegreesOfFreedom(j,:),KGlobal,Ke,MGlobal,Me); % if element life = 0 then element color would be red means % failed elements ElementLives(j,1) = -1; %j %disp(['Element nr ',num2str(j),' has now sadly failed']); else if ((ElementAxialForce < UTSAgg) && (ElementAxialForce >= (0.75*UTSAgg)) && (ElementLives(j,1) > 0)) % I am Magenta ElementLives(j,1) = 1; elseif ((ElementAxialForce < 0.75*UTSAgg) && (ElementAxialForce >= (0.5*UTSAgg)) && (ElementLives(j,1) > 0)) % I am Yellow ElementLives(j,1) = 2; elseif ((ElementAxialForce < 0.5*UTSAgg) && (ElementAxialForce >= (0.25*UTSAgg)) && (ElementLives(j,1) > 0)) %I am Blue ElementLives(j,1) = 3; elseif ((ElementAxialForce < 0.25*UTSAgg) && (ElementAxialForce >= 0) && (ElementLives(j,1) > 0)) %I am Cyan ElementLives(j,1) = 4; elseif (ElementAxialForce < 0) && (ElementLives(j,1) > 0) %I will remain green ElementLives(j,1) = 5; end end elseif ElementTypes(j,1) == 3 if ((ElementAxialForce >= UTSBond) && (ElementLives(j,1) > 0)) DeadElementsCurrentCycle = DeadElementsCurrentCycle+1; [Ke,Me] = ElementMassAndStiffnessMatrix(ElementXCoords(j,:),ElementYCoords(j,:),ModBond,RhoBond,BarCrossSectionArea,ElementSideLength); [KGlobal,MGlobal] = DisAssembler(ElementDegreesOfFreedom(j,:),KGlobal,Ke,MGlobal,Me); % If element life = 0 then element color would be red means % failed elements ElementLives(j,1) = -1; else if ((ElementAxialForce < UTSBond) && (ElementAxialForce >= (0.75*UTSBond)) && (ElementLives(j,1) > 0)) % I am Magenta ElementLives(j,1) = 1; elseif ((ElementAxialForce < 0.75*UTSBond) && (ElementAxialForce >= (0.5*UTSBond)) && (ElementLives(j,1) > 0)) % I am Yellow ElementLives(j,1) = 2;

Appendix B – Main Function File Code

70

elseif ((ElementAxialForce < 0.5*UTSBond) && (ElementAxialForce >= (0.25*UTSBond)) && (ElementLives(j,1) > 0)) % I am Blue ElementLives(j,1) = 3; elseif ((ElementAxialForce < 0.25*UTSBond) && (ElementAxialForce >= 0) && (ElementLives(j,1) > 0)) % I am Cyan ElementLives(j,1) = 4; elseif (ElementAxialForce < 0) && (ElementLives(j,1) > 0) % I will remain green ElementLives(j,1) = 5; end end else disp('Unexpected Error: IsHetero = 1, but ElementType is not 1,2 or 3') end AllAxialForces(j,1) = ElementAxialForce; end else disp('Unexpected Error: IsHetero neither 0 nor 1'); pause end %Reactions forces calculations if SupportCondition == 1 for mm = LeftNodes(1,1):LeftNodes(nnl,1) ElementsAttached = []; ElementsAttached(:,1) = find(ElementTopology(:,1)==mm); for nn = 1:length(ElementsAttached) sintheta = (ElementYCoords(ElementsAttached(nn,1),2) - ElementYCoords(ElementsAttached(nn,1),1))/ElementSideLength; costheta = (ElementXCoords(ElementsAttached(nn,1),2) - ElementXCoords(ElementsAttached(nn,1),1))/ElementSideLength; NodeReactionX = -(AllAxialForces(ElementsAttached(nn,1),1)*costheta); NodeReactionY = -(AllAxialForces(ElementsAttached(nn,1),1)*sintheta); NodalReactionsLeftX(mm,i) = NodalReactionsLeftX(mm,i) + NodeReactionX; NodalReactionsLeftY(mm,i) = NodalReactionsLeftY(mm,i) + NodeReactionY; end end mmcntr = 0; for mm = RightNodes(1,1):RightNodes(nnr,1) mmcntr = mmcntr + 1; ElementsAttached = []; ElementsAttached(:,1) = find(ElementTopology(:,2)==mm); for nn = 1:length(ElementsAttached)

Appendix B – Main Function File Code

71

sintheta = (ElementYCoords(ElementsAttached(nn,1),2) - ElementYCoords(ElementsAttached(nn,1),1))/ElementSideLength; costheta = (ElementXCoords(ElementsAttached(nn,1),2) - ElementXCoords(ElementsAttached(nn,1),1))/ElementSideLength; NodeReactionX = -(AllAxialForces(ElementsAttached(nn,1),1)*costheta); NodeReactionY = -(AllAxialForces(ElementsAttached(nn,1),1)*sintheta); NodalReactionsRightX(mmcntr,i) = NodalReactionsRightX(mmcntr,i) + NodeReactionX; NodalReactionsRightY(mmcntr,i) = NodalReactionsRightY(mmcntr,i) + NodeReactionY; end end elseif SupportCondition == 2 for mm = LeftNodes(1,1):LeftNodes(nnl,1) ElementsAttached = []; ElementsAttached(:,1) = find(ElementTopology(:,1)==mm); for nn = 1:length(ElementsAttached) sintheta = (ElementYCoords(ElementsAttached(nn,1),2) - ElementYCoords(ElementsAttached(nn,1),1))/ElementSideLength; costheta = (ElementXCoords(ElementsAttached(nn,1),2) - ElementXCoords(ElementsAttached(nn,1),1))/ElementSideLength; NodeReactionX = -(AllAxialForces(ElementsAttached(nn,1),1)*costheta); NodeReactionY = -(AllAxialForces(ElementsAttached(nn,1),1)*sintheta); NodalReactionsLeftX(mm,i) = NodalReactionsLeftX(mm,i) + NodeReactionX; NodalReactionsLeftY(mm,i) = NodalReactionsLeftY(mm,i) + NodeReactionY; end end end TotalDeadElements = TotalDeadElements + DeadElementsCurrentCycle; disp(['Integral Iteration: ', num2str(i),', Number of Elements exceeding UTS in this cycle: ',num2str(DeadElementsCurrentCycle)]); disp(['Total Number of Elements exceeding UTS: ', num2str(TotalDeadElements)]); if (GenMovie == 1) || (GenImages == 1) clf; % Clear figure ScaleFac = 100.; ScaledNewNodalCoordinates = NodalCoordinates + ScaleFac * reshape(Displacement,2,NumberOfNodes)'; Plot2D(NumberOfElements,ScaledNewNodalCoordinates,ElementTopology,ElementLives,LoadedNodes,AdjustedBeamLength,AdjustedBeamHeight,TaggedNodes,VLoad); end if GenMovie == 1 MM(i) = getframe(gcf); moofie = addframe(moofie,MM(i)); end %X = frame2im(MM(i)); if GenImages == 1 ImageFileNamePath= ['c:\HeliumOutPuts\' NewFolderPath 'Image' num2str(i)]; saveas(1,[ImageFileNamePath '.emf']); end end if GenMovie == 1 moofie = close(moofie); disp(['Movie saved as: ',MovieFileNamePath]); end if GenImages == 1 disp(['All images saved as:' ImageFileNamePath]); end save(OutputFileNamePath) disp(['Program inputs recorded and saved as: ',OutputFileNamePath]); TotalNodalReactionLeftX = sum(NodalReactionsLeftX); TotalNodalReactionLeftY = sum(NodalReactionsLeftY);

Appendix B – Main Function File Code

72

TotalNodalReactionRightY = sum(NodalReactionsRightY); if GenGraphs == 1 for i = 1:length(TappedNodes) figure(1); clf; %figure('OuterPosition',[0 fullscreen(4)*0.05 fullscreen(3) fullscreen(4)-(fullscreen(4)*0.05)],'Name','Helium 1.0') subplot(3,2,1); stem(TimeTappedNodes(:,1), DispXTappedNodes(:,i), '.-r'); hold on subplot(3,2,2); stem(TimeTappedNodes(:,1), DispYTappedNodes(:,i), '.-b'); hold on subplot(3,2,3); stem(TimeTappedNodes(:,1), abs(VeloXTappedNodes(:,i)), '.-g'); hold on subplot(3,2,4); stem(TimeTappedNodes(:,1), abs(VeloYTappedNodes(:,i)), '.-m'); hold on subplot(3,2,5); stem(TimeTappedNodes(:,1), abs(AcceXTappedNodes(:,i)), '.-c'); hold on subplot(3,2,6); stem(TimeTappedNodes(:,1), abs(AcceYTappedNodes(:,i)), '.-k'); hold on GraphFileNamePath= ['c:\HeliumOutPuts\' NewFolderPath 'DispVeloAcceGraph' num2str(i)]; saveas(1,[GraphFileNamePath '.emf']); %image(X); %plot(TimeDispVeloAcc1(:,1), TimeDispVeloAcc1(:,4), '.-g'); end figure(1); clf; subplot(3,1,1); stem(TimeTappedNodes(:,1), TotalNodalReactionLeftX(1,:), '.-r'); hold on; subplot(3,1,2); stem(TimeTappedNodes(:,1), TotalNodalReactionLeftY(1,:), '.-b'); hold on; subplot(3,1,3); stem(TimeTappedNodes(:,1), TotalNodalReactionRightY(1,:), '.-g'); disp(['All graphs saved as:' GraphFileNamePath]); GraphFileNamePath= ['c:\HeliumOutPuts\' NewFolderPath 'Reactions' num2str(i)]; saveas(1,[GraphFileNamePath '.emf']); end hold off; subplot(1,1,1); clear figure; smileX = [0 2 4 6 8 10 12 14 16 18]; smileY = [10 8 6 4 2 2 4 6 8 10]; eyelX = [3 3]; eyelY = [20 22]; eyerX = [15 15]; eyerY = [20 22]; plot(smileX, smileY, '-r'); hold on; plot(eyelX, eyelY, '-b'); hold on; plot(eyerX, eyerY, '-b'); %profile viewer; %Turn on if want to view profile for optimization %clear all; % Clear all on exit