Releases: zwicker-group/py-pde
0.42.1
This release fixes a number of minor bugs and improves the documentation.
What's Changed
- Improved codestyle and added checks by @david-zwicker in #622
- Added argument
post_step_hook
toPDE
class by @david-zwicker in #623 - Split examples into different categories by @david-zwicker in #625
- Removed
pyupgrade
since it is contained inruff
by @david-zwicker in #626 - Fix GridBase by @david-zwicker in #628
- Refactored logging by @david-zwicker in #630
- Added config option to affect how operators are implemented by @david-zwicker in #632
- Prevent usage of adaptive steppers with stochastic PDEs by @david-zwicker in #633
Full Changelog: 0.42.0...test
0.42.0
This release changes the way in which boundary conditions should be normally set. In particular, it deprecates the nested list approach, where conditions were set for each side of all axes in a more flexible, dictionary-based approach. In the new approach, conditions are directly specified for entire axes (x
) or for one side (x+
).
Moreover, we refactored the Boundaries
class, introducing a new base class and added the BoundariesSetter
class, so ghost points can be set directly using a callback function.
We also cleaned up some code and moved around some classes, so this might break old code!
What's Changed
- Slightly improved documentation by @david-zwicker in #618
- Refactored boundary conditions by @david-zwicker in #619
Full Changelog: 0.41.1...0.42.0
0.41.1
Some cleanup, bug fixing, and improved documentation.
What's Changed
- Add tests for adaptive MPI simulation of multiple PDEs by @david-zwicker in #588
- Improve mpi.allreduce to allow specifying operator as strings by @david-zwicker in #590
- Improved type hints by @david-zwicker in #591
- Lazy-import MPI-related packages by @david-zwicker in #592
- Minor fixes by @david-zwicker in #593
- chore: Update Makefile for Sphinx documentation by @david-zwicker in #594
- Deprecated
Parameterized
class by @david-zwicker in #595 - Use
ruff
for formatting by @david-zwicker in #596 - Update README.md by @david-zwicker in #598
- Added many
flake8
checks inruff
by @david-zwicker in #597 - Added
pre-commit-hook
for formatting code by @david-zwicker in #599 - Made Controller more resilient by @david-zwicker in #600
- Added test for PDEs with constant fields in MPI run by @david-zwicker in #602
- feat: Deprecate preserve_scalars method in misc.py by @david-zwicker in #603
- Improved documentation by @david-zwicker in #604
- Added inheritance structure for solvers to documentation by @david-zwicker in #609
- Bumped workflow versions by @david-zwicker in #610
- Minor fixes by @david-zwicker in #614
- Added example with a custom noise implementation by @david-zwicker in #615
- Improved some typing and docstrings by @david-zwicker in #616
- Fix bug in interpolation of vector fields onto Cartesian grids by @david-zwicker in #617
Full Changelog: 0.41.0...0.41.1
0.41.0
The main change is infrastructure for more flexible callback functions after each step.
What's Changed
- Added details about jupyter environment to
environment()
function by @david-zwicker in #573 - Added automatic decomposition of MPI grids by @david-zwicker in #578
- Changed default value of
decomposition
flag by @david-zwicker in #579 - Format docstrings automatically by @david-zwicker in #580
- Fix docstring replacement of plotting functions by @david-zwicker in #581
- Renamed
modify_after_step
topost_step_hook
by @david-zwicker in #583 - Allow using cartesian coordinates in (some) expressions by @david-zwicker in #584
- Changed post_step_hook such that it also receives the current time by @david-zwicker in #585
- Made
post_step_hook
more flexible. by @david-zwicker in #586 - Improved handling of initial data by @david-zwicker in #587
Full Changelog: 0.40.0...0.41.0
0.40.0
Support numpy 2.0
What's Changed
- Fixed documentation and convert input to array by @david-zwicker in #569
- Restrict numpy to version <2 by @david-zwicker in #571
- Simple check for numpy 2.0 compatbility by @david-zwicker in #570
Full Changelog: 0.39.0...0.40.0
0.39.0
This release collects minor adjustments, but there is also one which makes py-pde
compatible with newer versions of matplotlib.
What's Changed
- First variant of a
ModelrunnerStorage
class by @david-zwicker in #555 - Fixed an import to be compliant with newer matplotlib versions by @david-zwicker in #556
- Improved documentation by @david-zwicker in #558
- Store intermediate state information in case of error by @david-zwicker in #560
- Added better support for forward and backward derivatives by @david-zwicker in #562
- Added forward difference for vector fields on spherical grids by @david-zwicker in #563
- Added forward/backward derivatives for divergence on Cartesian grid by @david-zwicker in #564
- Cleaned up some defintions of operators by @david-zwicker in #565
- Added example for how to use storages by @david-zwicker in #568
Full Changelog: 0.38.0...0.39.0
0.38.0
The main new features are a new storage (MovieStorage
), which stores data in a compressed movie, thus saving space at the expense of reduced accuracy. The release also provides a new solver and additional improvements.
What's Changed
- Storage view by @david-zwicker in #537
- Improved implicit scheme for SDEs by @david-zwicker in #538
- Expose
StorageView
better by @david-zwicker in #539 - Replaced some
assert
statements with proper checks by @david-zwicker in #541 - Improved error message for
bc_ops
argument by @david-zwicker in #542 - First version of automatic linear stability analysis by @david-zwicker in #543
- Movie storage by @david-zwicker in #545
- Improved corner interpolation of fields with boundary conditions by @david-zwicker in #547
- Added some tests for legacy file information by @david-zwicker in #548
- Allow writing times in separate file in
MovieStorage
by @david-zwicker in #549 - Add test files for writing movie files with time stamp information by @david-zwicker in #550
- Updated pip optional requirements by @david-zwicker in #551
- Fixed warning in MovieStorage when using non-uniform interrupts by @david-zwicker in #552
- Added Adams-Bashforth stepper by @david-zwicker in #553
- Improved documentation and performance tests for multistep solver by @david-zwicker in #554
Full Changelog: 0.37.1...0.38.0
0.37.1
What's Changed
- Added
boundaries
iterator toBoundaries
class by @david-zwicker in #536
Full Changelog: 0.37.0...0.37.1
0.37.0
First release supporting python 3.12. The minimal python version is 3.9 now.
What's Changed
- Updated
black
formatter by @david-zwicker in #529 - Added a semi-implicit Euler-Maruyama solver by @david-zwicker in #530
- Renamed
get_data
method toget_sparse_matrix_data
by @david-zwicker in #531 - Fixed a bug in vector field conversion by @david-zwicker in #532
- Bump allowed python version to 3.12 by @david-zwicker in #473
Full Changelog: 0.36.0...0.37.0
0.36.0
This version contains a larger reorganization of the grid classes, where we now separated the calculations concerning coordinate systems in separate classes. This will make code cleaner in the longterm and allow us to support additional features more easily. However, this might also have introduced some bugs in the short-term.
What's Changed
- Added argument to determine offset for boundary points by @david-zwicker in #519
- Add
ylim
argument for line plots by @david-zwicker in #520 - Improved coordinate conversion capabilities by @david-zwicker in #523
- Improve merging color channels for field collections by @david-zwicker in #525
- Separate classes describing coordinate systems by @david-zwicker in #527
Full Changelog: 0.35.0...0.36.0