Open Source Software
Submitted by Managers on Fri, 20070511 07:01.
 RSS feed for comments on this page: http://imechanica.org/crss/node/1394
 This page was started following discussions initiated by Mogadalai Gururajan.

Here are some links to open source codes/software available on the net; all this information is collected from different posts at iMechanica. It is quite possible that we missed some, and some that are listed are not open source. If so, please feel free to edit the post or leave a comment with relevant links so that we can edit the post.
If you write a post or comment about some codes/software or if you notice one while you are reading the posts at iMechanica, please leave a note in the comments or include the information in the listing below.
If you have some code you would like to share with mechanicians, write a post in your blog and leave a comment here, so that we can update the repository database.
We believe, over a period, we might be able to build a very authorotative and useful repository of codes here, so that this post becomes a onestop shop for any of your code needs.
Finite Elements
 Some pointers to open source FEM codes
 Pre and PostProcessors
 Gmsh

A threedimensional mesh generator with some CAD and postprocessing features. Free.
Comments: See comment here.
Expert opinion: not available
Rating:  Triangle

A twodimensional triangular element mesh generator. Free.
Comments: See comment here.
Expert opinion: not available
Rating:  Nonlinear Finite Elements
 CalculiX
 Code_Aster
 Impact

Explicit nonlinear finite element code. Has a simple preprocessor. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  OOFEM

Linear/Nonlinear finite elements for solids and some fluid and transport problems. Developed at the Czech Technical University at Prague. Good documentation. Free.
Comments: See comments here .
Expert Opinion: not available.
Rating:
 Tahoe
 Warp3D

Nonlinear finite elements for solid mechanics from the Univerty of Illinois at UrbanaChampagne. Free.
Comments: See comment .
Expert opinion: not available.
Rating: not rated. 
FEBio (via)

FEBio is a nonlinear finite element software package that is
specifically designed to address problems in computational biomechanics. Some of the
features of note include capabilities for contact, rigid bodies and kinematic joints,
nonlinear anisotropic constitutive models, simulation of active contraction,
poroelasticity, element formulations for nearlyincompressible materials and parallel
solution of the linear system of equations.  Linear Finite Elements
 Elmer

A multiphysics finite element software developed in Finland. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  FEMPACK finite element routines

Suite of Matlab routines for PDEs; via.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  FETK

Comments: not available.
Expert opinion: not available.
Rating: not rated.  OpenFEM

Comments: not available.
Expert opinion: not available.
Rating: not rated.  OOF

Tool for the linear finite element analysis of complex scanned microstructures.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  Extended finite element method codes ; via.

Comments: not available.
Expert opinion: not available.
Rating: not rated.  General Computational Mathematical Modeling
 FEniCS

A joint project between universities, national labs, and industry to create a next generation computational framework. Includes solver modules (DOLFIN ), compilers and optimizers for variational forms (FFC , FErari), a symbolic finite element engine (SyFi) among other things. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  GetFEM++

A C++/Matlab library that provides a variety of finite elements. GNU Public Licence. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  FeaTure

A C++ library that provides base classes for a variety of finite elements. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  Adaptive Mesh Refinement and Error Estimation
 PSIDE

Framework for solving systems of linear ODEs. Allows for parallel solution.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  ELLPACK

Framework for solving elliptic PDEs. Not really open source and requires a site license of
$250/year.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  FIPY

PDE solution framework from NIST.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  JSIM

Simulation framework for solving PDEs from Physiome.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  PDE2D

Twodimensional PDE solving framework.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  Elementfree Galerkin Matlab routines

Matlab routines for 1D and 2D Elementfree Galerkin (EFG) simulations from John Dolbow.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  Uintah
 CoolFluid

CFD code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  FeatFlow

Solver library and user interface for incompressible NavierStokes in 2D and 3D from the University of Dortmund. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  GETDP

CFD code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  HEDRA

CFD code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  LibMesh

Finite element library that's primarily been used for CFD applications. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  Uintah

Parallel C++ code for couple fluidstructure interaction simulations. Uses an Implicit Compressible Eulerian (ICE) CFD code for the fluid and the Material Point Method for the solid. From University of Utah. MIT License. Available for free upon request. Limited user documentation.
Comments: See comments here, here, and here.
Expert opinion: See comment here.
Rating: not rated.  Some pointers to open source codes for microstructural evolution
 Codes for simulations of dislocations

Dislocation dynamics code. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.  Biomolecules
 AMBER

Molecular dynamics code from Scripps. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  CHARMM ;

Molecular dynamics code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  GROMACS,

Molecular dynamics code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  NAMD

Molecular dynamics code from UIUC. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  NWChem

Molecular dynamics code from PNL. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  ORAC

Program for running classical simulations of biomolecules. Simulations can be carried out in the NVE, NPT, NHP, and NVT thermodynamic ensembles. GPL Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  TINKER

Molecular dynamics code from WUSTL. Free.
Comments: See comment here.
Expert opinion: not available.
Rating: not rated.
 AMBER
 Polymers, Metals, Gases
 AMBER

Molecular dynamics code from Scripps. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  CAMP Open Software project (CAMPOS)

Molecular dynamics and atomistic simulation codes from Denmark written in Python. GPL License (Free). The atomistic simulation tools include:
 Density functional code  dacapo
 Classical MD and quasticontinuum code  Asap
 Linear muffintin orbital code  LMTO
Comments: See comment here
Expert opinion: not available.
Rating: not rated.  CHARMM

Molecular dynamics code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  CP2K

Molecular dynamics code to do atomistic and molecular simulations of solid state, liquid, molecular and biological systems. The methods included range from first principles ab initio density functional methods to parametrised, classical pair and manybody potentials. Freeware.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  DL_POLY

Molecular dynamics code from UK. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  GROMACS

