Description

Description

Description

PRAgMaTIc (Parallel anisotRopic Adaptive Mesh ToolkIt) provides 2D/3D anisotropic mesh adaptivity for meshes of simplexes. The target applications are finite element and finite volume methods although it can also be used as a lossy compression algorithm for 2 and 3D data (e.g. image compression). It takes as its input the mesh and a metric tensor field which encodes desired mesh element size anisotropically.

The toolkit is written in C++ but also provides interfaces for Fortran. It has been integrated with FEniCS/Dolfin and integration with PETSc/DMPlex is planned. One of the design goals of PRAgMaTIc is to develop highly scalable algorithms for clusters of multi-core and many-core nodes. PRAgMaTIc uses OpenMP for thread parallelism and MPI for domain decomposition parallelisation.

Publications

A thread-parallel algorithm for anisotropic mesh adaptation Under review: arXiv:1308.2480

Hybrid OpenMP/MPI anisotropic mesh smoothing DOI: 10.1016/j.procs.2012.04.166

Accelerating Anisotropic Mesh Adaptivity on nVIDIA’s CUDA Using Texture Interpolation DOI: 10.1007/978-3-642-23397-5_38

Download the source and build

git clone https://github.com/meshadaptation/pragmatic
mkdir pragmatic-build
cd pragmatic-build
cmake ../pragmatic
make
make test # this may take some time...

Install

If you want to install to a specific location then specify the argument –prefix=/target_location for ./configure. The default location is /usr/local.

make install

Documentation

Source code documentation with Doxygen.

Mailing list

You can join the PRAgMaTIc mailing list here. For bug reporting etc please use the issue tracker on the github pages.

License

BSD 2-Clause “Simplified” or “FreeBSD” license. See the Open Source Initiative for further information about licenses.