A Finite-Difference PDE solver.
Disclaimer: Use at your own risk. I have a bachelor’s degree in applied and computational mathematics, but never worked professionally in the field.
A python 3 library for solving initial and boundary value problems of some linear partial differential equations using finite-difference methods:
- implicit central
- explicit central
- explicit upwind
- implicit central
- implicit upwind
pip install pdepy
import numpy as np from pdepy import laplace xn, xf, yn, yf = 30, 3., 40, 4. x = np.linspace(0, xf, xn+1) y = np.linspace(0, yf, yn+1) f = lambda x, y: (x-1)**2 - (y-2)**2 bound_x0 = f(0, y) bound_xf = f(xf, y) bound_y0 = f(x, 0) bound_yf = f(x, yf) axis = (x, y) conds = (bound_x0, bound_xf, bound_y0, bound_yf) laplace.solve(axis, conds, method='ic')
import numpy as np from pdepy import parabolic xn, xf, yn, yf = 40, 4., 50, 0.5 x = np.linspace(0, xf, xn+1) y = np.linspace(0, yf, yn+1) init = x**2 - 4*x + 5 bound = 5 * np.exp(-y) p, q, r, s = 1, 1, -3, 3 axis = (x, y) conds = (init, bound, bound) params = (p, q, r, s) parabolic.solve(axis, params, conds, method='iu')
import numpy as np from pdepy import wave xn, xf, yn, yf = 40, 1., 40, 1. x = np.linspace(0, xf, xn+1) y = np.linspace(0, yf, yn+1) d_init = 1 init = x * (1-x) bound = y * (1-y) axis = (x, y) conds = (d_init, init, bound, bound) wave.solve(axis, conds, method='i')
Developing and Testing
pip install tox pip install -e . # Testing. tox # Always remove .tox/ after changing the files in ./requirements. rm -rf .tox/
Packaging and Distributing
Do not forget to update the
version field in
pip install twine # Packaging. python setup.py sdist python setup.py bdist_wheel # Distributing. twine upload dist/*
More about packaging and distributing here.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size pdepy-1.0.3-py3-none-any.whl (9.5 kB)||File type Wheel||Python version py3||Upload date||Hashes View hashes|
|Filename, size pdepy-1.0.3.tar.gz (6.0 kB)||File type Source||Python version None||Upload date||Hashes View hashes|