CAL-laborate Volume 5 October 2000


CALFEM as a Tool for Teaching University Mechanics

Matti Ristinmaa
Division of Solid Mechanics, Lund University, P.O. Box 118, S-221 00 Lund, Sweden

Göran Sandberg
Division of Structural Mechanics, Lund University, P.O. Box 118, S-221 00 Lund, Sweden


Karl-Gunnar Olsson
School of Architecture, Chalmers University of Technology, S-412 96 Göteborg, Sweden


Classical mechanics benefits greatly from the ability to demonstrate many concepts experimentally. However, modern mechanics relies more and more on new analysis methods such as the finite element method. In the teaching of mechanics these methods should be introduced, but the desire to experiment and build should be retained as a core issue.

One tool for tackling this topic is given by CALFEM1. CALFEM is an acronym for Computer Aided Learning of the Finite Element Method. It is a tool developed for teaching the finite element method but it is also used in research as well as engineering design.

The aim of CALFEM has been to provide a transparent link, such that the student can fully appreciate the intimate relationship between the mathematical models of a phenomenon, the finite element method and its computer implementation. This knowledge is not obtained by operation of commercial finite element programs. The pedagogical aspect of CALFEM has been part of the design from the beginning. In research, CALFEM has proven to be an efficient link between ideas and implemented solutions.

CALFEM runs as a toolbox to MATLAB2 and provides all of the necessary tools for finite element calculations. The program has been carefully documented in an extensive manual that consists of a reference and a user's manual. The introduction and usage of CALFEM are strengthened by the close connection to teaching materials such as textbooks and exercises. The effectiveness of the system relies upon the widespread use of MATLAB at Lund University. The implementation of a web-based CALFEM has increased the availability of the package and allows for feedback and distribution of updates and additional material.


Due to the rapid development of computers numerical solutions have made it possible to use complex theoretical models. However, application of numerical methods increases the size and complexity of problems as a whole but as a result a more formal structure in the solution methodology has developed. The finite element method, used today by almost all engineering companies in the field of applied mechanics, is in itself a pedagogical method. The method allows the problem to be broken into simple parts, for which geometry, physical behaviour and boundary conditions can easily be described. The different matrices used in the method all have clear physical interpretations (stiffness matrix, load vector, displacement vector, etc.). Analogies between different physical applications can easily be made visible thanks to the formalism of the finite element method.

Still, teaching and using the finite element method in courses is a challenging task. The inherent dualism of the method requires a balance between the mathematical theory, physical understanding and the possibility to solve different engineering problems. The finite element method is a theoretical method which, however, can only be applied using a computer.

In ordinary textbooks usually there is only space for exercises treating theoretical issues and simple sample problems, which do not motivate the student to fully appreciate the intimate relationship between the theoretical issues in the finite element method and its computer implementation. Letting the students operate some of the many commercial finite element programs does not solve this fundamental problem. These programs are specifically designed for solving a variety of problems in an efficient manner and, in principle, a person may provide input data to such a program without any knowledge of the finite element method itself or even the physics behind the problem.

In any course on the finite element method exercises play an important role. In teaching or using the finite element method it is difficult to formulate meaningful exercises which address a single subject due to the rather involved numerical manipulations.

From a pedagogical point of view, the logical consequence is to have an interactive program. Simple requirements of such a program are: the program should be written in such a manner that all the usual subroutines related to any finite element program are present; the student should be able to combine these ingredients properly so that a calculation is possible; and it must be designed in such a way that a minimum of programming skills are required. The tool should be such that separate topics can be addressed and manipulated, such as material models, stability behaviour, dynamic response, etc., without requiring a large programming effort.

The development of the concept to teach and use the finite element method, in accordance with the above described experiences, started at the Division of Structural Mechanics at Lund University. This resulted in the CALFEM program originally developed in the FORTRAN programming language. Since its introduction more that one thousand students, engineers and teachers have used the package. It has been redeveloped and transferred to a toolbox within MATLAB. This was done in collaboration with the Division of Solid Mechanics at Lund University.

