我实现了一个有限差分算法来求解 PDE。
网格是大小为 [Nx, Nz] 的结构化二维域,求解 Nt 次。
我预先分配了包含所有解决方案的对象:
sol = zeros(Nx, Nz, Nt, 'single') ;
这很容易变得太大,并且出现“内存不足”错误。不幸的是sparse
,它不适用于 N 维数组。
对于这个问题,知道这些值并不重要,不用说,RAM 使用量会随着网格间距的减小和模拟时间的增加而呈指数增长。
我知道我不需要为了解决方案的进步而存储每个时间瞬间。只存储前两个时间步就足够了。但是,出于后处理的原因,我需要在所有时间步长(或至少是总数的约数)访问解决方案。它可能有助于指定,即使在解决方案之后,网格仍然主要由零填充.
我是在打一场失败的战斗还是有更有效的方式来进行(其他类型的对象,矢量化......)?
谢谢你。