The Mathematica Journal
Departments
Feature Articles
Columns
New Products
New Publications
Classifieds
Calendar
News Bulletins
Mailbox
Letters
Write Us
About the Journal
Staff and Contributors
Submissions
Subscriptions
Advertising
Back Issues
Home
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.

[Graphics:../Images/index_gr_3.gif]

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.

FemElement
    TimeElement
        TwoNodeLineTime
    SpaceTimeElement
        FourNodeSpaceTimeQuad
    SpatialElement
            TwoNodeLine
                ThreeNodeLine
                FourNodeLine
        EightNodeBrick
        FifteenNodeBrick
        TwentySevenNodeBrick
        FourNodeTetrahedron
            TenNodeTetrahedron
        FourNodeQuad
            NineNodeQuad
        ThreeNodeTriangle
            SixNodeTriangle


Converted by Mathematica   

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