我使用Ansys和lbm(使用的是开源工具为HemePure_GPU)分别对同一例大脑中动脉动脉瘤的数据进行仿真,两种方法的以下参数都设置一致。其中流体参数(血液密度1050 kg/m^3、动力粘度0.004 Pa*s)、边界条件(入口速度抛物线入口,血管中心速度高,从中心到血管边缘速度逐渐减小,出口压力设置为0)、物理仿真时间为5s。
我的目标将lbm的仿真结果与Ansys的仿真结果对比,了解lbm与Ansys之前的差异。但是仿真可视化以及提取的模型中心线上的压力和速度场,两种方法有较大差异(两种方法都采用仿真最后一个时间点的速度场和压力场进行对比)。具体如下:
1)lbm与Ansys相比,压力场的colorbar比较接近(但是数值范围不一致),但是压力场从入口到出口的中心线上的数值却相差较大,从入口到出口逐渐减小。
2)lbm与Ansys相比,速度场的colorbar看着相差大一些,但是速度场从入口到出口的中心线的数值却比较接近。
请问有没有了解HemePure_GPU以及LBM原理的,帮我分析和理解两种方法仿真结果之间的差异根源。
(个人猜测)
HemeLB我没用过,也不清楚是它的实现。如果只从这个图像上,我会觉得好像还对的挺好的,就是lbm的压强计算时可能没把外界表压减掉?
但是我在另外测试了两例stl模型上测试,中心线上的速度场分布跟我之前发的图片差不多,HemePure_GPU与Ansys大致能匹配,但是压力场从入口(高压)到出口(零压),都是高压部分HemePure_GPU比Ansys高,然后到出口逐渐两者差距变小。如下图,感觉只是减去外界表压似乎也没法完全匹配上。从您的理解看,可能是什么原因呢?
推测还是边界条件的问题为主,看看HemeLB有没有什么别的等效边界格式能试试吧。
这种医学场景+LBM的活我去年也做过,算的鼻腔内气流,不过是用OpenLB。那时我设置边界用的是 OpenLB 里提供的 InterpolatedPressure, InterpolatedVelocity,其技术原理可以参考下面提到的文章。
以我个人的经历,可能只能想到这么多了。
P. A. Skordos. “Initial and boundary conditions for the lattice Boltzmann method”. In:Phys. Rev. E 48 (1993), pp. 4824–4842. DOI: 10.1103/PhysRevE.48.4823.
您好,谢谢回复。我的边界条件的设置中,Ansys为抛物线速度入口,零压出口,壁面无滑移;HemePure_GPU同样是速度入口,零压出口(下图是HemePure_GPU的GitHub上的说明),壁面为SBB = Simple Bounce Back(最基础的 LBM 无滑移壁面实现方式之一)。我理解似乎边界条件应该是能匹配的了。
是非定常问题嘛,是不是物理时间换算的问题


