Comparison with other FEM software: deal.ii vs libmesh vs Comsol vs FEniCS vs GetFEM++ vs GetDP vs Elmer etc

5,606 views
Skip to first unread message

Konstantin Ladutenko

unread,
Sep 28, 2015, 9:11:09 AM9/28/15
to deal.II User Group
Dear all,

I found out that it is hard to find a good comparison of deal.ii with many other FEM software available, however it can help a lot for newcomers to select. Is it possible to provide such a comparison on Deal.II website? Probably it can be done as a feature list provided with proof links where possible (some kind of Wiki page for everyone with expertise to contribute?). This can be done to highlight strong points (like MPI, matrix-free) and to warn users about possible pitfalls (e.g. no GUI, need to define equation for every problem(no ready-to-use modules like in Comsol), etc. ).

E.g

feature | deal.ii | libmesh | Comsol | Fenics | GetDP 
mesh | only quad| mixed | mixed | mixed/ MPI with triangles only | ?
matrix-free | + | ? | + | ?| ? 
- save memory | + | ? | + | ? | ? 
- speed-up | + (link to step 37, comparison with sparce | ? | ?(no speed-up mentioned ) | ? | ? 
GUI | - | - | + | - | + (link to Gmsh)
Wilkinson Prize | + | - | - | + | -
Written in | C++ | C++ | ? || ? | ?
interface:
Python | - | ? | - | + | ?
matlab |

Visualization | ext | ext | built-in | built-in (live plotting) | built-in
License | GPL | GPL | Closed | GPL | GPL 
Supported OS |
Solve on manifold | +
MPI scaling | good (up to 16k CPU, need a prooflink) | ? | poor (https://www.comsol.com/press/news/article/621/) | ? | ?

few other links from first two pages of Google 

deal.ii vs libmesh: 

basic list on Wikipedia

Good comparison, however, deal.ii and libmesh are missing, feature list do not have proofs and no technical features like MPI or matrix-free.


Best regards,
Kostya

Ray

unread,
Sep 28, 2015, 10:25:34 AM9/28/15
to deal.II User Group
I would find this immensely helpful. I've been in contact with people from:
HiFlow3: http://www.hiflow3.org
MOOSE: http://mooseframework.org/
I've played with OOMPH-LIB a bit: http://oomph-lib.maths.man.ac.uk/doc/html/index.html

All regarding the query about block preconditioners (as well as other capabilities).

I'm trying to get a feel for what's out there in terms of software. I've spoken to a friend at Sheffield University (in the UK) who said he didn't see preconditioners being used in industry much (he works with ANSYS Fluent)...


Regards,

Ray

Wolfgang Bangerth

unread,
Sep 28, 2015, 1:20:22 PM9/28/15
to dea...@googlegroups.com

Konstantin,
it's an interesting idea. I think there are two reasons why such
comparisons are hard to find online:

1/ In order to do a fair comparison, someone will have to know multiple
codes well. That's rare -- most people are very familiar with one code,
but have not spent enough time with other codes to be able to provide a
fair assessment of their capabilities.

2/ When you do a comparison, the ethically correct thing is to do it in
a fair way. This may mean that deal.II doesn't come out on top in every
regard. If so, it would not be good advertising to put such a comparison
onto our own website. In fact, given that you're trying to reduce the
comparison of multiple software packages to only a handful of criteria,
each plus or minus is certainly open to criticism and interpretation.
(As a consequence, you don't typically see commercials or pages on
companies' web presence that directly compare company A's product with
company B's product; rather, they often compare company A's product with
"another leading company's product".) I am loath to put anything onto
the deal.II website that would antagonize our friends who work on other
FE packages.

In other words, comparisons such as the one you suggest are quite
useful, without doubt, but the correct place would be to have it on a
neutral web site (e.g., wikipedia), where the authors of various
packages can all fill in how they perceive how their product compares.
Be prepared for a *lot* of discussions if you invite the authors of
different libraries to participate in such an effort.

Best
Wolfgang
> --
> The deal.II project is located at http://www.dealii.org/
> For mailing list/forum options, see
> https://groups.google.com/d/forum/dealii?hl=en
> ---
> You received this message because you are subscribed to the Google
> Groups "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to dealii+un...@googlegroups.com
> <mailto:dealii+un...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/

Konstantin Ladutenko

unread,
Sep 28, 2015, 5:41:12 PM9/28/15
to deal.II User Group
Ok, the comparison should be as correct as it possible, easy to implement and maintain. It is just too many FE codes to cover by a single person. Any ideas how to do it in a productive way? 

 My initial approach is https://github.com/kostyfisik/FEA-compare/wiki , anyone is welcome to contibute. At the moment the comparison is raw text format with org-mode markup, supported with GitHub (and, more important, with Emacs. So there is a ready tool to move columns, export table to some other format and so on.)

It should be much easier to contribute if it was something like Google Table, however, it looks like version control and authorization is a problem to go this way. May be some one aware of kind of on-line live table with git version control (to have a copy at GitHub)?


понедельник, 28 сентября 2015 г., 20:20:22 UTC+3 пользователь bangerth написал:

Wolfgang Bangerth

unread,
Sep 28, 2015, 6:07:05 PM9/28/15
to dea...@googlegroups.com
On 09/28/2015 04:41 PM, Konstantin Ladutenko wrote:
> Ok, the comparison should be as correct as it possible, easy to
> implement and maintain. It is just too many FE codes to cover by a
> single person. Any ideas how to do it in a productive way?
>
> My initial approach is https://github.com/kostyfisik/FEA-compare/wiki
> , anyone is welcome to contibute.

From the perspective of anyone who may be interested in this, all that
matters are features. Whether a software's authors have gotten a
Wilkinson prize is actually not important (except, possibly, as a seal
of approval). What matters more is whether it parallelizes well (MPI,
threads), which elements it implements, the extent of its linear algebra
capabilities, what output formats it implements, which kinds of meshes
it can read, etc.

Best
W.

Konstantin Ladutenko

unread,
Sep 29, 2015, 1:29:55 PM9/29/15
to deal.II User Group
Hi,

I have change comparison a lot. Now FEA software profiles are saved as a separate files https://github.com/kostyfisik/FEA-compare/tree/master/profiles, tiny Python script generates org-mode table, displayed on main page https://github.com/kostyfisik/FEA-compare or as separate file for lagre screen users to see all the table https://github.com/kostyfisik/FEA-compare/blob/master/README.org This way it should be easy to add new FEA profiles with any features (non-standart features will be mentioned in "Other" section), actual order of lines in the profile can vary in profile, it does not change the output table.

I have mostly filled deal.ii profile (best of my knowledge), any other features worth mentioning? I would like to stabilize main features list before starting filling other profiles (and trying to widespread this table).

The table is not very nice to use, however it can be easy be converted to Google Doc with split view show it should be easy to use even when it becomes big for almost any screen size  https://docs.google.com/spreadsheets/d/1sOJj1IrLZu4AGW8V6dhBFyz6CZN1XAxC0oVxEOx383U/edit?usp=sharing

Best regards,
Kostya

вторник, 29 сентября 2015 г., 1:07:05 UTC+3 пользователь bangerth написал:

Konstantin Ladutenko

unread,
Nov 3, 2015, 5:04:48 AM11/3/15
to deal.II User Group
Dear all,

I have updated the comparison with the input from FEniCS and Firedrake projects members, I also filled it with data from official libMesh website. Please, take a look a page on GitHub https://github.com/kostyfisik/FEA-compare/blob/master/README.org or alternative HTML view http://htmlpreview.github.io/?https://github.com/kostyfisik/FEA-compare/blob/master/table.html 

Any comments, improvements, new features  for Deal.ii profile?

Best regards,
Kostya

понедельник, 28 сентября 2015 г., 16:11:09 UTC+3 пользователь Konstantin Ladutenko написал:

Bruno Turcksin

unread,
Nov 3, 2015, 9:42:46 AM11/3/15
to deal.II User Group
Kostya,

deal.II uses the LGPL license not GPL and has automatic mesh partitioning (I really doubt that you will find a library that does not do that). You can find the list of output format for deal.II here (https://dealii.org/8.3.0/doxygen/deal.II/group__output.html#gaa3cbced9f1d4ae661f13018f4c980aa1). deal.II also supports BDM and Bernstein finite elements.

I think something that can be useful to add to you table is the support of CAD files. deal.II supports IGES and STEP file format through OpenCascade (https://dealii.org/8.3.0/doxygen/deal.II/namespaceOpenCASCADE.html, http://www.opencascade.com). Comsol supports multiple formats (https://www.comsol.com/cad-import-module).

Best,

Bruno

Konstantin Ladutenko

unread,
Nov 3, 2015, 12:21:45 PM11/3/15
to deal.II User Group
Thank you, Bruno! I have updated the comparison table at GitHub.

Does Deal.II has something like CSG from FEniCS? http://fenicsproject.org/documentation/dolfin/1.4.0/python/demo/documented/csg-2D/python/documentation.html

Creating any mesh which is not in the library of predefined shapes looks to a pain at the moment, even if I just want to combine several spheres and rectangle... Probably I have just missed some part of the library, steps 49 and 54 do not make it clear for me (merging meshes looks to be too hard if there is no ideal correspondence of the boundary, IGES import seems to create only a manifold, not a 3D mesh).

Best regrads,
Kostya

вторник, 3 ноября 2015 г., 17:42:46 UTC+3 пользователь Bruno Turcksin написал:

Bruno Turcksin

unread,
Nov 3, 2015, 12:43:30 PM11/3/15
to dea...@googlegroups.com
Kostya,

On 11/03/2015 11:21 AM, Konstantin Ladutenko wrote:
> Does Deal.II has something like CSG from FEniCS?
> http://fenicsproject.org/documentation/dolfin/1.4.0/python/demo/documented/csg-2D/python/documentation.html
>
> Creating any mesh which is not in the library of predefined shapes
> looks to a pain at the moment, even if I just want to combine several
> spheres and rectangle... Probably I have just missed some part of the
> library, steps 49 and 54 do not make it clear for me (merging meshes
> looks to be too hard if there is no ideal correspondence of the
> boundary, IGES import seems to create only a manifold, not a 3D mesh).
There is nothing as simple as CSG in deal.II so you will have more work
to do unfortunately.

IGES import does create the manifold which is exactly what you want. You
can use an external mesher to create the coarse mesh but you need
deal.II to know the exact geometry if you want to refine the mesh
correctly. That's why you need to be able to read the CAD file.

Best,

Bruno

Wolfgang Bangerth

unread,
Nov 3, 2015, 7:22:45 PM11/3/15
to dea...@googlegroups.com
On 11/03/2015 04:04 AM, Konstantin Ladutenko wrote:
>
> Any comments, improvements, new features for Deal.ii profile?

deal.II doesn't just support quads, but also line intervals (1d) and hexes (3d).

We do use OpenMP, but not for threading (only vectorization).

We have basically all Krylov solvers implemented (CG, Minres, GMRES, BiCGStab,
QMRS) and a bunch of preconditioners in addition to multigrid.

We do have binaries for Mac.

Krzysztof Bzowski

unread,
Nov 4, 2015, 9:10:53 AM11/4/15
to dea...@googlegroups.com

On 2015-11-04 01:22, Wolfgang Bangerth wrote:
> We do have binaries for Mac.

...and Windows support in progress :)

K.

Denis Davydov

unread,
Nov 4, 2015, 5:19:32 PM11/4/15
to deal.II User Group
You should probably add SLEPc as well to linear algebra. On another hand METIS is not a linear algebra.

Iterative matrix solvers would be those provided by wrappers to PETSc and Trilinos plus what Wolfgang said. Same applies to preconditioners. 

I would also propose to add / reorganise mesh partitioning for MPI intro shared (METIS/Parmetis) and distributed (p4est).

Another thing is that you may want to distinguish between geometric multigrid and algebraic multigrid. Algebraic MG are provided by packages such as Hypre and ML, whereas for geometric MG you need some classes, which are there in deal.II

Konstantin Ladutenko

unread,
Nov 5, 2015, 3:00:18 AM11/5/15
to deal.II User Group
Dear all,

Thank you for you contribution, I have moved all your comments to the comparison table at GitHub.

Best regards,
Kostya

четверг, 5 ноября 2015 г., 1:19:32 UTC+3 пользователь Denis Davydov написал:
Reply all
Reply to author
Forward
0 new messages