第一章 Gambit使用

  1. Gambit介绍

网格的划分使用Gambit软件,首先要启动Gambit,在Dos下输入Gambit <filemane>,文件名如果已经存在,要加上参数-old。

一.Gambit的操作界面

图1 Gambit操作界面

如图1所示,Gambit用户界面可分为7个部分,分别为:菜单栏、视图、命令面板、命令显示窗、命令解释窗、命令输入窗和视图控制面板。

文件栏

文件栏位于操作界面的上方,其最常用的功能就是File命令下的New、Open、Save、Save as和Export等命令。这些命令的使用和一般的软件一样。Gambit可识别的文件后缀为.dbs,而要将Gambit中建立的网格模型调入Fluent使用,则需要将其输出为.msh文件(file/export)。

视图和视图控制面板

Gambit中可显示四个视图,以便于建立三维模型。同时我们也可以只显示一个视图。视图的坐标轴由视图控制面板来决定。图2显示的是视图控制面板。

图2 视图控制面板

视图控制面板中的命令可分为两个部分,上面的一排四个图标表示的是四个视图,当激活视图图标时,视图控制面板中下方十个命令才会作用于该视图。

视图控制面板中常用的命令有:

全图显示、选择显示视图、选择视图坐标、选择显示项目、渲染方式。

同时,我们还可以使用鼠标来控制视图中的模型显示。其中按住左键拖曳鼠标可以旋转视图,按住中键拖动鼠标则可以在视图中移动物体,按住右键上下拖动鼠标可以缩放视图中的物体。

命令面板

命令面板是Gambit的核心部分,通过命令面板上的命令图标,我们可以完成绝大部分网格划分的工作。

图3显示的就是Gambit的命令面板。

图3 Gambit的命令面板

从命令面板中我们就可以看出,网格划分的工作可分为三个步骤:一是建立模型,二是划分网格,三是定义边界。这三个部分分别对应着Operation区域中的前三个命令按钮Geometry(几何体)、mesh(网格)和Zones(区域)。Operation中的第四个命令按钮Tools则是用来定义视图中的坐标系统,一般取默认值。命令面板中的各个按钮的含义和使用方法将在以后的具体例子中介绍。

命令显示窗和命令输入栏

命令显示窗和命令输入栏位于Gambit的左下方(如图4所示)。

图4 命令显示窗和命令输入栏

命令显示窗中记录了每一步操作的命令和结果,而命令输入栏则可以直接输入命令,其效果和单击命令按钮一样。

命令解释窗

图5显示的是位于命令显示窗左方的命令解释窗 ,当我们将鼠标放在命令面板中任意一个按钮的上面,Description窗口中将出现对该命令的解释。

图5 命令解释窗

1.2 二维建模

划分网格的第一步就是要建立模型。在命令面板中单击Geometry按钮,进入几何体面板。

图6显示了几何体面板中的命令按钮。

图6

图6中从左往右依次是创建点、线、面、体和组的命令。

对于二维网格的建立,一般要遵循从点到线,再从线到面的原则。

以二维轴对称单孔喷嘴的网格划分为例介绍二维网格的生成。]

首先要确定问题的计算域。

计算域的确立

图1是一个二维轴对称单孔喷嘴射流问题的计算区域。由于Fulent的边界提法比较粗糙,多为一类边界条件,因此建议在确定计算域时,可以适当加大计算范围。从图中我们可以看出,计算区域为4D*12D,其中在喷嘴的左边取了2D的计算区域,就是为了减小边界条件对计算的影响。

图1 计算域的确定

对于上述的计算域,我们在建立计算模型时按照点、线、面的顺序来进行。

创建点(vertex)

单击命令面板中的Vertex按钮,进入Vertex面板(见图7)

图7 Vertex命令面板

单击Vertex Create按钮,在Create Real Vertex对话框中输入点的坐标,再单击Apply按钮,就可以创建点。计算出计算域的各个顶点的坐标,依次创建这些顶点(见图8)。

图8 点的创建

