1.
FENICS/DOLFIN (uses numpy), LGPL
(864 / 64)
But also: FENICS FINITE ELEMENT: (1080 / 34)
http://www.fenics.org/wiki/DOLFIN
DOLFIN project is the C++ interface of FEniCS, providing a consistent PSE (Proble
m
Solving Environment) for solving ordinary and partial differential equations.
Here are some key features of "DOLFIN":
Simple, consistent and intuitive object

oriented API
Automatic and efficient evaluation of variational forms through FFC
Aut
omatic and efficient assembly of linear systems
Support for general families of finite elements, including continuous and discontinuous
Lagrange finite elements of arbitrary order on triangles and tetrahedra through FIAT
Support for arbitrary mixed
elements, including Taylor

Hood
High

performance parallel linear algebra through PETSc with simple C++ wrappers
Triangular and tetrahedral meshes,
including adaptive mesh refinement
and mesh
hierarchies
Multi

adaptive mcG(q)/mdG(q) and mono

ad
aptive cG(q)/dG(q) ODE solvers
Support for a range of output formats for post

processing, including DOLFIN XML,
MATLAB, Octave, OpenDX, GiD, Tecplot and Paraview/VTK
SWIG

generated Python interface PyDOLFIN (experimental) in addition to the standar
d
C++ interface
Requirements:
The latest version of FFC
The latest version of FIAT
PETSc version 2.3.0
Libxml2 (Debian package libxml2

dev)
Note that FFC and FIAT are only needed if you want to define new differential equations, not
if you
are using one of the existing solvers/modules of DOLFIN.
What's New in This Release:
The Python bindings for the new mesh library have been improved, and input/output is now
supported for mesh functions.
DOLFIN has switched from Python Numeric to P
ython NumPy in the Python interface.
FEniCS Project
From The FEniCS project
FEniCS is free software for automated solution of differential equations. We provide software
tools for working with computational meshes, finite element variational formulations
of
PDEs, ODE solvers and linear algebra.
To get started, visit the
Gallery
or take the
Tutorial
.
Projects
FEniCS is organi
zed as a collection of sub projects/components.
DOLFIN
, a C++/Python library for
solving differential equations
FErari
, optimizati
ons for evaluation of
variational forms
FFC
, a compiler for finite element
variational forms
FIAT
, tabulation of finite element
function spa
ces
Instant
, simple inlining of C / C++
code in Python
Puffin
, simple finite element solver for
Octave/MATLAB
SyFi
, finite element engine based on
symbolic mathematics
UFC
, a unified code generation
interface for form

compilers
Viper
, minimalistic scientific plotter
and run

time visualization module
Vision
The vision of FEniCS is to set a new standard in Computational Mathematical Modeling
(CMM), which is the Automation of CMM (ACMM), towards the goals of generality,
efficiency, and simplicity, concerning mathematical methodolog
y, implementation, and
application.
Computational Mathematical Modeling is the modern manifestation of the basic principle of
science: formulating mathematical equations (modeling) and solving equations (computation),
with the equations usually taking the
form of differential/integral equations.
The traditional organization of a technical university follows the principle that each
department is devoted to the study of a particular differential equation with a particular set of
analytical/numerical methods
. Today, the computer opens entirely new possibilities of
numerical solution of differential equations, and forces development to replace the traditional
organization based on the one equation

one department model.
Partners
FEniCS is a joint project be
tween
University of Chicago
,
Argonne National Laboratory
,
De
lft University of Technology
,
Royal Institute of Technology KTH
,
Simula Research
Laboratory
,
Finite Element Center
and
University of Cambridge
(in order of
appearance).
+ support for both C++ and python
+ extensive manual, although some parts are
slightly outdated
+ problem is entered in .form files, which are using own compiler FFC generated into .h, but
it has also JIT compiler, the writing is very close to mathematical description
+ form compiler allows us to combine generality with efficiency
+
more developers
+ has beautiful presentations:
Current and
future plans for FEniCS (DOLFIN/FFC)
(molto bello!!!)
Anders Logg, BIT Circus Stockholm (September 1 2006)
In user manual, see, there is explanation how to make poisson:
http://www.fenics.org/pub/documents/dolfin/dolfin

