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 https://github.com/zwicker-group/py-pde/pull/618
* Refactored boundary conditions by david-zwicker in https://github.com/zwicker-group/py-pde/pull/619
**Full Changelog**: https://github.com/zwicker-group/py-pde/compare/0.41.1...0.42.0