开源CAE实战系列(二):Salome_Meca入门攻略——从前处理到Code_Aster求解完整流程
上一篇文章我们已经成功安装了Salome_Meca,这篇就来为大家讲解如何使用它。
1 SALOME工作流程概览
作为一个仿真工具集成平台,SALOME集成了各类模块组件帮助我们完成从几何建立、网格划分、参数配置、求解计算到结果处理的整个流程。

之前也提到了 Salome_Meca = SALOME + Code_Aster
Code_Aster正是以AsterStudy模块的形式作为计算环节的求解器来使用。
2 Salome_Meca界面

2.1 基础操作

- New – 新建一个Study
- Open – 打开已保存过的 Study(.hdf文件)
- Save - 存储目前操作的Study(.hdf文件)
- Dump Study – 导出记录到目前为止所有操作的Python脚本
- Load Script – 导入Python脚本以重现当前状态
- Import – 导入几何/网格文件
- Export – 导出几何/网格文件
- Preferences –界面偏好设置
2.2 模块组件
基本功能模块包括:
- 网格预处理模块
- 材料模型模块
- 前处理模块
- 求解器模块
- 后处理模块
- 输出模块
- 疲劳与断裂分析模块
- Job监控平台

(1)AsterStudy
- 为Code_Aster命令文件编写提供可视化界面
- 管理Code_Aster计算
- Code_Aster计算结果的便捷后处理显示功能
(2)Geometry/Shaper
创建或导入3D设计:
- 交互式CAD建模或使用脚本一键生成
- 导入/修复/清除外部导入的模型
(3)Mesh(即SMESH)
丰富的网格生成算法:
- 标准开源网格生成函数
- 集成商业算法组件MeshGems系列(DISTENE)
为计算准备几何模型:
- 为求解器的设置定义几何区域
- 网格局部加密功能
(4)ParaViS
基于ParaView开源软件,定制开发后嵌入SALOME平台,作为2D&3D网格和计算结果的可视化展示,视频制作,统计数据和图表显示等的后处理工具。

(5)Fields
MED格式定义的物理场展示和处理模块
(6)YACS
计算流程定义/管理模块
(7)JobManager
- 指定分布式计算资源
- 创建/启动工作,跟踪计算进程
(8)Homard
网格加密/变粗自适应模块
(9)HexaBlock
几何划分为六面体块,生成结构化六面体网格
(10)OpenTURNS
定义并进行不确定分析/统计学研究
(11)ADAO
数据同化模块
(12)Eficas
求解器配置文件编辑器
2.3 帮助文档


3 使用流程

3.1 创建几何——GEOM几何模块
支持交互式CAD建模或使用脚本一键生成,具备以下功能:
- 创建/修改几何
- 导入/导出几何
- 清除/修复几何
支持多种输入/输出格式: STEP; XAO; IGES; BREP; STL; VTK(export)……

3.2 网格划分——MESH网格模块
(1)2D网格生成算法涵盖:
- 2D Tetrahedral mesh algorithms
>> NETGEN 2D,NETGEN 1D2D,MEFISTO
>> MeshGems-CADSurf/BLSurf (commercial)
- 2D Quadrangular meshing algorithms
>> Mapping
(2)3D网格生成算法涵盖:
- 3D Tetrahedral mesh algorithms
>> NETGEN 3D,NETGEN 1D2D3D
>> MeshGems-Tetra /GHS3D (commercial)
- 3D Hexahedral mesh algorithms
>> I,J,K
>> MeshGems-Hexa/Hexotic (commercial)
- 3D Body Fitting algorithm
(3)支持网格质量控制指标计算:
- Free borders
- Length 1D, 2D
- Free edges
- Area
- Taper
- Aspect ratio 2D/3D
- Minimal angle
- Warping
- Skew angle
(4)支持导入导出多种网格:
- med(耦合数据交换专用)
- unv
- stl
- sauv
- gmf
- cgns
(5)支持网格修复和优化功能:
- Add/Delete/Move elements
- Union of 2 or more triangles
- Cutting of quadrangles
- Orientation change
- Transformations:
>> Translation, rotation, symmetry
>> Sewing, merges nodes, smoothing
>> Extrusion along a path
>> Revolution
3.3 Code_Aster设置
Code_Aster的使用方法是面向文件的

