【仿真計算】專家級建模軟體Gmsh快速入門

2021-02-23 有點小用吧

寫在前面:2012年翻閱某電磁仿真手冊時看到一句話,說HFSS之所以能保證工業級精度的秘訣在於網格剖分,當時真理解不了。後來出國兩年,以矩量法為基礎深入學習計算電磁後,才體會到這句話的真諦,為此這裡給大家推薦一個仿真建模的利器,Gmsh,簡約但不簡單的開源軟體。如果精力允許,希望大家儘可能親自建模離散,再導入商業軟體進行仿真,絕對磨刀不誤砍柴工!

    Gmsh是一款有限元網格生成器,包含預處理、求解和後處理三大模塊,分別對應於幾何建模、網格優化和結果展示三項功能。

    打個簡單比方,張三準備建一個房子,首先將輪廓線畫出來(幾何建模),然後計算用多少塊轉(離散網格),最後再貼瓷磚或刷牆(效果展示)。

    下面結合個人經驗介紹如何快速入門,假設Gmsh已經下載到本地(http://www.gmsh.info/下載,無需安裝,點擊exe直接運行),找到gmsh.exe和help文件,再快速翻看demos和tutorial兩個文件夾。

入門第一步,運行tutorial文件夾example1

    通過file→open打開t1.geo,出現一個方框。

    在導航欄mesh選項下級目錄找到2D,點擊後方框被離散化,變成了一個網格。

    至此,一個簡單的長方形貼片被離散化處理,操作基本完成,下面我們看看gmsh是怎樣通過腳本建模的。

    採用記事本打開t1.geo文件(俗稱腳本script),發現羅裡吧嗦的一大堆,其實我們需要了解其中四類語句就行了,它們分別是定義參數、點、線、面的命令,如下:

定義參數  lc = 1e-2;

定義點  Point(1) = {0, 0, 0, lc};

定義線段 Line(1) = {1,2} ;

定義閉合線段Line Loop(5) = {4,1,-2,3} ;

定義面Plane Surface(6) = {5} ;

    不難看出gmsh參數化建模的流程:通過參數定義點的屬性,連接相應的點構成線段,再連接一系列線段構成封閉的面

    值得指出的是,定義點需要四個變量,前三個是坐標,第四個是用來定義網格剖分疏密的參數,詳情請參考腳本注釋(//開始,或者/* */之間的內容)。

Gmsh看似簡單,其實功能十分強大(通過284頁的help文件介紹就知道它有多複雜)。這裡介紹幾個最為實用的選項設置

(1)菜單tool-》Options選項 Visibility

    選項卡裡Geometry和Mesh裡Visibility包含了點、線、面的顯示參數,操作操作看看視圖會有什麼變化。

(2)菜單tool-》Options選項 一鍵默認

    當你設置參數沒有變化,也找不出原因時,恢復默認設置是有效的選擇。

(3)菜單tool-》Options選項 腳本重載與編輯

    gmsh支持前臺和後臺雙重操作,也就是說,用戶可以在後臺編輯腳本,然後通過導航欄Geometry下面的Reload重新加載,相應視圖會自動更新;用戶也可以在前臺通過滑鼠建模(選點、連線、取面等),對應的命令語句會自動寫入對應腳本文件(點擊導航欄Geometry下面的Edit file就能自動打開腳本文件,可以非常直觀的學習腳本命令,我就是這樣入門的)。當然用戶也可以混合操作。注意一個細節,gmsh在General選項裡面定義了文本編輯軟體,如果是windows可以選用記事本,linux可以選用gedit,需要修改時再上網搜索,這裡就不囉嗦了。

    至此,第一個例子已經介紹完畢,總結一下,我們學習了:

gmsh最基本的四個建模語句;

與視圖和腳本密切相關的常用選項;

gmsh前臺、後臺操作讀寫腳本。

    可能有人要問,tutorial文件夾裡面還有十幾個例子怎麼辦,學還是不學?如果你還是處於入門階段,那麼剩餘的例子沒必要學習,可以打開看個新鮮,但是真正研究起來很容易讓你望而生畏,因為gmsh能做的事情實在超過你的想像,而我們的需求可能只是全部功能的1%,所以適可而止的保持好奇心。下面,我們開始自己腳踏實地的新建第一個例子。

入門第二步,新建一個例子

    10個點、17條線、8個面構成一個最簡單的房子,腳本代碼如下:

// mesh parameters

lc = 1e-1;

// 10 points

Point(1) = {-1, -1, 0, lc};

Point(2) = {1, -1, 0, lc};

Point(3) = {1, 1, 0, lc};

Point(4) = {-1, 1, 0, lc};

Point(5) = {-1, -1, 1, lc};

Point(6) = {1, -1, 1, lc};

Point(7) = {1, 1, 1, lc};

Point(8) = {-1, 1, 1, lc};

Point(9) = {-1, 0, 1.5, lc};

Point(10) = {1, 0, 1.5, lc};

// 17 lines

Line(1) = {1, 2};

Line(2) = {2, 3};

Line(3) = {3, 4};

Line(4) = {4, 1};

Line(5) = {5, 6};

Line(6) = {6, 7};

Line(7) = {7, 8};

Line(8) = {8, 5};

Line(9) = {10, 6};

Line(10) = {10, 7};

Line(11) = {8, 9};

Line(12) = {9, 5};

Line(13) = {10, 9};

Line(14) = {7, 3};

Line(15) = {8, 4};

Line(16) = {6, 2};

Line(17) = {5, 1};

// 8 faces without bottom

Line Loop(18) = {6, 14, -2, -16};

Plane Surface(19) = {18};

Line Loop(20) = {7, 15, -3, -14};

Plane Surface(21) = {20};

Line Loop(22) = {8, 17, -4, -15};

Plane Surface(23) = {22};

Line Loop(24) = {5, 16, -1, -17};

Plane Surface(25) = {24};

Line Loop(26) = {10, -6, -9};

Plane Surface(27) = {26};

Line Loop(28) = {10, 7, 11, -13};

Plane Surface(29) = {28};

Line Loop(30) = {13, 12, 5, -9};

Plane Surface(31) = {30};

Line Loop(32) = {8, -12, -11};

Plane Surface(33) = {32};

   下圖是房子的幾何外形,對應的點已在圖中標出。

    點擊Mesh-》2D按照默認設置進行離散,得到三角形網格,但是我們想要四邊形網格。

    修改選項卡設置,合併所有三角形網格,得到四邊形網格。

    網格是四邊形的,但是不夠整齊,怎麼辦?

    再次修改選項卡,換一個mesh求解算法。

    這次比上次整齊多了,可是網格太密了,適當調稀疏點。

    修改mesh參數lc為0.3,效果基本滿意。

入門第三步,再接再厲,積累學習

    通過前面的兩個例子,相信大家對Gmsh已經有了基本的掌握,其實入門真的不難,不是嗎?基於上述基本技巧,常用建模需求基本可以滿足,但是如此強大的軟體只學到這裡,實在可惜。所以,兩點建議:

最後,祝大家Gmsh學得開心,用的順心。

申明

原創總結,歡迎分享,轉載請註明作者和出處:useful2you,有點小用吧(公眾號useful4you)

-

相關焦點

  • 三維結構電磁場仿真軟體的快速入門
    三維結構電磁場仿真軟體的快速入門 佚名 發表於 2020-08-10 08:58:28 HFSS全稱 high frequency structural simulator
  • 收藏:科研常用模擬計算軟體簡介!
    許多科研工作的理論分析,結構設計和優化都依靠仿真模擬來完成。近年來隨著交叉學科的發展,仿真模擬的需求也不限於上述的學科,在新興的材料科學,能源科學,生命科學的研究工作中也越來越多的應用到仿真模擬這一工具。另一方面隨著友好易用的商用仿真模擬軟體COMSOL的出現,仿真模擬不再是一項需要深厚理論基礎的高門檻技術。通過COMSOL軟體的使用,越來越多的科研工作者可以利用仿真模擬幫助自己的研究工作。
  • 四種常見的EMC仿真軟體介紹
    EMC仿真軟體能夠為我們提供了一個非常有效的高頻和高速電磁仿真設計工具,它集高速電路建模、仿真和優化為一體,用仿真代替實驗,可以快速的幫助工程師完成高速電路EMC設計,實現信號完整性,減少研發費用,縮短研發周期。
  • 微波EDA電磁場仿真軟體評述
    尤其可在時域或頻域內實現對數字或模擬、線性或非線性電路的綜合仿真分析與優化,並可對設計結果進行成品率分析與優化,提高了複雜電路的設計效率,使之成為設計人員的有效工具。ADS仿真軟體在國內各大學和研究所已得到廣泛的應用,是仿真軟體中的佼佼者。它是一種綜合性的設計軟體,可以完成對電路和場結構的仿真。快速的電路仿真為設計者提供初始的設計結果,然後通過矩量法仿真得到準確的結果。
  • 中望軟體正式發布仿真解決方案,邁出All-in-One CAx的戰略性一步
    先進求解算法應用,仿真分析更精準快速     眾所周知,求解算法是通用CAE軟體的核心,很大程度上決定了仿真分析的準確性和效率。,使得求解問題的方法規範化,軟體因此能夠更充分地利用計算機的高速運算和大量存儲功能,實現多線程計算,大幅度提高仿真計算的速度。
  • 電路仿真軟體哪個好?7款主流電路仿真軟體優缺點大比拼
    三、ProteusProteus軟體是英國Lab Center Electronics公司出版的EDA工具軟體,支持電路圖設計、PCB布線和電路仿真。Proteus支持單片機應用系統的仿真和調試,使軟硬體設計在製作PCB板前能夠得到快速驗證,不僅節省成本,還縮短了單片機應用的開發周期。
  • 中望電磁仿真2019:建模和仿真界面無縫切換真是太友好了
    中望電磁仿真軟體2019(以下簡稱「中望電磁」)是中望軟體根據企業對仿真分析軟體的應用需求,並充分考慮本土工程師的思維方式和操作習慣而打造的專業CAE軟體,具有界面簡潔友好、易學易用等特點,能極大幫助用戶提高工作效率。
  • 《VirtualLab Fusion入門與進階實用教程》
    然而,隨著近代光學系統產品的發展,許多的光學元件物質,已經由幾何光學的範疇,逐漸進入「波動光學(wave optics)的微小設計領域,而VirtualLab Fusion軟體結合了「光線追跡(ray tracing)」和「場追跡(field tracing)」算法,能在所設計的產品尺度,接近或小於光源波長的時候,還能保證仿真結果的精確性。
  • 工程計算軟體系統 || 最全CAE軟體匯總介紹!
    ,可以提供從產品概念、產品造型、產品仿真、產品測試、產品加工直至逆向工程的全部功能。POLYFLOW-採用有限元法的CFD軟體,專用於粘彈性材料的流動模擬FIDAP-適合解決從不可壓縮到可壓縮範圍內的複雜流動問題GAMBIT-面向CFD分析的高質量的前處理器,其主要功能包括幾何建模和網格生成G/turbo-針對葉輪機械前處理器,可以快速高效生成葉輪機械網格FloWizard-面向工程的CFD軟體,操作簡單。
  • 結構、流體、多物理場、電磁仿真計算完美硬體配置推薦
    >電磁仿真仿真計算特點3.主要仿真計算專業領域瞬態結構仿真、靜態仿真計算、流體仿真計算(CFD) 、電磁仿真計算(EM)、多物理場仿真仿真、熱分析、聲波仿真計算等(二)有限元仿真計算特點分析,計算機無法承受(2)  前處理軟體自身算法問題,網格劃分軟體的處理模式,計算不過來(3)  工作站硬體配置不足或配置不合理,計算性能不夠建模計算特點
  • 光的幹涉原理及幹涉系統的建模仿真
    9折,包含課程材料費、開票稅金、午餐費用)學員要求:公司研發部門光學部分研發工程師,研究所或高校光學科研人員,學生等,需要對現代光學衍射理論,成像理論,矢量理論有所了解,不需要任何軟體基礎。2015年4月至今,在耶拿大學-應用物理研究所(Institute of Applied Physics)攻讀博士學位,導師為Frank Wyrowski教授,主要的研究課題是開發不同的傅立葉變換技術,高效的執行光場在不同域之間的轉換,進而實現高速物理光學建模仿真。
  • 多物理場仿真技術 - 軟體指南B
    計算機仿真作為集成電路, 消費電子及高端製造的必備技術已經滲透到行業各個環節. 多物理場仿真(Multiphysics Simulation)是基於上世紀單物理仿真技術發展起來的跨學科數值仿真技術. 軟體作為多物理場仿真的平臺, 目前不少的商用的軟體及開源軟體已經得到行業的應用.下面簡單介紹多物理場仿真的軟體的分類和應用行業.
  • BIM建模用什麼軟體?常用的BIM軟體有哪些?
    BIM軟體廠商眾多,其開發的軟體各有優勢與適用領域,據不完全統計,目前全球BIM建模軟體有70款的多,僅為常用的就有25款,今天筆者就與各位聊聊BIM建模用什麼軟體?常用的BIM軟體有哪些?,採用梁、版、牆及門窗等構件作為命令對象建構3D建築模型,協助建築師進行建築結構配置與設計;Revit MEP為機電系統仿真平臺,主要功能為機械系統規劃、給排水系統規劃、通風管路配置、動力與照明系統線路配置、機電系統仿真、消防系統規劃、環境負荷與冷熱系統分析等,可藉由建構機電工程整合信息的模型,協助機電工程師進行機電與管線系統的分析及設計;Revit Structure為建築結構建模軟體,側重建築物的鋼筋混凝土
  • 建模軟體只知道犀牛?來看看這40款強大的建模軟體吧
    NUBRS建模軟體1.RhinoRhino作為目前大家最常用的三維建模軟體,是一款NUBRS曲面建模的軟體。在國內有著廣泛的使用度,教程也比較多,入門自學也非常方便。Rhino的建模思路十分自由,但如果對結構把握不夠嚴謹,就很容易出錯,在對接製造業等需要生產出實體模具的行業,並不是十分適用。是一款在曲線建模方面具有優勢又容易上手的建模軟體,在快速表達上具有優勢。
  • 電路仿真軟體入門篇,大佬帶你認識Multisim電路仿真軟體圖形界面
    每款電路仿真軟體有各自的特點和優勢,因此不同的開發人員依據需求會選擇不同的電路仿真軟體。據了解,使用最多的電路仿真軟體為Multisim,但這款英文標識以及附帶眾多圖標的電路仿真軟體卻讓許多初入門的開發者備受困擾。
  • Maple 2019 數學工程計算軟體
    Maple 是一個強大的數學計算和模型分析工具,擁有世界領先的符號-數值混合計算引擎,具有計算精度高、適用性強、應用廣泛等特點,其中符號-數值混合計算已成為工程設計的新趨勢。通過友好的用戶界面集成世界上最強大的數學引擎,讓用戶快速分析、探索、可視化以及解決數學問題。
  • 基於Matlab數值計算引擎的三維可視化視景仿真技術
    ,是一種基於可計算信息的沉浸式交互環境。例如,採用視景仿真可以對飛彈裝卸、發射等危險過程進行數學建模,對戰機等裝備進行運動學和動力學建模,通過碰撞檢測、動力學和運動學分析,在視景仿真中可以提前模擬出武器裝備在飛機上工作的基本過程,並計算出期間可能發生的意外事件及其概率,同時還可以進行真實環境中比較危險的工作仿真,如飛彈發射意外故障情況的處置等。
  • 超級入門攻略!大學生數學建模競賽,我來了!
    數學建模,狹義上來講是就是從實際問題中抽象出數學模型的過程,在廣義上而言,數學建模又包括了狹義上的數學建模(我們可以理解為模型的設計過程)以及後續的計算求解與分析等。全國大學生數學建模競賽中國大學生數學建模競賽CUMCM,始於1992年,分本科組專科組各有兩個選題。時間是每年9月(一般在上旬某個周末的星期五至下周星期一共3天,72小時)舉行。
  • 數學建模好用的軟體有哪些?
    一般來說學習數學建模,常用的軟體有四種,分別是:matlab、lingo、Mathematica和SAS下面簡單介紹一下這四種。 當前流行的MATLAB 5.3/Simulink 3.0包括擁有數百個內部函數的主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具 包和學科工具包.功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能.學科工具包是專業性比較強 的工具包,控制工具包,信號處理工具包,通信工具包等都屬於此類.
  • 想學建模該從何開始?該選擇什麼軟體?
    在這種建模類型裡面有三分模型,七分貼圖的說法。 製作軟體的主要軟體是:建模軟體3dmax以及貼圖繪製軟體Bodypaint、PS。模型的製作流程:3dmax建低模、UV拆分、手繪貼圖製作。 2.該選擇什麼軟體?