• 沒有找到結果。

高效能無元素分析法之軟體架構暨其於大地工程之應用

N/A
N/A
Protected

Academic year: 2021

Share "高效能無元素分析法之軟體架構暨其於大地工程之應用"

Copied!
20
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

高效能無元素分析法之軟體架構暨其於大地工程之應用 研究成果報告(精簡版)

計 畫 類 別 : 個別型

計 畫 編 號 : NSC 97-2221-E-011-102-

執 行 期 間 : 97 年 08 月 01 日至 98 年 07 月 31 日 執 行 單 位 : 國立臺灣科技大學營建工程系

計 畫 主 持 人 : 謝佑明

計畫參與人員: 碩士班研究生-兼任助理人員:蔡松栩 博士班研究生-兼任助理人員:潘茂森

報 告 附 件 : 出席國際會議研究心得報告及發表論文

處 理 方 式 : 本計畫涉及專利或其他智慧財產權,1 年後可公開查詢

中 華 民 國 98 年 10 月 31 日

(2)

行政院國家科學委員會補助專題研究計畫 V 成 果 報 告

□期中進度報告

高效能無元素分析法之軟體架構暨其於大地工程之應用

計畫類別:V 個別型計畫 □ 整合型計畫 計畫編號:NSC 97-2221-E-011-102

執行期間:97 年 08 月 01 日至 98 年 07 月 31 日

計畫主持人:謝佑明 共同主持人:

計畫參與人員: 潘茂森、蔡松栩

成果報告類型(依經費核定清單規定繳交):V 精簡報告 □完整報告

本成果報告包括以下應繳交之附件:

□赴國外出差或研習心得報告一份

□赴大陸地區出差或研習心得報告一份

V 出席國際學術會議心得報告及發表之論文各一份

□國際合作研究計畫國外研究報告書一份

處理方式:除產學合作研究計畫、提升產業技術及人才培育研究計畫、

列管計畫及下列情形者外,得立即公開查詢

□涉及專利或其他智慧財產權,□一年□二年後可公開查詢

執行單位:國立台灣科技大學

中 華 民 國 98 年 10 月 31 日

(3)

中文摘要

本研究主要為提出一高效能無元素分析法之軟體架構於大地工程上之應用。在研究之 初步發展階段,使用物件導向設計模式的優勢,提出一 weak-form 無元素分析法之通用軟 體架構,研究者可使用此架構快速發展 weak-form 無元素分析法,且容易維護與更新此架 構。本研究使用 C++物件導向程式語言,實現出此軟體架構,並使用 C++程式語言配合使用 圖形化界面開發函式庫 Qt 及 VTK 繪圖函式庫發展一後處理視覺化程式,將無元素分析結 果之資料,視覺化呈現,讓分析結果能更直接地呈現給研究者,並可容易的驗證其結果之 正確性。

關鍵字 無元素法、物件導向設計模式、軟體架構、視覺化

ABSTRACT

The research proposes a software framework for high-performance meshless analysis method in geomechanics. A general software framework for weak-form meshless method with object-oriented design patterns is presented in this initial stage of the research. Researchers can use the framework to develop quickly weak-form meshless method. The framework is extensible and easily manageable. Object-oriented programming language C++ is used to implement the framework, as well as a post-processing program for visualization analyses results. The visualization program is programmed using Qt for graphical user interface and VTK (The visualization toolkit) for scientific visualization. The post-processing program can visualize the output data of conducted meshless analyses, and help researchers gain insight into the mechanical mechanisms through visualization and user interactions.

Keywords meshless, meshfree, object-oriented design patterns, software framework, visuallization

(4)

一、前言

隨著電腦計算能力的迅速發展,利用數值分析模擬工程案例的需求越來越多,分析的 問題越來越複雜、精度的要求亦逐漸提升、而軟體的使用者親和力的要求亦越來越高。近 十年來,無元素法(meshless method)在工程上的應用也逐漸在文獻中被探討。無元素法為一 新興的數值模擬方法,可用於求解偏微分系統,它與有限元素法一樣具有廣泛的適應性,

可適用於求解各領域不同的問題控制方程式。而在固體力學 (solid mechanics) 上,可應用 於分析任意幾何形狀與材料行為。而其優於有限元素法的地方,在於無元素法無需於計算 求解前劃分「網格」(mesh),整個固體領域 (solid domain) 內之近似場僅由節點 (node) 所 建構而成,因此異於有限元素法之以元素構成近似場的方式,也因而無元素法擺脫了許多 有限元素法先天上由於網格的的限制所造成分析上困難的力學問題,例如大變形 (large deformation) 問題與裂縫延伸 (crack propagation) 等問題。而由於無需劃分網格,亦使分析 人員可專注在分析問題的定義上,而無需費心於網格的劃分。近年來無元素法成為計算力 學的熱門研究話題,且已有許多種無元素法被發展並應用於各領域上得到更好的結果。

從過去的文獻整理中,已有多達十種的無元素法被提出,不同的無元素法之間可能在 發展的過程中引入不同的程度的假設與近似,而有其由效能考量或準確度考量最適用的求 解問題,研究者可依其所分析問題選擇一方法來使用或比較多種不同方法之結果。但在目 前的文獻中尚無提出一整合之無元素法架構的探討,若問題需求改變或比較不同方法的分 析結果,則可能耗費許多時間於重新發展或修改其程式,因此,本研究欲發展一易維護、

可擴充及程式再利用之通用無元素法架構,讓研究者可根據此共通架構發展不同的無元素 法,並可容易的探討其分析結果或效能差異。

