文档库 最新最全的文档下载
当前位置:文档库 › MIKE软件打网格中文说明

MIKE软件打网格中文说明

MIKE软件打网格中文说明
MIKE软件打网格中文说明

MzGeneric.pdf手册中Mesh Generator中文说明

目录

17 简介 (1)

17.1 概念 (2)

17.2 边界定义 (3)

18 开始 (3)

18.1 介绍 (3)

18.2 数据位置 (4)

18.3 步骤1 - 建立一个工作区域 (4)

18.4 步骤2 - 导入模型边界线 (5)

18.5 步骤3 - 编辑陆地边界线 (7)

18.6 步骤4 - 定义开边界 (9)

18.7 步骤5 - 生成网格 (9)

18.8 步骤6 - 对陆地边界进行光滑处理 (10)

18.9 步骤7 - 网格地形插值 (12)

18.10 步骤8 - 对网格进行光滑处理 (15)

18.11 步骤9 - 使用多边形来控制节点密度 (15)

17 简介

网格生成器(mesh generator)为制作三角网格提供了工作平台。

创建合理的网格是模型获得可靠结果的重要条件。基于 MIKE Zero 之上的MIKE 21 Flow Model FM, MIKE 3 Flow Model FM 和 MIKE 21 Spectral Wave Model FM,都是以三角网格为基础的。

图 17.1 全球模型的陆地/海洋边界

网格的生成包括选择适当的模拟范围,确定地形网格的分辨率,考虑流场,风场和波浪场的影响,为开边界和陆地边界确定边界代码。此外,在考虑稳定性的前提下,确定地理空间的分辨率。

生成网格文件可以使用MIKE Zero网格生成器。网格文件是一个ASCII文件(扩展名*.mesh),其中包括地理位置信息和在网格中每一个节点的水深。文件还包括三角形的节点连通性信息。所有关于生成网格文件的配置信息都在网格定义文件(扩展名*.mdf) 中, 文件可以被修改和再利用。

网格生成器的功能包括从不同的外部信息源(例如. XYZ 水深点,XYZ等值线,MIKE 21矩形网格地形,MIKE C-MAP数据) 输入原始数据,或是用内置的制图工具手动创建地形数据。用户可以在网格生成器中导入背景图片,例如地图,在数据编辑时使用它们,或用来提高图形的后处理效果。

17.1 概念

网格生成器的使用不断地围绕着节点(node),顶点(vertice),弧线(arc)和多边形(polygon)的操作。因此,了解这些概念的含义是非常重要的。

?节点定义了一个弧的开始和结束。一个封闭的弧只有一个节点,开放的弧有两个节点。

?弧的内部点叫做顶点,主要用于弧的定位。

?一个弧是由许多线段组成的,组成弧的主要要素是顶点(零个或多个)和节点(一个或两个)。

?多边形是一个闭合的环,它由一个封闭的弧线,或两个或多个打开的弧线组成。多边形不需要用户特别定义,当封闭一个或一组弧线时会自动产生一个多边形。一个多边形可以被定义为一个区域(Zone),区域的名称由用户给出。通过定义区域,多边形可以被包含入或是排除出模拟区域。实际上,网格生成器的工作区域最终应该生成的是一个大的多边形,这个大多边形确定了区域的范围和内部的小多边形,这些小多边形确定了区域范围内的陆地子区域。

图17.2 网格生成器的概念

注意:模型区域(Domain Area)和工作区域(Workspace Area)是不同的概念,模型区域是指使用数学模型所要模拟的实际空间范围,工作区域是指网格生成器内进行网格操作的工作范围。模型区域是工作区域的一个子集。

网格生成器的应用包括三个阶段:

1、确定模型边界–闭合边界(陆地-海洋)和开边界(参见Boundary Definitions)。用户可以通过导入陆地-海洋边界文件,或是在工作空间范围内手动操作生成模型边界。

2、如果你对模型的边界满意,此时就可以生成一个与水深无关的网格。你可以通过控制三角形最大面积、三角形最大扭曲度,区域最大节点数来控制三角形的生成。

