The Mathematica Journal
Feature Articles
New Products
New Publications
News Bulletins
Write Us
About the Journal
Staff and Contributors
Back Issues
Download this Issue

A Look at the Fem Package

The framework is a collection of libraries that provide functions for doing finite element analysis. It was implemented using an object-oriented extension of Mathematica's internal programming language, Classes, by Roman Maeder. There is a complementary version which uses a math library written in C++ for solving larger problems. Usually, after prototyping a problem completely in Mathematica, I automatically generated a C++ equivalent. The logical structure of an FEM problem is common in both languages. The framework can be accessed easily during a Mathematica session.


The primary objects in the framework are called Fem, FemNode, and FemElement. Fem provides the context which captures the global problem's structure and provides access to global operations such as assembly, display, and so on. It contains a finite element mesh, which is an unstructured mesh that is a set of elements and a set of nodes. Nodes represent points in space. Elements define a topological relationship between the nodes. FemNode abstracts the finite element node and contains the point in some space that it represents. FemElement abstracts the element-level operations such as the element integrals and matrices. FemElement contains an ordered list of nodes that defines the topology of the element. FemElement also provides the basis functions for the element and rules of element quadrature, i.e., Gaussian integration.

FemElement is an abstract class; there should not be any instances of it. It provides the behavior common to all elements. The subclasses of the FemElement provide the behavior for specific element types. A typical class hierarchy for FemElement follows.


Converted by Mathematica   

[Article Index] [Prev Page][Next Page]