用实验数据求解泊松方程的边界条件

计算科学 计算物理学 边界条件
2021-12-09 10:51:34

我想在数值上(使用 Matlab)求解泊松方程:在使用实验数据的矩形域上。2ux2+2uy2=f(x,y)

根据实验数据,假设我有一个表示等式右侧从实验数据我可以访问这也是一个矩阵。[1:m×1:n](u)[1:m×1:n]

我的问题是:将我的网格缩小到的大小并采用 , , ,作为我的 Neumann 边界条件?还是我错过了什么?[2:m1×2:n1](u)(1,:)(u)(n,:)(u)(:,1)(u)(:,n)

2个回答

是的,这与我在为静电问题实现有限差分 (FD) 代码时所做的类似。我只是大致介绍一下它做了什么,当然可以提高计算效率。

我的方法有点不同,因为它能够模拟更复杂的几何形状。该方法的重要矩阵是:

  • 表示几何的矩阵,仅用于定义边缘节点
  • 包含需要计算的实际点的矩阵(边缘节点内的所有内容,不包括边缘节点)
  • 包含边界条件的矩阵,您可以将其创建为数据结构矩阵以表示所有可能的边界。元素只是边缘节点。

当计算的元素恰好在边界上时,它会在相邻边上查找边界条件的类型。它可以包含 Dirichlet、Neumann、周期性或任何您发明的边界条件。条件的细节可以保存在数据结构中,以便于施加各种边界。此时,将数据从结构中取出并放入计算中应该很容易。

它奏效了,我得到了正确的现场解决方案!

我最终发现了如何进行。

我找到了 De Kat 博士的工作,他的方法正是我想要实施的方法。它在此处的 pdf 文件中进行了解释 http://repository.tudelft.nl/view/ir/uuid:be00fb31-71cb-4859-ab79-67879caadc3c/(起始页 49)

对他来说,最好的方法是在流动区域中应用伯努利方程,但他确实使用产生压力梯度的纳维-斯托克斯方程作为他的纽曼边界条件。至少必须准确知道一个点,以便在计算后进行数据的移位。