pdepy 1.0.4

Creator: bradpython12

Last updated:

Add to Cart

Description:

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.