Anda di halaman 1dari 88

Universitt Stuttgart

Baustatik und Baudynamik

Stability Analysis of Twodimensional Truss Structures

Master Thesis

vorgelegt von
Luis Miguel Posada
im
August 2007

Institut fr Baustatik und Baudynamik


Prof. Dr.-Ing. habil. Manfred Bischoff

Abstract

A full nonlinear analysis of structures requires the investigation of fundamental and secondary
equilibrium paths. This work considers available algorithms for tracing such equilibrium paths,
in the case of highly non-linear load carrying behaviour of structures.
Different possibilities for the formulation of the arc-length control method have been reviewed
and implemented using MATLAB. The arc-length control method often fails to draw the
equilibrium path after passing bifurcation and turning points. This is mostly due to the fact that
the corrector steps are not carried out in the proper direction around such points.
To overcome this issue, several criterions have been presented in the literature to predict the
correct direction of the predictor step. Some of these have been investigated and discussed by
means of numerical experiments, in the context of simple two-dimensional truss structures, in
order to keep the analysis times short. The criterion recently introduced by Feng, Owen and
Peric [7] showed to be insensible to bifurcation and turning points, and therefore has been
successfully applied to draw entire equilibrium paths containing such points.
A comparison between the linearized and the cylindrical arc-length method through problems
involving truss structures with realistic values is included to show the advantages of the methods
regarding the convergence rates. Additionally, the problems arising from the scaling of the
constraint equation have also been shown.
Finally, the standard Load control and Displacement control path following techniques have also
been implemented and examined.

ii

Table of Contents

List of Figures v
List of Symbols.... vii
1

Introduction ............................................................................................................................i

Nonlinear analysis .................................................................................................................4

2.1

Geometrical nonlinearities in truss structures .................................................................5

2.2

The Load-Displacement response diagram .....................................................................6

2.3

Special equilibrium points...............................................................................................7

Path following techniques...................................................................................................10


3.1 Load Control .......................................................................................................................10
3.2 Displacement Control..........................................................................................................15
3.3 Arc-length control ...............................................................................................................18
3.3.1 Linearized arc-length method.......................................................................................19
3.3.2 Spherical arc-length method.........................................................................................21

3.3.3

The predictor solution ...........................................................................................24

3.3.4

The scaling parameter ........................................................................................26

3.3.5

Automatic step sizing ............................................................................................27

The truss element ................................................................................................................29


4.1 Geometric mapping .............................................................................................................30
4.2 Kinematic equations............................................................................................................31
4.3 Internal force vector ............................................................................................................33
4.4 Tangent stiffness matrix ......................................................................................................35

Implementation of a simple 2-d truss fine element program in MATLAB ...................37


5.1 General input data ...............................................................................................................37
5.2

MATLAB main programs .............................................................................................39

5.2.1

Flowchart and MATLAB routine for the Load control method............................40

5.2.2

Flowchart and MATLAB routine for the Displacement control method..............43

5.2.3

Flowchart and MATLAB routine for the Arc-length control method. .................48

5.3

MATLAB subroutines...................................................................................................56

5.3.1

Subroutine greens_strain.m ................................................................................56


iii

5.3.2

Subroutine PlaneTrussAssemble.m ....................................................................56

5.3.3

Subroutine qassemble.m .....................................................................................57

5.3.4

Subroutine kmatrix.m .........................................................................................57

5.3.5

Subroutine feaplyc2.m........................................................................................57

5.3.6

Subroutine feeldof.m ..........................................................................................58

Numerical experiments .......................................................................................................59


6.1 Experiment 1. The basic two bar symmetric system: snap through problem for the
implemented methods. ..............................................................................................................59
6.2 Experiment 2. The basic two bar symmetric system: equilibrium path with limit and
bifurcation points.......................................................................................................................61
6.3 Experiment 3. Six bar symmetric system: equilibrium path with limit, turning and
bifurcation points.......................................................................................................................65
6.4 Experiment 4. Comparison between the Linearized and the Cylindrical arc-length method.
...................................................................................................................................................69
6.5 Experiment 5. Influence of the incremental length l in arc-length method ......................69
6.6 Experiment 6. Influence of the scaling parameter ...........................................................70

Conclusions ..........................................................................................................................72

Bibliography ................................................................................................................................74
Appendix A ..................................................................................................................................76

iv

List of Figures

Figure 2.1 Geometrically unstable structure . 4


Figure 2.2 Load-displacement response diagram.. 6
Figure 2.3 Fundamental, secondary and tertiary equilibrium paths.. 7
Figure 2.4 Different types of response patterns with their corresponding special equilibrium
points.. 8
Figure 3.1 Forward-Euler incremental procedure 11
Figure 3.2 The full Newton-Raphson method..... 13
Figure 3.3 The Load Control method.. 13
Figure 3.4 Different versions of the N-R method 14
Figure 3.5 The Displacement Control method 17
Figure 3.6 The linearized arc-length method... 20
Figure 3.7 The spherical arc-length method.... 22
Figure 3.8 Different path following techniques... 27
Figure 4.1. Degrees of freedom of a truss element.. 29
Figure 4.2. Deformation of general truss element... 30
Figure 5.1 Input format for gcoord.txt file 39
Figure 5.2 Input format for nodes.txt file.. 39
Figure 5.3 Input format for elprop.txt file..... 39
Figure 5.4 Load control method flowchart.. 44
Figure 5.5 Displacement control method flowchart.... 45
Figure 5.6 Linearized arc-length control method flowchart.... 54
Figure 6.1 Two bar symmetric structure for experiment 6.1... 59
Figure 6.2 Load-displacement response diagram of the truss structure in figure 6.1.. 59
Figure 6.3 Load-Disp. response diagram of the truss structure in figure 6.1 (superposed
curves).. 61
Figure 6.4 Load-Displacement response diagram of symmetric structure in figure 6.1. 62
Figure 6.5 Two bar symmetric structure with augmented angle. 63
Figure 6.6 Load-Displacement response diagram of the symmetric structure in figure 6.5... 63
Figure 6.7 Two bar asymmetric structure with augmented angle 64
Figure 6.8 Load-Displacement response diagram of the asymmetric structure in figure 6.7.. 64
v

Figure 6.9 Six bar symmetric structure 65


Figure 6.10 Load-Displacement response diagram of the symmetric structure in figure 6.9. 66
Figure 6.11 Amplified detail of the turning point in figure 6.10(b) 66
Figure 6.12 Six bar asymmetric structure.... 67
Figure 6.13 Load-Displacement response diagram of the asymmetric structure in figure
6.12... 67
Figure 6.14 Load-Displacement response diagram of the asymmetric structure in figure 6.12
stopped after 300 increments.... 68
Figure 6.15 Influence of the incremental length l on the arc-length method 70
Figure 6.16 Influence of the scaling parameter on the arc-length method... 71

vi

List of Symbols

arc-length mismatch

symmetric matrix of equation (4.13)

Ao

constant cross-section in the initial configuration

b1

vector of equation (4.14)

b2

vector of equation (4.15)

nodal displacement nodal vector

prescribed displacement vector

Youngs modulus

Io
Id

number of iterations needed to achieve convergence in the previous increment


desired number of iterations for convergence to use in the automatic step sizing

Ke

standard linear stiffness matrix

Kg

geometric or initial stress matrix

Kt

tangent stiffness matrix

Ku

initial displacement (or slope) matrix

shape function matrix

qe

external force vector

qi

internal force vector

residuum or out of balance vector

arc length

prescribed surface traction vector

displacement field vector

position field vector

nodal coordinates of the truss element in the initial configuration

half of the length of the truss in the initial configuration

half of the length of the truss in the deformed configuration

iterative nodal displacement change vector

iterative nodal displacement change

d t

iterative nodal tangential displacement change

d 0t

current tangential solution

d(q) qth constrained increment for the displacement control method


GL

Green-Lagrange virtual strain


vii

iterative load level change

Wint internal virtual work


Wext external virtual work

viii

incremental displacement nodal vector

d0

previous converged incremental displacement

d1

incremental displacement nodal vector for the predictor step

GL

incremental Green-Lagrange strain

incremental length

incremental load level

incremental load level for the predictor step

qe

incremental external force vector

incremental displacement

scalar load level parameter

convergence criteria for equation (5.1)

GL

Green-Lagrange strain

PK 2

2nd Piola Kirchhoff stress

non-dimensional coordinate

scaling parameter for the arc-length constraint

1 Introduction

The stability analysis of slender structures requires carrying out geometrically nonlinear analysis.
Besides of identifying critical points closest to the operational range, in most cases, it is also
necessary the complete investigation of the equilibrium path and the examination of secondary
branches.
The Load controlled Newton-Raphson method was the first attempt (1968) to obtain the
equilibrium path in a Load-displacement response diagram. However, the method diverges after
a limit point, and therefore, only part of the curve was obtained.
The collapse loads were then often associated with such limit points and with the failure to
achieve convergence with the iterative solution procedure. Nevertheless, as Crisfield quoted,
many questions remained open:
-

Was it really a limit point or was the iterative solution procedure that has collapsed?

Was it only a local maximum and the structure can be further loaded, and still far from
collapsing?

How is the collapse process, ductile or brittle?

To overcome the difficulties with limit points, displacement control techniques were introduced.
One of the first works in this regard was the paper of Batoz and Dhatt (1979). However, again,
the method failed to draw the entire equilibrium path in the case of snap-backs structural
behaviours.
The arc-length method was then developed as another effort to enable solution algorithms to pass
limit points. In relation to structural analysis, the first works in this respect were published by
Riks (1972; 1979) and Wempner (1971), using a linear constraint equation such that the iterative
change was normal to the tangent.
Later, the method was modified by several scholars by means of altering the constraint equation,
and therefore, the way the corrector steps of the iterative procedure expanded. For example,
Ramm (1980) used a different linear constraint such that the iterative change was now normal to
the secant change.
The previous two works were the first versions of the linearized arc-length method.
At the same time, a further modification was done by Crisfield, introducing the spherical arclength method (1980), which uses a quadratic constraint or the Euclidean norm of the
incremental displacement to a fixed quantity.
To avoid the problems that arise in the choice of a proper root, as the Crisfield method required,
a consistently linearized version of arc-length method using the same quadratic constraint was
proposed by Schweizerhof and Wriggers (1984).
The last two methods were implemented and compared in this thesis.
1

Several of the most recent improvements to the arc-length control method are intended to solve
problems with the oscillation of the solution around the special points. Two different strategies
were proposed in this respect by Kuo and Yang (1995), and Feng et al. (1997, 1999). Due to its
effectiveness, the scheme published by Feng et al. is examined in this work.
The main purpose of this Master thesis is to implement, compare and discuss the different path
following techniques by means of numerical experiments in the context of the simple twodimensional truss structures.
The standard incremental methods included in this work are the Load control method, the
Displacement control method, and the Linearized and cylindrical arc-length method.
Unfortunately, some other relevant solution procedures could not be included, such as Line
searches, Quasi-Newton methods, Secant-related acceleration techniques, etc, in order to keep
the scope of the comparisons within the most accepted schemes.
In particular, the following issues were addressed:
Implementation of a simple 2d-truss finite element program in MATLAB
Implementation and validation of standard path following methods from the literature
Implementation of new algorithms
Comparison and discussion of different algorithms by numerical experiments
However, the major part of this work is focused on the arc-length control method and how it is
affected by several key parameters, identified during the implementation and validation of the
path following techniques.
Consequently, several numerical experiments were carried out to show the effect of the said key
parameters, such as the step size, the scaling parameter and the direction of the predictor step, in
the overall performance of the arc-length control method.
The equilibrium paths stemming from the analysed truss structures contained several multiloops, and therefore, all the special equilibrium points of interest were present. For this reason,
the simple truss structures were a suited problem to test the behaviour of the arc-length method
in the presence of bifurcation, limit and turning points.
The implemented programs were coded in a user-friendly computer package like MATLAB, and
they were written in such a way that the type of finite element can be changed without any
modification in the main routine. Even though the loops were avoided at the most to maximize
the calculation speed, the programs can still be improved in this respect.
The body of this work has been divided into several chapters in order to give a theoretical
background for the implemented programs, in regard to the path following algorithms, and the
truss FE formulation.

In chapter 2, the basic ideas of non-linear analysis are introduced, giving a deeper review on the
geometrical nonlinearities in the truss structures, the concept of the Load-displacement response
diagram and the special equilibrium points.
Chapter 3 presents the standard path following techniques from the literature, such as the Load,
Displacement and arc-length control methods. A more profound investigation on the arc-length
method is given and various schemes are introduced from the literature.
In chapter 4, the standard finite element procedure is used to obtain a Total Lagrangian
formulation of a two-dimensional truss element with the aid of the Green-Lagrange strain
measure. Only geometrical nonlinearities are considered in this work, and therefore, a linear
material response was used.
Chapter 5 gives the details on the implementation of the path following techniques using
MATLAB, including a description of the input data or variables needed to run the implemented
programs. Flowcharts and codes are also incorporated.
In Chapter 6, the results of several conducted numerical experiments are presented to validate the
implemented programs and to compare the behaviour of the different methods presented in
chapter 4.
Finally, further experiments can be done to test the performance of the arc-length method when
including material nonlinearities and external loads dependant on the displacement.

Nonlinear analysis

Nonlinear Structural Analysis is the prediction of the response of nonlinear structures by a


combination of mathematical modelling, discretization methods and numerical techniques [6].
Different types of phenomena in real structures such as buckling, formation of plastic hinges,
structural collapse, etc, can be thought as nonlinear responses.
In addition, these responses can be classified according to their source in the mathematical model
of continuum mechanics, using the terms Geometrical, Material, Force B.C. and Displacement
B.C. nonlinearities as introduced next.

Geometrical Nonlinearities
The physical source is the change in geometry as the structure deforms (effect of deformed
geometry), which has to be taken into account in setting up the strain-displacement (Kinematic)
and equilibrium (Balance) equations [6].
Geometrical nonlinearities model various types of physical problems, such as finite rotations
and/or displacements, strains and prestressed structures.
A very nice example, of geometrical nonlinearities becoming very strong, is the prestressed
structures. Figure 2.1 shows the structure used by Biot (1965) to point out the importance of
geometrical nonlinearities. This structure is said to be (geometrically) unstable, however it can
carry the load P without undergo large deformations, if sufficiently prestressed. This behaviour
cannot be depicted in the linear theory, i.e. without taking into account the geometrical
nonlinearities.

Therefore the importance of the following theorem of the theory of structures which states that
In the presence of prestress, geometric nonlinearities are on the same order of magnitude as
linear elastic effects in structures [13].

P
L

Figure 2.1 Geometrically unstable structure

A recount of the geometrical nonlinearities in truss structures will be given in section 2.1.
4

Material Nonlinearities
Their physical source is the material behaviour depending on current deformation state and
possibly past history of the deformation. They are introduced via the Constitutive Equations that
relate stresses and strains [6].
Examples of applications are structures
viscoelasticity, creep or inelastic rate effects.

undergoing

nonlinear

elasticity,

plasticity,

Force B.C. nonlinearities


When the applied loads depend on the deformation, it is said to be the source of Force B.C.
)
nonlinearities. They are introduced through the prescribed surface traction t and body forces b
)
such that t(u ) and b(u ) , where u is the displacement field vector [6].

Their most important engineering application concerns pressure loads of fluids. These include
hydrostatic loads on submerged or container structures; aerodynamic and hydrodynamic loads
caused by wind loads, wave loads or drag forces.

Displacement B.C. nonlinearities


Their physical source is the Displacement boundary conditions depending on the deformation of
the structure. They are introduced through the prescribed displacements d depending on the
displacement field vector u, such that d (u ) [6].

