User login


You are here

What is the status of open source finite element code?

FEMs are widely used in education, research, and industries. What is the prospect of having a vibrant community to evolve an open-source finite element code? What are the potential benefits for such a community and code? Has anybody tried?

Presumably whoever active in this effort may find support from government funding agencies and industries.

Xi Chen's picture

see The code is available for $750.

Zhigang Suo's picture

Xi: Thank you very much. I looked at the site you gave, but information seems to be limitted. Do you use FEAP? How does it compare to the comercial code ABAQUS? Do you work within this open-souce FEM community?

We use FEAP quite a bit here in the Computational Mechanics Laboratory at Duke University, and have also used ABAQUS in the past. Moreover, several of our former Ph.D. students now work for ABAQUS. So I'll say what I think.

In the world of researchers working with finite elements and the finite element method, there exist both analysts and developers. Here, I define an analyst as someone who views the FEM as primarily a tool, something like a fairly sophisticated calculator. An analyst might be interested in, for example, studying the deflection of a composite beam or the buckling of a thin film. However, analysts are rarely interested in modifying the details of the code itself.

For analysts, ABAQUS is a great code. It provides a reasonable user-interface, access to *some* subroutines, and technical support is readily available.

Developers, on the other hand, are concerned with the development of numerical methods themselves. Finite element developers focus on the technical challenges of the method. For example, what is the best way to treat fourth-order problems on arbitrary domains? For a variety of reasons, the classical FEM is not very good at this. Another issue for development concerns solution strategies for strongly coupled field phenomena (e.g. fluid-structure interaction or force balance/mass transfer). It is almost impossible to investigate such questions without being able to directly modify any part of the code (and not just one subroutine).

FEAP is an excellent code for developers. Much of the heart of the code is transparent, the element routines are relatively easy to understand, and for the most part it is efficient. It is designed for researchers who, at one time or another, probably wrote a small finite element code themselves.

Zhigang Suo's picture

John:  Thank you very much for a comparison between FEAP vs. ABAQUS. 

Now, a question on another aspect.  Is there a community working on FEAP like a community working on any of other well known open-source projects, say, Firefox?  Firefox may have a market share about 10% for people who are just users like you and me.  Will a project like FEAP turn out a product usable by analyst?

Or is FEM just qualitatively different from a browser so that making such a comparison makes no sense?

Say you have modified FEAP, and then next release of FEAP just comes out.  What do you do?  Is FEAP modular enough so that you can insert your modifications right in, from one release to another? As a user, can you contribute to FEAP?  How do you do that?

I'm just curious about how this important technology is being developed.  Please take your time.  I'm in no hurry.  Or perhaps get some of your students at ABAQUS to shed some light on these issues.


There's definitely a group of people who work on FEAP routinely. I wouldn't necessarily call them a community in the sense that iMechanica represents a community. Some of them exchange information and fragments of code with one another, others only do so with Bob Taylor.

There are many people who use FEAP to do analysis work. However, I don't believe this is Bob Taylor's objective. I think the entire project is very informal in comparison to Firefox.

FEAP is pretty modular. One can usually port over the changes you've made from one release to another, provided you haven't done anything too drastic to the basic structure of the code. I'm sure that Bob also incorporates changes or subroutines that have been suggested or sent to him by developers.

One reason, in my opinion, that there is not a more active open-source finite element project is that it would be very difficult to get even a small portion of the computational mechanics community to agree on the ground rules. Even the basic question as to what language it should be written in could be controversial.


Zhigang: Many thanks for recommending this web site to me.  I just had a very quick look at it this morning, and found it contained all kinds of interesting information, that I didn't know before.  I fully agree to many of the comments posted there.  There are two different groups of people in the finite element community.  One groups are users (or analysts) of the finite element method or finite element programs.  They require highly robust, well documented, fully verified codes with good technical support to solve their problems, but they are not interested in how the computations are actually carried out.  Only the commercial finite element programs, such as ABAQUS, will satisfy their need.  In the meantime, the other group of people, researchers and developers of the finite element method, would love to have access to well-established reliable source code, which can be used as foundation and building blocks in their development of new algorithms for problems that were never solved before.  So I think that the commercial finite element codes and the open source finite element codes will probably exist at the same time.  One can not be replaced by the other because they satisfy the needs of different people.

I've been having problems with Firefox for a lot of time. but even if Firefox has the 10% share of the people i would still use it.

Xi Chen's picture

Zhigang: we are a beginner on FEAP. ABAQUS is a great software but it could only be used to solve "conventional" problems. When we want to have more freedom, e.g. in the protein mechanics we are recently doing, we are always constrained by unknown problems/mistakes made by ABAQUS. It is therefore beneficial to have more control of the problem by using FEAP or other open-source codes; we are still comparing several codes to see which one suits our purpose better. Meanwhile, for "conventional" problems such as indentation, I would say ABAQUS works better and it is now almost a "standard" in academia. One of my postdocs likes to use ANSYS for example, and sometimes we even got review of the paper asking us why we didn't use ABAQUS... I agree with John that both tools are very useful for computational mechanics people.

Teng Li's picture

Xi: I'll be interested if you can be more specific on the constraint of ABAQUS on modeling protein mechanics. This might be bit of divergent from the theme here, but could be interesting.  Thanks.

Xi Chen's picture

Teng, quite a few issues cannot be effectively handled by ABAQUS, such as the protein-water interaction and solvation, thermal fluctuation, etc.