在Gambit中点的创建方式有四种:根据坐标创建、在线上创建、在面上创建和在体上创建。我们可以根据不同的需要来选择不同的创建方式(见图9)。

图9

Vertex中常用的命令还有:Move/Copy、Undo和Del。

  • Move/Copy命令

    图9显示的是Move/Copy Vertex对话框。

图10

当我们要复制或移动一个点时,首先要选择需要作用的点。在命令面板中单击Vertices右边的输入栏,输入栏以高亮黄色显示,表明可以选择需要的点。

在Gambit中选择一个对象的方法有两种:

  1. 按住Shift键,用鼠标左键单击选择的对象,该对象被选中,以红色显示。
  2. 单击输入栏右方的向上箭头,就会出现一个对话框,从对话框中可以选择需要的点的名称(见图11)。因此为了便于记忆,建议在创建对象的时候要起一个便于记住的名字。

图11

同时,Gambit还为我们提供了三种不同的坐标系,即直角坐标系、柱坐标和球坐标。在命令面板的坐标类型中,可以选择不同的坐标系。

  • Undo

Undo命令可以消除上一步操作的内容,但需要注意的是,在Gambit中只有Undo命令而没有Redo命令。

  • Del

Del命令用来删除一些误操作或不需要的对象。单击Del按钮,在视图中选择需要删除的对象,再单击Apply按钮即可。

线的创建(Line)

在命令面板中单击Edge按钮,就可以进行线的创建和编辑(见图12)。

在Gambit中,最常用的是直线的创建。

在Edge命令面板中单击Create Straight Edge按钮,在视图中选择需要连成线的点,单击Apply按钮即可(见图13)。这时视图中的线段是以黄色显示。当这些线段组成一个面时,将以蓝色显示。

图12

图13

除了创建直线外,Gambit还可以创建其他的一些线段,如圆弧、圆、倒角、椭圆等(见图14)

图14

Edge命令中常用的还有合并、分离等命令,即可以把两条线段合成一条,也可以将一条线段分成两条,这些可以为面的创建和网格划分提供方便。因为面的创建需要一个封闭的曲面。

面(Face)的创建

面的创建工作十分简单,只须选择组成该面的线,单击Apply按钮即可(见图15)。需要注意的是这些线必须是封闭的,同时我们要创建一个二维的网格模型,就必须创建一个面,只有线是不行的。同样的道理,在创建三维的网格模型的时候,就必须创建体。

图15

在面的创建中,有一个布尔运算的操作,可以使我们创建不规则形状的面(见图16)。布尔运算包括三种方式:加、减、交。

图16

2.网格的划分

在命令面板中单击Mesh按钮,就可以进入网格划分命令面板。在Gambit中,我们可以分别针对边界层、边、面、体和组划分网格。图17所示的五个按钮分别对应着这五个命令。

Boundary Layer

(边界层)

Edge

(边)

Face

(面)

Volume

(体)

Group

(组)

图17

2.1边界层网格的创建

在命令面板中单击按钮,即可进入边界层网格创建(见图18)。

图18

边界层网格的创建需要输入四组参数,分别是第一个网格点距边界的距离(First Row),网格的比例因子(Growth Factor),边界层网格点数(Rows,垂直边界方向)以及边界层厚度(Depth)。这四个参数中只要任意输入三组参数值即可创建边界层网格。

同时,我们还可以选择边界层网格创建的形式。在命令面板的Transition Pattern区域,系统给我们提供了四种创建方式(见图19)。

图19

  1. 创建一个边界层网格

以上述二维轴对称圆孔射流的计算模型为例,介绍边界层网格的生成。

  1. 单击Mesh按钮,选择Boundary layer选项,进入边界层网格创建命令面板。
  2. 按住Shift按钮,用鼠标左键单击图形中的线段1,选择其为创建对象。
  3. 输入参数值为:First Row:0.05,Growth Factor:1.01,Rows:10,选择创建形式为1:1,单击Apply按钮完成创建工作(见图20)。

图

