Professional Documents
Culture Documents
Master Thesis
vorgelegt von
Luis Miguel Posada
im
August 2007
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
2.1
2.2
2.3
3.3.3
3.3.4
3.3.5
5.2.1
5.2.2
5.2.3
Flowchart and MATLAB routine for the Arc-length control method. .................48
5.3
MATLAB subroutines...................................................................................................56
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
Subroutine feaplyc2.m........................................................................................57
5.3.6
Conclusions ..........................................................................................................................72
Bibliography ................................................................................................................................74
Appendix A ..................................................................................................................................76
iv
List of Figures
vi
List of Symbols
arc-length mismatch
Ao
b1
b2
Youngs modulus
Io
Id
Ke
Kg
Kt
Ku
qe
qi
arc length
d t
d 0t
viii
d0
d1
GL
incremental length
qe
incremental displacement
GL
Green-Lagrange strain
PK 2
non-dimensional coordinate
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?
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
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
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,
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.
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.
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.
Load
level
Bifurcation
point
Limit point
Postcritical regime
Secondary
path
Fundamental
path
Tertiary path
Displacement d
component
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.
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 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 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.
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.
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)
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
qe
unbalanced
forces
Load level 1
d1
d2
Displacement d
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)
(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
Limit Point
Load
level
might converge
again in this section
of the path
Newton-Raphson
iterations
Bifurcation Point
cannot be followed
Displacement d
Load
level
Load
level
fN-R
mN-R
Displacement d
Load
level
Displacement d
Load
level
KT1
initial stress
Displacement d
Displacement d
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.
= 0
and
d = d0 .
Following, instead of varying the load parameter , the qth component of d is incremented by
(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)
(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
(3.13)
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)
(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)
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
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
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.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.
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)
(3.30)
with
ai
2
(3.31)
( )
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
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)
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.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
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:
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)
(3.44)
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)
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
(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)
(3.49)
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.
( )
( )
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
Displacement
Control
Load
level
Arc-length
Control
0
2
Load Control
0
1
d01
d02
Displacement d
Component
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
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
29
(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
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.
dxn2 dxo2
2dxo2
(4.4)
dx o
d .
d
(4.5)
dxT dx 2
dxo = dx o = o o d = o d ,
d d
(4.6)
31
d(xo + u)
d ,
d
(4.7)
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)
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
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
(4.16)
Equation (4.16) includes only discrete nodal values. Notice that vector b1 does not depend on
the nodal displacements d.
GL =
1 dxTo du 1 duT du
1 duT du
.
+
+
o2 d d o2 d d 2 o2 d d
(4.17)
(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
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
leading to
q i = 2 o Ao PK 2 (b1 + b 2 ) .
(4.26)
(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.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)
(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)
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
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!
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:
o q:
The file incremental_size.txt applies only for the Arc-length control method and
includes the following input variables:
o DL:
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.
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.
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
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)
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.
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
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);
%
%
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
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
el(iel)=elprop(iel,1);
area(iel)=elprop(iel,2);
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));
qii=qassemble(qii,qi,index,bcdof,bcval);
41
end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);
%------------------------------------------%
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.
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
check convergence
norm(r)<?
no
computation d
d=-K-1t r
end of increments?
no
yes
update d
d=d+d
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
check convergence
norm(r)<?
no
computation d and dt
d=-Kt-1r
-1
d t= K t q e
end of increments?
no
yes
computation
=- d
dt
update d and
d=d+d
=+
stop
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);
%
%
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);
%
%
%
%
coordinate
coordinate
coordinate
coordinate
x
y
x
y
of
of
of
of
the
the
the
the
el(iel)=elprop(iel,1);
area(iel)=elprop(iel,2);
[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);
end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);
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
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,
DLmax
b]
textread('incremental_size.txt',
'%f
%f
%f
%f
%f
ninc=load('ninc.txt');
49
%
%
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
%
%
%
%
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);
area(iel)=elprop(iel,2);
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));
end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);
%------------------------------------------%
solve for the predictor step
%------------------------------------------ddt=inv(kk)*qe;
if pr==1
s=sign(det(kk));
end
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);
Dd=Dl*ddt;
d=d0+Dd;
l=l0+Dl;
%---------------------------%
corrector step
%---------------------------while iterations<=maxit
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);
%
%
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);
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);
%
%
end
[kk,qe]=feaplyc2(kk,qe,bcdof,bcval);
kkin=inv(kk);
%------------------------------------------%
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
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
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
=+
end of increments?
no
yes
print original and final configuration
print d(dgr1)-
print d(dgr2)-
stop
56
57
for j=1:sdof
kk(c,j)=0;
end
kk(c,c)=1;
ff(c)=bcval(i);
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.
DCM*
Load Increment:
Displ. Increment:
Incremental length:
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
1.5
1.5
1
Load factor
Load factor
0.5
0.5
0
-0.5
0
-1
0
1000
2000
3000
Displacement of the 4th global dof
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:
(( ) )
sign ( ) = sign ((d ) d )
T
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
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
(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
1
0
2
1
0
-1
-2
1000
2000
3000
-1
1000
2000
3000
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
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
-2
0
500
1000
1500
2000
2500
-3
500
1000
1500
2000
2500
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
( )
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
-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
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
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.
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 .
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
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
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
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 criterions for determining the sign of the predictor step, such as the one
proposed by Kuo and Yang [11], and Yang and Shieh [21].
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.
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
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
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
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
DLmax
30
b
0.1
gcoord.txt
0
0
1000 1000
2000 0
2005 2000
3000 1000
4000 0
DLmax
30
b
0.1
DLmax
100
b
0.1
79
varDL Nite
0
3
DLmin
1
DLmax
30
b
0.1
80
DLmin
1
DLmax
30
b
0.1