本研究之最終目的為發展一高效能無元素分析之軟體架構,藉由物件導向設計模式的 好處,並使用 C++物件導向程式語言,開發無元素法通用架構,使成為一個易實現與可擴充 的物件導向軟體架構。本研究已初步針對 weak-form formulation 的演算流程,完成歸納整 理出完成不同無元素法的特徵,並依歸納整理結果發展無元素法分析架構,可涵蓋多種控 制方程式(governing equation)、近似函數(approximation algorithm)、數值積分方法(numerical integration method)、邊界條件處理(boundary condition)及求解器(solver),讓使用者可在相同 基礎架構下比較不同無元素法之分析結果及效能表現。此架構藉由使用物件導向設計模式 的優勢,設計一程式可再利用、易擴充及維護性高之軟體架構,並透過 UML 圖說,有系 統的讓相關領域的使用者可較易了解此架構的設計及運作流程,減少其開發及維護上之負 擔。

此外本研究並發展一後處理視覺化之軟體,使用 C++程式語言配合圖形化界面開發函式 庫 Qt 及 VTK 繪圖函式庫,針對無元素法之特色,開發其合適之視覺化界面,使計算之結 果得以方便的展示,並觀看所關心的資訊,或比較其結果。

二、文獻探討 2.1 無元素分析法

無元素法為近 10 年來國際上於計算力學的熱門研究課題,且目前已有數篇綜合介紹無 元素法的文章,可藉以瞭解與比較不同無元素法之異同處,如 Gu (2005)、Li and Liu (2002)、

Belytschko et al. (1996)等等。以下七點為無元素法的主要優點 (Li and Liu 2002):

(5)

1) 無元素法由於節點之間的連結是在計算時建立的,並可隨著計算的進行而改變,因 此可輕易地處理大變形問題;

2) 無元素法相較於有限元素法可輕易地與電腦輔助設計之資料庫進行結合,因為無元 素法不需產生網格;

3) 無元素法可輕易地處理元件的損傷分析 (例如裂縫之生成),因此適合應用於模擬材 料破壞時的行為;

4) 準確性相較於有限元素法較容易控制,因為在準確度需要加強的區域增加節點即可 提升準確度,而有限元素法則需要對網格進行修改與調整;

5) 連體力學之無元素分析可模擬薄殼結構之大變形問題 (例如奈米碳管);

6) 無元素法可輕易進行多尺度 (multi-scale) 的分析,在大尺度中加入考量細微特徵之 求解,例如隨應力狀態改變之裂縫延伸問題;

7) 無元素法在將連體問題離散化的過程當中仍可保有精確的幾何形狀。

由以上可知無元素法相較於有限元素法有許多的優點,然而由於其在近似場的計算上 需動態地計算節點之間的連結,而造成了其計算速度上相較於有限元素法為慢。根據 Bathe (2001),無元素法之計算速度與有限元素法比較可相差 2-5 倍,可見以無元素法取代有限元 素法仍有其實務上的困難。

在所參考的無元素法之相關研究上,以下大致分為四個部份來介紹:1) 基本方法、2) 數 值積分的探討、3) 邊界條件之處理、與 4) 無元素法之應用。

1) 基本方法:無元素法家族各方法上的發展大致發生在 1977 ~ 2000 之間。此方法最 早可追溯到平滑顆粒流體動力學(SPH, Smoothed Particle Hydrodynamics, Lucy, 1977) 於天文物理學之研究,然而一直到 1990 年代後才有許多學者投入此一領域 的研究而發展出許多無需網格之數值模擬方法,如表 1 所示。而各方法之間最主要 的差異在於 1) 近似場函數與 2) 系統方程式之求取過程。

2) 數值積分的探討:數值積分用於 weak-form 無元素法的積分方程式,藉以求得整體 之領域之系統方程式,高斯積分法(Gauss integration)為常用的數值積分方法(Fries and Matthies, 2004)。點積分(Nodal integration)的技巧,因評估應力值只在結點上,

且是 particle method 的形式,可用以處理非常大的變形問題(Puso et al. 2008),在近 年來也有許多文獻在探討點積分的方法(Beissel and Belytschko, 1996; Chen et al., 2001; Liu et al., 2007)或改善數值積分結果品質的探討文獻(Dolbow and Belytschko, 1999)。

3) 邊界條件的束制:由於無元素法的場近似方法中如 MLS (Moving Least Square) 法 不具有 Kronecker delta 性質,而造成了在加入基本邊界條件 (Essential boundary condition) 或稱 Dirichlet 邊界條件時不若有限元素般的直接,而必需特殊處理。

而在此邊界條件的束制技巧上,根據 Fernandez-Mendez 與 Huerta (2004) 之研究,

可分為兩大類:1) 針對 weak form 進行修改,如使用 Lagrange Multiplier (Swegle et al. 1995)、罰數法 (Penalty Method) (Liu et al. 1995a) 與 Nitsche’s method (Belytschko et al. 1994; Nayroles et al. 1998);與 2) 針對內插函數進行修改 (Babuska and Melenk 1997; Duarte and Oden 1995; Liu et al. 1997)。

(6)

4) 無元素法之應用:近年來由於無元素法漸趨成熟,故在文獻中逐漸出現無元素法應 用於工程問題之研究。西元 2002 年以前無元素法的相關應用之文章 Li and Liu (2002) 已有很好的整理。

表 1 各種無元素法及其特色 (譯自 Liu, 2003)

方法 主要參考文獻 系統方程式形式 近似場函數

Diffuse element method (DEM)

Nayroles et al., 1992 Weak form MLS approximation, Galerkin method Element free Galerkin

method (EFGM)

Belytschko et al., 1994b Weak form MLS approximation, Galerkin method Meshless local

Petrov-Galerkin method (MLPG)

Atluri and Zhu, 1998 Local weak form MLS approximation, Petrov-Galerkin method

Finite point method (FPM)

Onate et al., 1996; Liszka and Orkisz, 1980; Jensen, 1980

Strong form Finite differential representation (Taylor series), MLS

approximation Smooth Particle

Hydrodynamics (SPH)

Lucy, 1977; Gingold and Monaghan, 1977

Strong form Integral representation Reproducing Kernel

particle method (RKPM)

Liu et al., 1993 Strong form or weak form

Integral representation HP clouds Oden and Abani, 1994;