Say you have modified FEAP, and then next release of FEAP just comes
out.  What do you do?  Is FEAP modular enough so that you can insert
your modifications right in, from one release to another? As a user,
can you contribute to FEAP?  How do you do that?




Modularity is part of the FEAP design; if you stick to modifying things through the many user interfaces for materials, elements, mesh commands, solution commands, plotting commands, etc. then you are pretty safe with respect to updates.  If you muck around in the internal guts of the code then you need to be more careful.  That said, if you do something invasive but it is useful to not just you, but also others, then Prof. Taylor will quite often include your developed features (maybe re-writing them) in the next release of the code.


Prof. Dr. Sanjay Govindjee
University of California, Berkeley

Christian Linder's picture

One can even download a free personal version, FEAPpv, from Professor Taylor's webpage at This would be a good start to learn about the structure and general format of use. Since FEAP and FEAPpv share the same input information the migration to FEAP is straightforward.


Thanks for the information.

I use to have a copy of the code (educational version) before I came to USA and found it very useful. I have heard that much more, especially those advanced solvers, has been inetegrated into it but was wondering how I can get access to it. Hope that they still distributing the source code -- shall contact them directly.  Thanks aagain.



There isa FEM open seas, which has been developed by my colleagues in UC Berkeley. I'll try to find more information for you. 

Other open source finite element codes are

  1. Deal
  2. Libmesh
  3. OpenFem
N. Sukumar's picture

Finite element modeling has become such a ubiquitous and powerful simulation tool that it is virtually impossible for a public-domain package to meet even the most basic demands of a potential user in terms of capabilities. For someone in solid mechanics, features such as statics/dynamic analysis (implicit and explicit), inelastic material laws, finite strain kinematics, and nonlinear solution schemes would be the starting point. On top of it one can add the wish-list: failure/damage modeling, meshing complex geometries, contact, multi-physics and the list very soon is no longer manageable.  Given that once one departs from linearity, finite element formulations tend to also become more involved (mixed formulations, reduced integration), the subtleties can no longer be overlooked. And above all, accuracy and robustness are essential. Hence, for this to be attained, FE developments can only be sustained by companies such as ABAQUS, ANSYS, etc. who can meet the needs of the industry. Quality assurance, verification and validation of software is paramount, and am sure a significant component of time is spent on these aspects in such companies before a new version is released.

At least in mechanics, computational software development is in my opinion  not regarded as an important research activity in itself, with little support for such efforts. It is viewed more as a means to an end (simulation), and hence typically in-house research codes are being developed to address specific needs within different groups.  Shaofan mentioned the OpenSees project, which is an effort in the Structural Engineering community to create a single platform for earthquake simulations.  It is my understanding (there are a few here who are using it) that it has many positive attributes and a good design (C++). The focus is more on structural (beam/truss) elements, and less so on continuum elements. 

Developing good code (software design, features, usability, extendability, robustness) if you wan't others to use it is not a straight-forward exercise. There are no simple answers for the FEM-and-open-source query, but there is room for more thought and discussions in this direction.

TAHOE is one open-source project that is fairly well developed and has a community.  In fact, if you go to the link you will find discussion forums, etc.  I completely forgot about this project when this thread started.

It was begun by Patrick Klein while he was at Sandia, and he still maintains the project in his free time (he moved to the financial sector, I think).  Looking at Suku's wish list above, TAHOE looks pretty good.  

Like FEAP, it is not for the uninitiated.  It is probably best to learn it alongside an experienced user. 

Zhen-zhong Du's picture

Zhigang asked me to comment on this.  Commercial FEA like ABAQUS is different from the academic side. In academia you try to solve one or two specific problems and then you write a paper on the solution. In this case, you may find open-source-code good enough by tailoring it to your specific needs.

ABAQUS is a general purpose code and the developers at ABAQUS have to write a method that can be used for a multitude of problems. The challenge is at least as big as coming up with an idea that works for only one or two problems. It has to be robust, accurate and ease of use. In addition, the code has to go through rigorous quality assurance, verification and validation for each release. On the other hand, commercial FEA like ABAQUS also offers user subroutines, interfaces to third party software (like fluid code) and annual feature enhancements to meet customer’s needs. 

In my opinion, one of the difficulties for open source code is maintenance related issue. Who is going to maintain and further enhance the code if the original developers left or retired? We often saw many in-house codes originally developed in companies, universities and government labs were ended up being commercialized to avoid maintenance cost.

Robert Gracie's picture

It is my understanding that ABAQUS is actually based on FEAP. The user subroutines available in FEAP are almost the same as those in ABAQUS. So if you know ABAQUS, but have a need to write your own code, FEAP might be a good place to start.

Zhen-zhong Du's picture

FYI, ABAQUS company history can be found from

Mogadalai Gururajan's picture

OOF is a open source FEM specifically meant for the analysis of microstructures. It is developed (and maintained, mostly) by CTCMS, NIST.

Rui Huang's picture

This discussion has provided many useful information on the current status of finite element codes as well as a little bit of history. By John's definition, I am definitely an analyst rather than a developer, although I did write some small segments of finite element code before.

As an analyst, in addition to the code itself, I need a program to visualize graphically my meshes and results. Commercial packages such as ABAQUS and ANSYS certainly have this. For open source finite element code like FEAP, which program can I use to conveniently check my mesh and results?

If such a program is readily available and equally powerful as those in commercial packages, I would consider it worthwhile to train myself and students with the open source code for the purpose of research (even for an analyst).


Dear Prof. Rui Huang,

