有限元素法            

有限元素法期末程式




    MeshGenerator
   

    Professor/林堉溢   教授    

    Name/林威延   No/685310046



       

   

有限元素法前處理機    

    ──網格產生器──

   

    簡介    

    一般有限元素法結構分析程式的前處理(Pre-Processing)部份通常包括以下幾個步驟:    

                               
幾何建構
網格分割(Meshing)
假設模擬元素(Modeling)
網格編修(Mesh Refining)
給定材料性質
給定荷重與邊界條件
製作輸入檔
   

根據一般經驗顯示,影響最終分析結果之精確度之因素,尤以網格分割方式為最。本前處理器即是以「有效網格切割」之領域知識與專家經驗,歸納整理出若干系列之經驗法則,協助有限元素程式使用者選擇適當之網格切割方式,以期在最少之計算時間與最大精確度兩者間,獲致魚與熊掌得兼之利。

系統預期功能    

    本系統前期之主要功能在於擷取專家之網格分割知識,量化為若干經驗法則,使用者只須透過親切之人機界面輸入欲求解結構平面之邊界幾何(定義域),本系統即能建議並繪製出最佳網格。系統後期功能預期結合其它之輸入條件,如荷重、支承、材料性質等,自動製作輸入檔(以SSTAN程式為結構分析程式)。    

    系統限制

模擬元素假設部份初以PLANE元素為系統驗證元素,以方便初期程式寫作,日後可逐一擴充;結構平面幾何暫僅支援「圓形開孔之對稱平版」,圓孔周圍為欲分析位置。    

    系統驗證    

    以有限元素作業為系統驗證實例,SSTAN為有限元素分析程式

程式介紹    

    1.領域知識    

A、幾何建構

   

完整的Mesh切割程式其基本圖素應包括圖層、頂點、直線、圓弧、圓、橢圓、平面、交點……等等,不同的幾何條件應有不同的輸入形式與定義方法。定義域(Domain)分為平面模式與立體模式兩種,其各具不同之定義型式,本程式初步支援之幾何形狀,以平面模式為主,原擬為具「不定位置與大小之圓孔」的矩形平版,使用者需輸入「圓孔半徑」、「圓孔中心坐標」、「矩形版之長寬」與「板厚」,但經與知識工程專家討論後,發現該情形下,節點編號、節點坐標、切割方式以及最後繪製切割結果,工程均十分繁浩複雜,非期限之內可完成,故現僅提供「兩對稱軸挖孔方形平版」,即圓形挖孔固定位於方形平版中央,使用者輸入值僅「圓孔半徑」、「矩形版之邊長」與「板厚」有意義,其餘輸入值目前均無效,可不輸入,若輸入值不符限制條件,系統拒絕執行並加以說明。其界面如下圖所示:    

   


B、定義域之分割

   

    幾何形狀建構後,即是對定義域的分割。分割的目的不外乎三種:(1)產生的網格具有完好的形狀,並於定義域中的任一處均為漸進式分割(2)有效率的計算量,保證只有細微的計算成長率(3)具有幾何形狀上的彈性,以允許與多種不同類模型相連結。    

    切割網格的原則以其目的劃分,有如下兩類:   為求答案之精準--

Rule1:元素近似正方形    

    Rule2- 4:於以下幾種部位處分割較細微

a. 幾何形狀轉折(Deform)處

b. 外力作用(Loading Employment)處

c. 所欲分析(Desired Analyzing)處 為求計算效率--

Rule5:節點數不能太多

Rule6:節點數成長速率不能太大

其中,分割方式又分為漸進式與等分式等兩種,如下圖所示:  

C、本系統使用之知識

綜上所述,本程式採用以下數則法則,作為系統知識:

1)於分析處分割較細微,且元素儘量成正方形

2)於幾何形狀轉折處分割較細微,且元素儘量成正方形

3)其餘部份以漸進式分割