Armando and Oden, 1995

Weak form Partition of unity, MLS

Partition of Unity FEM (PUM)

Babuka and Melenk, Weak form Partition of unity, MLS

Point interpolation method (PIM)

Liu and Gu, 1999, 2000b, 2001a,b,c,d

Weak form and local weak form

Point interpolation Boundary node

methods (BNM)

Mukherjee and Mukherjee, 1997a,b

Weak form and local weak form

MLS Boundary point

interpolation methods (BPIM)

Liu, G. R. and Gu, 2000d;

Gu and Liu, G. R., 2001a,e

Weak form and local weak form

Point interpolation

無元素法因無須劃分網格,只考慮節點之間的連結關係,故可以有效解決有限元素法 因網格所造成之問題,比有限元素法具有更廣泛的適用性。特別是在各新興的重要研究領 域如奈米科技、生醫工程等常需要進行多尺度 (multi-scale) 分析與大變形之模擬,此皆為 無元素法優於有限元素法的應用領域。然而,由於其運算過程中需進行動態的的節點連結,

也因此相較於有限元素法需耗費更大量的運算時間。因此,本研究之最終目的即同時從演 算法與善用現代之運算設施等方面來提升無元素法之計算效能。

2.2 物件導向設計模式及程式架構

在過去的二十年間有許多文獻探討使用物件導向程式(Object-Oriented Programming, OOP) 語 言 發 展 有 限 元 素 分 析 程 式 架 構 , 藉 由 物 件 導 向 之 多 型 (polymorphism) 、繼承

(7)

(inheritance)等機制,設計出合適的分析架構。Scholz(1992)使用物件導向中的運算子覆載 (operator overloading)及多型(polymorphic),並將資料封裝(data encapsulation)於物件,清楚 的定義出程式架構,且相對於程序性語言並可容易的驗證及維護程式。後續更有許多文獻 探討使用物件導向程式語言於有限元素上相關應用之研究(Patzák and Bittnar, 2001; Fang, 2007; Commend and Zimmermann, 2001)。Heng and Mackie (2009)並使用物件導向設計模式 充分發揮程式可再利用、擴充性及維護性的功能發展無元素分析架構。

設計模式 (Design Patterns) 這個詞可追溯到 1980 年代,由 Erich Gamma 等人從建築設 計領域引導至計算機科學的領域裡。設計模式的產生,普遍是為了解決在物件導向的程式 中,反覆出現的各種問題之解決方案。設計模式並非直接用來完成程式碼的撰寫,而是描 述在各種不同的情況下,如何解決問題的一種方案。程式設計是思維具體化的一種方式,

是思考如何解決問題的過程;設計模式是在解決問題的過程中,一些良好思路的經驗集成。

最早講設計模式,人們總會提到 Gof (Gang of four) 的著作 (Gamma et al. 2004),它最早將 經典的 23 種模式集合在一起說明,對後期學習程式設計,尤其是對從事物件導向程式設 計的人們起了莫大的影響。Freeman et al. (2004) 將 Gof 的著作重新以更白話的方式論述,

使一般使用者可以更容易使用設計模式來設計軟體架構。

在開發大型程式架構時,可藉由物件導向設計模式(Object-Oriented Design Patterns)的 優勢來發展成式架構,如離散元素模擬分析(Yang and Hsieh, 2005; Kozicki and Donz´ 2008)。

因此使用物件導向設計模式設計此無元素分析法之程式架構有其可行性及優勢。

三、研究方法

本研究之整體研究架構如圖 1 所示,以領域分解 (domain decomposition) 力學分析模 式為核心架構,並分別由 1) 軟體架構、2) 數值分析方法、3) 加速運算、4) 案例分析、以 及 5) 前後處理,這五個角度來發展高效能無元素分析法之軟體架構,並應用於大地工程上,

本階段研究主要提出一初步整合的無元素分析法之軟體架構,以及針對無元素法之特性發 展適合觀看結果之視覺化後處理程式。以下將分別從無元素分析架構開發及視覺化後處程 式方面來說明。

圖 1 研究架構圖

(8)

3.1 weak-form 無元素法分析架構開發

表 2 為在使用不同的 formulation 與內插方法(interpolation)下,可能組合而成的無元素 法。而目前已被探討的無元素法多達數十種以上,且各有其適合的分析問題與優點。因此,

研究者應依其所需分析問題之特性擇一方法來使用,而非遷就手邊現成或既有之軟體。雖 然無元素法可能之組合數如表 2 所示眾多,然各方間不乏共通性。而使用物件導向設計模 式可充份利用物件導向之多型(polymorphism)、繼承 (inheritance) 等機制以及設計模式中之 策略 (strategy) 、協調者 (mediator) 等模式使不同無元素法中共通計算部份可重覆利用,

並使軟體之開發、擴充與維護具有系統性而減少開發成本。

表 2 不同可能組合方式之無元素法 (Liu, 2005)

Formulation

Interpolation /approximation schemes

Strong-form (collocation)

Galerkin weak-form

Petrov- Galerkin Weak-form

Weak-stron g -form

Least squares

Boundary Integral Equation

MLS FPM EFG MLPG MWS-MLS ? BNM ?

WLS Collocation

GFDM ? ? ? ? ? ?

RBF(global) MFS collocation

Galerkin

method ? ? ? ? ?

PIM PPCM PIM LPIM ? ? BPIM ?

RPIM RPCM RPIM LRPIM MWS-RPIM ? BRPIM ?

Hermite-type interpolation /approximation

PPCM

RPCM ? LPIM,

LRPIM ? ? ? ?

SPH(RKPM) SPH, RKPM RKPM ? ? ? ? ?

PU hp-cloud PUFEM

hp-cloud ? ? ? ? ?

? ? ? ? ? ? ?

?: yet to be developed or unknown to the authors or it may not be possible.

