Releases: zwicker-group/py-pde
0.43.0
Added support for python 3.13
What's Changed
- Add synonym support for axis names in boundary conditions and update tests by @david-zwicker in #645
- Add return type annotation for FieldCollection constructor by @david-zwicker in #647
- Refactor boundary index handling to improve clarity and support new index formats by @david-zwicker in #648
- Add corner weight parameter for 2D Laplacian and update performance script by @david-zwicker in #649
- Improve input shape validation in GridBase methods and update performance script documentation by @david-zwicker in #650
- Add ffmpeg version retrieval and update environment information by @david-zwicker in #651
- Fixed 9-point stencil in Cartesian coordinates by @david-zwicker in #652
- Update maximal Python version to 3.13 in workflows and configuration files by @david-zwicker in #653
Full Changelog: 0.42.2...0.43.0
0.42.2
What's Changed
- Fix description of heterogeneous BC example by @david-zwicker in #636
- Fix figure retrieval in BasicPlottingContext for root figures by @david-zwicker in #637
- Fix typos in comments and add tests for vector_to_cartesian function by @david-zwicker in #638
- Improve string representations in various files by @david-zwicker in #640
- Update boundary conditions format in PDE tutorial notebook by @david-zwicker in #641
- Update py-modelrunner version to 0.18.3 in requirements files and scripts by @david-zwicker in #642
- Handle special case for identical boundary conditions in get_boundary_axis function and add corresponding test by @david-zwicker in #644
Full Changelog: 0.42.1...0.42.2
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