0

我目前正在研究 python 中的 3D 热扩散方程。

我正在用这个方程的格林函数与源方程的卷积来求解热扩散方程,它变成了傅里叶域的乘法。

G * S ---> TF --- > G x S

由于我使用了傅立叶变换,我有边界条件,这意味着我的 3D 模拟空间周围都有二次源。

在此处输入图像描述

为了抵消那些次要虚源的影响,我想应用 Dirichlet 边界条件,这将在边缘应用 0 值,并阻止热量扩散回我感兴趣的区域。

你做过了吗?你知道如何编码和实现它吗?也许还有另一种方法可以否定这些问题?

谢谢 !

4

1 回答 1

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
于 2015-06-30T08:13:21.297 回答