本研究將使用物件導向設計模式(object-oriented design patterns)發展ㄧ基於領域分解之 通用力學分析程式之軟體架構(framework),使其具有擴充性與發展性,透過此單一軟體架 構即可實現如表 2 所示的幾十種無元素分析法、有限元素法或混合多種分析方法。由於不 同數值方法有不同之特性與需求,因此如何整合各種數值方法於單一軟體架構事實上有相 當之困難性,必需對各種數值方法有相當程度之掌握。而為了要使本架構具有彈性擴充並 最小化重複開發之工作,並使其容易在往後擴充及維護程式時達到程式充分發揮其再使用 的特性,因此使用物件導向設計模式進行架構設計規劃將有其必要性。透過前人開發物件 導向程式的經驗,將許多可能遭遇到的問題,以模式的方式描述其特點、適用性以及其優

(9)

勢,使能在這些常遇到的問題能在這些模式中找尋出ㄧ解決方案,而能讓軟體開發初期避 免掉一些錯誤以及往後需大幅度更改程式的可能性,使得軟體得以快速的發展;而在面對 於未來程式之擴充,維護人員只需了解此軟體的設計模式架構,就算不是當初開參與開發 的人員,也能夠輕易的維護與更新。而在其他領域方面研究若需使用到相關力學分析模式 開發程式,也可遵循已設計好之架構模式開發之。

使用物件導向設計模式來開發軟體架構雖有其方便性,且可以易了解及找尋單一問題 可解決之模式,但若需考量處理許多不同層面之問題,並在設計模式中找出單一模式設計 架構,可能將無法找到適合之解決方案,必須透過許多模式之組合才能將不同層面的問題 整合在ㄧ個架構下,但要整合不同模式以及判斷是否適合用於解決所遭遇的問題,將有其 困難性存在。

本階段將透過已設計完成之力學分析軟體架構,進行無元素法核心分析演算法之開發,

本研究將從表 2 中數十種無元素分析方法組合,透過更進ㄧ步之文獻探討,在其中擇其一 種組合予以實作。本實作中將使用廠商調校過之高效能數學函式庫 (如 Intel MKL 或 AMD ACML 等),用以求解系統方程式或需要使用數學函式庫的問題,藉此節省自行開發求解數 學系統的時間,並達高效能之運算。

本研究在此階段將初步使用物件導向設計模式,開發出ㄧ通用之 weak-form 無元素力 學分析之軟體架構,找出適合之設計模式予以整合之,藉此達成ㄧ具擴充性、維護性及通 用性之力學分析軟體架構。

3.2 後處理視覺化程式開發

為了能讓使用者更容易的使用、觀察各種無元素法的計算結果,本研究另行開發了一 個針對無元素法分析結果的後處理程式,以將無元素法之分析結果加以視覺化的呈現,並 利用圖形化使用者介面( Graphical User Interface ,GUI )讓使用者透過一簡單、易懂的操作介 面,對於無元素法分析結果加以展現與了解。本研究之後處理視覺化呈現以 C++物件導向程 式語言開發,並配合圖形化界面開發函式庫 Qt 及 VTK 繪圖函式庫發展一後處理視覺化界 面,以下將分別介紹 Qt 及 VTK。

Qt 是一個跨平台的 “圖形化介面開發函式庫”,由挪威的 Trolltech 公司所開發。其雛 型在 1991 年完成,1995 年 Trolltech 公司公開釋出 Quasar Toolkit 0.90,至今經過了好幾次 的改版,其功能也日加完整、強大。在 2008 年 6 月,Nokia 合併了 Qt 的開發公司,藉以 加強自己在行動裝置的桌面應用程式之開發,並在 2008 年 9 月將其更名為 Qt Software,

目前,其最新推出的版本為 4.5.3 版。Qt 有以下幾點的特性,1) 易於使用且大量的類別:

數百個以上的類別,整合各種功能,如檔案讀取,I/O device、資料庫...等;2) 跨平台特 性:支援 Windows、Linux、Mac ...等多個平台;3) 各種開發工具:Qt designer、Partner Add-ons、Qt Assistant、Qt Linguist...等各式開發工具;4) 支援 C++與 Java 等不同的語言。

使用 Qt 所開發出的界面可至官方網站瀏覽(Qt 官網, http://qt.nokia.com/)。

VTK( Visualization ToolKit )是一個繪製 3D 圖形的工具,且具有物件導向的類別庫。

VTK 一開始是在 1993 年,以 The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics 這本書的附件身份推出,以下為 VTK 幾個主要的特點,1) 屬於開放原始碼的資 源;2) 其提供了強大且豐富的 3D 圖形類別;3) 具有支援多種程式語言( Tcl/Tk、Java、Python 和 C++等)的特性;4) 跨平台能力(Windows、Linux、Mac),因此在推出不久就大受好評,

(10)

爾後在學術及商業領域更受到重視並廣為使用。(VTK 官網, http://www.vtk.org/) 四、研究成果

4.1 weak-form 無元素法軟體架構需求分析

根據表 2 所示,可清楚的知道目前已被探討的無元素法多達十種以上,根據文獻可知 無元素分析方法主要為內插、近似函數(interpolation, approximaiton function)及 formulation 程序結合而成,其中 formulation 又可分成 weak-form、strong-form 和 weak-strong-form 的形 式。本研究將先嘗試以 weak-form formulation 無元素分析法來發展此軟體架構之初步雛形。

從所探討之文獻中,本研究整理在固體力學上,線彈性問題之 weak-form formulation 無元素分析法通用流程,如圖 2 所示,從步驟 1) 建立模型開始,產生模型所需要的結點及 積分網格;2) 決定所要使用的近似函數(approximation function),如 MLS、PIM 等內插方 法;3) 透過所使用的數值積分法,計算出整體模型之勁度矩陣;4) 加入邊界條件(boundary condition)至整體勁度矩陣;5) 計算結點外力或自重至系統方程式;6) 求解系統方程式;

7) 根據求解出的結點位移計算應力及應變值;8) 後處理資料呈現。從圖 2 通用分析流程中,

