## You are here

# Revision of *Open Source Software* from *Fri, 2007-06-08 12:52*

- RSS feed for comments on this page: crss/node/1394
- This page was started following discussions initiated by Mogadalai Gururajan.

**Finite element methods**

- Some pointers to open source FEM codes
- 1D and 2D Element-free Galerkin (EFG) method Matlab routines ; via .
- FEMPACK finite element routines -- suite of Matlab routines for PDEs; via .
- Extended finite element method codes ; via .
- Tahoe -- Nonlinear Finite Element and Mesh Free software from Sandia (see comment for more on Tahoe).
- OpenFEM
- FETK

**Open Source CFD and Coupled Codes**

**Microstructural evolution**

- Some pointers to open source codes for microstructural evolution
- Codes for simulations of dislocations ; via .

**Biomolecules**

**Molecules (Statics and Dynamics)**

- CAMP Open Software project (CAMPOS)
*Type*: Molecular Dynamics/Force Fields (via )*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 muffin-tin 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 atomic-scale resolutions where

that is required. The QC part of Asap is not yet running on parallel

computers.

- GROMACS
*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

non-biological systems, e.g. polymers.

- Lennard
*Type*: Molecular Dynamics/Force Fields*License*: GPL*Description*: Noble Gas Simulator.

- Molecular Modelling ToolKit
*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 ready-to-use implementations of standard

algorithms, MMTK serves as a code basis that can be easily extended and

modified to deal with standard and non-standard problems in molecular

simulations.

- MOSCITO
*Type*: Molecular Dynamics/Force Fields*License*: GPL*Description*: MOSCITO is designed for molecular dynamics

simulations of condensed phase systems defined by classical molecular

mechanics force-fields such as AMBER, OPLS, CHARMM and GROMOS.

- ORAC
*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.

- CP2K
*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 many-body

potentials.

**Visualization**

- SCIRun (via) -- Scientific Visualization code from University of Utah.
- AtomEye,
- VMD,
- RasMol,
- Raster3d
- MayaVi -- A scientific data visualization tool kit written in Python
- Gnuplot -- A copyrighted, but freely distributed plotting software

**Linear/Nonlinear Algebraic Solvers **

**Ordinary Differential Equation Solvers**

**Partial Differential Equation Solvers**

**Others**

- 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 must-visit 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, non-linear modelling, a guide to the available mathematical software (cross-indexed), 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.

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 one-stop shop for any of your code needs.

## 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

librariesinstead 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

ADVENTUREALADDINALBERTBASINCalculiXCURLY3DDANSOFTDeal.IIDOLFINDOUGEDF Code_AsterElmerEMAPEXPDEFEATFLOWFeaTureFECFELIBFELTFELyXFEMFEM2DLib ver. 2.01FEM_ObjectFEMLAB-2DFEMLIBFemlispFEMMFEMOctaveFEMSETFMS-1DFree Finite Element PackageFreeFEM, FreeFEM+, FreeFEM++, FreeFEM3DGEOCRACKGeoFEMGETFEM++HaploHMDiMOOSEimpactIMTEK Mathematica SupplementKASKADEkeyFE2KFEMLARAMY, FAULTS, PLATESLUGR ProjectMiniFEMMiniFEM (OpenFEM)MODFEMODULEFMGGHATNIST Modelling ProgramsNLFETOFELIOOFEMOpenFEMOpenSeesPadFEMParaFEMPARSYSPFEMPHYSICAPLTMGPolyDEPSURheolefSan Le's Free Finite Element AnalysisSEM2DPACKSOL1DSKK - FEA Programs Available as SharewareTOCHNOGtproteusUGVECFEMVAMUCHVAPASWARP3DZ88MiscellaneousBETONFE2DFEAFE programs for the MacFRMECHGBW16GRAPE2 (GBEAM)SANS30TBAPMiscellaneousAMSES Frame2DAnalysis for WindowsASAPATLANTIC v2.0CADRECALFEMCANMETCMISSContinuityCOOLDynaToolFELIPEFEMISFEPCFRANC2DFRANC2DLFRANC3D (with BEM, OSM)GetDPHPEIMAGINEMagSolveMefistoMGD9V/THREEDMICROSAFE, MSAFE, MU-FEAOOFPDELabPhoenicsPlastFEMStructural analysis softwareStudent's QuickFieldSSIIMSINDA/FLUINTUNAADMeshAMR1DBAMGCascaChalmeshCOGCommercial MeshersCUBITEasyMeshGenie++GEOMPACKGiDGrAL - Grid Algorithms LibraryGRUMMPgmshIGRIDlibMeshMesh Generation HomepagesMeshgenMETISMGRIDGEN/PARMGRIDGENpdnMeshQHULLQMGSurvey of Meshing ProgramsTriangleTriGridXGENMiscellaneousGiDGeomviewGMVGprKhorosOpenDXPicassoPV-WAVEVTK (Visualization Toolkit)xd3dMiscellaneousATLAS - Linear AlgebraCOGSComputational Algebra SystemsDifEquEquation SolversfemMLFinite Element TranslatorsGeneral-Purpose equation Solver, GPSIML++Math-Net LinksMathematical Resources on the WebMathematical SoftwareMGLABMGNet: The MultiGrid NetworkmgsorMuPADNETLIBNumerical Analysis ObjectsOctaveOpen Directory ProjectpARMSPETScPIMPrometheusPublic Domain Software for Earth ScientistsPublic Finite Element Model ArchiveRLaBS-LangScilabScott Sloan's Profile and Wavefront Reduction AlgorithmSearch EnginesSUNASUNDIALSTeLaTemplatesTOMS Algorithms 582, (508, 509)TranslatorsUniGuide Academic Guide to the InternetVis5DVIS-ADYorick## Some Useful Links

Useful Links:

http://homepage.usask.ca/~ijm451/finite/fe_resources/node15.htmlhttp://www.tecgraf.puc-rio.br/~amiranda/MEF/MEF.htmlhttp://www.scicomp.uni-erlangen.de/archives/SW/diffequ.htmlhttp://www.sai.msu.su/sal/B/2/http://web.ift.uib.no/~jankoc/hfag/femres.txthttp://www.ann.jussieu.fr/free.htmhttp://www.dmoz.org/Science/Technology/Software_for_Engineering/Finite_Element_Analysishttp://www.indiana.edu/~statmath/bysubject/numerics.html#diffeqhttp://gid.cimne.upc.es/links/index.htmlUseful 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.htmlAMIGOS:

http://www.iue.tuwien.ac.at/phd/radi/node31.htmlBROOK:

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.htmlESYS.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.htmlJSIM:

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://www-unix.mcs.anl.gov/petsc/petsc-as/PSIDE:

http://www.cwi.nl/archive/projects/PSIDEMANPACK:

http://www.scicomp.uni-erlangen.de/archives/SW/SYISDA.htmlPDEASEDOMAIN:http://www.scientek.com/macsyma/pdmain.htmPDESOL:

http://www.wias-berlin.de/software/pdelib/OPENFEM:

http://www-rocq.inria.fr/OpenFEM/## Molecular Dynamics

Type: Molecular Dynamics/Force FieldsLicense: GPLDescription: 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 muffin-tin 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 atomic-scale resolutions where that is required. The QC part of Asap is not yet running on parallel computers.Type: Molecular Dynamics/Force FieldsLicense: GPLDescription: 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 non-biological systems, e.g. polymers.Type: Molecular Dynamics/Force FieldsLicense: GPLDescription: Noble Gas Simulator.Type: Molecular Dynamics/Force FieldsLicense: GPLDescription: The Molecular Modelling Toolkit (MMTK) is an Open Source program library for molecular simulation applications. In addition to providing ready-to-use implementations of standard algorithms, MMTK serves as a code basis that can be easily extended and modified to deal with standard and non-standard problems in molecular simulations.Type: Molecular Dynamics/Force FieldsLicense: GPLDescription: MOSCITO is designed for molecular dynamics simulations of condensed phase systems defined by classical molecular mechanics force-fields such as AMBER, OPLS, CHARMM and GROMOS.Type: Molecular Dynamics/Force FieldsLicense: GPLDescription: 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 FieldsLicense: FreewareDescription: 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 many-body potentials.Type: Molecular Dynamics/Force FieldsLicense: ProprietaryDescription: No descriptionType: Molecular Dynamics/Force FieldsLicense: ProprietaryDescription: No descriptionType: Molecular Dynamics/Force FieldsLicense: ProprietaryDescription: No description## Tight Bending

Type: Tight bindingLicense: GPLDescription: 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 bindingLicense: ProprietaryDescription:Type: Tight bindingLicense: ProprietaryDescription:## Quantom Mechanics

Type:Quantum Chemistry: Hartree Fock/MP/CC/CI

License:GPL

Description: A numerical Hartree-Fock program for diatomicmolecules.

Type:Quantum Chemistry: Hartree Fock/MP/CC/CI

License:GPL

Description: A molecular modelling software package with nice3D-visualization tools.

Type:Quantum Chemistry: Hartree Fock/MP/CC/CI

