Académique Documents
Professionnel Documents
Culture Documents
Table of Contents
Chapter 1: Introduction
13
25
41
49
57
65
69
81
93
99
131
Appendix 1: Bibliography
137
139
CHAPTER 1
Introduction
Finite Element Method is becoming an important and frequently indispensable part of engineering
analysis and design. There are many finite element based computer programs, which are widely used
in practically all branches of engineering for the analysis of structures, solids and fluids.
The development of finite element methods and procedures for the solution of practical
engineering problems began with the advent of the digital computers. The two properties:
effectiveness and general applicability in engineering analysis, have contributed that the finite element
method be developed to a high degree for practical computations, finding wide appeal in engineering
practice.
The roots of the finite element method can be traced back to three separate research groups:
applied mathematicians, physicists and engineers. Practically, the finite element method obtained its
real impetus from the developments of engineers. Among the first original contributions can be
regarded the investigations and publications by Argyris, Kelsey, Turner, Clough, Martin, Topp etc.
The name finite element was coined in the paper The Finite Element Method in Plane Stress
Analysis, published in September 1960. Since the early 1960s, a large amount of research has been
devoted to the technique and a very large number of publications on the finite element method is
available.
The finite element method in engineering was initially developed on a physical basis for the
analysis of problems in structural mechanics. However, it was soon recognized that the technique
could be applied equally well to the solution of many other classes of problems.
The finite element method is used to solve physical problem in engineering analysis and
design. The figure 1.1 summarizes the process of finite element analysis. The physical problem is
usually an actual structure or structural component subjected to certain loads.
The idealization of the physical problem to a mathematical model requires certain assumptions
that together lead to differential equations governing the mathematical model.
The finite element analysis solves this mathematical model.
Since the finite element solution technique is a numerical procedure, it is necessary to assess
the solution accuracy. If the accuracy criteria are not met, the numerical solution has to be repeated
with refined solution parameters until a sufficient accuracy is reached.
It is clear that the finite element analysis will solve only the selected mathematical model and
that all assumptions in this model will be reflected in the predicted response.
Once a mathematical model has been solved accurately and the results have been interpreted,
we may decide either to refine the analysis, or to use the obtained actual results for design
improvements. If we need further to make structural optimization, we may need to change the physical
problem and consequently to establish a new mathematical model which has to be solved again.
Hence, the key step in engineering analysis is choosing appropriate mathematical models.
These models should be selected depending on what phenomena are to be predicted. Also, it is very
important to select mathematical models that are reliable and effective in predicting the needed
quantities and phenomena.
The most effective mathematical model for the analysis is surely that one which yields the
required response to a sufficient accuracy and at least cost.
The chosen mathematical model is reliable if the required response is known to be predicted
within a selected level of accuracy compared to the response of the very comprehensive mathematical
model.
CHAPTER 2
Matrices
Definition 1: A matrix is an array of ordered numbers. A general matrix consists of m x n numbers
arranged in m rows and n columns, giving the array as follows:
a11
a
A = 21
.
a m1
a12
a 22
.
am 2
... a1n
... a 2 n
.
.
... a mn
(2.1)
Definition 2: The transpose of the m x n matrix A, or AT, is obtained by interchanging the rows and
columns in A.
If A = AT, it follows that the number of rows and columns in A are equal and that aij=aji.
Because m=n, we say that A is a square matrix of order n. Also, because aij=aji, we say that A is a
symmetric matrix.
Definition 3: The matrices A and B are equal if and only if:
1. A and B have the same number of rows and columns;
2. All corresponding element are equal, i.e. aij=bij for all i and j.
Definition 4: Two matrices A and B can be added if and only if they have the same number of rows
and columns. The addition of the matrices is performed by adding all corresponding elements, i.e. if aij
and bij denote general elements of A and B, respectively, then cij = aij + bij denotes a general element of
C where C=A+B. It follows that C has the same number of rows and columns as A and B.
Definition 5: A matrix is multiplied by a scalar by multiplying each matrix element by the scalar, i. e.
C=kA means that cij = k aij.
Definition 6: Two matrices A and B can be multiplied to obtain C=AB if and only if the number of
columns in A is equal to the number of rows in B. Assume that A is of order p x m and B is of order m
x q. Then for each element in C we have:
m
where C is of order p x q, i.e. the indices i and j vary from 1 to p and 1 to q, respectively.
(2.2)
Definition 7: The inverse of a matrix A is denoted by A . Assume that the inverse exists; then the
-1
-1
-1
elements of A are such that A A =I and A A =I. A matrix that possesses an inverse is said to be
nonsingular. A matrix without an inverse is a singular matrix.
Definition 8: The trace of the matrix A is denoted as tr(A) and is equal to
n
tr (A) = aii
(2.3)
i =1
(2.4)
j =1
where A1j is the (n-1) x (n-1) matrix obtained by eliminating the 1st row and jth column from the
matrix A.
Vector Spaces
According to the previous section we can define a vector of order n to be an array of n numbers
written in matrix form. We now want to associate a geometric interpretation with the elements of a
vector.
We should note that the geometric representation of a vector depends completely on the
coordinate system chosen. In other words, if a vector x would give the components of a vector in a
different coordinate system, then the geometric representation of x would be different from the one in
the Fig. 2.1.
Definition 10: A collection of vectors x1, x2, , xs is said to be linearly dependent if there exist
numbers 1, 2, ,s which are not all zero, such that:
1x1 + 2 x 2 + ... + s x s = 0
(2.5)
If the vectors are not linearly dependent, they are called linearly independent vectors.
Definition 11: q vectors, of which p vectors are linearly independent, are said to span a p-dimensional
vector space.
Definition of Tensors
In engineering analysis, the concept of tensors and their matrix representation can be important.
Let the Cartesian coordinate frame be defined by the unit base vectors ei (Fig.2.2).
Figure 2.2 Unit base vectors in unprimed and primed coordinates systems
u = ui e i
(2.6)
i =1
In tensor algebra it is convenient for the purpose of a compact notation to omit the summation
sign. So, instead of the above expression we simply write:
u = ui e i
(2.7)
The scalar (or dot) product of two vectors u and v is given by:
u v = u v cos = ui vi
(2.8)
The vector (or cross) product of two vectors u and v produces a new vector w=u x v:
e1 e 2
w = uxv = det u1 u2
v1 v2
e3
u3
v3
(2.9)
Definition 12: An entity is called a scalar if it has only a single component in the coordinates xi
measured along ei and this component does not change when expressed in the coordinates xi measured
along ei:
(2.10)
Definition 13: An entity is called a vector or tensor of first order if it has three components qi in the
unprimed frame and three components qi in the primed frame, and if these components are related by
the characteristic law (using summation convention):
qi = pik qk
(2.11)
pik = cos(ei' , e k )
Definition 14: An entity is called a second-order tensor if it has nine components tij, i=1,2,3, and
j=1,2,3 in the unprimed frame and nine components tij in the primed frame and if these components
are related by the characteristic law:
tij = pik p jl t kl
(2.12)
Exercises
1. Calculate C=k(A+B)B, where k=0.3 and
1 2 2
3 8 4
A = 0 2 5 , B = 1 8 4
2 1 7
3 9 2
Solution:
4 10 6
A + B = 1 10 9
5 10 9
40 166 68
( A + B)B = 40 169 62
52 201 78
12 49.8 20.4
C = 12 50.7 18.6
15.6 60.3 23.4
2. Calculate A , where
3 2
A=
2 4
Solution:
3 2 3 2 13 14
A2 =
2 4 2 4 14 20
13 14 13 14 365 462
A4 = A2A2 =
14 20 14 20 462 596
2
v = 1
4
Solution:
1 2 2 2
v Av = {2 1 4}0 2 5 1 = 178
2 1 7 4
T
10
2 2 2
A = 2 1 2
2
2 1
Solution:
1 2
2 1
2 2
adjA =
2 1
2 2
1 2
A 1 =
adjA
detA
2 2
2 1
2 2
2 1
2 2
2 2
2
2
2
2
2
2
T
2
3 6 6
3 6 6
2
= 6 2 8 = 6 2 8
2
6 8 2
6 8 2
2
1
3 6 6 0 .1 0 .2 0 .2
1
A = 6 2 8 = 0.2 0.06 0.26
30
6 8 2 0.2 0.26 0.06
1
2
2 1 0.2 0.26 0.06 0 0 1
1
2 1 0
A = 1 3 1
0 1 2
Solution:
n
n
3 1
1 1
1 3
2
3
4
detA = (1)1+ j a1 j detA1 j = ( 1) (2)det
+ ( 1) (1)det
+ ( 1) (0 )det
=
j =1
1 2
0 2
0 1
= 2 x(3 x 2 1x1) 1x(1x 2 0 x1) + 0 x(1x1 3x0) = 10 2 + 0 = 8
v1T = {2 2 0 1}
v T2 = { 2 0 2 0}
v T3 = {0 1 1 0.5}
Solution:
The vectors are linearly dependent if if there exist numbers 1, 2, ,s which are not all zero, such
that:
11
1 v1 + 2 v 2 + 3 v 3 = 0
2 1 2 2 = 0
2 = 0
1
3
2 2 3 = 0
1 0.5 3 = 0
0
2
2
1
2
0
1 + 2 + 3
=0
1
0
2
0.5
1
0
1 = 2
, or, for example
3 = 2 1 = 2 2
1 = 2 = 1
,
3 = 2 1 = 2 2 = 3
u T = {6 6 0}
v T = {0 4 4}
Calculate the angle between these vectors and establish a vector perpendicular to the plane
that is defined by these vectors
Solution:
cos =
0 x6 + 4 x6 + 4 x0
24
uv
=
= 0.5, = 60 o
=
2
2
2
2
48
uv
6 +6 x 4 +4
e1 e 2
w = u x v = det u1 u 2
v1 v2
e3
e1 e 2
u3 = det 6 6
0 4
v3
e3
0 = 24e1 24e 2 + 24e 3
4
RT = 0 2 2 3
Evaluate the components of the force in the primed coordinate system if the angle =300.
Solution:
0
1
P = 0 cos
0 sin
0
sin
cos
0
1
R = PR = 0 cos 30 0
0 sin 30 0
'
( )
( )
0 0
sin 30 2 = 2 3
cos 30 0 2 3 2
0
( )
( )
0
12
CHAPTER 3
Discrete-system models
In this lecture we will discuss some general procedures that are employed to obtain the
governing equations of discrete-system models and briefly show how these classical procedures
provide basis for modern finite element methods.
The essence of a discrete-system mathematical model is that the state of the system can be
described directly with adequate precision by the magnitudes of a finite (and usually small) number of
state variables. The solution requires the following steps:
1.System idealization: the actual system is idealized as an assemblage of elements
2. Element equilibrium: the equilibrium requirements of each element are established in terms
of state variables
3. Element assemblage: the element interconnection requirements are invoked to establish a
set of simultaneous equations for the unknown state variables
4. Calculation of response: the simultaneous equations are solved for the state variables, and
using the element equilibrium requirements, the response of each element is calculated.
These steps of solution are followed in the analyses of different types of problems like:
1. Steady-state problems
2. Propagation problems
3. Eigenvalue problems.
13
The objective of this lecture is to provide and introduction showing how problems in these
particular areas are analyzed and to briefly discuss the nature of the solutions. In general, we can
consider structural, electrical, fluid flow and heat transfer problems, emphasizing that in each of these
analyses the same basic steps of solution are followed.
Steady-state problems
The main characteristic of a steady-state problem is that the response of the system does not
change with time. Thus, the state variables describing the response of the system under consideration
can be obtained from the solution of a set of equations that do not involve time as a variable. Such
problems could be the following: 1.Elastic spring system; 2.Heat transfer system; 3. Hydraulic
network; 4. DC network; 5. Nonlinear elastic spring system etc.
Examples
1. Consider a system of three rigid carts on a horizontal plane that are interconnected by a system of
linear elastic springs. Calculate the displacements of the carts and the forces in the springs for the
given loading.
k1 0 0 u1 F
0 0 0 u = 0
2
0 0 0 u3 0
(1)
1
k1
14
F1(1) , u1
Element 2:
k2
k
2
0
k2
k2
0
0 u1 F1( 2 )
0 u 2 = F2( 2 )
0 u3 0
Element 3:
k3
k
3
0
k3
k3
0
0 u1 F1( 3)
0 u 2 = F2( 3)
0 u3 0
Element 4:
k4
0
k 4
0 k 4 u1 F
0 0 u 2 = 0
0 k 4 u3 F3( 4)
( 4)
1
Element 5:
0 0
0 k
5
0 k 5
0 u1 0
k 5 u 2 = F2( 5)
k 5 u 3 F3( 5)
F1( 2 ) , u1
k2
F1( 3) , u1
k3
F2( 3) , u 2
F1( 4 ) , u1
k4
F3( 4) , u3
F2( 5) , u 2
k5
F3( 5) , u3
K
el =1
5k + 2k + 3k + 3k
K = (2k + 3k )
3k
F2( 2) , u 2
(2k + 3k )
el
, we obtain:
3k 13k
2k + 3k + 2k
2k = 5k
2k
3k + 2k 3k
5k
7k
2k
3k
2k
5k
KU = R
15
q
= k , where q is the total heat flow, A is the area, is
A
the temperature drop in the direction of heat flow, and k is the conductance or surface coefficient. The
state variables in this analysis are 1, 2 and 3. Using the heat conduction law, the element
equilibrium equations (per unit area) are:
For left surface:
q1 = 3k ( 0 1 )
q 2 = 2k (1 2 )
q3 = 3k ( 2 3 )
q4 = 2k ( 3 4 )
3k ( 0 1 ) = 2k (1 2 )
2k (1 2 ) = 3k ( 2 3 )
3k ( 2 3 ) = 2k ( 3 4 )
or, in matrix form:
5k
2k
2k
5k
3k
0 1 3k 0
3k 2 = 0
5k 3 2k 4
The same equilibrium equations can be also derived using a direct stiffness procedure, with
the typical element equilibrium relations:
16
1 1 i qi
k
=
1 1 j q j
and using the analogy between the previous spring system (Fig.3.3).
2k
3k
2k
3k
u1=1
u2=2
u3=3
Establish the equations that govern the steady-state pressure and flow distributions in the
hydraulic network shown in the Figure 3.4. Assume the fluid to be incompressible and the
pressure drop in a branch to be proportional to the flow q through that branch p = Rq where R
is the branch resistance coefficient.
p A pB
p
= A
10b
10b
p pC
q 2 / AC = A
5b
pC p D
q3 =
2b
p pB pD
q 2 / DB = D
=
5b
5b
p pD
q4 = C
3b
q1 =
Q = q1 + q 2
and
17
q2 / AC = q3 + q4
q2 / DB = q3 + q4
Substituting, we have:
p A pC pC p D pC p D
=
+
5b
2b
3b
p D pC p D pC p D
=
+
5b
2b
3b
p pC
p
p
p
Q= A + D = A + A
10b 5b 10b
5b
The resulting equations in matrix form are:
0 p A 10bQ
3 2
6 31 25 p = 0
1 1
1 p D 0
or
6
0 p A 30bQ
9
6 31 25 p = 0
0 25 31 p D 0
These equilibrium equations can also be derived using the direct stiffness method with the
typical element equilibrium relations
1 1 1 pi qi
= .
R 1 1 p j q j
From these equations we can solve pA, pC and pD and calculate the flows q1, q2, q3 and q4.
Variational formulation
In the previous discussion we employed the direct approach of assembling the system-governing
equilibrium equations. An important point is that the governing equilibrium equations for state
variables can in many analyses also be obtained using variational (extremum) formulation. An
extremum problem consists of locating the set of values Ui, i=1, ,n , for which a given functional
(Ui, , Un) is a maximum, is a minimum or has a saddle point. The condition for obtaining the
equations for the state variables is:
= 0
(3.1)
and since
U1 + ... +
U n
U1
U n
(3.2)
we must have
=0
U i
for i = 1,..., n
(3.3)
In the solution of discrete-systems we can considered that is defined such that the last
relations generate the governing equilibrium equations. For example, in linear structural analysis,
when displacements are used as state variables, is the total potential:
18
= U W
(3.4)
where U is the strain energy of the system and W is the total potential of the loads. The solution for
the state variables corresponds in this case to the minimum of .
For example, consider a simple linear elastic spring (Fig. 3.5) of stiffness k and applied force
F. We will use the variational formulation to generate the governing equilibrium equation of the
system.
= U W
where U is the strain energy of the system and W is the total potential of the external force F. Let u be
the displacement of the spring under the load F. Then, we have:
U = 12 ku 2
W = Fu
= 12 ku 2 Fu
= (ku F )u =
u = 0
u
ku = F
Propagation problems
The main characteristic of a propagation or dynamic problem is that the response of the system under
consideration changes with time. For the analysis of a system, in principle, the same procedures as in
the analysis of a steady-state problem are employed, but now the state variables and element
equilibrium relations depend on time. The objective of the analysis is to calculate the state variables
for all time t.
For example, consider the system of rigid carts (Example 1). Assume that the loads are timedependent and establish the equations that govern the dynamic response of the system.
For the analysis we assume that the springs are massless andthat the carts have masses m1, m2,
and m3. Then, using the principle of dAlambert, the element interconnectivity requirements yield the
equations:
19
&& + ku = R (t )
Mu
where M is the system mass matrix:
m1
M = 0
0
0
m2
0
0
0
m3
Continuous-system models
The basic steps in the solution of a continuous-system mathematical model are quite similar to those
employed in the solution of a discrete-system model. However, instead of dealing with discrete
elements, we focus attention on typical differential elements with the objective of obtaining
differential equations that express the element equilibrium requirements, constitutive relations, and
element interconnectivity requirements. These differential equations must hold throughout the domain
of the system, and before the solution can be calculated they must be supplemented by boundary
conditions and, in dynamic analysis, also by initial conditions.
As in the solution of discrete-system models, two different approaches can be followed to
generate the system-governing differential equations: the direct method and the variational method.
We will discuss both approaches and illustrate the variational procedure in some details because this
approach can be regarded as the basis of the finite element method.
In the direct formulation we establish the equilibrium and constitutive requirements of typical
differential elements in terms of state variables. These considerations lead to a system of differential
equations. In general, these equations must be supplemented by additional differential equations that
impose appropriate constraints on the state variables in order that all compatibility requirements be
satisfied. Finally, to complete the formulation of the problem, all boundary conditions, and in dynamic
analysis the initial conditions, are stated.
Consider the second-order general partial differential equation in the domain x, y:
A( x, y )
2u
2u
2u
u u
+
2
(
,
)
+
(
,
)
= ( x, y , u , , )
B
x
y
C
x
y
2
2
x
xy
y
x y
where u is the unknown state variable. Depending on the coefficients, the differential equation is
elliptic, parabolic or hyperbolic:
< 0 elliptic
B AC = 0 parabolic
> 0 hyperbolic
It is observed that the character of the solutions is distinctly different for the three categories
of equations. These differences are also according to the physical problems that they govern. So, for
example, in their simplest forms these three types of equations can be identified with the Laplace
equation, heat conduction equation and the wave equation, respectively. We demonstrate how these
equations arise in the solution of physical problems by the following examples.
20
1. An idealized dam stands on permeable soil. Our task is to formulate the differential equation
governing the steady-state seepage of water through the soil and give the corresponding boundary
conditions.
(q | y q | y + dy )dx + (q | x q | x + dx )dy = 0
q y
y
dydx
q x
dxdy = 0
x
Using Darcys law, the flow is given in terms of the total potential :
qx = k
; q y = k
x
y
where we assume a uniform permeability k. Substituting the Darcys law into the continuity equation,
we obtain the Laplace equation:
2 2
k 2 + 2 = 0
y
x
The boundary conditions are the following:
No flow boundary conditions in the soil at x=- and x=+:
= 0;
x =
=0
x = +
=0
y =0
( x, L ) = 0
y
for
21
h
h
x+
2
2
( x, L) x p ( h / 2 ) = h1 ; ( x, L) xf( h / 2 ) = h2
2. A very long slab is at constant initial temperature i when the surface at x=0 is suddenly subjected
to a constant uniform heat flow input. The surface at x=L of the slab is kept at the temperature i.
Assuming one-dimensional heat flow conditions, formulate the governing differential equation.
State also the boundary and initial conditions.
q A x (q A x + A
dx) = Ac
dx
x x
t x
q = k
= c
2
x
t
q (t )
(0, t ) = 0
t >0
x
k
( L, t ) = i t > 0
and the initial condition is:
( x,0) = i
Although we considered in these examples specific problems that are governed by elliptic,
parabolic and hyperbolic differential equations, the problem formulations illustrate in a quite general
way some basic characteristics. In elliptic problems the values of the unknown state variables are
given on the boundary. These problems are for this reason also called boundary value problems, where
22
we should note that the solution at a general interior point depends on the data at every point of the
boundary. Generally, elliptic differential equations govern the steady-date response of systems.
Comparing the governing differential equations given in examples, it is noted that in contrast
to the elliptic equation, the parabolic and hyperbolic equations include time as an independent variable
and thus define propagation problems. These problems are also called Initial value problems because
the solution depends on the initial conditions.
23
24
CHAPTER 4
J = F ( x, y, y ' )dx =
x0
(4.1)
where x0 and x1 are given constant boundaries, and F(x,y,y) is a continuous function (Fig. 4.1). The
function y=f(x) is the unknown continuous function with its first derivative y=f(x) which satisfies
the conditions y0=f(x0) and y1=f(x1). The task is to find the function y=f(x), such that the integral has
extremum. In our case, the function y is the state variable.
25
We can see in the Fig. 4.1 that there are many candidates for this function y=f(x), but only
one of them satisfies the above conditions. Let q=g(x) be one of the possible candidates. The
difference y = f ( x) g ( x) where g ( x) = f ( x) + ( x) in any point within the interval [x=x0,
x=x1] is called variation of the function y=f(x). The integral J is called functional of the problem.
The function y=f(x) is the state variable to be found. In problems of structural mechanics, it could be
the field of displacements and the functional is usually the total potential of the system.
So, in order to find the displacements, we can invoke the condition for stationarity, or
extremum of the functional J:
= 0
2 > 0
(4.2)
Because the second variation with respect to displacements is greater then zero, then the total
potential of the system has a minimum.
In order to deal with variations, we can apply the same rules for them as for differentiations.
So, the following expressions hold, if F and Q are two different functions dependent on different state
variables:
F ( x)dx = F ( x)dx
( F + Q ) = F + Q
( FQ) = (F )Q + F (Q)
(4.3)
( F ) n = n( F ) n 1F
Need for weighted-integral forms
In the finite element method, we use an integral statement to develop algebraic relations among the
coefficients uj of the approximation:
n
u u j j
(4.4)
j =1
where u represents the solution of a particular differential equation or in our case, the so called state
variable of the problem. The use of an integral statement equivalent to the governing differential
equation is necessitated by the fact that substitution of this equation into the governing differential
equation does not always result in the required number of linearly independent algebraic equations for
the unknown coefficients uj. One way to insure that there are exactly the same number n of equations
as there are unknowns is to require weighted integrals of the error in the equation to be zero.
Suppose that we wish to determine an approximate solution of the equation:
d du
x + u = 0 for 0 < x < 1
dx dx
du
x | x =1 = 0
dx
u (0) = 1,
(4.5)
We seek an approximate solution, over the entire domain = (0,1) in the form:
N
u U N c j j ( x ) + o ( x )
(4.6)
j =1
where cj are coefficients to be determined, and j(x) and o(x) are functions preselected such that the
specified boundary conditions of the problem are satisfied by the N-parameter approximate solution
UN. For example, we could take:
26
N =2
1 = x 2 2 x, 2 = x 3 3x, o = 1
(4.7)
u U N = c1 ( x 2 2 x) + c 2 x 3 3x + 1
(4.8)
which satisfies the boundary conditions of the problem for any values of c1 ad c2. The constants are to
be determined such that the approximate solution UN satisfies the differential equation (4.5) in some
sense. If we require UN to satisfy this differential equation in the exact sense, we obtain:
d 2U N
dU N
x
+ U N = 2c1 ( x 1) 3c2 ( x 2 1)
dx 2
dx
2c1 x 6c2 x 2 + c1 ( x 2 2 x) +
(4.9)
+ c2 ( x 3 x ) + 1 = 0
3
Since this expression must be zero for any value of x, the coefficients of the various powers of
x must be zero:
1 + 2c1 + 3c2 = 0
(6c1 + 3c2 ) = 0
(4.10)
c1 9c2 = 0
{no solution
c2 = 0
The above relations are inconsistent; hence, there is no solution to the equations.
On the other hand, we can require the approximate solution U to satisfy the differential
equation in the weighted-integral sense:
1
wRdx = 0
(4.11)
dU N
d 2U N
R=
x
+UN
dx
dx 2
(4.12)
1
1
1
0 = 1Rdx = (1 + 2c1 + 3c2 ) + (6c1 3c2 ) + (c1 9c2 ) + c2
2
3
4
0
(4.13)
and:
1
0 = xRdx =
0
1
1
1
1
(1 + 2c1 + 3c2 ) + (6c1 3c2 ) + (c1 9c2 ) + c2
2
3
4
5
(4.14)
which provide two linearly independent equations for c1 and c2, giving c1=222/23 and c2=-100/23:
27
2
5
c1 + c2 = 1
3
4
3
31
1
c1 + c2 =
4
20
2
222
c1 = 23
100
c2 =
23
(4.15)
Thus, integral statements of presented type provide means for obtaining as many algebraic
equations as there are unknown coefficients in the approximation.
d
du
a
x
= q ( x) for 0 < x < L
(
)
dx
dx
(4.16)
du
a dx | x = L = Q0
u (0) = u0 ,
(4.17)
Here a and q are known functions of the coordinate x, u0 and Q0 are known values, and L is
the length of the one-dimensional domain. The function u is the state variable of the problem. As we
saw before, the purpose of developing a weighted-integral statement of a differential equation is to
have the means to obtain N linearly independent algebraic relations among the coefficients cj of the
approximation:
N
u U N c j j ( x ) + o ( x )
(4.18)
j =1
There are three steps in the development of the weak form, if it exists, of any differential
equation.
Step1: Move all expressions of the differential equation to one side, multiply the entire
equation with a function w, called the weight function, and integrate over the domain = (0, L) of the
problem:
L
d du
0 = w a q dx
dx dx
0
(4.19)
28
form will require weaker continuity conditions on j, and hence the weighted-integral statement is
called the weak form.
Step2: We integrate the first term of the expression by parts to obtain:
d du
0 = w a wq dx =
dx dx
0
L
dw du
du
=
wq dx wa
a
dx dx
dx 0
0
with v = a
(4.20)
du
in the integration-by-parts formula:
dx
L
(4.21)
The weak formulation has two desirable characteristics. First, it requires weaker continuity of
the state variable, and often it results in a symmetric set of algebraic equations in the coefficients.
Second, the natural boundary conditions of the problem are included in the weak form, and therefore
the approximate solution UN is required to satisfy only the essential boundary conditions of the
problem. These two features of a weak form play an important role in the development of finite
element models of a problem.
An important part of Step 2 is to identify the two types of boundary conditions associated with
any differential equation: natural and essential. The following rule is used to identify the natural
boundary conditions and their form: After completing Step 2, examine all boundary terms of the
integral statement. The boundary terms will involve both the weight function and the dependent
variable. Coefficients of the weight function and its derivatives in the boundary expressions are termed
the secondary variables (SV). Specification of secondary variables on the boundary constitutes the
du
. The coefficient of
dx
du
. The secondary
the weight function is a du/dx. Hence the secondary variable is of the form a
dx
natural boundary conditions (NBC). For our case, the boundary term is wa
variables always have physical meaning, and are often quantities of interest. We mentioned before that
for case of elastostatics, this secondary variable is applied nodal force.
The state variable (or dependent variable) of the problem, expressed in the same form as the
weight function appearing in the boundary term, is called the primary variable (PV), and its
specification on the boundary constitutes the essential boundary condition (EBC). For the case under
consideration, the weight function appears in the boundary expression as w. Therefore, the dependent
variable u is the primary variable, and the essential boundary condition involves specifying u at the
boundary points.
It should be noted that the number and form of the primary and secondary variables depend on
the order of the differential equation. The number of primary and secondary variables is always the
same, and with each primary variable there is associated secondary variable (displacement and force,
temperature and heat and so on). Only one of the pair, either the primary or the secondary variable,
may be specified at a point of the boundary. Thus, a given problem can have its specified boundary
conditions in one of three categories: (i) all specified boundary conditions are EBC; (ii) some of the
specified boundary conditions are EBC and the remaining are NBC; or (iii) all specified boundary
conditions are NBC. In the present case, there is one primary variable u and one secondary variable Q.
At a boundary point, only one of the pair (u, Q) can be specified.
From the previous expressions, substituting for natural boundary conditions, we can obtain:
29
dw du
du
wq dx wa =
0 = a
dx dx
dx 0
0
L
dw du
= a
wq dx ( wQ ) 0 ( wQ ) L
dx dx
(4.22)
Step3: The third and the last step of the weak formulation is to impose the actual boundary
conditions of the problem under consideration. In weak formulations, the weight function has the
meaning of a virtual change (or variation) of the primary variable. If a primary variable is specified at
a point, the virtual change there must be zero. Thus, the weight function w is required to satisfy
w(0)=0, because u(0)=u0.
du
= Q0 , we have the final expression:
dx x = L
dw du
wq dx w( L)Q0
0 = a
dx dx
(4.23)
This completes the steps involved in the development of the weak or variational form of a
differential equation.
Examples
1. Consider the differential equation:
d du
2
a cu + x = 0
dx dx
(4.24)
du
u (0) = 0, a = 1
dx x =1
(4.25)
Following the three steps outlined above for the construction of variational statements, we
obtain:
Step 1:
1
d du
0 = w a cu + x 2 dx
dx dx
0
(4.26)
Step 2:
1
du
dw du
cwu + wx 2 dx wa
0 = a
dx dx
dx 0
(4.27)
From the boundary term, it is clear that the specification of u is an essential boundary
condition, and the specification of a du/dx is a natural boundary condition. Since a du/dx =1 at x=1
and w=0 at x=0, we obtain the weak form:
1
dw du
cwu dx + wx 2 dx w(1)
0 = a
dx dx
0
0
We can compute the so called quadratic functional as follows:
30
(4.28)
0 = B( w, u ) l ( w)
1
dw du
B ( w, u ) = a
cwu dx
dx dx
0
1
(4.29)
l ( w) = wx 2 dx + w(1)
0
I (u ) =
2
1
1
1 du
B (u , u ) l (u ) = a cu 2 + 2ux 2 dx u (1)
2
2 0 dx
d2
d 2w
b( x) 2 f ( x) = 0
dx 2
dx
(4.30)
dw
= 0,
w(0) =
dx x =0
(4.31)
d d 2 w
d 2w
b 2
= M 0 , b 2
=0
dx
dx
dx x = L
x=L
This equation describes elastic bending of beams, where w is the transverse deflection, L is the
total length of the beam and b(x) is the flexural rigidity of the beam b(x)=EI. The function f(x) is the
transverse distributed load and M0 is the bending moment.
The solution w is the state variable of the problem, and all other quantities (L, b, f, M0) that
are known in advance are the data of the problem.
Since the equation contains a fourth-order derivative, we should integrate it twice by parts.
Multiplying the basic differential equation by v, and integrating the first term by parts twice with
respect to x, we obtain:
d 2 d 2w
0 = v 2 b 2 f dx
dx dx
0
dv d d 2 w
d d 2 w
0 = b 2 vf dx + v b 2 =
dx dx dx
0
dx dx 0
L
d 2v d 2 w
= b 2
vf
dx dx 2
0
L
(4.32)
L
d d 2 w dv d 2 w
dx + v b 2 b 2
dx dx dx dx 0
From this it follows that the specification of w and dw/dx constitutes the essential boundary
conditions, and the specification of:
d d 2w
b
V
dx dx 2
d 2w
b 2 M
dx
( shear force)
(4.33)
(bending moment )
31
dw
w(0) =
=0
dx x =0
(4.34)
dv
v(0) = = 0
dx x =0
These conditions are essential boundary conditions.
The natural boundary conditions are:
d d 2 w
= 0,
b 2
dx dx x = L
d 2w
b 2
= M0
dx x = L
(4.35)
B (v, w) = b
0
dv
dx M 0
dx x = L
(4.36)
d 2v d 2 w
dx
dx 2 dx 2
(4.37)
dv
l (v) = vfdx + M 0
dx x = L
0
(4.38)
b d 2w
dw
I ( w) = 2 wf dx
M0
2 dx
dx x = L
0
(4.39)
3. Construct the weak form for the one-dimensional heat conduction/convection problem:
d du
a + cu = q
dx dx
du
u ( 0) = u 0 , a
= Q0
+ (u u )
dx
x =1
(4.40)
at x = 1
d du
w dx a dx + cu q dx = 0
(4.41)
Step 2: Using
1
(4.42a)
32
and
d du
a
dx dx
du
v = a
dx
dv =
(4.42b)
we have
1
dw du
du
0 dx a dx dx wa dx 0 + 0 (cuw qw)dx = 0
(4.43)
dw du
du
0 dx a dx dx wa dx
Since a (1)
du
dx
x =1
+ c uwdx qwdx = 0
(4.44)
dw du
0 dx a dx dx + c 0 uwdx 0 qwdx w(1)Q0 (u u ) = 0
(4.45)
4. Construct the weak form for the problem of beam on elastic foundation:
d 2 d 2w
b
+ kw = f
dx 2 dx 2
d 2w
w = b 2 = 0 at x = 0, L
dx
(4.46)
where b=EI and f are functions of x, and k is a constant (foundation modulus). Here w is deflection of
the beam and v is the weight function.
Step 1:
d 2 d 2w
v
0 dx 2 b dx 2 + kw
L
f dx = 0
(4.47)
w
a
du dw
du
du
d 2u
dx =
dx + w(b ) (b ) w(a ) (a )
2
dx dx
dx
dx
dx
a
(4.48)
and substitutions
d 2u d 2 d 2 w
b
=
dx 2 dx dx 2
du d d 2 w
= b
dx dx dx 2
we obtain
33
(4.49)
L
dv d d 2 w
d d 2 w
d d 2 w
b 2 + vkw vf dx + w(L ) b 2
w(0 ) b 2
= 0 (4.50)
dx
dx
dx
dx
dx
dx
dx
x=L
x =0
Step 3: Since w = b
d 2w
= 0 at x = 0, L , finally we have
dx 2
L
dv d d 2 w
b 2 + vkw vf dx = 0
0
dx dx dx
(4.51)
5. Construct the weak form for the problem of longitudinal deformation of a bar with an end spring:
d du
a = q
dx dx
du
=P
u (0) = 0, a
+ ku
x=L
dx
where a and q are functions of x, and k and P are constants.
Step 1:
L
d du
w dx a dx q dx = 0
(4.53)
Step 2: Using
1
(4.42a)
d du
a
dx dx
du
v = a
dx
(4.42b)
and
dv =
we obtain
L
du dw
du
du
0 a dx dx dx 0 wqdx wa dx x=L + wa dx x=0 = 0
(4.54)
du
= P ku (L) we obtain
dx x = L
a
0
du dw
dx wqdx w(L )[P ku ( L)] = 0
dx dx
0
34
(4.55)
d du
u + f = 0
dx dx
du
= 0, u (1) = 2
dx x = 0
Step 1:
1
d du
w dx u dx + f dx = 0
(4.57)
Step 2: Using
1
(4.42a)
and
d du
u
dx dx
du
v = u
dx
dv =
(4.58)
we obtain
1
dw du
du
0 dx u dx dx + 0 wfdx wu dx 0 = 0
(4.59)
dw du
du
du
0 dx u dx dx + 0 wfdx w(1)u (1) dx x=1 + w(0)u (0) dx x=0 = 0 (4.60)
1
dw du
0 dx u dx dx + 0 wfdx = 0
(4.61)
B ( w, u ) = l ( w)
35
(4.62)
For cases when the functional B is bilinear and symmetric and l is linear, the problem is
equivalent to minimization of the quadratic functional:
I (u ) =
1
B (u, u ) l (u )
2
(4.63)
In the Rayleigh-Ritz method, we seek an approximate solution in the form of a finite series:
N
u N = c j j + o
(4.64)
j =1
so that N independent algebraic equations in cj are obtained. The i-th algebraic equation is obtained by
substituting i for w:
N
B i , c j j + = l (i ) (i = 1,2,..., N )
j =1
(4.65)
If B is bilinear, the summation and constants cj can be taken outside of the operator.
Therefore:
N
B( ,
)c j = l (i ) B(i , 0 )
(4.66)
= Fi , Bij = B(i , j ), Fi = l (i ) B (i , 0 )
(4.67)
j =1
or
N
B c
j =1
ij
which represents the i-th algebraic equation in a system of N linear algebraic equations in N unknown
c j.
On the other hand, using quadratic functional I(u) and the necessary condition for the
minimization of I leads to the following equations:
I
= 0,
c1
I
= 0, ...,
c2
I
=0
c N
(4.68)
0 = 0 Fi = l (i ) B (i , 0 ) = l (i )
(4.69)
Examples
1. Consider the following differential equation:
d 2u
u + x2 = 0
2
dx
36
(4.70)
u (0) = 0, u (1) = 0
(4.71)
dw du
B ( w, u ) =
wu dx, l ( w) = wx 2 dx
dx dx
0
0
(4.72)
Since both boundary conditions are of essential type, we must select i in the N-parameter
Ritz approximation to satisfy conditions:
i (0) = i (1) = 0
(4.73)
(4.74)
u N = c11 + c2 2 + ... + c N N = c j j
(4.75)
j =1
B ( w, u ) = l ( w)
(4.76)
we obtain
d
0 dxi
d j
N
cj
j =1 dx
i c j j dx = i x 2 dx
j =1
1
di d j
dx
=
i x 2 dx
j
i j
dx
dx
j =1
0
0
(4.77)
or
N
c B( ,
j =1
) = l (i )
(4.78)
i j dx Bij
B (i , j ) = i
dx dx
0
1
(4.79)
l (i ) = x i dx Fi
2
For the choice of our approximation functions, the coefficients Bij and vector coefficients Fi
can be computed using:
i = x i (1 x) = x i x i +1
di
i 1
i
dx
= ix
(i + 1) x
We have
37
(4.80)
{[
][
Bij = ix i 1 (i + 1) x i jx j 1 ( j + 1) x j ( x i x i +1 )( x j x j +1 )
0
2ij
2
2
(i + j ) (i + j ) 1 (i + j + 1)(i + j + 2)(i + j + 3)
Fi = x 2 ( x i x i +1 )dx =
0
(4.81)
1
(3 + i )(4 + i )
[B]{c} = {F }
(4.82)
1 126 63 c1
1 3
=
420 63 52 c2
60 2
(4.83)
c1 =
10
21
= 0.0813, c2 =
= 0.1707
123
123
(4.84)
u2 = c11 + c2 2 =
1
(10 x + 11x 2 21x 3 )
123
(4.85)
u ( x) =
sin x + 2 sin(1 x)
+ x2 2
sin 1
(4.86)
d
du
(1 + x) = 0
dx
dx
u (0) = 0, u (1) = 1
(4.87)
Use algebraic polynomials form the approximation functions. Specialize your result for N = 2
and compute the Ritz coefficients.
Step 1:
1
du
w dx (1 + x) dx dx = 0
(4.88)
Step 2: Using
1
and
38
(4.42a)
d
du
(1 + x )
dx
dx
du
v = (1 + x )
dx
dv =
(4.89)
we obtain
1
du dw
du
0 (1 + x ) dx dx dx w(1 + x ) dx 0 = 0
(4.90)
Step 3: Since w=u (the weight function is actually the variation of the primary variable), we
have:
u (0) = 0 w(0) = 0
u (1) = 1 w(1) = 0
(4.91)
du dw
(1 + x ) dx dx dx = 0
(4.92)
Now, for N=2, using the Rayleigh-Ritz variational method of approximation, we approximate
the solution of Eq. (4.87) as follows:
u N = c11 + c22 + 0
(4.93)
We choose the following approximation functions that satisfy the boundary conditions in Eq.
(4.87):
0 = x, 1 = x(1 x), 2 = x 2 (1 x)
(4.94)
u N = c1 x(1 x ) + c2 x 2 (1 x ) + x = c1 x c1 x 2 + c2 x 2 c2 x 3 + x
(4.95)
It is easy to verify that this approximate function (4.95) satisfy the boundary conditions in
(4.87), i.e.
x = 0 uN = 0
x = 1 uN = 1
(4.96)
In order to insert our approximation into the weak form (4.92) we need the first derivation of
(4.95):
du N
= c1 2c1 x + 2c2 x 3c2 x 2 + 1
dx
(4.97)
The basic assumption in Rayleigh-Ritz method is that the weight functions are equal to the
selected approximation functions. So, we have:
wi = i
dw1
= 1 2x
dx
dw2
w2 = 2 = x 2 (1 x),
= 2 x 3x 2
dx
w1 = 1 = x(1 x),
39
(4.98)
)(
(4.99)
Solving the above integrals we obtain a system of two equations with two unknowns c1 and c2:
(4.100)
40
(4.101)
CHAPTER 5
41
2. The elements are assumed to be interconnected at a discrete number of nodal points situated on
their boundaries. The displacements of these nodal points will be the basic unknown parameters of
the problem, just as in the simple, discrete mathematical models.
3. A set of functions is chosen to define uniquely the state of displacement within each finite
element in terms of its nodal displacements.
4. The displacement functions now define uniquely the state of strain within an element in terms of
nodal displacements. These strains, together with any initial strains and the constitutive properties
of the material, will define the state of stress throughout the element and, hence, also on its
boundaries.
5. A system of forces concentrated at the nodes and equilibrating the boundary stresses and any
distributed loads is determined.
Once this stage has been reached the solution procedure can follow the standard discrete
system pattern described earlier.
u u = N i a ie = N i
Nj
42
a i
... a j = Na e
:
(5.1)
in which the components of N are prescribed functions of position and ae represents a listing of nodal
displacements for a particular element.
In the case of plane stress, for instance,
u ( x, y )
u=
v ( x, y )
(5.2)
represents horizontal and vertical movements of a typical point within the element and
u
ai = i
vi
(5.3)
N i ( xi , yi ) = I
N i ( x j , y j ) = N i ( xm , y m ) = 0
(5.4)
which is simply satisfied by suitable linear functions of x and y. If both the components of
displacement are interpolated in an identical manner then we can write
Ni = NiI
(5.5)
and obtain Ni, by noting Ni=1 at xi and yi but zero at other vertices. The most obvious linear
interpolation in the case of a triangle will yield the shape on Ni of the form shown in the Fig. 5.2. The
functions N will be called shape functions and will be seen later to play a paramount role in finite
element formulation.
= Su
(5.6)
where S is a suitable linear operator. Using shape functions, the above equation can be approximated
as
= Ba
(5.7)
B = SN
(5.8)
with
43
For the plane stress case the relevant strains of interest are those occurring in the plane and are
defined in terms of the displacements by well-known relations from theory of elasticity, which
actually define the operator S:
x x x
v
= y =
= 0
xy u v
y + x y
u
= Su
y v
(5.9)
With the shape functions Ni, Nj, Nm already determined, the matrix B will easily be obtained.
In general, the material within the element boundaries may be subjected to initial strains as
may be due to temperature changes, shrinkage, crystal growth, and so on. If such strains are denoted
by 0 then the stresses will be caused by the difference between the actual and initial strains. In
addition it is convenient to assume that at the outset of analysis the body is stressed by some known
system of initial residual stresses 0 which, for instance, could be measured, but the prediction of
which without the full knowledge of the materials history is impossible. These stresses can simply be
added on to the general definition. Thus, assuming general linear elastic behavior, the relationship
between stresses and strains will be linear and of the form:
= D( 0 ) + 0
(5.10)
x
= y
xy
(5.11)
The D matrix may be simply obtained from the usual isotropic stress-strain relationship:
x y
E
E
1
y ( y )0 = x + y
E
E
2(1 + )
xy ( xy )0 =
xy
E
x ( x )0 =
1
0
E
1
0
D=
1 2
1
0 0
(5.12)
Let
q ie
q e = q ej
:
(5.13)
define the nodal forces which are equivalent statically to the boundary stresses and distributed loads
on the element.
In the particular case of plane stress the nodal forces are, for instance
44
U
q ie = i
Vi
(5.14)
with components Ui and Vi corresponding to the directions of u and v displacements, and the
distributed load is
bx
b=
by
(5.15)
u = Na e = Ba e
(5.16)
The work done by the nodal forces is equal to a eT q e . Similarly, the internal work per unit
a eT q e = a eT BT d (vol ) N T bd (vol )
V e
Ve
(5.17)
As this relation is valid for any value of the virtual displacement, the equality of the
multipliers must exist. Thus
q e = BT d (vol ) N T bd (vol )
Ve
(5.18)
Ve
q e = K ea e + f e
(5.19)
where
T
K e = B DBd (vol )
V
(5.20)
and
T
Ve
(5.21)
Ve
In the last equation the three terms represent forces due to body forces, initial strain, and initial
stress respectively.
45
u = Na
(5.22)
N i = N ie
(5.23)
when the point concerned is within a particular element e and i is a point associated with that element.
If point i does not occur within the element
Ni = 0
(5.24)
Matrix B can be similarly defined considering simply that the shape functions, etc., are
defined over the whole region V.
For any virtual displacement a we can now write the sum of internal and external work for
the whole region as
T
aT r = u bdV + u tdA dV
V
(5.25)
where
r1
r
r = 2
:
r3
(5.26)
are external system nodal forces and t is distributed external loading per unit area. In equation (5.25)
a, u and can be completely arbitrary. Using constitutive relations (5.10) we can obtain a system
of algebraic equations for the whole system
Ka + f = r
(5.27)
where
T
K = B DBdV
(5.28)
and
T
f = N bdV N tdA B D 0 dV + B 0 dV
V
(5.29)
The integrals are taken over the whole volume V and over the whole surface area A on which
the tractions are given. It is immediately obvious equations (5.27), (5.28) and (5.29) that
K ij = K ije
and
f i = f ie
(5.30)
46
aT r + uT bdV + uT tdA = W
(5.31)
for the first three terms of the above equation, where W is the potential energy of the external loads.
The last term of the equation (5.25) can, for elastic materials, be written as
T
U = dV
(5.32)
where U is the strain energy of the system. For the linear elastic material with constitutive law (5.10)
this strain energy will be
U=
T
1 T
DdV D 0 dV + T 0 dV
2V
V
V
(5.33)
(U + W ) = ( ) = 0
(5.34)
in which the quantity is called the total potential energy. This equation means that for equilibrium to
be ensured the total potential energy must be stationary for variations of admissible displacements.
The finite element equations derived in the previous discussion are simply the statements of this
variation with respect to displacements constrained to a finite number of parameters a and could be
written as
a
1
=
=0
a a 2
:
(5.35)
It can be shown that in stable elastic situations the total potential energy is not only stationary
but is a minimum:
2 ( ) > 0
(5.36)
Thus, the finite element process seeks such a minimum within the constraint of an assumed
displacement pattern.
The Raylegh-Ritz process of approximation uses precisely this approach, as we have seen
previously. Thus the finite element process as described so far is identically to the Raylegh-Ritz
procedure. The difference is only in the manner in which the displacements are prescribed.
47
48
CHAPTER 6
x
x
= y = y
xy
xy
z
z = xz = zy = 0
z 0, yz = zx = 0
(6.1)
x
x
y
= = y
xy
xy
z
z 0, xz = zy = 0
z = yz = zx = 0
(6.2)
49
u
ai = i
vi
(6.3)
ai
a = a j
a
m
e
(6.4)
u = 1 + 2 x + 3 y
(6.5)
v = 4 + 5 x + 6 y
The six constants i can be evaluated easily by solving the two sets of three simultaneous
equations, which will arise if the nodal coordinates are inserted and the displacements equated to the
appropriate nodal displacements. Writing, for example,
ui = 1 + 2 xi + 3 yi
u j = 1 + 2 x j + 3 y j
(6.6)
u m = 1 + 2 xm + 3 y m
we can easily solve 1, 2, and 3 in terms of the nodal displacements ui, uj, um.
Finally, we can obtain:
u=
1
(ai + bi x + ci y )ui + (a j + b j x + c j y )u j + (am + bm x + cm y )um
2
(6.7)
in which:
ai = x j ym xm y j
bi = y j ym = y jm
ci = xm x j = xmj
50
(6.8)
and where
xi
yi
2 = det 1 x j
1 xm
yj
ym
(6.9)
v=
1
(ai + bi x + ci y )vi + (a j + b j x + c j y )v j + (am + bm x + cm y )vm
2
(6.10)
u
u = = Na e = IN i IN j IN m a e
v
(6.11)
with I a two by two identity matrix, and shape functions Ni (see Fig.5.2):
Ni =
ai + bi x + ci y
, etc.
2
(6.12)
x x x
v
= y =
= 0
y
xy u v
+
y x y
u
= Su
y v
(6.13)
ai
= Ba = B i B j B m a j
a
m
(6.14)
N i
x
B i = SN i = 0
N
i
y
0
bi
N i 1
=
0
y 2
ci
N i
0
ci
bi
(6.15)
It will be noted that in this case the B matrix is independent of the position within the element,
and hence the strains are constant throughout it.
51
Initial strains, i.e., strains that are independent of stress, may be due to many causes.
Shrinkage, crystal growth, or most frequently, temperature changes will, in general, result in an initial
strain vector:
x0
0 = y0
xy 0
(6.16)
Although this initial strain may, in general, depend on the position within the element, it will
usually be defined by average, constant values. This is consistent with the constant strain conditions
imposed by the prescribed displacement function.
For the case of plane stress in an isotropic material in an element subject to a temperature rise
with a coefficient of thermal expansion , we will have, for instance,
e
0 = e
0
(6.17)
0 = (1 + ) e
0
(6.18)
' 1 e
x0
'0 = y ' 0 = 2 e
' ' 0
x y 0
(6.19)
where 1 and 2 are the expansion coefficients referred to the x and y axes respectively. To obtain
the strain components in the x, y system it is necessary to use an appropriate strain transformation
matrix T giving:
cos 2
T = sin 2
sin cos
sin 2
cos
sin cos
2
2 sin cos
2 sin cos
cos 2 sin 2
(6.20)
with the angle , as defined in the Fig. 6.2, it is easily verified that:
'0 = TT 0
52
(6.21)
x
x
= y = D y 0
xy
xy
(6.22)
x y + x0
E
E
1
y = x + y + y0
E
E
2(1 + )
xy =
xy + xy 0
E
x =
(6.23)
1
0
E
1
D=
0
1 2
1
0 0
(6.24)
53
x y z + e
E
E
E
1
y = x + y z + e
E
E
E
2(1 + )
xy =
xy
E
(6.25)
1
z = 0 = x y + z + e
(6.26)
x =
but in addition
On eliminating z and solving for the three remaining stresses we obtain the previously
quoted expression for the initial strain, and by comparison with the basic constitutive equation, the
matrix D is:
0
1
(1 )
E (1 )
1
0
D=
(
)
1
(1 + )(1 2 )
(
1
2
)
0
0
2(1 )
(6.27)
For a completely anisotropic material, 21 independent elastic constants are necessary to define
completely the three-dimensional stress-strain relationship.
If two-dimensional analysis is to be applicable a symmetry of properties must exist, implying
at most six independent constants in the D matrix, as follows:
d12
d11
D=
d 22
symm
d13
d 23
d 33
(6.28)
x =
x 2 y 1 z
E1
E2
E1
y =
z =
2
E2
1
E1
x +
x
1
y 2 z
E2
E2
2
E2
xz =
2(1 + )
xz
E1
xy =
1
xy
G2
yz =
1
yz
G2
54
y +
1
z
E1
(6.29)
in which the constants E1, 1 (G1 is dependent) are associated with the behavior in the plane of the
strata and E2, G2, 2 with a direction normal to these.
n
E2
D=
n 2
1 n 22
0
n 2
1
0
m 1 n 22
0
(6.30)
n 1 n 22 n 2 (1 + 1 )
0
E2
2
n 2 (1 + 1 )
D=
1 1
0
(1 + 1 )(1 1 2n 22 )
0
0
m(1 + 1 ) 1 1 2n 22
(6.31)
For case of anisotropy, then to obtain the D matrices in the unprimed coordinates a
transformation is necessary. Taking D as relating the stresses and strains in the inclined coordinate
system x, y, it is easily to show that:
D = T ' D ' TT
(6.32)
K ije = B DB j t dx dy
i
(6.33)
where t is the thickness of the element and the integration is taken over the area of the triangle. If the
thickness of the element is assumed to be constant, an assumption convergent to the truth as the size of
elements decreases, then, as neither of the matrices contains x or y we have, simply:
K ije = BTi DB j t
(6.34)
where is the area of the triangle, already defined. This form is now sufficiently explicit for
computation with the actual matrix operations being left to the computer.
Nodal forces due to initial strains are given directly by the expression (5.21), which, on
performing the integration, becomes:
55
etc.
(6.35)
In the general case of plane stress or strain each element of unit area in the xy plane is subject
to forces
bx
b=
by
(6.36)
bx
bx
f ie = N i dx dy = N i dx dy
by
by
(6.37)
if the body forces bx and by are constant. As Ni is not constant the integration has to be carried out
explicitly. In this special case the calculation will be simplified if the origin of coordinates is taken at
the centroid of the element. Now
x dx dy = y dx dy = 0
(6.38)
bx a
bx a
bx
f ie = i dx dy = i =
by 2
by 2
by 3
(6.39)
bx
b
e
y
fi
bx
f e = f je =
by 3
f e
m
bx
by
(6.40)
which means simply that the total forces acting in the x and y directions due to the body forces are
distributed to the nodes in three equal parts. This fact corresponds with physical intuition, and was
often assumed implicitly.
The formulae derived enable the full stiffness matrix of the structure to be assembled, and a
solution for displacements to be obtained.
The stress matrix (vector) given in general terms (6.1), (6.2) is obtained by the appropriate
substitutions of (5.10) for each element:
= DBa e D 0 + 0
(6.41)
The stresses are, by the basic assumption, constant within the element. It is usual to assign
these to the centroid of the element. An alternative consists of obtaining stress values at the nodes by
averaging the values in the adjacent elements. It is, also, usual to calculate the principal stresses and
their directions for every element.
56
CHAPTER 7
z
z
= r = r
rz
rz
(7.1)
u
ai = i
vi
and the element displacements by the vector
57
(7.2)
ai
ae = a j
a
m
(7.3)
Obviously, as in the case of plane stress and plane strain, a linear polynomial can be used to
define uniquely the displacements within the element. As the algebra involved is identical to that of
the previous chapter it will not be repeated here. The displacement field is now given again by the
following equation:
u
u = = Na e = IN i IN j IN m a e
v
(7.4)
with
Ni =
ai + bi r + ci z
, etc.
2
(7.5)
ai = rj z m rm z j
bi = z j z m = z jm
(7.6)
ci = rm rj = rmj
etc., in cyclic order. Once again is the area of the element triangle.
58
v
z
z u
r r
= =
= Su
u
rz r
u v
z + r
(7.7)
Fig. 7.2 Strains and stresses involved in the analysis of axisymmetric solids
Using the displacement functions (7.4) we have
ai
= Ba = B i B j B m a j
a
m
e
(7.8)
in which
0
N
i
B i = SN i = r
1 N
r i
N
i
z
N i
z
0
0 1
bi
=
ci z
ai
0 2 r + bi + r
ci
N i
ci
0
, etc.
0
bi
(7.9)
With the B matrix now involving the coordinates r and z, the strains are no longer constant
within an element as in the plane stress or strain case. This strain variation is due to the term. If the
imposed nodal displacements are such that u is proportional to r then indeed the strains will all be
constant.
In general, four independent components of initial strain vector can be envisaged:
59
z0
0 = r 0
0
rz 0
(7.10)
Although this can, in general, be variable within the element, it will be convenient to take the
initial strain as constant there.
The most frequently encountered case of initial strain will be that due to a thermal expansion.
For an isotropic material we shell have then
e
e
0 = e
0
(7.11)
where e is the average temperature rise in an element and is the coefficient of thermal expansion.
A general case of anisotropy need not be considered since axial symmetry would be
impossible to achieve under such circumstances. A case of some interest in practice is that of a
stratified material, similar to the one discussed in previous chapter, in which the plane of isotropy is
normal to the axis of symmetry (Fig. 7.3). Here, two different expansion coefficients are possible: one
in the axial direction z and another in the plane normal to it, r . Now the initial thermal strain
becomes
z e
e
r
0 =
e
r
0
(7.12)
60
z
= r = D( 0 ) + 0
rz
(7.13)
z =
z 2 r 2
r =
=
zr =
E2
2 z
E2
E2
+
E2
r 1
E1
2 z 1 r
E2
E1
E1
+
(7.14)
E1
zr
G2
So, we obtain:
1 12 n 2 (1 + 1 ) n 2 (1 + 1 )
2
2
n 1 n 2
n 1 + n 2
0
E2
(7.15)
D=
(1 + 1 )(1 1 2n 22 )
n 1 n 22
0
m(1 + 1 )(1 1 2n 22 )
symm.
) (
(
)
)
with
E1
=n
E2
G2
=m
E2
(7.16)
For an isotropic material we can obtain the D matrix by taking E1=E2=E or n=1 and
1= 2= and using the well-known relationship between isotropic elastic constants
1
G2 G
= =m=
2(1 + )
E2 E
(7.17)
1
1
E (1 )
1
D=
(1 + )(1 2 )
symm.
61
1
1
0
1 2
2(1 )
0
(7.18)
The stiffness matrix of the element ijm can now be computed according to the general
relationship (5.20), however, remembering that the volume integral has to be taken over the whole ring
of material. Thus, we have:
T
K ije = 2 B DB j r dr dz
i
(7.19)
r=
z=
ri + rj + rm
3
zi + z j + z m
(7.20)
K ije = 2 B i DB j r
(7.21)
f e = 2 B D 0 r dr dz
or noting that 0 is constant:
f ie = 2 BTi r dr dz D 0
(7.22)
(7.23)
The integration can be performed in a similar manner to that used in the determination of the
stiffness. It will be readily seen that, again, an approximate expression using a centroidal value is
62
f ie = 2 B i D 0 r
(7.24)
b
b = r
bz
(7.25)
per unit volume of material in directions of r and z respectively. By the general equation (5.21), we
have
b
f ie = 2 IN i r rdr dz
bz
(7.26)
Using a coordinate shift similar to that of the previous chapter it is easy to show that the first
approximation, if the body forces are constant, results in
b r
f ie = 2 r
bz 3
(7.27)
Although this is not exact the error term will be found to decrease with reduction of element
size and, as it is also self-balancing, it will not introduce inaccuracies.
The stresses now vary throughout the element, as will be appreciated from the B matrix. It is
convenient now to evaluate the average stress at the centroid of the element. The stress vector will be:
z
e
= r = DBa e D 0 + 0
rz
(7.28)
It will be found that a certain amount of oscillation of stress values between elements occurs
and better approximation can be achieved by averaging nodal stresses.
if r = 0 ( plane strain)
Thus plane strain conditions are obtained.
If we replace the coordinates r and z by x and y and further change in the stiffness expressions
the volume of integration, the axisymmetric formulation becomes available from plane strain directly.
63
Fig. 7.4 A body of revolution subjected to axial and radial distributed loadings
Plane stress conditions can similarly be incorporated. Thus at the cost of an additional storage
of the fourth stress and strain component, all the cases discussed can be incorporated in a single
format, as follows:
T = { x y xy z }, z = 0
T = { x y xy z }, z = 0
T = { r
z rz }
and
E (1 ) 1
D=
(1 + )(1 2 ) 0
1
1
1 2
2(1 )
E
D=
1 2 0
0
1
0
2
0
0
64
0
0
0
CHAPTER 8
x
y
= z
xy
yz
zx
and
x
y
= z
xy
yz
zx
(8.1)
The Fig.8.1 illustrates a tetrahedral element i,j,m,p in space defined by the x,y and z
coordinates.
The state of displacement of a point is defined by three displacement components u,v and w in
directions of the three coordinates x, y and z. Thus
u
u = v
w
65
(8.2)
Just as in a plane triangle where a linear variation of a quantity was defined by its three nodal
values, here a linear variation will be defined by the four nodal values. Hence, we can write, for
instance
u = 1 + 2 x + 3 y + 4 z
(8.3)
Equating the values of displacement at the nodes we have four equations of the type
ui = 1 + 2 xi + 3 yi + 4 zi , etc.
(8.4)
1
(ai + bi x + ci y + d i z )ui + (a j + b j x + c j y + d j z )u j +
6V
+ (am + bm x + cm y + d m z )um + (a p + b p x + c p y + d p z )u p
u=
(8.5)
with
1
6V = det
xi
yi
zi
1 xj
yj
zj
1 xm
1 xp
ym
yp
zm
zp
(8.6)
in which, the value V represents the volume of the tetrahedron. By expanding the other relevant
determinants into their cofactors we have
xj
yj
zj
ai = det xm
xp
ym
yp
zm
zp
xj
yj
zj
bi = det 1 ym
1 yp
zm
zp
1 zj
xj
ci = det xm 1 z m
xp 1 z p
d i = det xm
xp
yj
(8.7)
ym 1
yp 1
with the other constants defined by cyclic interchange of the subscripts in the order p,i,j,m. The
ordering of nodal numbers p,i,j,m must follow a right-hand rule.; In this the first three nodes are
numbered in an anticlockwise manner when viewed from the last one.
The element displacement is defined by the 12 displacement components of the nodes as
ai
a
j
e
a =
a m
a p
(8.8)
ui
a i = vi , etc.
w
i
(8.9)
with
66
u
u = v = Na e = IN i IN j IN m IN p a e
w
(8.10)
Ni =
ai + bi x + ci y + d i z
, etc.
6V
(8.11)
u
x
v
x
y
y w
= z = u z v = Su
xy +
yz y x
v w
zx +
z y
w + u
x z
(8.12)
ai
a
j
e
= Ba = B i B j B m B p
a m
a p
(8.13)
in which
N i
x
0
B i = SN i = N
i
y
N i
z
0
N i
y
0
N i
x
N i
z
0
0
bi
0
N i
0
1
z =
0 6V ci
N i
d i
y
N i
x
0
ci
0
bi
di
0
0
0
di
, etc.
0
ci
bi
67
(8.14)
Initial strains, such as those due to thermal expansion, can be written in the usual way as a sixcomponent vector which, for example, in an isotropic thermal expansion is simply
x 0 e
e
y 0
z 0 e
0 =
=
xy 0 0
yz 0 0
zx 0 0
(8.15)
with being the expansion coefficient and e the average element temperature rise.
With complete anisotropy the D matrix relating the six stress components to the strain
components can contain 21 independent constants. In general, thus,
x
y
= z = D( 0 ) + 0
xy
yz
zx
(8.16)
For isotropic material, in terms of usual elastic constants E (modulus of elasticity) and
(Poissons ratio), the elasticity matrix can be written as
0
(1 ) (1 )
1
1
0
(1 )
1
0
1 2
E (1 )
D=
2(1 )
(1 + )(1 2 )
symm.
0
0
0
0
1 2
2(1 )
0
0
0
(8.17)
1 2
2(1 )
0
The stiffness matrix defined by the general relationship (5.20) can now be explicitly integrated
since the strain and stress components are constant within the element. The general ij submatrix of the
stiffness matrix will be a three by three matrix defined as
K ije = BTi DB jV e
(8.18)
f ie = BTi D 0V e
(8.19)
= DBa e D 0 + 0
68
(8.20)
CHAPTER 9
Shape Functions
In previous discussions we saw in some detail how linear elasticity problems could be formulated and
solved using very simple finite element forms. Although the detailed algebra was concerned with
shape functions, which arose from triangular and tetrahedral shapes only it should by now be obvious
that other element forms could equally well be used. Indeed, once the element and the corresponding
shape functions are determined, subsequent operations follow a standard, well-defined path. It will be
seen later that in fact it is possible to program a computer to deal with wide classes of problems by
specifying the shape functions only. The choice of these is, however, a matter to which intelligence
has to be applied and in which the human factor remains paramount. In this chapter some rules for
generation of several families of two- and three-dimensional elements will be presented.
In the problems of elasticity presented in previous lectures, displacement variable was a vector
with two or three components and the shape functions were written in a matrix form. They were,
however, derived for each component separately and in fact the matrix expressions in these were
derived by multiplying a scalar function by an identity matrix. We shell therefore concentrate in this
chapter on the scalar shape function forms, calling them simply Ni.
The shape functions used in the displacement formulation of elasticity problems were such
that to satisfy the following convergence criteria:
(a) The continuity of the unknown only has to occur between elements (i.e., slope continuity
is not required), or, in mathematical language, C0 continuity is required;
(b) The function has to allow any arbitrary linear form to be taken so that the constant strain
(constant first derivative) criterion could be observed.
The shape functions to be described in this chapter will require the satisfaction of these two
criteria. They will thus be applicable also to all other problems which require these conditions to be
obeyed.
The element families discussed will progressively have an increasing number of degree of
freedom. The question may well be asked as to whether any economic or other advantage is gained by
increasing thus the complexity of an element. The answer here is not an easy one although it can be
stated as a general rule that as the order of an element increases so the total number of unknowns in a
problem can be reduced for a given accuracy of representation. Economic advantage requires,
however, a reduction of total computation and data preparation effort, and this does not follow
automatically for a reduced number of total variables because, though equation-solving times may be
reduced, the time required for element formulation increases.
u u = N i ai = Na
i =1
69
(9.1)
We have explicitly chosen to identify such variables with the values of the unknown function
at element nodes, thus making:
ui = ai
(9.2)
The shape functions so defined will be referred to as standard ones (Fig. 9.1) and are the basis
of most finite element programs. If polynomial expansions are used it is clear that a constant value of
^
u = ui
(9.3)
N
i =1
=1
(9.4)
K11c a1c = f1
(9.5)
For a fine mesh two additional nodes are added and with the standard shape function the
equations requiring solution are:
K11F
F
K 21
0
K12F
K
K
F
22
F
32
0 a1 f1
K 23F a2 = f 2
K 33F a3 f 3
70
(9.6)
With hierarchic form using shape functions shown in the Fig. 9.2, a similar form of equation
arises and an identical approximation is achieved (being simply given by a series of straight
segments). The final solution is identical but the meaning of the parameters a1=a1* is now different, as
shown in the figure.
Quite generally:
K11F = K11c
(9.7)
as an identical shape function is used for the first variable. Further, in this particular case the offdiagonal coefficients are zero and the final equations become for the fine mesh:
K11c
0
0
0
K 22F
0
0 a1* f1
0 a2* = f 2
K 33F a3* f 3
(9.8)
The diagonality feature is only true in the one-dimensional problem, but in general it will be found that
the matrices obtained using hierarchic shape functions are nearly diagonal and hence imply better
conditioning than those with standard shape functions.
71
Similarly, if a cubic variation along the vertical sides is assumed, continuity will be preserved
there as four values determine a unique cubic expansion. Conditions for satisfying the first criterion
are now obtained.
u = 1 + 2 x + 3 y + 4 xy + 5 y 2 + 6 xy 2 + 7 y 3 + 8 xy 3
(9.9)
Substituting coordinates of the various nodes a set of simultaneous equations will be obtained.
This can be written in exactly the same manner as was done for a triangle as:
u1 1 x1
: = . .
u . .
8
y1
x1 y1
y12
x1 y12
y13
.
.
.
.
.
.
.
.
.
.
x1 y13 1
. :
. 8
(9.10)
or simply as
u e = C
(9.11)
= C 1u e
(9.12)
u = P = PC 1u e
(9.13)
Formally
in which
P= 1 x
y2
xy
xy 2
y3
xy 3
(9.14)
u = Nu e = [N1
N 2 ... N 8 ]u e
can be found as
72
(9.15)
N = PC 1
(9.16)
This process, frequently used in practice as it does not involve much ingenuity, has, however,
some considerable disadvantages. Occasionally an inverse of C may not exist and always considerable
algebraic difficulty is experienced in obtaining an inverse in general terms suitable for all element
geometries. It is therefore worthwhile to consider whether shape functions Ni(x, y) can be written
down directly. Before doing this some general properties of these functions have to be mentioned.
e
Firstly, these expressions are valid for all components of u and
Ni = 1
(9.17)
at node i and is equal to zero at all other nodes. Further, the basic type of variation along boundaries
defined for continuity purposes (e.g., linear in x and cubic in y in the above example) must be retained.
The typical form of the shape functions for the element considered is illustrated isometrically for two
typical nodes in the Fig. 9.4. It is clear that these could have been written down directly as a product of
a suitable linear function in x with a cubic in y. The easy solution of this example is not always as
obvious but given sufficient ingenuity, a direct derivation of shape function is always recommended.
Fig. 9.4 The first two shape functions for the rectangular element in Fig. 9.3
It will be convenient to use natural (normalized) coordinates in further investigation. Such
normalized coordinates are shown in the Fig. 9.5 and are so chosen that on the faces of rectangle their
values are +-1:
x xc
a
and
73
(9.18a)
dx
a
y yc
=
b
dy
d =
b
d =
(9.18b)
Once the shape functions are known in the normalized coordinates, translation into actual
coordinates or transformation of the various expressions occurring, for, instance, in stiffness derivation
is trivial.
1
( + 1)( + 1) gives unity at top right corners where ==1 and zero at all the other corners. Further,
4
a linear variation of the shape function of all sides exists and hence continuity is satisfied. Introducing
new variables 0 = i 0 = i the form
Ni =
1
( 0 + 1)(0 + 1)
4
(9.19)
74
Quadratic element
Corner nodes :
1
N i = ( 0 + 1)(0 + 1)( 0 + 0 1)
4
Mid side nodes :
1
i = 0 N i = 1 2 (1 + 0 )
2
1
i = 0 N i = (1 + 0 ) 1 2
2
(9.20)
Cubic element
Corner nodes :
1
N i = ( 0 + 1)(0 + 1) 10 + 9 2 + 2
32
Mid side nodes :
1
i = 1 and i =
3
9
N i = ( 0 + 1) 1 2 (1 + 90 )
32
75
)]
(9.21)
Triangular elements
The advantage of an arbitrary triangular shape in approximating to any boundary shape has
been amply demonstrated in earlier lectures. The question of generating more elaborate elements
needs to be further developed.
Consider a series of triangles generated on a pattern indicated in the Fig. 9.7. The number of
nodes in each member of the family is now such that a complete polynomial expansion, of the order
needed for interelement compatibility, is ensured. For this triangle family the inverse of the C matrices
will always exist.
x = L1 x1 + L2 x2 + L3 x3
y = L1 y1 + L2 y2 + L3 y3
1 = L1 + L2 + L3
76
(9.22)
To every set, L1, L2, and L3 (which are not independent, but are related by the third equation),
corresponds a unique set of cartesian coordinates. At point 1, L1=1 and L2 = L3 =0. A linear relation
between the new and cartesian coordinates implies that contours of L1 are equally placed straight lines
parallel to side 2-3 on which L1 =0, etc.
L1 =
area P 23
area 123
(9.23)
a1 + b1 x + c1 y
2
a2 + b2 x + c2 y
L2 =
2
a + b x + c3 y
L3 = 3 3
2
L1 =
(9.24)
in which
1 x1
1
= det 1 x2
2
1 x3
y1
y2 = area 123
y3
(9.25)
and
a1 = x2 y3 x3 y2
b1 = y2 y3
(9.26)
c1 = x3 x2 , etc.
etc., with cyclic rotation of indices 1, 2 and 3.
The identity of expressions with those derived in previous chapters for simple triangular
element is worth remarking upon.
77
For the first element of the series the shape functions are simply the area coordinates. Thus
N1 = L1
N 2 = L2
(9.27)
N 3 = L3
This is obvious as each individually gives unity at one node, zero at others, and varies linearly
elsewhere.
For the higher order triangular elements the shape functions are the following:
For quadratic triangle:
Corner nodes :
N1 = (2 L1 1)L1 , etc.
Mid side nodes :
(9.28)
N 4 = 4 L1 L2 , etc.
For cubic triangle:
Corner nodes :
1
(3L1 1)(3L1 2)L1 , etc.
2
Mid side nodes :
N1 =
9
N 4 = L1 L2 (3L1 1), etc.
2
Internal node :
(9.29)
N10 = 27 L1 L2 L3
Three-dimensional rectangular prisms
In a precisely analogous way to that given in two-dimensional elements, equivalent elements of threedimensional type can be described (Fig. 9.9).
Using now three normalized coordinates and following the same terminology as for the
rectangular elements, we have the following shape functions:
For linear elements with 8 nodes:
Ni =
1
(1 + 0 )(1 + 0 )(1 + 0 )
8
(9.30)
Corner nodes :
1
N i = (1 + 0 )(1 + 0 )(1 + 0 )( 0 + 0 + 0 2 )
8
Typical mid side nodes :
i = 0 i = 1 i = 1
Ni =
1
1 2 (1 + 0 )(1 + 0 )
4
78
(9.31)
Corner nodes :
[(
1
(1 + 0 )(1 + 0 )(1 + 0 ) 9 2 + 2 + 2 19
64
(9.32)
Typical mid side nodes :
1
i =
i = 1 i = 1
3
9
Ni =
1 2 (1 + 9 0 )(1 + 0 )(1 + 0 )
64
Ni =
79
80
CHAPTER 10
x
y =
z
f or
L1
L
f 2
L3
L4
(10.1)
Once such coordinate relationships are known, shape functions can be specified in local
coordinates and by suitable transformations the element properties established in the global system.
In what follows we shell first discuss the so-called isoparametric form of above relationship,
which was found a great deal of practical application. Full details of this formulation will be given,
including the establishment of element properties by numerical integration, which are essential.
x1
x = N x + N x + ... = N x2 = N ' x
:
'
1 1
'
2 2
'
y1
y = N1' y1 + N 2' y 2 + ... = N ' y 2 = N ' y
:
81
(10.2)
z1
z = N1' z1 + N 2' z 2 + ... = N ' z 2 = N ' z
:
in which N are standard shape functions given in terms of the local coordinates, then immediately a
relationship of the required form is available.
It can be shown that with a parametric transformation based on bilinear shape functions, the
necessary condition is that no internal angle (such as in Fig. 10.2) be greater than 180o. In
transformations based on parabolic serendipity functions, it is necessary in addition to this
requirement to ensure that the mid-side nodes are in the middle half of the distance between adjacent
corners but a middle third shown in Fig.10.2 is safer. For cubic functions such general rules are
impractical and numerical checks on the sign of the Jacobian determinant are necessary. In practice a
parabolic distortion is usually sufficient.
While it was shown that by the use of the shape function transformation each parent element
maps uniquely a part of the real object, it is important that the subdivision of this into the new, curved,
elements should leave no gaps.
Figure 10.1
THEOREM 1: If two adjacent elements are generated form parents in which the shape
functions satisfy continuity requirements then the distorted elements will be contiguous.
THEOREM 2: If the shape functions N are such that continuity of u is preserved in the parent
coordinates then the continuity requirements will be satisfied in distorted elements.
The nodal values may or may not be associated with the same nodes as used to specify the
element geometry. For example, in Fig. 3 the points marked with a circle are used to define the
element geometry. We could use the values of the function defined at nodes marked with a square to
define the variation of the unknown.
82
If the same points define the geometry and the variation of unknowns, i.e., if the shape
functions defining geometry and unknown functions are the same, the elements will be called
isoparametric.
We could, however, use only the four corner points to define the variation of u. Such an
element we shell refer to as superparametric, noting that the variation of geometry is more general
than that of the actual unknown.
Similarly, for instance we introduce more nodes to define u that are used to define geometry,
subparametric elements will result. Such elements will be found to be more often of use in practice.
While for mapping it is convenient to use standard forms of shape functions the interpolation
of the unknown can, of course, use hierarchic forms. Once again the definitions of sub- and
superparametric variations are applicable.
Figure 10.2
Transformations
To perform finite element analysis the matrices defining element properties, e.g., stiffness, etc., have
to be found. These will be of the form:
GdV
83
(10.3)
in which the matrix G depends on N or its derivatives with respect to global coordinates. As an
example of this we have the stiffness matrix
For each particular class of elastic problems the matrices of B are given explicitly by their
components. Quoting the first of these, valid for plane problems we have:
N i
y
N i
N i
x
Bi = 0
N
i
y
(10.4)
In the elasticity problems the matrix G is thus a function of the first derivatives of N and this
situation will arise in many other classes of problem.
Figure 10.3
To evaluate such matrices we note that two transformations are necessary. In the first place, as
84
In the second place the element of volume (or surface) over which the integration has to be
carried out needs to be expressed in terms of the local coordinates with an appropriate change of limits
of integration.
Consider, for instance, the set of local coordinates , , , and a corresponding set og global
coordinates x, y, z. By the usual rules of partial differentiation we can write, for instance, the
derivative as:
N i N i x N i y N i z
=
+
+
x y z
(10.5)
N i = N i [x( , , ), y ( , , ), z ( , , )]
(10.6)
since
Performing the same differentiation with respect to the other two coordinates and writing in
matrix form we have:
N i x
N i x
=
i x
z N i
N i
x
N
z N i
i
J
=
y
y
z N i
N i
z
z
(10.7)
In the above, the left-hand side can be evaluated as the functions Ni are specified in local
coordinates. Further, as x, y, z are explicitly given by the relation defining the curvilinear coordinates,
the matrix J can be found explicitly in terms of the local coordinates. This matrix is known as the
Jacobian matrix.
To find now the global derivatives we invert J and write:
N i
N i
x
N
i
1 N i
J
=
y
N i
N i
z
(10.8)
In terms of the shape function defining the coordinate transformation N(which is the same
with N when isoparametric formulation is used) we have:
N i'
xi
N '
J = i xi
N i'
x
i
N i'
yi
N i'
yi
N i'
yi
N i'
zi
N i'
zi
N i'
z
i
(10.9)
To transform the variables and the region with respect to which the integration is made a
standard process will be used which involves the determinant of J. Thus, for instance, a volume
element becomes:
dx dy dz = det J d d d
85
(10.10)
In elasticity and other applications, surface integrals frequently occur. Typical here are the
expressions for evaluating the contributions of surface tractions:
T
f = N t dA
(10.11)
The element dA will generally lie on a surface where one of the coordinates (say ) is
constant. The most convenient proves of dealing with the above is to consider dA as a vector oriented
in the direction normal to the surface. For three-dimensional problems we form a vector product (Fig.
10.4):
x x
y y
dA = d d = d d
z z
(10.12)
Figure 10.4
For two dimensions a line length dS arises and here the magnitude is simply:
x
y
dS = d
z
(10.13)
on constant surfaces.
The general relationship for coordinate mapping and indeed all the following theorems are
equally valid for any set of local coordinates and could relate the local L1, L2, coordinates used for
triangles and tetrahedral, to the global Cartesian ones. Indeed most of the previous discussion is valid
if we simply rename the local coordinates suitably. However, two important differences arise.
86
The first concerns the fact that the local coordinates are not independent and in fact number
one more than the Cartesian system. The matrix J would apparently therefore become rectangular and
would not posses an inverse. The second is simply the difference of integration limits, which have to
correspond with a triangular or tetrahedral parent.
The simplest, though perhaps not the most elegant, way out of the first difficulty is to consider
the last variable as a dependent one. Thus, for example, we can introduce formally, in the case of
tetrahedral:
= L1
= L2
= L3
1 = L4
(10.14)
As the functions Ni are given in fact in terms of L1, L2, etc., we must observe that:
N i N i L1 N i L2 N i L3 N i L4
+
+
+
=
L1 L2 L3 L4
(10.15)
N i N i N i
=
L1 L4
(10.16)
or simply:
0 0
G ( , , )d d d
(10.17)
The same procedure clearly will apply in the case of triangular coordinates.
Numerical Integration
Already in some of the previous discussions dealing with a relatively simple problem of axisymmetric
stress distribution and simple triangular elements it was noted that exact integration of expressions for
element matrices could be troublesome. Now for the more complex distorted elements numerical
integration is essential.
Newton-Cotes quadrature
In the most obvious procedure, points at which the function is to be found are determined a priori
usually at equal intervals and a polynomial passed through the values of the function at these points
and exactly integrated (Fig. 10.5, up).
As n values of the function define a polynomial of degree n-1 the errors will be of order O(hn)
where h is the element size. This leads to the well-known Newton-Cotes quadrature formulae. The
integrals can be written as:
n
I = f ( )d = H i f ( i )
1
(10.18)
for the range of integration between 1 and +1. For example, if n=2, we have well-known trapezoidal
rule:
I = f ( 1) + f (1)
87
(10.19)
I=
1
[ f ( 1) + 4 f (0) + f (1)]
3
(10.20)
I=
Figure 10.5
1
1
1
f ( 1) + 3 f + 3 f + f (1)
4
3
3
(10.21)
Gauss quadrature
If in place of specifying the position of sampling points a priori we allow these to be located at points
to be determined so as to aim for best accuracy, then for a given number of sampling points an
increased accuracy can be obtained. Indeed, if we consider again that:
88
I = f ( )d = H i f ( i )
1
(10.22)
and assume again a polynomial expression, it is easy to see that for n sampling points we have 2n
unknowns (Hi and i) and hence a polynomial of degree 2n-1 could be constructed and exactly
integrated. The error thus is of order O(h2n).
For illustration, if we need to calculate the integral I using two integration points (See Fig.
10.5 down) , and if we approximate the function f() as a polynomial function of type:
f ( ) = 0 + 1 + 2 2 + 3 3
(10.23)
(10.24)
I = H i f ( i ) = H [ f ( a) + f (+ a )] =
1
= H 0 + 1a + 2 a 2 + 3 a 3 + 0 1a + 2 a 2 3 a 3 =
= 2H 0 + 2a 2
(10.25)
Unknown coefficients i can be determined from the condition that the difference between the
exact and approximate integration be set to minimum. Hence:
1
= I I = 2 0 + 2 H 0 + 2 a 2
3
= 0 1 H = 0 H = 1
0
=0
2
(10.26)
1
1
a2 = 0 a =
= 0.57735
3
3
I = 1 f ( 0.57735) + 1 f (+ 0.57735)
(10.27)
For the case of two-dimensional integration, like rectangular regions (Fig. 10.6), the most
obvious way of obtaining the integral:
1 1
I=
f ( , ) d d
(10.28)
1 1
f ( , ) d = H j f ( j , ) = ( )
n
j =1
89
(10.29)
I = ( )d = H j ( ) =
1
j =1
= H i H j f ( j , ) =
n
i =1
j =1
=
i =1
(10.30)
H H f ( , )
n
j =1
It is of interest to note that in fact the double summation can be readily interpreted as a single
ona over (n x n) points for a rectangle (or n3 points for a cube). Thus, in Fig. 10.6 we show the nine
sampling points that result in exact integrals of order 5 in each direction.
However, we could approach the problem directly and require an exact integration of a fifthorder polynomial in two directions. At any sampling point two coordinates and a value of f have to be
determined in a weighting formula of type:
1
I =
f ( , ) d d = wi f ( i ,i )
(10.31)
There it would appear that only seven points would suffice to obtain the same order of
accuracy.
Figure 10.6
Two-dimensional integration
Example
Let us derive the stiffness matrix for an iso-parametric quadratic element with 4 nodes given in
curvilinear coordinates (Fig. 10.7), for plane stress and plane strain cases.
The solution will be given in the following six steps.
90
Figure 10.7
4
N 2 1
N 2 1
= ( 1 )
= (1 )
4
4
N 3 1
N 3 1
= (1 + )
= (1 + )
4
4
N 4 1
N 4 1
= ( 1 )
= (1 )
4
4
1. Shape functions :
1
N1 = (1 + )
4
1
N 2 = (1 + )
4
1
N 3 = (1 + + + )
4
1
N 4 = (1 + )
4
3. B matrix
N1
x
B= 0
N
1
y
N 2
x
N1
0
y
N1 N 2
x y
N 3
x
N 2
0
y
N 2 N 3
x y
N 4
x
N 3
0
y
N 3 N 4
x y
N 4
y
N 4
N i N i x N i
+
=
x y
N i N i x N i
=
+
x y
or
91
N i x
N = x
i
N i
y
N i
x
1
1
N = J N =
y
i det J
i
y
det J =
by the way :
y N i
x
y N i
x = N i xi
i =1
4
y = N i yi
i =1
4
x
N
= i xi
i =1
4
N
x
= i xi
i =1
x y y x
4
N
y
= i yi
i =1
4
N
y
= i yi
i =1
1
0
E
1
0
D=
1 2
1
0 0
2
0
1
(1 )
E (1 )
1
0
D=
(
)
1
(1 + )(1 2 )
(1 2 )
0
0
2(1 )
6. Stiffness matrix
T
K = t B DB dx dy
V
dx dy = det J d d
K = t H i H j BT ( i , j )DB( i , j )det J ( i , j )
n
i =1 j =1
if n = 2 :
H1 = H 2 = 1.0
1/ 2 = 0.577350269189626
1/ 2 = 0.577350269189626
92
CHAPTER 11
93
substituted into the assumed global polynomial. However, the real test is that when each element is
checked, the calculated n-th order derivatives must agree with the arbitrary assumed values used to
generate the global function. If an element does not satisfy this test, it should not be used. The patch
test can also be used for other purposes. For example, the analyst may wish to distort the element
shape and/or change the numerical integration rule to see what effect that has on the numerical
accuracy of the patch test.
Convergence requirements
We shall consider in the following the patch test as applied to a finite element solution of a set of
differential equations:
A(u ) L(u ) + g = 0
(11.1)
B (u ) = 0
(11.2)
u u = Na
(11.3)
where N are shape functions defined in each element, e, end a are unknown parameters.
By applying standard procedures of finite element approximation the problem reduces in a
linear case to a set of algebraic equations:
Ka = f
(11.4)
which when solved give an approximation to the differential equation and its boundary conditions.
What is meant by convergence in the approximation sense is that the approximate solution
u^ should tend to exact solution u when the size of the elements h approaches zero.
To ensure convergence it is necessary that the approximation fulfill both consistency and
stability conditions.
The consistency requirement ensures that as the size of the element h tends to zero, the
approximation equation will represent the exact differential equation and the boundary conditions (at
least in the weak sense).
The stability condition is simply translated as a requirement that the solution of the discrete
equation system be unique and avoid spurious mechanisms which may pollute the solution for all sizes
of elements. For linear problems in which we solve the system of algebraic equations as:
a = K 1f
(11.5)
this means simply that the matrix K must be non-singular for all possible element assemblies.
The simple patch test (forms A and B) a necessary condition for convergence
We shall first consider the consistency condition which requires that in the limit (as h tends to zero)
the finite element approximation should model exactly the differential equation of the problem
together with the boundary conditions. If we consider a small region of the domain (of size 2h) we can
expand the unknown function u and the essential derivatives entering the weak approximation in a
Taylor series. From this we conclude that for convergence of the function and its first derivative in
typical problems of a second-order equation and two dimensions, we require that around a point i
assumed to be at coordinate origin,
94
u
u
u = ui + x + y + O h p
x i
y i
( )
u u
= + O h p 1
x x i
( )
(11.6)
u u
= + O h p 1
y y i
( )
with p 2 . The finite element approximation should therefore reproduce exactly the problem posed
for any linear forms of u as h tends to zero. Similar conditions can obviously be written for higher
order problems. This requirement is tested by the current interpretation of the patch test illustrated in
Fig. 11.1 a and b.
95
In this we compute first an arbitrary linear solution of the differential equation and the
corresponding set of parameters a at all nodes of a patch which assembles completely the nodal
variable ai (i.e., provides all the equation terms corresponding to it).
In test A we simply insert the exact value of the parameters a into the ith equation and verify
that:
K ij a j f i 0
(11.7)
In test B only the values of a corresponding to the boundaries of the patch are inserted and ai
is found as:
ai = K ii1 ( f i K ij a j )
ji
(11.8)
Ka = f
(11.9)
Fixing only the minimum number of parameters a necessary to obtain a physically valid
solution (e.g., eliminating the rigid body motion in an elasticity example or a single value of
temperature in a heat conduction problem) a solution is sought for remaining a values and compared
with the exact basic solution assumed.
Now any singularity of the K matrix will be immediately observed and, as the vector f
includes all necessary source and boundary traction terms, the formulation will be completely tested
(providing of course a sufficient number of test states are used). The test described is now not only
necessary but sufficient for convergence.
96
1
0 u1 F1
1
AE
1 (1 + 1) 1 u 2 = 0
L
0
1
1 u3 F3
(11.10)
where F1 and F3 are the unknown reactions associated with the prescribed external displacements.
These two exterior patch boundary conditions are obtained by substituting their nodal coordinates into
the assumed patch solution:
(11.11)
Modifying the assembled equations to include the patch essential boundary conditions gives:
0 1 0 a F1
1
1
AE
0 2 0 u 2 = 0
1
1
L
L
L
0
0
0 1 0 a + 2bL F3
(11.12)
2 AE
aAE (a + 2bL )AE
u2 = 0 +
+
L
L
L
(11.13)
u2 =
(2a + 2bL ) = a + bL
2
(11.14)
u ( x2 ) = (a + bx2 ) = a + bL
(11.15)
u 2 u1 [(a + bL ) a ]
=
=b
L
L
u u
[(a + 2bL ) (a + bL )] = b
e = 2: = 3 2 =
L
L
e = 1: =
(11.16)
Thus, all element derivatives are constant. However, these constants must agree with the
constant assumed in the patch. That value is:
du d (a + bx )
=
=b
dx
dx
97
(11.17)
Such a procedure also verifies that the computer program satisfies certain minimum
requirements. A problem with some elements is that they can pass the patch test for a uniform mesh,
but fail when an arbitrary irregular mesh is employed. Thus, as a general rule, one should try to avoid
conducting the test with a regular mesh, such as that given in the above example. It would have been
wiser to use unequal element lengths such as L and L, where is an arbitrary constant. The linear
bar element should pass the test for any scaling ratio, . However, for near zero, numerical illconditioning begins to affect the answer.
98
CHAPTER 12
99
36-40
41-45
46-50
ne9
nl
ian
51-55
56-60
61-70
nton
nt
acc
100
11-15
16-20
21-25
26-30
31-35
36-40
ijk6(1,i)
ijk6(2,i)
ijk6(3,i)
ijk6(4,i)
ijk6(5,i)
ijk6(6,i)
101
Examples
Example 1: Static analysis of a cantilever beam subjected to bending
Input Data File (ex1n):
EXAMPLE 1 (CANTILEVER BEAM)
isw
nn nmat ne3 ne4 ne6 ne8
Parameters
1
10
1
8
0
0
0
node
x(node)
y(node)
lx
ly
1
0.0
0.0
1
1
2
0.0
0.1
1
1
3
0.1
0.0
0
0
4
0.1
0.1
0
0
5
0.2
0.0
0
0
6
0.2
0.1
0
0
7
0.3
0.0
0
0
8
0.3
0.1
0
0
9
0.4
0.0
0
0
10
0.4
0.1
0
0
iel
it
m1
m2
m3
1
1
1
3
2
2
1
3
4
2
3
1
3
5
4
4
1
5
6
4
5
1
5
7
6
6
1
7
8
6
7
1
7
9
8
8
1
9
10
8
node
Fx
Fy
9
0.0
-50.0
10
0.0
-50.0
i
E
ni
t
1210000000.
0.3
0.02
ne9
nl
2
sprx
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
ian nton
nt
0
0
0.0000
spry
mx
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
! Element Connections
my
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
1
2
3
4
5
6
7
8
9
10
d(x)
d(x)
d(x)
d(x)
d(x)
d(x)
d(x)
d(x)
d(x)
d(x)
=
=
=
=
=
=
=
=
=
=
-.400000E-27
0.400000E-27
-.113352E-03
0.116679E-03
-.190305E-03
0.200394E-03
-.235019E-03
0.251982E-03
-.247629E-03
0.271471E-03
d(y)
d(y)
d(y)
d(y)
d(y)
d(y)
d(y)
d(y)
d(y)
d(y)
=
=
=
=
=
=
=
=
=
=
-.216893E-27
0.116893E-27
-.171375E-03
-.182465E-03
-.543464E-03
-.554916E-03
-.104421E-02
-.105568E-02
-.160917E-02
-.162063E-02
Element:
Element:
eps_x = 0.116679E-02 Gx =
eps_y = -.110895E-03 Gy =
gama_xy = 0.475659E-03 Txy =
261581.
55186.6
38418.6
102
eps_x = 0.837153E-03 Gx =
eps_y = -.114516E-03 Gy =
gama_xy = 0.182483E-03 Txy =
Element:
Element:
Element:
Element:
185261.
31529.9
14739.0
103
1
2
2
2
2
2
1
nchar = 0
DO i=1,256
IF(input(i:i).NE.' ')THEN
nchar = nchar + 1
ELSE
EXIT
END IF
END DO
OPEN(UNIT=inp, FILE=input(1:nchar), STATUS='unknown', FORM='formatted')
! Starting Time : time1
CALL timer(iticks1)
! Unformatted File for Storing Stiffness Matrix ts()
OPEN(UNIT=nfak, FILE=input(1:nchar) // '.fak', STATUS='unknown',&
FORM='unformatted')
WRITE(*,*)' Read Input Data From the Input File'
! Read General System Data
READ(inp,'(a)')text
READ(inp,*)
!Blank line for comment
READ(inp,'(12i5, f10.0)')isw, nn, nmat, ne3, ne4, ne6, ne8, ne9, nl, ian, nton, nt, acc
! text - identification title of the problem
! isw - phisical problem definition:
!
= 1 - plane stress
!
= 2 - plane strain
!
= 3 - axisymmetry
! nn - total number of nodes
! nmat - total number of material types
! ne3 - total number of triangular elements with 3 nodes
! ne4 - total number of quadrilateral elements with 4 nodes
! ne6 - total number of triangular elements with 6 nodes
! ne8 - total number of quadrilateral elements with 8 nodes
! ne9 - total number of quadrilateral elements with 9 nodes
! nl - total number of nodes with applied nodal loads
! ian - Analysis type:
!
ian = 0 - Static + Modal Analysis + Dynamic Analysis (not yet active)
!
ian = 1 - Only Modal Analysis
!
ian = 2 - Only Static Analysis
!
ian = 3 - Only Modal + Dynamic Analysis (not yet active)
! nton - Number of mode shapes to be calculated
! nt - Maximum number of iterations during modal analysis (100-250)
! acc - Accuracy of iterations during modal analysis (0.0001-0.001)
ned=2
! D.O.F. per node
n=nn*ned ! Total number of equations
! Allocate Arrays
ALLOCATE(x(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(y(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(xl(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(yl(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(sprx(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(spry(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(am(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough
ALLOCATE(cx(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough
ALLOCATE(cxx(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough
ALLOCATE(cy(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough
ALLOCATE(ff(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough
ALLOCATE(dd(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough
ALLOCATE(lx(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(ly(nn),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(idiag(n),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory for allocation! '
ALLOCATE(ijk3(3, ne3),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(ijk6(6, ne6),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(ijk4(4, ne4),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(ijk8(8, ne8),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(ijk9(9, ne9),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(imat3(ne3),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(imat4(ne4),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(imat6(ne6),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(imat8(ne8),STAT=ierror)
IF(ierror.NE.0)STOP ' Not enough memory
ALLOCATE(imat9(ne9),STAT=ierror)
104
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
2
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
2
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
2
2
2
105
2
2
2
2
2
2
2
1
ts(indx) = 1.0D+30
END IF
IF(ly(i).EQ.1)THEN
kk = i*2
indx = idiag(kk)
ts(indx) = 1.0D+30
END IF
END DO
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
! Add Springs
WRITE(*,*)' Adding Springs'
DO i=1, nn
IF(lx(i).EQ.0)THEN
kk = (i-1)*2+1
indx = idiag(kk)
ts(indx) = ts(indx) + sprx(i)
ELSE IF(lx(i).EQ.1)THEN
IF(sprx(i).NE.0.D0) &
STOP 'Input error: Spring added to a fixed node!'
END IF
IF(ly(i).EQ.0)THEN
kk = i*2
indx = idiag(kk)
ts(indx) = ts(indx) + spry(i)
ELSE IF(ly(i).EQ.1)THEN
IF(spry(i).NE.0.D0) &
STOP 'Input error: Spring added to a fixed node!'
END IF
END DO
! Solve the Static Equilibrium Equations
WRITE(*,*)' Solve Static Equilibrium Equations'
CALL factor(ts, idiag, n)
! Triangularization if ts()
REWIND (UNIT=nfak)
WRITE(nfak)(ts(i),i=1, nak)
1
2
2
2
1
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
106
! Clean masses
DO k=1, nn*2
am(k)=0.D0
END DO
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
2
1
1
1
2
2
2
2
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
107
1
1
1
1
1
1
READ(inp,*)
!Blank line for comment
DO k=1, nmat
READ(inp,'(i5, 3f10.0)')i, ee(i), pp(i), tt(i)
! ee - Modulus of elasticity of the material
! pp - Poison's coefficient of the material
! tt - thickness of the elements
END DO
RETURN
END SUBROUTINE rd
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
SUBROUTINE colheigh(ne3, ne4, ne6, ne8, ne9, ijk3, ijk4, ijk6, ijk8, ijk9, &
n, nak, ned, idiag)
IMPLICIT NONE
INTEGER(KIND=4)
:: ne3, ne4, ne6, ne8, ne9, n, nak, ned, i, nen
INTEGER(KIND=4), DIMENSION(1)
:: idiag
INTEGER(KIND=4), DIMENSION(18)
:: id
INTEGER(KIND=4), DIMENSION(3, ne3) :: ijk3
INTEGER(KIND=4), DIMENSION(4, ne4) :: ijk4
INTEGER(KIND=4), DIMENSION(6, ne6) :: ijk6
INTEGER(KIND=4), DIMENSION(8, ne8) :: ijk8
INTEGER(KIND=4), DIMENSION(9, ne9) :: ijk9
DO i=1, ne3
nen = 3
id(1)=ijk3(1,i)*2-1
id(2)=ijk3(1,i)*2
id(3)=ijk3(2,i)*2-1
id(4)=ijk3(2,i)*2
id(5)=ijk3(3,i)*2-1
id(6)=ijk3(3,i)*2
CALL colht(idiag, n, ned, nen, id)
END DO
DO i=1, ne4
nen = 4
id(1)=ijk4(1,i)*2-1
id(2)=ijk4(1,i)*2
id(3)=ijk4(2,i)*2-1
id(4)=ijk4(2,i)*2
id(5)=ijk4(3,i)*2-1
id(6)=ijk4(3,i)*2
id(7)=ijk4(4,i)*2-1
id(8)=ijk4(4,i)*2
CALL colht(idiag, n, ned, nen, id)
END DO
DO i=1, ne6
nen = 6
id(1)=ijk6(1,i)*2-1
id(2)=ijk6(1,i)*2
id(3)=ijk6(2,i)*2-1
id(4)=ijk6(2,i)*2
id(5)=ijk6(3,i)*2-1
id(6)=ijk6(3,i)*2
id(7)=ijk6(4,i)*2-1
id(8)=ijk6(4,i)*2
id(9)=ijk6(5,i)*2-1
id(10)=ijk6(5,i)*2
id(11)=ijk6(6,i)*2-1
id(12)=ijk6(6,i)*2
CALL colht(idiag, n, ned, nen, id)
END DO
DO i=1, ne8
nen = 8
id(1)=ijk8(1,i)*2-1
id(2)=ijk8(1,i)*2
id(3)=ijk8(2,i)*2-1
id(4)=ijk8(2,i)*2
id(5)=ijk8(3,i)*2-1
id(6)=ijk8(3,i)*2
id(7)=ijk8(4,i)*2-1
id(8)=ijk8(4,i)*2
id(9)=ijk8(5,i)*2-1
id(10)=ijk8(5,i)*2
id(11)=ijk8(6,i)*2-1
id(12)=ijk8(6,i)*2
id(13)=ijk8(7,i)*2-1
id(14)=ijk8(7,i)*2
id(15)=ijk8(8,i)*2-1
id(16)=ijk8(8,i)*2
CALL colht(idiag, n, ned, nen, id)
END DO
DO i=1, ne9
nen = 9
id(1)=ijk9(1,i)*2-1
id(2)=ijk9(1,i)*2
id(3)=ijk9(2,i)*2-1
id(4)=ijk9(2,i)*2
id(5)=ijk9(3,i)*2-1
id(6)=ijk9(3,i)*2
id(7)=ijk9(4,i)*2-1
id(8)=ijk9(4,i)*2
id(9)=ijk9(5,i)*2-1
id(10)=ijk9(5,i)*2
id(11)=ijk9(6,i)*2-1
id(12)=ijk9(6,i)*2
id(13)=ijk9(7,i)*2-1
id(14)=ijk9(7,i)*2
id(15)=ijk9(8,i)*2-1
id(16)=ijk9(8,i)*2
id(17)=ijk9(9,i)*2-1
id(18)=ijk9(9,i)*2
CALL colht(idiag, n, ned, nen, id)
END DO
108
1
2
2
2
2
2
1
1
1
2
2
2
2
2
1
1
1
1
1
2
2
2
2
2
1
1
1
2
2
2
2
2
1
1
1
1
1
2
2
2
2
2
1
1
1
!
! Triangular element with 3 nodes
!
nee = 6
! Total number of degrees of freedom per element
ALLOCATE(es(nee, nee), STAT=ier)
IF(ier.NE.0) STOP ' Allocation error: es(:,:)! '
DO i=1, ne3
DO j=1, 3
xx(j) = x(ijk3(j,i))
yy(j) = y(ijk3(j,i))
m3(j) = ijk3(j,i)
END DO
CALL stiff6 (isw, 3, i, ee(imat3(i)), pp(imat3(i)), tt(imat3(i)), xx, yy, es, m3)
! Locations of the Stiffness Coefficients
DO j=1, 3
k = (j-1)*2+1
id(k) = ijk3(j,i)*2-1
id(k+1) = ijk3(j,i)*2
END DO
! Assembling Global Stiffnes Matrix
CALL addlhs(ts, idiag, id, es, nee)
END DO
! Element DO-loop
DEALLOCATE(es, STAT=ier)
IF(ier.NE.0) STOP ' Deallocation error: es(:,:)! '
!
! Triangular element with 6 nodes
!
nee = 12
! Total number of degrees of freedom per element
ALLOCATE(es(nee, nee), STAT=ier)
IF(ier.NE.0) STOP ' Allocation error: es(:,:)! '
DO i=1, ne6
DO j=1, 6
xx(j) = x(ijk6(j,i))
yy(j) = y(ijk6(j,i))
m6(j) = ijk6(j,i)
END DO
CALL stiff6 (isw, 6, i, ee(imat6(i)), pp(imat6(i)), tt(imat6(i)), xx, yy, es, m6)
! Locations of the Stiffness Coefficients
DO j=1, 6
k = (j-1)*2+1
id(k) = ijk6(j,i)*2-1
id(k+1) = ijk6(j,i)*2
END DO
! Assembling Global Stiffnes Matrix
CALL addlhs(ts, idiag, id, es, nee)
END DO
! Element DO-loop
DEALLOCATE(es, STAT=ier)
IF(ier.NE.0) STOP ' Deallocation error: es(:,:)! '
!
! Quadrilateral elements
!
nee = 8
! With 4 nodes
ALLOCATE(es(nee, nee), STAT=ier)
IF(ier.NE.0) STOP ' Allocation error: es(:,:)! '
ngaus = 2
DO i=1, ne4
DO j=1, 4
xx(j) = x(ijk4(j,i))
yy(j) = y(ijk4(j,i))
m4(j) = ijk4(j,i)
END DO
CALL stiff489 (isw, i, 4, ngaus, ee(imat4(i)), pp(imat4(i)), tt(imat4(i)), &
xx, yy, es, m4)
109
1
2
2
2
2
2
1
1
1
1
1
2
2
2
2
2
1
1
1
1
2
2
2
2
2
1
1
1
1
1
2
2
2
2
2
1
1
1
1
2
2
2
2
2
1
1
1
1
1
1
IF(isw.EQ.1.OR.isw.EQ.2) THEN
nstre = 3
110
1
1
1
1
1
2
2
2
2
2
2
2
2
2
1
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
3
2
2
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
4
4
4
4
4
4
4
4
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
NODES'/)
111
4
4
5
5
6
6
6
5
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
4
3
3
2
2
1
1
1
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
2
2
2
3
3
3
3
3
3
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
5
5
5
5
5
5
5
5
5
5
4
4
5
6
6
6
6
6
CALL linear(cartd, dmatx, eldis, nne, nstre, isw, strain, kgasp, gpcod, &
shape1)
! => eldis()
DO istre=1, nstre
stress(istre) = 0.D0
DO jstre=1, nstre
stress(istre) = stress(istre) + dmatx(istre, jstre)*strain(jstre)
END DO
END DO
IF(isw.EQ.1) stress(4) = 0.D0
IF(isw.EQ.2) stress(4) = sni1*(stress(1)+stress(2))
IF(isw.EQ.1.OR.isw.EQ.2) THEN
WRITE(nout, 22) i, kgasp, (strain(j), stress(j), j=1, nstre)
22 FORMAT(/' Element: ',i5,'Integration point: ', i5/&
'
eps_x = ',g12.6,' Gx = ',g12.6/&
'
eps_y = ',g12.6,' Gy = ',g12.6/&
'
gama_xy = ',g12.6,' Txy = ',g12.6)
ELSE IF(isw.EQ.3) THEN
WRITE(nout, 23) i, kgasp, (strain(j), stress(j), j=1, nstre)
23 FORMAT(/' Element: ',i5,'Integration point: ', i5/&
'
eps_r = ',g12.6,' Gr = ',g12.6/&
'
eps_t = ',g12.6,' Gt = ',g12.6/&
'
eps_z = ',g12.6,' Gz = ',g12.6/&
'
gama_rz = ',g12.6,' Trz = ',g12.6)
END IF
END DO
END DO
END IF
END DO
! Quadrilateral elements
! Gaussian integration constants
IF(ne4.NE.0.OR.ne8.NE.0.OR.ne9.NE.0) THEN
DO icase=1, 3
IF(icase.EQ.1) THEN
ne = ne4
nne = 4
ngaus = 2
ELSE IF(icase.EQ.2) THEN
ne = ne8
nne = 8
ngaus = 3
ELSE IF(icase.EQ.3) THEN
ne = ne9
nne = 9
ngaus = 3
END IF
CALL gaussq(ngaus, posgp, weigp)
IF(ne.NE.0) THEN
WRITE(nout,3) nne
3 FORMAT(//&
' OBTAINED STRAINS AND STRESSES IN THE QUADRILATERAL ELEMENTS WITH',i5,' NODES'/)
! Extract the Element Nodal Displacements and Obtain Strains and Stresses
DO i=1, ne
! For each element
IF(icase.EQ.1) THEN
t = tt(imat4(i))
sni1 = pp(imat4(i))
em1 = ee(imat4(i))
ELSE IF(icase.EQ.2) THEN
t = tt(imat8(i))
sni1 = pp(imat8(i))
em1 = ee(imat8(i))
ELSE IF(icase.EQ.3) THEN
t = tt(imat9(i))
sni1 = pp(imat9(i))
em1 = ee(imat9(i))
END IF
DO j=1, nne
IF(nne.EQ.4) THEN
elcod(1, j) = x(ijk4(j,i))
elcod(2, j) = y(ijk4(j,i))
ELSE IF(nne.EQ.8) THEN
elcod(1, j) = x(ijk8(j,i))
elcod(2, j) = y(ijk8(j,i))
ELSE IF(nne.EQ.9) THEN
elcod(1, j) = x(ijk9(j,i))
elcod(2, j) = y(ijk9(j,i))
END IF
k = (j-1)*2+1
IF(nne.EQ.4) id(k) = ijk4(j,i)*2-1
IF(nne.EQ.8) id(k) = ijk8(j,i)*2-1
IF(nne.EQ.9) id(k) = ijk9(j,i)*2-1
eldis(1, j) = dd(id(k))
IF(nne.EQ.4) id(k+1) = ijk4(j,i)*2
IF(nne.EQ.8) id(k+1) = ijk8(j,i)*2
IF(nne.EQ.9) id(k+1) = ijk9(j,i)*2
eldis(2, j) = dd(id(k))
END DO
kgasp = 0
DO igaus=1, ngaus
DO jgaus=1, ngaus
exisp = posgp(igaus)
etasp = posgp(jgaus)
kgasp = kgasp+1
112
6
6
6
6
6
6
6
6
6
6
7
7
7
6
6
6
7
7
8
8
8
7
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
6
5
4
4
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
jj = 0
DO j=1,neq
jjlast = jj
jj
= idiag(j)
jcolht = jj - jjlast
IF (jcolht.GT.2) THEN
! for column j and i.le.j-1, replace a(i,j) with d(i,i)*u(i,j)
istart = j - jcolht + 2
jm1
= j - 1
ij
= jjlast + 2
ii
= idiag(istart-1)
DO i=istart,jm1
113
3
3
3
3
3
3
3
3
3
2
2
1
2
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
4
4
4
3
3
2
2
1
1
iilast = ii
ii
= idiag(i)
icolht = ii - iilast
jlngth = i - istart + 1
length = min0(icolht-1,jlngth)
IF (length.GT.0) &
a(ij) = a(ij) - coldot(a(ii-length),a(ij-length),length)
ij = ij + 1
END DO
END IF
IF (jcolht.GE.2) THEN
! for column j and i.le.j-1, replace a(i,j) with u(i,j);
! replace a(j,j) with d(j,j).
jtemp = j - jj
DO ij=jjlast+1,jj-1
ii = idiag(jtemp + ij)
! warning: the following calculations are skipped
!
if a(ii) equals zero
IF (a(ii).NE.zero) THEN
temp = a(ij)
a(ij) = temp/a(ii)
a(jj) = a(jj) - temp*a(ij)
ELSE
PRINT *,' Diagonal zerro stiffness detected in subroutine FACTOR! '
STOP
END IF
END DO
END IF
END DO
RETURN
END SUBROUTINE factor
SUBROUTINE back(a, b, idiag, neq)
! Subroutine to perform forward reduction and back substitution
IMPLICIT NONE
INTEGER(KIND=4)
:: neq
REAL(KIND=8), DIMENSION(1)
:: a, b
INTEGER(KIND=4), DIMENSION(1) :: idiag
REAL(KIND=8), PARAMETER
:: zero=0.D0
INTEGER(KIND=4)
:: jj, jjlast, jcolht, j, jjnext,
istart, jtemp, i
REAL(KIND=8)
:: ajj, bj, coldot
&
1
1
1
1
1
1
1
! forward reduction
jj = 0
DO j=1,neq
jjlast = jj
jj
= idiag(j)
jcolht = jj - jjlast
IF (jcolht.GT.1) &
b(j) = b(j) - coldot(a(jjlast+1),b(j-jcolht+1),jcolht-1)
END DO
1
1
1
2
2
2
2
2
2
1
! diagonal scaling
DO j=1,neq
ajj = a(idiag(j))
! warning: diagonal scaling is not performed if ajj equals zero
IF (ajj.NE.zero)THEN
b(j) = b(j)/ajj
ELSE
PRINT *,' Diagonal zerro stiffness detected in subroutine FACTOR! '
STOP
END IF
END DO
! back substitution
IF (neq.EQ.1) RETURN
jjnext = idiag(neq)
1
1
1
1
2
2
2
2
2
3
3
3
2
1
DO j=neq,2,-1
jj
= jjnext
jjnext = idiag(j-1)
jcolht = jj - jjnext
IF (jcolht.GT.1) THEN
bj = b(j)
istart = j - jcolht + 1
jtemp = jjnext - istart + 1
DO i=istart,j-1
b(i) = b(i) - a(jtemp+i)*bj
END DO
END IF
END DO
RETURN
END SUBROUTINE back
FUNCTION coldot(a, b, n)
! Function to compute the dot
IMPLICIT NONE
REAL(KIND=8)
INTEGER(KIND=4)
REAL(KIND=8), DIMENSION(1)
114
1
1
1
REAL(KIND=8), PARAMETER
:: zero=0.D0
INTEGER(KIND=4)
:: i
coldot = zero
DO i=1,n
coldot = coldot + a(i)*b(i)
END DO
RETURN
END FUNCTION coldot
SUBROUTINE colht(idiag, n, ned,
! Calculate column-heights
IMPLICIT NONE
INTEGER(KIND=4)
INTEGER(KIND=4), DIMENSION(1)
INTEGER(KIND=4)
nen, lm)
:: n, ned, nen
:: lm, idiag
:: minn, j, i, indexx, num, ms
minn = n
1
1
2
2
2
3
3
3
2
1
1
DO j=1, nen
1
1
2
2
2
3
3
3
3
2
1
1
DO j=1,nen
1
1
2
3
3
4
5
5
5
5
5
4
4
3
2
1
!element nodes
DO i=1,ned
!element node degrees of freedom
indexx=(j-1)*ned+i
num = lm(indexx)
IF (num.GT.0)THEN
IF(num.LT.minn)minn = min0(minn,num)
END IF
END DO
END DO
DO i=1,ned
indexx=(j-1)*ned+i
num = lm(indexx)
IF (num.GT.0) THEN
ms = num - minn
IF (ms.GT.idiag(num)) idiag(num) = ms
END IF
END DO
END DO
RETURN
END SUBROUTINE colht
SUBROUTINE addlhs(alhs, idiag, lm, eleffm, nee)
! Adding element stiffness matrix to the global stiffness matrix
IMPLICIT NONE
INTEGER(KIND=4)
:: nee
REAL(KIND=8), DIMENSION(1)
:: alhs
INTEGER(KIND=4), DIMENSION(1)
:: idiag, lm
REAL(KIND=8), DIMENSION(nee,nee) :: eleffm
INTEGER(KIND=4)
:: j, k, i, m, l
DO j=1, nee
!element equations
k = lm(j)
IF (k.GT.0) THEN
DO i=1,j
m = lm(i)
IF (m.GT.0) THEN
IF (k.GE.m) THEN
l = idiag(k) - k + m
ELSE
l = idiag(m) - m + k
END IF
alhs(l) = alhs(l) + eleffm(i,j)
END IF
END DO
END IF
END DO
RETURN
END SUBROUTINE addlhs
SUBROUTINE inviter(am, ak, cx, cy, nperd, nak, n, nton, nt, acc, &
inp, nchar, idiag, cxx, nfak)
! Subroutine for eigen-problem solution of the system using inverse
! vector iteration method and Gram-Shmidth vector ortogonalization
IMPLICIT NONE
INTEGER(KIND=4)
:: nperd, nak, n, nton, nt, nchar, nfak
REAL(KIND=8)
:: acc
INTEGER(KIND=4), PARAMETER
:: ndouble=8
REAL(KIND=8), DIMENSION(1)
:: cx, cy, am, ak, cxx
INTEGER(KIND=4), DIMENSION(1) :: idiag
CHARACTER(LEN=*)
:: inp
INTEGER(KIND=4)
:: nres
nres=n*ndouble
OPEN(UNIT=nperd, FILE=inp(1:nchar) // '.per', STATUS='unknown', &
FORM='unformatted', ACCESS='direct', RECL=nres)
CALL shapes(nton, nt, acc, nperd, n, nak, ak, cxx, cx, cy, am, &
idiag, nfak)
RETURN
END SUBROUTINE inviter
SUBROUTINE shapes(nton, nt, acc, nperd, n, nak, ak, cxx, cx, cy, am, &
idiag, nfak)
IMPLICIT NONE
INTEGER(KIND=4)
:: nton, nt, nperd, n, nak, nfak
REAL(KIND=8)
:: acc
REAL(KIND=8), DIMENSION(1)
:: ak, cxx, cx, cy, am
115
1
1
1
1
1
2
2
2
2
1
2
2
2
1
2
2
2
3
3
3
2
2
1
1
2
2
2
2
2
2
3
3
3
3
3
3
2
2
2
2
2
3
3
3
2
3
3
4
4
4
4
4
3
2
3
3
4
4
4
5
5
5
5
SUBROUTINE first(nt, acc, nperd, n, nak, ak, cx, cy, cxx, am, idiag, nfak)
IMPLICIT NONE
INTEGER(KIND=4)
:: nt, nperd, n, nak, nfak
REAL(KIND=8)
:: acc
REAL(KIND=8), DIMENSION(1)
:: ak, cxx, cx, cy, am
INTEGER(KIND=4), DIMENSION(1) :: idiag
REAL(KIND=8)
:: ro2, ratio, sf, sa, pd
INTEGER(KIND=4)
:: i, iter, ii, iton
sf = 0.D0
DO i=1, n
cx(i)=1.D0
!cx() = x_1
cy(i)=cx(i)*am(i)
!cy() = y_1
END DO
DO iter=1,nt
DO i=1,n
IF(iter.GT.1)cy(i)=ak(i)
cxx(i)=cy(i)
!cxx() = y_k
END DO
CALL solv(n, nak, ak, am, cy, cxx, idiag, sa, ro2, nfak)
DO i=1,n
ak(i)=ak(i)/(ro2)**0.5
!ak() = y_k+1
END DO
ratio=DABS(sa-sf)/DABS(sa)
IF(ratio.GT.acc)THEN
sf=sa
ELSE
DO ii=1,n
cy(ii)=cy(ii)/(ro2)**0.5
END DO
EXIT
END IF
END DO
pd=2*3.141592653589793D0/(sf)**0.5
iton=1
WRITE(*,1)iton, iter-1, pd
1 FORMAT(2X,'Mode = ',I5,'
Number of iterations = ',I5, &
'
Period = ',F10.5)
CALL write_y(nperd, iton, n, cy, pd, sf)
RETURN
END SUBROUTINE first
SUBROUTINE higher(nton, nt, acc, nperd, n, nak, ak, cx, cy, cxx, am, idiag, nfak)
IMPLICIT NONE
INTEGER(KIND=4)
:: nton, nt, nperd, n, nak, nfak
REAL(KIND=8)
:: acc
REAL(KIND=8), DIMENSION(1)
:: ak, cxx, cx, cy, am
INTEGER(KIND=4), DIMENSION(1) :: idiag
INTEGER(KIND=4)
:: iton, ii, i, j, iter
REAL(KIND=8)
:: alfa, sa, sf, pd, ro2, ratio
sf = 0.D0
DO iton=2, nton
DO ii=1,n
cx(ii)=1.D0
!cx() = x_1
END DO
DO i=1,iton-1
CALL read_y(nperd, i, n, ak, pd)
!Read ak(): {Fi}(i)
alfa=0.D0
DO j=1,n
alfa=alfa+ak(j)*am(j)*cx(j)
!{Fi}(transp)*[M]
END DO
DO j=1,n
cx(j)=cx(j)-alfa*ak(j)
!{x}(init) - SUM [ alfa*{Fi} ]
END DO
END DO
DO ii=1,n
cy(ii)=cx(ii)*am(ii)
!cy() = y_1
END DO
DO iter=1,nt
DO i=1,n
cxx(i)=cy(i)
!cxx() = y_k
END DO
CALL solv(n, nak, ak, am, cy, cxx, idiag, sa, ro2, nfak)
DO i=1,n
ak(i)=ak(i)/(ro2)**0.5
!ak() = y_k+1
IF(am(i).NE.0)THEN
cx(i)=ak(i)/am(i)
ELSE
cx(i)=0.D0
END IF
END DO
ratio=DABS(sa-sf)/DABS(sa)
IF(ratio.GT.acc)THEN
sf=sa
DO i=1,iton-1
CALL read_y(nperd, i, n, ak, pd)
alfa=0.D0
DO ii=1,n
alfa=alfa+ak(ii)*am(ii)*cx(ii) !{Fi}(transp)*[M]
END DO
DO ii=1,n
116
5
5
4
4
4
4
3
4
4
4
3
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
cx(ii)=cx(ii)-alfa*ak(ii)
!{x}(init) - SUM [ alfa*{Fi} ]
END DO
!x_k+1
END DO
DO ii=1,n
cy(ii)=cx(ii)*am(ii)
END DO
ELSE
DO ii=1,n
cy(ii)=cy(ii)/(ro2)**0.5
END DO
EXIT
END IF
END DO
pd=2*3.141592653589793D0/(sf)**0.5
WRITE(*,1)iton,iter-1,pd
1 FORMAT(2X,'Mode = ',I5,'
Number of iterations = ',I5, &
'
Period = ',F10.5)
CALL write_y(nperd, iton, n, cy, pd, sf)
END DO
RETURN
END SUBROUTINE higher
SUBROUTINE solv(n, nak, ak, am,
IMPLICIT NONE
INTEGER(KIND=4)
REAL(KIND=8)
REAL(KIND=8), DIMENSION(1)
INTEGER(KIND=4), DIMENSION(1)
REAL(KIND=8)
INTEGER(KIND=4)
REWIND (UNIT=nfak)
READ(nfak) (ak(i),i=1,nak)
CALL back(ak, cy, idiag, n)
DO i=1,n
ak(i)=am(i)*cy(i)
END DO
ro1=0.D0
ro2=0.D0
DO i=1,n
ro1=ro1+cy(i)*cxx(i)
ro2=ro2+cy(i)*ak(i)
END DO
sa=ro1/ro2
RETURN
END SUBROUTINE solv
n, nak, nfak
sa, ro2
ak, am, cy, cxx
idiag
ro1
i
::
::
::
::
::
::
::
n
aa(:)
a
imin
errorr
amin, qmax
i, j, k
1
1
1
1
ALLOCATE (aa(n),STAT=errorr)
IF(errorr.NE.0) THEN
PRINT *,' Allocation error in NIZ: aa(:)!'
STOP
END IF
1
1
1
1
1
2
3
3
3
3
qmax=1.D+030
DO i=1,n
aa(i)=a(i)
END DO
DO j=1,n
amin=qmax
DO i=1,n
IF(aa(i).LT.amin)THEN
imin(j)=i
amin=aa(i)
END IF
117
2
1
1
1
1
1
1
1
1
1
1
END DO
k=imin(j)
aa(k)=qmax
END DO
DO j=1,n
k=imin(j)
aa(j)=a(k)
END DO
DO j=1,n
a(j)=aa(j)
END DO
1
1
1
1
1
1
1
1
ALLOCATE (aa(nton),STAT=errorr)
IF(errorr.NE.0) THEN
PRINT *,' Allocation error in PRINTMOD: aa(:)!'
STOP
END IF
1
1
1
1
ALLOCATE (imin(nton),STAT=errorr)
IF(errorr.NE.0) THEN
PRINT *,' Allocation error in PRINTMOD: imin(:)!'
STOP
END IF
nres=n*ndouble
OPEN(UNIT=nperd1, FILE=inp(1:nchar) // '.pr1',STATUS='unknown', &
FORM='unformatted',ACCESS='direct',RECL=nres)
OPEN(UNIT=nwrei, FILE=inp(1:nchar) // '.eig', STATUS='unknown')
! Print the title
WRITE(nwrei,1)nton, nt, acc
1 FORMAT(//2X,'PERIODS AND MODE SHAPES OF NATURAL VIBRATIONS'// &
2X,'Number of Mode Shapes = ',I5/ &
2X,'Maximum number of iterations = ',I5/ &
2X,'Accuracy = ',F10.8/)
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
2
2
2
2
2
2
1
118
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
119
1
1
elcod(2, i) = yy(i)
END DO
1
1
1
1
1
IF(isw.EQ.1.OR.isw.EQ.2) THEN
nstre = 3
ELSE IF(isw.EQ.3) THEN
nstre = 4
END IF
ALLOCATE(dmatx(nstre, nstre), STAT=ier)
IF(ier.NE.0) STOP ' Allocation error: nstre(:,:)! '
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
4
4
3
2
1
1
1
1
1
1
1
1
2
2
2
1
120
IF(nne.EQ.3) THEN
shape1(1) = al1
shape1(2) = al2
shape1(3) = al3
deriv(1,1) = 1.D0
deriv(1,2) = 0.D0
deriv(1,3) = 0.D0
deriv(2,1) = 0.D0
deriv(2,2) = 1.D0
deriv(2,3) = 0.D0
deriv(3,1) = 0.D0
deriv(3,2) = 0.D0
deriv(3,3) = 1.D0
ELSE IF(nne.EQ.6) THEN
shape1(1)
shape1(2)
shape1(3)
shape1(4)
shape1(5)
shape1(6)
=
=
=
=
=
=
al1*(2.D0*al1-1.D0)
al2*(2.D0*al2-1.D0)
al3*(2.D0*al3-1.D0)
4.D0*al2*al3
4.D0*al3*al1
4.D0*al1*al2
deriv(1,1)
deriv(1,2)
deriv(1,3)
deriv(1,4)
deriv(1,5)
deriv(1,6)
=
=
=
=
=
=
4.D0*al1-1.D0
0.D0
0.D0
0.D0
4.D0*al3
4.D0*al2
deriv(2,1)
deriv(2,2)
deriv(2,3)
deriv(2,4)
deriv(2,5)
deriv(2,6)
=
=
=
=
=
=
0.D0
4.D0*al2-1.D0
0.D0
4.D0*al3
0.D0
4.D0*al1
deriv(3,1)
deriv(3,2)
deriv(3,3)
deriv(3,4)
deriv(3,5)
deriv(3,6)
=
=
=
=
=
=
0.D0
0.D0
4.D0*al3-1.D0
4.D0*al2
4.D0*al1
0.D0
END IF
RETURN
END SUBROUTINE sfr6
SUBROUTINE jacob6(nne, cartd, deriv, djacb, elcod, gpcod, ielem, kgasp, &
shape1)
! Purpose:
! Evaluating the Jacobian matrix and the Cartesian shape function
! derivates
! ....................................................................
! Parameters:
! cartd - Cartesian derivatives
! deriv - Derivatives of shape functions for Gaussian points
! djacb - Determinant of Jacobian matrix
! elcod - Element nodes coordinates
! gpcod - Cartesian coordinates of the Gauss points
! ielem - Actual element number
! kgasp - Integrational point counter for an element (kgasp=1,3)
! shape1 - Shape function vector for Gaussian points
! ....................................................................
IMPLICIT NONE
INTEGER(KIND=4)
:: nne, ielem, kgasp, idime, inode, &
jdime, i, j
REAL(KIND=8), DIMENSION(3,nne) :: deriv
REAL(KIND=8), DIMENSION(2,nne) :: gpcod, cartd, elcod
REAL(KIND=8), DIMENSION(nne)
:: shape1, dndg6, dnde6
REAL(KIND=8), DIMENSION(2,2)
:: xjaci, xjacm
REAL(KIND=8), PARAMETER
:: zero=0.0001D0
REAL(KIND=8)
:: djacb
1
1
2
2
2
2
1
1
1
1
1
121
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
1
2
2
2
1
DO i=1, 2
DO j=1, 2
xjacm(i,j)=0.D0
END DO
END DO
1
1
1
1
1
1
DO i=1, nne
xjacm(1,1)
xjacm(1,2)
xjacm(2,1)
xjacm(2,2)
END DO
1
1
1
1
1
1
1
1
1
2
3
3
3
2
1
1
2
2
2
2
1
1
=
=
=
=
xjacm(1,1)+dnde6(i)*elcod(2,
xjacm(1,2)-dndg6(i)*elcod(2,
xjacm(2,1)-dnde6(i)*elcod(1,
xjacm(2,2)+dndg6(i)*elcod(1,
i)
i)
i)
i)
! Jacobian determinant
djacb = xjacm(1,1)*xjacm(2,2) - xjacm(1,2)*xjacm(2,1)
IF(djacb.LT.0.D0.OR.DABS(djacb).LE.zero)THEN
WRITE(*,1) ielem
1 FORMAT(//' PROGRAM HALTED IN SUBROUTINE JACOB6',11x, &
' ZERO OR NEGATIVE AREA',/,10x,' ELEMENT NUMBER',i5)
STOP
ELSE
DO i=1,2
DO j=1,2
xjaci(i,j) = xjacm(i,j)/djacb
END DO
END DO
! Calculate cartesian derivatives
DO i=1, nne
cartd(1, i) = xjaci(1,1)*dndg6(i) + xjaci(1,2)*dnde6(i)
cartd(2, i) = xjaci(2,1)*dndg6(i) + xjaci(2,2)*dnde6(i)
END DO
END IF
RETURN
END SUBROUTINE jacob6
!
Last change: VH
11 Apr 2003
2:23 pm
! FILE:
quad489.f90
! Purpose:
Subroutines for curved isoparametric quadrilateral element
!
with 4, 8 and 9 nodes QUAD489
! Author:
Viktor HRISTOVSKI
!
SUBROUTINE stiff489 (isw, iel, nne, ngaus, em1, sni1, t, xx, yy, sk1, ijk)
! Purpose:
! Form element stiffness matrix 'sk' for QUAD489 element
! ...........................................................................
IMPLICIT NONE
INTEGER(KIND=4)
:: iel, nee, nee2, &
nn, i, nne, itype, isw, ngaus, &
j, kgasp, igaus, jgaus, k, i1, j1, ii1, jj1, &
nstre, idf, jdf
INTEGER(KIND=4), DIMENSION(nne)
:: ijk
REAL(KIND=8), PARAMETER
:: twopi=6.283185308D0
REAL(KIND=8)
:: em1, sni1, t, exisp, etasp, &
djacb, dvolu, Area
REAL(KIND=8), DIMENSION(nne*2, nne*2) :: sk1
REAL(KIND=8), DIMENSION(4)
:: posgp, weigp
REAL(KIND=8), DIMENSION(4, 4)
:: dmatx
REAL(KIND=8), DIMENSION(2, 2)
:: djacm
REAL(KIND=8), DIMENSION(9)
:: xx, yy, shape1
REAL(KIND=8), DIMENSION(2, 9)
:: cartd, deriv, elcod, gpcod
REAL(KIND=8), DIMENSION(4, 18)
:: bmatx, dbmat
1
2
2
2
1
nee2 = nne*2
DO i=1, nee2
! sk1(nne*2, nne*2)
DO j=1, nee2
sk1(i, j) = 0.D0
END DO
END DO
1
1
1
1
1
1
1
1
1
kgasp=0
IF(isw.EQ.1.OR.isw.EQ.2) THEN
nstre = 3
ELSE IF(isw.EQ.3) THEN
nstre = 4
END IF
! Gaussian integration constants
CALL gaussq(ngaus, posgp, weigp)
1
1
1
1
2
2
2
122
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
2
2
2
2
2
2
2
2
3
4
5
5
5
4
3
2
2
1
1
kgasp=kgasp+1
END DO
1
2
2
2
1
RETURN
END SUBROUTINE stiff489
SUBROUTINE gaussq(ngaus, posgp, weigp)
! Purpose:
! Seting up the Gaus-Legendre integration constants
! ....................................................................
! Parameters:
! ngaus
- Order of integration rule
! posgp() - Point positions for Gaussian integration
! weigp() - Weighting factors for Gaussian integration
! ....................................................................
IMPLICIT NONE
REAL(KIND=8), DIMENSION(1)
:: posgp, weigp
INTEGER(KIND=4)
:: ngaus, kgaus, igash, jgash
1
1
1
1
1
1
1
1
1
1
1
1
1
1
IF(ngaus.LE.2)THEN
posgp(1) = -0.577350269189626D0
weigp(1) = 1.0D0
ELSE
posgp(1) = -0.774596669241483D0
posgp(2) = 0.0D0
weigp(1) = 0.555555555555556D0
weigp(2) = 0.888888888888889D0
END IF
kgaus=ngaus/2
DO igash=1, kgaus
jgash = ngaus+1-igash
posgp(jgash) = -posgp(igash)
weigp(jgash) = weigp(igash)
END DO
RETURN
END SUBROUTINE gaussq
SUBROUTINE sfr2(deriv, nne, shape1, exisp, etasp)
! Purpose:
! Evaluating shape functions and their derivatives for linear,
! quadratic langrangian serendipity isoparametric 2D elements
! ....................................................................
! Parameters:
! deriv - Derivatives of shape functions for given ksi(p) and eta(p)
! nne - Number of element joints (4, 8, or 9)
! shape1 - Shape function vector for given ksi(p) and eta(p)
! exisp - Sampling point coordinate ksi(p)
! etasp - Sampling point coordinate eta(p)
! ....................................................................
IMPLICIT NONE
REAL(KIND=8), DIMENSION(2,9) :: deriv
REAL(KIND=8), DIMENSION(9)
:: shape1
REAL(KIND=8)
:: exisp, etasp, s, t, st, s2, t2, &
ss, tt, s1, t1, s9, t9, sst, stt, &
123
INTEGER(KIND=4)
st2
:: nne
s=exisp
t=etasp
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
IF(nne.EQ.4)THEN
st=s*t
shape1(1)=(1.D0-t-s+st)*0.25D0
shape1(2)=(1.D0-t+s-st)*0.25D0
shape1(3)=(1.D0+t+s+st)*0.25D0
shape1(4)=(1.D0+t-s-st)*0.25D0
deriv(1,1)=(-1.D0+t)*0.25D0
deriv(1,2)=(+1.D0-t)*0.25D0
deriv(1,3)=(+1.D0+t)*0.25D0
deriv(1,4)=(-1.D0-t)*0.25D0
deriv(2,1)=(-1.D0+s)*0.25D0
deriv(2,2)=(-1.D0-s)*0.25D0
deriv(2,3)=(+1.D0+s)*0.25D0
deriv(2,4)=(+1.D0-s)*0.25D0
ELSE IF(nne.EQ.8)THEN
s2=s*2.D0
t2=t*2.D0
ss=s*s
tt=t*t
st=s*t
sst=s*s*t
stt=s*t*t
st2=s*t*2.D0
shape1(1)=(-1.D0+st+ss+tt-sst-stt)*.25D0
shape1(2)=(1.D0-t-ss+sst)*0.5D0
shape1(3)=(-1.D0-st+ss+tt-sst+stt)*0.25D0
shape1(4)=(1.D0+s-tt-stt)*0.5D0
shape1(5)=(-1.D0+st+ss+tt+sst+stt)*0.25D0
shape1(6)=(1.D0+t-ss-sst)*0.5D0
shape1(7)=(-1.D0-st+ss+tt+sst-stt)*0.25D0
shape1(8)=(1.D0-s-tt+stt)*0.5D0
deriv(1,1)=(t+s2-st2-tt)*0.25D0
deriv(1,2)=-s+st
deriv(1,3)=(-t+s2-st2+tt)*0.25D0
deriv(1,4)=(1.D0-tt)*0.5D0
deriv(1,5)=(t+s2+st2+tt)*0.25D0
deriv(1,6)=-s-st
deriv(1,7)=(-t+s2+st2-tt)*0.25D0
deriv(1,8)=(-1.D0+tt)*0.5D0
deriv(2,1)=(s+t2-ss-st2)*0.25D0
deriv(2,2)=(-1.D0+ss)*0.5D0
deriv(2,3)=(-s+t2-ss+st2)*0.25D0
deriv(2,4)=-t-st
deriv(2,5)=(s+t2+ss+st2)*0.25D0
deriv(2,6)=(1.D0-ss)*0.5D0
deriv(2,7)=(-s+t2+ss-st2)*0.25D0
deriv(2,8)=-t+st
ELSE IF(nne.EQ.9)THEN
ss=s*s
st=s*t
tt=t*t
s1=s+1.D0
t1=t+1.D0
s2=s*2.D0
t2=t*2.D0
s9=s-1.D0
t9=t-1.D0
shape1(1)=0.25D0*s9*st*t9
shape1(2)=0.5D0*(1.D0-ss)*t*t9
shape1(3)=0.25D0*s1*st*t9
shape1(4)=0.5D0*s*s1*(1.D0-tt)
shape1(5)=0.25D0*s1*st*t1
shape1(6)=0.5D0*(1.D0-ss)*t*t1
shape1(7)=0.25D0*s9*st*t1
shape1(8)=0.5*s*s9*(1.D0-tt)
shape1(9)=(1.D0-ss)*(1.D0-tt)
deriv(1,1)=0.25D0*t*t9*(-1.D0+s2)
deriv(1,2)=-st*t9
deriv(1,3)=0.25D0*(1.D0+s2)*t*t9
deriv(1,4)=0.5D0*(1.D0+s2)*(1.D0-tt)
deriv(1,5)=0.25D0*(1.D0+s2)*t*t1
deriv(1,6)=-st*t1
deriv(1,7)=0.25D0*(-1.D0+s2)*t*t1
deriv(1,8)=0.5*(-1.D0+s2)*(1.D0-tt)
deriv(1,9)=-s2*(1.D0-tt)
deriv(2,1)=0.25D0*s*s9*(-1.D0+t2)
deriv(2,2)=0.5D0*(1.D0-ss)*(-1.D0+t2)
deriv(2,3)=0.25D0*(-1.D0+t2)*s*s1
deriv(2,4)=-st*s1
deriv(2,5)=0.25D0*(1.D0+t2)*s*s1
deriv(2,6)=0.5D0*(1.D0-ss)*(1.D0+t2)
deriv(2,7)=0.25D0*(1.D0+t2)*s*s9
deriv(2,8)=-st*s9
deriv(2,9)=-t2*(1.D0-ss)
END IF
RETURN
END SUBROUTINE sfr2
SUBROUTINE jacob2(cartd, deriv, djacb, elcod, gpcod, ielem, kgasp, &
124
nne, shape1)
! Purpose:
! Evaluating the Jacobian matrix and the Cartesian shape function
! derivates
! ....................................................................
! Parameters:
! cartd - Cartesian derivatives
! deriv - Derivatives of shape functions for Gaussian points
! djacb - Determinant of Jacobian matrix
! elcod - Element nodes coordinates
! gpcod - Cartesian coordinates of the Gauss points
! ielem - Actual element number
! kgasp - Element Gauss point counter (kgasp=1, ngaus*ngaus)
! nne
- Number of element joints (4, 8, or 9)
! shape1 - Shape function vector for Gaussian points
! ....................................................................
IMPLICIT NONE
REAL(KIND=8), DIMENSION(2,9) :: cartd, deriv, elcod, gpcod
REAL(KIND=8), DIMENSION(9)
:: shape1
REAL(KIND=8), DIMENSION(2,2) :: xjaci, xjacm
REAL(KIND=8), PARAMETER
:: zero=0.0001D0
REAL(KIND=8)
:: djacb
INTEGER(KIND=4)
:: nne, ielem, kgasp, idime, inode, &
jdime
1
1
2
2
2
2
1
1
2
2
3
3
3
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
3
4
4
4
4
3
2
1
1
1
1
1
1
1
ngash=0
DO inode=1, nne
mgash=ngash+1
ngash=mgash+1
bmatx(1, mgash)=cartd(1, inode)
bmatx(1, ngash)=0.D0
125
1
1
1
1
1
2
2
2
2
1
1
bmatx(2,
bmatx(2,
bmatx(3,
bmatx(3,
mgash)=0.D0
ngash)=cartd(2, inode)
mgash)=cartd(2, inode)
ngash)=cartd(1, inode)
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
! Plane-stress
const=young/(1.D0-poiss*poiss)
dmatx(1,1)=const
dmatx(2,2)=const
dmatx(1,2)=const*poiss
dmatx(2,1)=const*poiss
dmatx(3,3)=(1.D0-poiss)*const*0.5D0
ELSE IF(isw.EQ.2)THEN
! Plane-strain
const=young*(1.D0-poiss)/((1.D0+poiss)*(1.D0-2.D0*poiss))
dmatx(1,1)=const
dmatx(2,2)=const
dmatx(1,2)=const*poiss/(1.D0-poiss)
dmatx(2,1)=const*poiss/(1.D0-poiss)
dmatx(3,3)=(1.D0-2.D0*poiss)*const*0.5D0/(1.D0-poiss)
ELSE IF(isw.EQ.3)THEN
! Axisimmetry
const=young*(1.D0-poiss)/((1.D0+poiss)*(1.D0-2.D0*poiss))
conss=poiss/(1.D0-poiss)
dmatx(1,1)=const
dmatx(2,2)=const
dmatx(3,3)=const*(1.D0-2.D0*poiss)*0.5D0/(1.D0-poiss)
dmatx(1,2)=const*conss
dmatx(1,4)=const*conss
dmatx(2,1)=const*conss
dmatx(2,4)=const*conss
dmatx(4,1)=const*conss
dmatx(4,2)=const*conss
dmatx(4,4)=const
END IF
RETURN
END SUBROUTINE modps
1
2
2
3
3
126
3
3
2
1
END DO
END DO
END DO
RETURN
END SUBROUTINE dbe
SUBROUTINE linear(cartd, dmatx, eldis, nne, nstre, isw, stran, kgasp, gpcod, &
shape1)
! Purpose:
! This subroutine evaluates stresses and strains assuming linear
! elastic behaviour
! ....................................................................
! Parameters:
! cartd - Cartesian derivatives
! dmatx - [D] matrix
! eldis - Element displacement matrix
! nne
- Number of element joints (4, 8, or 9)
! nstre - The number of independent stress components for the application:
!
= 3, Plane stress/strain;
!
= 4, Axial symmetry.
! isw
- Problem type parameter:
!
= 1, Plane stress,
!
= 2, Plane strain,
!
= 3, Axial symmetry
! poiss - Poisson's coefficient
! stran - Linear strains
! kgasp - Element Gauss point counter (kgasp=1, ngaus*ngaus)
! gpcod - Cartesian coordinates of the Gauss points
! shape1 - Shape function vector for given ksi(p) and eta(p)
! ....................................................................
IMPLICIT NONE
INTEGER(KIND=4)
:: nne, nstre, isw, idf, jdf, ind, &
istre, jstre, kgasp
REAL(KIND=8), PARAMETER
:: eps0 = 1.D-5
REAL(KIND=8), DIMENSION(2,2)
:: agash
REAL(KIND=8), DIMENSION(2,9)
:: cartd, eldis, gpcod
REAL(KIND=8), DIMENSION(nstre,nstre) :: dmatx
REAL(KIND=8), DIMENSION(nstre)
:: stran
REAL(KIND=8), DIMENSION(9)
:: shape1
REAL(KIND=8)
:: poiss, bgash
1
2
2
3
3
3
2
2
1
DO idf=1, 2
DO jdf=1, 2
bgash = 0.D0
DO ind=1, nne
bgash = bgash+cartd(jdf, ind)*eldis(idf, ind)
END DO
agash(idf, jdf) = bgash
END DO
END DO
1
1
2
3
3
3
2
1
N = t[
y _ ex1 + y1
M = t[
2
y _ ex1 + y1
2
a1 +
y1 + y 2
a1 t1 +
2
y1 + y 2
2
a2 +
y 2 + y3
a 2t2 +
(a 3 + a 4 ) +
y 2 + y3
2
(12.1)
127
y3 + y4
(a 3 + a 4 ) t 3 +
a5 +
y3 + y 4
2
y _ ex 2 + y 4
a5t 4 +
a6]
y _ ex 2 + y 4
2
a6t5 ]
where
t thickness of the structure
yi stresses in y direction obtained in integration points of the elements
y_exi extrapolated stresses in y direction
For the case of critical sections in the wall, the same procedure could be applied, however,
alternatively it is better to deal directly with stresses in integration points, using the Rankine Criterion
(Maximum Tensile-Stress Criterion):
f ( I1 , J 2 , ) = 2 3 J 2 cos + I1 3 f t = 0
(12.2)
where ft is the tensile strength of the concrete, and I1, J2 and are first invariant of stress tensor,
second invariant of stress deviator tensor and angle of similarity, respectively. These variables can be
obtained using the following expressions for plane-stress case:
1
( x + y )
3
d1 = x m
m =
d2 = y m
d 3 = xy
d 4 = m
(12.3)
I1 = 3 m
1 2
d1 + d 22 + d 42
2
2
J3 = d4 d4 J 2
J 2 = d 32 +
cos =
3 3 J3
3
2
J 22
So, if the above function f ( I1 , J 2 , ) is less than zero, it means that there is not cracking in
the considered point. If this function is equal or greater than zero it indicates that cracking occur, so
that appropriate reinforcement should be placed. The function f ( I1 , J 2 , ) in fact represents the first
principal stress in the considered point:
f ( I1 , J 2 , ) = 1
(12.4)
For case of plane-strain and axisymmetry, the same equations can be applied with slight
modifications regarding the following variables, as follows:
1
( x + y + z )
3
d4 = z m
m =
(12.5)
This criterion is practical for such materials like concrete and rock, i.e. for brittle materials
with small tensile strength. However, for ductile materials, like steel, Von Mises criterion is more
appropriate. This criterion can be expressed, as follows:
f (J 2 ) = J 2 k 2 = 0
where:
128
(12.6)
k=
sy
3
(12.7)
J2
f ( I1 , J 2 , ) = I1 sin + J 2 sin + +
cos + sin c cos = 0
3
3
3
3
129
(12.8)
130
CHAPTER 13
Ku = r
(13.1)
where K is the stiffness matrix, u is the displacement vector, and r is the load vector of the finite
element system.
These procedures for equations solution are also important, because they are the basis of the
algorithms employed for eigensolutions and direct step-by-step integrations during dynamic analysis.
Although we consider explicitly in this chapter the solution of the equilibrium equations that
arise in the analysis of solids and structures, the techniques are quite general and are entirely and
directly applicable to all those analyses that lead to symmetric (positive definite) coefficient matrices.
131
Essentially, there are two different classes of methods for the solution of the equations: direct
solution techniques and iterative solution methods. In a direct solution the equations in (13.1) are
solved using a number of steps and operations that are predetermined in an exact manner, whereas
iteration is used when an iterative solution method is employed. At present, direct techniques are
employed in most cases, but for large systems iterative methods can be much more effective.
0 U 1 0
5 4 1
4 6 4 1 U 1
2 =
1 4 6 4 U 3 0
1 4 5 U 4 0
0
(13.2)
In this case the stiffness matrix K corresponds to a simply supported beam with four
translational degrees of freedom, a shown in Fig. 13.1. These equations have been derived by finite
differences, but in this case, they have the same properties as in finite element analysis.
Let us first consider the basic mathematical operations of Gauss elimination. We proceed in
the following systematic steps:
Step 1:Subtract a multiple of the first equation from the second and third equations to obtain
zero elements in the first column of K. This means that 4/5 times the first row is subtracted from the
second row, and 1/5 times the first row is subtracted from the third row. The resulting equations are
4
1
0 U 1 0
5
0 14 5 16 5 1 U 1
2 =
0 16 5 29 5 4 U 3 0
1
4
5 U 4 0
0
(13.3)
Step 2: Considering next the equations in (13.3), subtract 16/14 times the second equation
from the third equation and 5/14 times the second equation from the fourth equation. The resulting
equations are
1
0 U 1 0
5 4
0 14 5 16 5
1 U 2 1
0
0
15 7 20 7 U 3 8 7
20 7 65 14 U 4 5 14
0
0
(13.4)
Step 3: Subtruct 20/15 times the third equation from the fourth equation in (13.4). This gives
132
1
0 U 1 0
5 4
0 14 5 16 5
1 U 2 1
=
0
0
15 7 20 7 U 3 8 7
0
0
5 6 U 4 7 6
0
(13.5)
Using (13.5), we can now simply solve for the unknows U4, U3, U2, and U1:
7
U4 = 6 =
5
5
6
8 ( 20 7)U
4
12
U3 = 7
=
15 7
5
1 (16 5)U 3 (1)U 4 13
U2 =
=
14 5
5
0 (4)13 (1)12 (0) 7
5
5
5 =8
U1 =
5
5
(13.6)
Fig. 13.1 Stiffness matrices and load vectors considered in the Gauss elimination solution of the
simply supported beam
133
0 U 1 0
5 4 1
4 6 4 1 U 0
2 =
1 4 6 4 U 3 0
1 4 5 U 4 0
0
(13.7)
5U 1 4U 2 + U 3 = 0
4
1
U1 = U 2 U 3
5
5
(13.8)
1
4
4 U 2 U 3 + 6U 2 4U 3 + U 4 = 0
5
5
1
4
U 2 U 3 4U 2 + 6U 3 4U 4 = 0
5
5
U 2 4U 3 + 5U 4 = 0
(13.9a)
14 5 16 5 1 U 2 0
16 5 29 5 4 U = 0
3
1
4
5 U 4 0
(13.9)
Comparing (13.9) and (13.3), we observe that the coefficient matrix in (13.9) is actually the
lower right 3 x 3 submatrix of the coefficient matrix in (13.3). However, we obtained the coefficient
matrix of (13.9) by using (13.7) and the condition in (13.8), which expresses that no force is applied at
the degree of freedom 1 of the beam. It follows that the coefficient matrix in (13.9) is, in fact, the
stiffness matrix of the beam that corresponds to the degrees of freedom 2,3 and 4 when no force is
applied at the degree of freedom 1, i.e., when the degree of freedom 1 has been "released" (or
"statically condensed out"). By the same reasoning, we have obtained in (13.4) the stiffness matrix of
the beam when the first two degrees of freedom have been released; and in (13.5), the element (4,4) of
the coefficient matrix represents the stiffness matrix of the beam corresponding to degree of freedom
4, when the degrees of freedom 1,2, and 3 have all been released. These stiffness matrices are given in
Figs. 13.1 (b) to (d).
134
equations. The dimension of A( ) is nak, the sum of the "column heights". The column height is the
number of terms in a column beginning with the first nonzero term and ending with the diagonal term.
K11
A1 A2
A6
A3 A4 A7
A5 A8
A12
A9 A10 A13
A11 A14
A18
A15 A16 A19
A17 A20
A21
Fig. 13.2 Compacted column storage scheme for the stiffness matrix
According to the Fig. 13.2, for this stiffness matrix n=8, nak=21 and idiag( )=(1, 3, 5, 9, 11,
15, 17, 21). The zero terms beneath the skyline must be stored because they become nonzero during
the factorization process.
The heights of the columns in K are determined by subroutine COLHT (see FEM3 program,
on page 113).
Crout Elimination
The procedure used for performing the factorization of the left-hand-side matrix is called
Crout elimination, a convenient variant of Gauss elimination.
Derivation of the computational formulas for Crout elimination is the following:
Let us write the system of equations to be solved:
Ax = b
135
(13.10)
(1 i j )
Aij = U ki DkkU kj
k =1
where U ii = 1,
U ij = 0,
(13.11)
for i > j
Expanding the above for j=1,2,,n , usefulformulas for programming may be derived, as
follows:
i 1
L ji = Aij U ki L jk
(1 i
j 1)
k =1
U ij = L ji / Dii
(13.12)
j 1
D jj = A jj L jiU ij
i =1
This is the procedure coded in subroutine FACTOR (see FEM3 pogram, on page 111).
Additionally, FACTOR takes account of the profile storage of the coefficient matrix.
The indicial form of the forward reduction is
n
U
i =1
z = bj
(13.13)
ij i
z j = b j U ij zi ,
(2
j n)
(13.14)
i =1
This procedure is coded in subroutine BACK, which takes into account the profile storage of
the stiffness matrix.
Diagonal scaling is also performed in subroutine BACK:
The indicial form of the back substitution is
Expanding this expression, we finaly obtain
136
APPENDIX 1
Bibliography
[1] K. J. Bathe, "Finite Element Procedures", Prentice Hall, 1996
[2] J. N. Reddy, "An Introduction to the Finite Element Method", 1993
[3] O. C. Zienkiewicz and R. L. Taylor, "The Finite Element Method", 4th edition, Vol. I, 1989
137
138
APPENDIX 2
139
The proposed model based on hypo-elasticity uses the equivalent uniaxial strain formulation for
bi-axial stress-strain state (Ref. [5]). The principal stresses and strains are allowed to rotate in coaxial
directions during the loading process that is necessary condition for satisfying the form invariance of
the crack-induced orthotropic material behavior. From this condition, the tangent shear stiffness of the
cracked material can be determined, as follows:
GT =
1 2
2( 1 2 )
(1)
In Eq.(1), 1 and 2 are the principal stresses, and 1 and 2 are principal strains. In the cases
where a large rotation is expected (as in the analysis of beam-column joints), control of this rotation
becomes necessary in order to prevent numerical instabilities during calculation of the equivalent
uniaxial strains. Therefore, according to Noguchi (Ref. [5]), the improved accuracy is provided by
transformation of the principal axes in case when the rotation relating to the original state becomes
greater than 45 degrees.
The stress-update scheme is based on the hypo-elastic incremental formulation, where the
incremental stresses in each integration point of the finite elements can be calculated as follows:
d n +1 = C T d n +1
(2)
Here, dn+1 and dn+1 are actual incremental stresses and strains, while CT is the material elasticity
matrix, which depends on the previous state of the equivalent uniaxial strain functions u. All the
quantities in Eq. (2) are related to the global coordinate system. According to the equivalent uniaxial
strain definition, the increments of these functions du can be related to the increments of the strains in
principal directions dp using the following equation (with being Poissons ratio, and E1 and E2
tangent moduli in principal directions):
1
1
d u =
1 2 E1
E2
E2
E1
d
p
1
(3)
During cracking, the modulus of elasticity in the direction normal to the crack becomes zero.
Hence, in order to avoid numerical instability, the ratios E1/E2 and E2/E1 in Eq. (3), according to
Noguchi (Ref. [5]), have been set unity. Since the material axes rotate (with angle ), an appropriate
transformation should be done regarding the material elasticity matrix CT and the strain and stress
vectors, as follows:
p = S( )
(4)
p = T( )
(5)
where:
cos 2
sin 2
cos sin
2
2
cos
cos sin
S( ) = sin
2 cos sin 2 cos sin cos 2 - sin 2
140
(6)
cos 2
sin 2
2 cos sin
2
2
cos
2 cos sin
T( ) = sin
cos sin cos sin cos 2 - sin 2
(7)
In Eqs. (4) and (5), the strain and stress vectors with subscript p are related to the principal directions. The vectors without subscripts are related to the global x-y
coordinate system. The relation between the material elasticity matrix in principal and in global coordinates can be expressed as follows:
C T = T( )C p S( )
(8)
The ultimate surface adopted in the model is based on the Kupfers (Ref. [6]) yield curve for biaxial stresses, taking into account the influence of the strength reduction of cracked concrete in
compression, according to Noguchi (Ref. [7]). Hence, particularly, for the combination of stresses
tension-compression, when tension strain is greater than cracking strain, the following expressions
are used:
c2 =
fc
0.27 + 0.96 u1
cu
0.167
fc
(9a)
c1 = c2
(9b)
In Eqs. (9a) and (9b), c1 and c2 are ultimate stresses in principal directions, fc < 0 is uniaxial
concrete strength in compression, u1 > 0 and cu < 0 are equivalent uniaxial strain function in principal
direction 1 (in tension) and uniaxial strain in compression for the corresponding strength fc,
respectively. Once the equivalent uniaxial strains have been updated using the Eq. (3), the
corresponding equivalent uniaxial stresses u1 and u2 in principal directions can be found by the
Saenzs uniaxial relation (Ref. [8]) for the case of equivalent uniaxial strains in compression, or by
tension-stiffening function proposed by Shirai (Ref. [9]), in the case of tension. The Shirais tensionstiffening function is expressed as follows:
(10a)
(10b)
The adopted constitutive relations for concrete are shown in Fig. 1. In Eqs. (10a) and (10b) ft > 0
is the concrete uniaxial tension
Shirai [9]: Eqs. (10) strength, cr is a concrete
cracking strain and m is a
tension strain for zero stresses
(adopted in the analyses: m
Saenz [8]:
E o u2
u2 =
=20 cr). Once u1 and u2
2
u2 u2
c2
have been found, the total
1 + (E o
2)
+
c2 c2
c2
corrected stress vector n+1
can be calculated directly by
using transformation from local
(principal)
into
global
Fig.1 Adopted constitutive relations for concrete
coordinate system.
In this model, the smeared reinforcement approach has been adopted for modeling of reinforcing
bars, assuming perfect bond between the steel and the concrete.
1.2.2
Apart from taking into account the normal cracking mode, as described in the previous chapter,
the slippage has also been treated within this hypo-elastic smeared-crack and smeared-reinforcement
141
formulation. The discussed algorithm is based on the approach recently proposed by Vecchio
(Refs.[10, 11]), using the Walravens formulation (Ref. [1]) of the shear-slip relationship for the
cracked surfaces, as follows:
1.8 w
-0.8
c
+ (0.234 w 0.707 0.2) f cc
(11)
In Eq. (11), is the tangential slip along the crack (in mm), w is the crack width (in mm), fcc is
the cube concrete compressive strength (in MPa) and c is the shear stress acting along the crack (in
MPa). According to assumptions of the adopted model, the shear stress c along the cracks should be
equal to zero, since the direction of the material axes are assumed to be identical to the principal axes.
However, due to the aggregate interlock influence, which is taken into account within the Eq. (11), as
well as due to the local equilibrium conditions between the forces in reinforcement and concrete along
the crack surface (Fig. 2), the existence of shear stresses becomes reality so that, according to Vecchio
(Ref. [10]) it can be calculated, as follows:
n
(12)
i =1
In Eq. (12), i is the reinforcement ratio of the i-th reinforcement (with the direction i related to
the global x-axis) crossing the crack, while i is the difference between angle of the principal direction
1 and angle of the reinforcement direction i. Functions fs,cr,i and fs,,i are local stress (at the analyzed
crack) and the average stress in reinforcement (in the integration point of the actual finite element),
Using the Eq. (11), the shear angle s
respectively.
can be found as follows:
s =
(13)
w = 1u s
slip
(14)
1
sin 2
1
= = s sin 2
2
cos 2
s
x
s
y
s
xy
(15)
In order to establish an incremental relation, the incremental strains due to shear-slip should be calculated from the actual (
follows:
slip
) and previous (
slip,p
) strains, as
(16)
Finally, the additional unbalanced stresses dslip can be calculated according to the following
incremental relation:
142
d slip = C T d slip
(17)
In Eq.(12) the values of the local forces in reinforcing bars fs,cr,i can be calculated using iterative
numerical procedure based on Newton-Raphson method, assuming that the local strains s,cr,i in bars
can be found from the average strains s,i and the strain increment 1,cr resulting from the cracking, as
follows:
(18)
(19)
i =1
The integral algorithm including both cracking modes has been implemented into the original
software package FELISA/3M.
1.3 Numerical Implementation And Verification
The FEM based software package FELISA/3M with the included previously described constitutive
models offers possibilities of performing non-linear progressive failure analysis of reinforced concrete
members and structures. Verification of the models has been done using the results from experiments
conducted on samples of reinforced concrete columns, beams and shear-walls, recommended for
model verification by Japan Concrete Institute (JCI) (Ref. [3]) and Architectural Institute of Japan
(AIJ) (Ref. [4]). Within this paper, the results from the analysis of one column and four shear-wall
specimens are given.
1.3.1 JCI Shear-Wall Specimens #1 and #1
The JCI shear-wall specimens #1 and #1 (tested by Aoyama et al.) consist of heavily reinforced
base and top spreader beams for the purpose of the load transfer, as well as of the columns with t=20
cm, cast integrally with the walls t=10 cm. The both specimens have the same material properties and
the same amount of reinforcement (see Tab. 1) with only difference in the columns cross sections. As
observed experimentally (specimens were subjected to reversed cyclic loading), the failure
mechanisms included flexural cracking of the tensioned columns, shear-tension failure of the walls
and crushing of the compressed columns. As can be seen in the Figs. 3 and 4, the performed FE nonlinear analyses for both specimens have shown that the integral models including both cracking modes
(see curves w) resulted in better agreement with experiments, especially regarding the stiffness and
strength, than the basic models with included only the normal cracking mode (curves w/o). The
experimentally measured maximum forces of 1650 kN and 1410 kN for the #1 and #1 specimens,
respectively have been correctly simulated by analytically obtained values of 1638 kN (#1) and 1378
kN (#1) using the integral model. Also, the failure mechanisms have been well simulated. However,
the discrepancy regarding the displacements still exists, probably due to the experimentally observed
slip on the boundaries between the parts with different thickness that has not been considered in the
model. The general impression is that for both specimens, very obvious and reasonable softening
tendency has been analytically observed owning to the inclusion of the tangential crack mode into the
concrete constitutive model.
1.3.2 JCI Column Specimen No. 1
The basic geometry of the JCI column specimen No.1 (tested by Kokusho et al.) is given in Fig. 5,
and the properties of the used concrete and steel are given in Tab. 2. According to the experimental
observations, the specimen failed in non-ductile diagonal tension failure mode, without yielding of the
reinforcement (see EXP in Fig. 5). The performed monotonic loading progressive failure analyses
using both models with (w) and without (w/o) inclusion of the tangential cracking mode have
143
resulted into relatively correct simulation of the stiffness. Regarding the capacity and ductility, the
integral model with included tangential crack mode has shown to be more appropriate than basic
model taking into account only the normal cracking mode ( see analytically obtained force displacement diagrams in Fig.5). The maximum experimentally observed force of 121 kN has been
successfully simulated by the integral model, obtaining 121.4 kN. Unlike the previous example (shear
specimens #1 and #1), where the inclusion of the tangential cracking mode led to softened response
due to the additional slippage deformations along the cracks, in this case, as the comparative analyses
between the used models have shown, the contribution of the aggregate-interlock mechanism in
diagonal cracks has resulted into increased overall structural capacity.
Tab. 1 Material properties of the JCI Shear Wall Specimens Wall#1 and Wall#1
JCI Shear Wall Specimens Wall#1 and Wall#1
Zone
Thickness
Horizontal reinforcement
[m]
Diameter
y[MPa]
1
0.30
6-D29
400
2
0.20
2D6/5 cm
399
3
0.10
2-D6/7.5 cm
362
4
0.30
6-D29
400
+ 3-D22
Es = 210 GPa
Vertical Reinforcement
Diameter
y[MPa]
2-D10/10 cm
353
12-D13
368
2-D6/7.5 cm
362
2-D10/10 cm
353
Concrete
fc = 29.7 MPa
ft= 2.36 MPa
Ec = 23.4 GPa
Fig.3 JCI Specimen #1: Geometry and comparison of analytical (w with shear-slip
effects, w/o without shear slip effects) and experimental (EXP) F-D diagrams
1.3.3 AIJ Shear-Wall Specimens W2BF-N0 and W2BF-N1
The geometry and the material properties of the 2-story shear-wall specimens W2BF-N0 and
W2BF-N1 (tested by Shibata et al. [4]) are given in Figs. 6 and 7 and Tab. 3. As can be seen, the
concrete strength and the axial force level were the only differences between these two specimens
subjected to cyclic loading. As experimentally observed, the first specimen W2BF-N0 failed in
tension-flexural mode of the columns, however in limited ductile manner due to the lack of axial
force resulting in slip- page along the rigid base. Since, the influence of the slippage between the parts
with different thickness has not been considered into the constitutive models, the analytically obtained
force-displacement curves for this specimen have shown larger capacity (160.2 kN, compared with the
experimentally obtained maximum force of 147 kN) as well as lower ductility, as can be seen in Fig.
6. However, regarding the stiffness, good correlations have been obtained. The second specimen
W2BF-N1, due to the presence of axial force of N=108 kN preventing the slippage relative to the base,
failed in much more ductile manner in predominant flexural mode. This behavior has been
144
successfully analytically simulated, as shown in Fig. 7. The maximum experimentally measured base
force of 213 kN has been analytically simulated by 227.5 kN using the integral model (curve w).
Generally, due to the dominant influence of the normal (bending) cracking mode for both specimens,
the comparative analyses using the both basic and integral models have not shown a significant
difference, resulting in a reasonable agreement with the experiments.
Fig.4
JCI Specimen #1: Geometry and comparison of analytical (w with shearslip effects, w/o without shear slip effects) and experimental (EXP) F-D
diagrams
Tab. 2
Concrete
fc [MPa]
21.2
ft [MPa]
1.83
Ec [GPa]
20.9
1.4 Conclusions
Hypo-elastic FEM based models for non-linear progressive failure analysis of reinforced concrete
members have been discussed, considering the effects of rotation of the material (and principal) axes
(Ref. [5]), the tension-stiffening due to the normal (bending) cracking mode (Shirais equation, Ref.
[9]) and the influence of the shear-slip mechanism (Refs. [1, 10, 11]). The compressive behavior of
concrete has been simulated using the Saenzs equation (Ref. [8]) with included effects of reduction of
the compressive strength of cracked concrete according to Noguchi (Ref. [7]). The proposed models
have been comparatively studied and implemented into the original software package for non-linear
analysis of reinforced concrete structures FELISA/3M. The model including only the normal cracking
mode has shown to be appropriate for the case of members with basically flexural and mixed failure
modes. However, the integral model including both cracking modes has shown to be significant for
correct simulation of the failure progress for members with predominant shear behavior. Two
tendencies have been observed: For the members failing in premature brittle manner without yielding
of reinforcement, the inclusion of the aggregate interlock mechanism has resulted in increased shear
capacity. On the other hand, for the cases of more ductile members, the developed shear deformations
have contributed in decreasing the capacity. As recommendation for future work, the influence of the
145
slippage between the parts of the specimens with different thickness should be considered, as it can
significantly improve the overall force-displacement prediction.
ACKNOWLEDGMENTS
The authors express appreciations to the Japan Concrete Institute (JCI), as well as to the
Architectural Institute of Japan (AIJ) for the opportunity of using the selected and recommended
specimens for the model verification. Also, the authors would like to express their appreciations to the
Japan Society for the Promotion of Science (JSPS) that supported this research through the Postdoctoral Fellowship Program for Foreign Researchers.
Tab. 3 Material properties of the AIJ Shear Wall Specimens W2BF-N0 and W2BF-N1
JCI 2-Story Shear Wall Specimens W2BF-N0 and W2BF-N1
Zone
Thickness
Horizontal Reinforcement
Vertical Reinforcement
[m]
Diameter
Es [GPa]
Diameter
Es [GPa]
y[MPa]
y[MPa]
1
0.35
8-D19
575
181
2-D10/10 cm
381
175
2
0.15
2-4 /5 cm
387
167
4-D10
381
175
3
0.15
4-D10
381
175
387
167
2-4/5 cm
4
0.15
4-D10
381
175
387
167
2-4/5 cm
5
0.05
4 /10 cm
375
177
375
177
4/10 cm
6
0.04
4 /10 cm
375
177
375
177
4/10 cm
Concrete: fc = 28.0 (30.0) MPa, ft= 1.746 (1.807) MPa, Ec = 24.7 (24.7) GPa
REFERENCES
[1]
146
Fig.5 JCI Column Specimen No.1: Geometry and comparison of analytical (w with shear-slip
effects, w/o without shear slip effects) and experimental (EXP) F-D diagrams
Fig.6 AIJ 2-Story Shear-Wall Specimen W2BF-N0: Geometry and comparison of analytical (w
with shear-slip effects, w/o without shear slip effects) and experimental (EXP) F-D
diagrams
147
Fig.7 AIJ 2-Story Shear-Wall Specimen W2BF-N1: Geometry and comparison of analytical (w
with shear-slip effects, w/o without shear slip effects) and experimental (EXP) F-D
diagrams
Cracking is one of the largest contributors to the non-linear behavior of reinforced concrete
structures. In spite of its discontinuity nature, simulation of this phenomenon has been often conducted
using smeared models, due to their simplicity and convenient implementation into finite element
analysis programs. In this paper, smeared crack models based on hypo-elasticity are discussed, taking
into account both normal and tangential cracking modes that appear as a result of the normal tensile
stresses acting perpendicularly to the crack plane and the local shear stresses acting along the crack
plane, respectively. Using selected specimens recommended for model verification, the particular
contribution of each cracking mode has been comparatively considered, finding reasonable agreement
between the analyses and tests. The inclusion of the influence of the tangential mode via the proposed
shear-slip model has shown to be important for better simulation of the behavior of RC members with
emphasized shear type of failure.
2.2 Smeared rotating-crack model
The proposed crack model for the normal mode is based on hypo-elasticity, as described in Ref.
[1]. The principal stresses and strains are allowed to rotate in coaxial directions during the loading
process, satisfying the form invariance condition. From this condition, the tangent shear stiffness in
the cracked material can be determined, as follows:
GT =
1 2
2( 1 2 )
(1)
rotation is expected (as in the analysis of beam-column joints), control of this rotation becomes
necessary in order to prevent numerical instabilities during calculation of the equivalent uniaxial
strains. Therefore, according to Noguchi (Ref. [1]), the improved accuracy is provided by
transformation of the principal axes in case when the rotation relating to the original state becomes
greater than 45 degrees. This can be expressed, as follows:
bo =| new o |
148
(2a)
b1 =| new old |
(2b)
In Eqs. (2a) and (2b), o, ld, new are initial, previous and current angle of the principal axis 1, related
to global x-axis, respectively. If bo > 45o or b1 > 45o then a transformation of axes is needed in such a
way that the stresses, strains and stiffness regarding the axis 1 are substituted to the same respective
quantities related to axis 2 and vise versa.
The ultimate surface adopted in the model is based on the Kupfers yield curve for bi-axial stresses
(Ref. [2]), taking into account the influence of the strength reduction of cracked concrete in
compression, according to Noguchi et al. (Ref. [3]). Hence, particularly, for the combination of
stresses tension-compression, when tension strain is greater than cracking strain, the following
expressions are used:
fc
c2 =
0.27 + 0.96 u1
cu
c1 = c2
(3b)
0.167
fc
(3a)
In Eqs. (3a) and (3b), c1 and c2 are ultimate stresses in principal directions, fc is uniaxial concrete
strength in compression, u1 and cu are equivalent uniaxial strain function in principal direction 1 (in
tension) and uniaxial strain in compression for the corresponding strength fc, respectively. The
constitutive relation of concrete for compression is based on the equation of Saenz (Ref. [4]). Tensionstiffening effect during cracking has been taken into account using the Shirais function (Ref. [5]), as
follows:
(4a)
(4b)
In Eqs. (4a) and (4b) ft is concrete uniaxial tension strength, cr is a concrete cracking strain and m is
a tension strain for zero stresses (adopted in the analyses: m =20 cr). In this model, the smeared
reinforcement approach has been adopted for modeling of reinforcing bars using elastic-plastic
constitutive model, assuming perfect bond between the steel and the concrete.
2.3 Smeared shear-slip model
Apart from taking into account the normal cracking mode, as described in the previous chapter,
the slippage has also been treated within this smeared-crack and smeared-reinforcement formulation.
The discussed algorithm is based on the approach recently proposed by Vecchio (Ref. [6]), using the
Walravens formulation (Ref. [7]) of the shear-slip relationship for the cracked surfaces, as follows:
1.8 w
-0.8
c
(5)
+ (0.234 w 0.707 0.2) f cc
In Eq. (5), is tangential slip along the crack (in mm), w is crack width (in mm), fcc is cube concrete
compressive strength (in MPa) and c is local shear stress acting along the crack (in MPa). According
to Vecchio (Ref. [6]) this local shear stress can be calculated using local equilibrium conditions in the
crack plane, as follows:
n
(6)
i =1
In Eq. (6), i is the reinforcement ratio of the i-th reinforcement (with the direction i related to the
global x-axis) crossing the crack, while i is the difference between angle of the principal direction 1
and angle of the reinforcement direction i. Functions fs,cr,i and fs,i are local stress (at the analyzed
crack) and the average stress in reinforcement (in the integration point of the actual finite element),
respectively. The basic idea of the concept is to find the incremental strains due to slippage dslip and
to calculate resulting unbalanced stresses dslip as follows:
d slip = C T d slip
(7)
149
Verification of the models has been done using the results from experiments conducted on
samples of reinforced concrete columns, beams and shear-walls, recommended for model verification
by Japan Concrete Institute (JCI) and Architectural Institute of Japan (AIJ). Within this paper, the
comparative results from the analyses of the JCI shear-wall specimen #3 (corresponding to W7502
tested by Ono et al. 1976, Ref. [8]) are given (see Fig. 1). According to the experimental observations,
this specimen failed in shear mode, after developing large bending plastic deformation. Also, the
compressive failure together with shear-slip failure along the contact zone between the wall and the
base structure occurred. In addition, the large plastic strain of reinforcing bars was observed.
Fig. 1 Geometry of the JCI shear-wall specimen #3 and comparison of the obtained force-displacement
diagrams: experimental curve (EXP), analytical curve without shear-slip mode (w/o), analytical
curve including effects of shear-slip mode (w)
The material properties of the analyzed specimen are given in Table 1. The finite element mesh of
the analytical model consists of 164 isoparametric elements with 8 nodes using 3x3 Gaussian
integration scheme. As can be seen in Fig. 1, the analytical simulations have predicted the forcedisplacement diagrams correctly, as to the capacity and ductility. It should be noted that the analytical
results only up to the peak capacities are here presented, although the computations continued further,
following the descending branch of the force-displacement diagrams. The other aspects of the
behavior have also been well simulated: the failure progress mechanisms, crack patterns, stress states
in concrete and yielding of the reinforcement. However, the analytically obtained initial stiffness has
been greater than experimental one, because the influence of the slippage between the parts with
different thickness has not been taken into account in the model.
Table 1 Material properties of the JCI shear-wall #3
Compressive concrete
strength
23.3 MPa
24,135 MPa
285 MPa
210 GPa
150
Hypo-elastic FEM crack models based on smeared approach are discussed, considering the
tension-stiffening effect due to the normal cracking mode and the influence of the shear-slip
mechanism along the crack. The analyses showed (as in Fig. 1) that the integral model including both
cracking modes has resulted in more correct simulation of the failure progress than the basic model
without taking into account the shear-slip. Also, it can be concluded that the influence of the slippage
between the specimens parts with different thickness could be significant, as experiments showed.
Therefore, in order to improve the overall force-displacement prediction, this phenomenon should also
be considered in the future analytical models.
2.6 References
1. Noguchi, H. Analytical Models for Reinforced Concrete Members Subjected to Reversed Cyclic
Loading, Proc., Seminar on Finite Element Analysis of Reinforced Concrete Structures, Volume 2,
JSPS, Tokyo, May 21-24, 1985, pp.93-112
2. Kupfer, H. and Gerstle, K. H., Behavior of Concrete under Biaxial Stresses, ASCE Journal of
Engineering Mechanics Division, Vol.99, No.EM4, Proc. Paper 9917, Aug. 1973, pp.852-866
3. Noguchi, H., Ohkubo, M. and Hamada S., Basic Experiments on the Degradation of Cracked
Concrete under Biaxial Tension and Compression, Proc. of JCI, Vol.11, No.2, 1989, pp.323-326
(In Japanese)
4. Saenz, L.P., Discussion of Equation for the Stress-Strain Curve of Concrete by Desayi and
Krishman, ACI Journal, Vol.61, September 1964, pp. 1229-1235
5. Shirai, N. and Sato, T., Bond-Cracking Model for Reinforced Concrete, Trans. of the JCI, Vol. 6,
1984, pp. 457-468
6. Vecchio, F. J., Disturbed Stress Field Model for Reinforced Concrete: Formulation, Journal of
Structural Engineering, ASCE, Vol. 126, No. 9, September, 2000, pp. 1070-1077
7. Walraven, J.C., Fundamental Analysis of Aggregate Interlock, ASCE Journ. of Structural
Engineering, Vol.107, No.11, 1981, pp.2245-2270
8. JCI, Collected Experimental Data of Specimens for Verification of Analytical Models,
Proceedings of JCI 2nd Colloquium on Shear Analysis of RC Structures, JCI-C6, October 1983 (In
Japanese)
151