Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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 (discontinous Galerkin).

Places on the web related to meshmode: