Skip to content

v0.1.2

Choose a tag to compare

@hdt5kt hdt5kt released this 21 Aug 19:13
· 153 commits to main since this release

graintrace 0.1.2

Second maintenance release. Headlines: pyzag is now installed automatically, CPFE runs end-to-end on the rebuilt NEML2 v3 / PUMA stack, a no-CUBIT voxel hex mesher, bring-your-own NEPER, CI, a benchmark suite, and a substantial docs overhaul.

Packaging & install

  • pyzag==2.0.0 is now a pip dependency — pip install graintrace installs it automatically (it's pure-Python). NEML2 stays a PUMA source build (the PyPI NEML2 wheel pins an incompatible pyzag, so it's intentionally not used).
  • Three-tier install documented by capability: Python-only → NEML2-only PUMA path (no full MOOSE build) → full CPFE.
  • NEPER is now bring-your-own via the new graintrace/neper_env.py resolver (NEPER env var → graintrace_tools.json → PATH), with an opt-in auto_install=True Linux ~/.local build. gmsh ships via pip.
  • Environment standardized on the PUMA build env; dropped the environment.yml step.

Features

  • CPFE runs end-to-end on the rebuilt NEML2 v3 / PUMA stack, pinned to moose_neml2_v3 (run_cpfe.i fix).
  • No-CUBIT voxel mesher — VoxelMeshBuilder.mesh(mesher="voxel") dumps the grid straight to Exodus (one cube hex per voxel, scaled-Jacobian = 1), alongside the default SCULPT hex path.
  • Taylor model grain-base optimization for material calibration.
  • Stitching: optional NEPER-tessellation extent refinement in scan_tessellation.

Tooling & CI

  • CI added: lint (pylint) + formatting (black) + tests with coverage (run_tests.yml, formatting_check.yml).
  • Benchmark suite under benchmark/ (calibration, CPFE, graph segmentation) with a shared harness.

Documentation

  • README: renamed subtitle "Grain Texture and Response Analysis for Crystal Exploration", broadened the description beyond CPFE, added a capabilities table and an examples table, and a repo-clone note (examples/benchmark/mwe_data don't ship on PyPI).
  • FF meshing default corrected: SCULPT hex (from the voxelized reconstruction) is the default; NEPER/gmsh tet .msh is a fallback, and CPFE runs on either hex or tet. Propagated across README, CLAUDE.md, skills, and MCP recipes.