bucket sort sample sort 并行_MOOSE: 实现大规模并行多物理场仿真(二)

转载自wx公众号:CS guy

来源于文章 MOOSE: Enabling massively parallel multiphysics simulation

网址:https://www.sciencedirect.com/science/article/pii/S2352711019302973?via%3Dihub

2.软件说明

2.1 软件架构

MOOSE旨在促进创建FEM工具,以运行高保真多物理场仿真。该软件由“系统”组成,每个系统都提供了一个扩展点,用于定义仿真特性。这些系统使用接口进行通信,通过解耦以允许更多的代码重用。 MOOSE中的每个系统都有一个特定的C++基类,应用程序开发人员继承该基类并覆盖虚函数,扩展该类以执行所需的计算。这种方法有两个优点:首先,应用程序开发人员可以使用标准C++的规范,完全控制计算流程;其次,继承链可以扩展,可超出框架所提供的基线功能,从而为下游应用程序提供丰富的功能。MOOSE有大约40个可以扩展的系统。单独讨论其中的每一个系统超出了本文的范围,但是提供框架核心功能的系统可以分为三类:与偏微分方程(PDE)相关的系统,材料属性和原位后处理(in-situ postprocessing)

定义PDE的两个系统是Kernel和BoundaryCondition系统。 Kernel对象定义了体积积分项,而BoundaryCondition对象定义了由FEM弱形式推导得出的表面积分项[15]。 例如,清单1中的C++代码片段是PDE对流项的实现示例。 此示例展示了支持自动微分(AD)的内核系统(请参阅第2.2节),必须实现precomputeQpResidual方法。

53abe30828051b9787b052f38fe969a5.png

这是一种定义PDE方程式项的很强大的方法,优点如下:

1)该对流算子可以在1D,2D或3D中使用;

2)它可以使用恒定速度,可以与求解另一个PDE计算得到的场耦合,可以使用另一个应用程序计算出的场,甚至可以使用来自实验的速度场;

3)该内核可以在一个处理器上工作,也可以在100,000个处理器上并行工作,无需进行任何修改;

4)任何需要该方程式项的应用程序都可以重用此对象,而无需对其进行重新编码;

5)最后,还能以受控的隔离方式对其进行测试,以确保正确性。

Material系统允许定义“材料属性”,通常表示PDE中的系数。 这些属性可能是非线性的,它们本身可能依赖于PDE中的变量。使用框架的自动微分功能,这种依赖关系可以自动传播到系统的Jacobian矩阵。 材料系统定义后,框架中的其他系统会通过简单的生产者/消费者模型(producer/consumer)来使用材料属性。 然后,MOOSE确保系统对象在需要时计算这些材料属性。 材料属性可以与其他材料属性耦合或依赖于其他材料属性,相互依存关系会被跟踪,并以正确的顺序执行。这种设计将物理计算与所需的系数分离开来,从而使属性可以在应用程序内、跨应用程序共享和重用,而无需修改使用该属性的对象的代码。

“原位后处理”,描述了一组用于数据计算的系统(原文:describes a set of systems used for data computation that is typically performed post-simulation which are computed along with other calculations after, during or in-between solves)。此类系统包括Postprocessor,VectorPostprocessor和AuxKernel系统。Postprocessor和VectorPostprocessor系统分别计算标量和矢量值(例如,通过侧面的总热流量或总化学浓度)。这些计算本身可以取决于其他变量,材料属性或其他后处理值。 MOOSE包含多个实用函数,可协助在后处理阶段进行并行聚合,广播和分散。 AuxKernel系统允许使用有限元基函数计算“场”或空间变化的数据。原位后处理可在大规模并行时执行计算。这些值可以反馈到其他系统中,包括反馈到PDE项或材料属性的计算中。该系统还可在模拟时生成用于可视化的数据。

MOOSE框架的“系统”和“接口”体系结构允许应用程序开发人员构建仿真工具,该工具能够解决从基本的单个物理问题到只有多个开发团队才能实现的广泛的,跨学科的多物理问题。 由此产生的应用程序,无论复杂性如何,都易于扩展,对研究团队和分析人员均有用。 MOOSE支持几种耦合机制:松散(交错),紧密(迭代)和完整(整体)( 对应的英文为loose (staggered),tight (iteration), and full (monolithic) ) [7],[16],并提供了几种方式来定制每种仿真类型的行为。 耦合的物理场不需要共享相同的网格或离散化,甚至不需要存在于相同的空间或时间尺度上。 可以使用Picard或定点迭代来实现非线性,同时使用内置或自定义逻辑在多个耦合模拟之间通过内存传递数据。

未完待续

[7]Gaston D.R., Permann C.J., Peterson J.W., SlaughterA.E., Andrš D., Wang Y., et al.Physics-based multiscale coupling for full core nuclear reactor simulation

Ann Nucl Energy (2014)

[15]Fish J., Belytschko T.A first course in finite elements Wiley (2007)

[16]Novascone S., Spencer B., Andrs D., Williamson R., Hales J., Perez D.Results from tight and loose coupled multiphysics in nuclear fuels performance simulations using BISON: Technical report

Idaho National Laboratory (INL) (2013)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iphone数据迁移到新iphone_Mac专业iPhone数据恢复软件----Omni Recover

Omni Recover mac是一个MacOS上的专业iPhone数据恢复软件,Omni Recover Mac版可以检索多达20多种类型的iOS数据,支持从iDevices恢复丢失的数据,轻松帮你找回数据,赶紧下载试试Omni Recove 激活版吧!软件介绍Omni Recov…

文档根元素 project 必须匹配 doctype 根 null_快评:全新MG5上市6.49万起,但买它必须准备10万?...

