The Finite Element Method
The finite element method is a general method for solving second and fourth order partial differential equations
in solid mechanics. On this page, example problems are solved for the equations listed directly below. For each equation, both
a theory document and a Java program are included. You are free to use the programs for personal and/or educational purposes.
Poisson's Equation
Poisson's equation is the simplest second order partial differential equation, and it governs the deflection
of a (e.g., soap) film subjected to a transverse pressure loading. Two problems were solved analytically
and compared to the finite element solutions.
Theory Document
In the
theory document, these two analytical solutions are presented.
Also in this document, the theory of the finite element method is explained, and the finite element solutions are compared
to the exact solutions. For these two problems, for all practical purposes, the finite element method basically reproduces the
exact solutions.
Program
The Java program (172,797 bytes), written by the author,
contains the source code for the finite element program. The program uses the nine-noded bi-quadratic isoparametric
finite element.
Two-Dimensional Linear Elasticity
The equations for two-dimensional linear elasticity are somewhat more complicated than those for Poisson's equation,
but they are still easy to solve. Again, two problems were solved analytically and compared to the finite element solutions.
Theory Document
In the
theory document, these two analytical solutions are presented.
Also in this document, the theory of the finite element method is explained, and the finite element solutions are compared
to the exact solutions. For these two problems, for all practical purposes, the finite element method, once again, basically reproduces the
exact solutions.
Program
The Java program (236,899 bytes), written by the author,
contains the source code for the finite element program. The program uses the nine-noded bi-quadratic isoparametric
finite element.
Classical Plate Theory
Classical plate theory is governed by a fourth order partial differential equation, and problems in this theory
are substantially more difficult to solve numerically than those concerning either Poisson's equation or two-dimensional linear
elasticity. As above, two problems of this theory were solved analytically, and their solutions compared to the numerical
finite element solutions.
Theory Document
In the
theory document, these two analytical solutions are presented.
Also in this document, the theory of the finite element method is explained, and the finite element solutions are compared
to the exact solutions. For the first problem (which has straight boundaries), the finite element solution is highly accurate.
For the second problem, though, which has curved boundaries, the numerically calculated values of the internal shear vector, in
some instances, are inaccurate near the boundaries of the domain. In the author's opinion, problems of classical plate theory
are best solved with the cell method.
Program
The source code for the Java program (316,507 bytes), written by the author,
is based on the standard fifth order, 21 d.o.f. C1 triangle element, four of which are condensed out to form a
24 d.o.f. C1 quadrilateral element.
Three-Dimensional Finite Elasticity
Here the problem of necking and draw-down of a tension specimen (i.e., polymer drawing) is solved using
three-dimensional isotropic finite elasticity. The finite element used is the 8-noded 24 d.o.f. bi-linear isoparametric
brick element.
Theory Document
In the theory document both finite elasticity
and its finite element implementation are explained. Also, the results of the above-mentioned necking and draw-down problem
are presented.
Program
Here is the source code for the Java program (5,736,303 bytes), written by the
author, used to perform the analysis.
The Three-Dimensional Eigenproblem, Polar Decomposition, and Logarithmic Strain
After the author wrote the above finite element program, he realized that the numerical procedures used in the
program for calculating the polar decomposition and logarithmic strain tensor, while highly reliable, are quite
numerically inefficient. In the above program, the polar decomposition is calculated via Babylonian (or Hero's)
iteration; and the logarithmic strain, by a tensorial Taylor series expansion.
A, still highly reliable, but numerically faster approach, is to calculate the polar decomposition and logarithmic
strain tensor via solving the three-dimensional eigenproblem directly, as explained in this
document. Java routines for this more direct
calculational procedure are given here (4,839 bytes).
Axisymmetric Finite Elasticity
Here, the problem of necking and draw-down of a tension specimen (i.e., polymer drawing) solved above in three
dimensions is solved using axisymmetric isotropic finite elasticity. The finite element used is the 4-noded 8 d.o.f.
bi-linear isoparametric quadrilateral element. The main advantage of an axisymmetric formulation is that the required
eigenproblems, polar decomposition, and logarithmic strain calculations, all are done in closed-form.
Theory Document
In the
theory document both axisymmetric finite elasticity
and its finite element implementation are explained. Also, the results of the above-mentioned necking and draw-down problem
are presented.
Program
Here is the source code for the Java program (2,159,486 bytes), written by the
author, used to perform the analysis.
|