Skip to main content

有限差分 PDE 求解器。

项目描述

PDEPy

支持的 Python 版本 PyPI 版本 构建状态 覆盖状态 代码风格:黑色

一个 Python 3 库,用于使用有限差分法求解一些线性偏微分方程的初始值和边值问题。

  • 拉普拉斯
    • 隐式中心
  • 抛物线
    • 显式中心
    • 显式逆风
    • 隐式中心
    • 隐式逆风
  • 海浪
    • 显式
    • 隐式

用法

安装

pip install pdepy

例子

拉普拉斯方程

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")

抛物线方程

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")

波动方程

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")

发展

创建虚拟环境并安装要求:

bin/setup_venv

其他命令

在虚拟环境中运行命令:

bin/run <command>

安装要求:

bin/install_requirements

格式化代码库:

bin/format

皮棉代码库:

bin/lint

运行单元测试:

bin/test

发布

打包和分发:

bin/publish

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pdepy-1.0.4.tar.gz (6.3 kB 查看哈希

已上传 source

内置分布

pdepy-1.0.4-py3-none-any.whl (8.0 kB 查看哈希

已上传 py3