1.FENICS/DOLFIN (uses numpy), LGPL (864 / 64)

taxidermistplateSoftware and s/w Development

Nov 7, 2013 (3 years and 5 months ago)

54 views

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