Last updated:
0 purchases
pdepy 1.0.4
PDEPy
A Python 3 library for solving initial and boundary value problems of some linear partial differential equations using finite-difference methods.
Laplace
Implicit Central
Parabolic
Explicit Central
Explicit Upwind
Implicit Central
Implicit Upwind
Wave
Explicit
Implicit
Usage
Installation
pip install pdepy
Examples
Laplace's Equation
import numpy as np
from pdepy import laplace
xn, xf, yn, yf = 30, 3.0, 40, 4.0
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")
Parabolic Equation
import numpy as np
from pdepy import parabolic
xn, xf, yn, yf = 40, 4.0, 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")
Wave Equation
import numpy as np
from pdepy import wave
xn, xf, yn, yf = 40, 1.0, 40, 1.0
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")
Development
Create virtual environment and install requirements:
bin/setup_venv
Other commands
Run command in virtual environment:
bin/run <command>
Install requirements:
bin/install_requirements
Format codebase:
bin/format
Lint codebase:
bin/lint
Run unit tests:
bin/test
Publish
Package and distribute:
bin/publish
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.