本研究進一步整理出不同的 weak-form formulation 無元素法分析中,必須考量的共同因素,

如圖 3 所示,weak-form 無元素法共同包含以下四部分:

1) 近似函數(approximation function):

近似函數的選擇是決定為哪種無元素法分析法的重要因素,如 element-free Galerkin (EFG) method 的近似函數為 MLS,其它的近似函數如:PIM、RPIM、RPIM 混合 PIM 及 SHP 等多種無元素分析法已被發展,因此本研究必需考量多種近似方法的特性與共通性,

發展此通用軟體架構。

2) 邊界條件(essential boundary conditions):

邊界條件會根據所選擇的近似函數而決定可以使用何種方式束制邊界,如 RPIM 擁有 Kronecker delta function 性質,因此可使用 Direct Method 來束制邊界,不同的無元素法 必須考量可使用的束制邊界的方式,其它的束制方式如 Penalty Method、Lagrange Multiplier Method。

3) 積分演算法(integration methods):

數值積分為 weak-form 無元素法中求得控制方程式(governing equation)結果的過程必須 使用的方法,如高斯積分法(Gauss integration)、點積分法(nodal integration)等,不同的積 分方法,對無元素法分析結果將有不同的影響,因此有許多文獻在探討積分演算法的品 質。

4) 系統方程式求解器(solver):

系統方程式求解器為求解無元素法系統方程式的方法,不同的求解演算法將影響求解 的效能,本研究最終之目標為發展一高效能無元素分析軟體架構,因此本架構須考量選 用不同的求解方法對效能之影響。

綜觀以上四點 weak-form 無元素法流程中共通之特性,分別對整體分析中之結果或效能有 不同的影響,因此欲發展一通用 weak-form 無元素法軟體架構必須考量此四個特性。

(11)

圖 2 weak-form 無元素法分析線彈 性問題之通用流程

圖 3 weak-form 無元素法組合示意圖 4.2 weak-form 無元素法程式架構

根據本研究 4.1 節所整理出之需求,考量其互動關係,本研究使用物件導向程式語言 及設計模式,設計出此初步之 weak-form 無元素法通用軟體架構,並完成實做,其為一可 行之軟體架構。如圖 4 所示,為整體之程式介面架構類別圖,圖中除了 Client class 及 Domain class 外,其餘每個方塊皆為其介面類別,分別需各自演化其實體子類別,此目的主要為讓 所考慮之需求,在程式中能有共通之介面,以達界面間可以容易的溝通,此為透過物件導 向程式語言中,將不同的資料分別封裝(data encapsulation)在各自的類別中,並透過多型 (Polymorphism)的方式,讓程式中可以選擇各自要實現的方法,因此圖中每個方塊都需設計 其適當之共通介面。本架構主要分成以下八部份組成:

1) 系統介面:此部分為整個分析系統之介面類別,使用者(Client class)首先透過 Model class 建立其實體模型資料,再將模型資料給予 SystemInterface class 使用,使用者透過此介面 建 立 出 整 體 系 統 分 析 之 相 關 實 體 物 件 , 並 組 合 起 整 體 分 析 架 構 , 使 用 者 藉 由 SystemInterface class 的介面操作,簡單的控制整個系統分析,而不用知道到系統中複雜 的運作情況,此為利用物件導向設計模式中的表象模式(Façade pattern)實現而成。而 Model class 則衍生其對應之模型產生形式,來建立起模型資料,如:透過讀檔來建立模 型、建立預設之模型等方式,此為物件導向設計模式中策略模式(Strategy pattern)分別將 一群相同目的之演算法整合在一起,藉由共通之介面衍生其實體物件。

2) 核心架構:主要為 Domain class 及 Formulation class 之間與考量因素之物件互動流程。

Domain class 負責管理整體主要的運算流程,透過 Formulation class 計算求得整體模型 之系統方程式,之後呼叫 Solver class 求解系統方程式,得到最後結果。Formulation class 主要為根據 Domain class 的要求,配合所選擇控制方程式、內插函數及數值積分方式,

計算出整體之系統方程式,並透過 Assemble class 將計算完之勁度矩陣及力的向量分別 存入 SaprseMatrix class 及 LoadVector class 中,以讓 Solver class 取得資料計算出系統方 程式的解。因考量不同的控制方程式,所擁有項次不同,及計算流程也不同,因此 Formulation class 將根據不同的控制方程式,各自衍生其特化之 Formulation subclass。

Domain class 及 Formulation class 在此所扮演之角色為設計模式中中繼者(Mediator

1) 建立模型

4) 加入邊界條件至 整體勁度矩陣

6) 求解系統方程式 Ku = F 5) 加入外力或自重至

方程式

7) 計算應力應變值 3) 透過數值積分方法,

計算整體模型勁度矩陣 [ ] [ ][ ]T K B D B d

8) 後處理資料呈現 2) 選擇

Approximation Function

(12)

pattern)的角色,負責相關類別間之訊息傳遞之動作。

3) 近 似 函 數 (approximation function) : 又 可 稱 為 內 插 函 數 (interpolation function) , 為 weak-form 無元素法中決定為何種無元素法的重要一環,此類別之功能主要為計算支撐 領域(support domain)中結點的形狀函數(shape function),如圖 5 所示,分別各自演化為 Isoparametric class 及 NaturalNeighbor class 系列的形式,NaturalNeighbor class 配合 WeightFunction class、BasisFunction class、SearchAlgorithm class 計算出其對應之形狀函 數值,各類別介面分別使用策略模式各自演化其演算法。

4) 控制方程式:因考量無元素分析法可選用不同的控制方程式,如固體力學、熱傳導等不 同之控制方程式,因此將 GoverningEquation class 分成一塊,用以處理不同的控制方程 式,由於不同的控制方程式其所需考量的參數也不同,因此,各控制方程式中除定義其 本身之演算法外,並使用其相關之類別,用以處理不同的參數資料,如圖 6 所示,