Molecular dynamics code primarily designed for biochemical molecules like proteins and lipids that have a lot of complicated bonded interactions. Also fast at calculating the nonbonded interactions (that usually dominate simulations) and may be used for research on nonbiological systems, e.g. polymers.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  LAMMPS,

Molecular dynamics code from Sandia. Free .
Comments: not available.
Expert opinion: not available.
Rating:  Lennard

Noble gas simulator. GPL Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  Molecular Modelling ToolKit

Library for molecular simulation applications. In addition to providing readytouse implementations of standard algorithms, MMTK serves as a code basis that can be easily extended and modified to deal with standard and nonstandard problems in molecular simulations.GPL Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  MOSCITO

Molecular dynamics simulations of condensed phase systems defined by classical molecular mechanics forcefields such as AMBER, OPLS, CHARMM and GROMOS. GPL Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  NAMD

Molecular dynamics code from UIUC. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  NWChem

Molecular dynamics code from PNL. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  ParaDyn

Molecular dynamics code from Sandia. Free.
Comments: not available.
Expert opinion: not available.
Rating:  TINKER

Serial molecular dynamics code. Free.
Comments: not available.
Expert opinion: not available.
Rating: not rated.
 AMBER
 SCIRun

Scientific Visualization software toolkit from University of Utah. State of the art algorithms for volume rendering and ray tracing. Includes a number of extremely efficient tools. MIT License.
Comments: See comment here.
Expert opinion: not available.
Rating:  AtomEye,

Comments: not available.
Expert opinion: not available.
Rating:  VMD,

VMD software ?
Comments: not available.
Expert opinion: not available.
Rating: not rated.  RasMol,

Rasterizing software ?
Comments: not available.
Expert opinion: not available.
Rating: not rated.  Raster3d

Rasterizing software?
Comments: not available.
Expert opinion: not available.
Rating: not rated.  MayaVi

A scientific data visualization tool kit written in Python.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  Gnuplot

A copyrighted, but freely distributed plotting software.
Comments: not available.
Expert opinion: not available.
Rating: not rated.  PETSC

Parallel solvers for linear systems of algebraic equations. Free
Comments: not available.
Expert opinion: not available.
Rating: not rated.  Amigos

Parallel solvers for linear systems of algebraic equations. Free
Comments: not available.
Expert opinion: not available.
Rating: not rated.  MANPACK

Parallel solvers for linear systems of algebraic equations. Free
Comments: not available.
Expert opinion: not available.
Rating: not rated.  Codes for miscellaneous applications

For rotations, Mohr's circles, visualization, elastic constants calculation etc; via .
 Some pointers to fast solvers
 GNU Scientific library

A collection of C/C++ library for a range of numerical tasks, and is a mustvisit site for anybody who is even remotely interested in using computers for scientific calculations. The GSL homepage also lists related packages, extensions/applications and wrappers for other languages.
 UbuntuScience

A comprehensive collection of software that can be run on Linux
 NIST software page

Among other things, the software listed include those for the study of multizone airflow, structure and properties of cement based materials, scientific visualization, statistical analysis, nonlinear modelling, a guide to the available mathematical software (crossindexed), and smoke plume modelling.
 FFTW

A C subroutine library for discrete Fast Fourier Transforms (FFT); benchmarked and portable, a choice program for FFTs
 Maxima

A GPL computer algebra system implemented in LISP that can do symbolic, and numeric computations (and, plotting too). Among other things, the code can do symbolic manipulations on tensors.
 Sage: Open Source Mathematics Software

A mathematical and plotting tool that can be used online or installed on WINDOWS, MAC and Linux systems, which includes interfaces to programs like Matlab, Mathematica, Magma etc., and is an open source alternative for the study and teaching of algebra, calculus, elementary to very advanced number theory, cryptography, numerical computation, commutative algebra, group theory, combinatorics, graph theory, and exact linear algebra.

Structural Engineering Software Database from BridgeArt.net.