Their most important application is the contact problem, in which no-interpenetration conditions
are enforced on flexible bodies, while the extent of the contact area is unknown. Non-structural
applications of this problem pertain to the more general class of free boundary problems, for
example: ice melting, phase changes, flow in porous media. The determination of the essential
boundary conditions is a key part of the solution process.

2.1 Geometrical nonlinearities in truss structures


In the case of truss structures, which are the relevant ones in this work, the geometric
nonlinearities effects are present mainly due to the finite rotations that usually take place in such
structures when deformation occurs.
For finite rotations, the Kinematic Equations have to be nonlinear. With the linear versions of
the strain measures, it is not possible to represent the relation between the deformed and the
undeformed configuration. In the case of rigid body movements the strain has to vanish, which
does not happen in the linear version of the strains.
The obvious option is the Green-Lagrange strain, which is very suitable for finite rotations and
moderate strains. A formulae based in this strain measure will be given in chapter 4.
5

2.2 The Load-Displacement response diagram


The static behaviour of many structures can be characterized by a load-displacement or forcedisplacement response (see figure 2.2). As a general rule, this response is plotted in two
dimensions rectangular coordinate system, where the abscissa corresponds to a representative
displacement quantity and the ordinate to a representative force quantity, that later will be called
load level. This displacement quantity is usually only one structural degree of freedom.
The curve drawn in the load-deflection diagram is the so-called equilibrium path. Basically, this
path represents possible equilibrium configurations (load-deformation) of the analysed structure.
Here stems the central idea of the nonlinear analysis: the structure is in equilibrium in their
deformed configuration. Usually, the equilibrium path would be drawn point by point, where
each point would represent an equilibrium estate.

Load
level

Equilibrium path
Initial state
Representative d
displacement
Figure 2.2 Load-displacement response diagram

The path that crosses the initial state is called the fundamental or primary equilibrium path (see
figure 2.3). In the present work, all problems will involve prefect structures whose initial state is
unstressed and undeformed, and therefore the fundamental path will always cross the origin of
the Load-Displacement response diagram. Along this fundamental path stems several special
states called critical points, which will be discussed in section 2.3. Finally, any path that is not a
fundamental path but is connected with it, at a critical point, is called a secondary or tertiary
path [18].
In fact, the main intention of this work is to trace the equilibrium path for truss structures by
means of several techniques called path following methods, whose details will be given in
chapter 3.

2.3 Special equilibrium points


Certain points of an equilibrium path have special significance in the applications and thus
receive special names. Later in this work, these special points will be helpful to investigate the
behaviour of the path following techniques given in chapter 4. The definition of these points, as
given in the COMMAS manuscript [18], and their importance in the path following techniques,
is given next.

Load
level

Bifurcation
point

Limit point

Postcritical regime

Secondary
path

Fundamental
path

Tertiary path

Displacement d
component

Figure 2.3 Fundamental, secondary and tertiary equilibrium paths

Limit Points (L)

At the limit points, the tangent to the equilibrium path is horizontal, i.e. parallel to the
displacement axis. As it will be seen through a numerical example in chapter 6, the limit points
are of special importance in the Load control path following technique (see also section 3.1),
where after passing a limit point, due to a further load increment, no static equilibrium exist
nearby and therefore the structure dynamically snaps through into the next post-critical
equilibrium position, as shown in figure 2.4a.

Bifurcation points (B)

At bifurcation points, the relation between the given characteristic load and the associated
deflection is not unique because at these points two or more equilibrium paths cross (see figures
7

2.3 and 2.4c); in a later case the point is denoted as multibifurcation since the equilibrium looses
its uniqueness in these points; they may be called non-uniqueness points. These points are of
special importance to the arc-length path following method, as it will be pointed out in section
3.3.3.1.

Turning points (T)

Turning points are points at which the tangent to the equilibrium path is vertical, i.e. parallel to
the load axis. Like the limit points to the Load Control path following technique, the turning
points are of special importance to the Displacement control method (see figure 2.4b). A
structure analysed via such technique will dynamically snap back into the next post-critical
equilibrium position after passing a Turning point. Besides, these points can affect the
performance of the arc-length method (see section 3.3.3.2).
under Load Control
Load
level

Load
level

snap-back under
T
F
T
L

Displacement d
component
(a)
Load
level

Displacement d
component
(b)

B
B
F

Displacement d
component
(c)

Figure 2.4 Different types of response patterns with their corresponding special equilibrium
points.
8

Failure points (F)

Failure points are points at which a path suddenly stops or where the structure fails because of
physical failure (see figure 2.4). The phenomenon of failure may be local or global in nature. In
the first case (e.g. failure of a non-critical structural component) the structure may regain
functional equilibrium after dynamically jumping to another equilibrium path. In the later case
the failure is often catastrophic or destructive and the structure may not regain functional
equilibrium.
However, in the present work, no failure criterion is introduced and consequently in the
produced examples no F points appear.

Path following techniques

The main purpose of the path following techniques is to draw the equilibrium path of a nonlinear
structural analysis in the framework of a Load-displacement response diagram.
There exist several techniques based on different approaches. In general, the equilibrium
equation cannot be solved analytically in closed form; therefore most of the methods will trace
the equilibrium path point by point, through an iterative scenario.
In the present chapter the most spread techniques and a detailed description of their formulation
will be given.

3.1 Load Control


The first technique, called Load Control consist in prescribe load increments, and therefore the
external load. In other words, the structure would not be by the influence of the entire applied
external force qe, but to a fraction of qe or load level . In this approach, for each load level, a
displacement is calculated.
Before presenting the details of the standard Load Control technique, based on the NewtonRaphson method, a review of the forward-Euler scheme will be given for the sake of
completeness.
The forward-Euler solution scheme (1970) was one of the first approaches and involves the
computation of an incremental solution of the system.
In order to produce an incremental solution procedure, the internal force qi corresponding to the
displacement d, can be expanded by means of a truncated Taylor series, so that
q i (d + d) = q i (d) +

q i (d)
d .
d

(3.1)

Assuming perfect equilibrium at both the initial configuration d and the final configuration,
d+d, or
q i (d + d) q i (d) = qe (d + d) qe (d) = qe ,

(3.2)

equation (3.1) gives


qe =

q i
d = K t d
d

(3.3)

or

d = K t1qe ,

(3.4)

where Kt is a specific case of the tangent stiffness matrix. A more general version of Kt is given
later in equation (3.7).

10

unbalanced
forces

qe

External Calculated path


load
Equilibrium path
Load level 2

qe

unbalanced
forces

Load level 1

d1

d2

Displacement d

Figure 3.1 Forward-Euler incremental procedure

Figure 3.1 shows the forward-Euler incremental procedure, in which for each prescribed load
level, a displacement d is calculated. However, from the same figure is concluded that, due to
the geometrical non-linear behaviour of the structure, the calculated points using (3.4) would
never fall into the equilibrium path, and therefore there would always be unbalanced forces that
would never be corrected, leading to an unquantifiable error.
Even though the forward-Euler scheme was abandoned due to this build-up of error, its formulae
are used in other path following techniques. This is the case of the arc-length method, in which,
my means of a forward-Euler scheme, a prediction of the direction of the path is obtained
through equation (3.3).
Nowadays, the standard Load Control approach is based on an equilibrium equation defined as
the difference between the internal force qi and a prescribed external load qe, where is the
load level, such that
r (d i ) = q i (d i ) q e = 0 .

(3.5)

The vector r is known as residuum or out of balance vector, which has to vanish at equilibrium
state. For brevity, r(di) will be written most of the time as ri.
Notice that in equation (3.5), only the internal force vector qi (and therefore ri) is a function of
the current nodal displacement vector di. From (3.5) it is possible to calculate a nodal
displacement di for a prescribed load level .
11

As a general rule, a Newton-Raphson iterative scheme is adopted to solve the nonlinear equation
(3.5) with respect to the displacement.
Following the procedure of the standard N-R method, the linearization of the residuum equation
yields

r i +1 = r i +

r i
d + HOT = 0 .
d

(3.6)

Neglecting the Higher Order Terms and defining


r
= Kt ,
d

(3.7)

where Kt is again the tangent stiffness matrix, equation (3.6) can be re-expressed simply as

d i = K t1r i .

(3.8)

Then, an iterative scenario is implemented in which, after solving equation (3.8) for the nodal
displacement increments di, the overall displacements are updated through
d i +1 = d i + d i ,

(3.9)

until convergence is achieved, i.e. r i +1 . Next, the iterations stop and proceed with a new
load level (see figure 3.2). It is important to notice that iterations between converged stages in
most cases are not equilibrium points, as in figure 3.2.
The idea of prescribing the load increment is very simple; however, the method is unstable after
a limit point, being unable to follow the equilibrium path, as shown in figure 3.3. Still, the
iteration process might converge later on the equilibrium path (see also chapter 6).
The use of the N-R method has one big advantage: it keeps the symmetry and banded properties
of the tangent stiffness matrix. However, the calculation of the inverse of Kt possesses the major
part of the computational cost of the standard Load Control method and furthermore, the
inversion of Kt cannot be performed if the tangent stiffness matrix is singular. Nevertheless, in
practice, it is very unlikely to fall directly into a critical point where the singularity of Kt occurs
[3, 5]. Concerning the computational cost, there are several ways to code the algorithm, which
are given next:
The first possibility is the full Newton-Raphson scheme (fN-R) which is based on the
computation of the tangent stiffness matrix K t1 at each iteration. In this case, the computational
cost per iteration is more expensive, but results in quadratic convergence.
The second option is the modified Newton-Raphson scheme (mN-R) which consists in
computing K t1 only at the beginning of the iterations. Consequently, the quadratic convergence
is lost and therefore more iterations are needed to achieve convergence.
computational cost per iteration is much less.

12

Nonetheless the

Another two options are to update K t1 periodically, like for example the KT1 method which
consists in updating K t1 after one iteration [22], and the initial stress method that uses only the
stiffness matrix of the very first incremental solution.
The fN-R, mN-R, KT1 and the initial stress techniques are illustrated in figure 3.4.
Load
level

K3t

-r1

K2t

-r 2

-r3

Kt

Equilibrium path
Displacement d
component

d1
0

d2

Figure 3.2 The full Newton-Raphson method

Limit Point

Load
level

might converge
again in this section
of the path

Newton-Raphson
iterations

Bifurcation Point

cannot be followed
Displacement d

Figure 3.3 The Load Control method [18]


13

Load
level

Load
level

fN-R

mN-R

Displacement d

Load
level

Displacement d

Load
level

KT1

initial stress

Displacement d

Displacement d

Figure 3.4 Different versions of the N-R method

The full Newton-Raphson algorithm is summarized as follows (see figure 3.2 and section 5.1).
For each cycle:
1. Let (d0, 0) be the equilibrium (converged) point with i=0.
2. Choose a new load level at iteration point with.
3. Calculate the residuum vector r(di) using (3.5) and the tangent stiffness matrix Kt(di).
4. Solve for di using (3.8).
5. Update the displacement vector di+1 through (3.9).
6. Repeat steps 3-5 until convergence is achieved.
Finally, besides of the forward-Euler and all the versions of the Newton-Raphson, there are
several alternatives to solve iteratively equation (3.5), such as the Mid-point method, secantrelated techniques, Quasi-Newton Method, etc. Some of these methods are accelerated by a
partial computation of K t1 but may lead neither to a symmetric nor to a banded tangent stiffness
matrix. A review of these methods is given in [5].

14

The Load control method has been coded, and particulars of the program including a detailed
flowchart, are given in chapter 5.

3.2 Displacement Control


Parallel to the Load Control, which prescribes the external load level qe, the natural counterpart
is to use the nodal displacement component d as an independent variable.
In this section a review of the standard Incremental Displacement Algorithm proposed by Batoz
and Dhatt [3] is given.
First, let us assume that we have found equilibrium state of a given structure configuration. This
stage correspond to an iteration i=0, i.e.

= 0
and
d = d0 .
Following, instead of varying the load parameter , the qth component of d is incremented by

d(q). Consequently, the updated displacement vector reads


d = d0
with
d 0 (q) = d 0 (q) + d (q) .

(3.10)

Notice that d(q) is not a vector but the size (scalar) of the increment for the constrained qth
component of the displacement vector d.
An iterative scheme to compute the non-constrained displacement components of vector d and
the load parameter is therefore needed.
The residuum equation (3.5), corresponding to the load level , can be expanded by means of a
truncated Taylor series, so that
r (i + i ) = r (i ) +

r (i ) i

(3.11)

which finally yields


r (i + i ) = r (i ) iqe .

(3.12)

Substituting (3.12) into (3.8), the iterative nodal displacement d i can be expressed through the
Newton change at the new unknown load level, i +1 = i + i , giving

di = K t1r (d i , i +i ) = K t1r (d i , i ) + i K t1qe .

(3.13)

Again, Kt is the tangent stiffness matrix corresponding, in a fN-R scenario, to di.


15

Two incremental displacement vectors d and d t can be defined in such a way that equation
(3.13) becomes

d i = d i + idit

(3.14)

d i = K t1r i and dit = K t1qe .

(3.15)

with

The vector d stems from the usual residuum vector r, and dt, also known as the tangential
solution, from the external load vector qe which is multiplied by to obtain the actual load.
Another way to find equation (3.14) will be given in the arc-length method (see equation (3.25)).
Equation (3.15) can be expressed in other fashion, so that

K t [d
d t ] = r i
qe .
i

(3.16)

Finally, the key of the method points out that the displacement of the qth component of d is
constrained, such that d(q) = 0 . Therefore the following condition, coming from equation
(3.14), has to be satisfied

d i (q ) + id it (q) = d i (q ) = 0 ,

(3.17)

Therefore, solving for i from (3.17) gives

i =

d i (q )
.
d it (q)

(3.18)

Finally, the displacements and the load level are updated using

d i +1 = d i + d i and i +1 = i + i

(3.19)

respectively.
The Displacement Control method becomes unstable after passing turning points and therefore
cannot follow the equilibrium path as shown in figure 3.5. Still, in the same way as the Load
Control method, the iteration process might converge later on the equilibrium path.
The algorithm for a full Newton-Raphson scheme is summarized as follows; for each cycle:
1. Let (d0, 0) be the equilibrium (converged) point with i=0.
2. Choose an incremental displacement component d(q) at iteration level i=0.
3. Alter the initial displacement vector d 0 such that
d 0 (q) = d 0 (q) + d (q)
4. Calculate the residue vector ri and the tangent matrix K it .
5. Solve for d i and d it simultaneously using (3.16).
16

6. From equations (3.18) and (3.14) calculate i and di respectively.


7. Update the displacement vector and load level using (3.19)
8. Repeat steps 4-7 until a desired accuracy or desired number of iterations are achieved.
The flowchart of the algorithm is given in section 5.1.

Limit Point
Load
level
Turning Point

might converge
again in this section
of the path

cannot be followed

d(q)

d(q)

d(q)

d(q)

Constrained d(q)
displacement
component

Figure 3.5 The Displacement Control method

A modified Newton-Raphson scheme (mN-R) can be used, by the computation of the tangent
stiffness matrix Kt at the beginning of the displacement increment.
As in the Load Control, the calculation of the inverse of the stiffness matrix K t1 is necessary;
and therefore it has to remain non-singular at any solution level of di. Theoretically, if a solution
corresponds to a critical or singular point, the matrix Kt will be singular. Again, neither the
authors consulted [3, 5] nor in the experiments done in this work, have experienced any problem
with singularities of the said matrix Kt.
The Displacement control method has been coded, and particulars of the program including a
detailed flowchart, are given in chapter 5.

17

3.3 Arc-length control