SolidMechanic class 分別使用 Material class 及 StrainDisplacement class 用以處理所考慮 的材料及應變位移矩陣,並透過策略模式,其子類別各自演化其演算法。不同的控制方 程式其 Formulation 的流程也不相同,因此控制方程式須與 Formulation class 配合,特 化其相對應之 Formulation subclass。

5) 數值積分方法:Integration class 為考量使用不同數值積分方式,定出其共通介面,並使 用策略模式各自演化其演算法。

6) 求解器:此為考量使用不同的求解演算法之效能,定義出 Solver class 之共通介面,其 子類別使用策略模式各自演化其演算法,或使用現成之求解器。

7) 邊界條件:邊界條件的考量根據不同的無元素方法將有所不同,其 BoundaryCondition class 為共通之介面,子類別使用策略模式各自演化其演算法。

8) 資料結構存取:此部份為考量稀疏矩陣在 SparseMatrix class 及 LoadVector class 中的排 列順序,其排列順序將影響求解之效能,因此考量此順序,其子類別需分別定出其排列 方式,並配合使用 BoundaryCondition class 將邊界條件存取到 SparseMatrix class 及 LoadVector class 中適當的位置。

4.3 視覺化後處理程式架構

圖 7 為後處理視覺化呈現之程式架構圖,程式的架構主要分成四個部分由 1) Qt 所寫成 的使用者介面、2)負責畫出資訊的 VTKDrawer class、3)負責資料存取的 data class,以及 4) 負責協調這以上三部份的 mediator class。其生成順序為:主程式產生 mainWindow class(程 式的主介面),再由 mainWindow class 產生 mediator class,之後 mediator class 產生 data class 及 VTKDrawer class。以下將從這四點分別介紹:

1) 使用者介面:由 mainWindow class、 infoDialog class、 arguDialog class 這三個類別所 構成,負責呈現使用者介面,接收使用者的各種操作、指令,以了解使用者希望做些什 麼,將其告知 mediator class,以便做出相對應的動作

2) VTKDrawer class:負責畫出 mediator class 所要求的東西(產生程式中繪圖區的畫面)。

3) data class:負責讀取 xml 檔案,並將其整理及儲存。當 mediator class 呼叫時,提供其 適當的資料。

4) mediator class:負責接收 Qt 使用者介面所傳來的訊息,並跟據此訊息對 data class 拿取 資料,經過運算後,呼叫 VTKDrawer 繪出畫面。

(13)

圖 4 weak-form 無元素分析法之整體架構介面類別圖

圖 5 計算近似函數(Approximation function)之類別架構圖

圖 6 控制方程式(Governing equation)之類別架構圖 圖 7 後處理視覺化呈現之程式架構圖

1

1

1

(14)

五、成果展示

在本研究初步階段,此軟體能適當的將無元素法的計算結果表達出來,除了可直觀的 了解計算結果,也可作為驗證、展示之用,對無元素法的開發與使用、學習等領域上,能 夠給予相當大的幫助,且其圖形化界面的簡單操作方式,使本軟體具有容易上手,不需花 太多時間學習等特性。

無元素法是以隨機分布的節點,計算出空間上任一點的狀態(應力、位移等…),本軟體 可根據散亂的節點,找出模型的輪廓外觀,並依據節點上的資料,內差出模型表面的狀態 變化。同時配合箭頭、球體等表示方法,讓使用者可以從不同的表示方式,更加了解計算 結果。在查看各種資訊時,可視其需要、決定畫面上的顯示資訊( 節點資訊、外力條件……

等 ),或其色表細膩度,也可關閉模型的表面,只顯示網格格線,使用者可任意調整,讓 自己更容易觀察到想了解的資訊。而後若需增加其他功能,也可根據需求進而開發,目前 研究所發展出之後處理軟體功能如表 3 所示,圖 8 a) ~ h)為此後處理軟體之一些展示成果。

表 3 後處理軟體功能簡述表

位置 名稱 描述

Main Window

Style 要以何種形式呈現資料,共有 point (節點)、area ( 模 型外觀 ) 以及 arrow ( 箭頭 ) 等三種型式

Data 要呈現何種資料,可以選擇 intNode ( 積分點 ) 或 conNode ( 控制點 ) 、節點狀態( 應力、應變、位 移等 ) 及 是否指定特殊方向( x、y 、z 或不指定) Load 是否顯示外力。將會以箭頭表示外力的施加位置,

以及施加方向。

Fix 是否顯示限制條件。例 : 若 x 方向被限制,則在 x 方向加一角錐,並以跟 x 軸 一樣的顏色表示 Number 是否顯示節點編號

Info 是否顯示節點資訊

number of color 要將色表分成幾個顏色區塊 displacement

fac

要將顯示出的位移放大幾倍 paraDialog Scalar Bar

form

要將色表以直式或橫式的放置 nodes radius 節點的半徑大小

nodes Resolution

節點要以幾邊形畫出 arrow length 箭頭的長度

arrow radius 箭頭的圓錐半徑

arrow resolution 箭頭的圓錐,其底邊數量 arrow cone

height

箭頭的角錐與直線部分的比例

hide 若數值小於某一定值,就不畫出箭頭(以點表示) infoDialog node number 選擇要顯示哪一個節點的資訊

node high line 是否突顯正在檢視的節點

(15)

a) 軟體外觀及 3D 模型展示 b) 結點散布情形

c) 網格之呈現 d) 邊界束制表示法及三軸圖示

e) 節點資訊表 f) 外力加載情況

g) 綜合呈現 h) 節點編號呈現 圖 8 視覺化後處理軟體結果展示圖

(16)

六、結論

 本研究最終之目的為發展一高效能無元素分析法之軟體架構,在本階段之研究,已初 步設計出使用 weak-form 無元素法之軟體架構,並使用此架構實現出 weak-form 無元 素演算法。

 本階段所發展出之通用 weak-form 無元素法之軟體架構,考量了四個共同需求,1) 近 似函數、2) 邊界條件、3) 數值積分方法及 4) 系統方程式求解器,因此當需求不同時,

