Académique Documents
Professionnel Documents
Culture Documents
htm
Chapter 8
The derivation and implementation of the finite element method outlined in the previous chapter is simple and
easy to follow, but it gives the misleading impression that the finite element method relies on the principle of
minimum potential energy, and so is applicable only to linear elastic solids. This is not the case, of course the
finite element method can solve problems involving very complex materials and large shape changes.
In addition, a set of sample finite element codes (implemented in MAPLE and MATLAB) are provided to
illustrate the how the various finite element procedures are implemented in practice.
This section gives a more general derivation and implementation of the finite element method for static linear
elastic solids than the energy-based derivation given in Chapter 7.
Given:
1. The shape of the solid in its unloaded condition
2. The initial stress field in the solid (we will take this
to be zero in setting up our FEM code)
3. The elastic constants for the solid
4. The thermal expansion coefficients for the solid, and temperature distribution (we will take this to be
zero for our FEM code, for simplicity)
5. A body force distribution acting on the solid (Note that in this section we will use b to denote force
per unit volume rather than force per unit mass, to avoid having to write out the mass density all the
time)
6. Boundary conditions, specifying displacements on a portion or tractions on a portion of
the boundary of R
Calculate displacements, strains and stresses satisfying the governing equations of static linear
elasticity
1. The strain-displacement equation
1 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
The principle of virtual work: As we discussed in section 2.4, the principle of virtual work can be used to
replace the stress equilibrium equations.
To express the principle, we define a kinematically admissible virtual displacement field , satisfying
on . You can visualize this field as a small change in the displacement of the solid, if you like, but it
is really just an arbitrary differentiable vector field. The term `kinematically admissible’ is just a complicated
way of saying that on - that is to say, if you perturb the displacement slightly, the boundary
conditions on displacement are still satisfied.
The principle of virtual work states that if the stress field satisfies
for all possible virtual displacement fields and corresponding virtual strains, it will automatically satisfy the
equation of stress equilibrium , and also the traction boundary condition
The principle of virtual work can be used to write the governing equation for the displacement field in a linear
elastic solid in an integral form (called the `weak form’). Instead of solving the governing equations listed in the
preceding section, the displacements, strains and stresses are calculated as follows.
1. Find a displacement field satisfying
The significance of this result is that it replaces the derivatives in the partial differential equations of
equilibrium with an equivalent integral, which is easier to handle numerically. It is essentially equivalent to
replacing the equilibrium equation with the principle of minimum potential energy, but the procedure based on
the principle of virtual work is very easily extended to dynamic problems, other stress-strain laws, and even to
problems involving large shape changes.
Finally, recall that and that the elastic compliances must satisfy
so that . Finally, this shows that
Substituting into the virtual work equation gives the result we need.
8.1.3 Interpolating the displacement field and the virtual velocity field
2 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
The displacement field at an arbitrary point within the solid will be specified by
interpolating between nodal values in some convenient way. An efficient and robust implementation of the finite
element method requires a careful choice of interpolation scheme, but for now we will denote the interpolation in
a general way as
Here, x denotes the coordinates of an arbitrary point in the solid. The interpolation functions are
functions of position only, which must have the property that
for all b=1…N. (This is to make sure that the displacement field has the correct value at each node). Recently
developed meshless finite element methods use very complex interpolation functions, but the more traditional
approach is to choose them so that
The simple constant strain triangle elements introduced in 7.1 are one example of this type of interpolation
scheme. We will define more complicated interpolation functions shortly.
We can obviously interpolate the virtual velocity field in exactly the same way (since the principle of virtual
work must be satisfied for all virtual velocities, it must certainly be satisfied for an interpolated velocity
field…) so that
Substituting the interpolated fields into the virtual work equation, we find that
Note that the interpolation functions are known functions of position. We can therefore re-write the virtual work
equation in matrix form as
where
Here K is known as the `stiffness matrix’ and f is known as the force vector. K is a function only of the elastic
properties of the solid, its geometry, and the interpolation functions and nodal positions. It is therefore a known
matrix. Similarly, f is a function only of the known boundary loading and body force field, and the interpolation
scheme and nodal positions. Observe that the symmetry of the elasticity tensor implies that K also has some
symmetry specifically .
The virtual work equation must be satisfied for all possible sets of with for nodes a that lie on
. At these nodes, the displacements must satisfy . Evidently, this requires
3 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
For this 1-D example, then, the finite element equations reduce to
where
We could obviously choose any interpolation scheme, evaluate the necessary integrals and solve the resulting
system of equations to compute the solution. It turns out to be particularly convenient, however, to use a
piecewise-Lagrangian interpolation scheme, and to evaluate the integrals numerically using a Gaussian
quadrature scheme.
where denotes the number of nodes on the element, denotes the value of the displacement at each node,
and the shape functions are given in the table.
Of course, the actual nodal coordinates do not lie at 1, +1 and 0 for all the elements. For a general element, we
map this special one to the region of interest. A particularly convenient way to do this is to set
where denotes the coordinate of each node on the element, and is the number of nodes on the element (2
or 3). Elements that interpolate displacements and position using the same shape functions are called
isoparametric elements.
Next, we need to devise a way to do the integrals in the expressions for the stiffness matrix and force vector.
We can evidently divide up the integral so as to integrate over each element in turn
where is the total number of elements, and and denote the coordinates of the ends of the lth
element. We now notice an attractive feature of our interpolation scheme. The integral over the lth element
depends only on the shape functions associated with the nodes on the lth element, since the displacement in this
region is completely determined by its values at these nodes. We can therefore define element stiffness matrix,
and element force matrix
4 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
for each element, which depend on the geometry, interpolation functions and material properties of the element.
The first and last elements have additional contributions to the element force vector from the boundary terms
. The global stiffness matrix is computed by summing all the element stiffness matrices
Finally we need to devise a way to compute the integrals for each element stiffness matrix. It is convenient to
map the domain of integration to [-1,+1] and integrate with respect to the normalized coordinate - thus
where is the Jacobian associated with the mapping, which may be computed as
Note that the mapping also enables us to calculate the 1-D integration points and weights
shape function derivatives in the element stiffness
matrix as
M=1
M=3
where I=1…M denotes a set of integration
points in the region [-1,+1], and is a set of
integration weights, which are chosen so as to make
the approximation as accurate as possible. Values are
given in the table to the right for and 3.
Higher order integration schemes exist but are required
only for higher order elements. For the linear 1-D element described earlier a single integration point is
sufficient to evaluate the stiffness exactly. Similarly, for the quaratic element, two integration points will suffice.
To summarize, then, the finite element solution requires the following steps:
1. For each element, compute the element stiffness matrix as follows:
where
and the integration points are tabulated above, and shape functions
were listed earlier.
2. Assemble the contribution from each element to the global stiffness
3. Similarly, if there is a non-zero body force, then compute for each element
4. Add contributions to the force vector from prescribed traction boundary conditions at and
h th i td t th d th t li t L
5 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
A simple example MAPLE code for this 1-D example can be found in
the file FEM_1D_Static.mws
The code computes the (1D) displacement distribution in the bar. The
predicted displacement field is plotted on the right.
This works well for a uniform body force with quadratic (3 noded
elements) as the plot on the right shows.
Notice that the stresses are most accurate near the center of each
element (at the integration point). For this reason, FEM codes
generally output stress and strain data at integration points.
Notice that stiffness is symmetric, as expected, and also banded. A large FEM matrix is sparse most of the
elements are zero. This allows the matrix to be stored in compact form for very large matrices indexed
storage (where only the nonzero elements together with their indices are stored) is the best approach; for smaller
problems skyline storage or band storage (where only the central, mostly nonzero, band of the matrix is stored)
may be preferable. In this case equation numbers need to be assigned to each degree of freedom so as to
minimize the bandwidth of the stiffness matrix.
6 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
where denote the shape functions, denote the displacement values and coordinates of the
nodes on the element, and is the number of nodes on the element.
3. We introduce an element stiffness matrix for each element by defining
where denotes the element stiffness matrix for the (lth) element, and denotes the volume (in
3D) or area (in 2D) of the (lth) element, while denotes the surface of the (lth) element
4. The volume integrals over each element are calculated by expressing the volume or surface integral in
terms of the dimensionless coordinates , and then evaluating the integrals numerically, using
a quadrature formula of the form
Here, are a set of integration weights (just numbers), and are a set of coordinates that
are selected to make the integration scheme as accurate as possible (also just numbers).
5. The global stiffness matrix
To implement this procedure, we must (a) Define the element interpolation functions; (b) Express the integrals
for the element stiffness matrices and force vectors in terms of normalized coordinates; (c) Formulate a
numerical integration scheme to evaluate the element stiffness matrices and force vectors.
These details are addressed in the sections to follow.
The 2D interpolation functions listed below are defined for the region
The numbers shown inside the element show the convention used to number the element faces.
2D interpolation functions
7 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
The 3D interpolation functions listed below are defined for the region
3D Interpolation Functions
8 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
8.1.11 Volume integrals for stiffness and force in terms of normalized coordinates
In this section we outline the procedure that is used to re-write the integrals for the element stiffness and force in
terms of the normalized coordinates . The integrals are
Calculating the shape function derivatives. The shape function derivatives can be evaluated by writing
where the derivatives are easy to compute (just differentiate the expressions given earlier…). To
compute recall that the coordinates of a point at position within an element can be determined as
Note that is a 2x2 matrix (in 2D) or a 3x3 matrix (in 3D). Finally, follows as the inverse of this
matrix
where the matrix was defined earlier. Then the integral with respect to x is mapped into an integral with
respect to by setting
We note in passing that the boundary integral in the element force vector can be regarded as a 1-D line integral
for 2D elements and a 2D surface integral for 3D elements. So the procedures we developed in 8.1.5 (1D
elements) can be used to evaluate the surface integral for a 2D element. Similarly, the procedures we develop
to integrate stiffness matrices for 2D elements can be used to evaluate the surface integral for a 3D element.
Finally, to evaluate the integrals, we once again adopt a quadrature scheme, so that
9 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
The integration points and weights depend on the element geometry, and are listed below for a few
common element types
1 point
or
3 point
(the first scheme here is optimal, but has some disadvantages for
quadratic elements because the integration points coincide with the
midside nodes. The second scheme is less accurate but more robust).
4 point
1 point
4 point
where
For quadrilateral elements we can simply regard the integral over 2 spatial dimensions as successive 1-D
integrals
which gives rise to the following 2D quadrature scheme: Let and for I=1…M denote 1-D quadrature
points and weights listed below. Then in 2D, an quadrature scheme can be generated as follows:
for J=1…M and K=1…M let
Similarly, in 3D, we generate an scheme as:
for J=1…M , K=1…M L=1…M let
M=1
M=2
M=3
Choosing the number of integration points: There are two considerations. If too many integration points are
used, time is wasted without gaining any accuracy). If too few integration points are used, the stiffness matrix
may be singular, or else the rate of convergence to the exact solution with mesh refinement will be reduced. The
following schemes will avoid both
10 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
There are situations where it is preferable to use fewer integration points and purposely make the stiffness
singular. These are discussed in more detail in Section 8.5.
where
You can find a MAPLE implementation of a simple 2D/3D static linear elasticity
code in the file FEM_2Dor3D_linelast_standard.mws
Note that the program performs absolutely no error checking on the input file. If you put in a typo, you will get
bi f A f d i l iff bl
11 di 12 07/07/2009 21.03
Applied Mechanics of Solids (A.F. Bower) Chapter 8: Theory of FEA -... http://solidmechanics.org/text/Chapter8_1/Chapter8_1.htm
some bizzarre error message from MAPLE often during element stiffness assembly.
For the input file shown, the program produces an output file that looks like this
The code prints the displacements at each node in the mesh, and also the strains and stresses at each integration
point (where these quantities are most accurate) for each element.
12 di 12 07/07/2009 21.03