The Load and Displacement Control methods fail to draw the complete equilibrium path in the
presence of limit and turning points (see figures 3.3 and 3.5). The arc-length control method is
intended to handle these critical points and draw the entire Load-displacement response diagram.
The general algorithm of this approach is given in this section.
The starting point of the arc-length control is the equilibrium equation in form of the residuum r.
Recalling equation (3.5),
r (d, ) = q i (d) q e = 0

(3.20)

where qi is the internal force vector of the structure which is function of the nodal displacements
d, the vector qe is the external load vector and the scalar is again the load level parameter.
Further to the equilibrium expression (3.20), an additional constraint is added to complete the set
of equations.
This constraint equation is the arc length s, defined by:
s = ds ,

(3.21)

ds = ddT dd + d2 2qTe q e .

(3.22)

with

The arc-length method is then aimed to find the intersection of a given arc length s with the
equilibrium equation, such that
r ( s ) = q i (d( s )) ( s )q e = 0 .

(3.23)

To solve (3.23), a predictor-corrector scheme is used, as it will be seen next. Initially, the
differential form of (3.22) can be replaced with an incremental form, such that

( )

( )

a i = d i d i + i 2 q Te q e l 2 = 0 ,

(3.24)

where l is the fixed radius of the desired intersection with the equilibrium path, also known as
incremental length (see figure 3.7). Linked to the same figure, the vector d and the scalar
are incrementals and are related back to the last converged equilibrium state. Meanwhile d and

are the iterative displacement vector and load level respectively. These are associated to the
previous iteration step that, in most cases, is not an equilibrium state.
In addition, the scaling parameter is required in equation (3.24) to combine different
dimensions for the load and displacement terms. Further details will be given in section 3.3.4.
The main essence of the arc-length method is that the load level becomes now a parameter.
Therefore, the total unknowns are n+1; n from the displacement variables of vector d and the one
of the load parameter . To solve for these, equation (3.20) gives a total of n equilibrium
equations, while equation (3.24) gives one constraint equation.

18

These n+1 equations can be solved by iteratively applying the Newton-Raphson method to (3.20)
and (3.24). This idea was first proposed by Riks (1972; 1979) and Wempner (1979), though
with a different constraint equation.
A truncated Taylor series of (3.20) and (3.24) respectively yields
r i +1 = r i +

r i r i
d + = r i + K tdi qei = 0
d

a i +1 = a i +

T
a i a i
d + = a i + 2 d i di + 2ii 2qTe q e = 0 , (3.26)
d

(3.25)

and

( )

where Kt is again the tangent stiffness matrix. The other terms have been already defined.
Equations (3.25) and (3.26) can be combined in a different fashion

d i
Kt
i =
i

2 d

( )

qe

i 2 T
2 q e q e

ri
i.
a

(3.27)

At this point, there are different ways to obtain the solution of (3.27). Two different possibilities
are given next.

3.3.1 Linearized arc-length method


The simplest way is to directly solve (3.27) [19]. One may first find an expression for d and
then replace it into . Consequently, from equation (3.25), d reads,

di = K t1r i + i K t1q e .

(3.28)

Expression (3.28) is exactly as equation (3.14) for displacement control. Therefore by means of
the two iterative displacement vectors d and d t already defined in (3.17), equation (3.28) can
be re-expressed as

d i = d i + idit ,

(3.29)

d i = K t1r i and d it = K t1q e .

(3.30)

with

Insertion of (3.29) into (3.26) yields


2(d i ) (d i + id it ) + 2ii 2qTe q e =
T

ai
2

(3.31)

This in turn, solving for the iterative load level yields

( )

i =

(a i 2) d i d i

(d ) d
i T

i
t

+ i 2qTe q e

(3.32)

19

After obtaining d and , the new incremental displacements and load level are
d i +1 = d i + di

(3.33)

i +1 = i + i .

(3.34)

and

(d1,1 )

Load
level

(d2,2 )
d1

(d 3,3 )
=
l

(convergence
achieved)

l
=

l
=

(d , )
d0

d0

d1

d2

d1
d 2
d 3

Displacement d
component

Figure 3.6 The linearized arc-length method

The algorithm for the linearized version of the arc-length method is summarized as follows in
relation to figure 3.6. For each cycle:
1. Let (d0, 0) be the equilibrium (converged) point with i=0.
2. Determine d 0t using equation (3.30).
3. Compute an incremental predictor step (d1, 1) (see section 3.3.3).
4. Calculate the displacement vector di and load level i through
d i = d 0 + d i and i = 0 + i .

(3.35)

This leads to point (di, i).


5. Calculate ai, di and i using equations (3.24), (3.30), (3.32) and (3.29).
20

6. Update the incremental displacements di+1 and load level i+1 by means of equations (3.33)
and (3.34).
7. Repeat steps 4-6 until convergence is achieved. The constraint equation (3.24) should be also
satisfied, i.e. a 0 .
The linearized arc-length method has been coded, and particulars of the program including a
detailed flowchart, are given in chapter 5. Details on the scaling parameter are presented in
section 3.3.4.

3.3.2 Spherical arc-length method


Another alternative to solve equation (3.27) is given by Crisfield [4] and it is called the spherical
arc-length method.
Here, the constraint equation (3.24) for a, is satisfied through the entire set of iterations and not
only when convergence is achieved, as in the linearized arc-length. To this end, equation (3.29)
is inserted into (3.33) yielding
di +1 = d i + d i + idit

(3.36)

where is the only unknown. The constraint equation (3.24) can be re-expressed as

(d ) d + ( )
i T

i 2

q q e = d i +1 d i +1 + i +1 2qTe q e = l 2 , (3.37)

2 T
e

that simply states that the radius of the desired intersection is always constant during the iterative
process (see figure 3.7), and therefore ai=0.
Substitution of (3.36) into (3.37) leads to the scalar quadratic equation:

c1 (i ) + c2i + c3 = 0

(3.38)

c1 = (dit ) d it + 2qTe q e

(3.39a)

c2 = 2(d it ) (d i + d i ) + 2i 2qTe qe

(3.39b)

where
T

c3 = (d i + d i )(d i + d i )T l 2 + (i ) 2qTe q e ,
2

(3.39c)

After solving (3.38) for , equation (3.36) can be fully computed. Finally, with the aid of
(3.34), the complete iteration is defined.
The main disadvantage of the spherical arc-length method, compared to the Linearized version,
is the extra computational effort to solve the quadratic equation, and then the choice of the
proper root that yields from equation (3.38).

21

Load
level

(d1,1 )
d1

(d2,2 )
(d 3,3 )

(d , )

d0

d 1

d2

d1
d 2
d 3

d0

Displacement d
component

Figure 3.7 The spherical arc-length method

There are three possible results stemming from equation (3.38). The first one is to obtain two
real solutions 1 and 2. The second one is that c1 is zero or very small, so only one real
solution lin is obtained. And the last one is that no real solutions are found from (3.38). To
select the appropriate root, Crisfield [5] has addressed the following procedure:

Two real solutions

If two real roots are obtained from equation (3.38), the correct solution is selected by computing
and comparing both solutions, d1i +1 (that corresponds to 1) and d i2+1 (that corresponds to

2). Then, the proper root would lay closest to the old incremental direction di. This should
prevent the solution from doubling back on its tracks. This comparison can be made by finding
the solution with the minimum angle between di+1 and di and hence the maximum cosine of
the angle by the use of

(d ) d
cos =
i T

l 2

22

i +1

(d ) (d
=
i T

l 2

+ d i

) + (d ) d
i T

l 2

i
t

(3.40)

To simplify the coding, besides equation (3.39), two new scalars c4 and c5 are introduced in
(3.40), such that

c4 + c5i
cos =
l 2

(3.41)

with

c4 = (d i ) d i + (d i ) d i
T

(3.42)

and

( )

c5 = d i d it .

(3.43)

Briefly, if 1 has to be used, then

c4 + c51i > c4 + c5i2 .

(3.44)

One real solution

Only one real solution occur when c1 is very small or even zero. In this case, the to be used is
simply

ilin =

c3
.
c2

(3.45)

No real solutions

In the numerical exercises done in this work, the presence of no real solutions may occur in the
neighbourhood of a bifurcation point when the incremental length l of the arc-length method is
reasonable large. A proposed remedy [5] is to reduce the length of l by means of the so-called
automatic increment cutting, which can be introduced through the simple algorithm

l i +1 = l i ,

(3.46)

with being a scalar such that

0.1 0.5
It is important when implementing the previous algorithm, to specify a lower bottom for l,
preventing it to reach zero values.
The automatic increment cutting can also be adopted in other situations [5] such as the non
convergence of the scheme after a certain number of iterations (see section 3.3.5).
A description of the progress for the spherical arc-length control method is given as follows in
relation to figure 3.7. For each cycle:

23

1. Let (d0, 0) be the equilibrium (converged) point with i=0.


2. Determine d 0t using equation (3.30).
3. Compute an incremental predictor step (d1, 1) (see section 3.3.3).
4. Calculate the displacement vector di and load level i through equation (3.35). This leads to
point (di, i).
5. Calculate di and i using equations (3.30), (3.39) and (3.29). The constraint equation (3.24)
is satisfied in every iteration.
6. Update the incremental displacements di+1 and load level i+1 by means of equations (3.33)
and (3.34).
7. Repeat steps 4-6 until convergence is achieved.
When is set to zero (=0), the method is called cylindrical arc-length method. This version
has been coded, and particulars of the program are given in chapter 5. Details on the scaling
parameter are presented in section 3.3.4.

3.3.3 The predictor solution


Until now, details on the corrector steps have been given. However, to complete the set of
equations, the predictor step has to be discussed.
The predictor step will indicate the direction of the first attend to find the equilibrium path, and
therefore its importance in the whole iterative process.
The most popular idea is to use the forward-Euler scheme to obtain an expression for the
predictor. Recalling from (3.4),
d1 = K t1q e ,

(3.47)

where Kt is the tangent stiffness matrix at the beginning of the increment. The superscript of the
incremental displacement vector d stands for the number of the iteration of the predictor step
that is always i=1, and therefore the convention adopted.
The incremental external force qe of (3.47) can be expressed as
q e = 1q e

(3.48)

Inserting (3.48) into (3.47) yields,


d1 = 1K t1q e .

(3.49)

Recalling the definition of dt of equation (3.30), (3.49) can be re-expressed as


d1 = 1d 0t .

24

(3.50)

The previous equation has to be constrained by the incremental length l. Hence substituting
(3.50) into (3.24), and solving for , finally yields
1 =

(d ) d
0 T
t

0
t

+ 2qTe q e

(3.51)

Because of the plus and minus sign in (3.51), two different predictors are possible. There are
several criterions to predict the continuation direction of the equilibrium path, i.e., to decide the
sign of 1.
This may seem a trivial choice, but lays in the centre of the method and an erroneous selection
would lead to unwanted results, such as for example doubling back on the equilibrium path (see
sections 6.2 and 6.3).
The three most popular alternatives to determine if 1 is positive or negative are given in the
next sections:

3.3.3.1 The sign of the current tangent stiffness determinant. Follow the sign of det(Kt):
sign (1 ) = sign (det (K t )) ,

(3.52)

where Kt is the tangent stiffness matrix at the beginning of the increment, i.e. when 1 is
computed. This is the most popular and widely used criterion, which was originally introduced
by Crisfield in 1980 [4], and works well in the presence of limit points. However, in the
presence of bifurcations, it fails in most cases.
As it will be seen in chapter 6, through a simple example, the sign of the det(Kt) oscillates from
negative to positive around the bifurcation point, and therefore is unable to follow the
equilibrium path [5, 8].

3.3.3.2 Incremental work. Follow the sign of the predictor work increment:

((

sign (1 ) = sign d t0 qe ,

(3.53)

Where d 0t is the current tangential solution defined in equation (3.30) at the beginning of the
incremental and qe is the external load vector. According to Souza and Feng [20], this criterion
is insensitive to bifurcations and can continue to trace an equilibrium path after passing a
bifurcation point. However, this criterion proves ineffective in the descending branch of the
load-deflection curve in snap-back problems, where the predicted positive slope will provoke
a back tracing load increase. In other words, the scheme doubles back on its track after
passing a turning point.

25

Some authors have proposed switching between the two previous criterions to overcome their ill
behaviour at the presence of limit and turning points. However, this represents an extra
computational cost.

3.3.3.3 The sign of the internal product of the displacements. Follow the displacements
internal product:

((

sign (1 ) = sign d 0 d 0t ,

(3.54)

where d0 is the previous converged incremental displacement and d 0t , the current tangential
solution defined in (3.30). Introduced by Feng et al in 1996 [7], this criterion is insensitive to
limit points, turning points and bifurcation points. Its key point is the fact that d0 carries with it
information about the history of the current equilibrium path.
Its only limitation is the need for a sufficiently small d0. However, Feng has claimed that this
limitation is already imposed by the Newton-Raphson algorithm, and that in practice, the
required size of d0 for an accurate direction prediction would always be greater than the
necessary convergence radius of the N-R scheme. Nevertheless, in Fengs work, there is no
indication for the maximum size of d0 required for the criterion to work properly.
Furthermore, there is no information of the very first incremental d0 and therefore the sign of
the very first predictor step cant be determined by (3.54). A solution would involve the use of
the det(Kt) principle and then switch to the proposed criterion. However, it is expected that if
the early structure is in stable configuration, the very first predictor load level 1 will be
positive.
In chapter 6 numerical experiments with the previous criterions have been carried out with the
purpose of illustrating their behaviour in the presence of limit points and bifurcations.

3.3.4 The scaling parameter


The constraint equation (3.24), base of the arc-length method, reads

( )

( )

a i = d i d i + i 2qTe q e l 2 = 0 ,

(3.55)

where d is the incremental displacement vector, the incremental load level, l incremental
length and qe the external load vector. However, this section is focused on the scaling parameter

.
The parameter determines the influence of Load and Displacement control in the behaviour of
the arc-length method. So, for example if

0 : Displacement Control-like conduct


or
26

: Load Control-like perform.


Moreover, it can be said [18] that the Load and Displacement control methods are particular
cases of the arc-length method (see figure 3.8).
The main purpose of in equation (3.55) is to give scale between the load and displacement
terms, when for example, using great force values for small displacement resultants.
The last is very likely to happen in analysis using real values, when the stiffness of the structure
elements are high and therefore, large forces are required to obtain small displacements (e.g.
1e10 Newton to get 1mm displacement). In this case, if =1, the force term 2 2qTe q e in the
constraint equation (3.55) would tend to infinite if compared to the displacement term dT d .
Therefore, the arc-length method would behave similarly to the Load Control and loosing ability
to overcome limit points.
However, in practice, it seems that the opposite, when 2 2qTe q e 0 , has little effect, and the
arc-length method still is capable to pass the bifurcation, limit and turning points. As a result
many authors [5, 16, 17] have advocated the use of =0. An example of this conduct will be
given in section 6.6.
The issue of defining a proper scaling between displacement and load components has been
already addressed by authors like Al-Rasby [2], and Schweiyerhof and Wriggers [19].

Displacement
Control

Load
level

Arc-length
Control

0
2

Load Control
0
1

d01

d02

Displacement d
Component

Figure 3.8 Different path following techniques

3.3.5 Automatic step sizing


The problem of choosing a proper size for the incremental length l has not been yet addressed.
There is not a general rule to define an optimal l, which actually depends in many factors such
as the degree of nonlinearity of the curve and the position of the bifurcation and limit points. As
a first attempt one may use a trial and error process.
27

Another option is to use procedures for calculating a changing increment size (or variable l )
during the incremental process.
The most popular algorithm to obtain automatically a variable l is to measure the nonlinearity
of the current step by the number of iterations needed to converge, and then adjust the next
incremental size. This can be done through the following equation
I
ln = lo d
Io

(3.56)

where lo is the old increment factor for which I o iterations were required and Id is the desired
number of iterations decided by the user. Ramm [17, 18] suggested that the parameter n should
be set to 0.5 to avoid rapid fluctuations of l.
However, in this algorithm, the very first incremental length still has to be defined by the user.
Several solutions exist. Two of them are to apply a preliminary load-controlled step and then
from the output l a suitable starting value can be estimated, or alternatively, to apply standard
load (or displacement) control for the early increments and switch to arc-length control once a
limit point is approached [5]. For the programs coded in this work, when working with fixed or
variable l, the constant value or initial guess for the incremental length have to be given by the
user.
As a simple general restriction for the maximum size of l was given by Kondoh and Atluri [10]
when analysing space structures; the incremental length should not be greater than the step
required to initiate local buckling. Unfortunately, this simple rule is not convenient if a
secondary path is to be followed, as it will be shown in chapter 6.
To complement the automatic step sizing, the automatic increment cutting can also be adopted in
cases where the corrector does not converge after a certain amount of iterations, as discussed at
the end of section 3.3.2. In this case, equation (3.46) reduces the incremental length l, and the
iterations start all over again from the last converged increment.
In both cases, the automatic step sizing and the increment cutting, it is important to provide a
maximum and a minimum incremental length to keep it bounded.
A similar idea for the Load Control method of section 3.1 can be deduced. This would define a
variable load level, such that
I
n = o d
Io

(3.57)

As in (3.55), this technique leads to the provision of small load increments when the response is
most non-linear and large increments when the response is more linear.
In this work the automatic step sizing and the automatic increment cutting have been
implemented and coded for the arc-length control method.
28

The truss element

In this chapter, the governing equations of a two-dimensional truss element will be derived with
the aid of the Green-Lagrange strain measure. The last is appropriate for truss structures where
large displacements but moderate strains occur. In addition, the deformation process will be
related back to the undeformed configuration, resulting in the so-called total Lagrangian
formulae. These equations can easily be extended for 3D space trusses.
A truss element is defined as a two-force member that only supports axial loads and does not
undergo bending deformation. Although in real life all type of structural shapes are capable of
carrying bending loads, trusses are used to simulate slender members where their lengths are
much larger than their cross-section.
The characteristics of a truss element can be summarized as follows [1]:
- Truss is a slender member (length is much larger than the cross-section).
- It is a two-force member i.e. it can only support an axial load and cannot support a bending
load. Therefore, in a truss structure, the loads can only be applied to the nodes.

- Members are joined by pins (no translation at the constrained node, but free to rotate in any
direction).
- The cross-sectional dimensions and elastic properties of each member are constant along its
length.
- The element may interconnect in a 2-D or 3-D configuration in space.

It is clear that the plane truss element has four degrees of freedom, two at each node. Figure 4.1
shows a plane truss element oriented in an arbitrary angle b with respect to the horizontal axis X1
and its corresponding degrees of freedom.

=0
=-1

d
1

=1

Figure 4.1. Degrees of freedom of a truss element

29

4.1 Geometric mapping


Figure 4.2 shows the deformation process of the truss element AB. The vector xo indicates the
position of point Po laying on the element in the initial configuration. As the deformation of
element AB takes place, the point Po moves to Pn. The new position vector xn of point Pn can be
defined as:
xn = xo + u

(4.1)

with
x
u
xo = 1 and u = 1
x2
u2

where u is the displacement vector of point P. The subscript indicates the component direction.

2
2

Po

2
2

x
d

=0

=1
2 Bo

1
2

=-1
1 Ao

1
2

2 Bn
Pn

xo

1 An

xn

1
1

1
1

2
1

2
1

Figure 4.2. Deformation of general truss element

To obtain the spatial discretization of the truss element, the continuous functions xo and u have
to be substituted by an approximation depending on discrete nodal displacements d.
With the aid of simple linear shape functions, involving the local non-dimensional coordinate ,
the discretized geometry and displacement fields read:

30

geometry:

The position vector xo in the initial configuration of any point inside a two-dimensional, two
nodes truss element with nodal coordinates ( x11 , x21 ) for node 1 and ( x12 , x22 ) for node 2, and local
non-dimensional coordinate is given by (see figure 4.2):
x1 12 (1 )
xo = =
x2 0

0
1
(1 )
2

1
2

(1 + )
0

x11

0 x21
1
(1 + ) x12
2
2
x2

(4.2)

or
x o = Nx

displacement:

The displacement vector u of any point inside a two-dimensional, two nodes truss element with
nodal displacements (d11 , d 21 ) for node 1 and (d12 , d 22 ) for node 2, and local non-dimensional
coordinate is given by:
u1 12 (1 )
u= =
u2 0

0
1
(1 )
2

1
2

(1 + )
0

d11

0 d 21
1
(1 + ) d12
2
2
d 2

(4.3)

or
u = Nd

For the previous two equations and the following ones, the subscript indicates the component
direction and the superscript the node number.

4.2 Kinematic equations


The two-dimensional Green-Lagrange strain can be expressed as
GL =

dxn2 dxo2
2dxo2

(4.4)

The incremental vector dxo along the initial configuration is defined as


dx o =

dx o
d .
d

(4.5)

The length of dxo is given by


1

dxT dx 2
dxo = dx o = o o d = o d ,
d d

(4.6)
31

where 2o is the initial length of the truss.


In similar way, an incremental vector along the deformed configuration is given by the aid of
(4.1), so that
dx n =

d(xo + u)
d ,
d

(4.7)

In a similar way as in (4.6), the length of dxn is given by


1

dxT dx
dxT du duT du 2
d = n d ,
dxn = dx n = o o + 2 o
+
d d d d
d d

(4.8)

where 2n is the length of the truss in the deformed stage.


Insertion of (4.6) and (4.8) into (4.4) yields
GL =

1 dxTo du
1 duT du
+
o2 d d 2 o2 d d

(4.9)

Using the discretized forms for the geometry (4.2) and displacement (4.3) fields, equation (4.9)
can be transformed into an expression that contains only nodal values.
The derivatives in (4.9) are equal to
dxo
= N, x
d

(4.10)

du
= N, d .
d

(4.11)

and

Substitution of (4.10) and (4.11) into (4.9) yields


GL =

2
o

xT N,T N, d +

1
2

2
o

dT N,T N, d

(4.12)

To simplify equation (4.12), one may define the symmetric matrix A and the vectors b1 and b2 as
12
0
A = N,T N, = 1
2

0
12 12
0 0
1
2

0
12

1 0 1 0
0 1 0 1 0 1
, (4.13)
=
0 12 4 1 0 1 0

0 1 0 1
1
2

b1T =

32

2
o

xT A =

1
4

2
o

[x

1
1

x21

x12

0 1 0
x11 x12
1
1
0 1
2
0 1
1 x2 x2
(4.14)
x22
=
1 0 1
0 4 o ( x11 x12 )

1
2
( x2 x2 )
0 1 0 1

and
T

bT2 =

2
o

dT A =

2
o

[d

1
1

d 21

d12

d11 d12
1 0 1 0
1
0 1 0 1
2
= 1 d 2 d 2 (4.15)
d 22
1 0 1 0 4 o (d11 d12 )

1
2
(d 2 d 2 )
0 1 0 1

respectively. Then equation (4.12) becomes


1
GL = b1T d + bT2 d .
2

(4.16)

Equation (4.16) includes only discrete nodal values. Notice that vector b1 does not depend on
the nodal displacements d.

4.3 Internal force vector


For the calculation of the internal force vector qi of the truss element (section 4.3), an expression
for the virtual strain GL is also needed. Beginning from (4.9), the incremental Green-Lagrange
strain GL caused by an incremental displacement u is given by

GL =

1 dxTo du 1 duT du
1 duT du
.
+
+
o2 d d o2 d d 2 o2 d d

(4.17)

Again, the derivative of u with respect to has to be calculated, yielding


du
= N, d .
d

(4.18)

Substitution of (4.10), (4.11) and (4.18) into (4.17) yields an expression for GL containing only
discrete nodal values

GL =

2
o

xT N,T N, d +

2
o

dT N,T N, d +

1
2 o

dT N,T N, d . (4.19)

Equation (4.19) can be re-arranged by the use of matrix A (4.13) and vectors b1 (4.14) and b2
(4.15) as
GL = b1T d + bT2 d +

1
dT Ad .
2 o

(4.20)

For virtual displacements, with d instead of d, the last term of (4.20) becomes negligible,
yielding

GL = b1T d + bT2 d .

(4.21)

To obtain an expression for the internal force, the Principle of Virtual Work can be used.

33

The general expression for the PVW in matrix notation with displacements as primary variables
is

T
GL

PK 2d = uT b d + uT td .

(4.22)

As expected, the PVW has been given by means of strain and stress measures energetically
conjugate, namely the Green-Lagrange virtual strain GL and the corresponding 2nd Piola
Kirchhoff stress PK 2 .
Equation (4.22) is related to the internal and external virtual work such that
PK 2 d = u T b d + u T td

1 44 2 4 43
1 4 4 4 2 4 4 4 3

T
GL

W int

(4.23)

Wext

Consequently, the structure internal nodal forces vector qi, weighted in average sense, in
equilibrium with a set of stresses , that are related to the nodal displacements d, is

where

q i = GL PK 2 dV

(4.24)

e V

indicates a summation over the structure trusses.

Dropping the summation sing and inserting (4.21) into (4.24) gives the discretized form

d T q i = d T (b1 + b 2 ) PK 2 dV .

(4.25)

Finally, equation (4.25) has to stand for an arbitrary variation d. Therefore, for a constant crosssection Ao, the internal forces vector qi yields
1

q i = PK 2 (b1 + b 2 )dV = Ao PK 2 (b1 + b 2 ) dxo = o Ao PK 2 (b1 + b 2 ) d


V

leading to
q i = 2 o Ao PK 2 (b1 + b 2 ) .

(4.26)

Assuming a linear constitutive law


PK 2 = EGL

(4.27)

and solving GL from (4.16), the internal forces qi can easily be calculated. In this work, no
material nonlinearities are taken into account.

34

4.4 Tangent stiffness matrix


To derive the expression of the tangent stiffness matrix Kt to be used in the path following
techniques of chapter 3, it is necessary to recall the definition of residuum vector r as in equation
(3.20), such that
r (d, ) = q i (d) q e = 0 ,

(4.28)

where qi and qe are the internal and external force vectors respectively.
The tangent stiffness matrix in the case of an external load qe, which is not dependant of the
displacement d, is given by
Kt =

r q i
=
d d

(4.29)

Insertion of (4.26) into (4.29) gives


K t = 2 o Ao (b1 + b 2 )

(b1 + b 2 )
PK 2
+ 2 o Ao PK 2
d
d

(4.30)

The derivative of the stress PK2 with respect to the nodal displacements d is computed from
equations (4.27) and (4.16), yielding
PK 2

= E GL = E (b1 + b 2 )T
d
d

(4.31)

Notice that vector b1 does not depend on the nodal displacement vector d; therefore from
equation (4.15) the last derivative of (4.30) gives
(b1 + b 2 ) 1
= 2A
d
o

(4.32)

where matrix A is defined in equation (4.13).


Finally, the tangent stiffness matrix reads
K t = 2 E o AobbT +

Ao PK 2 A

(4.33)

where
b = b1 + b 2 .

(4.34)

Some authors [5, 18] have divided the expanded version of equation (4.33) such that

2
K t = 2 E o Aob1b1T + 2 E o Aob1bT2 + 2 E o Aob 2b1T + 2 E o Aob 2bT2 +
A A (4.35)
1 44 2 4 43 1 4 4 4 4 4 4 4 4 2 4 4 4 4 4 4 4 43 o o PK 2
Ke
Ku
1 42 43
Kg

or
Kt = Ke + Ku + Kg .

(4.36)

35

The first term, Ke, is the standard linear stiffness matrix. Ku is the initial displacement (or slope)
matrix and Kg is the geometric or initial stress matrix.
From equation (4.35) can be noticed that Ke is only a function of the initial geometry and
therefore will be constant during the whole iterative process. However matrices Ku and Kg will
have to be calculated continuously during the procedure. The frequency of computation of Ku
and Kg will depend on whether full or modified Newton-Raphson method is adopted.
In the programming of the path following techniques, equation (4.33) will be used instead of
(4.35), simply because the computational cost to compute Ku and Kg seems greater than just
calculate Kt from (4.33).
In the end, even though the previous formulae are for two dimensional trusses, these equations
are easily extended to three dimensions.

36

Implementation of a simple 2-d truss fine element program in MATLAB

The path following techniques presented in chapter 3 were implemented in a computer program
using MATLAB. In this chapter details on the operation will be given. All the variable names
in the coding are similar to the ones used in the previous chapters and it should not be a problem
to identify each of them.
The main programs are four; loadcontrol.m for the Load control method, dispcontrol.m for
the Displacement control technique and linarclength.m and cylinarclength.m for linearized
and cylindrical Arc-length methods respectively. The previous routines are presented in section
5.2.
To calculate the internal characteristics of the structure, several subroutines were introduced into
the main programs, whose description is given in section 5.3.
All the input data, such as geometry, truss properties, boundary conditions, external forces, etc,
are introduced into the main programs by means of text files, whose contents are described in
section 5.1.
But first, because an iterative procedure is being adopted, a convergence criterion must be
provided, a problem which was not addressed in previous chapters.
For all the path following techniques, the simple force criterion was used, such that
r < ,

(5.1)

where r is the residuum or out of balance vector defined in equation (3.5). The value for is
defined by the user. However, it is important to be careful when choosing an excessively tight
tolerance; the iterations might never converge due to the round-off error!

5.1 General input data


A review on the input data or variables needed to run the implemented programs, which are
introduced via text files (.txt), is given as follows:

The file general_input_data.txt contains the following input variables:


o nel:

number of structure trusses

o nnel: number of nodes per truss (only nnel=2 applies)


o ndof: number of degrees of freedom per node (only ndof=2 for 2D trusses).
o nnode: number of structure total nodes
o e:

convergence criteria of equation (5.1)

o maxit: maximum number of iterations per each increment

37

o pr:

controls the criterion to be used for determining the sign of the predictor

incremental load level l1. Set pr=1 for equation (3.53), pr=2 for (3.54) and pr=3
for (3.55). Applies only for the Arc-length control.

The file ninc.txt contains the variable ninc, which controls the number of total
increments , d(q) and l for the Load, Displacement and Arc-length control methods
respectively.

The file 'disp_control.txt' applies only for the Displacement control method and contains
the following input variables:
o ddq:

size for incremental displacement d(q)

o q:

number of the degree of freedom to be controlled by displacement control.

The file incremental_size.txt applies only for the Arc-length control method and
includes the following input variables:
o DL:

size of the fixed incremental length l in equations (3.51) and (3.24).

However, the size of l will change if convergence is not achieved after the
maximum number of iterations defined (maxit), by means of the Automatic
increment cutting scheme.
o varDL: set to varDL=1 to use a variable incremental length l via the Automatic
step sizing scheme of section 3.3.5. For the very first incremental length, the
value of the input fixed DL will be used.
o Nite: number of desired iterations Id to achieve convergence, for the use in
equation (3.58). Applies only when varDL=1.
o DLmin: minimum value for the incremental length l.
o DLmax: maximum value for the incremental length l.

The previous two

variables, DLmin and Dmax, keep the size of l bounded when the Automatic
increment cutting and the Automatic step sizing schemes apply. Therefore they
have to be defined whether a variable or fixed l is used.
o b: value of in equation (3.46) for the Automatic increment cutting scheme.

Typical values for are between 0.1 and 0.5.

38

Using the text file gcoord.txt, the nodal coordinates of the structure are introduced into
the program. The format of the input must be according to figure 5.1.

Using the text file nodes.txt the nodes associated with each element are introduced into
the program. The input format must be according to figure 5.2.

The file elprop.txt contains the Young's modulus E and the initial cross section A0 for
each element. See figure 5.3 for the input format.

The text file applied_constraints.txt includes the number and values of the constrained
degrees of freedom. The first column corresponds to vector bcdof, which contains dofs
associated with boundary conditions, while the second column to vector bcval, which has
boundary condition values associated with the dofs in bcdof.

The file force.txt contains the systems (global) external force vector qe. This vector
should contain as many components as degrees of freedom of the structure.

Finally, the file dgr.txt contains two degrees of freedom to be represented in the two
Load-Displacement response diagrams created by the algorithm. In this work, the coded
MATLAB programs will open a window containing four graphics; two of them with the
initial and final configuration of the structure, and the rest two graphics, two LoadDisplacement response diagrams for two dofs defined by the user via this text file.

x
node 1 a
node 2 c

y
b
d

Figure 5.1 Input format for gcoord.txt file

elem. node 1 elem. node 2


element 1
a
b
element 2
c
d

Figure 5.2 Input format for nodes.txt file

Young' s modulus cross section


element 1
E
A0
element 2
E
A0

Figure 5.3 Input format for elprop.txt file

5.2 MATLAB main programs


In the next sections, the MATLAB main program modules for the path following techniques of
chapter 3 are presented.

39

5.2.1 Flowchart and MATLAB routine for the Load control method.
The main program module loadcontrol.m is given in section 5.2.1.1 and the corresponding
flowchart in figure 5.4.
Regarding the implemented routine, the following particulars must be considered:

In the implemented Load control method algorithm, the size of the load increment is
not given by the user, but its calculated from the total number of increments ninc, such
that,
=

1
.
ninc

(5.2)

Therefore, the program will always stop when =1.

In the Load-Displacement response diagram drawn by the program, after passing a snapthrough, the next calculated points might not correspond to an equilibrium state.
The reason is that after such process, some points would be saved after the maximum
number of iterations maxit is achieved, and therefore, they are not related to a converged
condition. This behaviour arises from the way the program was coded and not from the
Load control method itself.
Nevertheless, as shown in section 6, usually after a few new load increments the iteration
scheme finds again the equilibrium path.

The subroutines greens_strain.m, PlaneTrussAssemble.m, qassemble.m, feaply2.m


and feeldof.m are given in section 5.3.

5.2.1.1 MATLAB routine loadcontrol.m


%--------------------------%
control input data
%--------------------------clear
[nel nnel ndof nnode e maxit pr] = textread('general_input_data.txt', '%f %f %f %f %f %f
%f','headerlines',1);
sdof=nnode*ndof;
%----------------------------------% incremental displacement control
%----------------------------------ninc=load('ninc.txt');
%--------------------------%
nodal coordinates
%--------------------------gcoord=load('gcoord.txt');
%-----------------------------------------%
material and geometric properties
%-----------------------------------------elprop=load('elprop.txt');

40

%----------------------------%
nodal connectivity
%----------------------------nodes=load('nodes.txt');
%-----------------------------------------------------------------%
applied force, constraints and degrees of freedom to be plotted
%-----------------------------------------------------------------[bcdof bcval]=textread('applied_constraints.txt','%f %f','headerlines',1);
qe=load('force.txt');
dgr=load('dgr.txt');
%---------------------------%
initialization to zero
%---------------------------d=zeros(sdof,1);
l=0;
%----------------------------%
applied nodal force
%----------------------------for n=1:ninc
l=l+1/ninc;
iterations = 0;
while iterations<=maxit

desired maximum number of iterations

iterations = iterations+1;
kk=zeros(sdof,sdof);
qii=zeros(sdof,1);
%-------------------------------------------------------------%
assemble of the system's tangent matrix and internal forces
%-------------------------------------------------------------for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);

%
%

1st connected node for the (iel)-th element


2nd connected node for the (iel)-th element

index=feeldof(nd,nnel,ndof);
th element
dx1(iel)=d(index(1));
node
dy1(iel)=d(index(2));
node
dx2(iel)=d(index(3));
node
dy2(iel)=d(index(4));
node

system's degrees of freedom associated with the (iel)-

displacement in x direction of the (iel)-th element's first

displacement in y direction of the (iel)-th element's first

displacement in x direction of the (iel)-th element's second

displacement in y direction of the (iel)-th element's second

x1(iel)=gcoord(nd(1),1);
y1(iel)=gcoord(nd(1),2);
x2(iel)=gcoord(nd(2),1);
y2(iel)=gcoord(nd(2),2);

%
%
%
%

coordinate
coordinate
coordinate
coordinate

x
y
x
y

of
of
of
of

the (iel)-th element's first


the (iel)-th element's first
the(iel)-th element's second
the(iel)-th element's second

el(iel)=elprop(iel,1);

extract elastic modulus

area(iel)=elprop(iel,2);

extract cross-sectional area

node
node
node
node

[k,qi]=greens_strain(el(iel),area(iel),x1(iel),y1(iel),x2(iel),y2(iel),dx1(iel),dy1(iel),d
x2(iel),dy2(iel));
%
tangent matrix and internal force vector of the(iel)-th element
kk=PlaneTrussAssemble(kk,k,nd(1),nd(2));

system's tangent matrix

qii=qassemble(qii,qi,index,bcdof,bcval);

system's internal force vector

41

end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);

apply the boundary conditions

%------------------------------------------%
solve the residuum
%------------------------------------------r=qii-l*qe;
if norm(r)<e

desired accuracy

break
end
dd=-kk\r;
d=d+dd;
end
fff(n+1)=l;
dispp1(n+1)=d(dgr(1));
dispp2(n+1)=d(dgr(2));
end
%-------------------------------------------------------------------%
print load factor for first and second chosen degrees of freedom
%-------------------------------------------------------------------subplot(222)
plot(dispp1,fff);
xlabel(['Second chosen degree of freedom = ', num2str(dgr(1))])
ylabel('load factor')
title('Load control path')
grid
subplot(224)
plot(dispp2,fff);
xlabel(['Second chosen degree of freedom = ', num2str(dgr(2))])
ylabel('load factor')
title('Load control path')
grid
%---------------------------------------------------------------%
print initial and deformed system's configuration
%---------------------------------------------------------------subplot(221)
hold on
for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);
xp=[gcoord(nd(1),1);gcoord(nd(2),1)];
yp=[gcoord(nd(1),2);gcoord(nd(2),2)];
h=plot(xp,yp);
set(h,'linewidth',2)
end
hold off
xlabel('x axis')
ylabel('y axis')
title('Initial system configuration')
grid
if n==ninc
subplot(223)
hold on
for iel=1:nel

42

nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);
index=feeldof(nd,nnel,ndof);
dx1(iel)=d(index(1));
dy1(iel)=d(index(2));
dx2(iel)=d(index(3));
dy2(iel)=d(index(4));
x1(iel)=gcoord(nd(1),1)+dx1(iel);
y1(iel)=gcoord(nd(1),2)+dy1(iel);
x2(iel)=gcoord(nd(2),1)+dx2(iel);
y2(iel)=gcoord(nd(2),2)+dy2(iel);
xpd=[x1(iel);x2(iel)];
ypd=[y1(iel);y2(iel)];
h=plot(xpd,ypd);
set(h,'linewidth',2)
end
hold off
xlabel('x axis')
ylabel('y axis')
title('Deformed system configuration')
grid
end

5.2.2 Flowchart and MATLAB routine for the Displacement control method.
The main program module dispcontrol.m is given in section 5.2.2.1 and the corresponding
flowchart in figure 5.5.
Regarding the implemented routine, the following particulars must be considered:

In the implemented Displacement control method algorithm, the size of the displacement
increment for the qth constrained component, d(q), and the total number of increments
are given by the user. Therefore, the program will stop whether >1 or the number of
increments is complete.

In the Load-Displacement response diagram drawn by the program, after passing a snapback, the next calculated points might not correspond to an equilibrium state.
The reason is that after such process, some points would be saved after the maximum
number of iterations maxit is achieved, and therefore, they are not related to a converged
condition. This behaviour arises from the way the program was coded and not from the
Displacement control method itself.
Nevertheless, as shown in section 6, usually after a few new displacement increments the
iteration scheme finds again the equilibrium path.

The subroutines greens_strain.m, PlaneTrussAssemble.m, qassemble.m, feaply2.m


and feeldof.m are given in section 5.3.

43

call general input data to obtain the geometry, properties, external load qe,
number of load increments "ninc" and boundary conditions. (see section 5.2.1)
read "ninc" to obtain , such that
= 1
ninc
d =0, =0
loop through the increments
n=1:ninc
iterations = 0
new load level
=+

iterations>maxit?

yes

no
loop through the structure elements
iel=1:nel
call "greens_strain.m" which gives Kt and qi for the truss el.
call "PlaneTrussAssemble.m" which assemble the structural stiff. matrix
call "qassemble.m" which assemble the structure internal force vector

call "feaplyc2.m" which applies the boundary conditions to the


structural stiff. matrix and the structure internal force vector
computation r
r=qi-qe

check convergence
norm(r)<?
no

create vectors containing disp. values of the two


chosen degrees of freedom and the load level
yes
dispp1(n+1)=d(dgr(1))
dispp2(n+1)=d(dgr(2))
fff (n+1)=

computation d
d=-K-1t r

end of increments?

no

yes
update d

d=d+d

print original and final configuration


print d(dgr1)-
print d(dgr2)-
stop

Figure 5.4 Load control method flowchart


44

call general input data to obtain the geometry, properties, external load qe,
value of the incremental disp. dq and boundary conditions. (see section 5.2.1)

d =0, =0
loop through the increments
n=1:ninc
iterations = 0
read "ddq" and "q" to modify d
d(q)=d(q)+d(q)

iterations>maxit?

yes

no
loop through the structure elements
iel=1:nel
call "greens_strain.m" which gives Kt and qi for the truss el.
call "PlaneTrussAssemble.m" which assemble the structural stiff. matrix
call "qassemble.m" which assemble the structure internal force vector

call "feaplyc2.m" which applies the boundary conditions to the


structural stiff. matrix and the structure internal force vector
computation r
r=qi-qe

check convergence
norm(r)<?
no

create vectors containing disp. values of the two


chosen degrees of freedom and the load level
yes
dispp1(n+1)=d(dgr(1))
dispp2(n+1)=d(dgr(2))
fff (n+1)=

computation d and dt
d=-Kt-1r
-1
d t= K t q e

end of increments?

no

yes
computation
=- d
dt

print original and final configuration


print d(dgr1)-
print d(dgr2)-

update d and
d=d+d
=+

stop

Figure 5.5 Displacement control method flowchart


45

5.2.2.1 MATLAB routine dispcontrol.m


%--------------------------%
control input data
%--------------------------clear
[nel nnel ndof nnode e maxit pr] = textread('general_input_data.txt', '%f %f %f %f %f %f
%f','headerlines',1);
sdof=nnode*ndof;
%----------------------------------% incremental displacement control
%----------------------------------[ddq q] = textread('disp_control.txt', '%f %f','headerlines',1);
ninc=load('ninc.txt');
%--------------------------%
nodal coordinates
%--------------------------gcoord=load('gcoord.txt');
%-----------------------------------------%
material and geometric properties
%-----------------------------------------elprop=load('elprop.txt');
%----------------------------%
nodal connectivity
%----------------------------nodes=load('nodes.txt');
%--------------------------------------------------------------------------------%
applied force, constraints, incremental displacement vector and degrees of
freedom to be plotted
%-------------------------------------------------------------------------------[bcdof bcval]=textread('applied_constraints.txt','%f %f','headerlines',1);
qe=load('force.txt');
dgr=load('dgr.txt');
%---------------------------%
initialization to zero
%---------------------------d=zeros(sdof,1);
l=0;
%-----------------------------%
applied nodal displacements
%-----------------------------for n=1:ninc
d(q)=d(q)+ddq;
iterations = 0;
while iterations<=maxit

desired maximum number of iterations

iterations = iterations+1;
kk=zeros(sdof,sdof);
qii=zeros(sdof,1);
%-------------------------------------------------------------%
assemble of the system's tangent matrix and internal forces
%--------------------------------------------------------------

46

for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);

%
%

1st connected node for the (iel)-th element


2nd connected node for the (iel)-th element

index=feeldof(nd,nnel,ndof);
(iel)-th element
dx1(iel)=d(index(1));
first node
dy1(iel)=d(index(2));
first node
dx2(iel)=d(index(3));
second node
dy2(iel)=d(index(4));
second node
x1(iel)=gcoord(nd(1),1);
y1(iel)=gcoord(nd(1),2);
x2(iel)=gcoord(nd(2),1);
y2(iel)=gcoord(nd(2),2);

%
%
%
%

system's degrees of freedom associated with the

displacement in x direction of the (iel)-th element's

displacement in y direction of the (iel)-th element's

displacement in x direction of the (iel)-th element's

displacement in y direction of the (iel)-th element's

coordinate
coordinate
coordinate
coordinate

x
y
x
y

of
of
of
of

the
the
the
the

iel)-th element's first node


(iel)-th element's first node
(iel)-th element's second node
(iel)-th element's second node

el(iel)=elprop(iel,1);

extract elastic modulus

area(iel)=elprop(iel,2);

extract cross-sectional area

[k,qi]=greens_strain(el(iel),area(iel),x1(iel),y1(iel),x2(iel),y2(iel),dx1(iel),dy1(iel),
dx2(iel),dy2(iel));
%
tangent matrix and internal force vector of the (iel)-th
element
kk=PlaneTrussAssemble(kk,k,nd(1),nd(2));

system's tangent matrix

qii=qassemble(qii,qi,index,bcdof,bcval);

system's internal force vector

end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);

apply the boundary conditions

kkin=inv(kk);
%--------------------------------------------------------%
residue vector and self-correcting incremental method
%--------------------------------------------------------r=qii-l*qe;
if norm(r)<e
break
end

desired accuracy

ddb=-kkin*r;
ddt=kkin*qe;
dl=-ddb(q)/ddt(q);
dd=ddb+dl*ddt;
d=d+dd;
l=l+dl;
end
fff(n+1)=l;
dispp1(n+1)=d(dgr(1));
dispp2(n+1)=d(dgr(2));
if l>=1
break
end
end
%-------------------------------------------------------------------%
print load factor for first and second chosen degrees of freedom
%--------------------------------------------------------------------

47

subplot(222)
plot(dispp1,fff);
xlabel(['Second chosen degree of freedom = ', num2str(dgr(1))])
ylabel('load factor')
title('Displacement control path')
grid
subplot(224)
plot(dispp2,fff);
xlabel(['Second chosen degree of freedom = ', num2str(dgr(2))])
ylabel('load factor')
title('Displacement control path')
grid
%---------------------------------------------------------------%
print initial and deformed system's configuration
%---------------------------------------------------------------subplot(221)
hold on
for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);
xp=[gcoord(nd(1),1);gcoord(nd(2),1)];
yp=[gcoord(nd(1),2);gcoord(nd(2),2)];
h=plot(xp,yp);
set(h,'linewidth',2)
end
hold off
xlabel('x axis')
ylabel('y axis')
title('Initial system configuration')
grid
subplot(223)
hold on
for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);
index=feeldof(nd,nnel,ndof);
dx1(iel)=d(index(1));
dy1(iel)=d(index(2));
dx2(iel)=d(index(3));
dy2(iel)=d(index(4));
x1(iel)=gcoord(nd(1),1)+dx1(iel);
y1(iel)=gcoord(nd(1),2)+dy1(iel);
x2(iel)=gcoord(nd(2),1)+dx2(iel);
y2(iel)=gcoord(nd(2),2)+dy2(iel);
xpd=[x1(iel);x2(iel)];
ypd=[y1(iel);y2(iel)];
h=plot(xpd,ypd);
set(h,'linewidth',2)
end
hold off
xlabel('x axis')
ylabel('y axis')
title('Deformed system configuration')
grid

