Einstein FETK Overview

The Finite Element ToolKit (FETK) is a collaboratively developed, evolving collection of adaptive finite element method (AFEM) software libraries and tools for solving coupled systems of nonlinear geometric partial differential equations (PDE). The FETK libraries and tools are written in an object-oriented form of ANSI-C and in C++, and include a common portability layer (MALOC) for all of FETK, a collection of standard numerical libraries (PUNC), a stand-alone high-quality surface and volume simplex mesh generator (GAMer), a stand-alone networked polygon display tool (SG), a general nonlinear finite element modeling kernel (MC), and a MATLAB toolkit (MCLite) for protyping finite element methods and examining simplex meshes using MATLAB. The entire FETK Suite of tools is highly portable (from iPhone to Blue Gene/L), thanks to use of a small abstraction layer (MALOC) and heavy use of the GNU Autoconf infrastructure.

The FETK libraries and tools are developed collaboratively by a number of people, and are released freely under open source licenses for maximal benefit to the mathematics, science, and engineering communities. The FETK project lead is Professor Michael Holst at the Center for Computational Mathematics at UC San Diego.

In June 2010 the source code tree for the entire FETK Project was released under the GNU LGPL (GNU Library General Public License), and can be downloaded as a single gzipped tar file from the FETK Download Page. Alternatively, you can follow the links below to information about the individual libraries, and download the individual libraries. To build the FETK libraries (all at once or individually), you will need a standard but very minimal set of UNIX tools such as a C compiler, make, and the bourne shell for running configure scripts. Some of the libraries also require a C++ compiler, a FORTRAN compiler, and a Python interpreter.

The primary FETK ANSI-C software libraries are:
  • MALOC is a Minimal Abstraction Layer for Object-oriented C/C++ programs.
  • PUNC is Portable Understructure for Numerical Computing (requires MALOC).
  • GAMer is a Geometry-preserving Adaptive MeshER (requires MALOC).
  • SG is a Socket Graphics tool for displaying polygons (requires MALOC).
  • MC is a 2D/3D AFEM code for nonlinear geometric PDE (requires MALOC; optionally uses PUNC+GAMER+SG).
Application-specific software designed for use with the FETK software libraries is:
  • GPDE is a Geometric Partial Differential Equation solver (requires MALOC+PUNC+MC; optionally uses GAMER+SG).
  • APBS is an Adaptive Poisson-Boltzmann Equation Solver (requires MALOC+PUNC+MC; optionally uses GAMER+SG).
  • SMOL is a Smoluchowki Equation Solver solver (requires MALOC+PUNC+MC; optionally uses GAMER+SG).
MATLAB toolkits designed for use with MC and SG or as standalone packages:
  • MCLite is a simple 2D MATLAB version of MC designed for teaching.
  • FETKLab is a sophisticated 2D MATLAB adaptive PDE solver built on top of MCLite.
Related packages developed and maintained by FETK developers (included in PUNC above):
  • PMG is a Parallel Algebraic MultiGrid code for general semilinear elliptic equatons.
  • CgCode is a package of Conjugate gradient Codes for large sparse linear systems.
Follow the individual links above for more information about a particular tool, including contact information for the primary developers and maintainers of the particular tool. The development mailing list archives can be found here.