Some cleanup, bug fixing, and improved documentation.
What's Changed
* Add tests for adaptive MPI simulation of multiple PDEs by david-zwicker in https://github.com/zwicker-group/py-pde/pull/588
* Improve mpi.allreduce to allow specifying operator as strings by david-zwicker in https://github.com/zwicker-group/py-pde/pull/590
* Improved type hints by david-zwicker in https://github.com/zwicker-group/py-pde/pull/591
* Lazy-import MPI-related packages by david-zwicker in https://github.com/zwicker-group/py-pde/pull/592
* Minor fixes by david-zwicker in https://github.com/zwicker-group/py-pde/pull/593
* chore: Update Makefile for Sphinx documentation by david-zwicker in https://github.com/zwicker-group/py-pde/pull/594
* Deprecated `Parameterized` class by david-zwicker in https://github.com/zwicker-group/py-pde/pull/595
* Use `ruff` for formatting by david-zwicker in https://github.com/zwicker-group/py-pde/pull/596
* Update README.md by david-zwicker in https://github.com/zwicker-group/py-pde/pull/598
* Added many `flake8` checks in `ruff` by david-zwicker in https://github.com/zwicker-group/py-pde/pull/597
* Added `pre-commit-hook` for formatting code by david-zwicker in https://github.com/zwicker-group/py-pde/pull/599
* Made Controller more resilient by david-zwicker in https://github.com/zwicker-group/py-pde/pull/600
* Added test for PDEs with constant fields in MPI run by david-zwicker in https://github.com/zwicker-group/py-pde/pull/602
* feat: Deprecate preserve_scalars method in misc.py by david-zwicker in https://github.com/zwicker-group/py-pde/pull/603
* Improved documentation by david-zwicker in https://github.com/zwicker-group/py-pde/pull/604
* Added inheritance structure for solvers to documentation by david-zwicker in https://github.com/zwicker-group/py-pde/pull/609
* Bumped workflow versions by david-zwicker in https://github.com/zwicker-group/py-pde/pull/610
* Minor fixes by david-zwicker in https://github.com/zwicker-group/py-pde/pull/614
* Added example with a custom noise implementation by david-zwicker in https://github.com/zwicker-group/py-pde/pull/615
* Improved some typing and docstrings by david-zwicker in https://github.com/zwicker-group/py-pde/pull/616
* Fix bug in interpolation of vector fields onto Cartesian grids by david-zwicker in https://github.com/zwicker-group/py-pde/pull/617
**Full Changelog**: https://github.com/zwicker-group/py-pde/compare/0.41.0...0.41.1