Skip to content

inducer/meshmode

Repository files navigation

meshmode: High-Order Meshes and Discontinuous Function Spaces

Gitlab Build Status Github Build Status Python Package Index Release Page

Meshmode provides the "boring bits" of high-order unstructured discretization, for simplices (triangles, tetrahedra) and tensor products (quads, hexahedra). Features:

  • 1/2/3D, line/surface/volume discretizations in each, curvilinear supported.
  • "Everything is a (separate) discretization." (mesh boundaries are, element surfaces are, refined versions of the same mesh are) "Connections" transfer information between discretizations.
  • Periodic connectivity.
  • Mesh partitioning (not just) for distributed execution (e.g. via MPI).
  • Interpolatory, quadrature (overintegration), and modal element-local discretizations.
  • Independent of execution environment (GPU/CPU, numpy, ...) via array contexts.
  • Simple mesh refinement (via bisection). Adjacency currently only maintained if uniform.
  • Input from Gmsh, Visualization to Vtk (both high-order curvilinear).
  • Easy data exchange with Firedrake.

Meshmode emerged as the shared discretization layer for pytential (layer potentials) and grudge (discontinuous Galerkin).

Places on the web related to meshmode: