2023年3月下旬

03月22日22:01:58 TODO

1. 中期报告中的算例

总共有五个算例,先解决三个:

1.1. 方腔驱动圆球的速度边界条件

2. 多重网格求解器的边界条件

3. 半拉格朗日方法实现对流项

4. 带有源项的连续性方程

5. docker实现项目的部署

03月23日15:21:41

需要修改多重网格方法的接口

15:48:32 一维多重网格方法

  1. 零Dirichlet边界条件表现得很好。
    commit: 03c900305a40cab2c6207ce045ab8a8445ccf335

  2. 非零Dirichlet边界条件只需要给初值精确施加边界条件,也表现得很好。
    commit: 2d94d0dd677a9da65506f329893ac6d964941e87


3. 更改限制算子后发现影响不大。

19:22:25 一维多重网格方法 Neumann 边界条件

commit: 4320082a229e382218260d84280772cbb20a0add

19:45:47 二维多重网格方法 Dirichlet 边界条件

commit: d7c7e58f1639f28bdd21df5ec4803c35c960d9c4

23:02:59 三维多重网格方法 Dirichlet边界条件

commit: ba699c8e4d3d484fe3610b5c37d64a2c8f942a68
image-20230323230419621

2023年03月24日18:49:11

commit: 0c19257a4cb08f344e97bf60173dc41948b7811d
纯NEUMANN边界的三维Poisson问题收敛效果不佳

03月27日11:18:56

泊松求解器现在存在的问题:

  1. 带有Neumann边界的三维Poisson问题不收敛。当网格增加到129x129x129时,多重网格迭代不收敛。
  2. 收敛速度慢。但是我看到一个别人写的,二维度Neumann问题,我觉得可能收敛。

03月29日09:54:28 重大突破

多重网格算法调通了,Neumann边界条件和Dirichlet边界条件都能快速收敛,边界可以是混合边界条件。
TODO: 我需要写一个函数,遍历所有NEUMANN点。将的值赋予给额外点

15:28:35 多重网格方法求解Poisson方程的GPU加速

测试的 CPU 为 Intel® Xeon® Gold 6240 CPU @ 2.60GHz,GPU为 NVIDIA Tesla V100 16GB ,网格单元数量为 2563256^3 未知量个数为 3×25733 \times 257^3 。多重网格中最粗的网格为 9x9x9,迭代格式采用了红黑高斯塞德尔迭代,限制算子类型为half-weighted,延拓算子类型为trilinear。平均单次V-cycle的单核CPU计算时间为110.189秒,GPU计算时间为0.049秒,加速比约为2250,达到了明显的加速效果。