Skip to content

Version

Sunil Anandatheertha edited this page Oct 6, 2026 · 12 revisions

Version

Current version: 1.3.1

1.3.1 is released — live on PyPI (2026-10-06). This page is a working snapshot for tracking further 1.3.x changes as they land; it is not a substitute for the release notes. Versions before 1.3.1 are not maintained.

Source of truth Where
Version string pyproject.toml → project.version; installed package: upxo.__version__
Release narrative CHANGELOG.md · Changelog & Releases
Code line Git branch dev, tag v1.3.1 (further 1.3.x commits land on dev after the tag)
PyPI https://pypi.org/project/upxo/
Demo notebooks UPXO-demos (not in the pip package)
import upxo
print(upxo.__version__)   # e.g. 1.3.1
pip install upxo==1.3.1
# with Gmsh for conformal meshing:
pip install "upxo[mesh]==1.3.1"
# or, for the current development tree:
pip install -e ".[mesh]"

Status of 1.3.1

1.3.1 is a patch release on top of 1.3.0: import and packaging fixes. Tag v1.3.1 was released to PyPI on 2026-10-06.

Python requirement remains ≥ 3.13. Optional extra [mesh] is tetgen + gmsh>=4.13 (pyvoro is no longer included). Demo notebooks are no longer part of the UPXO repository; they are in UPXO-demos.


Already in 1.3.1

High-level only. Details live in CHANGELOG.md.

Area What landed
Imports Every module of the package imports in a fresh interpreter, and none prints output on import. Functions whose replacement does not exist raise NotImplementedError with a message.
Dependencies netlsd is a core dependency. setup.py lists statsmodels.
FM steel 3D The transformation steps use pxtal/fm_steel_3d/transform_shared.py.
Output folder Pipeline output goes to <checkout>/data or ./data under the working directory, not into the Python environment.
Tested environments Python 3.13 and 3.14, platform wheel availability, dependency versions from the declared minimum to the newest: Dependencies.
Removed meshing/confMesh3d and meshing/pxtalmesh_01.py. 3D conformal meshing is meshing/gbconformant (d3v2p0, d3v2p1). No code in the library uses trimesh, pygmsh or orix.
Tests tests/test_import_integrity.py, tests/test_repaired_legacy_paths.py.

Already in 1.3.0

High-level only. Details live in CHANGELOG.md.

Area What landed
3D conformal tet meshing: quality controls (d3v2p0) Thin-grain freezing, differential interface smoothing with wedge and corner guards, no-sharpening rule for facet openings, surface triangle angle repair, tet dihedral smoothing, face/edge swaps and node insertion, dihedral reports, quality histograms and views. See GB-conformant 3D.
3D conformal tet meshing: faster stages (d3v2p1) Same functions as d3v2p0 plus backend / n_workers: worker processes and numba kernels, chosen automatically, with a serial numpy fallback. Demo: confMesh/tet_mesh_v2p1_A.ipynb in UPXO-demos.
Twinned FCC 3D Pole-figure sample symmetry and EBSD-against-synthetic pole-figure comparison; Abaqus export with the reference UMAT materials, mm units, a load step, step increment and field-output controls, and C3D4 elements.
EBSD → Abaqus (2D) Real EBSD map → cleaned grains → grain-averaged orientations → conformal mesh → Abaqus .inp with one material per grain. See EBSD to Abaqus (2D).
Editable 2D grain polygons Polygon2d / NestedPolygon2d with shared editable boundaries, from Technique A, Technique B, Voronoi or Shapely polygons. See 2D Grain Structure Geometrification.
Removed pyvoro from the [mesh] extra; src/upxo/scripts/ and src/upxo/demos/ from the repository; three unused modules that did not compile.

Previous line: 1.2.x (last release 1.2.1, 2026-09-22) — see Changelog & Releases.


How to update this page

When 1.3.x gains a user-facing capability (or you bump the version):

  1. Set / confirm version in pyproject.toml.
  2. Add an Added / Changed / Fixed / Removed note in CHANGELOG.md.
  3. Edit this page: version string and "Already in".
  4. Refresh Changelog & Releases if the release narrative changed.
  5. Push the wiki repo (UPXO.wiki.git, branch master). See Contributing.

If you bump to a new minor or major line, change the heading and add a short "previous: 1.3.x" pointer rather than deleting history — the changelog remains the full record.

Clone this wiki locally