5.2.3 Flowchart and MATLAB routine for the Arc-length control method.
The main program module of the linearized version of the arc-length control method
linarclength.m is given in section 5.2.3.1 and the corresponding flowchart in figure 5.6.
48

Regarding the implemented routine, the following particulars must be considered:

In this implementation of Arc-length control method, the size of the incremental length
l and the total number of increments are given by the user. Therefore, the program will
stop whether >1 or the number of increments is complete.

In the Load-Displacement response diagram drawn by the program, all calculated points
would correspond to converged states.

The Automatic step sizing scheme can be used by setting the internal control variable
varDL=1 inside the text file incremental_size.txt.

The Automatic step cutting algorithm is activated as soon as the maximum number of
iterations is achieved. Therefore, it is always necessary to define the maximum and
minimum size for incremental length l, in such way that they do not interfere with the
initial l defined by the variable DL. As a general rule, one may use:
DLmin DL DLmax .

(5.3)

For an explanation of the variables that control the incremental length, see the particulars
of text file incremental_size.txt in section 5.1.

Different types of criterions can be used for the determination of the sign of the predictor
incremental load level l1 via the pr control variable. See also the details of text file
general_input_data.txt in section 5.1.

All the equations include the scaling parameter , however inside the main modulus, is
set to zero (xi=0) in line 105. If another scaling parameter applies, it would be very easy
to change its value in the MATLAB file.

