discretize 0.10.0 Release Notes#

October 27, 2023

This minor release changes discretize to use a pyproject.toml file with a meson-python build backend, and does away with the old setup.py style. This should allow the package to more reliably be built from the source code, properly setting the build-requirements.

It also adds more functionality for integrating properties that are defined on cell faces and edges for finite volume formulations (previously we only supported integrating with properties that were defined on cell centers).

Build system#

discretize now uses a pyproject.toml file with a meson-python backend to build the compiled external modules (used for the TreeMesh, SimplexMesh, and interpolation functions. Moving away from a setup.py file allows us to reliably control the build environment separate from the install environment, as the build requirements are not the same as the runtime requirements.

We will also begin distributing many more pre-compiled wheels on pypi for Windows, MacOS, and Linux systems from python 3.8 to 3.12. Our goal is to provide a pre-compiled wheel for every system that scipy provides wheels for.

Tensor Mesh#

You can now directly index a TensorMesh and return a TensorCell object. This functionality mimics what is currently available in TreeMesh.

TensorMesh also has a cell_nodes property that list the indices of each node of every cell (again similar to the TreeMesh).

Face Properties#

All meshes now have new functionality to integrate properties that are defined on cell faces and cell meshes within the finite volume formulation.

Style updates#

The pre-commit config files for discretize have been updated to more recent versions of black and flake8.

Contributors#

  • @jcapriot

  • @santisoler

  • @dccowan

  • @munahaf

Pull requests#

  • #327: Add black, flake8 and flake8 plugins to environment file

  • #328: Use any Python 3 in pre-commit

  • #329: Simplex stashing

  • #325: Add new TensorCell class

  • #330: Configure pyvista for doc builds

  • #331: Add a noexcept clause to the wrapper function

  • #326: Face props mass matrices

  • #335: Pin flake8

  • #333: Add cell_nodes property to TensorMesh

  • #339: Update a test expression to fix a logical short circuit

  • #340: Add export config for git archives

  • #338: Pyproject.toml

  • #342: CIbuildwheel

  • #342: 0.10.0 Release Notes