user

manual/dolfin

user

manual.pdf
In
http://www.fenics.org/pub/documents/fen
ics/presentations/logg

geilo

2006

03/logg

geilo

2006.pdf
, there is a nice discussion about other softwares and overall goals of the
library
In slide 0, there are nice demonstrations, of how it may look in other softwares and how it
look in Fenics
http://www.fenics.org/pub/documents/fenics/presentations/logg

geilo

2006

03/logg

geilo

2006

lecture

0.pdf
http://www.fenics.org/pub/documents/fenics/presentations/logg

geilo

2006

03/
In slide 5, there are nice samples of writing in integral form and appropriate representation in
FFC
http://www.fenics.org/pub/documents/fenics/presentations/logg

geilo

2006

03/logg

geilo

2006

lecture

5.pdf
+ they even plan to make new mesh library!

no paralel processing, yet, even planned (on the other hand, we do not need it) *
+ support for Gmsh and other software
+ support for Python, that seem that will have even more impact in simulation and computer
science
+ has packages for Debian and Ubunt
u => easy installation
+ looks most professional, most exciting, and future development is for sure…
+ initial examples are much more simple then the case of LibMesh, on the other hand they
have already
prepared classes for Poisson and Dirichlet probléme
+ it is enough to write the math in variational form, the the rewrite to computer format is very
easy,
+ After seeing the examples and documentation, I think even for beginners this library would
be relatively easy, by my opinion easier entrance then with
other libraries!
+ this library has 2x more references in Google scholar then libmesh (not counting
fenics)
+ change log seem to me that library is under continous and serious development
+ whole framework, more tasks will be solved and can be used
+
Supp
ort for a range of output formats for post

processing, including DOLFIN XML,
ParaView/Mayavi/VTK, OpenDX,
Tecplot, Octave, MATLAB, GiD
(thanks to xml format...)
+ idea of point project and next generation FEM software seem to be good

it seems there is no
forum for fenics
+ prototyping can be made in python, see
http://www.fenics.org/wiki/Tutorial
; this is by the
way easiest example to start on
+ own code is added by modules, authors claim there exists s
pecial coding practise how to do
it
+ automatation approach
+ first release 2002
+ best presentations, best manual; even from these, a person who not familiar with differential
equations and linear algebra will often have serious problems
, howeever basic
poisson
equation is in form one can understand (with help from Massimo Totar)
+ mesh is stored in xml format; i.e we can easily convert to another formats (if necessary)
+ Description I found on CFD Online (one of websites with great attendence)
http://www.cfd

online.com/Links/soft.html

FEniCS

An open

source package for computational
mathematical modeling. Has some functionality to solve Navier

Stokes. Lo
oks very nice.
FEniCS is being developed very quickly and can become very interesting for CFD people.
FEniCS and its sister projects are used extensively in education.
+ FFC

more dependencies then libmesh
+ I cannot help myself, I have overall feeling th
at this is the best one!
From The FEniCS project
The FEniCS Form Compiler FFC provides state

of

the

art automatic and efficient evaluation
of general multilinear forms (variational formulations) for FEniCS. FFC functions as the
form evaluation system for
DOLFIN
but can also be used to compile forms for other systems.
FFC works as a compiler for multilinear forms by generating code (C or C++) for the
evaluation of a multilinear form given in mat
hematical notation. This new approach to form
evaluation makes it possible to combine generality with efficency; the form can be given in
mathematical notation and the generated code is as efficient as hand

optimized code.
+
Man

