|
| 1 | +.. currentmodule:: discretize |
| 2 | + |
| 3 | +.. _0.11.0_notes: |
| 4 | + |
| 5 | +=================================== |
| 6 | +``discretize`` 0.11.0 Release Notes |
| 7 | +=================================== |
| 8 | + |
| 9 | +October 24, 2024 |
| 10 | + |
| 11 | +This minor release contains many bugfixes and updates related to new package builds. |
| 12 | + |
| 13 | +Numpy 2 |
| 14 | +------- |
| 15 | +`discretize` now fully supports `numpy` 2! It is both built against and tested against `numpy` 2.0. It still |
| 16 | +has a minimum required runtime of `numpy` 1.22 though, as building against numpy 2.0 emits ABI compatible calls for |
| 17 | +older numpy versions. |
| 18 | + |
| 19 | +Of note to developers, we now require `numpy` 2.0 for building as it makes use of the `numpy-config` tool to locate |
| 20 | +the `numpy` include directory. |
| 21 | + |
| 22 | +Python versions |
| 23 | +--------------- |
| 24 | +`discretize` has bumped its minimum supported `python` version to 3.10, and is tested against versions 3.10-3.13. In the |
| 25 | +future we intended to stay in line with the minimum `python` version supported by the most recent `numpy` release. |
| 26 | + |
| 27 | + |
| 28 | +Random Generators |
| 29 | +----------------- |
| 30 | +`discretize` and its testing utilities now make use of ``numpy.random.RandomGenerator`` to make draws from random |
| 31 | +number generators instead of the deprecated ``numpy.random.rand`` functions. These functions now support a new keyword |
| 32 | +argument `random_seed` : |
| 33 | + |
| 34 | +* :func:``discretize.tests.setup_mesh`` (only used when ``"random" in mesh_type``) |
| 35 | +* :func:``discretize.tests.check_derivative`` (only used when ``dx=None``) |
| 36 | +* :func:``discretize.tests.assert_isadjoint`` |
| 37 | +* :func:``discretize.tests.OrderTest.orderTest`` (only used when ``"random" in mesh_type``) |
| 38 | +* :func:``discretize.utils.random_model`` |
| 39 | + |
| 40 | +Maintainers of downstream packages should explicitly set seeded generators when using these methods for testing |
| 41 | +purposess to ensure reproducibility. |
| 42 | + |
| 43 | + |
| 44 | +Cell Bounds |
| 45 | +----------- |
| 46 | +:class:``discretize.TensorMesh`` and :class:``discretize.TreeMesh`` now have a ``cell_bounds`` property that returns the |
| 47 | +``(x_min, x_max, y_min, y_max, z_min, z_max)`` of every cell in the mesh at once. Also now the |
| 48 | +:class:``discretize.tree_mesh.TreeCell`` has a corresponding ``bounds`` property. |
| 49 | + |
| 50 | + |
| 51 | +``TreeMesh`` updates |
| 52 | +-------------------- |
| 53 | +You can now query a :class:``discretize.TreeMesh`` for cells contained in the same geometric primitives that are supported |
| 54 | +for refining. In addition there is a new :func:``discretize.TreeMesh.refine_plane`` method for refining along a plane. |
| 55 | + |
| 56 | + |
| 57 | +Contributors |
| 58 | +============ |
| 59 | + |
| 60 | +* @jcapriot |
| 61 | +* @santisoler |
| 62 | +* @prisae |
| 63 | +* @xiaolongw1223 |
| 64 | +* @lheagy |
| 65 | +* @omid-b |
| 66 | + |
| 67 | +Pull requests |
| 68 | +============= |
| 69 | + |
| 70 | +* `#347 <https://github.com/simpeg/discretize/pull/347>`__: Replace deprecated Numpy's `product` by `prod` |
| 71 | +* `#351 <https://github.com/simpeg/discretize/pull/351>`__: Replace Slack links for Mattermost links |
| 72 | +* `#353 <https://github.com/simpeg/discretize/pull/353>`__: Fix typo in tutorials |
| 73 | +* `#354 <https://github.com/simpeg/discretize/pull/354>`__: Update year in LICENSE |
| 74 | +* `#356 <https://github.com/simpeg/discretize/pull/356>`__: Expose TreeMesh geometric intersections used for refine functions. |
| 75 | +* `#358 <https://github.com/simpeg/discretize/pull/358>`__: Replace hanging CurviMesh in docstring for CurvilinearMesh |
| 76 | +* `#360 <https://github.com/simpeg/discretize/pull/360>`__: Update use of `numpy`'s random number generators. |
| 77 | +* `#364 <https://github.com/simpeg/discretize/pull/364>`__: Fix slicer re #363 |
| 78 | +* `#366 <https://github.com/simpeg/discretize/pull/366>`__: Add `TensorMesh.cell_bounds` property |
| 79 | +* `#367 <https://github.com/simpeg/discretize/pull/367>`__: Add `TreeCell.bounds` and `TreeMesh.cell_bounds` methods |
| 80 | +* `#368 <https://github.com/simpeg/discretize/pull/368>`__: Set minimum to Python 3.10 (and general CI Maintenance) |
| 81 | +* `#371 <https://github.com/simpeg/discretize/pull/371>`__: Add version switcher to discretize docs |
| 82 | +* `#372 <https://github.com/simpeg/discretize/pull/372>`__: Deploy docs to a new folder named after their tagged version |
| 83 | +* `#373 <https://github.com/simpeg/discretize/pull/373>`__: display dev doc banner |
| 84 | +* `#374 <https://github.com/simpeg/discretize/pull/374>`__: Bump pydata_sphinx_theme version to 0.15.4 |
| 85 | +* `#375 <https://github.com/simpeg/discretize/pull/375>`__: Fix caching of internal projection matrices |
| 86 | +* `#376 <https://github.com/simpeg/discretize/pull/376>`__: Fix macos-latest build |
| 87 | +* `#379 <https://github.com/simpeg/discretize/pull/379>`__: Numpy2.0 updates |
| 88 | +* `#380 <https://github.com/simpeg/discretize/pull/380>`__: Create build_distributions.yml |
| 89 | +* `#381 <https://github.com/simpeg/discretize/pull/381>`__: 0.11.0 Release Notes |
0 commit comments