The
subroutines
greens_strain.m,
PlaneTrussAssemble.m,
feaply2.m, feeldof.m and kmatrix.m are given in section 5.3.

qassemble.m,

5.2.3.1 MATLAB routine linarclength.m


%--------------------------% control input data
%--------------------------clear
[nel nnel ndof nnode e maxit pr] = textread('general_input_data.txt', '%f %f %f %f %f %f
%f','headerlines',1);
sdof=nnode*ndof;
%--------------------------% incremental length control
%--------------------------[DL varDL Nite DLmin
%f','headerlines',1);

DLmax

b]

textread('incremental_size.txt',

'%f

%f

%f

%f

%f

ninc=load('ninc.txt');

49

%--------------------------% nodal coordinates


%--------------------------gcoord=load('gcoord.txt');
%-----------------------------------------% material and geometric properties
%-----------------------------------------elprop=load('elprop.txt');
%----------------------------% nodal connectivity
%----------------------------nodes=load('nodes.txt');
%-----------------------------------------------------------------%
applied force, constraints and degrees of freedom to be plotted
%-----------------------------------------------------------------[bcdof bcval]=textread('applied_constraints.txt','%f %f','headerlines',1);
qe=load('force.txt');
dgr=load('dgr.txt');
%---------------------------%
initialization to zero
%---------------------------xi=0;
l0=0;
d0=zeros(sdof,1);
%---------------------------%
predictor step
%---------------------------for n=1:ninc
if l0>1
break
end
iterations=0;
kk=zeros(sdof,sdof);
%----------------------------------------------------%
assemble of the system's predictor tangent matrix
%----------------------------------------------------for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);

%
%

1st connected node for the (iel)-th element


2nd connected node for the (iel)-th element

index=feeldof(nd,nnel,ndof);
(iel)-th element

dx1(iel)=d0(index(1));
first node
dy1(iel)=d0(index(2));
first node
dx2(iel)=d0(index(3));
second node
dy2(iel)=d0(index(4));
second node
x1(iel)=gcoord(nd(1),1);
y1(iel)=gcoord(nd(1),2);
x2(iel)=gcoord(nd(2),1);
y2(iel)=gcoord(nd(2),2);

50

%
%
%
%

system's degrees of freedom associated with the

displacement in x direction of the (iel)-th element's

displacement in y direction of the (iel)-th element's

displacement in x direction of the (iel)-th element's

displacement in y direction of the (iel)-th element's

coordinate
coordinate
coordinate
coordinate

x
y
x
y

of
of
of
of

the
the
the
the

(iel)-th
(iel)-th
(iel)-th
(iel)-th

el(iel)=elprop(iel,1);

extract elastic modulus

area(iel)=elprop(iel,2);

extract cross-sectional area

element's
element's
element's
element's

first node
first node
second node
second node

k=kmatrix(el(iel),area(iel),x1(iel),y1(iel),x2(iel),y2(iel),dx1(iel),dy1(iel),dx2(iel),dy
2(iel));
%
tangent matrix of the (iel)-th element
kk=PlaneTrussAssemble(kk,k,nd(1),nd(2));

system's tangent matrix

end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);

% apply the boundary conditions

%------------------------------------------%
solve for the predictor step
%------------------------------------------ddt=inv(kk)*qe;
if pr==1
s=sign(det(kk));
end

different criterions for the sign of Dl

if pr==2
s=sign(ddt'*qe);
end
if pr==3
if n>1
s=sign(Dd'*ddt);
else
s=sign(det(kk));
end
end
Dl=s*DL/sqrt(ddt'*ddt+xi^2*qe'*qe);

delta de lamda predictor

Dd=Dl*ddt;

delta de displacement predictor

d=d0+Dd;

update current displacement

l=l0+Dl;

update current load level

%---------------------------%
corrector step
%---------------------------while iterations<=maxit

desired maximum number of iterations

iterations=iterations+1;
qii=zeros(sdof,1);
kk=zeros(sdof,sdof);
%-------------------------------------------------------------%
assemble of the system's internal forces and tangent matrix
%-------------------------------------------------------------for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);

%
%

1st connected node for the (iel)-th element


2nd connected node for the (iel)-th element

index=feeldof(nd,nnel,ndof);
(iel)-th element
dx1(iel)=d(index(1));
first node
dy1(iel)=d(index(2));
first node
dx2(iel)=d(index(3));
second node
dy2(iel)=d(index(4));
second node
x1(iel)=gcoord(nd(1),1);
y1(iel)=gcoord(nd(1),2);
x2(iel)=gcoord(nd(2),1);
y2(iel)=gcoord(nd(2),2);
el(iel)=elprop(iel,1);
area(iel)=elprop(iel,2);

system's degrees of freedom associated with the

displacement in x direction of the (iel)-th element's

displacement in y direction of the (iel)-th element's

displacement in x direction of the (iel)-th element's

displacement in y direction of the (iel)-th element's


%
%
%
%
%
%

coordinate x of the (iel)-th


coordinate y of the (iel)-th
coordinate x of the (iel)-th
coordinate y of the (iel)-th
extract elastic modulus
extract cross-sectional area

element's
element's
element's
element's

first node
first node
second node
second node

51

[k,qi]=greens_strain(el(iel),area(iel),x1(iel),y1(iel),x2(iel),y2(iel),dx1(iel),dy1(iel),
dx2(iel),dy2(iel));
%
tangent matrix and internal force vector of the (iel)-th
element
kk=PlaneTrussAssemble(kk,k,nd(1),nd(2));
qii=qassemble(qii,qi,index,bcdof,bcval);

%
%

system's tangent matrix


system's internal force vector

end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);
kkin=inv(kk);

apply the boundary conditions

%------------------------------------------%
solve for the corrector step
%------------------------------------------r=qii-l*qe;
if norm(r)<e;

desired accuracy

d0=d;
l0=l;
if varDL==1
DL=DL*(Nite/iterations)^0.5;
if DL>DLmax
DL=DLmax;
end
if DL<DLmin
DL=DLmin;
end
end
break
end
if iterations==maxit
DL=b*DL;
if DL>DLmax
DL=DLmax;
end
if DL<DLmin
DL=DLmin;
end
break
end
ddb=-kkin*r;
ddt=kkin*qe;
a0=Dd'*Dd+Dl^2*xi^2*qe'*qe-DL^2;
dl=((-a0/2)-Dd'*ddb)/(Dd'*ddt+Dl*xi^2*qe'*qe);
dp=ddb+dl*ddt;
Dd=Dd+dp;
Dl=Dl+dl;
d=d0+Dd;
l=l0+Dl;
end
fff(n+1)=l0;
disp1(n+1)=(d0(dgr(1)));

52

disp2(n+1)=(d0(dgr(2)));
end
%-------------------------------------------------------------------%
print load factor for first and second chosen degrees of freedom
%-------------------------------------------------------------------subplot(222)
plot(disp1,fff);
xlabel(['First chosen degree of freedom = ', num2str(dgr(1))])
ylabel('load factor')
title('Arc-length technique path')
grid
subplot(224)
plot(disp2,fff);
xlabel(['Second chosen degree of freedom = ', num2str(dgr(2))])
ylabel('load factor')
title('Arc-length technique path')
grid
%---------------------------------------------------------------%
print initial and deformed system's configuration
%---------------------------------------------------------------subplot(221)
hold on
for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);
xp=[gcoord(nd(1),1);gcoord(nd(2),1)];
yp=[gcoord(nd(1),2);gcoord(nd(2),2)];
h=plot(xp,yp);
set(h,'linewidth',2)
end
hold off
grid
xlabel('x axis')
ylabel('y axis')
title(['Initial system configuration ', datestr(clock,0)])
subplot(223)
hold on
for iel=1:nel
nd(1)=nodes(iel,1);
nd(2)=nodes(iel,2);
index=feeldof(nd,nnel,ndof);
dx1(iel)=d0(index(1));
dy1(iel)=d0(index(2));
dx2(iel)=d0(index(3));
dy2(iel)=d0(index(4));
x1(iel)=gcoord(nd(1),1)+dx1(iel);
y1(iel)=gcoord(nd(1),2)+dy1(iel);
x2(iel)=gcoord(nd(2),1)+dx2(iel);
y2(iel)=gcoord(nd(2),2)+dy2(iel);
xpd=[x1(iel);x2(iel)];
ypd=[y1(iel);y2(iel)];
h=plot(xpd,ypd);
set(h,'linewidth',2);
end
hold off
grid
xlabel('x axis')
ylabel('y axis')
title('Deformed system configuration')

53

call general input data to obtain the geometry, properties, external load qe, value of
the initial or fixed incremental length l and boundary conditions. (see section 5.2.1)

d0 =0, 0=0
loop through the increments
n=1:ninc
iterations = 0
yes

>1?
no

loop through the structure elements


iel=1:nel
call "kmatrix.m" which gives Kt for the truss el.
call "PlaneTrussAssemble.m" which assemble the structural stiff. matrix
call "feaplyc2.m" which applies the boundary conditions to the
structural stiff. matrix

computation dt
-1
dt=Kt qe
1

pr
2

sign(1 )=sign(det(Kt))

sign(1 )=sign(dtqe)
T

n>1?

no

sign(1 )=sign(det(Kt))

yes
sign(1 )=sign(d dt)
T

computation 1
1
l
=
0 T
(dt ) d0t + 2qeT qe
computation d 1
1

d = dt

update 0d and
d=d +d1
=0 +1
B

Figure 5.6 Linearized arc-length control method flowchart


54

loop through the structure elements


iel=1:nel
call "greens_strain.m" which gives Kt and qi for the truss el.
call "PlaneTrussAssemble.m" which assemble the structural stiff. matrix
call "qassemble.m" which assemble the structure internal force vector

call "feaplyc2.m" which applies the boundary conditions to the


structural stiff. matrix and the structure internal force vector
computation r
r=qi-qe

yes

check convergence
norm(r)<?

l=DLmin

yes

l=DLmax

l>DLmax?
no

computation of new l
0.5
l = l(I d/I o)

iterations=maxit
l<DLmin?

no

l<DLmin?
no

yes

yes

no

yes

no
l=l

varDL=1?

yes

l=DLmin

no

computation d, dt and a
d=-Kt-1r
-1
dt=Kt qe

l>DLmax?

yes

l=DLmax

no

a = dTd + qeT qe - l = 0
2

update d and
d =d 0
= 0

computation and d
T

(a/2) (d) d
dTdt + 2qTe qe
d = d+dt

update d and
d=d+d
=+
update d and
d=d+d
=+

create vectors containing disp. values of the two


chosen degrees of freedom and the load level
dispp1(n+1)=d(dgr(1))
dispp2(n+1)=d(dgr(2))
fff (n+1)=

end of increments?

no

yes
print original and final configuration
print d(dgr1)-
print d(dgr2)-
stop

Figure 5.6 Linearized arc-length control method flowchart (continuation)


55

5.3 MATLAB subroutines


The following subroutines are used to compute the systems (global) internal force and stiffness
matrix to be used in the residuum equation.

5.3.1 Subroutine greens_strain.m


This subroutine computes the internal force qi and tangent stiffness matrix Kt for a truss element
using the equations given in chapter 4.
function [k,qi]=green_strain(E,A0,x1,y1,x2,y2,dx1,dy1,dx2,dy2);
x=[x1;y1;x2;y2];
d=[dx1;dy1;dx2;dy2];
x12=x1-x2;
y12=y1-y2;
dx12=dx1-dx2;
dy12=dy1-dy2;
a0=0.5*sqrt(x12^2+y12^2);
b1=(1/(4*a0^2))*[x12;y12;-x12;-y12];
b2=(1/(4*a0^2))*[dx12;dy12;-dx12;-dy12];
b=b1+b2;
A=(1/4)*[1 0 -1 0;0 1 0 -1;-1 0 1 0;0 -1 0 1];
e=b1'*d+0.5*b2'*d;
Sg=E*e;
k=2*a0*E*A0*b*b'+(2/a0)*A0*Sg*A;
qi=2*a0*A0*Sg*b;

5.3.2 Subroutine PlaneTrussAssemble.m


This subroutine was taken from the book of Peter Kattan [9]. Its purpose is to assemble the
systems (global) tangent stiffness matrix using the individual ones provided by the
greens_strain.m subroutine.
function y = PlaneTrussAssemble(K,k,i,j)
K(2*i-1,2*i-1) = K(2*i-1,2*i-1) + k(1,1);
K(2*i-1,2*i) = K(2*i-1,2*i) + k(1,2);
K(2*i-1,2*j-1) = K(2*i-1,2*j-1) + k(1,3);
K(2*i-1,2*j) = K(2*i-1,2*j) + k(1,4);
K(2*i,2*i-1) = K(2*i,2*i-1) + k(2,1);
K(2*i,2*i) = K(2*i,2*i) + k(2,2);
K(2*i,2*j-1) = K(2*i,2*j-1) + k(2,3);
K(2*i,2*j) = K(2*i,2*j) + k(2,4);
K(2*j-1,2*i-1) = K(2*j-1,2*i-1) + k(3,1);
K(2*j-1,2*i) = K(2*j-1,2*i) + k(3,2);
K(2*j-1,2*j-1) = K(2*j-1,2*j-1) + k(3,3);
K(2*j-1,2*j) = K(2*j-1,2*j) + k(3,4);
K(2*j,2*i-1) = K(2*j,2*i-1) + k(4,1);
K(2*j,2*i) = K(2*j,2*i) + k(4,2);
K(2*j,2*j-1) = K(2*j,2*j-1) + k(4,3);
K(2*j,2*j) = K(2*j,2*j) + k(4,4);
y = K;

56

5.3.3 Subroutine qassemble.m


This subroutine assembles the systems (global) internal force vector using the individual qi
provided by the greens_strain.m subroutine.
function qii=qassemble(qii,qi,index,bcdof,bcval);
qii(index(1))=qii(index(1))+qi(1);
qii(index(2))=qii(index(2))+qi(2);
qii(index(3))=qii(index(3))+qi(3);
qii(index(4))=qii(index(4))+qi(4);
D=length(bcdof);
for i=1:D
qii(bcdof(i))=bcval(i);
end

5.3.4 Subroutine kmatrix.m