power (while libmesh is do
ne mostly by PhD students)
The
FE
ni
CS
core team consists of the following people, committed to implementing
a new standard in CMM software:
Prof. Todd Dupont
Dept. of Computer Science
University of Chicago, USA
Dr. Johan Ho_man
Courant Institute of Mathem
atical Sciences, New York, USA
Prof. Claes Johnson
Dept. of Computational Mathematics
Chalmers University of Technology, G
•
oteborg, Sweden
Ass. Prof. Robert Kirby
Dept. of Computer Science
University of Chicago, Ill USA
Ass. Prof. Mats Larson
Dept. of
Computational Mathematics
Chalmers University of Technology, G
•
oteborg, Sweden
Mr. Anders Logg
Dept. of Computational Mathematics
Chalmers University of Technology, G
•
oteborg, Sweden
Prof. Ridgway Scott
Dept. of Computer Science
University of Chicago, U
SA
* Does it run in parallel?
No, not yet. However, since we use PETSc as a linear algebra backend for DOLFIN, parallel
linear algebra is handled by PETSc. We are currently working on implementing parallel
assembly to complete the parallel support in FEni
CS.
2. LibMesh (1620 / 32)

GPL
http://libmesh.sourceforge.net/
libMesh
currently supports 1D, 2D, and 3D steady and transient finite element simulations.
The library makes use of high

quality, existing so
ftware whenever possible.
PETSc
is used for
the solution of linear systems on both serial and parallel platforms, and
LASPac
k
is included
with the library to provide linear solver support on serial machines. An optional interface to
SLEPc
is also provided for solving both standard and generalized eigenvalue problems. A
complete li
st of external applications used in the library may be found
here
.
http://libmesh.sourceforge.net/ex3.php
http://libmesh.sourceforge.net/ex16.php
+ supports UNV format (which we can export from Salome)
+ is able to run paralel
+ enough presentations and examples

syntax seem to be for me somewhat unclean
+ used by Rome
+ if prob
lem is specified in 2D you can easily allegedly extend it to 3d (i.e. syntax is general)

we can say that this library is defacto project of University of Texas, with no other subjects,
while Fenics is guaranteed by cooperation of many universities, see
http://libmesh.sourceforge.net/developers.php
+
libmesh

0.6.1

rc1
Notes
(2007

10

14 14:26)
libmesh

0.6.1

rc1.tar.
gz
Mirror
3688028
5
Platform

Independent Source .gz
libmesh

0.6.0
Notes
(2007

06

04 12:37)
libmesh

0.6.0.tar.gz
Mirror
3513405
900
Platform

Independent Source .gz
libmesh

0.5.0
Notes
(2005

06

10 15:05)
(however same, even better situation is with F
enics)
3. Getfem++ (583 / 29)

LGPL
http://home.gna.org/getfem/
The Getfem++ project focuses on the development of a generic and efficient C++ library for
finite element methods. The goal is to provide a libra
ry allowing the computation of any
elementary matrix (even for mixed finite element methods) on the largest class of methods
and elements, and for arbitrary dimension (i.e. not only 2D and 3D problems).
It offers a complete separation between integration
methods (exact or approximated),
geometric transformations
(linear or not) and finite element methods of arbitrary degrees. It
can really relieve a more integrated finite element code of technical difficulties of elementary
computations.
Examples of avail
able finite element method are : Pk on simplices in arbitrary degrees and
dimensions, Qk on parallelepipeds, P1, P2 with bubble functions, Hermite elements, Argyris
element, elements with hierarchic basis (for multigrid methods for instance), discontinuous
Pk
or Qk, XFem, vectorial elements (RT0, Nedelec) ...
The addition of a new finite element method is relatively easy. Its description on the reference
element must be provided (in most of the cases, this is the description of the basis functions,
and not
hing more). Extensions are provided for Hermite elements, piecewise polynomial,
non

polynomial, vectorial elements and XFem.
The library also includes the usual tools for finite elements such as assembly procedures for
classical PDEs, interpolation method
s, computation of norms, mesh operations (including
automatic refinement), boundary conditions, post