Lists software by name, category. Searchable list. Provides rankings too.
Comments: See comment here.
Ordinary Differential Equation Solvers
Partial Differential Equation Solvers
Meshfree Methods
Open Source CFD and Coupled Codes
Microstructural evolution
Molecular Dynamics/Statics and Quantum Chemistry
Visualization
Linear/Nonlinear Algebraic Solvers
Others
Ranked Lists of Free/Commerical Software
An old thread on open source finite element code
Here is an old thread on open source finite element codes: What is status of open source finite element code?
Open source visualization software: SCIRun
Easy and fast visualization of results is an important requirement in scientific computing. We use a set of cuting edge visualization tools from the SCI Institute at Utah on a daily basis. The tool of choice for moderate sized data sets is SCIRun. The SCIRun/BioPSE software is opensource and the latest release can be downloaded from the SCIRun download page. The code is relatively well documented and easy to use and the interface is similar to the now defunct IBM DataExplorer. Use can also explore and download a range of tools from the SCI institute at http://software.sci.utah.edu/ including our code Uintah. You can browse our subversion repository here. Downloading the software requires that you be registered at the SCI institute site. You can contact me if you are interested in the Uintah side of things.
You a watch a video generated in SCIRun below.
Categorizing codes
I think the present form of listing codes may soon become unmanageable and too difficult to search. Is there a way in which we can categorize codes (for example like SourceForge) here? It would also help a lot if we can give a brief description of the codes. The description can be easily added once the technique for categorizing is implemented.
Mathematica!
If you are searching for a really developable code I advise use of Mathematica packages such as IMTEK and ACEFEM because their codes are greatly more readable. Another way is the use of opensource libraries instead of open source applications. For finite elements DEAL.II 5.2.0 has vast documentation.
Re: Mathematica
Dear Roozbeh,
I have taken the liberty to make your post more viewer friendly. Please try to avoid too much capitalization within a sentence. Also life becomes easier for the reader when sentences start with capital letters and each sentence is separated from the next by two spaces.
Mathematica may be useful for certain small applications. However, there are two problems that come to mind:
1) Mathematica is not available for free.
2) It is hard to run big problems with Mathematica based packages and a nightmare to parallelize.
Biswajit
More on open source software
Dear Guru, Biswajit, Arun:
Thank you very much for getting this page started. I took liberty to modify the title of the page to "Open source software". (see this screen shot) This title was suggetsed by Arun, and looks more explicit than "Open source review" as a button in "Quick guide" on the right side of iMechanica.
Following the suggestion of Arun, I've broken Guru's initial draft into categories. Please feel free to amodify. I think that it is fine for one piece of software to appear under two categories. It might be a good idea to add one sentence to each software to say what it is about. If a thread of discussion on a piece of software appears in iMechanica or elsewhere, we can also add a link of "user forum".
I have also set up Biswajit as a moderator, so that he, too, can edit pages.
If three of you subscribe to the RSS feed of the comments on this pape, when other users give tips on other open source codes or a review of a code, you will be alerted and can update the page.
Everyone: Please help Guru, Arun and Biswajit by adding comments.
A new channel in the header: software
I've just added a new channel "software" in the header of iMechanica, and relocated a few old posts into this channel. See a screen shot to learn how to post an entry to a channel.
Tahoe from Sandia
Tahoe is a nonlinear finite element code developed at the Sandia National Laboratories. The code contains a large range of tools for the analysis of solids at various length scales. Features include a number of material models, cohesive zone modeling, transferring data to and from a number of formats, etc.
In my opinion, the input format is a bit dated though it conforms to a number of standards. Also, a separate mesh generation tool is needed. The code is reasonably easy to understand but can be a bit difficult to modify without some hand holding.
You can see some of the models that have been implemented in Tahoe at its Doxygen documentation page.
[Update: I have added some more links from http://imechanica.org/node/938.]
Some Useful Keywords
Some Useful Links
Useful Links:
http://homepage.usask.ca/~ijm451/finite/fe_resources/node15.html
http://www.tecgraf.pucrio.br/~amiranda/MEF/MEF.html
http://www.scicomp.unierlangen.de/archives/SW/diffequ.html http://www.sai.msu.su/sal/B/2/
http://web.ift.uib.no/~jankoc/hfag/femres.txt
http://www.ann.jussieu.fr/free.htm http://www.dmoz.org/Science/Technology/Software_for_Engineering/Finite_Element_Analysis http://www.indiana.edu/~statmath/bysubject/numerics.html#diffeq http://gid.cimne.upc.es/links/index.html
Useful Forums in this regard:
http://imechanica.org/node/470
**Tahoe (Open Source) :
http://tahoe.ca.sandia.gov/
AZTEC: (Open Source):
http://www.cs.sandia.gov/CRF/aztec1.html
AMIGOS: http://www.iue.tuwien.ac.at/phd/radi/node31.html
BROOK: http://frontier.ams.sunysb.edu/frontiercalc2/PDE_Solver/
CEMTool: http://www.cemtool.com/
COMSOL:http://www.comsol.com/
COOLFLUID: http://coolfluidsrv.vki.ac.be/coolfluid/
DOPDEES: http://www.ee.washington.edu/faculty/dunham/
ELLPACK: http://www.cs.purdue.edu/research/cse/pellpack/pellpack.html
ESYS.ESCIPT: (Open Source): http://iservo.edu.au/esys/
FETK: http://www.fetk.org/
FIPY: (open source): http://www.ctcms.nist.gov/fipy/
FLEXPDE: http://www.pdesolutions.com/
GETDP: http://www.geuz.org/getdp/
HAMLAB: http://sts.bwk.tue.nl/hamlab/
HEDRA: http://smirnov.mae.wvu.edu/hedra/index.html
JSIM: http://www.physiome.org/jsim/
MATLAB PDE SOLVER: http://www.mathworks.com/
NUMERICA: http://www.numeritek.com/
PDE2D:(Open Source): http://www.pde2d.com/
PDESOL: http://www.pdesol.com/
PETSC: http://wwwunix.mcs.anl.gov/petsc/petscas/
PSIDE: http://www.cwi.nl/archive/projects/PSIDE
MANPACK: http://www.scicomp.unierlangen.de/archives/SW/SYISDA.html PDEASEDOMAIN: http://www.scientek.com/macsyma/pdmain.htm
PDESOL: http://www.wiasberlin.de/software/pdelib/
OPENFEM: http://wwwrocq.inria.fr/OpenFEM/
Molecular Dynamics
Type: Molecular Dynamics/Force Fields
License: GPL
Description: The CAMPOS project consists of several atomistic simulation tools and an environment for setting up atomistic calculations and visualizations, written in Python. Currently the atomistic simulation tools include dacapo, a density functional program, Asap, a set of python classes, that can be used for doing atomistic simulations of systems containing up to millions of atoms and a linear muffintin orbital (LMTO) program. Asap is a tool for classical molecular dynamics simulations. The current version supports parallel simulations on e.g. clusters of workstations. It scales well up to at least a few hundred workstations even with 100MB/s ethernet communication. The interatomic forces are described in the Effective Medium Theory (EMT). The modular structure allows for easy implementation of other interatomic potentials, without having to worry about the subtleties of parallel programming. Asap includes modules for quasicontinuum (QC) simulations. In regions of space where stress and strain fields are slowly varying, the atoms are replaced with a mesh of representative atoms, leading to a dramatical reduction in the number of degrees of freedom, while maintaining atomicscale resolutions where that is required. The QC part of Asap is not yet running on parallel computers.
Type: Molecular Dynamics/Force Fields
License: GPL
Description: GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles. It is primarily designed for biochemical molecules like proteins and lipids that have a lot of complicated bonded interactions, but since GROMACS is extremely fast at calculating the nonbonded interactions (that usually dominate simulations) many groups are also using it for research on nonbiological systems, e.g. polymers.
Type: Molecular Dynamics/Force Fields
License: GPL
Description: Noble Gas Simulator.
Type: Molecular Dynamics/Force Fields
License: GPL
Description: The Molecular Modelling Toolkit (MMTK) is an Open Source program library for molecular simulation applications. In addition to providing readytouse implementations of standard algorithms, MMTK serves as a code basis that can be easily extended and modified to deal with standard and nonstandard problems in molecular simulations.
Type: Molecular Dynamics/Force Fields
License: GPL
Description: MOSCITO is designed for molecular dynamics simulations of condensed phase systems defined by classical molecular mechanics forcefields such as AMBER, OPLS, CHARMM and GROMOS.
Type: Molecular Dynamics/Force Fields
License: GPL
Description: ORAC is a program for running classical simulations of biomolecules. Simulations can be carried out in the NVE, NPT, NHP, and NVT thermodynamic ensembles.
Type: Molecular Dynamics/Force Fields
License: Freeware
Description: A program package to do atomistic and molecular simulations of solid state, liquid, molecular and biological systems. The methods included range from first principles ab initio density functional methods to parametrised, classical pair and manybody potentials.
Type: Molecular Dynamics/Force Fields
License: Proprietary
Description: No description
Type: Molecular Dynamics/Force Fields
License: Proprietary
Description: No description
Type: Molecular Dynamics/Force Fields
License: Proprietary
Description: No description
Tight Bending
Type: Tight binding
License: GPL
Description: Yet Another extended Huckel Molecular Orbital Package (YAeHMOP) was developed by Greg Landrum whilest a graduate student in the research group of Professor Roald Hoffmann at Cornell University. YAeHMOP is intended to be an easy to use, transparent, extended Huckel calculation and visualization package which can perform calculations on both molecular and extended materials in 1,2, or 3 dimensions.
Type: Tight binding
License: Proprietary
Description:
Type: Tight binding
License: Proprietary
Description:
Quantom Mechanics
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
GPL
Description: A numerical HartreeFock program for diatomic
molecules.
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
GPL
Description: A molecular modelling software package with nice
3Dvisualization tools.
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
GPL
Description: MPQC is the Massively Parallel Quantum Chemistry
Program.
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
GPL
Description: PyQuante is a suite of programs for writing quantum
chemistry software. The program is written in the Python programming language,
but has many "ratedetermining" modules also written in C for speed. The
resulting code is not nearly as fast as Jaguar, Gaussian, or GAMESS, but the
resulting code is much easier to understand and modify.
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
Proprietary
Description:
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
Proprietary
Description:
Type: Quantum
Chemistry: Hartree Fock/MP/CC/CI
License:
Proprietary
Description:
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
Proprietary
Description:
Type:
Quantum Chemistry: Hartree Fock/MP/CC/CI
License:
Proprietary
Description:
Density Functional
Type: Density
Functional
License: GPL
Description:
(CAMPOS)
Type: Density Functional
License:
GPL
Description:
Type:
Density Functional
License: GPL
Description: Octopus is
a program aimed at the ab initio virtual experimentation on a hopefully ever
increasing range of systems types. Its main characteristics are:
Theory (DFT), in its timedependent form (TDDFT) when doing simulations in time.
Nuclei are described classically as point particles.
approximation.
Type: Density
Functional
License: GPL
Description:
Type:
Density Functional
License: GPL
Description: The ab
initio Spinor Project is a scientific code project based on density functional
theory (DFT) within the ab initio pseudopotential frame work. The code
implements the fundamental KohnSham functions in form of twocomponent
spinors.
Type:
Density Functional
License: Freeware
Description: The
tutorial version of a CarParrinello code
Type:
Density Functional
License: Freeware
Description:
Type:
Density Functional
License: Freeware
Description: A
General Scalable Density Functional Code
Type:
Density Functional
License: Freeware
Description: The
FHI96MD program is an efficient code to perform molecular dynamics simulations
and totalenergy calculations for molecules, perfect crystals, defects,
surfaces, interfaces and dislocations in crystals for materials as different as
semiconductors, simple and transition metals, insulators, etc. The program
employs densityfunctional theory, firstprinciples pseudopotentials, and a
planewave basis set.
Type:
Density Functional
License: Freeware
Description: A
Projector Augmented Wave (PAW) code for electronic structure calculations.
PartII: pwpaw for periodic solids in a plane wave basis. Computer Physics
Communications 135, 348376 (2001)
Pseudopotential/Pseudoprojector generators
Pseudopotential
Type: Pseudopotential/Pseudoprojector
generators
License: GPL
Description: The 'UltraSoft
PseudoPotential' (USPP) generation code from the group of David Vanderbilt at
Rutgers University.
Type:
Pseudopotential/Pseudoprojector generators
License:
Freeware
Description: A Projector Augmented Wave (PAW) code for
electronic structure calculations.
Part I: atompaw for generating
atomcentered functions Computer Physics Communications 135, 329347
(2001)
Type:
Pseudopotential/Pseudoprojector generators
License:
Freeware
Description: The package fhi98PP allows one to
TroullierMartins types, employing common parameterizations of the localdensity
approximation and the generalized gradient approximation for exchange and
correlation.
for unphysical ghost states of their fully separable (KleinmanBylander)
representation.
pseudopotential code
Type: Pseudopotential/Pseudoprojector
generators
License: Freeware
Description: No
description
Is there any reliable ranking for open source programs?
Working with an open source program takes a lot time. Choosing a nice open source program is really important. But i did'nt find any reliable ranking for open source programs. According to citation and availability I have found general purpose programs DEAL.II, ALBERT, GROMACS, and PETSC better than others. But for a special purpose it is evident that one program can be great.
For example Sandia's TAHOE as mentioned in the above have great tools for nonlinear models and atomisticcontinuum bridging. But it is not good choice for example in electromagnetism! And OPENFOAM was great for modelling supercavitation. Is there any one who has any information about QM/MM simulating using GROMACS?
Re: Reliable ranking of open source programs
Roozbeh,
I've edited out some of the capitalization from your comment. Please try to avoid that in the future because that too many capital letters make the comment hard to read.
Your lists of software are impressive. The ranking of a particular software depends on the particular use it is intended for. General purpose software is useful for a larger group of people than very specialized software. I would rank those higher. Ease of use and modification should also play a role in the ranking of software.
One way you could help at this stage is to give some details of the softwares that you have listed. You can restrict yourself to those that you have actually used and know the strengths and weaknesses of. You could also rank these yourself and then we can list these on the main page.
Biswajit
Should iMechanica regularly review software?
The large number of opensource software listed by Roozbeh seems to raise a question: Should iMechanica regularly review software?
One possible mode of operation can be similar to the jClub. A few enthusiastic users form a council, which then invites other individuals to review software. Each month, say, an individual selects one theme, or just a piece of software, writes what he knows about the software. What does the software do? Which other software are competitors? Who are the developers? The software can be either opensource or closedsource, so long as it is likely to be useful to mechanicians. The review may be placed as the top post in the Channel "software" for the month, or may be even placed on the top of the front page for the first week.
Other experienced users can add their experiences with the software, or ask questions. Individual software may have its own web site and online community. What iMechanica may offer is a pointer to that community, as well as a comparision of various similar software packages.
Is this a useful thing to do for iMechanica?
Yes! Software review is a great idea
Dear prof. Suo,
I think it is a great ideafor several reasons.
I can also see that in some cases it might lead to collaborations, and/or improvement of the existing softwareat the minimum, it will at least make the users aware of any problems or grey areas that mihgt be lurking behind the black box. Hence, I guess an nClub (for numerical Club) would be very welcome!
Reviewing software is a welcome addition
Dear Prof. Suo,
I also think that reviewing software in a forum similar to JClub is a very good idea. It is certainly a very unique addition to iMechanica. I like Guru's suggestion for an apt title (nClub) as well.
Software articles
Zhigang,
As someone whose primary interest is computational mechanics and who
works in the commercial software industry, I would welcome more
discussions of software. I'm not exactly sure what form this should take or
how to encourage it, though.
As you can imagine, it is extremely difficult to write a broad "review" of
a general purpose analysis package. It becomes even more difficult if
more than one code is involved; the author has to be something of an
expert in all packages. These kind of reviews typically degenerate into
a Consumer Report style checkbox format that I don't think is
particularly useful.
What seems more useful to me would be articles that focus on a user's
experience with a particular problem or small class of problems.
One source of these might be student projects
from an advanced FEA or applied mechanics class. Could be
an opportunity for the students to share some useful insights with a larger
audience. These users may not, in general, be "experts" with the software
but, by the time they finish the project, they may have become experts
in a specific area of the software.
I haven't followed the jClub procedure that carefully but I can imagine
something like that would work here. Perhaps interested authors could
submit abstracts, one of which would be selected each month for the
feature article. I think some sort of editorial control might be necessary
to keep commercial developers (like me ) from turning these articles into
thinlyveiled advertisements.
Bill
Open Source Software
I have added the possibility of having links to expert opinions and ratings in the open source software page. Please add comments rating the software that you have used. For now the maximum number of allowable smileys is five. I'll average your ratings and post a rounded number of smileys in the main page.
categorized information
i think most information and details about a software may be find in it's
web page.
of course, an experienced user, with a short example or short comment can
make the process of using the software more easier. but i think one of primary
difficulties for researchers is to find a suitable software for special purpose.
For example, What is the main advantage and disadvatages of DEAL.II on ALBERT.
both of them are developed for solve PDE's using Adaptive Finite Element method.
but which of them is better for a special work. Sometimes, Using a suitable
software to do a specific task make it more simpler. it think categorization of
existent softwares is a really good manner to help investiagtors to do so. in
addition, in the case of giving infomation about a software it must be done in a
categorized way. questions and answers about open source softwares are found in
the internet very much but finding a specific answer for a special questions
some times is harder than try and error. because this information are unsorted.
this problem may be handled by sort answers and questions of users. overally i
think it is very good idea. but categorization of information is very very
important too.
Re: A software review club
Zhigang asked me to comment on the software review club idea a couple of weeks ago. Most of the ground that I'd have liked to cover has already been discussed by Zhigang, Guru, and Bill. The idea is great and can be implemented quite easily. Bill had misgivings about the forum turning into advertisement space. I feel that since this is a twoway forum and more than one person may comment about their experience with a particular software the effect of such misuse will be small. After all we would all like to advertise something that we like  which is the point of the forum. I suggest that Guru/Arun/Bill/Rozzbeh decide on the first instalment of the software club with Guru acting as the moderator in charge (the idea evolved out of his initiative after all). Rather than discuss all aspects of the software in one post we should follow Bill's suggestion about a special topic at a time.
Personally, I'm more interested in seeing open source software take over the role that commercial software (such as Abaqus) plays today. That will need a significant amount of commitment from a few key developers who can take the ball and run with it. These developers will have to be graduate students under the guidance of an expert lead. Professors and other senior researchers probably have too many other fishes to fry to be able to put in the required time. However, they can provide the expertise via a frum such as iMechanica.
I see Tahoe as a software that can become the open source replacement for commercial FE codes. However, I'm not sure about the details of the licensing model that they follow and what needs to be done to make it GPL compliant. I would like to see more discussion on iMechanica on what can be done to reach the open source goal.
Biswajit
open source software
Biswajit,
Like you, I have wanted for a long time to see a more active open source mechanics software community. If iMechanica can help make this happen, it would be great.
I'd like to hear more about your experiences with Tahoe. After first becoming aware of it from an earlier post, I went to their web site to find out more. I started out looking for a FAQ; couldn't find anything like that. The Tahoe Users Guide is four years old. I assume the Doxygengenerated documentation is uptodate but this sure isn't the most straightforward way to get started with new software. I did finally manage to download the code but didn't find any kind of introduction there.
Do you have any suggestions for getting started with this package?
Do you have more information on the organization of this project? Is it still actively supported by Sandia/DOE?
Thanks.
Bill
Hi Bill, I'm one of the
Hi Bill,
I'm one of the adminstrator of Tahoe at Sandia. The code does not have a user guide or a comprehensive FAQ and that is a large impediment for people who want to get started on the code. Tahoe is not an official Sandia/DOE code in that there are no funds devoted to its maintainance or development. It was a labor of love of Patric Klein, a former Sandian, that many people like myself have adopted for their research. A few of us and Patrick still maintains it in our spare time and develop on it for our work. To get started, I suggest you download the open source version from sourceforge and download an xml reader such as Xample. The user guide, though four years old, is also helpful in that it gives you an idea of the avaiable elements, materials, and solvers available in the open source version. The format of the input file has changed radically, but there are updated benchmarks in the benchmark directory that can help get you started. The xml input file is selfexplanatory in terms of the choices of parameters. If you have further questions, you can email tahoehelp@sandia.gov or post on the Tahoe forum. Thanks.
Vicky Nguyen
Tahoe basic design question
Vicky,
Thanks so much for your reply. It is great to have a Tahoe developer here on iMechanica.
I followed your suggestions about downloading the code and perusing the manual. I've spent a bit of time looking through the code but have been unable to answer a fairly fundamental question. I'm hoping you might point me in the right direction. I would post the question to the Tahoe forum but I think other iMechanicians may also be interested in knowing the answer.
Here is the question. It appears from the manual and code that Tahoe supports both solid and heat transfer problems. But it isn't clear to me how easily it can support more general nodal degreesoffreedom. Suppose for example that I would like to add an element for coupled elastic, thermal, and electrical behavior (i.e. displacments, temperatures, and electrical potential at the nodes). Is this possible? Can you give me a brief idea of the steps? I found this method: BasicFieldT::Initialize() and it appears to be related to this question but can't find where the method is called.
A related question has to do with rotation degreesoffreedom. Does Tahoe support these? I didn't see any beam or plate elements when I looked through the Elements directory. Basically I'm wondering how hard it would be to add these types of elements.
Thanks again for the help.
Bill
Hi Bill, Tahoe does
Hi Bill,
Tahoe does support general degrees of freedom for coupled problems, and there are some examples of this in the developer's version not in the open source version available on sourceforge. Do you want to implement a fully coupled problem i.e. thermalelastic, where you have a monolithic solution phase with a big stiffness matrix or do you want to implement a weakly coupled system with a staggered solution scheme? The implementation would be very different for either cases. Assuming that you'd like the do the former fully coupled case Tahoe allows you to specify an arbitrary number of nodal degrees of freedom in the the .xml input file under the "nodes" tag. The class FieldT manages initial conditions and nodal boundary conditions (i.e. displacements, nodal forces) for your defined nodal dofs and handles the interface between the element class and the solver class (i.e. integrators). It stores as member data, arrays of the nodal values and its first and second derivatives for the current and previous time step. The continuum element classes are all derived from ContinuumElementT which handles the mapping from the global ordering to the local element ordering of the nodal dofs (SetLocalArrays) as well as the initialization of the shape functions (SetGlobalShape). The element classes passes interpolated integration point values of the nodal dofs to the material class so that you can calculate your constitutive relations such as stresss or heat flux.
I hope this helps.
Vicky
DEAL.ii is a GOOD library too. its GENERAL and POPULAR
deal.II is a C++ program library targeted at adaptive finite
elements and error estimation. It uses stateoftheart programming techniques
of the C++ programming language to offer you a modern interface to the complex
data structures and algorithms required for adaptivity and enables you to use a
variety of finite elements in one, two, and three space dimensions, as well as
timedependent problems.
The main aim of deal.II is to enable development of modern
finite element algorithms, using among other aspects sophisticated error
estimators and adaptive meshes. Writing such programs is a nontrivial task, and
successful programs tend to become very large and complex. We therefore believe
that this is best done using a program library that frees the application
programmer from aspects like grid handling and refinement, handling of degrees
of freedom, input of meshes and output of results in graphics formats, and the
like. Also, support for several space dimensions at once is included in a way
such that programs can be written independent of the space dimension without
unreasonable penalties on runtime and memory consumption.
XFEM Deal.ii?
Hi,
I think that two tests could be performed to ensure a library is generic enough:
1) code partition of unity enrichmen, XFEM, GFEM, PUM, PUFEM...
2) code meshfree methods
Any comments as to the possibilities of these codes for such endeavours? By experience, this is not trivial, with any library.
Dr Stephane Bordas
http://people.civil.gla.ac.uk/~bordas
XFEM Deal.ii?
Couple of months back I had the same question regarding the available FEM libraries. I had a quick glance through the DealII feature set. It appeared noone has used DealII so far for XFEM. (Please correct me if I'm wrong).
You may find a comparison of what DealII can't do from the following link.
http://home.gna.org/getfem/getfem_faq.html
I don't have any test results to prove their claims. But for sure, one can write a XFEM program with GetFem++ (Though I posted some negative opinion about them). They do provide a sample code to analyse a XFEM problem, too.
The same is true for meshfree methods, too.
ALBERTA
ALBERTA is an
Adaptive multiLevel finite element toolbox using
Bisectioning refinement and Error control by Residual
Techniques for scientific Applications. Its design is based on
appropriate data structures holding geometrical, finite element, and algebraic
information. Using such data structures, abstract adaptive methods for
stationary and time dependent problems, assembly tools for discrete systems, and
dimension dependent tasks like mesh modifications can be provided in a library.
This allows dimensionindependent development and programming of a general class
of applications. In ALBERTA, hierarchical 2d and 3d meshes are
stored in binary trees. Several sets of finite elements can be used on the same
mesh, either using predefined ones, or by adding new sets for special
applications. Depending on the currently used finite element spaces, all degrees
of freedom are automatically managed during mesh modifications.
ABOUT TAHOE!
I Have Some problems for install xample on my computer. How can i install it. on FEDORA 6.0!?
CODE_ASTER
Unfortunately open source FE codes cannot most of the time be compared to commercial ones in terms of functionnality and maintenance. Reasons are easy to understand: these projects involve in general only a few persons and when they move to other business interests, the project stalls. There are however a few exception: OpenFOAM seems to be one for CFD modelling (I don't have experience with this code) and Code_Aster for Solid Mechanics. Code_Aster is being developed by EDF, a large french electricity company. They use Code_Aster for their internal needs in terms of thermomechanical modelling. Considering their rather large community of users (more than 100 FE users only for EDF) and the resource they use to this project (probably a few dozens of developers working at least regularly on it), it is no surprise that CODE_ASTER has become a very powerfull tool. Capabilities are very large (thermal analysis, mechanical analysis, dynamic analysis, fracture mechanics,...). Code can import meshes from SALOME, IDEAS and GMSH. Results can be saved in the same formats. I have 10year experience with structural mechanics, mostly with ABAQUS but I have used as well NASTRAN, RADIOSS and SAMCEF. I have used CODE_ASTER for substructuring (Super elements) and thermal simulation of welding. In my opinion, there is no real difference between CODE_ASTER and ABAQUS. ABAQUS seems to be better suited for non linear anlyses (contact) but CODE_ASTER has its adavantage (substructuring is far better than in ABAQUS). I would thus recommend CODE_ASTER for people wanting a free, capable, reliable FE software able to perform industriallike simulations. Documentation is very good, unfortunately in french (but an english translation seems to have begun).
Rating:
CalculiX
I have been working with/on CalculiX for a few years now and am
responsible for the Windows port. Since I have this bias, I will not
include a rating and taint your polling results.
The reasons I chose to get involved with CalculiX are that the solver and associated
tools are under active development, are fully documented (in English) and there is a forum
for support. It also has a umat interface and an input deck format that will be familiar to any Abaqus users.
Primary website: http://www.calculix.de
Windows port: http://bConverged.com/calculix
Forum: http://groups.yahoo.com/group/calculix
FYI: CalculiX probably ought to be categorized
as a nonlinear finite element application.
Is there any coupled solidfluid finite element program
I am just wondering whether there is any 3D finite element program for coupled displacementpore water pressure analysis for consolidation process, the solid phase could be linear or nonliear and the fluid could be linear or nonlinear...
Thanks a lot!
COMSOL is available for fluidstructure interaction
You can use COMSOL (http://www.comsol.com/) to simulate fluidstructure interaction. I have used COMSOL software to analyze a microfluidic pump operated by solid actuator. There is also another software, CFDACE. But, my colleagues prefer COMSOL. I hope this information is useful for you.
Seungtae
Tochnog program (from
Tochnog program (from sourceforege) is especially suited for consolidation and geotech work. It is kinda old and is not supported anymore, Still compiles ok. The author has chosen to support it commercially.
HTH
osman
Mathematical view Vs. Physical View
Most of FEM Packages either Opensource or not which i have seen ever are based on phsycial aspect of finite element method. Interpreting Materials as their Stress strain relation. i think in practice mathematical point of view in finite element iss more interesting. because its generality in defining elements depend on PDE which we want to solve it. and its clearity in defining ERROR and Refining the mesh. and its comparablity to other mathematical methods. I have not ever seen commerical finite element package which based on the MATHEMATICAL view. OF course COMSOL and FEMLAB could be such examples but their general PDE is very limited. DEAL.II and ALBERT of examples of opensource programs in this aspect. as their citation shows many users have used them by now and their bugs may be few. some examples of their usage which must of them are mechanical exists in their site and shows their applicablity in our way. its not bad to take a glance at them and use them in finite element projects. their expansion would result to more general finite element package we need in future.
Open source libraries with mathematical aspect
The mathematical point of view is a good aspect as you've explained. But some of these Opensource packages are so cryptic, it raises a question about their goal.
My research area is in xFEM. For the past couple of months I was suffering with one such package. I started with GetFem++. Here is the horrible experience that I faced.
1) Initially it's sample were exporting garbage vtk output files (which were not recognised by MayaVi or VisIt). Later I found that I should export the VTK files in ASCII text.
2) The documentation is insufficient. I should say it's bare minimum.
3) The GetFem++ library uses horrible naming scheme. E.g., to specify boundary conditions, the class names starts with mdbrick_.
4) The source code has very little comments. On top of that it uses a large number of templates. This make the code quite unreadable.
E.g., the following code can be compiled. But if such code is present in over 100s of files, it's really difficult to understand what's going on.
#include<iostream>
using namespace std;int main(){cout<<"Hello World"<<endl;return 0;}
I have fair knowledge of programming. But till date I couldn't figure out how to write a basic xfem analysis program with it.
An opensource source without proper documenation is as good as an closed one. So even if an average user, like me, wishes to use their goodness and contribute by extending it, there are still large number of hurdles to cross.
In my honest opinion, if these packages sacrifice a little bit of Software Engineering and be more userfriendly, we may see some good packages coming up. Otherwise they will remain as isolated packages as they are right now.
Re: Opensource libraries
Yes, I can empathize with you. With C++, one can get carried away with too much ``templatizing'' and/or making it very general (differential forms for constitutive laws and for bilinear forms, etc.). Such a need might not be necessary, even though it is mathematically aesthetic and elegant. Often, if the package is focused on just a few specific goals, then it is easier to meet the demands of readability, speed, and userfriendliness. That said, if a library does provide X and Y functionalities, then it might not meet the needs and/or expectations of those who also wan't Z_1, Z_2, . . , Z_n. Overall, linear solvers are a good opensource library example that are mature and used by many; the service they provide is just one (solving Ax = b for different forms of A). To expect such from opensource fem codes is a tad unreasonable. For the purpose of learning, understanding (pros and cons), and appreciating the subtleties of any computational model, there is no substitute to coding the key ingredients of the same by oneself.
Re: Opensource libraries
Thank you for your reply.
I agree with you completely that there is no substitute of coding these things by myself. I intend to do the same after I familiarise with the xfem analysis procedures.
At the moment I'm using a xfem code published by Dr. Stéphane BORDAS (http://www.civil.gla.ac.uk/~bordas/codes/xfemMatlab/xfemMatlabCode.rar). This one has given me a good insight on how to proceed.
But I have few queries related to the input / output format that I should use while writing my own program.
1) Which input format do you suggest me to use in my program so that I can extract the mesh & other related informations from a commercial FEA package? I have access to ANSYS and ABAQUS.
2) Which output format do you recommend? During the testing of GetFem++ sample programs I encounterd files with VTK and OpenDX format. I came to know that VTK file formats doesn't support multiple meshes in a single file. OpenDX file can solve this. Kindly post if you know any alternative file formats that can be used.
Thanks in advance.
Biplab
OpenXFEM++ fracture and Ph.D's
Hi!
Thanks for using our code. Nguyen Vinh Phu is the author of this matlab code. We also developed an open source XFEM code for any problem, and we are planning to introduce it into OOFEM, but we need people to help us with this. If anyone is interested, it would be a pleasure to introduce OpenXFEM++ into OOFEM with them, I think that this will be a nice step for the community.
I advise the use of gmsh for pre and postpro, it is a really nice tool.
All the best form Glasgow,
Stephane
PS: I have three Ph.D. theses available in fracture mechanics.
Dr Stephane Bordas
http://people.civil.gla.ac.uk/~bordas
Re: OpenXFEM++ fracture and Ph.D's
Thank you very much for your reply and your suggestion.
I went through the documentation of OpenXFEM++ and also it's code embedded in it. The code is quite readable and thanks for making it that way.
But is there any plan to release it through some open source software publishing platform?? I mean to say like using SourceForge.Net or Berlios (This is based in Germany). That would help other members to contribute code to the project.
Though I have some complaints against Berlios. I'm an active developer of Code::Blocks (An Opensource CrossPlatform IDE). We use Berlios as our code publishing platform. It often remains inaccessible to NonEU developers (like me).
I wish I could contribute to your project. Definitely if I use OpenXFEM++ in my future development, I'll post improvements, if any.
Thanks,
Biplab
http://biplab.in
OpenXFEM++ sourceforge
Hi Biplab,
It is great to see your interest. OpenXFEM++ is not yet released on an open source term, but this was our next step. We are also trying to couple it with OOFEM, and then, perhaps it can be released that way. My trouble was that I did not know how many people would be interested in contributing, and thought it would not make much sense for such a "simple" code to be released this way. However, I do not know if this is true or not. I could use a lot of help to further develop the code (for instance, make it more efficient and parallel).
Thank you for your suggestions, let's keep this flowing stephane . bordas @ gmail . com
Dr Stephane Bordas
http://people.civil.gla.ac.uk/~bordas
Re: Open source libraries
:) People working for open source projects are usually really passionate about their work but
... programmers/developers don't like to write code documentation if they do not have to.
I think it is rather the rule that open source codes come at best with automatically generated documentation.
Re: Open source libraries
Thank you for your reply.
I do agree with you with this trend among OpenSource developers. I do not blame them as most of them often develop it at their free time and it's the code that matters to most of them. But most of them follow certain rules while naming the variables and different classes so that the other members are able to decipher the code.
I gave one example of an unusual GetFem++ class name. Honestly I appreciate their hard work. But I'd request them to make the code more readable.
PS: I do actively contribute in OpenSource Development. I'm an active developer of an OpenSource CrossPlatform IDE (Code::Blocks, http://forums.codeblocks.org/index.php/board,20.0.html)
Blender, TetGen, ParaView, and MechSys
Hi All,
I would like to suggest Blender as a drawing tool, TetGen as a mesh generator, and ParaView as a visualization tool. After the geometry is defined with Blender, someone may use a Python script: tetgen_export.py to generate the input files of TetGen. Additionally, for C++ developers, someone may use the libraries available in MechSys in order to, or write his/her own FE program or use a 3D soilwater unsaturated coupled FE program also availabe in that site.
Regards.
SOFEA opensource Matlab finite element tool kit
I saw on this page some discussion of Matlab versus FORTRAN versus C++. Perhaps you'll pardon my plug for my opensource Matlab finite element toolkit, SOFEA. I hope you'll check it out (http://hogwarts.ucsd.edu/~pkrysl/sofea).
Cheers,
Petr