The
review was commissioned by the journal MSOR Connections, which is
the newsletter of the LTSN Maths,
Stats & OR Network; it appeared in the August 2002 issue, and can be
found as a pdf file on their website:
http://ltsn.mathstore.ac.uk/newsletter/aug2002/pdf/felipe.pdf.
The following is an HTML version of the draft review...
FELIPE (Finite Element learning Package) is a software package designed
to enable students of engineering and mathematics understand the finite
element method. It consists of a suite of executable programs together
with the Fortran 77 source code to solve a variety of finite element problems.
FELIPE was developed by Dr Martin Reed of the Department of Biological
Sciences, Brunel University. The price of the program is £69+VAT
for a licence for a named user on a single pc. A department licence allowing
up to 30 pcs in a single location costs £699+VAT. This package is
one of the cheapest introductory systems for finite element analysis, providing
source code as well as operational programs.
A demonstration program can be down-loaded from the website www.maths.bath.ac.uk/~mbr20/felipe.
The demonstration contains pre-and post-processors with a fixed lifespan
together with three basic programs for two-dimensional elasticity and Poisson
problems and a frame analysis. On-line manuals are available at the website.
Both the demonstration and the full program consist of self-executing zip-files
which expand to occupy less than 4 Mbytes. The installation is straightforward
and the files can be stored in a user-defined directory. The full package
consists of:
-
an interactive graphics pre-processor to enable the generation, refinement
and renumbering of two-dimensional finite element meshes. The reviewer
was pleased and surprised to see in amongst the standard element types
a number of semi-infinite elements as these are often not included in basic
packages.
-
Nine executable programs to perform a range of mathematical analyses –
Poisson’s equation, plane stress/plane strain, beam/frame, elasto-plasticity,
viscoplasticity, thermoelasticity and soil consolidation.
-
A post-processor to enable stress contours, temperature contours, displacement
plots to be produced.
-
The Fortran 77 source code of the nine executable programs.
-
Sample input and output files.
-
A manual describing the operation of the program together with a summary
of the theory used in developing the Fortran code.
The Pre-processor
To enable finite element models to be constructed it is essential to be
able to see the mesh created. The pre-processor, PREFEL, used in the Felipe
suite is easy to use containing a mixture of text and graphics input. Figures
1 and 2 show the development and refinement of a simple mesh for an analysis
of a dam created by using PREFEL.
Figure 1: Initial mesh, with node 14 selected.
Figure 2: Mesh refinement in progress
A major criticism the reviewer initially had with regard to the pre-processor
was that due to its design as an instructional program the user is unable
to undo an incorrect action. Following discussions with the program author
the ability to save and restart models has now been introduced. The author,
commendably, is very quick to take on board comments which enable the program
to be improved. The program has the following excellent features:
-
When a single element is subdivided using one of the mesh refinement utilities
the subdivision is continued into adjacent elements so that inter-element
nodal continuity is enforced. Boundary restraints are automatically included
in the new elements.
-
A single operation enables the whole mesh to be doubled so that students
can investigate convergence of the finite element model.
-
The ability to reorder element and node numbers starting from an element
selected by the user using screen input.
This last facility enables the student to understand the influences of
element and nodal numbering on the frontwidth and bandwidth of the resulting
system of equations. At the same time as renumbering there is an option
of displaying graphically the structure of the global stiffness matrix
during the renumbering process. Figure 3 shows a combination of the global
structure matrix during the renumbering system and also indicates the relationship
between local and global element nodal numbering for element 21.
Figure 3: Display of global stiffness matrix structure
during assembly process.
The pre-processor operates in two modes: basic and advanced. The basic
mode restricts the elements to eight noded quadrilaterals for elasticity
problems and three noded triangles for Poisson problems. The program will
enable four noded quadrilaterals to be used for ease of data generation
for the latter case but these quadrilaterals must then be triangulated
before the pre-processor produces a data set. The advanced mode enables
all the different elements to be generated, including the infinite elements.
The basic-level mode generates files which are used with the Poisson and
two-dimensional elasticity programs provided with the demonstration version.
Having obtained a correct mesh with appropriate boundary conditions
(such as nodes fixed in the x-direction) the final part of the pre-processor
enables loading data (point loads, surface tractions, prescribed displacements
and body forces for elasticity problems and Dirichlet or Neumann conditions
for thermal analyses) to be applied.
As the program is designed for teaching purposes the maximum number
of nodes is 3000 and the maximum number of elements is 900. The reviewer
would have liked to have seen higher limits as real problems drawn from
engineering often require a couple of thousand elements for convergence
studies to be properly undertaken. The author has stated that for a nominal
charge he will provide versions of the programs which have extended element
and nodal sizes. The program was written using the Salford Fortran compiler
which uses proprietary extended memory management utilities. Early versions
of the pre-processor crashed whenever a second program was run simultaneously.
The reviewer was impressed with the response of the program author when
this problem was reported. He immediately contacted Salford and revised
run-time libraries were sent which corrected the fault.
Analysis programs
Having created a data file the user of the suite has available a set of
nine standard executable programs to perform various analyses. The author’s
objective is to get students to understand the theory and implementation
into useable programs of the finite element method. Therefore, as well
as having the executable program, in the user manual of the suite, a brief
overview of the relevant finite element theory is given. The author expects
the student to have available a standard text book, such as The Finite
Element Method in Engineering Science by O.C. Zienkiewicz (McGraw Hill)
or Concepts and Applications of Finite Element Analysis by R.D.
Cook et al (Wiley 2002) to enhance the brief descriptions. A full description
is then given of the detailed structure of each program describing the
Fortran subroutines used in its code. Included with the suite is the Fortran
77 source code of each program. As it is relatively straightforward to
convert from Fortran 77 to Fortran 90/95 the reviewer would have liked
to have seen this source code in Fortran 90/95. The source code requires
the user to link a second file containing library routines to perform input/output.
Unfortunately the need for this library is not made clear in the documentation
and the reviewer initially had trouble compiling the source. After the
library was included, however, the source program was easy to compile using
the Compaq Fortran compiler.
The reviewer found the programs to be extremely well documented. They
are designed so that students can take the code and modify it for their
own problems. The reviewer was impressed with the number of different algorithms
coded into the system. Amongst the nine pre-supplied programs there are
four different storage techniques combined with five solution algorithms!
This obviously means that a student who is coding his or her own finite
element program has a wide variety of different methods to use. The combined
storage and solution techniques are:
-
Symmetric banded storage in conjunction with Choleski decomposition which
is used in the programs for Poisson analyses, the standard elasticity program
and an elasto-plastic program.
-
Non-symmetric banded storage in conjunction with the standard Gauss elimination
technique which is used in the coupled thermo-elastic analysis program.
-
A skyline analysis (a modified bandwidth approach where the position of
the start of non-zero elements in each row is used to reduce storage requirements)
with decomposition which is used in the two-dimensional consolidation analysis.
-
Frontal solution which is used in the full elastic analysis program containing
all the available element types in combination with all loading types.
It is also used in the elasto-viscoplastic program.
-
The frame analysis program uses the diagonal-preconditioned conjugate gradient
algorithm.
-
Finally, the extended elasto-plastic program contains several of the above
solution and storage algorithms as well as an algorithm incorporating Incomplete
Cholseki preconditioning in combination with the conjugate gradient solution
technique. This enables the student to investigate the effects different
solution strategies have on the resulting finite element model.
The user manual describes the theory behind the techniques with reference
to further reading if required.
The post-processor
The post-processor, FELVUE, takes the results of the analysis programs
and produces graphic plots. It is capable of plotting contours or vectors
of deformed meshes, stress contours of individual stress components, principal
stresses and the stress average and stress deviator stress. For thermal
problems the post-processor can contour temperatures and contours of flow
magnitudes or flowlines. Figures 4 and 5 show samples of displacement profiles
and stress contours. The analysis programs output stress data at the Gauss
points and when plotting these stress values are interpolated to the boundaries
of elements so that the discontinuities in the stress fields can be seen.
The post-processor operates in the same way as the pre-processor and is
very easy to use.
Figure 4: Deformed mesh (Uniform normal pressure on vertical face of dam).
Figure 5: Contours of major principal stress (compression positive sign
convention).
The reviewer is concerned that when students encounter finite element
methods for the first time that emphasis is given to determining the accuracy
of the model produced. This, on a first course in finite element theory,
is often simply performed by investigating the numerical values of the
inter-element nodal discontinuities in derived quantities such as temperature
fluxes and stresses. Although plots can be obtained showing these discontinuities
(as seen in Figure 5) it would have been useful to have the option, without
having to write the specific Fortran code, of obtaining printouts of these
quantities at element nodes.
Conclusions
The reviewer feels that for the reasons given above the package is currently
not suitable for students undertaking a first course in finite element
analysis, particularly engineering students. The reviewer feels that commercial
packages such as ANSYS or LUSAS, which although significantly more expensive
than Felipe do have full modelling and analysis capabilities are more appropriate
for first courses, particularly for Engineering students. However, for
students who already have an overview of the finite element method and
wish to get a deeper understanding of the underlying concepts of finite
element theory and implementation Felipe is an excellent vehicle for developing
that understanding. The reviewer feels that as currently presented the
package is suitable for final year and post-graduate students who expect
to have to program their own finite element algorithms. It should certainly
be seriously considered for all courses which require finite element programming.
Further development of the package to deal with some of the deficiencies
above would also make the package suitable for initial finite element courses.
Dr Rob Beale,
Senior Lecturer in Mathematics,
Centre for Civil Engineering,
Oxford Brookes University,
Oxford, U.K.
June, 2002
SUPPLIER’S RESPONSE:
I am very grateful to the Reviewer for his many positive comments
about the FELIPE concept and package, which combines source-code FEM modules
with powerful graphics pre- and post-processing at a highly affordable
price. His valuable suggestions have helped to improve the package significantly.
There are two points on which I was reluctant to follow the Reviewer’s
recommendations fully. One concerns the maximum size of mesh handled
by the pre- and post-processors. There is a danger that if a large
amount of virtual memory is allocated in these Fortran programs, users
with low-specification PC’s may experience poor performance even while
constructing small meshes. However, recognizing the different needs and
resources of users, I am now offering the package in either Standard
(maximum 900 elements), Large (2,500 elements) or Giant (9,999 elements)
installations. As the source code is provided for all the main FEM
programs, users can redimension these according to their needs, and
re-compile.
There are two main reasons why I have not taken up the Reviewer’s
suggestion of outputting stress/flux data at nodes:
-
Stresses evaluated away from the element Gauss points using the shape
functions are inherently less accurate, and may be wildly wrong even with
a good discretization (e.g. in nearly incompressible materials). They are
best recovered by fitting a lower-degree surface through the Gauss-point
values (which is the technique used in the contouring routines);
-
As well as being an instructional package, FELIPE has proved popular
with practising engineers as a cheap 2D ‘black box’ analysis tool. These
users would not appreciate being provided with inaccurate and confusing
stress output.
Moreover, the FELIPE concept means that an instructor requiring this
output can easily program its evaluation into the elasticity source code
(or, better still, set it as a student exercise!) for printing in the preferred
format, element-by-element or node-by-node, and recompile.
I am very keen to hear from instructors interested in using FELIPE
in their courses, after trying out the basic package from the download
at the FELIPE website (also reachable at www.felipe.co.uk).
A FELIPE-based FEM textbook would be a logical new development, and any
publishers reading this are welcome to contact me with proposals!
Martin Reed (mbr20@maths.bath.ac.uk)