GAMMA

GAMMA — Geometry-Aware Mesh Movement Analysis performs differentiable boundary-surface mesh motion. Given a CAD outer mould line and a surface mesh that must follow it, GAMMA moves every mesh node as the geometry deforms, carries analytic derivatives through the CSDL graph, and reports mesh-quality and inversion diagnostics so validity is checked rather than guaranteed.

Install the gamma-mdo distribution and import its public Python namespace as bsm3.

E175 mesh deformation

Animation of the E175 triangular surface mesh deforming with its geometry
Triangular surface mesh
Animation of the E175 quad-dominant surface mesh deforming with its geometry
Quad-dominant surface mesh

The animations are served from the v0.2.0a1 release, so they are not included in repository clones or package installations.

The pipeline is:

geometry parameterization
    -> deformed component coefficients
    -> intersection curves between components
    -> graph-Laplacian surface motion with regularization
    -> reprojection onto the deformed outer mould line
    -> quality and inversion diagnostics
    -> optional volume-mesh motion

bsm3.mesh_motion is the intended entry point and is deliberately small: input files, a GeometryModel describing what moves, a MeshMotion settings object describing how the mesh follows, and run to evaluate it.

import bsm3.mesh_motion as mm

result = mm.run(
    inputs=mm.InputFiles(
        geometry_file=step_path,
        surface_mesh_file=surface_path,
        cache_directory=cache_path,
    ),
    geometry=geometry,
    motion=mm.MeshMotion(quality=mm.QualityChecks(surface=True)),
    recorder=recorder,
)
result.print_summary()

Where to start

  • Installation — the validated Python 3.12 dependency stack and the install flags that protect an existing solver environment.

  • E175 example — the five-stage workflow, based on the tracked examples/e175_surface_deformation.py.

  • External parameterization — the generic contract: bring your own differentiable coefficients.

  • API reference — the public bsm3.mesh_motion surface.

  • Background — what each pipeline stage does and why.

  • Integrations and troubleshooting — honest status of DAFoam/OpenFOAM, MPI, VortexAD, mesh generation, and assets.