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 (Problem 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 Automatic 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-adaptive 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 standard 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 Python 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 organized as a collection of sub projects/components. DOLFIN, a C++/Python library for solving differential equations FErari, optimizations for evaluation of variational forms FFC, a compiler for finite element variational forms FIAT, tabulation of finite element function spaces 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 methodology, 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 between University of Chicago, Argonne National Laboratory, Delft 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/fenics/presentations/logg-geilo-2006-03/logggeilo-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-geilo2006-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-geilo2006-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 Ubuntu => 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 + Support 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 special 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.cfdonline.com/Links/soft.html - FEniCS - An open-source package for computational mathematical modeling. Has some functionality to solve Navier-Stokes. Looks 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 that 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 mathematical 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 done mostly by PhD students) The FEniCS 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 Mathematical 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, USA * 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 FEniCS. 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 software whenever possible. PETSc is used for the solution of linear systems on both serial and parallel platforms, and LASPack 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 list 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 problem 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 Fenics) 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 library 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 available 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 nothing 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 methods, 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 screenshot 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. Matlab 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 processing 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 material 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 adhesion 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 includes 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 things, 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 FETK 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 kernel 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 platforms (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. - efficient 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. Interfaces 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 oofem domain…, so the Google weight is lower OFELI (339 / 32) - GPL http://ofeli.sourceforge.net/ (Object Finite Element LIbrary) is an object oriented library of C++ classes for development of finite element codes. 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 developments. 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 LibrarY 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, although 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 as 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 numerical 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 documentation is part-complete and further program documents will be added over the next few months. See also our review. FE Tutorials and Introductory Material 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.utwente.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 adaptive 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 Not 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 Method (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 oriented programming language…) http://www.freefem.org/ HMD for Computer Modeling Home (13.700 – whole program…) http://www.lumanmagnum.net/physics/heldeneng/ 1. Introduction to the Finite Element Method (Hardcover) "An Introduction to Finite Element Method" by J. N. Reddy. http://www.amazon.com/Introduction-Finite-Element-MechanicalEngineering/dp/0072466855 2. Schaum's Outline of Finite Element Analysis (Paperback) http://www.amazon.com/Schaums-Outline-Finite-Element-Analysis/dp/0070087148 3. The Finite Element Method: Linear Static and Dynamic Finite Element Analysis (Paperback) http://www.amazon.com/Finite-Element-Method-DynamicAnalysis/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-MethodSmith/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-ElementAnalysis/dp/0471356050/ref=pd_sim_b_shvl_img_1/105-9335020-9700446 The Finite Element Method: Its Basis and Fundamentals, Sixth Edition (Hardcover) http://www.amazon.com/Finite-Element-Method-BasisFundamentals/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-ElementMethod/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-MethodEngineers/dp/0471370789/ref=pd_sim_b_shvl_img_8/105-9335020-9700446 Finite Element Procedures (Hardcover) http://www.amazon.com/Finite-Element-Procedures-KlausJ%C3%83%C3%82%C2%BCrgen-Bathe/dp/097900490X/ref=pd_sim_b_shvl_img_6/1059335020-9700446