This subroutine is a modification of the module greens_strain.m and computes only the tangent
stiffness matrix Kt for a truss element. It is used for the predictor step in the Arc-length method.
function k=kmatrix(E,A0,x1,y1,x2,y2,dx1,dy1,dx2,dy2);
x=[x1;y1;x2;y2];
d=[dx1;dy1;dx2;dy2];
x12=x1-x2;
y12=y1-y2;
dx12=dx1-dx2;
dy12=dy1-dy2;
a0=0.5*sqrt(x12^2+y12^2);
b1=(1/(4*a0^2))*[x12;y12;-x12;-y12];
b2=(1/(4*a0^2))*[dx12;dy12;-dx12;-dy12];
b=b1+b2;
A=(1/4)*[1 0 -1 0;0 1 0 -1;-1 0 1 0;0 -1 0 1];
e=b1'*d+0.5*b2'*d;
Sg=E*e;
k=2*a0*E*A0*b*b'+(2/a0)*A0*Sg*A;

5.3.5 Subroutine feaplyc2.m


This subroutine was taken from the book of Kwon and Bang [12]. Its purpose is to apply the
boundary conditions to the systems (global) tangent stiffness and systems (global) internal
force vector using the vectors bcdof and bcval (see section 5.1).
function [kk,ff]=feaplyc2(kk,ff,bcdof,bcval)
n=length(bcdof);
sdof=size(kk);
for i=1:n
c=bcdof(i);

57

for j=1:sdof
kk(c,j)=0;
end
kk(c,c)=1;
ff(c)=bcval(i);
end

5.3.6 Subroutine feeldof.m


This subroutine was taken from the book of Kwon and Bang [12]. Its purpose is to compute the
degrees of freedom associated with each element.
function [index]=feeldof(nd,nnel,ndof)
edof = nnel*ndof;
k=0;
for i=1:nnel
start = (nd(i)-1)*ndof;
for j=1:ndof
k=k+1;
index(k)=start+j;
end
end

58

Numerical experiments

The numerical experiments were chosen to allow comparison between the following methods or
criterions:
a) The different types of path following techniques investigated in this work: Load,
Displacement, Linearized arc-length and Cylindrical arc-length methods.
b) The criterions included in section 3.3.3 to determine the sign of the predictor step in the
arc-length method.
c) The Cylindrical and Linearized arc-length method.
d) In addition, the importance of the incremental length l and the scaling parameter were
investigated numerically.
Even though, the simplest elements (such as the truss element) and geometry cases are used in
these examples, a lot of the behaviour of the different methods and criterions can be tested.
To guarantee the same level of convergence, the full Newton-Raphson scheme is used in all
experiments. In addition, for convenience, the following abbreviations will be used; Load
Control Method (LCM), Displacement Control Method (DCM), Linearized Arc-Length Method
(LALM) and Cylindrical Arc-Length Method (CALM). The detailed inputs for these numerical
experiments are presented in the Appendix A.

6.1 Experiment 1. The basic two bar symmetric system: snap through problem for the
implemented methods.
The classical problem of figure 6.1 is the two truss element system. The LCM, DCM, LALM
and CALM methods implemented in this work are validated through this example. The key
inputs for each technique are given in table 6.1.

Table 6.1 Key inputs for the Numerical Experiment 1


LCM*

DCM*

LALM & CALM*

No. increments (ninc)=11

No. increments (ninc)=80

No. increments (ninc)=80

Load Increment:

Displ. Increment:

Incremental length:

d(q)=-50 at 4th dof

l = 75 (constant)

1
0.091
ninc

Scaling parameter:

=0
* See complete input in Appendix A

59

f
2

4th dof

45

y
x
1000

1000

Figure 6.1 Two bar symmetric structure for experiment 6.1

1.5

Load control method

1.5

Displacement control method

1
Load factor

Load factor

0.5

0.5
0

-0.5
0

-1

0
1000
2000
3000
Displacement of the 4th global dof

Linearized arc-length control method


1.5

Cylindrical arc-length control method


1.5
1
Load factor

Load factor

1
0.5
0

-0.5
-1

0
1000
2000
3000
Displacement of the 4th global dof

0.5
0

-0.5
0
1000
2000
3000
Displacement of the 4th global dof

-1

0
1000
2000
3000
Displacement of the 4th global dof

Figure 6.2 Load-displacement response diagram of the truss structure in figure 6.1
The figures 6.2 and 6.3 show the Load-Deflection curves obtained via the implemented
techniques. As expected, the LCM diverges after passing a limit point, while the DCM, LALM
and CALM methods overcome the critical point and draw the same curve.
60

When superposing the points obtained by the four methods, as in figure 6.3, it can be observed
how some points of the DCM, LALM and CALM methods exactly match and how every point
of the previous two methods coincided. The last is due to the use of the same incremental length
l and the fact that at the end of the iterations both versions of the arc-length method have
satisfied the constraint equation (3.24).
In addition, regarding the same figure, the LCM finds again the equilibrium path after one nonconverged point (x mark outside of the equilibrium path). However, this behaviour seems to
happen only when the full Newton-Raphson scheme is used.
Load-displacement response diagram

1.2

LALM
CALM
LCM
DCM

1
0.8

Load factor

0.6
0.4
0.2
0
-0.2
-0.4
-0.6

500
1000
1500
2000
2500
Displacement of the 4th global degree of freedom (mm)

Figure 6.3 Load-Disp. response diagram of the truss structure in figure 6.1 (superposed curves)
6.2 Experiment 2. The basic two bar symmetric system: equilibrium path with limit and
bifurcation points.
The next numerical experiments are focused on the Linearized and Cylindrical arc-length
method. Again, the same symmetric system of figure 6.1 is being used to compare the behaviour
of the different criterions to determine the sign of the predictor step and their influence in the
arc-length method. Recalling section 3.3.3:

Criterion 1 (equation (3.52)):


stiffness matrix.

Criterion 2 (equation (3.53)):

Criterion 3 (equation (3.54)):


internal product.

sign (1 ) = sign (det (K t )) or the determinant of the

(( ) )
sign ( ) = sign ((d ) d )
T

sign (1 ) = sign d t0 qe or the work increment


1

0 T

0
t

or the displacement

61

Figure 6.4 shows three Load-displacement response diagrams of the structure in figure 6.1. Each
equilibrium path is drawn using the LALM, but varying the criterions for computing the sign of
the predictor step. The size of the incremental length has been set to l=5 and the maximum
number of increments to ninc=1500.
Clearly, two limit points exist on the equilibrium path in figure 6.4, which are detected by the
det(Kt), whose value goes to zero at the proximity of such points. In this case, the three criterions
react to the limit points and change the direction of the predictor step accurately. Notice the
smooth curve of criterion 1, in contrast to the curves of criterions 2 and 3.
(a) Deformed shapes

1000

0
-500

-1000
0

1000
x axis

2000

-1

(c) Criterion 2

2
0
-2
0

1000
2000
3000
Displ. of the 4th global dof

Equilibrium path
determinant of Kt
Work increment

1000
2000
3000
Displ. of the 4th global dof
(d) Criterion 3
Equilibrium path
determinant of Kt
Disp. interal product

3
Load factor

Load factor

-4

Equilibrium path
determinant of Kt

3
Load factor

y axis

500

-1500

(b) Criterion 1

2
1
0

-1

1000
2000
3000
Displ. of the 4th global dof

Figure 6.4 Load-Displacement response diagram of symmetric structure in figure 6.1


On the other hand, if the angle between the trusses and the horizontal is being increased to 68
(see figure 6.5), obviously the Load-deflection curve change (figure 6.6), and now two
bifurcation and two limit points appear in the equilibrium path. This is evidenced by the four
times the det(Kt) is equal to zero in figure 6.6(d).
In the figures 6.6(b), 6.6(c) and 6.6(d), it can be observed how the three studied criterions are
affected by the presence of the limit points. The criterions 2 and 3 are not influenced by the limit
points and therefore the arc-length method continues drawing the entire primary path.

62

Nevertheless, this curve cannot be considered as stable, since a small disturbance of the system
would probably make the method to converge in the secondary path.
The arc-length method, using the criterion 1, fails to overcome the bifurcation point. The
problem consist in that when the sign of the det(Kt) changes to negative, the predictor step points
downwards, and the iterations converge in the equilibrium path that has already been drawn!
Therefore, at least in this case, the arc-length method oscillates around a bifurcation point until
the maximum number of increments ninc is completed.
f
2

4th dof

68

400

400

Figure 6.5 Two bar symmetric structure with augmented angle

(a) Deformed shapes

(b) Criterion 1

0.8

1000

Equilibrium Path
determinant of Kt

Load factor

0.6

y axis

500
0

0.4
0.2

-500
0
-1000
0

-0.2

500

x axis
(c) Criterion 2

100

150

200

(d) Criterion 3
4

Equilibrium Path
determinant of Kt
Work increment

Equilibrium Path
determinant of Kt
Disp. interal product

Load factor

Load factor

50

Disp. of the 4th global dof

1
0

2
1
0

-1
-2

1000

2000

Disp. of the 4th global dof

3000

-1

1000

2000

3000

Disp. of the 4th global dof

Figure 6.6 Load-Displacement response diagram of the symmetric structure in figure 6.5
63

If the symmetry of the truss structure is eliminated by displacing node 2 a few millimetres, as
shown in figure 6.7, the bifurcation points vanish, and the entire equilibrium path can be drawn
with any of the three criterions. The curves in figure 6.8 correspond to the equilibrium path of
the new asymmetric structure. However, part of the new curve would be an approximation of the
secondary path stemming from the bifurcation point of the symmetric system of figure 6.5 and
6.6.
f
2

1000

4th dof

68

405

395

Figure 6.7 Two bar asymmetric structure with augmented angle


(a) Deformed shapes
1000

Equilibrium Path
determinant of Kt

Load factor

500

y axis

(b) Criterion 1

-500

2
1
0

-1000
0

500

1000

1500

-1

x axis
(c) Criterion 2

1000

1500

2000

2500

(d) Criterion 3

4
Equilibrium Path
determinant of Kt
Work increment

Equilibrium Path
determinant of Kt
Disp. interal product

Load factor

Load factor

2
1

-1

-1

-2
-3

500

Disp. of the 4th global dof

-2
0

500

1000

1500

2000

Disp. of the 4th global dof

2500

-3

500

1000

1500

2000

2500

Disp. of the 4th global dof

Figure 6.8 Load-Displacement response diagram of the asymmetric structure in figure 6.7
64

6.3 Experiment 3. Six bar symmetric system: equilibrium path with limit, turning and
bifurcation points.
Until now, the behaviour of the arc-length method using the criterions 1, 2 and 3 has been tested
in the presence of bifurcation and limit points. With the aid of the symmetric truss structure of
figure 6.9, the performance of the criterions on the incidence of turning points will be examined.
f
4

8th dof
2

y
1

x
1000

1000

1000

1000

Figure 6.9 Six bar symmetric structure


Again, figure 6.10 shows three Load-displacement response diagrams of the structure in figure
6.9. Each Equilibrium Path is drawn using the LALM, but varying the criterions for computing
the sign of the predictor step.
The equilibrium path of the truss structure of figure 6.9 has eight limit points, two turning points
and at least two critical points. This conclusion was obtained by the inspection of the entire
equilibrium path in figure 6.10(c).
As in the previous numerical experiment, criterion 1 fails to predict the direction of the predictor
step, and the oscillation of the arc-length method around the bifurcation point occurs again. All
criterions change the sign of the predictor step when passing a limit point.
However, in this case, criterion 2 also fails to predict the direction of the next increment when

( )

passing a turning point. The sign of the work increment expression d t0 q e changes after
passing said point, as shown in figures 6.10(b) and 6.11. The arc-length control method starts to
oscillate around the turning point.
Finally, from the three studied criterions, the third is the only one insensible to the presence of
bifurcation and turning points. Therefore, it is capable to draw the complete equilibrium curve,
as shown in figure 6.10(c). Nevertheless, this curve cannot be considered as stable, since a small
disturbance of the system would probably make the method to converge in the secondary (and
more stable) path.
With respect to the inputs of figure 6.10, the size of the incremental length has been set to l=20,
the maximum number of increments to ninc=600 (see also Appendix A), but the sequence of
deformed configurations was not included due to its lack of clearness.
65

(a) Criterion 3

0.6

Equilibrium Path
determinant of Kt

Load factor

0.4
0.2
0
-0.2

(b) Criterion 2

0.8

Equilibrium Path
determinant of Kt
Work increment

Load factor

0.4

Equilibrium Path
Disp. interal product

1
0.5

0.2
0

-0.2

1000
2000
3000
Disp. of the 8th global dof
(c) Criterion 3

1.5

Load factor

0.6

-0.5
0

1000 2000 3000 4000


Disp. of the 8th global dof

-1

2000
4000
6000
Disp. of the 8th global dof

Figure 6.10 Load-Displacement response diagram of the symmetric structure in figure 6.9

Figure 6.11 Amplified detail of the turning point in figure 6.10(b)

66

If a small asymmetry is introduced by displacing the node 4 only 5 millimetres in the x direction
(see figure 6.12), a new equilibrium path stems without bifurcation points, and the criterions 1
and 3 draw the entire curve, as shown in figure 6.13. However, the turning point is still present
and the criterion 2 makes the arc-length method alternate around it (figure 6.13(b)).
f
4

8th dof
2

y
1

x
1000

1000

1000

1000

Figure 6.12 Six bar asymmetric structure


(a) Criterion 1

1.5

(a)
Criterion
Equilibrium
path 1
determinant of Kt

Load factor

1
0.5
0

-0.5
-1
(b) Criterion 2

-0.5
-1

(c)
Criterion
Equilibrium
path 3
Disp. interal product

1
Load factor

Load factor

2000
4000
6000
Disp. of the 8th global dof
(c) Criterion 3

1.5

Equilibrium path
determinant
of Kt 2
(b) Criterion
Work increment

0.5

0.5
0

-0.5
0

1000
2000
3000
Disp. of the 8th global dof

-1

2000
4000
6000
Disp. of the 8th global dof

Figure 6.13 Load-Displacement response diagram of the asymmetric structure in figure 6.12
67

Part of the curve (figure 6.13(a) or 6.13(c)) of the structure in figure 6.12 would be an
approximation of the secondary path stemming from the first bifurcation point of the symmetric
system of figure 6.9 and 6.10.
To give a better idea of how the beginning of this secondary path would look like, figure 6.13 is
redrawn by stopping the incremental process after the first bifurcation point is passed, as shown
in figure 6.14. The coordinates of the bifurcation point would be approximately (2970, 0.44). In
addition, some of the deformed configurations of the structure are included in figure 6.14(a).
Finally, the Cylindrical arc-length control method is also affected in the same way by the
criterions discussed in the previous two experiments.

(a) Deformed shapes

2000
1500

Load factor

y axis

500
0

1000

2000
x axis

3000

-0.2

4000

(c) Criterion 1

0.8

0.2

1000
2000
3000
Disp. of the 8th global dof
(d) Criterion 1
Equilibrium path
determinant of Kt
Disp. interal product

0.4
Load factor

0.4

0.6

Equilibrium path
determinant of Kt
Work increment

0.6
Load factor

0.2
0

-500

0.2
0

0
-0.2

Equilibrium path
determinant of Kt

0.4

1000

-1000

(b) Criterion 1

0.6

1000
2000
3000
Disp. of the 8th global dof

-0.2

1000
2000
3000
Disp. of the 8th global dof

Figure 6.14 Load-Displacement response diagram of the asymmetric structure in figure 6.12
stopped after 300 increments.

68

