没有合适的资源?快使用搜索试试~ 我知道了~
MaMiCo 2.0:高性能分子连续流模拟的新功能与应用
软件X 20(2022)101251原始软件出版物MaMiCo 2.0:一个用于高性能分子连续流模拟的Piet Jarmatz,Helene Wittenberg,Vahid Jafari,Amartya Das Sharma,Felix Maurer,Niklas Wittmer,Philipp Neumann赫尔穆特-施密特大学,Holstenhofweg 85,22043,汉堡,德国ar t i cl e i nf o文章历史记录:收到2022年收到修订版,2022年9月9日接受,2022年关键词:分子动力学耦合软件设计分子连续介质流体力学高性能计算a b st ra ct宏微耦合工具(MaMiCo)是一个开源的C++研究软件框架,旨在以模块化的方式创建分子连续流模拟,即使用可交换的求解器。它可用于耦合离散粒子动力学代码与计算流体动力学求解器,同时保持性能,特别是在超级计算机上的并行执行。我们提出了一个新版本的MaMiCo,它通过许多新功能扩展了其功能,特别是动态处理分子动力学模拟实例,自动错误估计,耦合接口到社区代码ls1 martyn和OpenFOAM,Python接口,支持机器学习模块和增强的双向耦合。新MaMiCo版本的这些功能影响了计算科学的多个领域,并可用于解决未来的开放研究问题,例如多相流的高效多尺度数值模拟,或大规模集群系统耦合模拟的容错性。©2022由Elsevier B.V.发布这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本2.0指向此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00149Code Ocean compute capsule N/A法律代码许可证BSD-3条款使用git的代码版本控制系统使用C++、Python、MPI的软件代码语言、工具和服务编译要求、操作环境依赖性CMake、C++17如果可用,链接到开发人员文档/手册https://hsu-hpc.github.io/MaMiCo/如有疑问,请发送支持电子邮件至philipp. hsu-hh.de1. 动机和意义分子连续谱方法[1图1,在流体动力学中,使得能够研究纳米级的流动,其中应用于聚合物物理[5]或工程[6]。虽然有几个通用的多尺度和多物理耦合工具[7-The macro–micro-coup- ling tool(MaMiCo) focuses on the provision and encapsulation ofmolecular-continuum coupling algorithms,interfacingarbi-trary molecular dynamics (MD) and CFD software and enablingmassively parallel simulations on*通讯作者。电子邮件地址:jarmatz@hsu-hh.de(Piet Jarmatz).https://doi.org/10.1016/j.softx.2022.101251在以前的版本中,MaMiCo的模块化,接口和parallelization概念被证明[13],随后扩展到MD集成,即。将一个CFD模拟耦合到一组准相同的随机MD模拟,以减少统计误差和波动的影响[14]。在下文中,我们将讨论新版本,其中包括数据处理管道和噪声滤波器(第2.2节),动态集成处理和误差估计功能(第2.3节)以及新颖的接口实现(第2.4节)。此外,我们还对分子连续体系的参数敏感性作了简要的评述(2.5节).进一步的技术进步包括使用Python中基于C++的MaMiCo实现的绑定[15],索引数据结构的改进,2352-7110/©2022由Elsevier B. V.出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxPiet Jarmatz,Helene Wittenberg,Vahid Jafari et al.软件X 20(2022)1012512:= ××·∈Fig. 1. 流体的分子连续模拟方法:MD和CFD域在区域分解意义上耦合,以提供耦合的流场解。为了减少采样不确定性,MaMiCo支持单个MD域的整个MD系综的简化网格遍历并防止索引错误,以及新的灵活的恒温器配置选项。2. 软件描述图2给出了MaMiCo的概述,包括新的组件,将在下面详细描述。较小的盒子图2表示C++类和接口;然而,由于新引入的MaMiCopython 绑 定 与 这 些 类 及 其 方 法 的 包 装 器 , 它 们 也 可 以 用 于mamicopython模块。2.1. 介绍MaMiCo目前使用显式耦合方案来耦合宏观和微观尺度模拟。当将新的仿真代码连接(MacroscopicSolverInterface,用于宏观 解决者和分子,分子迭代器,MDSolverInterface,MD-SimulationandSimulationAndInterfaceFactoryforMDsolvers),并专门用于相关代码库。在每个耦合步骤中,通过预定数量的步骤前进,并且在步骤结束时交换重叠区域内的数据。的MD解算器发送平均质量和动量值,宏解算器将质量通量和边界条件强加到MD模拟上。更多的细节可以在以前的作品中找到[13,16]。2.2. 数据处理管道和噪声滤波器将分子动力学与计算流体动力学耦合意味着处理平均但仍然非常嘈杂的MD数据,例如平均流速的基于网格的采样。为了减少统计噪声,通常使用滤波器[17]。图中所示的FilterPipeline。2用于处理在耦合数据传输期间由两个求解器交换的数据。它主要用于分析和过滤从内部MD单元中的颗粒采样的数据,但它也可以应 用 于 来 自 CFD 求 解 器 的 数 据 。 每 个 实 例 都 有 一 个FilterPipeline实例MD仿真,由相应的Macroscope-CellService管理. 此外,还有另一个用于所有MD模拟的FilterPipeline实例,它对所有实例的平均数据进行操作,并由MultiMDCellSer- vice管理。存在许多不同的过滤模块,它们可以在运行时以任何顺序排列到FilterSequence中。FilterSequence可以从XML配置文件中的设置或通过Python脚本构造。 我们将具有多个输入的序列称为FilterJunction,其中一个junction可以应用多个junctor。非局部均值(NLM)噪声滤波模块是连接器,因为它需要两个输入:原始MD数据和来自任何其他滤波器模块的预滤波MD数据。基于Tensorflow [18]的ML过滤模块也存在。它使用一个完全连接的神经网络来预测MD数据,适用于特定流量场景中的小域有关数据处理和过滤系统的详细信息,请参见[19]2.3. 动态系综处理和误差估计动态集成处理。在MaMiCo中,类MultiMD-CellService,cf. 图2提供了管理CFD和MD求解器之间耦合过程特别是,它管理准相同的数量,MD模拟合奏成员。每个MD模拟可以在常规区域分解方面并行化,使用M Mx My Mz过程,即子域。我们将一个子域的占位符称为模拟槽。给定需要是M的倍数的N个秩的总数,MaMiCo的先前版本要求使用C(N/M)MD模拟,使用任何乘数CN.我们MaMiCo的新版本具有使用动态系综大小的功能:根据误差估计器或算法,MD模拟的数量可以在运行时任意改变。这在将来对于表现出高度瞬态密度和温度条件的模拟是有帮助的-较高的温度/较低的密度需要更多的系综成员来满足规定的统计不确定性阈值。从系综中删除MD模拟是微不足道的。相反,启动新的MD模拟需要通过MaMiCo控制的以下步骤:(1)从另一个MD模拟的检查点加载MD数据MaMiCo中引入了两个新类,用于管理模拟时隙和MD模拟数量。MultiMDMediator是负责管理插槽的管理类,即在插槽上添加/删除MD实例以及激活/停用插槽(例如,使用函数addN-MDSimulations(n)来启动n个新的MD实例)。 它的工作与第二个类InstanceHandling紧密相关,其中所有重新-启动或删除MD实例所需的任务,如初始化新的MD模拟,打开/关闭MD实例和CFD求解器之间的耦合等都是集中的。为了启动新的MD模拟,需要首先选择模拟时隙,或者通过给出时隙ID手动地选择,或者从处理器组选择,或者通过MultiMDMediator自动地选择,MultiMDMediator在循环过程中跨所有可用的等级均匀地分布MD模拟。如果没有空闲插槽,则将在现有数量的等级中添加新的模拟插槽块;不需要创建新的进程(和等级)。要删除MD模拟,将其关闭,从相应的插槽中删除,并停用插槽这些空插槽可以稍后立即用于启动新的MD实例。Piet Jarmatz,Helene Wittenberg,Vahid Jafari et al.软件X 20(2022)1012513图二. MaMiCo的软件设计红色框表示此版本中的新开发。(For对该图例中颜色的参考的解释,读者可参阅本文的网页版误差估计。 由于从MD采样的宏观数量的标准偏差取决于用于采样的 MD 实 例 的 数 量 , 我 们 在 MaMiCo 中 引 入 一 个 新 的 类ErrorEstimation来先验地估计一定数量的MD实例的“误差”,或者反之亦然,以估计将误差保持在规定值以下所需的MD实例的数量。ErrorEstimation允许估计相关流体动力学量的标准偏差,例如运行模拟中的速度、密度、温度或压力估计值可用于描述相应量的绝对误差或相对误差。有关动态集成处理和误差估计的方法的更多细节,我们参考[20]。2.4. 新接口2.4.1. OpenFOAM接口MaMiCo通过提供OpenFOAM接口得到增强,OpenFOAM是一 个 最 先 进 的 计 算 流 体 动 力 学 开 源 库 [21] 。 MaMiCo 的OpenFOAM接口允许使用IcoFoam求解器-一种该接口包括以下功能:(1)读取OpenFOAM字典并正确初始化变量,(2)设置CFD边界,该边界应填充MD数据,(3)将IcoFoam求解器推进一个时间步长,(4)接收并应用MD模拟的数据,(5)获取流场特定位置的当前速度,以及(6)将当前状态写入输出文件。有关更多信息,请参考读者[22]。2.4.2. ls 1 martyn/AutoPas接口ls1 martyn是一个灵活和可扩展的MD程序,在极端尺度下模拟固定大小的集合中的小刚性分子[23]。代码是高度模块化的,可以通过实现插件快速适应任何独特的用例。在过去的几年里,ls1 martyn已经扩展到使用粒子容器库AutoPas[24]。AutoPas使用自动调整在节点级别选择MD算法、数据结构和共享内存并行化方案的组合,运行时,以持续监控和提高粒子模拟性能。这在几个应用程序中显示出显著的加速效果[25]。由于ls1 martyn中的各种严重代码更改,例如AutoPas集成,扩展负载平衡等,MaMiCo [13]的原始接口需要 被取代新的实现是基于ls1 martyn提供的插件系统,它允许耦合代码在仿真循环的不同点运行,而不需要改变仿真行为。由于实际的模拟循环从未改变,我们只剩下一个更健壮和更经得起 未 来 考 验 的 耦 合 框 架 。 虽 然 仍 处 于 实 验 阶 段 , 但 耦 合OpenFOAM + MaMiCo + ls 1 martyn-AutoPas模拟已经成功地用于双向耦合Couette流场景。2.5. 灵敏度和参数化分子连续模拟依赖于各种各样的技术和物理参数。这些依赖性通常在文献中很少涉及。为了减少选择参数的负担并解释其影响,我们进行了一项敏感性研究[22],重点是所考虑的库埃特系统的长期行为。我们相信,这将有助于未来的用户MaMiCo和分子连续耦合模拟一般。3. 说明性实例为了验证此版本中引入的新开发,我们通过同时启用所有重要的新软件组件来执行集成测试。该测试的结果在图1中以库埃特流场景的流速分布给出。3 .第三章。这是一个MPI并行双向耦合模拟,使用OpenFOAM作为连续体求解器,它使用MaMiCo内置的SimpleMD代码,在粒子侧使用Lennard-Jones流体。在一个单一的网格单元中的MD流速波动的预定义的误差阈值被选择。我们将此值定义为在模拟过程中线性减少,从最初的0.02到最终的0.005,因此MD实例的数量从64增加到448。 请注意,此处仅进行技术评估,即,显示软件正确处理不同数量的Piet Jarmatz,Helene Wittenberg,Vahid Jafari et al.软件X 20(2022)1012514图三. MaMiCo 2.0集成测试:使用OpenFOAM、动态多实例MD和NLM过滤在64 个 MPI 秩 上 进 行 双 向 耦 合 Couette 流 测 试 用 例 的 流 速 剖 面 。 点 表 示 从OpenFOAM提取的数据,十字表示从MD集合提取的数据MD实例,而不是物理或数字原因。还要注意的是,该阈值仅量化了单个耦合周期中来自MD的波动,而不是图2中所示的双向耦合模拟结果中的统计噪声。 3,其中随机效应可以在较长的时间跨度内累积。采用动态自适应参数化的NLM滤波图图3示出了在库埃特流场景的两个平行壁对于设置的更精确定义,读者可以参考[19]。连续线显示用于比较的分析解,圆形数据点来自连续解算器,交叉数据点是过滤后的MD值。正如预期的那样,粒子系统的随机波动对流动的影响很小,即使在MD域之外,因为它是一个耦合的场景,如前所述。然而,在图中可以观察到,耦合模拟的整体行为与分析解紧密匹配。4. 影响自动化的错误控制已被纳入分子连续流模拟环境中,这是第一次,显着提高了研究的生产力相似的参数支持过滤方法,其减少了计算费用,并且使用更少的计算资源使分子连续与发展的CFD和MD代码(如OpenFOAM和ls1 martyn)的接口被认为是扩大用户群以适应OpenFOAM和分子过程工程社区的重要一步。关于后者,国家合作项目1旨在将MaMiCo应用和扩展到更复杂的用例,包括多相系统。5. 结论许多应用领域的研究和开发基本上都是由复杂的仿真技术和数据第1https://dtecbw.de/home/forschung/hsu/projekt-mast/projekt-mast科学随着MaMiCo的新版本,我们为分子连续体系提供了一个多尺度计算软件,该软件配备了数据处理管道和噪声过滤器,致力于数据科学增强的多尺度流动模拟。该版本服务于几个方面:上述用户社区,以及更具挑战性配置中软件技术的引入和评估,例如用于MD数据和用于增强CFD模拟结果的机器学习算法作为我们展望的一部分,我们计划通过容错来扩展动态集合处理方法,从而在即将到来的百亿亿次超级计算机上实现更强大的竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性文章中描述的研究未使用任何数据致谢我们要感谢Sven Soelch为MaMiCo开发ML过滤模块。MaMiCo的开发得到了HSU内部研究基金(IFF)项目“多尺度仿真耦合的Exascale Resilience和动态降噪”以及联邦国防军数字化和技术研究中心( dtec.bw )的 www.example.com 项目 “MaST” 的支持 dtec.bwGCS大规模项目MDDC(HLRS,德国)和项目引用[1]Dupuis A,Kotsalis E,Koumoutsakos P.耦合晶格稠密流体的玻尔兹曼和分子动力学模型。物理学修订版E2007;75(4):046704。[2]Delgado-Buscalioni R,Coveney P.非定常流体流动中质量、动量和能量传递的连续体-颗粒混合耦合。Phys RevE2003;67(4):046704.[3]作者:Jiang M,Jiang D.混合分子连续模拟方法的耦合策略。机械工程科学杂志2008;222:797-806.[4]Mohamed K,Mohamad A.稠密流体的混合原子-连续介质方法发展综述。Microfluid Nanofluid2010;8:283-302.[5]Barsky S,Delgado-Buscalioni R,Coveney PV.溶剂中单一束缚聚合物的分子动力学与混合连 续 - 分 子 动 力 学 的 比 较 。J Chem Phys 2004;121(5).[6]Ritos K,Borg MK,Lockerby DA,Emerson DR,Jason MR.水流过现实厚度碳纳米管膜的混合分子连续模拟。微流体纳米流体2015.[7]Bungartz H-J , Lindner F , Gatzhammer B , Mehl M , Scheufele K ,Shukaev A,et al. preCICE - A fully parallel library for multi-physics surfacecoupling. Comput I Fluids2016;141:250-8.[8][1] Tang Y-H,Kudo S,Bian X,Li Z,Karniadakis GE.多尺度通用接口:耦合异构求解器的并发框架。JComput Phys2015;297:13-31.[9]Veen LE,Hoekstra AG.简化多尺度模型设计和与MUSCLE 3的耦合。In:Krzhizhanovskaya VV , Závodszky G , Lees MH , Dongarra JJ , SlootPMA , Prossos S , Teixeira J , editors. 计 算 科 学 - ICCS 2020 。 Cham :Springer International Publishing; 2020,p. 425-38[10]Permann CJ,Gaston DR,André D,Carlsen RW,Kong F,Lindsay AD,等. MOOSE:实现大规模并行多物理场模拟。SoftwareX2020;11:100430.[11]任晓刚,王强,徐林英,杨文俊,徐晓华. HACPar:一个高效的并行多尺度框架,用于微观和纳米尺度的混合原 子 连 续 模 拟 。Adv Mech Eng 2017;9(8).[12]史密斯E。分子动力学与连续介质计算流体力学的耦合。2013年。Piet Jarmatz,Helene Wittenberg,Vahid Jafari et al.软件X 20(2022)1012515[13]张文,等.分子连续流模拟软件设计.北京:科学出版社,2000,24(1):100 -101. Comput Phys Comm2016;200:324-35.[14]放大图片创作者:Ban X. MaMiCo:在超级计算机上进行瞬态多实例分子连续流模拟。Comput Phys Comm2017;220:390-402.[15]Jarmatz P,Maurer F,Neumann P. MaMiCo:耦合MD和CFD的灵活数据流的非局部均值滤波。在:计算科学国际会议。Springer; 2021,p.576-89.[16]Jarmatz P,Neumann P. MaMiCo:多实例分子连续流模拟的并行降噪。在:计算科学国际会议。Springer; 2019,p. 451-64.[17][11] ZimoiranM , Prosser R, Emerson D , Borg MK , Bray D , GrinbergL ,et al.多尺度 应用中基 于粒子 的流体 模拟的 降噪算 法评估 。J ComputPhys2016;325:380-94.[18]Abadi M,Barham P,Chen J,Chen Z,Davis A,Dean J等人,TensorFlow:一个大规模机器学习系统。第12届USENIX操作系统设计与实现研讨会。2016,p.265比83[19]Jarmatz P,Maurer F,Wittenberg H,Neumann P. MaMiCo:双向灵活数据流的非局部均值和POD滤波耦合分子连续HPC流动模拟。J Comput Sci2022;61101617.[20]Jafari V,Wittmer N,Neumann P.大规模并行分子连续流模拟与误差控制和动态包络处理。在:HPCAsia 2022,纽约,纽约,美国:计算机械协会;2022,p. 52比60[21]陈G,熊Q,Morris PJ,Paterson EG,Sergeev A,Wang Y. OpenFOAM用于计算流体动力学。非AMS2014;61(4):354-63。[22]Wittenberg H , Neumann P. 瞬 态 双 向 分 子 连 续 耦 合 与 OpenFOAM 和MaMiCo:灵敏度研究。计算2021;9(12).[23]李文,等.大规模并行分子动力学.北京:科学出版社,2000,21(1):100 -100. J Chem Theory Comput2014;10(10):4455-64.[24]Gratl FA,Seckler S,Tchipev N,Bungartz H-J,Neumann P. AutoPas:粒子模拟的自动调整。2019年IEEE 国际并行和分布式处理研讨会研讨会。IPDPSW,里约热内卢:IEEE;2019。[25]Seckler S , Gratl F , Heinen M , Vrabec J , Bungartz H-J , Neumann P.AutoPasin ls1 martyn : Massively parallel particle simulations with node-levelauto-tuning. J Comput Sci2021;50:101296.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功