测试了一下Palabos访问cell的population

之前在论坛和其他地方,得知了一些访问f’s的方法,但是不够确信,现在跑多次测试看看效果。

结论:
cell[iPop],lattice.get(ix,iy,iz)[iPop],cell.getRawPopulations()三者得到的结果相同。

论坛:https://palabos-forum.unige.ch/t/using-dynamics-object-to-access-particle-distribution-function/407
提到了一个说法在openLb里面分布函数是f_i - t_i,发帖者表示想访问真实的分布方程,便有如下代码:

T *f;
T Mx;         //Real particle distribution  function;
lattice.get(iX, iY, iZ).computePopulations(f);
for(int i=0; i<DESCRIPTOR<T>::q; ++i){
     Mx = (f[i] + DESCRIPTOR<T>::t[i])
  }

发帖者表示会返回错误,但底下回帖者表示可用如下代码访问格点的f’s,结果会成功。
lattice.get(iX,iY,iZ)[i]返回的为“f[i]-t[i]”。

在论坛:
https://palabos-forum.unige.ch/t/copying-the-particle-distribution-function/402/3
找到了储存为f[i]-t[i]的原因,是为了得到计算精度,也提到了如果想访问实际粒子分布函数,则需要加上每个方向的格子常数t。

另外一点是lattice.getDataAnalysis().getPopulations()得到的结果总和应该为大约是0,需要加上1才是density。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值