复现论文Predictive-Corrective Incompressible SPH (TOG 2009)
[Taichi] version 0.8.3, llvm 10.0.0, commit 021af5d2, win, python 3.9.7
python PCISPH.py
-LICENSE
-|data
-|pcisph.gif
-README.MD
-PCISPH.py
通过修正压力梯度力来最小化密度误差。 与WCSPH区别仅在于计算压力部分(即计算压力梯度力之前,计算非压力梯度力之后的部分)。 其大致流程为: 1.预测速度和位置(即时间积分,是与预测的压力梯度力有关的) 2.解析碰撞 3.通过压力梯度力计算密度误差(预测的位置处使用核函数公式) 4.计算修正后的压力梯度力(只要一个系数乘以密度差) 5.计算的密度误差比是否小于给定误差,如果是,跳出循环,否则回到第1步 上述循环输出为符合条件的压力梯度力。跳出条件为密度误差。 上述循环可以认为是一个功能模块,目的就是通过最小化密度差求解压力梯度力。 最小化的目标函数是密度差,自变量是压力梯度力。两者联系的方式为:预测的压力梯度力施加到粒子上,粒子前进后得到预测的位置,在预测的位置处使用核函数公式就得到了预测密度,与静止密度作差或者做商就得到了密度误差(本文中做商)。
@chunleili @lij131