processing tools such as extraction of slices
from a mesh ...
Getfem++ can be used to build very general finite elements codes, where the finite elements,
integration methods, dimension of the meshes, are just some parameters that can be changed
very easily, thus allowing a large spectrum of experimentations. Several examples are
provided (see the
screens
hot section
).
Getfem++ has no meshing capabilities (apart regular meshes and a small attempt), hence it is
necessary to import meshes. Imports formats currently known by getfem are
GiD
,
GmSH
and
emc2
mesh files. However, given a mesh, it is possible to refine it automatically.
Gmm++
Getfem++ includes a
generic matrix template
library inspired by
MTL
and
ITL
.
Matl
ab interface
A
Matlab
® interface to this library is also provided. Hence it is possible to use Getfem++
without any knowledge of C++. Moreover, this interface provides some post

processing
functions which use matlab
graphics. A great effort has been made to offer pictures that
represent precisely the finite element solution (i.e. preserve discontinuities across elements,
preserve polynomial order of f.e.m,..), and tools are provided for slice views with respect to a
plane/half space/cylindar/sphere, and streamlines. The pictures from the
screenshot
section
were all generated via the Matlab interface.
Python interface
A
python
interface is also available, it is very similar to the Matlab one, although it lacks the
graphical abilities of the Matlab interface.
Licence
Getfem++ is freely distributed under the terms of the
Gnu
Lesser General Public License
.
===
4. Rheolef (925 / 23)

GPL
http://ljk.imag.fr/membres/Pierre.Saramito/rheolef/

three man show

last release almost 2 years

Fenics is better
+
already
integrated with salome
+
While sparse matrix and meshes are standard
tools in most _nite element libraries,
rheolef
is the only one to our knowledge that bases on
powerful variational concepts, such as spaces, _elds and bilinear forms.

no paralel processin
g yet
+ source code seem to be very clear
SANDIA

TAHOE (??? / ???)
Note:
–
tahoe is name of lake in US, we cannot determine Google searches correctly…
Tahoe is a research

oriented, open source platform for the development of numerical methods
and mate
rial models. The goal of the work surrounding Tahoe is the simulation of stresses and
deformations for situations that cannot be treated by standard continuum simulation
techniques. These situations include material fracture or failure, interfacial adhesio
n and
debonding, shear banding, length

scale dependent elasticity and plasticity, and deformation in
small

scale structures. Aside from a collection of standard finite elements, Tahoe includes
meshfree simulation capability and particle methods. Tahoe incl
udes a number of "cohesive"
approaches for modeling fracture. These include both surface and bulk constitutive models
that incorporate cohesive behavior. Tahoe is capable of performing static and transient
dynamic coupled

physics analysis in two and three
dimensions. Many capabilities support
parallel execution.
http://tahoe.ca.sandia.gov/
+ 35 developers (registered at sourceforge…)
+ most alive forum I have seen from FEM software

seem to be solving lot of thin
gs, which many we do not need:

simulation of stresses of materiál…

last stable release 2004, version 2.1
+ uses high performance components
+ looks professional by the name of copany SANDIA
F
E
TK
Overview (584 / 37)
http://www.fetk.org/

does not use high performance tools, is too much ANSI

C (too much portable for
us)

no CVS

confusing website, manual

outdated (2004, last version 0.1.2!!!)
OOFEM.org (3330 / 37)

GPL
http://www.
oofem.org/
Object oriented architecture
Modular & extensible FEM kernel (OOFEMlib)
fully extensible

The kernel is extensible in any "direction". The possibility of adding
new element type, new material model with any type and number of internal
history
parameters, new boundary conditions, numerical algorithms or analysis modules, as
well as ability to add and manage arbitrary degrees of freedom is matter of course.
independent problem formulation, numerical solution and data storage

The
kerne
l provides the independent abstractions for analysis, general numerical method
and data storage (sparse matrices). The component mapping concept allows to
formulate problem and numerical method independently and allows to use
any
suitable numerical method
for problem solution without changes. This concept is
further enhanced by abstract sparse matrix interface, allowing to formulate numerical
method independently on sparse matrix implementation.
full restart support

The kernel supports full restart from
any previously saved state.
staggered analysis

