Gmsh 是三维有限元网格生成器,具有内置 CAD 引擎和后处理器。其设计目标是提供快速,轻巧和用户友好的网格划分工具,带有参数输入和先进的可视化功能。
Gmsh 围绕四个模块构建:几何,网格,求解器和后处理模块。所有几何,网格,求解器和后处理使用图形交互地规定指令用户界面(GUI)或使用 Gmsh 自己的脚本的文本文件中语言。
交互动作在输入中生成脚本文件,反之亦然。还提供了可编程 API,方便用户将 C ++,C,Python 或 Julia 中的代码集成到 Gmsh。
下文将对这四个模块进行简要说明。
Gmsh 中的模型是使用其边界表示(BRep)定义的:体积受一组曲面限制,一个表面受一系列曲面限制曲线,并且曲线以两个端点为边界。模型实体是拓扑实体,即它们仅处理模型,并实现为一组抽象拓扑类。
通过嵌入或内部模型的定义扩展了此 BRep 实体:内部点,边缘和表面可以嵌入数量;内部点和曲线可以嵌入到曲面中。
模型实体的几何形状可以由不同的 CAD 内核提供。Gmsh 接口的两个默认内核是“Built-in”内核和“OpenCASCADE”内核。Gmsh 不会将几何模型从一个内核转换到另一个内核,或者从这些内核转换到第三方的几何建模内核中。相反,Gmsh 是直接检索 CAD 内核的原生数据,从而避免了数据转换过程中的关键信息丢失,这对于复杂的模型至关重要。
Gmsh 的脚本语言和 Gmsh API 可以对所有参数进行参数化模型实体。实体可以“自下而上”构建方式(先点,然后是曲线,曲面和体积)或“实体建模”形式(在实体模型上进行部件增减操作)。两种方法也可以结合使用。
最后,模型实体的组(称为“实体组”)可以是根据基本几何实体定义。
模型的有限元网格,是将几何模型的细分成各种形状的简单几何单元(在 Gmsh 中:线,三角形,四边形,四面体,棱柱,六面体和锥体),排列的方式是,如果其中两个相交,则它们沿面,边缘或节点,再也没有其他方式。这定义了所谓的“相似”网格。Gmsh 实现了几种算法来生成自动网格。由 Gmsh 产生的所有网格均视为“非结构化”,即使它们以“结构化”方式生成(例如,通过挤出)。这意味着网格元素是完全仅由其节点的有序列表定义,并且没有预定义假定任何两个元素之间的排序关系。
为了保证网格的一致性,网格生成是以自下而上的流程执行:首先离散曲线;的网格然后使用曲线对表面进行网格化;然后的网格曲面用于划分体积。在此过程中,实体仅受其边界的网格约束,除非实体尺寸较小的对象明确嵌入到较高尺寸的实体中尺寸。例如,在三个维度上,三角形离散在最终的 3D 网格中,一个表面将被强制为四面体的表面仅当表面是体积边界的一部分时,或表面已明确嵌入到体积中。这会自动当两个体积共享时,确保网格的一致性共同的表面。每个网格划分步骤都受到“大小字段”的限制(也称为“特征长度字段”),它规定了网格中元素的所需大小。此大小字段可以是由与几何中的点关联的值指定的均匀值,或由一般的“字段”定义(例如,与某些
边界,到另一个网格上定义的任意标量字段等)。对于每个网格划分步骤,所有结构化的网格指令首先执行,并作为附加指令非结构化零件的约束。
[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。