meshmode: High-Order Meshes and Discontinuous Function Spaces ============================================================= .. image:: https://gitlab.tiker.net/inducer/meshmode/badges/main/pipeline.svg :alt: Gitlab Build Status :target: https://gitlab.tiker.net/inducer/meshmode/commits/main .. image:: https://github.com/inducer/meshmode/workflows/CI/badge.svg :alt: Github Build Status :target: https://github.com/inducer/meshmode/actions?query=branch%3Amain+workflow%3ACI .. image:: https://badge.fury.io/py/meshmode.png :alt: Python Package Index Release Page :target: https://pypi.org/project/meshmode/ 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: * `Source code on Github `_ * `Documentation `_