There is one free, actively developed, feature rich, easy to use program for visualizatio: OpenDx. This was initially developed by Intel and then given out for open development. is the link. It can serve the purpose of any scientific resercher for visualization. 

It has an easy interface for creating visualization macros which is just like drag, drop and connect the the modules with mouse.


Rui Huang's picture


Thank you for the link to OpenDx. Will check it out later. 



   FEAP has its own built-in graphics package.   It is pretty good - very basic but it has everything you probably need.

   To generate meshes and postprocess the results, we also use the package gmsh.   It is free, very simple, and an intuitive package to use.  It was developed and is maintained by Christophe Geuzaine (now at Case Western in mathematics) and Jean-Francois Remacle (now at Liege, Belgium).  



Teng Li's picture


Thanks for heads-up. Does gmsh has convenient ways to import from or export to other FEM codes, such as ABAQUS? If not, what do you usually do to implement the mesh data generated from gmsh? Thanks.



Rui Huang's picture


Thanks for your response. I will give it a try on gmsh.


N. Sukumar's picture

Rui, For mesh generation, besides gmsh I'd recommend Triangle (by Jon Shewchuk at Berkeley) if your main interest is two dimensions. Triangle is very easy to use and is considered by most to be the best 2D mesh generator (Delaunay and also constrained Delaunay). There is no visualization for post-processing results, but it has a very nice graphics program (also written in C) called Showme to depict meshes (Delaunay, Voronoi, etc.) and one can save them as EPS files. The latest version might have more bells and whistles.  Also, the code is very clean with lots of documentation and hence is very readable. Of course, if you're interested in 3D and w'd also like post-processing capabilities, gmsh would be preferable. Insofar as other vis public-domain software is concerned, I have heard very good things about IBM's OpenDX, but it might require some investment of time to become acquainted with the package. 

Rui Huang's picture


Thank you for the info. 

For me, post-processing visualization of the mesh and result is more important than mesh generation. You may still remember the program Dynaflow by Jean Prevost of Princeton University. You helped implementing XFEM in Dynaflow. To continue using it, I need to find a post-processing program. Jean uses Femgv, which is quite expensive. Do you think I can use gmsh to visualize the results from Dynaflow?


N. Sukumar's picture


I have used gmsh (minimally) for visualization and have not looked into all its features; currently, just using it to visualize vector fields and also to depict a surface mesh in 3-space (output code was not written by me). However, it does have many features and provides a single platform for mesh generation and vis. Of course, irrespective of what package you use, you'll need to output the data in ASCII/binary format to a file. Since Dynaflow output is in a format recognizable by femgv, the use is seamless. If you migrate to any other package, you will need to create the appropriate code and the output from Dynaflow so that it can be read by the other vis package. If you are interested in only a small subset of all the existing plotting features, then I presume the coding required will be manageable. Hopefully, others who're using gmsh for vis can provide more pointed remarks on their experience?

If cost is the main constraint, have you considered Tecplot? It is widely used by many of us, and it is not that costly; single user-license at a university is probably still less than $1000 (one-time fee only), and multiple user licenses can be had (with some increase in cost) if many users will need access to the package at the same. You can create pretty good mesh plots, and also displacement/strain/stress contour or other fancy plots (with shading, transparency, etc.). Also, the learning curve is gentle. I know others who use the graphics features of Matlab for plotting. For two-dimensional XY plots, I have been using xmgr / Grace (public-domain) since the early 90s, and it provides very high-quality EPS plots.

P.S.: An addendum after seeing some of the other comments. You can check out the gmsh manual (PDF) : page 145 (File Formats) and also page 177 (FAQ) might be good starting points.

Jean H. Prevost's picture

Rui, Suku,.... Zhigang brought your questions/comments to my attention.... there are many "post-processors" available,... some are good others not so good.... in all cases, whether the package is commercial or free,.... one has to write an interface (i.e., no free lunch!!!) to convert the results of the FEM to a format understandable by the graphics processor.... this is usually not difficult but very time consuming and needs constant maintenance to adjust to new visualization requests, etc.... for instance, all results from dynaflow are dumped on ASCII files (TAPE****), as documented in Appendix E of the user's manual... then one can read those files and provide other files for the post-processor... I have done that for Femgv, Pro-engineer, Spectrum, IRIS inventor, Tecplot and Paraview,... but clearly, I can only support extensively only one (I chose Femgv)... but it is quite straightforward  to bring all processing options to the others (if needed).... Hope this helps. 

N. Sukumar's picture


yes, ultimately it depends on what are one's needs and the visualization capabilities desired. as i indicated in the post and as jean mentioned, one needs to write code (interface) to output the data in the right format (from any simulation package). there is no ``free lunch,'' and hence typically most codes can only provide extensive support for a few vis packages. companies such as abaqus/ansys will try to provide all that a user might wan't and/or at least the most prevalent output formats (have used ansys in the past but not abaqus). i have been told that in the past even in the pre- and post-processing arenas these packages are not great. rui, depending on what are your most frequently occurring needs for visualization, you can just write the interface for the package you might wan't to use (gmsh/tecplot/..). am using tecplot (many groups world-wide use this), but others options might also be apropos. as with anything new, there is a learning/using curve. tecplot comes with manuals/demos etc and is easy to pick-up. if you tell me your most common needs, i can send you couple of formats used by tecplot for you to get an idea of the same or if you choose to buy it, i can provide some of my code if that might help you to write your own within dynaflow. have written some in fortran (basic stuff--plotting elements, disp, stress, etc.), which can be easily ported to jean's dynaflow.

