06-POLYMESH-TUTORIALS-MESH-EDIT~~使用TWIST编辑三角形网格


<center>06-POLYMESH-TUTORIALS-MESH-EDIT~~使用TWIST编辑三角形网格</center>

参考资料

waves-workshop-exercise-mesh-edit.pdf


内容

在这个教程练习中,我们将编辑一个用 Polymesh建立的 三角形网格。目的是通过清理 “坏 “的三角形,让模型在 显式方案下运行得更快。你可以按照本视频中描述的步骤进行操作(尽管使用的是稍旧的 TWIST版本)。

http://tinyurl.com/wikifrw3/En:idl_tool:mesh_timesteps_and_editing<font color='red'>不知道为什么网页打不开~``)

直接从 PolyMesh中出来的网格通常没有经过优化,不能用 显式方案运行。对它们进行一些清理可以帮助减少CPU的时间。在这里,我们使用 TWIST工具以交互的方式来做这件事。

MESH-EDIT 工作目录创建

创建一个 MESH-EDIT 工作目录,假如为 work-mesh-edit ,在目录下打开终端,输入以下命令

cp   -r   $COURS/WAVES-SHORT-COURSE/TUTORIALS/TUTORIAL_MESH_EDIT   .

现在可以进 ./TUTORIAL_MESH_EDIT,可以发现如下文件:

rand.dat Polymesh使用的 外部等高线(outside contour)
insel.dat Polymesh使用的 岛屿文件(island file)
xyz.dat ASCII格式的 水深数据
meshin.nml (例子中)Polymesh输入文件
sorted_v0.msh (例子中)要编辑的网格文件
cflcxy_sorted.dat 时间步数为T = 26.81 s,由Polymesh估计
protocol.nml (其它例子)Polymesh输入文件
sorted_clean1.msh (例子中)由TWIST产生的编辑过的网格

用TWIST可视化网格

要启动 idl,你首先要复制 TWIST工具并使用 runtime(运行时间)运行:

cd ./TUTORIAL_MESH_EDIT
cp $WAVE_COURSE/TOOLS/IDL/rt_visumain.sav .
cp $WAVE_COURSE/TOOLS/IDL/TWIST_init.txt .
cp -r $WAVE_COURSE/TOOLS/IDL/palettes .
idl -rt=rt_visumain.sav

idl -rt=rt_visumain.sav

启动 idl后,在 TWIST中,显示 sorted_v0.mesh网格需以下操作:

  1. GMESH triangle-based grid加载;
  2. Maps中选择 Bathy from gmsh
  3. 要求叠加 TRI角;
  4. Refresh

sorted_v0.mesh网格

用TWIST显示、编辑网格的最小时间步长

下一步是得到 WW3对该网格将使用的 时间步长的值。因为三角形周围的每个 单元(cell)都有一个 最大的稳定显性时间步长,模型将使用其中 最小时间步长。这个 最小时间步长对于每个方向和每个频率都是不同的。在实践中,我们在这里重新计算 最低频率的最小值

要做到这一点,打开 MESH工具箱,在 Mesh and timesteps部分选择 Update model timesteps

 Mesh 工具箱

在Mesh and timesteps部分选择Update model timesteps

选择Update model timesteps后,终端的更新输出:前100,结点及其对应的最小时间步长

为了帮助你直观地了解这些 Nodes的位置,你可以点击 Refresh来获得新的图像:

随着 最小时间步长的减少,结点的方块标志颜色由冷转暖,除了 真正的最小的时间步长结点的方块标志,它在这里以蓝色出现,为了从 暖色方块标志中突出显示。当你放大在 13.13s时间步长(即 真正的最小的时间步长)下的 带有蓝色方块标志的结点时,你会看到,该节点是一个有4个 neighbors的节点,而这是一个典型的 问题结点

搜索网格并移除4个 neighbors的节点(即 问题节点),是我们创建这一个工具的目的。在 MESH工具箱中,选择 Work on mesh中的 Remove all nodes with 4 neighborsRefresh后,带有蓝色方块标志的结点被移除了,如果你这样再选择一次,带有红色方块标志的结点也会被移除。

选择1次 Remove all nodes with 4 neighbors 后,Refresh

再选1次 Remove all nodes with 4 neighbors 后,Refresh

现在选择 Update model timesteps真正的最小时间步长变成了 16.94s,放大在该时间步长下的 带有蓝色方块标志的结点

选择Update model timesteps后,终端的更新输出:前100,结点及其对应的最小时间步长

正如你所看到的,这个 结点周围的三角形有点 扁平(flat)。你可以通过 手动移动结点来改善网格:在 Mesh Editor中点击 Move GPs,然后在 主窗口中拖动相邻的结点。这可以使得 结点的方块标志颜色变成其它颜色,甚至在结点掉出 前100个结点的时候让标志消失。当你的网格将在一个运行系统 数年中每天运行时,可以努力实现网格的调整。

移动结点的时候要特别注意,貌似没有撤销的操作。

用TWIST保存网格文件

最后你应该保存一个 *.msh文件(选择 MESH工具中的 Save file)。
一个例子是 sorted_v2.msh


额外练习1:POLYMESH_use_and_tricks_guide.pdf

如果你想知道更多关于如何 调整mesh和根据你的需要 调整polymesh选项,你可以阅读以下文档文件 POLYMESH_use_and_tricks_guide.pdf。在 $WAVE_DATA/MESH_EDIT/中提供了 pdf和例子。

额外练习2:xfn图形工具

xfn图形工具可以用来对网格做同样的操作。它应该输出一个文件 final.dat,它将取代 polymesh中的 xyz.dat

复制 exe文件,正确设置环境并运行 xfn工具

cp ~/POLYMESH/xf/* ~/bin/
chmod 755 ~/bin/*
export TICAD_DEFAULTS=$HOME/bin/
xfnn final

要用 xfn中的等高线文件(contour file)运行 polymesh,你需要编辑 Meshin.nml :

&GENERAL
 LXYZ = F
/

然后运行 polymesh,它将读取 rand.datinsel.datfinal.dat


Author: Jincan
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Jincan !
  TOC