首页/文章/ 详情

介绍几款二维网格剖分工具:三角形网格

1月前浏览1104

简述

本文列出作者用过的二维三角形网格剖分工具,以供参考。

  1. comsol(商业软件)

    Comsol作为多物理仿真的通用软件,二维网格剖分的功能也是多姿多样,提供给用户各种可选择的接口实现二维网格划分。

    网格结果可以输出各种格式,如果要自行解析文件还是比较麻烦,一般可以通过其他软件辅助,二次处理后生成容易解析的网格格式。  
     
  2. Ansys-q2d(商业软件)

    q2d是集成于Ansys中的一款专业二维仿真软件,主要针对电磁相关的二维界面参数求解。专业性很强,网格划分质量不需要用户关注,自行使用自适应算法获得合乎仿真模型精度的网格。其生成的网格在业界是几乎是公认的最优网格。

    网格结果同样可以输出,解析格式不是太困难,但是其中仅包含网格,不含有边界、材料属性等信息。
  3. matlab-pdetool(商业软件)

    matlab是一款强大的数学商业软件,几乎搞科研算法的都有使用到,即使近些年被M国禁用。它里面也具有二维网格剖分功能,在命令行敲pdetool则可以弹出简单的二维网格剖分界面,可以进行简单的bool运算等建模功能。



    生成的网格可以保存为matlab脚本格式,很好读取其中的网格数据;
  4. Gmesh(开源代码)

    Gmesh的网格剖分可以说非常的完善,自成体系,拥有自己的界面,也提供了非常友好的接口,可以实现各种网格剖分、局部加密等功能。

    网格输出文件为msh格式,包含了建模的所有几何信息、材料信息、边界信息等。因此解析该格式相对不太容易。  
     
  5. Triangle(开源代码)

    很完善的一套开源二维三角形网格剖分工具,用户可以通过命令的形式实现各种网格剖分,例如下图中区域划分,分区域加密等等。唯一的缺点是代码只支持X86,不支持X64,这一点需要特别注意。


    网格输出可供用户选择,支持单元、节点、棱边、邻单元等多种信息输出,也支持一些常用的格式输出。  
     
  6. CDT(开源代码)

相对于较为完善的tiangle,CDT则显得不是那么友善,似乎是专门给程序员使用,没有外部直接调用命令的方式,只能自己写接口实现输入参数和输出网格。不过适用于对网格的二次开发使用,例如其中不具备对单元属性的标记,不具备局部细化功能,似乎全局细化功能也不具备。

网格信息的输出只用用户自己输出,并且只含有单元、节点信息。


来源:实践有限元
Comsol二次开发通用其他软件MATLAB材料ANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-06
最近编辑:1月前
实践有限元
硕士 签名征集中
获赞 0粉丝 0文章 57课程 0
点赞
收藏
作者推荐

二维有限元实现详细过程:三角形网格二阶插值基函数

简述本文意在详细介绍二维三角形网格的二阶插值基函数的实现过程,通过对简单的边值问题的实现,对比了一阶三角形、结构化网格(四边形)的计算精度。同时给出二阶插值基函数对应的常见系数矩阵。1.边值问题理论解:2.有限元方程具体推导参考:介绍一个二维结构化有限元的常见边值问题。3.二阶三角形插值基函数推导首先根据体积坐标,得到三角形的线性插值基函数,这部分推导参考:同轴线求电容,初探泊松方程的二维非结构化有限元,表示为:其中Si为三角形中任意一点与其他两个节点围成的面积,表示三角形面积。通过线性插值基函数的组合,获得二阶三角形的插值函数,其中不同编号顺序得到的基函数组合方式有所区别,例如以下两种编号的二阶三角形网格:对应1、2编号方式的插值基函数:可见,不同的编号顺序得到的基函数结果是不一样的,这里需要特别注意这一点,如果基函数结果与编号顺序不统一,会导致计算结果错误。本文使用的是第一种三角形编号顺序。将上述二阶三角形基函数带入有限元方程中,得到有限元离散结果为:写成矩阵形式:从(5)式中可以发现,求解过程不仅需要知道基函数,还需要知道基函数的梯度,因此对基函数进行梯度运算,得到:二阶插值基函数的梯度结果不再像一阶基函数梯度是一个系数,因此要得到具体的系数矩阵,就得使用积分公式计算或者查表获得,这里给出具体计算公式与常见结果的积分表:4.单元系数矩阵推导下面给出(5)式中的每一项的系数矩阵推导过程,首先是梯度项的系数:同理,可以推导:根据有限元系数矩阵对称型的特征,可以直接得到下面部分的结果:继续计算i=4,5,6;j=4,5,6部分的系数:将上述整合成矩阵形式,得到(5)式中积分第一项的系数矩阵:同理只需要把a系数换成b系数,得到dN/dy的系数矩阵。然后继续推导N*N的系数矩阵:同理可以得到:整合矩阵,得到:上述过程详细展示了有限元离散方程中的两个重要的单元系数矩阵推导过程。5.全局系数矩阵组装在组装系数矩阵之前,需要知道局部编号到全局编号的映射关系,为了方便起见,这里展示2*3网格剖分尺度的网格,如下三角形网格剖分与映射关系:可见,2*3网格的6个四边形变成了12个三角形;但是一阶的三角形的节点数与四边形网格是一样,二阶三角形则多至35个节点。系数矩阵组装则根据上述对应关系,将每个单元的局部系数矩阵映射组装到35*35的全局系数矩阵。矩阵过大,这里不再展开介绍。对应的边界条件均为第一类边界条件,因此加载方式同样使用乘以大数的方法加载。6.计算结果展示与对比a.网格尺寸2*3的结果对比:误差主要体现在5、8号点,二阶三角形的误差最小,一阶三角形的误差最大,四面体网格的误差居中。同等1阶情况下,四边形精度要好于三角形。查看文献解释“四边形网格采用的基函数属于双线性插值函数”,我理解为三角形的基函数是纯粹的线性基函数,而四边形网格的基函数是由一维线性基函数的乘积组成,组成后就成了双线性插值,精度就更高一些。在公式中具体体现为:三角形线性基函数的梯度就等于对应方向的常系数,而四边形对应方向的梯度不是常系数。b.网格尺寸为20*20的网格:一阶三角形网格计算结果:二阶插值三角形网格计算结果:对比结果,20*20网格的1阶三角形网格的精度范围与1阶四面体的精度范围是一致。二阶三角形精度远高于一阶,误差低至5e-5次方。虽然二阶精度远远高于一阶,但是未知数增加到1861个,系数矩阵则是1861*1861,相对于一阶矩阵的441个增加了4倍多,计算量也增加非常明显。7.总结a.三角形的二阶插值基函数的复杂度明显高于一阶基函数,尤为体现在单元系数矩阵的推导过程中;其次由于未知数落在了三角形的边中心点,因此还需要写算法得知全局三角形边的编号,也是一个比较麻烦的问题。b.同等网格下二阶的计算精度明显是高于低阶的,这也符合有限元的基本规律;值得关注的是,双线性四边形的精度明显是高于线性插值的三角形基函数,这点对于我们选择三角形、四面体作为基本剖分单元的时候值得参考。来源:实践有限元

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