《Computer Physics Communications》:VOFTools 6: Improved performance and added functionality for piecewise-paraboloid interface calculations
编辑推荐:
VOFTools库为任意网格上的流体体积(VOF)方法提供解析与几何工具。版本6引入了分段抛物面界面计算(PPIC)的新功能,并提升了现有分段线性界面操作(PLIC)的精度与计算效率。新功能包括:对离散多边形数据进行抛物面拟合、计算抛物面流体区域与多面体单元之
VOFTools库为任意网格上的流体体积(VOF)方法提供解析与几何工具。版本6引入了分段抛物面界面计算(PPIC)的新功能,并提升了现有分段线性界面操作(PLIC)的精度与计算效率。新功能包括:对离散多边形数据进行抛物面拟合、计算抛物面流体区域与多面体单元之间的相交体积,以及为满足指定流体体积分数而对抛物面界面进行保守定位。上述工具支持凸与非凸单元几何。该库还经过重构以改善互操作性,提供可供Fortran、C与Python调用的接口。随附测试程序用于评估各例程的精度与计算性能。此前已发表的比较研究表明,改进后的分段线性界面算法相较于基于VOFTools 5的过程,在选定几何与操作下加速比最高约为五倍,最大流体面积/体积分数误差降低约五个数量级。
在几何流体体积(VOF)方法中,任意网格上的界面重构与输运计算依赖于对多边形和多面体单元的高效几何操作,其中非凸单元的处理尤为困难。VOFTools 5已为非凸几何提供了分段线性界面计算(PLIC)所需的基础工具,但缺乏分段抛物面界面计算(PPIC)能力,且部分PLIC操作在精度与效率上仍有提升空间。为此,研究人员开发了VOFTools 6,引入抛物面拟合、抛物面与多面体相交体积计算以及抛物面界面保守定位等新功能,并对半空间截断、相交体积与相交顶点均值等既有操作进行算法改进,同时增加C与Python接口以提升互操作性。研究结论表明,新版本在保持PLIC功能的基础上扩展了PPIC能力,改进后的PLIC算法在选定几何与操作下相较VOFTools 5加速比最高约五倍,最大流体面积/体积分数误差降低约五个数量级,为具有PPIC重构的非分裂几何VOF对流方法提供了关键组件。
研究人员开展研究采用的主要关键技术方法包括:基于递归局部网格细化的抛物面流体区域与任意多面体相交体积近似计算;基于体积误差最小化的离散多边形数据抛物面拟合;采用Brent方法迭代平移抛物面以满足指定体积分数;基于散度定理的相交体积解析表达式与动态坐标原点平移;基于裁剪查找与封盖过程的半空间截断;以及通过Fortran内在ISO_C_BINDING模块实现C接口、利用F2PY生成Python绑定。
研究结果如下。关于抛物面相交体积计算,新例程intpv3dpa实现了基于递归局部网格细化的近似过程,在任意多面体上叠加nc×nc×nc笛卡尔子网格并递归细分,通过按子网格相对抛物面界面与多面体边界的位置分类避免冗余计算,支持凸与非凸多面体,是PPIC重构非分裂几何VOF对流方法的关键组件。关于抛物面拟合,新例程pvfit通过最小化体积拟合误差从离散多边形数据重构抛物面,实现基于体积误差最小化公式的拟合方法。关于抛物面界面定位,新例程enforvppa利用Brent方法迭代平移抛物面直至计算得到的流体体积分数与目标值匹配,相交体积由intpv3dpa评估,并避免对贡献不变的子多面体重复计算流体体积,与pvfit共同构成任意三维网格上迭代PPIC重构方法的关键组件;示例展示了沿ζ轴平移初始抛物面以满足f=0.05、0.5与0.95的规定体积分数,涵盖四面体与非凸星形立方体单元。关于半空间截断效率,inte3d通过引入裁剪查找与封盖过程提升了多面体被半空间截断的计算效率,在测试几何下加速比最高约2.7。关于相交体积计算,新例程intv3d利用由散度定理导出的表达式计算任意多面体与半空间的相交体积,当裁剪平面与多面体相交时将坐标原点平移至某个相交顶点,使包含该顶点的原始面及位于裁剪平面内的所有封盖面对体积表达式的贡献消失,从而无需构造与排序封盖面;与VOFTools 5中先调用inte3d再调用toolv3d的过程相比,复杂单元几何下加速比约三倍。关于相交顶点均值计算,新例程intc3d直接识别被相交的棱、计算相交顶点并求其算术平均值,无需构造截断多面体,该点一般并非横截面的面积质心,复杂几何下相较基于截断的过程加速比最高约五倍。关于PLIC界面定位精度,enforv2d与enforv3d经更新以减少舍入误差,求解过程中动态将坐标原点平移至界定界面位置区间的两个顶点之一,三维中该平移亦提升效率,包含新原点的面对体积表达式无贡献因而可省略;相较VOFTools 5,选定单元几何下最大流体面积/体积分数误差降低达五个数量级,二维执行时间相近,三维加速比最高约二倍。关于平面多边形操作,新例程inte3dface与areaface分别实现三维空间中凸或非凸多边形的半空间截断与有符号面积计算,适用于基于润湿面积时间积分的非分裂对流格式。此外,库经修订与重构以改善与C的互操作性,Fortran、C与Python示例程序得到更新,cvoftools.h头文件增加新例程声明,用户手册更新了安装与使用说明及新例程参数与调用约定,Python绑定由F2PY生成并通过Python包索引分发。
讨论部分总结了该库所解决的问题性质与求解方法。几何VOF方法需要对多边形和多面体单元进行精确高效的操作,包括非凸几何单元,涉及面积与体积计算、与半空间或抛物面流体区域的相交、以及为满足规定流体面积或体积分数而定位重构界面,此外还包括抛物面拟合、平面横截面代表点计算、由隐函数定义区域初始化流体分数以及点到分段线性界面距离评估等任务,VOFTools为任意网格上的这些操作提供工具并同时支持分段线性与分段抛物面界面计算。求解方法方面,多边形与多面体半空间截断采用几何过程并融入改进,面积与体积计算采用基于四边形分解与平面面投影至坐标平面的高效表达式,解析面积/体积守恒强制结合基于插值的区间界定过程与界面位置方程求解,改进降低了舍入误差与计算成本;任意多面体与抛物面流体区域的相交体积采用递归局部细化过程近似并附加避免冗余计算的优化;抛物面重构采用基于体积误差最小化的公式,重构抛物面采用Brent方法平移以满足规定体积分数;隐函数定义区域的流体分数采用适用于任意多边形与多面体单元的细化算法初始化;点到重构分段线性界面的距离采用相应方法计算。研究结论部分指出,VOFTools 6相较VOFTools 5引入了PPIC新功能并提升了任意网格上几何VOF方法中PLIC的精度与计算效率,改进后的PLIC算法已纳入VOFTools 6.0版本。