License:GPL

Description: MPQC is the Massively Parallel Quantum ChemistryProgram.

Type:Quantum Chemistry: Hartree Fock/MP/CC/CI

License:GPL

Description: PyQuante is a suite of programs for writing quantumchemistry software. The program is written in the Python programming language,

but has many "rate-determining" 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: QuantumChemistry: 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: DensityFunctional

License: GPLDescription:(CAMPOS)

Type: Density FunctionalLicense:GPL

Description:Type:Density Functional

License: GPLDescription: Octopus isa 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 time-dependent form (TDDFT) when doing simulations in time.

Nuclei are described classically as point particles.

approximation.

Type: DensityFunctional

License: GPLDescription:Type:Density Functional

License: GPLDescription: The abinitio 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 Kohn-Sham functions in form of two-component

spinors.

Type:Density Functional

License: FreewareDescription: Thetutorial version of a Car-Parrinello code

Type:Density Functional

License: FreewareDescription:Type:Density Functional

License: FreewareDescription: AGeneral Scalable Density Functional Code

Type:Density Functional

License: FreewareDescription: TheFHI96MD program is an efficient code to perform molecular dynamics simulations

and total-energy 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 density-functional theory, first-principles pseudopotentials, and a

plane-wave basis set.

Type:Density Functional

License: FreewareDescription: AProjector Augmented Wave (PAW) code for electronic structure calculations.

PartII: pwpaw for periodic solids in a plane wave basis. Computer Physics

Communications 135, 348-376 (2001)

## Pseudopotential/Pseudoprojector generators

Pseudopotential

Type: Pseudopotential/Pseudoprojectorgenerators

License: GPLDescription: The 'UltraSoftPseudoPotential' (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 forelectronic structure calculations.

Part I: atompaw for generating

atom-centered functions Computer Physics Communications 135, 329-347

(2001)

Type:Pseudopotential/Pseudoprojector generators

License:Freeware

Description: The package fhi98PP allows one toTroullier-Martins types, employing common parameterizations of the local-density

approximation and the generalized gradient approximation for exchange and

correlation.

for unphysical ghost states of their fully separable (Kleinman-Bylander)

representation.

pseudopotential code

Type: Pseudopotential/Pseudoprojectorgenerators

License: FreewareDescription: Nodescription

## 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 non-linear models and atomistic-continuum 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 open-source 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 open-source or closed-source, 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 idea--for several reasons.

I can also see that in some cases it might lead to collaborations, and/or improvement of the existing software--at 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

thinly-veiled 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 two-way 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 Doxygen-generated documentation is up-to-date 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 self-explanatory in terms of the choices of parameters. If you have further questions, you can e-mail tahoe-help@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 degrees-of-freedom. 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 degrees-of-freedom. 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. thermal-elastic, 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 state-of-the-art 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

time-dependent 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 non-trivial 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 run-time 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 Deal-II feature set. It appeared no-one has used Deal-II so far for XFEM. (Please correct me if I'm wrong).

You may find a comparison of what Deal-II 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

ALBERTAis anAdaptive multiLevel finite element toolbox usingBisectioning refinement andError control byResidualTechniques for scientificApplications. Its design is based onappropriate 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 dimension-independent development and programming of a general class

of applications. In

ALBERTA, hierarchical 2d and 3d meshes arestored 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

xampleon 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 thermo-mechanical 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, I-DEAS and GMSH. Results can be saved in the same formats. I have 10-year 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 industrial-like 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 solid-fluid finite element program

I am just wondering whether there is any 3D finite element program for coupled displacement-pore 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 fluid-structure interaction

You can use COMSOL (

http://www.comsol.com/) to simulate fluid-structure interaction. I have used COMSOL software to analyze a microfluidic pump operated by solid actuator. There is also another software, CFD-ACE. 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 Open-source 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 open-source 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 user-friendly, we may see some good packages coming up. Otherwise they will remain as isolated packages as they are right now.

## Re: Open-source 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 user-friendliness. 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 open-source 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 open-source 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: Open-source 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 post-pro, 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 Open-source Cross-Platform IDE). We use Berlios as our code publishing platform. It often remains inaccessible to Non-EU 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 Open-Source 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 Open-Source Development. I'm an active developer of an Open-Source Cross-Platform 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 soil-water unsaturated coupled FE program also availabe in that site.

Regards.

## SOFEA open-source 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 open-source Matlab finite element toolkit, SOFEA. I hope you'll check it out (http://hogwarts.ucsd.edu/~pkrysl/sofea).

Cheers,

Petr