FreeCAD FEM(Elmer接口)总结

1 准备

FreeCAD版本:pre_0.19(预发布版)
Elmer版本:8.4(MPI版本)http://www.elmerfem.org/blog/binaries/
gmsh:freecad自带4.5.6版本
paraview:5.4.1
Elmer教程:http://www.nic.funet.fi/pub/sci/physics/elmer/slides/ElmerCourseWarsaw2014October/

freecadrelease note来看未来对FEM模块的开发主要还是以结构力学仿真为主,默认的支持求解器为caulix,该求解器在freecad中存在时间最长,因此也得到了更多了检验,版本稳定,另外还支持Elmerz88求解器,从各有限元求解器对比来看,caulixElmer开发都还算活跃,z88感觉太小做不了啥。Caculix主要支持机械力学仿真,虽然在官方文档上说明可以解决传热、静电学等PDE问题,但没找到相关例子,帮助文档也不够友好,并且继承自FreeCAD中的caulix就支持三种机械模型:Static,Frequency和Thermal Mechanical,笔者也不是机械专业出身,这里就不做多介绍了,下面主要介绍Elmer解法器接口。

如果是Linux系统,可以从apt源安装(Ubuntu18.04),或者自己源码手动编译,详细过程可以看笔者提出的一个issue讨论:https://github.com/ElmerCSC/elmerfem/issues/225 , 是在Ubuntu20.04版本上源码编译Elmer的教程,新版本的ElmerGUI界面比以前友好了,需要注意的是新版本的结果可视化采用vut格式,使用paraview进行可视化,ElmerPost在所有发行版中都已不再支持,ElmerVTK也将弃用,如果要用VTK进行可视化,需要修改sip文件,将Post File = case.vtu改成Post File = case.ep,再导入ep文件进行分析;paraview可执行文件路径需要在系统环境变量,或者可以手动打开该软件,再导入生成vtu文件进行可视化分析。
FreeCAD FEM(Elmer接口)总结_第1张图片

2 FEM建模

该步骤和常规的建模方式一样,构建模型,有限元分析-选择材料-网格化-设置边界条件(约束、施力、热通量、电势等),以静力学分析为例,构建如下图所示模型:

FreeCAD FEM(Elmer接口)总结_第2张图片
新版本中设置材料已经很方便,内置有大量材料参数,也可以去matweb网站搜索自己想要的材料参数,然后进行编辑:

FreeCAD FEM(Elmer接口)总结_第3张图片
最后是设置Elmer求解器,对有限元仿真模型设置完成之后,点击在这里插入图片描述
再选择弹性力学方程即可,当然Elmer解法器还支持静电场有限元方程,流体有限元方程、fluxsolver有限元方程(?不懂)以及传热有限元方程,单个人感觉这些功能都还没有完善,也没有相应教程,一个替代方案是在freecad中生成unv网格(如果在ElmerGUI导入step文件再进行网格划分程序很容易崩掉,估计是ElmerGUI的bug),然后在ElmerGUI导入,再进行各种物理场的建模分析。
在这里插入图片描述

3. 仿真计算

在计算前,要让freecad知道elmer求解器位置:
FreeCAD FEM(Elmer接口)总结_第4张图片
前面步骤完成之后,配置求解器参数,一般选择默认即可:
FreeCAD FEM(Elmer接口)总结_第5张图片
FreeCAD FEM(Elmer接口)总结_第6张图片
然后双击ElmerSolver,写入文件,运行仿真:
FreeCAD FEM(Elmer接口)总结_第7张图片
最后等等求解完成:
FreeCAD FEM(Elmer接口)总结_第8张图片

4. 结果可视化

运行完成后得到了2个文件:
FreeCAD FEM(Elmer接口)总结_第9张图片
箭头所指那个文件就是用来可视化分析的,双击查看:
FreeCAD FEM(Elmer接口)总结_第10张图片
前面说了,elmer得到的结果其实就是一个vtu文件,但是该文件在哪里呢?其实很简单,在前面写入文件步骤中就提示了文件将存储在哪个文件夹:
FreeCAD FEM(Elmer接口)总结_第11张图片
打开这个路径即可看到我们所需的文件:
FreeCAD FEM(Elmer接口)总结_第12张图片
case.sif是elmer的程序文件,定义了解法器、材料、边界条件那些,也就是在FreeCAD中的设置最终会转化为适合Elmer执行的.sif文件;
case_t0001.vtu是elmer得到的结果文件,vtu文件可以使用paraview打开,当然用freecad也可以打开,前面以及演示过了;
mesh.unv是freecad将前面生成的网格文件(gmsh或者netgen生成)转换为适合elmer格式的网格文件;

我们选择paraview打开case_t0001.vtu:
FreeCAD FEM(Elmer接口)总结_第13张图片
发现什么都没有,别慌,点击Property中的apply按钮,选择可视化的结果以及展现形式就可以看到结果了:
FreeCAD FEM(Elmer接口)总结_第14张图片
好了,暂且总结到这里,后续有需要会继续补充

你可能感兴趣的:(Math,有限元)