FEAP has been mentioned several times as a commonly used open-source FEA code for computational mechanics research. Why is this? Is it because it is documented by Taylor/Zienkiewicz in their books?

Is the fact that its written in fortran considered an asset? This seems odd to someone like me from the commercial FEA world. More than 50% of the code in serious FEA codes is just for manipulating complex data structures rather than computational mechanics or numerics. Fortran is ill-suited for this. There are at least a half dozen mature, open source FEA codes available written in C++.


Is fortran still the language being used to teach programming to students in engineering and science?


It's a fair question. I think FEAP's popularity can be traced back to a couple of things. First, Bob Taylor has had a lot to do with the development of finite element methods. Many of his students and those who worked with him used FEAP, passed it on to their students, and so on.

Fortran just happened to be what it was written in. For engineering students who are just beginning to learn how to program and the finite element method, it's pretty good.

I agree that Fortran is not well-suited for manipulating complex data structures. But that's precisely the point. When we're teaching students, we don't want to work with complex source code. With Fortran, one can focus on the algorithms because the data structures are extremely simple.

As someone who routinely teaches an introductory course in finite element methods, I find this appealing. In fact, we use something even simpler in class: a very low-level Matlab code. We do this in part because, while many of our in-house research codes are written in C++, not every graduate engineering student has seen C++ before.

I doubt that Fortran is used at many institutions to teach programming. However, it is not that difficult to learn once another programming language has been studied.

Finally, if you're familiar with other open-source C++ codes besides those already posted here, please let us know about them.



N. Sukumar's picture


I echo John's comments. In scientific computing, Fortran still reigns supreme since Fortran libraries for an extensive suite of numerical algorithms are readily available. That said, I do not believe Fortran is being taught to undergraduates as the first/introductory programming language nowadays. For a first graduate course in FEM (any cross-section of engineering/applied sciences students), Matlab serves as a suitable platform since it enables the students to focus on the implementation of the method and not on getting bogged down by the details of the language.  Furthermore, on using Matlab,  matrix/vector operations and linear algebra (solution of linear equations) can be accomplished using simple commands, and visualization of results is greatly facilitated. However, Matlab's power can not be undermined since there are many researchers in the computational sciences who solely use Matlab for their research. 

Writing a one-dimensional FEM program in Matlab is trivial, and a 2D implementation is straight-forward once the steps and flowchart are clear. This enables the students to incorporate extensions and/or new features within the programs.  Matlab uses "C" syntax and many of its commands (vectorized) directly translate to Fortran90. Over the past decade, Fortran90/95 programming has become much more prevalent in scientific computing, since it incorporates some of the desirable features of C/C++  (e.g., dynamic memory allocation, data encapsulation, function overloading, etc.), and at the same time is backward compatible with Fortran77 (F77 functions and subroutines can be directly called). I have had some experience with all these languages, and feel that Matlab provides a very nice platform for any computationally intensive undergraduate or graduate course. With expertise in Matlab programming, the transition to any other object-oriented language is eased.  

John, Suku,

Thanks very much for the thoughtful, detailed replies.

Yes, I can see how Matlab would be very attractive for FEM or similar courses in that it lets students concentrate on the mechanics rather than programming idiosyncrasies. Its also likely to be useful in their professional careers. This is in contrast to a language like Java which is great for teaching programming concepts but leaves something to be desired for scientific programming.