allows to group basic problems together and to transfer and share
the solution fields between basic subproblems. The general design allows to use
different discretizations for the basic subproblems.
parallel
processing support

based on domain decomposition and message passing
paradigms. Many analyses can be run in parallel and very good performance
scalability can be obtained on various platforms. Message passing concept is highly
portable across many platf
orms (including massively parallel computers, shared
memory systems and workstation clusters), For developers, general classes for
efficient inter domain communication are provided built over the abstract general layer
for message passing libraries.
effici
ent sparse solvers

direct as well as iterative solvers are available. Direct
solvers include symmetric and unsymmetric skyline solver and sparse direct solver,
iterative solvers support many sparse storage formats and come with several
preconditioners. I
nterfaces to third party linear solver libraries are available, including
IML, PETSc (serial and parallel), and SPOOLES.
adaptive analysis support

multiple domain concept. Support for error estimation
with various remeshing criteria, support for primary
unknown and internal
variables
mapping. Fast spatial localization algorithms based on tree techniques are available.

one man show

OOFEM is name of whole method (I found some articles about oofem but not
related to the software), pages found by Google will
be less

Oo design is quite unusal, one has to derive a finite element problem from a
class…

Documentation is somewhat sparse and complex; could be better

Low funding of this project; i.e. future less obvious for me…

Many documents are just indexed from oo
fem domain…, so the Google weight is
lower
OFELI
(339 / 32)

GPL
http://ofeli.sourceforge.net/
(
O
bject
F
inite
E
lement
LI
brary) is an object oriented library of C++ classes for development
of finite element c
odes. Its main features are :
Various storage schemes of matrice (dense, sparse, skyline, tridiagonal).
Direct methods and preconditioned iterative strategies for the solution of linear systems of
equations.
Shape functions of most "popular" finite elements
Element arrays of most popular problems (Heat Transfer, Fluid Flow, Solid Mechanics,
Electromagnetics, ...).
The
OFELI
package is not only a library of classes for Finite Element de
velopments. The
package contains in addition :
A guided tutorial to learn how to use and develop finite element codes using the library
More elaborated codes for various types of probléme
An extensive documentation in PDF and HTML formats
Utility programs to convert mesh and output files and to generate simple meshes
+fully supports windows
+ support for materials

one man show

no high performance componenets
FELYX

Finite Element Li
brarY eXperiment
http://felyx.sourceforge.net/
(208 / 6)
* Documentation is only in German.
* This is GNU version of code made during PhD thesis, on which author no longer
works, last release June/2005, althou
gh there are listed some developers in SourceForge
* Destinated primarily to structural analysis(although general)
* No reference in Gogole scholár excerpt switzerland
* Title speak that this is more an experiment then a stable library
keyFE2 (381 / 1)
http://users.skynet.be/keyFE2/keyFE2.html
No reference in Google scholar, except the manual. No update for 3 years. One
developer. Natively whole application, although it could be used as a library a
s well.
Does not use high performance components. Oriented more to fluid flow probléme,
although author claim is general as well…
The Finite Element Library
–
FELIB (
Fortran
)
–
good
as tutoriál but only for Fortran developers
http://www.cse.scitech.ac.uk/msw/felib/felib

top.shtml

1150 / 50
http://www.softeng.cse.clrc.ac.uk/felib4/

download
A finite element library for the nu
merical solution of partial differential
equations. Very well documented/annotated source code, and comprehensive
introduction with tutorial examples make this an excellent choice for beginners.
The idea is to adapt the examples to your own purposes. The d
ocumentation is
part

complete and further program documents will be added over the next few
months. See also
our review
.
FE Tutorials and Introductory Materi
al
http://homepage.usask.ca/~ijm451/finite/fe_resources/node131.html
FeaTure (1m)
–
too simple; i.e. non performance effective, does not rely on
high performance components
, such as sparse matrices, 1 developer, non

