请教关于SPH P2G差值实现的理解?

为了理解差值过程的逻辑,我将课上提供的程序修改为4*4网格,1个颗粒的体系,然后将颗粒信息输出,但是依旧感觉理解不清楚这里的差值逻辑,请大家指点。

从下面的输出中可以看到,颗粒的位置为xp: [1.016616, 2.518644],这个坐标是是x[p] * inv_dx计算得到,相当于相对于网格的无量纲坐标,大概位置是下图红点处。base坐标是base: [0, 2],我理解为从base位置处,往上遍历9个网格,去计算这些网格的权值。

具体计算的时候,这里的代码我理解不太清楚,我能猜到的是,对于w,其中有三个元素,如果将fx的横坐标带进去,第一个元素应该是颗粒和第一列网格(以base为基准)的权值,第二个元素是颗粒和第二列的权值,以此类推。如果把fx的纵坐标带进去,第一个元素应该是颗粒和第一行网格的的权值,以此类推。
但是具体这里的w的计算逻辑不太理解,为什么用fx带入到w中计算就能得到权值,能给出具体的步骤吗?非常感谢!


1 个赞

老哥我和你一样看不懂QAQ,这块没注释太草了

这是一个向量方式的式子,fx有两个分量,然后分别带入即可得到w的两个分量,再考虑到w本身就是一个3个的行向量,所以最终w是一个3*2矩阵