导读
有限元法的基本思想是将结构离散化,用有限个简单的单元来表示复杂的对象,单元之间通过有限个节点相互连接,然后根据平衡和变形协调条件综合求解。由于单元的数目是有限的,节点的数目也是有限的,所以称为有限元法(FEM,Finite Element Method)。
有限单元方法是迄今为止最为有效的数值计算方法之一,它对科学与工程技术的进步提供了巨大支撑。
然而在有限元的发展过程中,有限元离散的过程(即网格划分)始终困扰着人们,最开始以非常傻瓜的命令操作,通常只能处理较简单的模型;后来发展到非常智能的自动网格划分,即使复杂的模型也能够划分出网格,然而网格质量难以保证,需要通过一连串的几何切分、网格控制。
所以人们开始寻找一种能够不用划分网格的方法,这样无论多复杂的模型,即使不费吹灰之力也能够分析,于是midas MeshFree出现了……
MeshFree提供的分析功能
关于midas MeshFree,要说的很多,但最核心的还是网格。
首先要强调的是,MeshFree并不是无网格,而是无网格划分,即不需要进行网格划分的操作。
MeshFree不需要网格划分的秘诀在于,它采用的是全六面体的结构化网格,几乎不需要手动干预,因此能够使工程师免受网格划分的痛苦。
那有人就要问了,采用全六面体的网格,怎么去拟合不规整的几何呢?当然,这个都是基于传统有限元方法的认识提出的问题。对于MeshFree,之所以能够采用全六面体的网格,其原因在于,MeshFree的理论基础不再是传统有限元的求解方法,而是一种叫做隐式边界法(Implicit Boundary Method,简称IBM)的技术。准确的说,是在边界处采用隐式边界法。
要理解MeshFree的网格,首先需要明确其中的两个概念:Background Grid和Grid。
以上图为例,我们用一个平面问题来进行说明,当我们把这个平面模型放在MeshFree里面进行分析时,具体会是什么样的情况呢?
(注:MeshFree实际分析时,只能导入三维实体模型进行计算,这里只是以平面模型来说明问题)
首先软件会基于这个平面模型形成一个矩形框架,这个矩形框架刚好能把平面模型包围住,如图中最外层的矩形所示。随后将这个矩形框架切分成数个小矩形(可以是正方形),此时这些小矩形形就称为BackGround Grid(背景网格)。然后软件针对这些BackGround Grid进行识别,识别的结果是,软件会将他们分成4类网格:
外部网格(以黄**域为例),该类网格由于没有和几何模型重合,因此不参与计算;
内部网格(以蓝**域为例),和几何模型完全重合,所采用的计算原理和传统有限元的方法一致;
施加位移条件的边界网格(以红**域为例),此类网格位于的模型的边界处,即一半和几何模型重合,一半是空白的,另外此类网格还有一个特点就是施加了位移边界条件(约束、强制位移)。对于此类网格,则采用上文提到的隐式边界法(Implicit Boundary Method,简称IBM)进行处理;
未施加位移条件的边界网格(以紫**域为例),此类网格同样在模型边界处,与上面一种不同的是,这些网格没有施加位移边界条件,所以他们所采用的的计算原理和传统有限元原理几乎一致。
MeshFree虽然是无网格划分软件,但是其底层仍然是有网格的,并且也能够对网格进行控制。MeshFree的网格控制和传统有限元的网格控制则有所不同,不同之处在于MeshFree只需要控制网格尺寸,而不需要控制网格质量,因为MeshFree的网格全是非常规则的六面体网格,根本不存在网格质量这么一说。
目前来说,MeshFree提供两类网格控制方法:模糊控制、精确控制。其中精确控制分为用户定义(网格数量)和用户定义(网格尺寸)。
(1) 打开网格控制的正确方式:选择几何体-->右键-->编辑结构化网格
如果要控制整体的网格尺寸,则选择所有体;如果要控制单个体的尺寸,则选择单个体即可。
打开网格控制窗口的方法
网格控制窗口
(2) 网格控制方法:模糊控制,包括自动网格(网格密度);精确控制,包括用户定义(网格数量)、用户定义(网格尺寸)。
①模糊控制-->自动网格(网格密度),即控制网格的密度;选择最大,表示网格密度最大,也就是网格尺寸最小;选择中间(系统默认),即网格密度中等;选择最小,即网格密度最小,也就是网格尺寸最大。
网格划分预览
当点击网格控制窗口左下角的放大镜符号,可进行预览网格划分的情况。
然而自动网格控制下,预览网格划分的情况并不代表最终的划分情况,只是一种示例。因为最终的网格尺寸是在计算过程中得到的,取决于模型大小、分配内存等多方面因素。
②精确控制-->用户定义(网格数量),即控制在整体坐标系的X、Y、Z三个方向的网格数量。点击左下角放大镜符号可进行预览,此时预览的情况就是最终的网格划分情况。
用户定义(网格数量)
这种情况下划分的网格可以是正方体也可以是长方体。
③精确控制-->用户定义(网格尺寸),即控制整体的网格尺寸。点击左下角放大镜符号可进行预览,此时预览的情况就是最终的网格划分情况。
用户定义(网格尺寸)
这种情况下划分的网格通常是正方体,由于正方体较利于计算,所以建议用户优先使用用户定义(网格尺寸)。
前面我们提到,自动网格的控制方**受到分配内存的影响。那是如何影响的呢?
通过分析条件 --> 分析控制 打开整体分析控制的窗口,来进行内存设置。
整体分析控制窗口
在该窗口中,要控制的内存选项包括:使用内存大小、是否只使用内存。
对于自动网格控制方法来说,使用内存大小会影响网格划分的密度。拖动滚动条选择合适的内存,内存越大,网格尺寸越小,网格密度越大。若希望快速出结果,调低内存;想要结果精确,调大内存。
对于用户定义的网格控制方法来说,分配内存不会影响网格划分的数量。但是当网格尺寸定义得很小,而使用内存也很小时,软件可能由于内存不足而报错。所以对于自定义的网格尺寸来说,尽量将使用内存调大即可。
在这里,笔者针对内存设置窗口做了一个测试,用同一个模型,采用默认的自动网格划分方法,采用不同的内存设置,得到不同的网格划分结果:
midas MeshFree虽然称为无网格划分软件,但其原理还是基于有网格,是站在有限元的肩膀上发展起来的。MeshFree目前提供三种网格控制的方法,其中最实用的网格控制组合是:用户自定义(网格尺寸) 调大使用内存。