Comparison against the 'py-pde' package based on the example: Diffusion equation with spatial dependence
In this pull request, we extend the examples with a reproduction of the "Diffusion equation with spatial dependence" example from the py-pde library (the original example). Besides showcasing PyMPDATA capabilities on a new example, this enables us to compare both libraries.
To reproduce the example, we have had to extend PyMPDATA itself to handle heterogeneous diffusivity.
We have started the work on this project in a separate repository with a different project structure so the change history doesn't fully reflect real contributions. Then we moved out changes to a fork of PyMPDATA.
- Adrian (@MyNameIsArko) primarily contributed to reproducing the example with PyMPDATA and making necessary extensions to the library.
- Wiktor (https://github.com/WiktorProsowicz) and Jan (https://github.com/yancostrishevsky) prepared the core logic of the comparison.
- Arek (@arekpaterak) integrated it with PyMPDATA library to make this direct pull request.
CI reports this failure (https://github.com/open-atmos/PyMPDATA/actions/runs/15725758755/job/44315180539?pr=578):
File "/home/runner/work/PyMPDATA/PyMPDATA/./PyMPDATA/options.py", line 37, in Options
dtype: np.float32 | np.float64 = np.float64,
TypeError: unsupported operand type(s) for |: 'type' and 'type'