I don't actually agree, though, that once you learn Matlab or Fortran, its easy to pick up an object oriented language like C++ or Java. C++ and Java allow you to express programming concepts that Matlab and Fortran don't-- there just isn't the vocabulary to express them.

 As an audience for open source FEA, I was primarily thinking of grad students doing computational mechanics research.  I'm assuming, John, that your in-house codes fall into this category? I'd like to hear more about how they were developed and why you chose C++ in those cases.

 As you mention above, John, one excellent choice for computational mechanics research is ABAQUS. For someone writing a new but relatively conventional element or material model, the user written subroutines are obviously very powerful. But for someone doing research into e.g. solution algorithms or adaptive methods, ABAQUS isn't much help. You've got to either write your own code or modify one of the open source ones. Personally, if I were working in hp-adaptive methods, I would not want to write that code in Fortran (but one leading researcher in the field has done exactly that,

I'll post another note on some open source object oriented FEM codes that I've at least taken a casual look at.

N. Sukumar's picture


I hope I did not give the impression that learning Fortran/Matlab sufficed to start programming in C/C++. It could not be further from the truth. Not all undergraduates are exposed to object-oriented (OO)-programming; most have at the very least been exposed to Matlab programming. Of course, if graduate students are required to develop their research codes in C++, they would definitely need to take a course in OO-programming.


I'll second Suku's comments above. I don't believe either of us implied that Matlab-C++ is an easy transition. Matlab does allow for structured data types, but does not support much of what can be done easily in C++.

Now, to your question regarding our in-house codes. A lot of the original work in the eXtended Finite Element Method (X-FEM) was built on a C++ kernel. This facilitated many things that standard codes are not used to, such as elements with variable numbers of degrees of freedom, recursive routines for subdivision and integration, and the use of data structures built on the concepts of function spaces. We were fortunate to inherit a very smart kernel that was designed by Jean-Francois Remacle. Over a few years, this code grew a great deal under the guidance of Nicolas Moes, myself, and Suku, while we were all at Northwestern.

Suku later blasted a lot of this technology into a Fortran code at Princeton. I think he would be the first to tell you that, in spite of how well-designed that code was, it was not easy to do this. C++ simply facilitates conceptual development much better once an existing framework is in place. However, I think it is extremely important to begin with a code that has a fundamentally sound, yet flexible framework and philosophy. From my experience, this is rare.

Hisham's picture


I know that this is an old thread, however, I cannot find a manual in the link of the hp-fem code you've sent! Do you, kindly, know where can one obtain a comprehensive manual for such code?



Here are some notes for a few free or open source object-oriented
FEA programs that I've taken at least a quick look at. I have
several important criteria when I look at FEA codes but the
biggest one is that they have to conveniently handle arbitrary
degree-of-freedom types-- e.g. if I want to implement
a coupled fluid, structural, electro, thermal model, the architecture
must accomodate this. Fortunately, many of them do.

This one is fairly mature and has been used to
solve problems in a number of different disciplines.
I personally find the object-oriented (OO) design
a bit unusual and the documentation is somewhat sparse.

This code comes from what I call the
"mathematics of partial differential equations" point of
view rather than the mechanics point view
(Rheolef below also has this flavor). For example, I'm not
sure what would be required to add beam or plate elements.
It has nice software engineering, though.

The big weakness of this one, in my opinion, is that
it appears to allow only one FE type for the model.
It does have better-than-average documentation and
interfaces to high-performance sparse solvers.

This has been mentioned already but I'll make a couple of
other comments. This is one of the FEA development projects set up
like a real open source project-- SourceForge web site,
forums, etc. I think this is the idea Zhigang was thinking
about in his original post. My impression is that the
software is primarily used for fluids problems. For some
reason, they don't have the concept of a vector field-- you
have to represent this with 3 scalar fields.

I have looked at this only a little but it appears quite elegant
to me. The OO model is reasonable and appears to be fairly general
in its handling of degrees-of-freedom.

As a failure modeler, I am frequenctly frustrated by the nuermical instability caused divergence. Especiallycommerical softwares, they do not give users much room to manipulate it. 

But the problem has a physical ground in damage or failure analyses, where negative eigenvalues may not be completely avoidable (sometimes it's even necessary). Being not an expert on computational algorithms, I was wondering if there is any efficient way to solve for these so-called indefinite matrix (a matrix has both positive and negative eigenvalues).  Any comments or suggestions are welcome. 


  I enjoyed very much your recent article in Science.  Of course I also want to thank you for mentioning the X-FEM and citing my work!  I think the X-FEM has a lot of potential for studying failure in composites.

   Now, to your comment and question.  I agree that numerical instabilities are a great source of frustration and that commercial software does not always provide a great set of options for dealing with them.  I do believe that ABAQUS is pretty good in this regard, as it provides a number of options for overall solution strategy.  With that said, it can sometimes be difficult to ascertain exactly what the code is doing.

   Can you provide a more specific example for failure analysis?  I think you might be referring to a loss of ellipticity, but I'm not certain.  In any case I'm pretty sure that solvers are available, they may just not be that easy to link to your analysis, particularly if you're using commercial software.  



Thanks a lot for the reply.  You surely deserve the citation included in that paper.

To my opinion, this X-FEM is the leading candidate for possible inclusion of those secondly cracking systemsin composites. Currently they are accoutned for mostly by continuum damage mechanics (CDM). The problems isthat once a major crack evolved out of such sytems, CDM becomes problematic because of the highly localized deformation. I shall try to talk to you over this pretty soon.

 As for the convergence, I agree with you that Abaqus provides a few options to better control the convergence -- that is the system is convergable (sorry for lack of btter wording). You hit the point when mentioning the loss of ellipticity -- not an expert on this. Say, at certain conditions, a initially stable crack turns into a dynamic one before it gets arrested. Is this a problem related to the loss of ellipticity? If yes, how should one to cope with it?

Thanks again. 

ruogang zhao's picture

I found this thread from Google and I registered right away since I've been struggling to choose a suitable FEM package for my research project for the last two weeks.  

The major challenge is the material properties.  My project is the numerical simulation of the mechanical response of a single cell. Published literatures show that biological cells can be modeled as a viscoelastic solid sphere undergoing large deformation. One example of such research is from Farshid Guilak from Duke University using FEAP. They incorporated linear viscoelastic and non-linear viscoelastic material model with FEAP and simulation results fit the experiments fairly well.  

Ansys is available here in our lab, but the viscoelastic material model adopted is originally derived for rubber-type polymers. I don't know if this type of material model can fit for a biological cell. Ansys does have some user programmable materials but viscoelastic is not included.  

Abaqus is another option. I have a better feeling about Abaqus since I did my Master's with it. The UMAT subroutine does allow user to define a material. But odd problems encountered while using Abaqus from previous comments in this thread frustrated me since I realize biological stuff might just be fundamentally different from conventional engineering materials. 

So can any expert comment on this issue about what FEM package to use? I'm not too keen on the open source packages since I'll be spending too much time on the programming instead of analysis. But if it is the only we can incorporate the material property we wanted into a FEM I guess I have to choose it.  


MichelleLOyen's picture

Biological material properties are frequently incorporated in Abaqus using the "poroelastic" material model for flow through a porous medium.  This gives more fundamental physical information than an empirical viscoelastic model.  Another popular choice is biological materials work is LS-Dyna, which became popular in the impact biomechanics community and has thus a range of linear and nonlinear viscoelastic material models useful for biological tissues.  


 Hello I am student of Mechanical Engineering and study on viscoelastic pursue  my studies , your help is kindly appreciated. I need to  have a stress analysis on viscoelastic material by ANSYS software. 

If you can help me . I'll appreciated

I have programmed a number of nonlinear viscoelastic materials models for rubber and biological materials using an open source code called Tahoe for my modeling of the mechanical behavior of the cornea. The latter are anisotropic and are not available in the open source version, but are available in the protected development version. You can download the code at and use the isotropic nonlinear viscoelastic models. Documentation, though scarce, can be found at Because it is a research code, it is not as convenient to use as ABAQUS, and it's somewhat difficult to implement your own model, but if you would like to go this route, you can contact me at

I am not as familiar with ABAQUS or LS-Dyna. I think ABAQUS in addition to poroelastic models has a finite deformation quasilinear viscoelastic materials that use a prony series to represent the time-dependent behavior. I think LS-Dyna is purely an explicit code whereas ABAQUS offers both implicit and explicit solver.

ruogang zhao's picture

Hi Michelle and Thao,

Thanks for the reply. One problem encountered in our project is those standard mechanical tests such as uniaxial tension and pure shear just simply can’t be performed on a single cell. Without standard test results, one can not get the viscoelastic parameters required in the commercial packages. Right now I don’t think popular cell probing techniques such as micropipette aspiration, magnetic twisting cytometry and AFM can provide the material constants needed for the commercial package.

Simple linear Maxwell model, however, can be easily correlated to the test data since this model has only three parameters to be determined. A little more complicated models such as standard linear model and upper convected Maxwell model has also been used to in conjunction with the normal cell probing techniques. So I think what we need is the control over the material parameters based on the available tests . I’ll start off from simple models and see how we can correlate it into the commercial packages.

Kaifeng Liu's picture


I have been using abaqus for simulation of biomaterials with a viscoelastic-plastic constitutive model for two years. My experience with UMAT was somewhat delightful. Perhaps part of the reason is that my constitutive is relatively simple compared with biological cell. If you want to learn more about my experience, please do not hesitate to contact me.

I have one comment on Michelle's thread about the "poroelastic" model. In my sense, the term "biphasic poroelastic" is more clear. In fact, this is achieved by the *SOILS analysis in abaqus, which was designed for civil engineer to do soil consolidation/seepage analysis. Time-dependent behavior can be done in this analysis. If you feel fluid flow is quite important in your analysis, this might be a better choice than the single phase vicoelastic model.



French speakers may find Code-Aster ( an interesting open source finite element software. Some documentation is available in English. A complementary open source project is SALOME ( for pre/post-processing. CAELinux ( has a LiveDVD distribution that boots & runs directly from DVD and uses aforementioned code. The site also has some tutorials.

Here is another one:
Its input files have similar syntax as ABAQUS Input files!


Explicit Analysis:



Kishore Pochiraju



Regarding free FEM Codes, try ELMER that can be downloaded from together with its manuals. Other information could be found just typing ELMER as a keyword in any web finder. Many reports describing real world applications and presentations to congresses could be of your interest.

The book written by Belytschko, Liu and Moran is a very comprehensive and complete book covering in a very affordable way the most aspects of nonlinear FEA. It is relatively unexpensive so those interested in this field will find fine purchasing the book. However, a pdf, free downladable draft version of of the book is available in separate chapter in the web. Unfortunately I did not have the web site but with patience you could reach it trying with keywords like the name of the principal author, the name of the book, etc.

Roozbeh Sanaei's picture

one of the disadvantages of ELMER is it does not use PETSC and it's ability in solver paralization is limited.



This thread is most useful to me, thanks to all contributors.

It is nice to see many options are out there with varying levels of complexity and focus.

I think it would be more useful if we share our experiences with these packages. I would be interested in knowing if the mentioned software is recommended or not. If recommended, how strongly? I know it is sometimes a matter of personal taste and it is not trivial to evaluate software, but such information can save a lot of time for the user.

I am particularly interested in a simple package that can generate mesh from CAD files and to do modal analysis (mode shapes and natural frequencies of a relativelly simple geometries).

Thanks in advance 

Cetin Cetinkaya

Photo-Acoustic Research Lab

Clarkson University


Most open source FEA packages focus on the formulation and solution of the  finite element equations rather than generating the model. I think it may be difficult to find open source software that can create an FEA model from CAD geometry.

 On the other hand, commercial codes such as ABAQUS and ANSYS do a very good job of this. If you do not need to significantly modify the code for your particular needs, these codes may be an option. Both companies have low-cost academic licenses.

It is amazing to see the large number of computer programs, both free and commercial, developed over the several past decades.

I have however found it somewhat difficult to easily asses the capabilities of the individual programs or to compare them with each other. Therefore, I have launched online database of software for mechanics, structural analysis and design - the main goal is to catalogue the available programs and to enable visitors enter ratings. Each entry in the database is also linked to wiki, which enables contribution of less structured content to complement the database entry.

The database is available at .


This - your site - is an excellent idea! Also, thanks for the previous comments/suggestions.

Gerd Sebastiani's picture

Anyone interested in CFD may consider Featflow, offered by Professor Turek's group at the University of Dortmund.

The Fortran based code may either be downloaded for free or obtained on CD. AFAIK, the code is mainly applied in teaching such as the introductory lab to CFD. There exists also a benchmark collection called "The Virtual Album of Fluid Motion", to be used as examples in fluid dynamic classes.

I personally used this software throughout the mentionend lab in my Masters. IMHO, teaching and research are, due to the funding situation, also the main applications of such free codes.

Links and Downloads:

Kind regards:

Roozbeh Sanaei's picture

Open Source Finite element Programs are in two categories:

1. Finite element programs with Physical point of view.(FEM codes)

2. Finite element programs with mathematical point of view. (Pde Solvers).

I provided useful links to their lists in my weblog 

i read their manual briefly and i think FEAP,ADVENTURE and TAHOE may be best for my purpose. i need your help in order to chose one of them to development.

I research on mechanical behaviour of Nonlinear anisotropic and Micropolar materials.

vh's picture

I have tried a free open source FE code Warp3D ( I should confess that my trials are limited to example problems. So cannot say much about its usability. I was successful in installing it on a linux box runing openSUSE 10.2

It can be interfaced with PATRAN for pre-processing. It has a limitation of 90000 elements or 200000 nodes. One can choose from a wide variety of implemented material models. MPI version of the code is also implemented. The limitation on he no. of nodes and elements can be overcome by changing the appropriate variables and recompiling the code. More importantly it is equipped with a very good and informative manual.

I was interested in its contact capabilities, but it apparently can only handle deformable-rigid contact while I was interested in the deformable-deformable contact case. Only a limited variety of rigid surfaces can be modeled with this code.

V. Hegadekatte, University of Karlsruhe, Germany

phunguyen's picture

You could try the free code for computational mathematical modelling


Roozbeh Sanaei's picture

FENICS is a developing Computatioal mechanics project with a great AIM.

Deal.ii (Free)  and Diffpack(Commerical-1000$) are similar projects.

 in this Time Diffpack-Feap(Commerical-800$) are two very Famous Packages available in finite element programming but they have some disadvantages first one because of its FORTRAN base and the last one because of it's cost.(OpenScience-OpenSource). Note That Each Package Have it's Properties and advantages, as an exampe CALFEM is not so famous  but it has good procedures for vibration and acoustics or TAHOE is best in non-classical solid mehcanics, OOF2 for microsturctues and ....,

general finite element packages such as ELMER,DEAL.II,DOLFIN(Fenics), Adventure Project and PETSC-CS are growing but they are not expert in SPECIAL Subjects.

excuse me for  my poor english. 


Roozbeh Sanaei's picture

ELLPACK very high level, portable systems for solving elliptic boundary value problems. One can solve routine problems by simply writing them down and naming the methods to be used. One can solve harder problems by using the problem solving modules in the flexible ELLPACK framework. The ELLPACK language is an easy-to-learn extension of Fortran: this provides greatly reduced coding for most of the computation, but still allows one to do special processing. ELLPACK incorporates over 50 problem solving modules, including some of the best and most current software in the world. A knowledgeable user can even tailor ELLPACK itself by adding new problem solving or analysis modules.KASKADE and PLTMG are similar packages too

Hi all,

I'm trying to maintain an open source/free software, named MechSys, which is a C++ library for the implementation of mechanical systems-related programs. The geomechanics discipline is my main subject, but I'm also interested in (several) others. Basically, there are 4 modules in the library (there are more in fact):

  • Numerical (numerical algorithms: RK, quadrature, Brent's method, etc.);
  • Tensors (tensorial analysis: invariants, projectors, determinants, eigenvalues, etc.);
  • LinAlg (linear algebra: dense, sparse, unsymmetric linear solvers, eigenvalues and eigenprojectors, etc.);
  • FEM (3D soil-water unsaturated coupled analysis with Runge-Kutta' global and local solvers);
  • Utils, Constmods, Models, VTKwrap, GUI, ...

All these modules are independent from each other and we can use them for future implementations (DEM, MPM, contact/fracture mechanics, multiscale, etc.). The main objective of this library was: 1) Ease of adding new models, elements, or solvers (for students, new developers, sharing, teamwork); and 2) High organization (with a management system - Concurrent Version System, and several code style conventions).

In fact, some well known open source libraries were wrapped into functions or classes. Such examples are the LAPACK, UMFPACK, SuperLU, and SuperLUd for dense and sparse linear solvers (including parallel). Some GNU Scientific routines were wrapped as well, for example: the QAGS for quadrature or numerical integration. I use Blender as a drawing tool, TetGen for mesh generation and ParaView for visualization; them all are free (and excellent) software.

Well, I hope it may be useful for someone. 


I use Blender for modeling the microstructure in 3D, I wonder how can convert this tetgen?

acaballeroj's picture

Antonio Caballero; e-mail:

Hi everybody. From my point of view is always develop to own FE code for two basic reasons:

  • First, this experience will teach you enormously!! I think that dealing with the tricky problems of the formulation and implementation is a key issue on the understanding of what is really doing a FE program.
  • On the other hand, you will be more able to expand it and correct it.

However, I aggre with the idea that developping your own code is a hard and very time costly task. For those of you that only require a open source FE code to use or to work with, here two more references:


i would like to know how i can use abaqus for crack initiation and proapation.

so gentle men , give me some solution.





OFELI it's a fast and compact library to use with C++.

SciLab it's now an opensource SML and supports toolboxes

Maxima it's another opensource SML

Octave  it's another opensource SML simmilar to mathlab

Their states are stable and mature production.

The convenience from OS it's mainly the fact that you can extend the software customizing it or adding functions or porting it to other platforms, and even if you get errors from it you can try to fix them, the OS model it's not for every one, and the thecnical support relies mostly on communities and lees in private enterprises.

If you're starting in business community software it's a very attractive solution, if you're getting bigger and timelines getting shorter you will be tempted to buy expensive software that includes faster and expert support.

Example of that is OpenCASCADE: They offer the OS openCascade but they also sells support and teachs you how to develop with it (and it's a huge and complex visualization library), VTK it's another example of it.


iam doing my project in warm deep drawing i want to know how to do simulation of WDD using abaqus software

I doubt that the emergence of an open-source trading platform is going to encroach upon the success of Portware and FlexTrade anytime soon, but it could offer firms more freedom to do things on their own at a lower price point.


my name is aswin and i am doin my 2nd yr in IIT ROORKEE,INDIA

now i am doin project basedc on meshfree technique.

i am develop[ing code for elastoplastic problem

i have code for elastic pert.but i am not getting how to dvelop code for plastic part and how to solve that non-linear equation

please help me for my dessertation.


one of the disadvantages of ELMER is it does not use PETSC and it's ability in solver paralization is limited.

oyun indir




I have been looking for an open source or low cost (<$1500) structural FEM package to support optimization of aerospace structures subjected to thermal loads.  For optimization, I have been using genetic algorithm in a distributed processing Linux environment.  License cost for our current commercial FEM package is getting prohibitive.

Reviewed all packages I could find here and from other sources.  Code Aster is the only package that seems to be remotely close to what I am looking for.  Alas, I don't read French...

Does anyone know of English documentation other than that available at the Code Aster site?

Also, have I missed a good package for the aerospace Analyst (per John Dolbow's very appropriate nomenclature)?

Thanks for your collective wisdom; this is a great forum!


Do you know these 2 other french fem codes Castem and Zebulon?

Castem is closed to code aster and you can find english documentation for this software on the CEA's website .;jsessionid=2907427F20B5233B2C...

Zebulon is a very good fem codes too with englis documentation but i never use it.




SivaSrinivasKolukula's picture

Hi all

        CASTEM  is a computer code for the analysis of structures by the finite
element method. This code was developed by the Mechanical Department and
Technology (DMT) of the French Police station with Atomic Energy (ECA).This is a free FEM software which could be downloaded from the link :

         Actually this is a software in French language but help available in English. Documentation is available in English but vast in French language. It has got many modules and source files (codes) for reference could be downloaded from the site. Complete details about the software are in the above mentioned link. 



Inspiration and genius--one and the same.
Siva Srinivas Kolukula
Junior Research Fellow

Karl van Aswegen's picture

Hi all,

I think Code_Aster by EDF is probably the most "complete" free finite element code.

See for capabilities. You can find English documentation and examples on the CAE Linux wiki:

I also use Salome for a pre and post processor. It is also opens source, easy to use and very powerfull.

Obviously none of the above is more easy to use than a commercial package like Ansys, ADINA, Ls-Dyna etc. but then again it does not cost anything. Anyone that is interested in some CFD every now and again check out these two open source programs.   and

The downside (or upside for some) is that most of these open source packages are created for Linux. Also all the mentioned programs are validated and actively used in industry.




wonderfull stuff!

Particularly the code-aster. I wonder I got a open source software for FSI. 


Karl van Aswegen's picture

For a "all in one" FSI package look at Elmer:

I think with Elmer you can do two way coupling between a fluid and structure but I am not sure if this is limited to a steady state analysis. I don't know much about Elmer but by just having a quick look at the documentation it seems like you will be very limited to material, elements etc. but being open source and when using it for research I suppose you can just write your own in Fortran.

You can also do a one way coupling between Code_Saturne and Code_Aster by just reading in pressure boundaries from the cfd run and apply it to your structure. For a static analysis with small deformation this should be good enough. But if you want to make use of the full power of Code_Aster and Code_Saturne + you have a lot of patience + you make use of Google translate (because most of the code is written in French) it is also posible to do two way coupling. I read on the Code_Aster forum that they are currently validating this feature in their labs so it should become easier to set up by the end of the year. I have not tried this as open source FEA/CFD is something I have to do in my spare time because we use comercial FEA at work but unless you can do transient/dynamic FSI to look at flow induced vibration it is kind of pointless to me anyway.

I want to know if there is any feature in ANSYS11 which using it I
can solve a simple direct heat conduction problem for example in a 3-D geometry? All boundary conditions are known, and I want to solve heat equation and obtain nodal temperatures in porous media.
I appreciate if you guide me.

FEAP is an excellent code for developers. Much of the heart of the code is transparent kidney stones

take a look at, its an open source FEM software written in python.

mohammedlamine's picture

MODULEF of INRIA is an application of Open Source Finite Element Code.

mohammedlamine's picture

I have developed in the past in the university of sherbrooke a program which visualizes tetrahedra elements on a workstation under unix operating system with the GL graphics library: the 3D meshes are colored, lighted, shrinked and rotated (movement) using reendering and double buffering for hidden planes in order to check the FE mesh. If you want I can exchange the listing of the program with one of your books.

With the recent available hardwares you can use the opengl (or else) library to do the equivalent work with the corresponding functions. The representation of the displacements, stresses and/or strains can be made with: calculating the stress inside the element and use a 2D or 3D representation of these values with a valid graphics library. This will visualize the ranges of areas values in 2D or the volumes values in 3D.

In 2013, I haven't found any valid calculation of the constant strain tetrahedron shape functions. After that I have developed an efficient method to compute them. This is the modification that I have made to my background knowledges. Regards

Subscribe to Comments for "What is the status of open source finite element code?"

Recent comments

More comments


Subscribe to Syndicate