数值模拟->自由表面流体
自由表面流体
本工具需要容器图层和流体粒子图层作为输入,以粒子追踪的形式模拟自由表面条件下流体运动。计算引擎使用了MPS算法,MPS(Moving Particle Semi-implicit,移动粒子半隐式)粒子模拟是一种基于粒子方法的数值计算技术,主要用于模拟流体运动等物理现象,在计算流体力学领域占据重要地位。该方法由日本学者 Koshizuka 和 Oka 于 1996 年提出,其核心思想是将流体离散为一系列具有质量、速度等物理属性的粒子,通过求解粒子间的相互作用,来模拟流体的运动状态和物理行为。
MPS 粒子模拟采用半隐式算法求解流体力学方程,在处理不可压缩流体时,将压力泊松方程进行线性化处理,通过迭代求解粒子间的压力分布,以满足流体的不可压缩条件,实现对流体运动的精确模拟。这种方法巧妙地将拉格朗日描述与粒子方法相结合,避免了传统网格方法在处理大变形和自由表面问题时可能出现的网格扭曲和重构难题,使模拟过程更加直观和灵活。在 MPS 模拟中,粒子间的相互作用通过核函数来描述,核函数定义了粒子间的影响范围和权重,从而能够准确捕捉流体的表面张力、黏性等物理特性。
相较于传统的网格类数值模拟方法,MPS 粒子模拟具有显著优势。一方面,它无需预先划分网格,极大地简化了复杂几何边界和自由表面问题的处理流程,尤其适用于模拟具有复杂边界条件的流体流动,如液体在不规则容器中的晃动、多相流中不同流体的相互作用等场景;另一方面,MPS 粒子模拟能够自然地追踪流体的自由表面,无需额外的表面捕捉算法,从而提高了模拟的准确性和效率。
使用本工具时,首先选择容器图层和初始粒子图层。其中容器图层应为底面封闭的多边形网格,而初始粒子图层应为具有散点属性的图层,可包含粒子类型和初始速度等属性。
输出文件:请指定自由表面流体模拟的输出文件名称以及保存目录。
粒子初速:请指定流体粒子的初始速度,若不选则默认为零初速。
界面外扩:默认情况下,模型边界位于初始流体粒子和容器的并集所在立方体。若需要外扩请指定界面外扩模式,若选择相对值外扩,则用户需指定界面向XYZ三个方向外扩的比例;若选择绝对值外扩,则需指定向XYZ三个方向外扩的数值。
外扩系数:请指定生成模型界面时在X、Y、Z方向的外扩系数。在相对外扩模式下,此系数指与本方向范围的比值;在绝对外扩模式下,此系数指向六个方向外扩的绝对值。此系数可以为负值,意味着范围将收缩直至为0。
粒子间距:请输入模拟中流体粒子的平均间距(默认为图层对角线长度的千分之5)。
双相模拟:若启用双相模拟,用户需为第二类流体粒子指定流动参数。
粒子类型:在双相模拟中指定标注粒子类型所使用的数列名称,若不选择系统将认定所有粒子均为第一相。若选中数列,则数值为0的粒子为第一相;其余粒子为第二相。
流体动粘度:请输入模拟中流体粒子的动粘度(默认为1e-6m2/s)。动粘度是流体的绝对粘度(或称为动力粘度)与其密度的比值,用于描述流体的流动性。
第二动粘度:请输入双相流体模拟中第二相粒子的动粘度(默认为1e-6m2/s)。动粘度是流体的绝对粘度(或称为动力粘度)与其密度的比值,用于描述流体的流动性。
流体密度:请输入模拟中流体的密度(默认为1000kg/m3)。
第二密度:请输入双相流体模拟中第二相流体的密度(默认为1500kg/m3)。
重力X:请输入模拟中流体粒子重力加速度的X分量(默认为0m/s2)。
重力Y:请输入模拟中流体粒子重力加速度的Y分量(默认为0m/s2)。
重力Z:请输入模拟中流体粒子重力加速度的Z分量(默认为-9.81m/s2)。
库朗数:默认为0.2,一般介于0和1之间。在实际的CFD模拟中,选择适当的时间步长是至关重要的,而库朗数是确定步长的重要稳定性准则。CFL条件的核心思想是,在一个时间步长内,信息在网格中传播的距离必须小于网格单元之间的距离。在实际的CFD模拟中,选择适当的时间步长是至关重要的,因为它直接影响到计算的稳定性和物理现象的准确性。如果时间步长太大,可能会导致模拟发散;如果时间步长太小,则会增加计算成本。
总模拟时长:请输入模拟总时长,单位为秒。
时间步长:请输入模拟时间步长,单位为秒。时间步长越短,消耗计算资源越大,模拟过程越精细。
持续注入:系统每隔N个时间步在原始位置注入新的粒子。默认为0,即系统从不注入新粒子。由于自由流体模拟时间步通常较为密集,启用此选项将产生大量新粒子,请在谨慎测试后启用此功能。
注入边界:请指定注入边界所使用的数列名称,若不选择数列系统将认定所有初始粒子均被重新注入;若选择数列,则初始粒子中数值不为零的散点将被重新注入,而数值为零的初始粒子将被忽略。
输出间隔:请指定每隔多少个时间步长系统将保存一次模拟结果。
粒子重现:当粒子流出边界时在指定区域重新出现。可以单独指定某一相粒子重现,也可以指定所有粒子重现。
重现模式:请选择粒子流出模型边界后的重现位置。用户需指定一个立方体区域作为参数,参数意义随选项有所不同。若选择原位重现,此立方体区域将代表以原始位置为中心的重生区域,粒子在此区域内随机位置重生以避免出生碰撞,单位是粒子间距;若选择模型界面相对位置重现,则数值介于0和1之间,分别代表模拟区域内三个维度上的相对位置,所有粒子在此区域中的随机位置重现;若使用绝对位置,则应指定重现区域在三个维度上的确切起止坐标。
重现区域:请指定流出边界粒子的重现区域,此参数随重现模式的不同代表不同含义。若选择原位重现,此立方体区域将代表以本粒子原始位置为中心向六个方向延伸的区域,单位是粒子间距,粒子在此区域内随机位置重生以避免出生碰撞;若选择模型界面相对位置重现,此重现区域需位于模型界面内部,数值介于0和1之间,以相对位置计量,如([0.4,0.6],[0.4,0.6],[0.4,0.6])代表模型界面的正中央;若使用绝对位置,则此处应输入重现区域在三个维度上的确切起止坐标。为防止粒子重现时挤占其它粒子位置,请指定相对宽松的重现区域,粒子将在其中随机产生。
类型:向输出文件中写入粒子类型属性。
密度:向输出文件中写入粒子密度属性。
速度:向输出文件中写入粒子速度属性。
压强:向输出文件中写入粒子压强属性。
浓度:向输出文件中写入第二相粒子在总流体中浓度。
动粘度:向输出文件中写入粒子动粘度属性。
密度:向输出文件中写入流体密度属性。
边界:向输出文件中写入粒子边界属性。