2.2.2创建边上的网格点数

当我们划分的网格需要在局部加密或者划分不均匀网格时,我们首先要定义边上的网格点的数目和分布情况。

边上的网格点的分布可分为两种情况,一种是单调递增或单调递减,一种是中间密(疏)两边疏(密)。下面依然结合实例介绍边上网格点的创建。

  1. 单击命令面板中的按钮,进入Edge网格创建面板(见图21)。

图21

  1. 在图13中选择线段2。
  2. 在命令面板中单击Double Side按钮,设置Radio1和Radio2为1.05。
  3. 在命令面板中单击Interval Size按钮,选择Interval Count选项。
  4. 在Interval Count按钮的左边输入参数值为20。
  5. 单击Apply按钮,观察视图中边上的网格点的生成(见图22)。

tu

7.选择视图中的线段3,取消对Double Side按钮的选择,设置Radio为1.01,Interval Count为80,观察视图中网格点的分布情况。视图中选中线段上的红色箭头代表了Edge上网格点分布的变化趋势。如果Radio大于1,则沿箭头方向网格点的分布变疏,小于1,则沿箭头方向网格点的分布变密。如果发现网格点的分布情况与预计的相反,可以采用两种方法解决:(1)按住Shift 按钮,在所选择的线段上单击鼠标中键改变箭头的方向;(2)在命令面板中单击Invert按钮,将Radio值变为其倒数值。

8.依次选择视图中的线段4、5、6、1,设置合理的网格点分布。

注意:在设置网格点分布的时候,一个封闭面的最后一条线段的网格点的分布可以通过系统自动计算得到。

2.2.3 划分面的网格

Gambit对于二维面的网格的划分提供了三种网格类型:四边形、三角形和四边形/三角形混合,同时还提供了五种网格划分的方法。表1、2分别列举了五种网格划分的方法以及它们的适用类型。

方法

描述

Map

创建四边形的结构性网格

Submap

将一个不规则的区域划分为几个规则区域并分别划分结构性网格。

Pave

创建非结构性网格

Tri Primitive

将一个三角形区域划分为三个四边形区域并划分规则网格。

Wedge Primitive

在一个楔形的尖端划分三角形网格,沿着楔形向外辐射,划分四边形网格。

表1

 

适用类型

方法

Quad

Tri

Quad/Tri

Map

´

 

´

Submap

´

   

Pave

´

´

´

Tri Primitive

´

   

Wedge Primitive

   

´

表2

下面仍然以二维轴对称自由射流的网格划分为例,来介绍各种网格的生成。

  1. 单击命令面板中的按钮(Mesh Face),进入面的网格创建命令面板(见图25)。

图25

  1. 选择视图中的面,系统中默认的网格点的类型为四边形结构网格。单击Apply按钮,观察网格的生成(见图26)。

图26

  1. 在命令面板的Type中选择网格类型为Pave,单击Apply按钮,观察网格的生成(见图27)。

图27

  1. 选择Element类型为Tri,单击Apply按钮,观察网格的生成(见图28)。

图28

  1. 边界的定义

在Gambit中,我们可以先定义好各个边界条件的类型,具体的边界条件取值在Fluent中确定。

  1. 在菜单栏中选择Fluent/Fluent5。这个步骤是不可缺少的,它相当于给Gambit定义了一个环境变量,设置完之后,定义的边界条件类型和Fluent5中的边界类型相对应。
  2. 在命令面板中单击按钮,进入区域类型(Zone Type)定义面板。
  3. 单击按钮,出现Specify Boundary type对话框(见图29)。