3.3.1 基本设置流程
(1)模型定义:
- 单元类型设置
- 材料属性设置
- 边界条件与载荷设置
(2)计算设置:
- 求解分析设置
(3)结果处理:
- 物理场设置
- 结果提取设置
3.3.2 命令规则
Code_Aster的语法兼容Python语法
(1)Operator:生成对象

(2)Procedure:不生成对象

对象可作为后续命令的参数。
3.3.3 命令文件(.comm文件)
# 从网格文件读取
mesh=LIRE_MAILLAGE(FORMAT='MED')
# 设置模型类型
model=AFFE_MODELE(MAILLAGE=mesh,
AFFE=_F(TOUT='OUI',
PHENOMENE='MECANIQUE',
MODELISATION='AXIS',),)
# 定义材料属性
steel=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
NU=0.3,),)
# 分配材料至网格
mater=AFFE_MATERIAU(MAILLAGE=mesh,
AFFE=_F(TOUT='OUI',
MATER=steel,),)
# 定义边界条件
bc=AFFE_CHAR_MECA(MODELE=model,
FACE_IMPO=_F(GROUP_MA='LAB',
DY=0,),)
# 定义函数(例如用于施加随空间变化的载荷)
f_y=DEFI_FONCTION(NOM_PARA='Y', VALE=(0.,200000.,4.,0.,),)
# 定义载荷
load=AFFE_CHAR_MECA_F(MODELE=model,
PRES_REP=_F(GROUP_MA='LDA',
PRES=f_y,),)
# 线弹性静力分析
result=MECA_STATIQUE(MODELE=model,
CHAM_MATER=mater,
EXCIT=(_F(CHARGE=load,),
_F(CHARGE=bc,),),)
# 计算单元结点应力场
result=CALC_CHAMP(reuse=result, RESULTAT=result,
CONTRAINTE='SIGM_ELNO')
# 输出结果文件
IMPR_RESU(FORMAT='MED', RESU=_F(RESULTAT=result))
>> 特殊命令:
(1)DEBUT
开始执行,忽略之前的命令
(2)POURSUITE
复用上一个计算步结果
(3)FIN
- 计算结束,忽略之后的命令
- 关闭计算过程中的信息:网格文件,中间数据,计算结果等
>> 网格信息:
包含结点Nodes、单元Cells、单元组GROUP_MA、结点组GROUP_NO:


3.4 AsterStudy模块
3.4.1 功能简介
AsterStudy为Code_Aster命令文件编写提供了友好的可视化界面,能够管理Code_Aster相关文件和直接从SMESH模块关联网格,并提供命令文件与网格显示的交互,能够管理Code_Aster计算并为计算结果提供便捷的后处理显示功能。

3.4.2 命令编写

也可通过右键菜单的Text Mode进入文本模式:


3.4.3 网格交互

3.4.4 计算管理

3.4.5 结果可视化

4 SALOME的行业定制化应用
除了以上介绍的Salome_Meca,SALOME框架集成Code_Aster、Code_Saturne、TELEMAC-MASCARET等各类求解器已衍生出了针对不同行业的定制化平台,如SALOME_CFD(流体力学仿真)、SALOME_HYDRO(水动力学仿真)、PANTHERE V2(辐射防护数值模拟),还可以结合OpenTURNS实现乏燃料存储管理、通过YACS模块实现中子物理-热工水力耦合计算以及结合Code_CARMEL3D成为电磁无损探伤算法验证工具等等,具有极大的可扩展性。


AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)