We have found that CALFEM is also extremely useful as a research tool. In several graduate projects and dissertations CALFEM has been the environment where new finite elements, new mathematical models, new non-linear solution strategies have been created and tested, and where complicated structures have been modelled and their behaviour simulated.

CALFEM as part of an educational idea

The educational idea is best highlighted by comparing it to the traditional way of teaching the finite element method.

Traditional textbooks on the finite element method assume that the physics of the method is known or easily accessible to the reader.


In our teaching method the physical phenomenon is as important as the solution strategy, thus physical interpretation is continuously connected to mathematical and numerical treatment of the problem.

Finite element software in traditional teaching is handled in two separate ways. Either the students write their own programs in FORTRAN, C, etc. which is a time consuming task, or one of the many commercially available codes is used. When commercial codes are used some of the concept-based goals are lost since students can solve the problem without understanding the underlying physics and numerical methods. With CALFEM the students are required to build their own finite element code for every problem they solve, but in a much more time efficient way than traditional programming.

A fundamental goal of CALFEM is to use the above-described concept for teaching the finite element method. Through this approach, the students obtain a physical and numerical "language" thus in the future commercial finite element codes may be easily interpreted.

More importantly the students can see analogies between different physical applications. In fact, this is emphasized by using the same element for different physical applications where equivalent material properties are used. Thus broadening of the students' conceptual picture is encouraged, since different physical ideas can be grouped together and treated in a unified manner.

CALFEM is now used in different courses which take advantage of the fact that new ideas can easily be implemented and that existing routines can be enhanced. One such course deals with material modelling, where non-linear elasticity, plasticity, etc. are considered. The foundation obtained by using CALFEM is then used to study different material models as well as for writing non-linear finite element programs. The conclusion from this course is that CALFEM has fulfilled one of its tasks as the students obtain an understanding of the material modelling aspects and the numerical issues involved without getting confused about basic matters regarding the finite element method.

Figure 1.

Figure 1. A close up of a swept-back wing where accelerometers are fastened. In the right corner an accelerometer is shown.

An example of problems treated in the structural dynamics course is shown above. An airplane wing including fuel reservoirs is analyzed with the aim of reducing vibrations. The students make measurements on the object and analyze the behaviour via computer simulations and propose changes so that certain constraints can be fulfilled, such as vibration reduction at a specific location. The solutions to these tasks usually have no unique answer. Different strategies may be applied in the solution for example how the masses representing the fuel tanks should be modelled.

The physics in the course is described in textbooks dealing with structural dynamics, modal analysis, many degrees of freedom system, transient analysis, etc. The literature describes phenomenological models in a mathematical language. However, these models are usually so complex that computer solutions are required, but in addition they must be related to the real world. These are the tasks that should be solved by using CALFEM.

CALFEM's goal is to strengthen the coupling between mechanics, the finite element method and 'the ability to solve real problems'. In CALFEM the student can copy a routine and modify it so that it fits a specific purpose such as modelling a mass that changes in a prescribed way. The application to a wing allows an integrated natural mix between theory, phenomena and numerical methods.

Figure 2.

Figure 2. The result of one of these studies showing the six first eigenvalues

Consequences for students

