Salome平台介绍及二次开发案例

这篇具有很好参考价值的文章主要介绍了Salome平台介绍及二次开发案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于国产的“神威·太湖之光”,国家超级计算无锡中心发布了“无锡超算云平台”,将打造世界一流的超算技术与产业发展深度融合的高性能计算应用生态圈。现已升级为“神工坊”2.0平台,即将于2022年4月公测。在此基础上,向有需求的用户提供进一步的高性能仿真App定制化服务。

过去使用的传统仿真设计流程存在以下的问题:

1)仿真过程需要用到外国的商业前后处理软件、流固耦合求解器软件、数据管理软件,需要支付高昂的License费用。

2)仿真过程需要用到高性能计算硬件平台,自行部署同样需要高昂的成本。

3)仿真过程要求工程师掌握大量的理论知识,并具有工程经验的积累,具有较高的门槛,提高了人力成本。

针对以上问题,国家超级计算无锡中心先进制造部基于一系列开源代码进行了二次开发和自主研发。对于仿真APP流程开发上,主要是对SALOME平台进行了构建。接下来本文将首先简要介绍SALOME平台的概况,随后展示一个简单的二次开发案例

Salome平台介绍

SALOME是一款由法国电力集团(EDF)、法国原子能和替代能源委员会(CEA)和Open CASCADE三方合作开发的开源工业仿真平台SALOME平台为工程师、研究人员提供了一整套用于数值模拟整体流程的解决方案,包含:CAD、网格划分、多物理场耦合、计算监督、实时数据交互、结果可视化、不确定分析等高级模块。这些模块都有易于使用的GUI界面和直接调用的Python接口。开发用户可以根据实际模拟仿真的需要,组装现有的特定模块以及添加自定义模块用于构建仿真APP【1】。

目前SALOME平台已经更新到了9系列(截至2022/2/27,SALOME version 9.8.0已经发布)。下面简要介绍一下9系列的重要模块。

01 SHAPER

在SALOME9.3版本之后开始支持的新模块SHAPER是一个支持参数化的CAD建模器,允许用户以交互的方式绘制具有各种约束的草图,允许简单的3D零件装配。SHAPER 专为模拟 CAD 模型而开发:

 ◆ 形状设计致力于创建保形网格;

 ◆ 可以定义形状组,如果修改了几何形状,则会自动更新组;

 ◆ 可以进行多维几何的连接;非流形几何是可行的,例如由两个以上的面共享的边;

 ◆ 几何图形可以通过python脚本,即文本用户界面(TUI)进行设计。

Salome平台介绍及二次开发案例

02 SMESH

SMESH是 SALOME 的网格模块,它提供了广泛的网格划分算法,非常适用于有限元和有限体积方法。用户可以用组/标签将网格以不同的几何加以区分,这意味着可以区分网格的各种属性甚至网格的类型(六面体或四面体)。这些组/标签还可以识别边界以应用相应的边界条件。当然,这肯定有助于网格可视化和后处理操作。

关于网格划分算法,SMESH模块包含了:

◆ 自身网格工具,用于四边形、六面体、边界层网格等;

◆ 集成了开源网格划分工具:NETGEN和Gmsh;

◆ 拥有商用许可的商业网格划分工具MG-CADSurf、MG-Tetra、MG-Hybrid、MG-Hexa。

Salome平台介绍及二次开发案例

03 PARAVIS

后处理模块PARAVIS实际是强大的开源前后处理软件PARAVIEW。其分布式模式支持大规模的可视化任务。PARAVIS通过编写Python脚本,可在必要时创建批处理可视化或需要重复对可变参数运行的可视化任务。它可用于远程可视化集群,以交互方式分析大量结果。

Salome平台介绍及二次开发案例

Salome二次开发案例

基于SALOME的仿真APP开发依托于GUI模块或称为SUIT(SALOME User Interface Toolkit(SALOME用户界面工具包))。该模块通过SIP库及SWIG库,前者实际是PYQT开发商RiverBank开发的用于PYQT的Python/C++混合编程解决方案【2】。通过SIP生成的Python接口,使得开发者可以很方便地调用各个模块,实现根据实际模拟仿真的需要,组装现有的特定模块以及添加自定义模块用于构建仿真APP。

下面是一个简单的二次开发案例——桁架桥设计器【3】。使用到的SALOME原有模块:SHAPER、GEOM、SMESH、PARAVIS。使用的求解器是著名开源结构有限元软件Code-Aster。

该APP已经集成至“神工坊”2.0平台。图形界面通过GPU集群渲染,保证用户端流畅的图形操作;后台计算提交至超算高性能计算节点。

1. 注册并登陆神工坊2.0平台,选择“仿真计算”。

Salome平台介绍及二次开发案例

2. 双击TBridgeDesigner图标在弹出框中设置相应参数,点击“提交”。

Salome平台介绍及二次开发案例

 3. APP界面操作

打开APP是一个定制化的参数化建模界面,后台是GEOM和SHPAER模块的参数化建模脚本以及SMESH模块的自动划分网格脚本。在“总体设计”选项卡中输入几何参数,点击“确定”即可在左侧VTK viewer显示网格划分后的结果。“单元属性”、“材料属性”选项卡可设置不同几何部分的单元属性和材料属性。设置完成后点击“应用”更新