本架構亦可實現此無元素分析法。

 除了上一點所述之四點共同需求外,本研究亦考量了 1) 不同控制方程式之系統方程式 求解、2) 稀疏矩陣資料結構的存取方式、3) 勁度矩陣中節點的排列順序。

 本視覺化軟體的目的,在設計出一個便於使用,可清楚呈現各種計算結果的視覺化軟 體,目前此軟體已可將大部分資訊表示出,但仍有其不足之處,如節點資訊的呈現不 夠明確,在讀入的資料量過大時,因 3D 繪圖的時間需求,畫面轉換不能很平順等,

這些部分都有待進一步改善,以使此軟體能夠更加完整,促使其幫助無元素之學習、

研究的效果,能發揮到最大。

七、參考文獻

Bathe, K. J. and De, S. (2001). “The method of finite spheres with improved numerical integration.” Comput Struct 79, 2183-2196.

Belytschko, T., Krongauz, Y., Organ, D., Fleming, M. and Krysl, P. (1996). “Meshless methods:

An overview and recent developments.” Computer Methods in Applied Mechanics and Engineering, 139, 3-47.

Babuska, I. and Melenk, J. M. (1997). “The partition of unity finite element method”, International Journal for Numerical Methods in Engineering, 40, 727-758.

Beissel, S. and Belytschko, T. (1996). ”Nodal integration of the element-free Galerkin method.”

Computer Methods in Applied Mechanics and Engineering, 139, 49-74.

Chen, J. S., Wu, C. T., Yoon, S. and Yon, Y. (2001). “A stabilized conforming nodal integration for Galerkin mesh-free methods.” International Journal for Numerical Methods in Engineering, 50, 435-466 .

Commend, S. and Zimmermann, T. (2001). “Object-oriented nonlinear finite element programming: a primer.” Advances in Engineering Software, 32, 611-628.

Dolbow, J. and Belytschko, T. (1999). ”Numerical integration of the Galerkin weak form in meshfree methods.” Computational Mechanics, 23, 219-230.

Duarte, C.A. and Oden, J.T. (1995). “Hp clouds-a meshless method to solve boundary-value problems.” Technical Report 95-05, Texas Institute for Computational and Applied Mathematics, University of Texas at Austin.

Fang, H., Hand, A. J., Haddock, J. E. and White, T. D. (2007). “An object-oriented framework for finite element pavement analysis.” Advances in Engineering Software, 38, 763-771.

Freeman, E., Freeman, E., Sierra, K., and Bates, B. (2004). “Head First Design Patterns.”

(17)

O’REILLY.

Fries, T. P. and Matthies, H. G. (2004). ”Classication and overview of meshfree methods.”

Institute of Scientic Computing, Technical University Braunschweig Brunswick, Germany.

Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (2004). “Design Patterns, Elements of Reusable, Object-Oriented Software.” Addison-Wesley.

Gu, Y.T.(2005). “Meshfree methods and their comparisons.” International Journal of Computational Methods (IJCM), 2(4), 477-515.

Heng, B. C. P. and Mackie, R. I. (2009). “Using design patterns in object-oriented finite element programming.” Computers and Structures, 87, 952-961.

Huerta, A., Fernandez-Mendez, S. and Liu, W. K. (2004). “A comparison of two formulations to blend finite elements and mesh-free methods.” Computer Methods in Applied Mechanics and Engineering, 193, 1105-1117.

Kozicki, J. and Donz´, F.V. (2008) “A new open–source software developed for numerical simulations using discrete modeling methods.” Computer Methods in Applied Mechanics and Engineering, 197, 4429-4443.

Li, S. and Liu, W. K. (2002). “Meshfree and particle methods and their applications.” ASME Applied Mechanics Review, 54, 1-34.

Liu, W. K., Jun, S. and Zhang, Y. F. (1995a). “Reproducing kernel particle methods.”

International Journal for Numerical Methods in Engineering, 20, 1081-1106.

Liu, W. K., Li, S. and Belytschko, T. (1997). “Reproducing least-square kernel Galerkin method.

(I) Methodology and convergence.” Computer Methods in Applied Mechanics and Engineering, 143, 113-154.

Liu, G. R., Zhang, G. Y., Wang, Y. Y., Zhong, Z. H., Li, G. Y. and Han, X. (2007). “A nodal integration technique for meshfree radial point interpolation method (NI-RPIM).”

International Journal of Solids and Structures, 44, 3840-3860.

Patzák , B. and Bittnar, Z. (2001). “Design of object oriented finite element code.” Advances in engineering software, 32, 759-767.

Puso, M. A., Chen, J. S., Zywicz, E. and Elmer, W. (2008). ” Meshfree and finite element nodal integration methods.” International Journal for Numerical Methods in Engineering, 74, 416-446.

Qt官網, http://qt.nokia.com/

Scholz, S. P. (1992). “Elements of an object-oriented FEM++ program in C++” Computers and Structures, 43(3), 517-529.

Swegle, J.W., Hicks, D. L. and Attaway, S. W. (1995). “Smoothed particle hydrodynamics stability analysis.” Journal of Computational Physics 116, 123-l34.

VTK官網, http://www.vtk.org/

Yang, C. T. and Hsieh, S. H. (2005). “An object-oriented framework for versatile discrete objects simulation using design patterns.” Computational Mechanics, 36, 85-99.

(18)

八、計畫成果自評

本計畫執行至今,大致符合原先計畫所規劃之時程:目前已初步完全一無元素法分析程式 的架構,並可利用此架構實現出多種不同的無元素法。而由於目前大部份市面上的後 處理軟體乃針對有限元素分析所製作,對於無元素法之分析程式則由於缺失元素的資 訊,而往往並不適用,也因此本研究自行開發了一個後處理程式以便利分析結果之呈 現與了解。而預期將於今年底前將目前之研究成果投稿至 Advances in Engineering Software或 Computers & Structures 等國際期刊。