3、最后,按照单元中心的水深值,程序会进行网格稀疏的自动调整。当然,这需要用户导入水深信息。你可以在工作空间范围内定义多个独立的多边形,每一个多边形的网格细化都可以是独立的。

17.2 边界定义

用户使用点的属性参数来区分陆地边界和开边界。定义点的属性参数操作如下:选择一个节点(或多个),右击并选择属性。从Point Properties 对话框中添加节点属性值,如图17.3所示。

图 17.3 确定节点属性值

字段属性的具体数值是无关紧要的(在对话框中字段被标注为a)。这些值被用来区分网格中不同的开边界。在模型搭建过程中,用户需要把网格制作中定义的数值和具体的开边界联系起来。对于闭边界(水陆边界),统一使用‘1’。

注意:当生成网格时,网格生成器默认所有的边界都是陆地边界。所以,你需要为所有的开边界手动定义属性值。

提示:可以选一个弧并确定弧的属性值,这个属性

将应用于弧上所有的点(顶点和节点)。

18 开始

18.1 介绍

本章简短地介绍了如何使用网格生成器(Mesh Generator)来生成网格地形。下面的例子将通过Funningsfjord网格实例向用户演示如何生成一个网格地形。

这个例子包含以下步骤:

步骤1 –建立一个工作区域

步骤2 –导入模型边界线

步骤3 –编辑陆地边界线

步骤4 –定义开边界

步骤5 –生成网格

步骤6 –对陆地边界进行光滑处理

步骤7 –网格地形插值

步骤8 –对网格进行光滑处理

步骤9 –使用多边形来控制节点密度

18.2 数据位置

例子中用到的数据文件位于默认的安装位置,即:

c:\Program Files\MIKEZero\Examples\MIKE_Zero\MeshEdit文件夹.

18.3 步骤1 –建立一个工作区域

从MIKE Zero文件菜单中选择New然后选择Mesh Generator。用户必须在Mesh Generator创建工作区域之前对要操作的网格的投影进行定义。

一开始程序会提示输入投影设置,如图18.1所示。

图18.1 工作区域投影

注意:如果你想使用UTM坐标投影的话,你必须输入一个UTM区号。请参见Reference Guide来对了解如何选择UTM区。

请选择UTM坐标投影并且输入30作为UTM区号。

Mesh Generator会创建一个工作区域,然后你就可以初始化mesh的创建过程。

18.4 步骤2 –导入模型边界线

模型边界包含两个种类:

●陆地和水之间的边界,称之为陆地边界。

●模型模拟时,应用边界条件(水位,流量变化或者波谱)的地方。这些边界被

称之为开边界。

定义模型边界最简便的方法是通过使用MIKE C-MAP。MIKE C-MAP是一个包含全球所有海洋水深和陆地-水边界的数据库。你可以在MIKE C-MAP中对一个特定区域进行放大,并将陆地-水边界和水深值导出到Mesh Generator进行使用。

在这个例子里面,使用了从MIKE C-MAP里面导出的两个数据文件:

?Land.xyz,定义陆地边界

?Water.xyz,定义区域内一系列点的水深

图18.2显示了提取数据的区域。

图18.2 Funning 海湾

从Data菜单里面选择Import Boundary…并且选择land.xyz文件。选择land.xyz文件后,会出现如图18.3所示的Boundary Attribute对话框。

图18.3 边界属性

在菜单里面你可以对land.xyz文件的布置,数据的投影和如何对数据进行内插进行定义。Reference Guide提供了导入格式的详细信息。

请对图18.3中的数值进行定义。

注意:此处定义的LONG/LAT投影说明在land.xyz文件中的数据是纬度和经度。Mesh Generator会将经纬度转化成在UTM-30投影坐标中的东向和北向的坐标。

网格生成器读取数据文件并更新工作区域,如图18.4显示。

图 18.4 导入的边界数据

在本例中,因为我们只模拟Fjord海峡本身,所以只生成海峡内的网格。从图18.4中可以看出,模拟的区域包括:

?模型区域东北角的一个模型开边界