Salome平台介绍及二次开发案例

此外,为了方便用户交互查看、设置不同位置的单元参数,调用VTK-3D viewer显示接口,高亮显示不同位置的网格。

Salome平台介绍及二次开发案例

 点击“提交计算”,后台将通过调度器将作业提交至超算高性能计算节点。

Salome平台介绍及二次开发案例

 点击页面左侧标签页“Paraview后处理”直接切换至后处理界面后处理窗口通过后台PARAVIEW脚本操作与前端界面结合,实现了精简、可定制化的后处理显示。后处理窗口可根据需求定制多个,方便同时处理多种类型的结果以及结果之间的对比。

Salome平台介绍及二次开发案例

参考文献

[1] https://www.salome-platform.org/

[2] SALOME GUI Architecture

[3] http://cn.comsol.com/model/truss-bridge-designer-30831文章来源地址https://www.toymoban.com/news/detail-412176.html

了解更多干货,欢迎关注神工坊!

到了这里,关于Salome平台介绍及二次开发案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【考研数学】线性代数第六章 —— 二次型(2,基本定理及二次型标准化方法)

    了解了关于二次型的基本概念以及梳理了矩阵三大关系后,我们继续往后学习二次型的内容。 定理 1 —— (标准型定理)任何二次型 X T A X pmb{X}^Tpmb{AX} X T A X 总可以经过可逆的线性变换 X = P Y pmb{X=PY} X = P Y ,即 P pmb{P} P 为可逆矩阵,把二次型 f ( X ) f(pmb{X}) f ( X ) 化为标准

    2024年02月07日
    浏览(30)
  • 基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍

    一、开发环境 开发环境为ArcGIS Engine 10.2与Visual studio2010。在使用ArcEngine查询进行查询的时候主要使用三种查询接口IQueryFilter(属性查询) 、ISpatialFilter(空间查询) 、IQueryDef (多表查询) 那么这三个接口的区别是什么呢? 要求 IQueryFilter ISpatialFilter IQueryDef 属性约束 True Tr

    2024年02月07日
    浏览(25)
  • 案例073:基于微信小程序的智慧旅游平台开发

    文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序运行软件:微信开发者 目录 前言 系统展示 后台模块的实现 用户信息管理 旅游景点管理 景区活动管理 小

    2024年02月03日
    浏览(29)
  • JetLinks平台二次开发 : 一、TCP设备接入JetLinks平台

    jetlinks是一个开源的物联网云平台,功能比较强大。支持MQTT、TCP、COAP、HTTP等设备的接入,若要在平台中接入设备,可根据此文档进行相关操作。 关于该平台的基本信息,这里不做过多介绍,详细功能附上链接 JetLinks 物联网基础平台(2.x)  后续将出一系列在该平台做接入

    2024年02月12日
    浏览(28)
  • Java——二叉树的最近公共祖先及二叉搜索树介绍

    目录 二叉树的最近公共祖先 题目  思路一:如果给定的是一颗二叉搜索树, 思路二:假设是孩子双亲表示法  二叉搜索树 定义Node类 查找 删除 插入 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点

    2023年04月08日
    浏览(28)
  • [开源]一个低代码引擎,支持在线实时构建低码平台,支持二次开发

    TinyEngine低代码引擎使能开发者定制低代码平台,支持在线实时构建低码平台,支持二次开发或集成低码平台能力。 使用MIT开源协议 TinyEngine是一个低代码引擎,基于这个引擎可以构建或者开发出不同领域的低代码平台。 跨端跨框架前端组件 支持在线实时构建、支持二次开发

    2024年02月07日
    浏览(29)
  • NX二次开发UF_UI_select_conehead 函数介绍

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan Defined in: uf_ui.h  int UF_UI_select_conehead(char * message, int num, double origins [ ] , double directions [ ] , char * * labels, UF_DISP_conehead_attrb_s * attributes, double selection_point, int display_coneheads, int * selected_num, int * response ) Displays the given coneh

    2024年04月22日
    浏览(30)
  • NX二次开发UF_UI_ONT_refresh 函数介绍

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan Defined in: uf_ui_ont.h  int UF_UI_ONT_refresh(void ) This function changes the view of the ONT to the specified view 此函数将 ONT 的视图更改为指定的视图 欢迎订阅《里海NX二次开发3000例专栏》https://blog.csdn.net/wangpaifeixingyuan/category_8840986.htm

    2024年04月22日
    浏览(34)
  • NX二次开发UF_UI_open_part 函数介绍

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan Defined in: uf_ui.h  int UF_UI_open_part(const UF_UI_err_p_t error_fn, char file_name [ MAX_FSPEC_BUFSIZE ] , logical * unused, tag_t * part, int * response, UF_PART_load_status_t * error_status ) Opens a part and makes it the work part using the File–Open File Selection Dialog.

    2024年04月27日
    浏览(26)
  • calcite在flink中的二次开发,介绍解析器与优化器

    关于calcite的概念相关的内容,在我另一篇帖子 深入理解flinksql执行流程,扩展解析器实现语法的扩展 首先阐述一下 codegen: Codegen是基于ObjectWeb ASM的低开销的java代码生成器,他可以根据预先填好的规则与条件,通过编译代码,自动生成java类 在递归调用各个节点 DataStreamRel 的

    2024年02月22日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包