4)控制節點總數在一定範圍之間(如90-110

至於其他相關法則,如幾何形狀轉折處、外力作用處切割較細微等等,均未寫入法則之中,尚待日後系統擴充。

2.Mesh切割流程圖

切割Mesh之流程圖如下:

3.物件樹

本程式之物件包括:

Input
儲存製作輸入檔之相關資料,如:荷重、邊界、材料性質等等

  MeshGenerator
儲存Mesh切割所須之資訊,如總節點數、幾排9-Node元素、幾排4-Node元素、4-Node元素排列之型式等等>

  Shape
儲存所欲分析結構之幾何形狀,目前只有圓形挖孔平版,日後可於此擴充其他形狀

  Node
儲存節點相關資料,如節點編號、坐標值、束制條件、所屬元件編號等等

  Element
儲存元件相官資料,如元件編號、組成節點編號、材料性質等等

  以下即為本程式物件數示意圖:

各物件Slot如下:

Global-


MeshGenerator-



RoundHollowedPlate-


Node-


4.法則

本程式之法則主要為切割Mesh時之判斷式,如下所示:

1.若MeshGenerator:nFinerRow =1
則RoundHollowedPlate:dFiner1 = 3.14 * RoundHollowedPlate:R / 12

  2.若MeshGenerator:nFinerRow = 2
則RoundHollowedPlate:dFiner2 = 3.14 * ( RoundHollowedPlate:rFiner1 + RoundHollowedPlate:dFiner1) / 12

  3.若Global:TotalNode< 115 And Global:TotalNode > 85
則Node:TotalNode = Global:TotalNode; MeshGenerator:TotalNode = Global:TotalNode

  4.若Global:TotalNode< 85
則RoundHollowedPlate:nFinerRow = 2; ForwardChain( [ NOASSERT ] );

  5.若Global:TotalNode> 115
則MeshGenerator:RoughType#=Equal

  6.若MeshGenerator:RoughType #= Gradient And RoundHollowedPlate:nFinerRow == 1 And ( RoundHollowedPlate:D - RoundHollowedPlate:R - RoundHollowedPlate:dEnd - SendMessage(RoundHollowedPlate, temp ) ) > RoundHollowedPlate:dEnd
則If Not( Null?( RoundHollowedPlate:d1 ) ) Then RoundHollowedPlate:d2 = RoundHollowedPlate:d1 * 0.8

  7.若MeshGenerator:RoughType #= Gradient And RoundHollowedPlate:nFinerRow == 1 And ( RoundHollowedPlate:D - RoundHollowedPlate:R - RoundHollowedPlate:dEnd - SendMessage( RoundHollowedPlate, temp ) ) > RoundHollowedPlate:dEnd
則If Not( Null?( RoundHollowedPlate:d2 ) ) Then RoundHollowedPlate:d3 = RoundHollowedPlate:d2 * 0.8

5.訊息傳遞(Method與 Function)
 

在輸入幾何條件後,按下「產生網格」鈕後,首先設定9-Node元素為一排,並設定分割型式為漸進式,再傳遞「計算漸進式間距」之訊息給RoundHollowedPlate,然後計算總節點數,之後,啟動法則。

Function-MeshGenerator如下:


Function-CalculateTotalNode如下:

計算總節點數後,將值存入物件MeshGeneratorTotalNode中,即驅動「MakeNodeInstance」方法,建立節點Instances,並傳遞「DesideGroup」訊息給所有Node物件下之Instances,決定各節點編號與排數,其後再傳遞「CalculateCoordinates」之訊息給所有Node物件下之Instances

,計算每一節點的坐標,最後傳遞「DrawMesh」訊息給Node物件,繪製結果。

Method-MakeNodeInstance如下:




Method-DesideGroup如下:


計算漸進式間距最為麻煩,方法是:

先由最外圈算起,以正方形為原則,如邊長25,徑向切成6排,每排為15度,則最外圈之間距為25*Tan15,再取其高斯值,得7,記為d1;其後d2d3d4……均為前項之0.8倍,直到間距小於最內圈之間距值為止。

其它methods

Method-sum


Method-left

6.使用說明

1.啟動本程式後,即進入歡迎畫面:


2.按下『Start』鈕,即進入編輯畫面:

  1. 依照步驟指示,自下拉式功能表,選擇幾何形狀:


  1. 選擇RoundHollowedPlate後,即出現彈出式對話框,再輸入平版邊長與圓孔半徑:

5.選擇畫面右上方的偏好選項,若完全接受系統建議值,請選「最佳組合」,其餘兩種選項為結果較精準與計算較迅速。


6.按下「產稱網格」鈕後,即可見到下列結果:

7.系統驗證

以邊長25圓孔,半徑1為例,系統切割結果為129-Node元素,304-Node元素,共計42個元素,95個節點,所得結果與理論值比較如下圖所示(水平受20ksi之拉力,垂直受20ksi之壓力):


其中,實線為理論值,虛線為系統建議計算值。

8.結論

1)由系統驗證結果可知,在節點數不多的情形下,其分析結果仍具高精確度,故可初步結論本系統為合理並實用的系統。

2)本系統之法則目前大都針對結構幾何形狀作文章,事實上幾何形狀並非唯一的考量因素,有時甚至不是最重要的因素;其他考量點如:載重形式、載重位置、支承條件、支承位置……等等,均為日後系統擴充時,法則庫首當增加之處。

3)至於系統其它功能,如使用者可自行選擇元素、節點之數目區間、使用幾點元素、或交叉使用,以及其他分析元素如BeamTrussPlate、軸對稱……等,均為系統擴增的地方。

4)本程式於較複雜處一切從簡處理,部份失真處為日後改善之處,然以有限之時間論之,本程式應具有一定之實用價值。


回上頁