Skip to content

API Reference

This section provides detailed API documentation for all public classes and functions in mmgpy.

Quick Reference

Core Classes

Class Description
Mesh Unified mesh class with auto-detection
MeshKind Enumeration of mesh types

Options Classes

Class Description
Mmg3DOptions Options for 3D remeshing
Mmg2DOptions Options for 2D remeshing
MmgSOptions Options for surface remeshing

Result Classes

Class Description
RemeshResult Remeshing operation statistics
ValidationReport Mesh validation results
QualityStats Element quality statistics

Sizing Constraints

Class Description
SphereSize Spherical refinement region
BoxSize Box refinement region
CylinderSize Cylindrical refinement region
PointSize Distance-based sizing

I/O Functions

Function Description
read() Load mesh from file or PyVista object
from_pyvista() Create mesh from PyVista
to_pyvista() Convert mesh to PyVista

Modules

Module Description
mmgpy.metrics Metric tensor operations
mmgpy.lagrangian Lagrangian mesh motion
mmgpy.sizing Sizing constraint classes

Module Structure

mmgpy
├── Core Classes
│   ├── Mesh              # Unified mesh class (auto-detects type)
│   └── MeshKind          # Mesh type enumeration
├── Options
│   ├── Mmg3DOptions      # 3D options
│   ├── Mmg2DOptions      # 2D options
│   └── MmgSOptions       # Surface options
├── Results & Validation
│   ├── RemeshResult      # Operation statistics
│   ├── ValidationReport  # Validation results
│   ├── ValidationIssue   # Individual issues
│   └── QualityStats      # Quality metrics
├── Sizing
│   ├── SphereSize        # Spherical region
│   ├── BoxSize           # Box region
│   ├── CylinderSize      # Cylinder region
│   └── PointSize         # Point-based sizing
├── I/O Functions
│   ├── read()            # Load mesh
│   ├── from_pyvista()    # From PyVista
│   └── to_pyvista()      # To PyVista
├── mmgpy.metrics         # Metric operations
│   ├── create_isotropic_metric()
│   ├── create_anisotropic_metric()
│   └── intersect_metrics()
└── mmgpy.lagrangian      # Mesh motion
    ├── move_mesh()
    └── propagate_displacement()

Basic Usage Pattern

import mmgpy

# Load mesh
mesh = mmgpy.read("input.mesh")

# Configure options
opts = mmgpy.Mmg3DOptions(hmax=0.1)

# Remesh
result = mesh.remesh(opts)

# Validate
report = mesh.validate(detailed=True)

# Save
mesh.save("output.vtk")

Type Hints

All public APIs are fully typed. Use with a type-aware IDE for autocomplete:

from mmgpy import Mesh, Mmg3DOptions, RemeshResult

mesh: Mesh = Mesh("input.mesh")
opts: Mmg3DOptions = Mmg3DOptions(hmax=0.1)
result: RemeshResult = mesh.remesh(opts)

Version Information

import mmgpy

print(f"mmgpy version: {mmgpy.__version__}")
print(f"MMG version: {mmgpy.MMG_VERSION}")