Curvilinear Grid

2 tetrahedron curvilinear mesh, order 2

We present Curvilinear Grid, a parallel curvilinear grid manager designed for modelling 3D PDE on large curvilinear unstructured grids. Curvilinear Grid is based on Dune library, and, besides the Dune pre-requisites, also uses ParMetis library.

Curvilinear Grid is and will remain open-source. CurvilinearGrid is owned, developed and maintained by LSPR AG, namely, its original developers. Curvilinear Grid adopts the DUNE project license. Commercial use must consider pre-requisite libraries (e.g. ParMetis). Curvilinear Grid is an ongoing project. We warmly welcome contributions for the community.

The revolution is not an apple that falls when ripe. You have to make it fall.
- Ernesto Che Guevara

News Current Features Nearest Future Documentation Examples
Download Contribute Contact us


12.12.2016 - First version of Curvilinear Grid documentation submitted to Arxiv

29.09.2015 - First stable version of Curvilinear Grid is presented at Dune user meeting

Current Features

Below presented is a brief list of most important features of Curvilinear Grid and Curvilinear Geometry.

Curvilinear Geometry Curvilinear GMSH Reader Curvilinear VTK Writer Curvilinear Grid

Nearest Future

We are currently working on the following features, which should see light within the coming months


The documentation as of 12.12.2016 is available on Arxiv. The documentation source code is located in the /doc/manual/ folder of the Curvilinear Grid Module. We regularly update this documentation. This section will contain the most recent PDF version of the documentation when the Arxiv one is no longer representative. We are aware that the documentation is currently incomplete, so we recommend the user to read the source code or contact us in case of further questions. The comments given directly in the source code will provide additional support.


Curvilinear VTK Writer naturally outputs grid entities of different structural type. Below images demonstrate total mesh, as well as interior elements, domain boundaries, processor boundaries and ghost elements in the corresponding order. Note that ParaView does not naturally support output of curvilinear entities, so a virtual refinement is used to visualise smooth surfaces. Hence the elements appear to consist of linear triangles, while the are actually smooth

Curvilinear Sphere Interior elements of a Curvilinear Sphere Domain Boundary of a Curvilinear Sphere Processor Boundary of a Curvilinear Sphere Ghost Elements of a Curvilinear Sphere

Curvilinear GMSH Reader is able to read meshes completely in parallel, without having to funnel the initial data file through the master process. To demonstrate that, we present a BullsEye geometry mesh of 4.4 million elements, read by Curvilinear GMSH Reader on 12 cores and written to VTK by Curvilinear VTK Writer. The first image presents the disk only, colored by the containing processor. Note that the mesh also contains an air bubble around the disk, which is disabled directly in ParaView by subselecting only the element tags of the disk itself. The 2nd image presents the ghost elements of the entire mesh, colored by the element tag (metal is red, air is white and boundary layer is light blue).

Curvilinear Sphere Curvilinear Sphere

The below example is a mesh of a cylindric plasmonic cavity with curved edges, studied in the PhD thesis of Aleksejs Fomins. The first image is a vertical cut through the center of the mesh, colored by the material tag of the element. The second is a subset of the mesh, corresponding to the material tag of the dispersive dielectric layer.

Paraview layered mesh xz Paraview layered mesh perspective

We would also like to present some videos of electromagnetic simulations over curvilinear grids, performed by our full 3D DG Frequency Domain solver Hades3d.


Currently the Curvilinear Grid is available in the trunk version. Note that the Curvilinear Grid requires Curvilinear Geometry. Please use

git clone
git clone

to clone both modules into the folder already containing the core dune modules. Click here for detailed installation instructions.


Since Curvilinear Grid is open-source, we are open to contributions from the community. We are also interested in supervising Masters Thesis and summer projects for students interested in numerical methods and their application to modeling. Please contact us for more details.

Contact us

Curvilinear Grid is developed by LSPR AG
Grubenstrasse 9,
CH-8045 Zürich,
Email: curvilineargrid at lspr dot ch
Phone: +41 43 366 90 74

The original authors of Curvilinear Grid are
Aleksejs Fomins (aleksejs dot fomins at lspr dot ch)
Benedikt Oswald (benedikt dot oswald at lspr dot ch)

Do not hesitate to contact us with enquiries, suggestions, proposals, bug reports, etc

Last Update: 12 Dec 2016