没有合适的资源?快使用搜索试试~ 我知道了~
OpenFOAM WENO库:高效实现与内存需求解决
软件X 12(2020)100611原始软件出版物用于OpenFOAM的高效WENO库Jan Wilhelm Gärtnera, Andreas Kronenburga,Tobias Martinba斯图加特大学燃烧技术研究所,Herdweg 51,70174 Stuttgart,Germanyb挪威科技大学土木与环境工程系,7491 Trondheim,挪威ar t i cl e i nf o文章历史记录:接收日期:2020年收到修订版2020年10月6日接受2020年关键词:OpenFOAMWENO高阶格式数值验证CFDa b st ra ct加权基本非振荡(WENO)概念在研究中得到了很好的建立,其优点是众所周知的,然而,诸如内存需求 等 实 施 细 节 阻 碍 了 许 多 开 源 CFD工 具 的 通 用 应 用 程 序 和 通 用 库 的使 用 。 本 文介 绍 了 一 个 用 于OpenFOAM的WENO库,并描述了一个有效的实现。该方案的大内存需求解决了重用已经计算的模板集,并将它们存储在一个数据库中,给出了一个可能的内存减少超过90%。实现了一个新的类,通过在每个处理器周围重建一个区域网格,允许在高度分解的网格上重建模板列表。这避免了处理器边界处的精度不足和稳定性问题。最后,通过标准的Taylor Green Vortex测试案例验证了所实现方案的性能。©2020作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-20-00017Code Ocean compute capsuleGNU通用公共许可证GNU General Public Licensev3.0使用git的代码版本控制系统使用C++、MPI、OpenFOAM、Catch2的软件代码语言、工具和服务编译要求,操作环境依赖OpenFOAM v5.x或OpenFOAM v7。在Ubuntu 18.04 LTS上测试如果可用开发人员文档/手册链接问题支持电子邮件jan-wilhelm. itv.uni-stuttgart.de软件元数据当前软件版本1.0此版本可执行文件的永久链接例如:https://github.com/WENO-OF/WENOEXT法律软件许可证GNU通用公共许可证v3.0计算平台/操作系统Ubuntu 18.04 LTS安装要求依赖性OpenFOAM v5.x或OpenFOAM v7如果可用,请链接到用户手册-如果正式发布,请包含对参考书目问题支持电子邮件jan-wilhelm. itv.uni-stuttgart.de*通讯作者。电子邮件地址:jan-wilhelm. itv.uni-stuttgart.de(J.W.Gärtner)。https://doi.org/10.1016/j.softx.2020.1006111. 动机和意义计算流体动力学(CFD)已成为研究和工业发展的标准工具。商业工具2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxJ.W. Gärtner,A. Kronenburg和T. 马丁软件X 12(2020)1006112∑p()=ωp(3)i,wenomKK|V ′|JKKK一K|V ′|J一一一′|V ′|∑Φj=|V ′|一个k克(克)∫∫∑提供了广泛的应用程序,但许可成本可能很高,这激发了人们对开放源代码和免费使用软件(如OpenFOAM)的兴趣。OpenFOAM提供了一个通用且易于使用的工具集,用于开发和编写结构化和非结构化网格的CFD软件[1]。它已经提供了广泛的求解器和离散化方案。然而,一类离散计划,推导出处理流的不连续性和高精度的顺序,仍然是失踪。虽然线性格式最适合于求解完整的波数谱,但它们在大的不连续性周围存在吉布斯不稳定性,这使得它们不适合于包含激波的模拟。这个问题可以通过使用混合格式来克服,该混合格式通常返回到更稳定的一阶格式,WENO方案的中心思想是使用每个模板的多项式的加权凸组合[6],NSi(米)我m=0其中NSi是支架的数量。模具列表包括一个中心模具和n个扇形模具,其中n是数字的面的单元Vi。模板的权重遵循Pringuey [9]和Henrick等人[11]中提出的方法,并且参考这些参考文献以获得更多细节。Eq.的基函数(2)满足Eq. (一个)为逆风偏置,不连续周围区域的解决方案。这类格式中的一类是全变差递减格式-(我∫|Vi′|k(ing(TVD)和归一化变差递减(NVD)格式一个适当的限制。然而,即使在光滑区域,这些方案也过于扩散,并且它们在LES模拟中的使用是值得怀疑的[2基本无振荡格式(ENO)的发展是为了在光滑区域实现高阶离散,并保持TVD特性,解决不连续性[2]。这种类型的计划使用一个侦察-以及将Rk作为任意正交基函数。使用围绕Vi的中心的泰勒级数展开找到合适的基函数[12,13]。通过将p(m)替换为,构造多项式来修改通量以实现TVD特性。该方案的稳定性和准确性大大提高,1Φj=|V ′|Vj′ p(m)(m)ddηd(5)提出了一种利用加权多项式展开集而不是选择最光滑的模板[6,7]。这些计划等式(2)中央细胞i的,通常被称为WENO方案。11998年,JVj′∑(m))k=1任何单元形状以及非结构化网格[3,8],并测试∑(m)(1)OpenFOAM实现存在[9,10]。然而,WENO计划的直接实施提高了性能-管理有关并行化、CPU成本和内存的问题Φj−Φi=一个kk=1K|Vj′|k(Vj′(七)管理这些问题使WENO无法实现性别平等,一般用途,大规模模拟。本文的工作改进了Open-FOAM中WENO方案的一些主要缺点,特别是对内存的要求.此外,并行化是现在改进并使用完全重建而不是0-haloΦj−Φi=a(m)Ajk(8)k=1矩阵jk是在考虑等式(1)的基函数的情况下计算的。(4)与,方法来表示WENO方案的多模板算法。1Ajk=|V ′|Vj′ Ψł(ξ⃗)dξdηdζ−1我∫|Vi′|k((九)2. 软件描述2.1. WENO方案的理论背景WENO格式的基本思想是用一个多项式表示pi来代替单元i和体积Vi的单元平均值Φi。为了防止由于网格拉伸而产生缩放效果例如,在非结构化网格中,多项式在参考空间中构造,该参考空间可以通过其仿射变换来变换到物理空间中,本文详细介绍了通过变换和利用曲面积分求解体积积分的方法马丁和舍夫丘克[10]。2.1.1. 解方程组为了求解Eq. 在公式(8)中,对于每个模板必须考虑至少K个单元,例如,矩阵维度为K×K。使用这种最小数目的单元通常会导致病态矩阵系统,这就是为什么要考虑剩余的单元,N×K,其中N通常被选择为两倍自由度[3,8]。1Φi=|V|1Φ(x)dx d y dz=|V′|Φ(φ)dθdηdθ=1 ∫p(ε)dεdηdε 。′很明显,矩阵只依赖于几何参数,因此可以在运行前计算和存储我V iIViIVi(一个)时间通常,QR分解用于有效地com-在运行时输入k。然而,如上所述,该方案的存储器要求是一个主要问题,并且QR解-这里,Vi′是参考空间中的映射单元Vi,p是可以通过展开式表示的表示多项式在自由度为K的局部基函数上,Kpi(φi)=Φi+akφk(φi).(二)k=1基函数在自由度上求和,自由度取决于多项式r的阶[8]。的虽然WENO格式最初是为结构网格开发的,但它们已扩展到适用于Φi+d dηd(6)J.W. Gärtner,A. Kronenburg和T. 马丁软件X 12(2020)1006113合成需要存储Q N ×N和RN ×K矩阵。因此,利用奇异值分解(SVD)计算并存储A的Moore-Penrose伪逆A +是比较可行的2.2. OpenFOAM中WENO方案的挑战模板收集和Moore-Penrose逆的计算从J.W. Gärtner,A. Kronenburg和T. 马丁软件X 12(2020)1006114×一×一一AA∑A−A××一一()9在所呈现的实现中,很明显,WENO方案所需的大部分工作可以在预处理步骤中完成。然后将解决方案存储在内存中并写入硬盘以备将来使用。然而,数据的预处理和存储导致了大量的存储器需求。当该方案用于LES上下文中时,这变得特别重要,其中具有超过100万个单元的网格并不罕见。此外,标准OpenFOAM例程不能用于并行化,因为它们只考虑单元的下一个直接邻居,而不代表多模板方法。因此,已经确定了两个主要的问题,阻碍了在通用OpenFOAM代码中使用WENO方案:(1) 伪逆矩阵A+(2) 并行分解网格下一节将讨论这两个问题。2.2.1. 内存需求这个例子说明了直接实现所需的巨大内存需求。假设网格大小为100万立方单元,三阶WENO格式必须存储7个矩阵,具有19 38个系数。这导致仅矩阵就需要40 GB的内存。对于5阶方案,需要338 GB的内存。由于伪逆仅取决于网格的几何形状,因此对于每个模板和单元,伪逆可能是不同的。然而,在大多数情况下,我们处理的是某种结构化的网格。因此,大多数矩阵不是唯一的,并且希望仅存储唯一矩阵并在需要它们的地方指向它们。这可以通过用新的数据结构替换使用的列表来实现,在下文中称为矩阵数据库。矩阵数据库系统。该数据库的底层数据结构是STL标准多重映射,其查找时间为log(n)。 在计算每个模板和单元格的逆矩阵+的过程中,检查是否已经在数据库中存储了类似的矩阵。为了检查这个矩阵是否已经存在,通过对矩阵系数求和来计算多重映射的键。将系数的浮点值转换为表示整数是有利的,使得相似的矩阵被分组在一起。为此,矩阵通过最大元素归一化,然后乘以1 × 10 × 6。这种哈希算法优于标准算法,如java的arrays.hashCode(),因为它对舍入错误不敏感。在计算出密钥k之后,查找所有低于k−的密钥到高于k+的密钥的矩阵,并与新矩阵进行比较。因此,如果系数中没有一个与存储在数据库中的参考矩阵Ak相差超过1 × 10 -9,则矩阵Ak被定义为相似,表1用WENO二阶格式计算了规则三次网格和圆柱网格上的内存需求。情况内存矩阵数据库[GB]相对减少无矩阵DB8–矩阵DB0.1百分之九十八最佳条件0.1百分之九十八分级矩阵DB0.1百分之九十八圆柱形网格无矩阵DB3.0-%圆柱体网格矩阵DB0.2百分之九十三最佳条件矩阵系统。Tsoutsanis等人[8]建议使用两倍数量的细胞来实现收敛。然而,这导致了更高阶的存储器需求显著增加此外,矩阵系统的精度,Ax=b,( 11)[14]的条件的平方作为矩阵的条件,并不一定随着细胞的增多而改善,实现了一种计算矩阵列表K×K到2K×K的最佳条件矩阵的新算法。因此,如果最佳条件矩阵具有小于2K单元的维度,则给出降低存储器需求2.3. 并行运行WENO方案的并行化并不像其他OpenFOAM方案那样简单。与线性或TVD格式不同的是,该格式不仅考虑了单元的直接邻居,而且模板更宽。这意味着,对于模板列表的收集,处理器补丁的相邻单元是不够的。然而,OpenFOAM仅提供关于直接相邻小区的信息。为了解决这个问题,每个处理器重建一个区域网格,包括其直接相邻的处理器和他们的邻居,以获得一个完全封闭的网格周围的处理器自己的网格。该过程允许收集具有当前网格的所有信息的模板列表,同时,仅需要为每个处理器重建网格的一部分。3. 说明性实例3.1. 存储减少的为了测试矩阵数据库的效率,使用三个网格,一个立方体没有和网格分级包含100 100 100个单元和一个圆柱体(320k个单元)。表1中列出了存储器需求,清楚地示出了对于这种常规克max(A)<1×10−.(十)网格大的内存减少是可能的。此外,结果表明,网格分级没有影响的伪逆矩阵。事实上,高记忆力最重要的因素如果找到这样的矩阵,则新矩阵 不添加, 返回先前存储的矩阵的迭代器。这里,应该强调的是,ASCII文件的写入精度低于9位有效数字将导致许多矩阵在理论上因此,建议使用高写入精度来生成网格,或者最好使用二进制格式。如果没有找到类似的矩阵,则将其添加到数据库中,并返回迭代器。现在,只需要存储数据库中矩阵的迭代器。存储迭代器而不是map键允许在模拟运行期间的恒定查找时间。减少是网格数据的准确性如果写入精度太低,则理论上相等的单元的计算单元中心是关闭的,因此参考空间改变,并且因此每个模板的矩阵也改变。对于所选测试用例,书写精度为9就足够了。3.2. 达到的准确度为了显示该方案的潜在精度,选择了雷诺数为1600的标准泰勒格林涡(TGV)测试用例。测试用例在具有643到2563个单元的结构化网格和具有类似单元的非结构化网格J.W. Gärtner,A. Kronenburg和T. 马丁软件X 12(2020)1006115=Fig. 1. 128 3结构网格Taylor Green涡试验例的拟能 单元格(a)和参考溶液(b)的积分误差。结果非结构化网格在(c)和(d)中示出number.结构化网格采用OpenFOAM blockMesh生成,非结构化网格采用SALOME软件Netgen-3D算法生成。生成的参比溶液,在具有512× 3个单元的网格上的去混叠伪谱代码用于与有限体积OpenFOAM结果进行比较[15]。选择拟能作为验证参数[15,16]。请注意,参比溶液使用了比本研究更细的网格。为了比较WENO格式的实现效果,选择了内建线性格式和有限线性TVD格式速度的发散。然后使用OpenFOAM的不可压缩pimpleFoam求解器求解TGV。图图1(a)显示了结构网格和256× 3网格的涡度拟能随时间的发展。结果表明,采用三阶多项式的WENO格式在线性格式的范围内得到了较好的结果,且性能明显优于有限线性格式。为了比较不同网格尺寸的结果图图1(b)和1(d)显示了网格尺寸上的积分误差。这表明WENO格式至少与线性格式一样精确,并且对于非结构网格显示出显著的改进。3.3. 解决两相流中的冲击在完全闪蒸喷雾中,蒸发液体以高于环境值的压力离开喷射器,这导致射流膨胀不足[17由此产生的复杂冲击系统是很难模拟的,因为大多数多相求解器都使用基于压力的方法,而通常跨音速流是通过基于密度的方法来解决。虽然TVD格式可以帮助解决激波阵面处的不连续性,但它们不能提供所需的精度,并且不够稳定。开发的WENO计划可以克服这个问题,并允许一个稳定和准确的模拟。这在图中示出。图2描绘了一个完全闪蒸的低温液氮射流的二维模拟,代表了Gärtner等人的案例“ L N 2 - 2 ” 。 [20]与R p 48 的比值。1.在这个测试中,液氮温度为89度。7K注入直径为1mm、长径比为2.9的注射器注入到具有相同温度的近真空室中。射流以比环境压力高37倍的压力离开喷射器,导致在欠膨胀射流中典型的冲击系统。的情况下,模拟与可压缩多相求解器开发在同一工作中使用的均匀松弛模型(HRM)的相变。随着网格分辨率的增加,LES模拟所需的激波阵面不再能用有限的线性TVD格式来求解,见图2。二、与此不同的是,WENO方案准确地捕获了激波,并允许正确的分辨率同时在光滑区域保持高阶精度。这表明WENO计划的适用性,特别是在多相的背景下,这样的问题4. 影响和结论在这项工作中,高阶WENO计划库被引入OpenFOAM,并首次公开。的J.W. Gärtner,A. Kronenburg和T. 马丁软件X 12(2020)1006116=图二. 完全闪光喷雾的激波前沿速度幅值比较WENO格式(上)和有限线性格式(下)用于动量方程的离散化。通过采用有效的数据结构,克服了WENO格式在非结构化网格中内存需求的固有问题。此外,一个新的模板收集策略,以解决分解域的处理器边界的问题。新的数据管理的性能被证明,并使WENO计划现在适用于大规模的研究或工程应用。用标准 Taylor GreenVortex检验例检验了格式的精度,已经表明,结构化网格的相同性能的中心差分线性格式。对于非结构网格,WENO格式的计算结果比线性格式好得多,误差减小了40%以上。最后给出了用WENO格式求解跨音速绕流的一个算例。多阶段的背景。当形式稳定的TVD格式不能精确求解激波阵面时,WENO格式可以得到光滑而精确的结果。现在有可能以高精度和稳定性解决OpenFOAM中的跨音速多相问题。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢作者感谢德国研究基金会(DFG)在合作研究中心SFB-TRR75(项目编号84292822)内为该项目提供的财政支持。作者还感谢获得由巴登-符腾堡州科学、研究和艺术部以及联邦教育和研究部资助的超级计算机Forecast引用[1]OpenFOAM基金会OpenFOAM v5用户指南。2020年,URLhttps://cfd.direct/openfoam/user-guide网站。[2]哈滕·A,奥舍·S。一致高阶精度无振荡格式。I. SIAM J Numer Anal 1987;24(2):279[3] Dumbser M,Käser M.非结构网格上线性双曲型方程组的任意高阶无振荡有限体积格式。JComputPhys2007;221:693-723.http://dx.doi.org/10.1016/j.jcp.2006.06.043网站。[4]作者:Tsang C-W,Rutland C.数值格式对湍流平面燃气射流和柴油喷雾大涡模 拟 的 影 响 。 SAE Int J Fuels Lubricants 2016;9 ( 1 ) : 149-64.http://dx.doi.org/10.4271/2016-01-0866网站。[5]作者:Tang Yu,Tang Yu.用结构化LES和实验数据库评估非结构化LES:Re时方柱绕流2.2E+4。第29届计算流体力学研讨会。2015年。[6] 刘 小 东 。 加 权 基 本 无 振 荡 格 式 。 J Comput Phys 1994;115 : 200-12.http://dx.doi.org/10.1006/jcph.1994.1187网站。[7]蒋国生,舒昌文。加权ENO格式的有效实现。J Comput Phys 1996;126(1):202-28. http://dx.doi.org/10.1006/jcph.1996的网站。0130.[8]周文锋,李晓梅,李晓梅.任意非结构网格上层流、转捩和湍流的WENO格式.J Comput Phys 2014;256 : 254-76. http://dx.doi.org/10.1016/j.jcp.2013.09.002网站。[9]Pringuey TRCM。 大涡模拟初级液膜破裂[博士学位。剑桥大学;2012。[10]Martin T,Shevchuk I.使用OpenFOAM ENUR实现和验证半隐式WENO格式。计算2018;6(1):6.得双曲正切值.doi.org/10.3390/computation6010006。[11]Henrick AK,Aslam TD,Powers JM.映射加权基本无振荡格式:在临界点附近 达 到 最 优 阶 .JComputPhys2005;207 ( 2 ) : 542-67.http://dx.doi.org/10.1016/j.jcp.2005.01.023网站。[12]奥利维尔-古奇足球俱乐部基于无限数据依赖最小二乘重构的非结构网格拟ENO格式。JComputPhys1997;133:6-17.http://dx.doi.org/10.1006/jcph.1996.5584网站。[13] 弗里德里希·O非结构网格上平均值插值的加权基本无振荡格式。J ComputPhys 1998;144:194-212. http://dx.doi.org/10.1006/jcph.1998.5988网站。[14]GolubGH,Van Loan CF.矩阵计算,卷。3.第三章。北京:清华大学出版社.[15]Wang Z,Fidkowski K,Abgrall R,Bassi F,Caraeni D,Cary A,等.高阶CFD方法:现状与展望。Internat J Numer Methods Fluids 2013;72(8):811-45. http://dx.doi.org/10.1002/fld.3767网站。[16]van Rees WM,Leonard A,Pullin DI,Koumoutsakos P.高雷诺数下模拟周期性涡流的涡流和伪谱方法的比较。J Comput Phys 2011;230(8):2794-805.http://dx.doi.org/10.1016/j.jcp.2010.11.031网站。[17]Lamanna G , Kamoun H , Weigand B , Steelant J. Towards a unifiedtreatment of fully flashing sprays. Int J Multiph Flow 2014;58 : 168-84.http://dx.doi的网站。org/10.1016/j.ijmultiphaseflow.2013.08.010。[18]Vieira MM,Simoes-Moriera JR.异辛烷液体射流中的低压闪蒸机理。流体机械杂志2007;572:121-44.http://dx.doi.org/10的网站。1017/S0022112006003430。[19]放大图片作者:Kristan T,Chaves H,Meier G.高度过热液体射流的完全绝热蒸发。流体机械杂志1992;236:43[20]Gärtner JW,Kronenburg A,Rees A,Oschwald M,Lamanna G.闪蒸低温氮 气 的 数 值 和 实 验 分 析 。 Int J Mul-tiph Flow 2020;130 : 103360.http://dx.doi.org/10.1016/j.ijmultiphaseflow的网站。2020.103360。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功