6.4 Experiment 4. Comparison between the Linearized and the Cylindrical arc-length
method.
All authors consulted coincided that the Cylindrical arc-length method still converges when the
Linearized version does not, mainly in the case when the incremental length l is increased.
By means of a numerical experiment using again the structure in figure 6.9, is being checked if
this also applies for the simple truss structures.
Table 6.2 contains the results of a comparison test between the two methods, LALM and CALM,
both using full Newton-Raphson scheme, and equal and constant incremental length l. The test
revealed that both schemes behave similarly until the step length is increased to 600! Both
methods actually converged with such a large increment size.
When augmenting the incremental length to 700, the Linearized arc-length control method
diverged after the 8th increment. Still, the CALM converged until the step size was increased to
800.
However, at least in the analysis done in this work, both the Linearized and the Cylindrical arclength control methods showed a similar convergence rate if the step size is kept in reasonable
levels. Though, the ones used in this little experiment cannot be considered as reasonable.

Table 6.2 Number of iterations of the CALM and LALM for experiment 4.
Step Iteration
Increment number
length scheme 1 2 3 4 5 6 7 8 9 10 11 12 13 14
600
700
800
900

LALM
CALM
LALM
CALM
CALM
CALM

5
5
5
5
5
6

5
5
5
5
5
5

5
5
5
5
6
6

5
5
5
5
6
6

5
5
6
6
7
6

5
5
6
6
7
5

6
6
6
6
5

6
5
5
5
5

5
5

6
5

5
6

6
6

15

16

17

18

19

5
5

5
4

4
4

8
5

6
5
5
5
5
5
5
5
5
5
. DIVERGENCE .
5
5
5
5
5
4
6
5
5
4
. DIVERGENCE .

6.5 Experiment 5. Influence of the incremental length l in arc-length method


Another effect of the size of the incremental length l in the linearized and cylindrical arc-length
control method, encountered while doing this experiment, will be given next.
Figure 6.8 shows the equilibrium path of the structure in figure 6.7, obtained by using l=5.
Said structure was again analyzed, but this time using the cylindrical arc-length method and two
different and increased step sizes.
The equilibrium path drawn with an incremental length of 80 was exactly as the one in figure
6.8. However, when increasing the size to 110, the arc-length method converges and stays on the
wrong equilibrium path.
69

Therefore, due to the size of the increment, it falls outside the dominium of attraction of the
bifurcation point and the method misses the stable path.
Load-Displacement response diagram

DL = 80
DL = 110

1.5

Load factor

0.5

-0.5

-1

500

1000
1500
Chosen degree of freedom = 4

2000

2500

Figure 6.15 Influence of the incremental length l on the arc-length method

6.6 Experiment 6. Influence of the scaling parameter


The choice of a random value (e.g. 1) for the scaling parameter can lead to the linearized and
cylindrical arc-length methods to yield disappointing results. This is especially true when
dealing with real structures, whose stiffness are high and therefore big external forces are needed
to obtain a small displacement (see also section 3.3.4).
Let us now use again the truss structure in the figure 6.5 and input data used to draw its
equilibrium path (figure 6.6(d)). Then, if the scaling parameter is set to 1, the force term
2 2qTe q e in the constraint equation (3.24) tends to infinite if compared to the displacement
term dT d .
As a direct consequence, the length of the predictor step is reduced dramatically (see table 6.3)
and more than 350.000 increments would be needed to draw the same curve of figure 6.6(d)!

70

Furthermore, the arc-length method starts to show a Load control-like behaviour. When arriving
to the limit point, the arc-length method cannot go further and doubles back on its tracks, as
shown in figure 6.16.
On the other hand, if the scaling parameter is set to 0, like it has been used in all previous
experiments, the size of the predictor step is kept in reasonable values and only 112 increments
are needed to draw the entire equilibrium path.
Additionally, a Displacement control-like behaviour can be observed from the constant
displacement increment size (approx. 20 in every increment). However, at least in the analysed
truss structures, the arc-length control method with =0 is capable to overcome all the special
points, but only if the criterion for determining the sign of the predictor step yields the right
direction.

Table 6.3 Size of the first predictor step (with constant l=20) for two values of the scaling
parameter
Scaling parameter

d1 (4)

0.02969848480983

20

9.999999433106624e-006

0.00673434991525

Equations

1 =

(d ) d
0 T
t

0
t

+ q qe
2 T
e

d1 = 1d 0t

Load-Displacement response diagram

0.7
0.6

load factor

0.5
0.4
0.3
0.2
0.1
0

100
200
300
Second chosen degree of freedom = 4

400

Figure 6.16 Influence of the scaling parameter on the arc-length method


71

Conclusions

The standard path following techniques; Load control, Displacement control, and Linearized and
Cylindrical arc-length control methods have been implemented using MATLAB and compared
through numerical experiments. The Automatic step sizing and increment cutting algorithms
have been also included in the routines of the arc-length method.
The following results were obtained from the conducted numerical experiments.
1. The behaviour of the Load control and Displacement control methods was as expected.
The Load control diverged after passing a limit point and the Displacement control after a
turning point. When using the full Newton-Raphson scheme, after a couple additional
increments, both methods converged again in the stable section of the equilibrium path.
2. The results were mixed in the case of the arc-length (cylindrical and linearized) control
method regarding the special points. The performance of the technique depended highly
on the sign of the predictor step and therefore on the criterion used to determine it:

The arc-length method overcame the limit points when using any of the three studied
criterions.

While using the determinant of the tangential stiffness matrix, to determine the sign
of the predictor step, the arc-length method oscillated around the bifurcation points.

When using the principle of the work increment, to determine the sign of the predictor
step, the solution fluctuated about the turning points. However, it did not respond to
bifurcations and it was able to draw the entire unstable post-bifurcation path.

The criterion of the internal product of the displacement vectors was insensible to
bifurcation and turning points, at least in the analysed structures. Therefore, when
using such criterion, the arc-length method was capable to draw the entire primary
equilibrium path.

None of the studied criterions were able to switch to the stable (or more stable) postbuckling path.

3. The limit, bifurcation and turning points can be detected by monitoring the determinant
of the tangent stiffness matrix and the work increment expression.
4. The cylindrical arc-length method showed slightly better convergence rates than the
linearized form when using the full Newton-Raphson scheme. However, once the size of
the increment was augmented progressively, the cylindrical method showed more
tendencies to converge than the linearized form.
5. In the context of the cylindrical arc-length algorithm, the presence of no real roots
occurred in the neighbourhood of a bifurcation point when the incremental length l was

72

relatively large in comparison to the structure dimensions. However, the automatic step
cutting solved the problem in every case.
6. The automatic step sizing scheme did not improve the computing time, nor prevented the
divergence. In contrast, in every case, the usage of a constant reasonable step size did
not induced to divergence and furthermore, the computing times were kept lower than
those achieved using the automatic step sizing. However, the use of the automatic step
sizing would be advisable in the first analysis attempt, when information to define a
reasonable step size is not enough.
7. The choice of a proper scaling parameter demonstrated to have great influence on the
performance of the arc-length method. In the analysed problems (relating practical
values), the use of =0 produced the best the performance of the method regarding
convergence and computing time.
8. The equilibrium curves obtained from the truss structures generally contained several
multi-loops due to the large rotations that undergo such structures. Therefore, they were
appropriate to investigate the different path following techniques.
9. Further investigations regarding the arc-length method might include:

Additional tests to investigate the performance of the internal product of the


displacement vectors when increasing the incremental length l. This issue was not
addressed in the introductory work of Feng et al [7, 20].

Additional criterions for determining the sign of the predictor step, such as the one
proposed by Kuo and Yang [11], and Yang and Shieh [21].

Other sources of nonlinearities in the formulae.

73

Bibliography
[1] Agarwal, R. B.: FEA Lecture Notes, p. 3-2. Department of Mechanical and Aerospace
Engineering, San Jos State University. Available through internet:
www.engr.sjsu.edu/ragarwal/ME273/Chapter%203%20-%20Truss%20Element.pdf
[2] Al-Rasby, S.N.: Solution techniques in nonlinear structural analysis. Computer and
Structures, (1991) 40 (4), pp. 985-993
[3] Batoz, J.-L. and Dhatt, G.: Incremental displacement algorithms for nonlinear problems.
International Journal of Numerical Methods Engineering (1979), pp. 1262-1267
[4] Crisfield, M. A.: A fast incremental/iterative solution procedure that handles Snapthrough. Computers & Structures (1981) 13, pp. 55-62
[5] Crisfield, M. A.: Non-linear finite element analysis of solids and structures. Volume 1:
Essentials John Wiley & Sons Ltd, West Sussex, England (1991), pp. 1-75, 266-288
[6] Felippa, C. A.: Nonlinear finite element methods. Department of Aerospace
Engineering Sciences and Center for Space Structures and Controls, University of
Colorado
(2001).
Available
through
internet:
www.colorado.edu/engineering/CAS/courses.de/NFEM.Ch00.d/NFEM.Ch00.pdf
[7] Feng, Y. T., Owen, D. R. J. and Peric D.: Determination of travel directions in pathfollowing methods. Mathematical and Computational Modelling. 58 (1996) 479-485.
[8] Feng, Y. T., Owen, D. R. J. and Peric D.: On the sign of the determinant of the
structural stiffness matrix for determination of loading increment in arc-length
algorithms. Communications in numerical methods in engineering (1997) 13, pp. 47-49
[9] Kattan, P.: MATLAB Guide to finite elements. Second Edition Springer-Verlag Berlin
Heidelberg, Germany (2007), pp. 61-89
[10] Kondoh, K., and Atluri, S.: Influence of local buckling on global instability: simplified,
large deformation, post-buckling analyses of plane trusses. Computers & Structures
(1985) 21, pp. 613-627
[11] Kuo, S.-R. and Yang, Y.-B.: Tracing post-buckling path of structures containing multiloops. International journal for numerical methods in engineering (1995) 38, pp. 40534075
[12] Kwon, Y. W. and Bang, H.: The finite element method using MATLAB. Second
Edition CRC Press LLC, Boca Raton, United States of America (2000), pp. 199-236
[13] Levy, R. and Spillers, W. R.: Analysis of geometrically nonlinear structures. Second
Edition Kluwer Academic Publishers, Dordrecht, The Netherlands (2003), pp. 1-91
[14] Memon, B.-A. and Su, X.: Arc-length technique for nonlinear finite element analysis.
Journal of Zehjiang University Science (2004) 5 (5), pp. 618-628

74

[15] Otto, S. R. and Denier, J. P.: An introduction to Programming and numerical methods in
MATLAB. Springer-Verlag, London, England (2005)
[16] Ramm, E.: Strategies for tracing the non-linear response near limit-points. Non-linear
Finite element Analysis in structural Mechanics, ed. W. Wunderlich, Springer-Verlag,
Berlin (1981), pp. 63-89
[17] Ramm, E.; The Risk/Wempner approach an extension of the displacement control
method in non-linear analysis. Non-linear Computational Mechanics, ed. E. Hinton et
al., Pineridge, Swansea, (1982), pp. 63-86
[18] Ramm, E.: COMMAS E4 Manuscript. Advanced Computational Structural Mechanics.
Institut fr Baustatik and Baudynamik, Universitt Stuttgart (2006), pp. 45-105
[19] Schweizerhof, K. H. and Wriggers, P.: Consistent linearization for path following
methods in nonlinear FE analysis. Computer methods in applied mechanics and
engineering (1986) 59, pp. 261-279
[20] Souza Neto, de, E. A. and Feng, Y. T.: On the determination of the path direction for
arc-lengh methods in the presence of bifurcations and snap-backs. Computer methods
in applied mechanics and engineering (1999) 179, pp. 81-89
[21] Yang, Y.-B. and Shieh, M.-S.: Solution method for nonlinear problems with multiple
critical points. American Institute of Aeronautics and Astronautics (1990) 28 (12), pp.
2110-2116
[22] Zienkiewiez, O. C.; The Finite Element in Engineering Science.
Londong (1971).

McGraw-Hill,

75

Appendix A
This appendix contains the general input data used to produce the Load-Response diagrams and
tables in chapter 6. See also section 5.1 for a detailed description of each variable.
The Youngs modulus is expressed N/mm2. Then, the load vector should have units of N, the
coordinates in mm and the area in mm2.

Input data to produce figures 6.2, 6.3


general_input_data.txt
nel
nnel ndof nnode e
2
2
2
3
1e-5

maxit pr
12
3

ninc.txt
80
disp_control.txt
ddq q
-50 4
incremental_size.txt
DL
varDL Nite DLmin
75
0
3
1
gcoord.txt
0
0
1000 1000
2000 0
nodes.txt
1 2
2 3
elprop.txt
2.1e5 20
2.1e5 20
force.txt
0
0
0
-1000000
0
0
dgr.txt
3
4

76

DLmax
100

b
0.1

Input data to produce figure 6.4


The same input data to produce figures 6.2 and 6.3 was used, except the following variables:
general_input_data.txt
nel
nnel ndof nnode e
2
2
2
3
1e-5

maxit pr
12
1, 2 and 3

ninc.txt
1500
incremental_size.txt
DL
varDL Nite DLmin
5
0
3
1

DLmax
30

b
0.1

Input data to produce figure 6.6


The same input data to produce figures 6.2 and 6.3 was used, except the following variables:
general_input_data.txt
nel
nnel ndof nnode e
2
2
2
3
1e-5

maxit pr
12
1, 2 and 3

ninc.txt
1500
incremental_size.txt
DL
varDL Nite DLmin
5
0
5
1

DLmax
30

b
0.1

gcoord.txt
0
0
400 1000
800 0
force.txt
0
0
0
-2000000
0
0

Input data to produce figure 6.8


The same input data to produce figure 6.6 was used, except the following variables:
gcoord.txt
0
0
405 1000
800 0
77

Input data to produce figure 6.10


general_input_data.txt
nel
nnel ndof nnode e
6
2
2
6
1e-5

maxit pr
50
1, 2 and 3

ninc.txt
600
incremental_size.txt
DL
varDL Nite DLmin
20
0
3
1
gcoord.txt
0
0
1000 1000
2000 0
2000 2000
3000 1000
4000 0
nodes.txt
1
2
2
3
2
4
3
5
4
5
5
6
elprop.txt
2.1e5 20
2.1e5 20
2.1e5 20
2.1e5 20
2.1e5 20
2.1e5 20
force.txt
0
0
0
0
0
0
0
-2000000
0
0
0
0

78

DLmax
30

b
0.1

dgr.txt
7
8

Input data to produce figure 6.13


The same input data to produce figure 6.10 was used, except the following variables:
incremental_size.txt
DL
varDL Nite DLmin
80
0
3
1

DLmax
30

b
0.1

gcoord.txt
0
0
1000 1000
2000 0
2005 2000
3000 1000
4000 0

Input data to produce figure 6.14


The same input data to produce figure 6.13 was used, except the following variables:
ninc.txt
300
incremental_size.txt
DL
varDL Nite DLmin
20
0
3
1

DLmax
30

b
0.1

Input data to produce figure 6.15


The same input data to produce figures 6.2 and 6.3 was used, except the following variables:
gcoord.txt
0
0
405 1000
800 0
force.txt
0
0
0
-2000000
0
0
incremental_size.txt
DL
varDL Nite DLmin
75 and 80
0
3
1

DLmax
100

b
0.1

79

Input data to produce table 6.2


The same input data to produce figure 6.10 was used, except the following variables:
ninc.txt
20
incremental_size.txt
DL
600, 700, 800 and 900

varDL Nite
0
3

DLmin
1

DLmax
30

b
0.1

Input data to produce figure 6.16


The same input data to produce figure 6.6 was used, except the following variables:
The linearized arc-length method was used.
xi = 1 (changed inside the main routine linarclength.m)
ninc.txt
2000
incremental_size.txt
DL
varDL Nite
30000!
0
3

80

DLmin
1

DLmax
30

b
0.1

Anda mungkin juga menyukai