Releases: simpeg/discretize
v0.11.1
v0.11.0
What's Changed
- Replace deprecated Numpy's
product
byprod
by @prisae in #347 - Fix typo in tutorials by @xiaolongw1223 in #353
- Replace Slack links for Mattermost links by @santisoler in #351
- Update year in LICENSE by @lheagy in #354
- Set minimum to Python 3.10 (and general CI Maintenance) by @jcapriot in #368
- Replace hanging CurviMesh in docstring for CurvilinearMesh by @omid-b in #358
- Fix slicer re #363 by @prisae in #364
- Add version switcher to discretize docs by @santisoler in #371
- Deploy docs to a new folder named after their tagged version by @santisoler in #372
- display dev doc banner by @jcapriot in #373
- Update use of
numpy
's random number generators. by @jcapriot in #360 - Bump pydata_sphinx_theme version to 0.15.4 by @jcapriot in #374
- Fix caching of internal projection matrices by @jcapriot in #375
- Fix macos-latest build by @jcapriot in #376
- Expose TreeMesh geometric intersections used for refine functions. by @jcapriot in #356
- Add
TensorMesh.cell_bounds
property by @santisoler in #366 - Add
TreeCell.bounds
andTreeMesh.cell_bounds
methods by @santisoler in #367 - Create build_distributions.yml by @jcapriot in #380
- Numpy2.0 updates by @jcapriot in #379
- 0.11.0 Release Notes by @jcapriot in #381
New Contributors
- @xiaolongw1223 made their first contribution in #353
- @omid-b made their first contribution in #358
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Changed
- Add black, flake8 and flake8 plugins to environment file by @santisoler in #327
- Use any Python 3 in pre-commit by @santisoler in #328
- Simplex stashing by @jcapriot in #329
- Add new TensorCell class by @santisoler in #325
- Configure pyvista for doc builds by @jcapriot in #330
- Add a noexcept clause to the wrapper function by @jcapriot in #331
- Face props mass matrices by @dccowan in #326
- Pin flake8 by @jcapriot in #335
- Add cell_nodes property to TensorMesh by @santisoler in #333
- Update a test expression to fix a logical short circuit by @munahaf in #339
- Add export config for git archives by @jcapriot in #340
- Pyproject.toml by @jcapriot in #338
- CIbuildwheel by @jcapriot in #342
- Add Release Notes for 0.10.0 by @jcapriot in #343
New Contributors
Full Changelog: v0.9.0...v0.10.0
0.9.0 Release
What's Changed
- Add stacklevel to warnings by @jcapriot in #309
- Switch to try_emplace by @jcapriot in #308
- Assert tests by @jcapriot in #310
- Remove calls with deprecated dir argument by @jcapriot in #312
- change name and description of average edge to face by @jcapriot in #314
- update doc page style sheet by @jcapriot in #315
- Curvilinear vector boundary integral by @jcapriot in #316
- Cyl average edge by @jcapriot in #317
- Feat/simp boundary by @jcapriot in #318
- Add message to assertion error in tests. by @jcapriot in #319
- Nodal boundary example by @jcapriot in #320
- Capture scroll by @prisae in #322
- Cyl mesh generalization by @jcapriot in #321
- 0.9.0 staging by @jcapriot in #323
- Add
total_nodes
method to TreeMeshes by @santisoler in #324
New Contributors
- @santisoler made their first contribution in #324
Full Changelog: v0.8.3...v0.9.0
0.8.3
What's Changed
- Dark mode theme for documentation by @jcapriot in #292
- Testing environment updates by @jcapriot in #294
- Diagonal tree balance by @jcapriot in #295
- More tree refine functions by @jcapriot in #296
- Add new refine surface, bounding box, and point refine methods. by @jcapriot in #297
- Build maintenance by @jcapriot in #299
- implement zeros outside for interpolation function by @jcapriot in #298
- Add style testing by @jcapriot in #300
- Documentation updates by @jcapriot in #301
- 0.8.3 staging by @jcapriot in #302
Full Changelog: v0.8.2...v0.8.3
Discretize restructure
This minor release is intended to bring consistent pep8 style naming across all of discretize's classes and functions.
There are two major types of renaming, aliases and deprecations. We have chosen to move to more descriptive property names for classes, generally. For example, mesh.area
is deprecated and now is mesh.face_area
. Also properties like mesh.vnC
are now officially mesh.shape_cells
due to the more descriptive name, but can also be accessed as mesh.vnC
to speed up some code writing for users. We have included a full list of aliases and deprecations below. In PR #227 we have detailed our reasonings behind individual name choices.
The other big change that will likely cause previous code to break is that all of these mesh.shape_*
type properties are now explicitly tuple
-s, making them immutable. These properties could previously be modified which would result in undefined and unsafe behavoir. A side effect of this, is that any code that relied on these properties being numpy.ndarray
-s, will break. This is intentional.
There's a few internal changes as well, to reorganize the file structure. importing items in discretize.utils
from their individual module files is not recommended and might result in future broken code. Please only import these items from the discretize.utils
module.
We have also separated the matplotlib
plotting code into a separate module: discretize.utils.mixins.mpl_mod
. At the same time we have further improved the plotting speed of discretize.TreeMesh
and discretize.CurvilinearMesh
. This also allows all of these functions to have a unified calling convention.
Finally, we have removed assert errors in favor of throwing the proper exception when checking inputs. We have removed all references to __future__
and six
to clean up and drop python 2 compatibility.
Changes
For a full list of deprecations and aliases please visit the release notes in the documentation here.
Volume Average
discretize
0.5.0 Release Notes
This minor release has a few small bug fixes as well as a new volume averaging operator.
The Volume Averaging operator has been implemented for arbitrary TensorMesh
, TreeMesh
, and combinations of them. It is defined as being a mass conserving operation. More details can be found in its documentation discretize.utils.volume_average
There are also some updates for the new deprecations in matplotlib
to hopefully throw less deprecation warnings internally. There are still a few left which are on our radar to fix in the next patch.
We are also dropping support for python 3.5 which will reach end-of-life within a few weeks.
Contributors
Pull requests
NumPy Build & Bug Fixes
summary of changes
This is a patch to fix a few bugs that have popped up over the last few months, as well as a single function addition to output only the model for a TreeMesh.
Also we have dropped testing of discretize on Python 2.7 as it is officially in end-of-life stage (as of January 1st, 2020).
-
From #191:
Enables discretize to be installed on a system without NumPy present beforehand (for example when pip installing discretize).
It also contains a small update to the curvilinear mesh view that updates that function to be in line with the otherplotImage
functions. -
From #189:
Bugfix. Slicer failed ifxslice
was provided without ayslice
, because of wrong comparison.
Before, if you provided a homogenous model, it looked like this:
So the colour in the xy- and xz-plots is wrong. As soon as you scroll, the colour in the yz-plot will change to the wrong colour too.
With the bug-fix, they all get the right colour, and will remain correct if scrolling:
The bug only affects homogeneous fullspaces, which caused an issue with the range used bycolorbar()
. -
From #187:
We can output models through thewriteUBC
method of the TreeMesh. However, we might want, for symmetry withTensorMesh
, also have thewriteModelUBC
function, which will only write out the model.
serialization of meshes
summary of changes
-
Update instantiation of basemesh so meshes can be formed from their serialized state, e.g.
mesh = discretize.BaseMesh.deserialize(mesh_json)
will have the value of
_n
stored, thus,n
does not need to be provided on instantiation -
Update the x0 property on the TreeMesh so that it goes through the
-
Allow
complex
scalars to return true in theisScalar
util, as well asnumpy.number
(rather than specificallynp.int
,np.float
) -
Add testing on the serialization / deserialization of meshes
Tree functions
Updates
- Several of the functions are used to integrate line source terms for FDEM.
- The TreeCell object now exposes it's node/edge/face indices to python, a TreeCell object can be obtained by directly indexing the TreeMesh.
- Added much documentation to the TreeMesh objects and their functions.
- The TreeMesh plotSlice and plotGrid functions now have the same calling conventions as the respective TensorMesh functions