Skip to content

v0.4.0 - initial public release

Choose a tag to compare

@IvanChernyshov IvanChernyshov released this 15 Feb 20:59
· 95 commits to main since this release
933bb22

Python-first wrapper around unmodified Voro++ for 3D Voronoi and power/Laguerre (radical Voronoi) tessellations.

  • Core API: compute(..., mode='standard') and compute(..., mode='power') (per-site radii).
  • Domains / containers:
    • Box (finite axis-aligned box)
    • OrthorhombicCell (axis-aligned cell with per-axis periodicity)
    • PeriodicCell (fully periodic triclinic cell) + PeriodicCell.from_params(...)
  • Periodic neighbor-image support: return_face_shifts=True annotates faces with lattice-image indices adjacent_shift=(na, nb, nc).
  • Point queries: locate(...) (batched ownership queries) and ghost_cells(...) (batched probe/ghost cells).
  • Input validation & preprocessing: near-duplicate detection via duplicate_check(...) (also available as an opt-in precheck in compute/locate/ghost_cells), plus robust validation for IDs, finiteness, and power radii; lattice degeneracy checks for PeriodicCell.
  • Post-processing / topology utilities: analyze_tessellation(...), validate_tessellation(...), annotate_face_properties(...), normalize.* helpers, and validate_normalized_topology(...) for strict normalized-topology workflows.
  • Inverse tools: pyvoro2.inverse utilities to fit power weights/radii from desired separating plane positions.
  • Optional 3D visualization: pyvoro2.viz3d (extra: pyvoro2[viz], based on py3Dmol).
  • Docs + tests: MkDocs documentation site with guide/API/examples, plus a deterministic test suite with opt-in fuzz/property tests and opt-in cross-checks against pyvoro.