图29

  1. 选择Entity类型为Edge。在视图中选择Edge1,在Name区域中输入Wall,选择Type为Wall,即定义Edge1的边界条件为固壁条件,取名为Wall。
  2. 选择Edge2,定义边界条件为压力入流条件(Pressure Inlet),取名为Inflow。
  3. 选择Edge4,定义边界条件为压力出流条件(Pressure Outlet),取名为Outflow。
  4. 选择Edge5、6,定义边界条件为远场压力条件(Pressure Far-field),取名为Outflow1。
  5. 选择Edge3,定义边界条件为轴对称条件(Axis),取名为Axis。
    1. 保存和输出
  1. 在菜单栏中选择File/Save as,在对话框中输入文件的路径和名称。(注意:在Gambit中要往一个文本框中输入文字或数字,必须先将鼠标在文本框中单击选中文本框)
  2. 选择File/Export/Mesh,输入文件的路径和名称。

【Gambit】Gambit使用教程的更多相关文章

  1. 【转载】Gambit使用教程

    第一章 Gambit使用 Gambit介绍 网格的划分使用Gambit软件,首先要启动Gambit,在Dos下输入Gambit <filemane>,文件名如果已经存在,要加上参数-old ...

  2. GAMBIT、ICEM、HYPERMESH耦合面的处理方法

    前两天在论坛里碰到有朋友问关于使用fluent仿真流固耦合,使用hypermesh作为前处理时的耦合面的方法,刚好今天有点时间,借此机会总结一下GAMBIT.ICEM和HYPERMESH这三款软件作为 ...

  3. gambit软件license文件

    最近自己的gambit软件license文件已经到期,后面采用fluent的license文件后,可以使用,但不能导入文件.不过通过努力,终于找到了可以实现导入文件的代码,并且可以实现无限期的使用fl ...

  4. Anysys Fluent安装教程

    按顺序按照在一个文件夹内D:\Anysys Fluent 1:安装Exceed      调整电脑时间至2005年(前辈经验)      点击解压好的Exceed.13.[x86+x64]文件夹中的M ...

  5. FLUENT 流体计算应用教程

    温正 清华大学出版 2013.1                                          子谓颜渊曰,用之则行,舍之则藏,惟我与尔有是夫!         非常合适的一本书. ...

  6. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  7. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  8. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  9. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

随机推荐

  1. What's the difference between HEAD, working tree and index, in Git?

    What's the difference between HEAD, working tree and index, in Git?

  2. YTU 2553: 谁是赢家

    2553: 谁是赢家 时间限制: 1 Sec  内存限制: 128 MB 提交: 94  解决: 25 题目描述 某一天,hcbbt等一群弱菜去tamara巨巨家里一起玩了一个卡牌游戏.巨 巨家里有2 ...

  3. C++在循环内和循环外定义变量的差异

    原文:http://blog.csdn.net/cashey1991/article/details/45127561 最后总结: 对于使用int等基本数据类型作为循环变量,只要你用的优化方面足够给力 ...

  4. Managing SQLite Database

    Approach #1: Use a Singleton to Instantiate the SQLiteOpenHelper Declare your database helper as a s ...

  5. bzoj 1086 王室联邦 —— 思路题

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1086 一眼看去很是不会,于是看看TJ... https://blog.csdn.net/ly ...

  6. STM32F4 DMA2D_R2M

    图像处理的专门DMA 看一段示例代码 /** * @brief Displays a line. * @param Xpos: specifies the X position. * @param Y ...

  7. glyphicon 图标的使用

    基本用法<span class="glyphicon glyphicon-search"></span>可以将图标放于按钮于链接中,一个大按钮,按钮的内容是 ...

  8. 关于spring cloud eureka整合ribbon实现客户端的负载均衡

    1. 实现eureka整合ribbon非常简单, 1.1.首先引入所需maven依赖 <dependency> <groupId>org.springframework.boo ...

  9. Struts Filter告警:FilterDispatcher <<< is deprecated! Please use the new filters!

    在struts2.3.14下,web.xml中使用 <filter> <filter-name>struts2</filter-name> <!-- < ...

  10. 洛谷P2082 区间覆盖(加强版)(珂朵莉树)

    传送门 虽然是黄题而且还是一波离散就能解决的东西 然而珂朵莉树还是很好用 相当于一开始区间全为0,然后每一次区间赋值,问最后总权值 珂朵莉树搞一搞就好了 //minamoto #include< ...