I am looking for flexible and easy to learn mesh framework which provides data structure for representing and manipulating meshes in 2D i 3D. I've already found a few:

It should work both on windows and linux in C++ and be open source or free. Do you have any suggestion?

  • $\begingroup$ Maybe you can give more information about what you need? Do you want to use arbitrary elements, or are you fix to use either triangles/tetrahedron or rectangles/cubes? What's about parallelization? $\endgroup$
    – Thomas W.
    Nov 27 '12 at 9:46
  • $\begingroup$ For now I have simple data structure for each element types. I would like to have efficient data structure for storing 2D and 3D meshes. So I have started looking for some frameworks and found OpenMesh and MSTK. Generally speaking Library should help me easily manage my meshes and help translate triangles elements to quadrangles by using external algorithms. Ability to easily attaching fields data to elements and nodes, saving meshes and results to files, for further postprocessing would be also very helpful in my work. Parallelization would be very appreciated. $\endgroup$ Nov 27 '12 at 12:20

If quadrangles are fine, check www.p4est.org, a C++ open source mesh library which has shown very good scalability to very large number of cores. You may also want to check for the DUNE project at www.dune-project.org. They have a very nice abstract grid interface which can be used to make use of several different mesh libraries dependent on your specific requirement.

  • $\begingroup$ DUNE looks very promising. But I think it is not available for Windows. $\endgroup$ Nov 27 '12 at 12:47
  • $\begingroup$ At least you have a chance to do it: dune-project.org/faq.html#ToC11 $\endgroup$
    – Thomas W.
    Nov 27 '12 at 13:04
  • 2
    $\begingroup$ I think p4est is written in C and not C++ $\endgroup$
    – stali
    Nov 27 '12 at 16:27
  • $\begingroup$ @stali: That's right, but from my point of view it should not play such a big role as you can use a C library from your C++ code. $\endgroup$
    – Thomas W.
    Nov 27 '12 at 18:52
  • 2
    $\begingroup$ p4est has a rather bare-bones interface to the mesh. If you want to have a more comfortable interface to the p4est data structures, then you should take a look at deal.II as it provides wrappers with a more C++-style interface around p4est; it is also far more extensively documented. (deal.II is at dealii.org ; disclaimer: I'm one of the authors of deal.II.) $\endgroup$ Nov 28 '12 at 13:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.