论文部分内容阅读
计算水动力学是计算流体力学的一个分支,其控制方程一般为不可压Navier-Stokes(NS)方程,在实际求解计算中存在诸多困难,如流体不可压、非线性强对流、高雷诺数流动、自由面复杂变形、计算量大等。因此,开发功能强大、精度好、效率高的水动力学并行计算求解器对数值求解复杂水动力学问题具有重要的意义。 本文基于开源CFD软件PETScFEM进行二次开发,以及通过对间断有限元法的自主开发,构建了一套水动力学并行计算求解器PNAOE-SJTU,并利用标准算例和典型问题进行了考核验证,为进一步求解复杂水动力学问题奠定了基础。该求解器依托并行计算机群系统,基于Linux操作系统和GNU自由软件平台,结合MPI库函数和PETSc并行计算工具箱,采用C/C++语言开发而成。针对数值求解水动力学问题的困难,该求解器有针对性地开发了下面的功能模块:不可压粘性流场有限元并行求解器模块、大涡模拟并行求解器模块、自由面流动并行求解器模块和强对流强间断流动并行求解器模块。 在不可压粘性流场有限元并行求解器模块中,基于开源软件包PETScFEM中已开发的分步有限元并行求解器和SUPG-PSPG有限元并行求解器,对不可压NS方程进行求解。通过转换数据结构和统一模块接口,并行求解器PNAOE-SJTU可直接采用软件Gambit生成的网格,大大增强了数值模拟具有复杂边界的不可压粘性流场的能力。通过顶板驱动方腔流标准算例,对不可压粘性流动并行求解器的计算精度和并行效率进行了考核验证,为二次开发做准备。 在大涡模拟并行求解器模块中,对PETScFEM中已开发的大涡模拟求解器进行改进,通过二次编程开发了带近壁衰减因子的Smagorinsky亚格子应力模型,用于数值模拟高雷诺数湍流问题。在大涡模拟计算中,传统的Smagorinsky模型具有较好的适用性,但在近壁区耗散过大。为克服这一缺点,采用近壁衰减公式对近壁处的涡粘性进行了衰减处理,并基于 MPI库函数将这一过程并行化。对顶板驱动方腔流的数值计算结果表明,改进后的大涡模拟技术能有效求解高雷诺数问题。 在自由面流动并行求解器模块中,采用两种方法求解自由面流动问题,一种是采用ALE动网格方法进行自由面追踪,另一种是采用Level Set方法进行自由面捕捉。针对自由面小变形流动问题,本文基于PETScFEM中已开发的二维动网格自由面追踪方法,通过二次编程开发了可求解二维和三维自由面流动的ALE动网格方法。在ALE动网格自由面追踪方法中,根据网格运动速度对NS方程中的对流速度进行修正,建立了更为准确的ALE动网格计算模型;针对该方法求解自由面波形的不稳定性,开发了一种锯齿状波形判断方法,并采用了更为合理的自由面光滑模型,提高了求解器的数值稳定性;为了防止自由面波形在出口边界的二次反射,开发了海绵层消波模块数值处理尾部区域自由面波形,提高了自由面流动问题的求解精度。通过对三维晃荡、三维立柱绕流、近自由面运动物体兴波等问题的并行数值模拟,验证了该计算模块的有效性和可靠性。但当自由面发生大变形时,如翻卷、破碎、融合等,会引起ALE动网格拓扑结构破坏而导致计算发散。为了解决这个问题,本文基于PETScFEM中已开发的Level Set自由面捕捉方法,对自由面大变形流动进行并行求解。通过对三维溃坝问题的数值模拟,可以看出Level Set计算模块能很好地模拟自由面大变形问题。 在强对流强间断流动并行求解器模块中,通过自主编程开发了间断有限元法,包括局部间断有限元法(LDG)和混合间断有限元法(HDG),用于数值求解对流扩散方程和不可压NS方程。LDG方法具有局部守恒性好、可高度并行化、高精度以及易于处理复杂强对流、强间断问题等特点。但LDG方法的稳定参数的选取具有经验性,若选取不当,则可能导致收敛速度变慢,计算精度降低。HDG方法在LDG方法的基础上,通过引入单元边界上数值通量守恒方程,在一定程度上解决了LDG方法中稳定参数选取经验化和收敛性差的问题。基于MPI库函数和PETSc并行计算工具箱,采用区域分解和线性代数方程组的并行计算等方法,对LDG和HDG求解器并行化。数值求解带强间断初始条件的对流扩散方程的计算结果表明,FEM产生了严重的数值振荡,而LDG方法和HDG方法均得到了较好的计算精度和较高的并行效率,均能保持较好的局部守恒性,且HDG方法比LDG方法具有更好的收敛性。此外,采用LDG方法数值模拟顶板驱动方腔流,计算结果表明该方法能有效求解低雷诺数下的不可压NS方程。 基于上面的工作,开发了水动力学问题并行求解器PNAOE-SJTU。通过典型标准算例的计算,验证了该求解器各功能模块都具有较高的计算精度和并行效率,可以较好实现水动力学基本问题的数值模拟。该求解器具有开放源代码、功能模块化、接口统一、易于扩展等特点,有利于进一步的功能模块开发。