gpl,
very short manual
Looks simple, maybe could be used for learning how to make custom finite element code…
http://www.tm.ctw.utwen
te.nl/onderzoek/DiekA/Feature/index.html
The deal.II,licence QPL (788 / ??)
–
considerable problem with
licence, see
http://en.wikipedia.org/wiki/Q_Public_License
, also it
is suited for adapt
ive meshes, which is not our case.
There seem to
be better solutions then this…
http://www.dealii.org/
Mouse (229.000)
–
Finite Volume not element, furthermore 5 years absolutely no update
http://www.vug.uni

duisburg.de/MOUSE/
Code_Aster is a general purpose finite element code released under the GNU General Public
License.
Oriented for mechanical engineering, futhermore komplex appplication, 1 million of
lines
of code…
www.code

aster.org
EXPDE (172 / 16)
http://www10.informatik.uni

erlangen.de/~pflaum/expde/Expde_Homepage.html
No
t primary suited for general mesh for finite elements, uses own semi

unstructured
grid. Does not use any third party component, there is only one developer.
Elmer (32.700
–
whole program, too
general
)
Open Source Finite Element Software for Multiphysical
Problems
Elmer is an open source multiphysical simulation software developed by
CSC
. Elmer
development was started 1995 in collaboration with Finnish Universities, research
institutes
and industry.
Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics,
heat transfer and acoustics, for example. These are described by partial differential equations
which Elmer solves by the Finite Element Met
hod (FEM).
These pages are intended to give information on the Elmer software and to improve the
information transfer in the Elmer community.
http://www.csc.fi/elmer/
FreeFem (12.100
–
but it is rather whole PDE or
iented programming language
…)
http://www.freefem.org/
HMD for Computer Modeling Home
(13.700
–
whole program
…)
http://www.lumanmagnum.net/physics/heldene
ng/
1. Introduction to the Finite Element Method (Hardcover)
"An Introduction to Finite Element Method" by J. N. Reddy.
http://www.amazon.com/Introdu
ction

Finite

Element

Mechanical

Engineering/dp/0072466855
2. Schaum's Outline of Finite Element Analysis (Paperback)
http://www.amazon.com/Schaums

Outline

Finite

E
lement

Analysis/dp/0070087148
3. The Finite Element Method: Linear Static and Dynamic Finite Element Analysis
(Paperback)
http://www.amazon.com/Finite

Element

Method

Dynamic

Analysis/dp/0486411818/ref=pd_sim_b_shvl_img_3/105

9335020

9700446
4. Finite Elements for Electrical Engineers (Paperback)
http://www.amazon.com/Finite

Elements

Electrical

Engineers

Silvester/dp/0521449537
Programming the Finite Element Method (Paperback)
http://www.amazon.com/Programming

Finite

Element

Method

Smith/dp/0470849703/ref=pd_sim_b_shvl_img_6/105

9335020

9700446
Concepts and Applications of Finite Element Analysis, 4th Edition (Hardcover)
http://www.amazon.com/Concepts

Applications

Finite

Element

Analysis/dp/0471356050/ref=pd_sim_b_shvl_img_1/105

9335020

9700446
Th
e Finite Element Method: Its Basis and Fundamentals, Sixth Edition (Hardcover)
http://www.amazon.com/Finite

Element

Meth
od

Basis

Fundamentals/dp/0750663200/ref=pd_sim_b_shvl_img_2/105

9335020

9700446
A First Course in the Finite Element Method (Hardcover)
http://www.amazon.com/First

Course

Finite

Element

Method/dp/0534552986/ref=pd_sim_b_shvl_img_5/105

9335020

9700446
The Finite Element Method for Engineers (Hardcover)
http://www.amazon.com/Finite

Element

Method

Engineers/dp/0471370789/ref=pd_sim_b_shvl_img_8/105

9335020

9700446
Finite Element Procedures (Hardcover)
http://www.amazon.com/Finite

Element

Procedures

Klaus

J%C3%83%C3%82%C2%BCrgen

Bathe/dp/097900490X/ref=pd_sim_b_shvl_img_6/105

9335020

9700446
Comments 0
Log in to post a comment