?沿海峡东部和西部的陆地边界

下一步包括清理工作区域不必要的陆地-水边界点。

18.5 步骤 3 –编辑陆地边界线

在这一步骤中,需要删除图18.4所示的模型区域外的所有点。

首先删除工作区左边的点和弧线。选择工具栏上的Delete button (橡皮擦图标),然后选中窗口左区域中的点和弧线进行删除。如下图18.5所示。

图 18.5 删除点和弧线

用户可以画一个矩形框住多个对象将它们快速删除。按照下面步骤删除工作区右上角的点和弧线:在编辑工具栏上选择 Delete键, 按住左键后拖拉鼠标框中右上角的这些点和弧线,完成后放开左键,这样选中的点和弧线就被删除了。

也可以画出一个多边形圈选所要删除的点,然后按键盘上的Delete键来进行删除。

请按如下步骤操作:

1、在编辑工具栏上选择Select Point function

2、右击鼠标,在显示的上下文菜单中选择 Inside Polygon

3、右击鼠标添加polygon的角。沿着窗口左上角的陆地线画一个多边形

4、双击鼠标左键,完成这个多边形

5、按键盘上的Delete键,将多边形中所有的点删除

参见图 18.6。

图 18.6 多边形选择

最终得到的陆地边界如图18.7所示。注意图中以下几点:

?图18.7中所示的陆地边界是一个开放弧线(有两个节点)。这是通过把所有陆地节点转化为顶点来实现的。在这一过程中要确保陆地边界上所有的洞都要封闭- 这取决于你之前是如何清空它所在的工作区的。

?在模型区域右上角画出一段新的弧线来封闭海峡。新的开边界和陆地边界采用相同的两个节点。这段弧线是通过选择Draw Arc工具,然后点击海峡段两边的nodes来生成的。该开边界弧线有以下两个作用:

1、定义一个可设置边界条件的开边界

2、生成一个多边形来封闭模型区域。这样该模型区域就可以三角化了, 因为只有封闭

区域(多边形)才能被三角化。

图 18.7 生成的陆地边界

18.6 步骤 4 –定义开边界

区分陆地边界和开边界是非常重要的。正如步骤3 - 边界陆地边界线中所描述的,图18.4所示的模型区域同时有一个陆地边界和一个开边界。网格生成器将所有的边界默认为陆地边界。用户必须自己将右上角的边界定义为开边界。

在Editing Toolbar中选择Select Arc工具,然后选择Open Boundary Arc。右击鼠标,选择Properties. 在出现的对话框中将Arc Attribute 设为2。这样模型模拟程序就会将属性值为2的弧线判断为一个开边界。

注意: 弧线–结点属性值–的默认值都为0. 当导出一个生成的网格时, 所有的弧线和节点的属性值会从0变为1。属性值1代表了陆地边界。因此需要用2或者更高的属性值代表开边界。对赋予同一边界条件的边界节点和弧线需使用相同的属性值。

18.7 步骤 5 - 生成网格

现在,用户可以生成网格了。

请在Mesh菜单中选择Triangulate选项,于是出现Triangulation的对话框。在Triangulation对话框的Option栏中(如图18.8所示),用户可以通过设定参数从而控制网格的生成过程。

图 18.8 Triangulation

点击Triangulate,然后点击Generate,网格生成器就会自动计算并生成网格,如图18.9所示。

图 18.9 生成的网格

18.8 步骤 6 - 对陆地边界进行光滑处理

如果生成的三角网格不够理想,譬如,靠近陆地的网格过小,用户可以有多个不同的方法来修正。其中之一就是对陆地边界进行平滑处理。

在Mesh菜单中,选择Delete Mesh选项,然后选择Land Boundary Arc,点击鼠标右键并选择Redistribute vertices, 就会出现Redistribute Vertices对话框,见图18.10。

图 18.10 重新分布顶点对话框

在Redistribute vertices对话框中(如图18.10)设定参数,然后点OK。

注意:用户在接受新的结果之前,应该先预览生成的边界。如果地形很复杂,可能新产生的陆地边界无法被模型接受。

