我目前正在研究 python 中的 3D 热扩散方程。
我正在用这个方程的格林函数与源方程的卷积来求解热扩散方程,它变成了傅里叶域的乘法。
G * S ---> TF --- > G x S
由于我使用了傅立叶变换,我有边界条件,这意味着我的 3D 模拟空间周围都有二次源。
为了抵消那些次要虚源的影响,我想应用 Dirichlet 边界条件,这将在边缘应用 0 值,并阻止热量扩散回我感兴趣的区域。
你做过了吗?你知道如何编码和实现它吗?也许还有另一种方法可以否定这些问题?
谢谢 !
我目前正在研究 python 中的 3D 热扩散方程。
我正在用这个方程的格林函数与源方程的卷积来求解热扩散方程,它变成了傅里叶域的乘法。
G * S ---> TF --- > G x S
由于我使用了傅立叶变换,我有边界条件,这意味着我的 3D 模拟空间周围都有二次源。
为了抵消那些次要虚源的影响,我想应用 Dirichlet 边界条件,这将在边缘应用 0 值,并阻止热量扩散回我感兴趣的区域。
你做过了吗?你知道如何编码和实现它吗?也许还有另一种方法可以否定这些问题?
谢谢 !
您的数学问题很难,但您的 numpy 问题并不多:
所以,假设你有一个三维的numpy.ndarray
,你会得到三个索引;所以你只需将所有这些边界设置为 0:
arr[:,0,0] = 0 # all x, y == z == 0
arr[0,:,0] = 0 # all y, x == z == 0
arr[0,0,:] = 0 # all z, x == y == 0
arr[:,-1,0] = 0 # all x, y == last, z = 0
...
arr[:,-1,-1] = 0 # all x, y == z == last