最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

gmsh軟件的模型腳本文件.geo編寫 (1)

2023-03-09 14:55 作者:上岸的小浣熊  | 我要投稿

? ? ? ?Gmsh?是一個免費開源且具有內(nèi)置 CAD 引擎和后期處理子的二維、三維有限元網(wǎng)格生成軟件。并且具有參數(shù)化輸入和后期可視化能力。所有模塊的使用都可以通過兩種方式:命令行和 GUI,并且所有功能都提供源碼,無論是工作和學習都是非常不錯的選擇。

? ? ? ?Gmsh在創(chuàng)建模型時可以使用圖形界面和腳本文件兩種,腳本文件為 .geo 文件,具有自己的語法規(guī)則,與 c 語言有部分相似(完整語句后要加 ; 隔開等),但不論是那種形式,Gmsh 的模型創(chuàng)建是一種十分清晰的、自下而上的創(chuàng)建模式:點 → 線 → 面 → 體,層層遞進。換句話說,在沒有創(chuàng)建 " 點 " 時,是不能直接創(chuàng)建 " 線 " 的。

新建文本文檔,將后綴的 .txt 改為 .geo

1? 變量賦值

? ? ? ?首先,變量不需要先定義再使用,不區(qū)分數(shù)據(jù)類型 (int、float 等)。例如:a=2??b=0.03等,同時支持科學計數(shù)法,如:b=1e-2。整個文件中的變量賦值通常全部寫在文件開頭。

2? 定義點、線、面

? ? ? ?定義方式為:Point、Line、Plane Surface 等 + 標號。值得注意的一點是,不同類型實體可以共用標號,即可以同時出現(xiàn) Point(1) 和 Line(1),且標號必須為正整數(shù),可以不連續(xù)。

2.1? 定義點

? ? ? ?點的定義包含4個參數(shù):坐標 (x, y, z)+該點附近目標網(wǎng)格尺寸大小。例如:Point(3)={0, 2, 1, 0.1}; 除了通過參數(shù)定義(a) 的方式統(tǒng)一分配網(wǎng)格尺寸外,還可以通過 MeshSize 函數(shù)對個別點分配不同的網(wǎng)格尺寸,如:MeshSize {13, 5, 9, 12} = a?* 3

2.2? 定義線段

? ? ? ?由于兩點確定一條線段,所以一條直線就自然而然的由已經(jīng)生成的兩個點確定。例如:Line(6)= {4, 5};? 這里需要說明一點,Gmsh 中的線段是具有方向性的,這一點在生成閉合線段時要格外注意 (后續(xù)再做說明)。

2.3? 定義平面

? ? ? ?在定義平面時,首先要將線段組合成閉合線,此時要保證線段首尾相連,例如:Curve Loop(1) = {3, 1, -2}; (其中:Line(1) = {1, 2}; Line(2) = {3, 2}; Line(3) = {3, 1};),在首位不閉合時可以選擇添加 “ - (負號)” 進行首尾對調(diào)。

? ? ? ?在定義完閉合線后就可以將閉合線轉為平面。例如:Plane Surface(1) = {1};

2.4? 定義體

? ? ? ?和定義平面類似,首先定義一個閉合面,再將閉合面定義為體,定義方式類似。例如:Surface Loop(12) = {7, 9, 12, 13, 15, 11}; 不同的這里不再強調(diào)方向,但需要按一定順序連續(xù)形成閉合,而不能跳躍式輸入。

3? 獲取點坐標

? ? ? ?當一個點經(jīng)過平移、旋轉等操作后,可能難以直接獲得該點坐標,在使用時可以通過命令獲取坐標。例如:xyz[]=Point(2); 調(diào)用方式為:xyz[0]、xyz[1]、xyz[2]。

4? 移動和旋轉

4.1? 點的移動和旋轉

? ? ? ?移動的函數(shù)為 Translate,調(diào)用方式 “ 坐標 + 點 ”,例如:Translate {1,-1,2} { Point{5}; } 表示將5號點沿 x 軸正方向移動1、y 軸負方向移動 1、z軸正方向移動 1。

? ? ? ?旋轉函數(shù)為 Rotate,調(diào)用方式為 “ 旋轉面+中心點+旋轉角度+點 ”,例如:Rotate{{0, 0, 1 }, {0, 1, 1}, ±Pi/4} {Point{2};},即2號點在 “z=0” 平面,繞 “0, 1, 1” 點旋轉 Pi/4。

? ? ? ?在移動和旋轉時可以增加復制選項,增加復制后的不同:移動和旋轉后,原來的點不會消失。新生成的點會自動向后編號。例如:Translate?{1,-1,2} { Duplicata{ Point{5};?}},會自動生成點6。

4.2? “ 面” 的移動生成 “ 體 ”

? ? ? ?Extrude 函數(shù)可以通過 “ 面 ” 的移動更加方便快捷的生成 “ 體 ”,生成的 “ 體 ” 緊接上一個 “ 體 ” 進行自動編號。

? ? ? ?" 面 " 平移的調(diào)用方式:各方向移動距離 +?面。例如:Extrude {0, 0, 1} { surface {17}; },此外 Extrude?函數(shù)還可以進行分段分層,將整個移動距離分段,并在段內(nèi)平均分層。例如:Extrude {0,0,h} { Surface{1}; Layers{ {8,2}, {0.6,1} };},即在整個移動 “ h ” 的過程中分為兩段,比例為6 : 4,第一段平均分為8個子層,第二段平均分為2個子層。

? ? ? ?“ 面 ” 繞軸旋轉的調(diào)用方式:軸方向+參考點+旋轉角度。例如:Extrude { {0,1,0},? {1,1,0} , -Pi/2 } { Surface{20}; } ,此時平面旋轉的軸為過 (1,1,0) 點與方向 (0,1,0) 平行的直線,旋轉了Pi/2,同樣支持上述的分段分層。

? ? ? ?“?面?” 繞軸旋轉的調(diào)用方式:各方向移動距離+軸方向+參考點+旋轉角度。扭轉即繞軸旋轉和平移的結合,調(diào)用方式上也是如此,例如:Extrude { {-2,0,0}, {1,0,0} , {0,0.5,0.2} , Pi / 2} {Surface{50};},同樣支持分段分層。

5? 返回值

? ? ? ?在Gmsh中,類似 Translate、Rotate 等函數(shù)是具有返回值的,返回的是計算結果,如果是后續(xù)要重點用到的內(nèi)容,我們可以給予特殊標記。例如:mysufaces[ ]=?Translate {2, 0, 0} { Duplicata { Surface{1, 2}; } };? 此時新平面依舊會按順序賦予新序號,但在使用時可以用mysufaces[1]、mysufaces[2] 進行調(diào)用。

gmsh軟件的模型腳本文件.geo編寫 (1)的評論 (共 條)

分享到微博請遵守國家法律
建德市| 阳高县| 安国市| 桃园县| 布尔津县| 澄迈县| 古田县| 灵宝市| 鄂托克旗| 巧家县| 南华县| 资阳市| 涪陵区| 蒲江县| 遂溪县| 石景山区| 历史| 九江市| 商都县| 凤山县| 玉龙| 仙游县| 突泉县| 湘潭县| 赣榆县| 科技| 孙吴县| 且末县| 衢州市| 东丽区| 常山县| 阳城县| 泰兴市| 富平县| 庆元县| 洛川县| 宜昌市| 德昌县| 沁源县| 保德县| 丰镇市|