如图18.11所示,新生成的陆地边界比原来的平滑。

图 18.11 光滑处理后的陆地边界

在新的陆地边界基础上生成的三角网格如图18.12所示。

注意:新的边界线上的点比原来“粗糙”的边界线上的点(见图18.9)排列规则。

图 18.12 陆地边界光滑处理后生成的三角网格

18.9 步骤 7 - 网格地形插值

用户可以细化网格,将生成的三角形与水深关联起来。一般来说,浅水区三角形要比深水区的要小。

请按照如下步骤:

1、删除网格

2、用编辑工具栏的Insert Polygon工具在峡湾插入Polygon标记,使用Seleclt polygon

工具,选中多边形标记,点击鼠标右键,选择Properties。反选第一个记号框,确保该区域包含在三角化区域中。

3、生成网格-在Mesh菜单中选择Triangulate…菜单项

在网格节点插入Z值之前,必须导入内插的离散数据。用Data菜单Import Scatter Data…导入离散数据。

清选择water.xyz文件,指定LONG/LAT投影。在导入数据后,显示图形应该如图8.13所示。

图18.13 离散数据视图

现在可以将导入的离散数据内插到网格节点中。在Mesh菜单中选择Interpolate…。接受默认值(default value),选择Interpolate。内插结束后,点击Close按钮,内插后的网格深度以等高线图显示。结果见图18.14。

图18.14 等高线图

现在可以细化网格来考虑水深。在Mesh菜单中选择Refine mesh…,接受默认值(default values),点击Refine按钮。经过细化的一系列子网格如图18.15所示。

图18.15 细化的网格

现在可以注意到靠近陆地的三角区的面积比峡湾中间的三角网格要小。

18.10 步骤 8 - 对网格进行光滑处理

通常,必须保证相邻的三角形之间的面积和偏斜度变化越小约好,即,在网格的不同区域创建平滑的过渡。

在Mesh菜单选择Smoth mesh…, 确定10作为迭代数目。

在图18.16种可以看到网格经过平滑后效果。

图18.16 平滑效果

18.11 步骤 9 –使用多边形来控制节点密度

一般情况下,在整个模型区域内的局部地区可能需要比其他地区更为精细的分辨率和网格密度。用户可以通过Step 7描述的以水深来进一步细分网格,进而在一定程度上达到局部加密的目的。

另外一种方式就是把模拟区域划分成不同的子区域,或者叫多边形区域,然后针对不同区域定义不同的最大单元面积。这种方法可以使用户更为灵活地、根据不同的水深来控制网格的生成。

在本练习中,用户就需要在海峡内定义较海峡外部小的三角形网格面积,来生成网格。

请通过mesh菜单下的Delete mesh把网格删除。这样用户就可以把模拟区域划分为两个子区域–内部和外部。请通过把海峡中间的两个顶点转换为节点(右击顶点,然后选择Vertices to nodes)来进行子区域的划分,然后在两个顶点之间画一段弧线,这样就完成了子区域的划分,见图 18.17。

图 18.17 划分子区域

注意:在上图中,在两个节点之间还画了一系列的顶点,网格生成器将使用这些顶点来生成网格。这样,用户就可以控制子区域公共边的网格分布。

然后,用户点击工具条中的Insert polygon、然后分别点击外部和内部区域在两个子区域中来定义一个多边形标记,如图18.18。

图 18.18 定义多边形标记

现在,用户需要选择子区域来定义最大单元面积:请点击工具条中的Select Polygon工具,选择内部区域,然后右击并选择Properties,用户将看到如下对话框,如图18.19。

图 18.19 多边形属性对话框

请确认没有选择“Exclude from Triangulation”,并定义最大单元面积为5000。对外部区域重复同样的步骤,但是最大单元面积定义为15000。

现在,用户就可以生成三角网格,在Mesh 菜单下,选择Triangulate… 。结果如图18.20所示。

图 18.20 不同子区域三角网格的生成

上图清晰地表明,现在海峡的内部区域要比外部区域的三角网格更为细致。

相关文档