We strongly believe that the educational idea leads to:

  • a deeper physical understanding between different physical applications;
  • the students stimulated by being a part of the CALFEM development which reaches into research;
  • the students stimulated by different physical ideas that can be modelled in a very simple manner; and
  • the students stimulated by new ideas, and theoretical models can be built upon the existing knowledge obtained by using CALFEM.
  • Illustrative examples

    To illustrate the analogy between different physical applications, used in the teaching, some very simple examples will be considered. In addition, the purpose is to show the basic steps in a finite element calculation. The general steps in linear finite element calculations are:

  • define the model;
  • generate element matrices;
  • assemble element matrices into the global system of equations;
  • solve the global system of equations; and
  • evaluate element forces in a structural problem.
  • Linear spring system

    Consider the system of three linear elastic springs, and the corresponding finite element model. The system is fixed at its ends and a single load F is applied.

    Figure 3.

    Figure 3.

    The computation is initialized by defining the element connection (topology) matrix Edof,

    >>Edof=[1 1 2
            2 2 3
            3 2 2];

    where the first row is the element number, the second and third the global degree of freedom. The topology matrix defines how the model is built up. The global stiffness matrix K (3x3) of zeros,


    and load vector f (3x1) with the load F=100 at position 2

    >>f=zeros(3,1); f(2)=100;

    Element stiffness matrices are generated by the function spring1e. The element property ep for the springs contains the spring stiffness k and 2k, where k = 1500.

    >>k=1500; ep1=k; ep2=2*k;

    The element stiffness matrices are assembled into the global stiffness matrix K according to the topology matrix


    The global system of equations is solved considering the boundary conditions given in bc

    >>bc=[1 0
          3 0];

    a=      0

    Element forces can then be obtained by considering a single element, let say element 2. The displacement for this element is obtained as


    ed2= 0.0133 0

    where the first value corresponds to degree of freedom 2 and the second to 3, all according to Edof. The spring forces are evaluated as


    Ef= -20

    One-dimensional heat flow

    A wall is built up of concrete and thermal insulation. The outdoor temperature is -17°C and the temperature inside is 20°C.

    Figure 4.

    Figure 4.

    The wall is subdivided into five elements and the one-dimensional spring (analogy) element spring1e is used. From the finite element formulations it turns out that an equivalent spring stiffness for thermal conductivity is k = lA/L and for thermal surface resistance k = A/m.

    The program below emphasizes the analogy between the linear spring model and the one-dimensional heat problem

    >>Edof=[1 1 2
            2 2 3
            3 3 4
            4 4 5
            5 5 6];


    >>ep1=[ 1/0.07 ]; ep2=[ 1.7/0.07 ];
    >>ep3=[ 0.040/0.10 ]; ep4=[ 1.7/0.10 ];
    >>ep5=[ 1/0.18 ];

    >>Ke1=spring1e(ep1); Ke2=spring1e(ep2);
    >>Ke3=spring1e(ep3); Ke4=spring1e(ep4);


    >>bc=[1 -17; 6 20];


    T = -17.0000

    The heat flow is obtained in exactly the same way as the element forces were obtained in the linear spring model.

    Plane structure

    The purpose of this final example is to show that complex geometries can be dealt with without sacrificing the structure and formalism of the method. The 5 mm thick plate with a hole is considered, the material is assumed to behave as an isotropically linearly elastic material, with Young's modulus E = 210MPa and Poisson's ratio n = 0.3. The loading is a prescribed displacement.

    Figure 5.

    Figure 5.

    Due to symmetry conditions only one quarter needs to be modelled. The right figure shows the finite element mesh used in the calculations. For simplicity the geometry and load as well as boundary conditions are loaded from a file.

    >>load hole

    The finite element program can then be written as:

    >>E=210000; v=0.3; t=5;
    >>ep=[1 t];


    >>for i=1:nelm
    >> Ke=plante(ex(i,:),ey(i,:),ep,D);
    >> K=assem(edof(i,:),K,Ke);



    where the final lines calculate the stress distribution in the plate. In addition, for presentation of the results several commands are available.


    1. CALFEM,
    2. MATLAB,

    Matti Ristinmaa
    Division of Solid Mechanics
    Lund University
    P.O. Box 118
    S-221 00 Lund

    Göran Sandberg
    Division of Structural Mechanics
    Lund University
    P.O. Box 118
    S-221 00 Lund

    Karl-Gunnar Olsson
    School of Architecture
    Chalmers University of Technology
    S-412 96 Göteborg

    Return to Contents

    CAL-laborate Volume 5 October 2000

    [an error occurred while processing this directive]

    Page Maintained By:
    Last Update: Monday, 30-Apr-2012 15:17:08 AEST