(19)

行政院國家科學委員會補助國內專家學者出席國際學術會議報告

98 年 10 月 29 日 報告人姓名

謝佑明 服務機構

及職稱 國立台灣科技大學營建工程系 助理教授

時間 會議 地點

98 年 6 月 24 日-27 日 美國德州大學奧斯汀分校

本會核定 補助文號

97-2221-E-011-102-

會議 名稱

(中文)第 26 屆營建工程之自動化與機器人技術國際研討會

(英文) 26th International Symposium on Automation and Robotics in Construction (ISARC)

發表 論文 題目

(中文)

1. 一個空間內插之物件導向程式架構

2. 有限元素參數研究之平行計算之高效能分析方法 (英文)

1. An object-oriented framework for spatial interpolation 2. An Efficient Scheme for Parallel Parametric-Study in Finite Element Analyses

(20)

報告內容應包括下列各項:

一、參加會議經過

本次會議由美國德州大學奧斯汀分校辦理,自 98 年 6 月 24 日起至 6 月 27 日止,

共計四天。此研討會的主題圍繞在營建工程之 1)管理、2)資訊與計算技術、3) 機 器人技術、4) 自動化與機器人之應用、5) 自動化資料擷取與監測等主題上,為此 類主題中最重要的國際研討會之一。

此會議雖名為 24 – 27 日,但 24 日僅安排了一社交導向之晚餐,實質研討會 則為 25-27 日中午止。雖然實質僅兩天半的研討會,此研討會內容十分的豐富,可 由其議程安排可約略看出:每天的議程從早上 8:00 的 plenary 演講開,爾後一直 到下午約 3:30,同時間有四到五個場次在進行。從場次之多可知全世界來參與此次 會議的人數必然不在少數,且在前述之研討會主題下,可看到世界各國所進行之研 究。

而本人每天早上開始參與議程,直至下午 3:30,主要參與相關於感測技術、資 訊與計算技術等議程,並於其中兩場演講介紹一些個人在台灣科技大學帶領學生所 作的一些成果,並於其中一場擔任主持人。而在這些過程當中,印象比較深刻的兩 個研究包括了 1) RFID 應用於營建工地之機具材料定位,其中結合了 RFID 之感應 技術與人工智慧技術以提高其準確度,並應用於營建管理上以降低實質的工程成本 以及 2) 配合感測器技術以及分析技術以決定感測器與結構物上之最佳放置位置,

以形成結構健康度監測系統。

而本人所主持的議程,大部份為博士班研究生的報告,包括了 A) 智慧型百葉,

透過實際數據的量測,可知百葉分為三個部份分別控制、可達到 1) 使用自然光提 供室內照明使用,以降低照明用電以及 2) 阻隔幅射熱以降低室內之空調用電。B) 透過人工智慧技術 (genetic programming) 預測海洋波浪高度,而其提出之應用 為用來找出海域內何處較適合放置發電用之浮標。C) 利用地理資訊系統進行道路 工程之管理研究,以決定在需要進行道路維修時,最佳的施工區域劃分方法。

而在參與會議過程當中,遇到很多台灣來的與會者,可見台灣於營建工程之自 動化與機器人技術相當的積極。

二、與會心得

透過本次會議的參與,可知道國際上營建工程自動化與機器人技術方面,各國 學者不斷引入使用不同的感測技術(RFID、雷射掃瞄、影像辨識、…),並積極使用 不同的資訊科技技術 (人工智慧、資料庫、地理資訊系統、網路通訊、無線通訊、…) 以改善營建工程的流程、生產力、成本、 …。

三、攜回資料名稱及內容

研討會論文集:Proceedings of the 26th annual international symposium on automation and robotics in construction. edited by Carlos H. Caldas, William J. O’Brien, Seokho Chi, Jie Gong, and Xiaowei Luo.

數據

圖 2  weak-form 無元素法分析線彈  性問題之通用流程  圖 3  weak-form 無元素法組合示意圖  4.2 weak-form 無元素法程式架構  根據本研究 4.1 節所整理出之需求,考量其互動關係,本研究使用物件導向程式語言 及設計模式,設計出此初步之 weak-form 無元素法通用軟體架構,並完成實做,其為一可 行之軟體架構。如圖 4 所示,為整體之程式介面架構類別圖,圖中除了 Client class 及 Domain  class 外,其餘每個方塊皆為其介面類別,分別需各自
圖 4  weak-form 無元素分析法之整體架構介面類別圖  圖 5  計算近似函數(Approximation function)之類別架構圖  圖 6  控制方程式(Governing equation)之類別架構圖  圖 7  後處理視覺化呈現之程式架構圖 111

參考文獻

相關文件

Good Data Structure Needs Proper Accessing Algorithms: get, insert. rule of thumb for speed: often-get

Li, “Concurrent engineering: a strategy for procuring construction projects,” International Journal of Project Management, Vol. Towill and D.R., “Time compression and supply chain

In order to investigate the bone conduction phenomena of hearing, the finite element model of mastoid, temporal bone and skull of the patient is created.. The 3D geometric model

Lange, “An Object-Oriented Design Method for Hypermedia Information Systems”, Proceedings of the Twenty-seventh annual Hawaii International Conference on System Sciences, 1994,

Wada H., Koike T., Kobayashi T., “Three-dimensional finite-element method (FEM) analysis of the human middle ear,” In: Hüttenbrink KB (ed) Middle ear mechanics in research

Peric: Finite volume method for prediction of fluid flow in arbitrarily shaped domains with moving boundaries, International Journal for Numerical Methods in Fluid, Vol.

Kuznetsov, “The onset of bioconvection in a suspension of gyrotactic microorganisms in a fluid layer of finite depth heated from below,” International Communications in Heat and

Wells, “Using a Maze Case Study to Teach Object-Oriented Programming and Design Patterns,” Proceedings of the sixth conference on Australasian computing education, pp. Line, “Age