原标题:快评:全新MG5上市万起,但买它必须准备10万?上汽荣威新推出了一款A级轿车——MG5,售价万。上市前,我曾经在网上见过这款车的造型图,很有好感。所以当看到它的最低售价只有万时&#xff0c…

关于oracle sql语句查询时表名和字段名要加双引号的问题

oracle初学者一般会遇到这个问题。用navicat可视化创建了表,可是就是不能查到!后来发现②语句可以查询到①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysq…

模拟退火算法(代码可直接运行)

模拟退火算法(SA) 模拟退火是很经典的算法,针对大多数模型、应用,受限于SA运行时间长等特点,已不能直接应用SA,这样的算法值得去改进,我试图找一些缩短运行时间的方法,已经在测试&a…

fedora 33 topbar_最新!新增确诊病例33例,其中本土病例1例

【最新!新增确诊病例33例,其中本土病例1例】11月8日0-24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例33例,其中境外输入病例32例(上海13例,陕西6例,广东4例,四川4例&#xff0…

javaweb基础(40)_jdbc框架

一、元数据介绍 元数据指的是"数据库"、"表"、"列"的定义信息。 1.1、DataBaseMetaData元数据 Connection.getDatabaseMetaData()获得代表DatabaseMetaData元数据的DatabaseMetaData对象。  DataBaseMetaData对象的常用方法: getUR…

matlab运动目标检测

matlab运动目标检测最近做了运动目标检测的程序和GUI实现,参考了挺多博客,很多都是对数据格式要求比较高或者存在一定的bug(有些是因为版本不同),进行了一些修改。(2014以后的matlab都能运行)&a…

st-link v2怎么连接_三相交流电源的三角形和星形连接

相交流电是电能的一种输送形式,简称为三相电。三相交流电源,是由三个频率相同、振幅相等、相位依次互差120的交流电势组成的电源。我国发电厂和电力网生产、输送和分配的交流电都是三相交流电。1、三角形连接将三相电源的三个线圈,以一个线圈…

matlab程序聚类预测机器学习

matlabmatlab程序代做,数据挖掘,聚类,预测,分类,优化,建模。降重,降低重复率,24h出结果,最低1%重复。 机器学习,深度学习,神经网络代写&#xff0…

友益文书类似软件_团队成员分享 | 港中文翻译学姐:硬件不够,软件来凑;心之所愿,无所不能...

B学姐硬件不行的同学一定要努力提高自己对申请专业上的实习经验。饱腹诗书不够,也要有亲身实践后的体悟,这很加分。多对该行业背景现状进行思考,老师都喜欢有思想的学生,在后期面试也会给你带来惊喜。在读专业:港中文M…

iOS开发技巧,细节(二)

1.常量名称最好用static标识,例如下面的代码,包括其他一些只需要定义一次,之后不需要变化的变量也最好使用static static NSString *CellIdentifier "Cell"; 2.当设置视图控制器需要接受通知时,需要在dealloc取消监听 …

matlab支持向量机程序代做

matlab,支持向量机 回归,分类,都可以。另外决策树,神经网络都可以私人订制 **线性svm,二次svm,cubic svm

c++ qt5范例开发大全_使用yocto工具编译qt5.9.6总结

运行平台:OKMX6DL-C编译平台:Ubuntu 14.04.6 LTS编译工具:arm-poky-linux-gnueabi-gcc(gcc version 5.3.0 (GCC) )qt源码:qt-everywhere-opensource-src-5.9.6.tar.xz参考:嵌入式开发之Qt-5.9.6…

Android堆栈分析

在开发中,与界面跳转联系比较紧密的概念是Task(任务)和Back Stack(回退栈)。activity的启动模式会影响Task和Back Stack的状态, 进而影响用户体验。除了启动模式之外,Intent类中定义的一些标志&…

如何写一篇MBA论文-涉及matlab建模

如何写一篇MBA论文? 知乎 19 个回答方向,具体一点,不要太大。战略管理、薪酬管理、绩效考核、营销管理,客户关系管理、供应链管理、供应商选择与评价,库存问题。。论文模式第1章:绪论第2章:现状…

什么电脑的牌子好用_扬州诚招电动牙刷代理有什么牌子比较好用

扬州诚招电动牙刷代理有什么牌子比较好用,珈蓝电器实惠物美,为人类口腔事业的发展再创新贡献。扬州诚招电动牙刷代理有什么牌子比较好用, 很多人说电动牙刷是懒人神器, 但偷懒可以,口腔清洁效果可不能因此打折。电动牙…

360浏览器打不开网页_苹果移动端、PC端safari浏览器打不开网页的解决方案!

你还在为苹果自带的safari浏览器打不开网页而苦恼吗,接下来的答案会帮助你解决苦恼。苹果自带safari浏览器的设备分为两种:移动端、PC端。因此不同设备出现safari浏览器打不开网页的情况需要具体问题具体分析。最简单的问题往往最容易被我们忽视&#xf…

台式电脑如何截屏_买台式电脑如何避免成为被宰羔羊(一)

台式电脑的优点是很多的,比如价格便宜(和游戏本比起来),比如性能发挥稳定(因为不受限于散热),比如屏幕大看起来更舒服。但是和笔记本比起来,台式的水就非常深了,无论是线下实体店,还是线上网店,…

n型半导体和p型半导体的区别_VNX系列大流量工业型膜堆, 为半导体等行业提供超纯水!...

自20世纪80年代以来,IONPURE始终以为广泛的应用提供最优质的电化学解决方案延续着它的领导地位。IONPURE持续创新,于2004年推出了VNX 系列大流量CEDI膜堆,单个膜堆的名义产水流量最大可达12.5m3/h。IONPURE于2018年推出了单个膜堆的名义产水流…