COMSOL®模擬問題解決-4

    Delivery time:5-7 days
  • Description

輸出動畫格式AVI出現錯誤訊息 ‘Failed to create animation’

解決方式: 建議可以將格式輸出為其他格式,GIF或是Flash,又或是可以試著改變輸出型態為 ‘image sequence’

使用熱傳模組模擬熱輻射現象,由於輻射現象為一放射性行為會隨著布置的radiation resolution 以及求解離散縱標法(discrete ordinate method)時所選取的階層(S2,S4,S6,S8)也都會影響整體計算效能

解決方式: 建議可以勾選下圖左下角 Use radiation group

邊界條件就會出現 radiation group這個選項,可以將確認輻射的來源與目的地的邊界設定為群組這樣可以加速運算,如下圖B比圖D計算上更快更省時。

COMSOL®內求解兩相流流場的分析方法為Level set method,此方法與volume of fluid(VOF)方法有什麼差別?

解決方式: 兩種方法主要的差別在於volume of fluid使用不連續的函數(例如0在液體相內,1則在另外一氣體相內),level set則是使用一平滑函數來近似。由於不連續的函數近似所以其在界面估算的精度上較為差,因為是計算平均曲率。所以相較之下使用level set方法則會獲得較為準確的數值結果。在原本的level set方法,是採用最接近界面處的函數近似但是此舉會造成質量上的不守恒且質量會損失因此在COMSOL Multiphysics®採用修改過的level set方法且能獲得更高階的精準度以及更穩定的質量守恆。可以參考內建範例 CFD Module>Multiphase tutorials>inkjet_nozzle_ls

諧波模式模擬求解電磁問題,如果想模擬出材料的損失與增加該如何設定?

解決方式:

上式中,Uc 為一複合的變數值ω 是角頻率t 是時間,  j 是虛部單位使用介電常數的虛部來表示材料的增減。對於準靜態電磁波可以定義為下列所示

Im(ε) < 0 表示材料損失

Im(ε) > 0 表示材料增加

在電磁波方面也可以定義損失與否由折射率來判定,由於折射率定義為相對介電常數的平方所以上述式子也可套用

Im(n) < 0 表示材料損失

Im(n) > 0 表示材料增加

注意的是也可以模擬分散性材質(dispersive material)藉由輸入介電常數或是折射率作為頻率的函數;或者是也可以藉由實際的介電常數值和非零的導電度模擬損耗。

使用移動性網格以及變形幾何的技巧

解決方式:

變形幾何網格(Deformed Mesh)可以透過設定成時間或是其他參數的函數,藉以設定變形量。在COMSOL®軟體內有兩種變形網格型態;一個是移動性網格(Moving Mesh)另一為變形幾何(Deformed Geometry)。

兩種不同型態的變形網格主要是差別在於變形幾何不會讓材質外型隨著改變但是移動性網格會隨著網格變形一起改變幾何。如下圖一為透過變形幾何所產生的方式,下圖二為使用移動性網格所產生的方式。
 

 

圖一:變形幾何(Deformed Geometry),m=m1+m2上圖二:移動性網格(Moving Mesh)

使用移動性網格最常出現就是因為隨著變形區域越來越小網格元素會產生變形錯亂或是將原本三角或是四邊形狀產生類似皺褶的情形都是因為網格已經產生嚴重變形會影響數值運算,因此以下幾點建議可以嘗試的方式以及一簡單範例提供其所使用的修改方式,以避免產生inverted mesh. 或者可以參考COMSOL®手冊 COMSOL Multiphysics® User's Guide > Meshing > Avoiding Inverted Mesh Elements.

 

可嘗試不同網格型態;例如 mapped mesh quad mesh

可嘗試不同的網格平滑模式(Mesh smoothing type)COMSOL®4.2版以上內建網格平滑模式有三種。Winslow模式是較為常使用且較為耗記憶體以及運算上和其他兩種相比較為緩慢;且因為測試的案例不同其實都可以嘗試;因為有時候Laplace模式的穩定度相較於Winslow會比較好一點。Hyperelastic模式則是較常使用在FSI(Fluid-structure interaction)問題上;尤其是變形物體為一具有超彈性物體。

如果求解的為一暫態求解可以嘗試將統御方程式求解更精確點可以避免產生不必要的離散計算誤差累計

也可以嘗試透過一些額外輔助的邊界條件設定在整體幾何的外部邊界上設定變形量、藉以輔助產生網格變形不至於產生錯誤的變形如下圖。下圖是有使用邊界設定變形量以及沒有使用的差別,可明顯看出網格在變形時不至於產生inverted mesh。可參考此範例檔案(Sliding_mesh_42.mph)

遇到‘ Singular Matrix’ 該如何解決?

解決方式:

此問題是由於線性勁度矩陣產生奇異點,以至於線性求解器不能求解。

檢查邊界條件是否都有設定,確認是否有遺漏。例如求解Navier-Stokes問題時看是否有必要增加約束點在邊界上

當在此非線性系統內的起始猜值給予為一常數定值時,也就是其導數為0將會導致方程式產生奇異點。要修正此項次必須定義一非零的導數例如1e-6*sqrt(x^2+y^2+z^2)

當求解非線性特徵值且有一為零的線性點,尤其是使用RF模組或是聲學模組時求解特徵頻率分析且使用PML或是材料有損失的數值模擬。要解決這問題可以嘗試在Study->Solver Configurations->Solver->Eigenvalue solver 視窗內定義一非零特徵線性點值。且如果具有第一次求解的答案,可使用在後處理中Result>Derived Values> Global Evaluation估算對自己有意義的lambda。並將此值做為新的特徵線性點值進而再度求解並且重覆此過程直到特徵值不再變化。通常不會花費太多次疊代即可找到答案。

如何避免產生負的濃度值?

解決方式:

產生濃度負值有很多種可能性的原因,大部分原因為數值上的擾動所產生之影響因此有幾個方式可以嘗試幫助修正

  • 如下圖在t=0時較常會出現負的濃度值,可設定一平滑步階暫態作為起始條件,可以參考Q5的範例檔案
  • 另外一可能性原因為邊界條件定義未完全,例如如果有包含反應項,即便是濃度已經剩下零但是反應項還是會持續動作也因此產生出負的現象;可透過max(eps^2,Q)幫助設定讓其判讀,eps是COMSOL®內一變數為一非常非常小的值但是不為零。
  • 另外一方式為提高在容易產生問題的位置將其網格密度增加,也會有效改善這負的濃度值,讓其更接近為零。
  • 可使用對數的方式定義濃度,由於線性變化的網格有時候會沒有辦法擷取指數型態的濃度變化行為,且使用對數定義則濃度不會出現負值,請參考檔案(catalytic_reactor_ignition.mph) &(catalytic_reactor_ignition.pdf)

在COMSOL®內如何求取時間積分?

解決方式:

主要是使用ODE and DAE功能:

a.   假設變數I是針對u作時間積分則可寫成下式:

 
則寫成ODE型式為
 

假設需要積分下圖藍色部分之質量流率

在此範例中積分分為兩個步驟:

a.       先針對空間做積分,求出流量;

b.      再針對時間做積分請參考範例(fluid_valve_time_int.mph)

在中文操作介面的後處理圖型無法顯示正常中文

在計算特徵頻率時,出現無法計算的問題?

解決方式:將內建的值從0改成f0,其中f0為尋找該頻率附近的特徵模態頻率

如何把同一個區域在不同網格或是不同物理計算的結果做相加或是相減的計算

下面的利用一個層流和紊流同時計算相同的區域和邊界條件並針對計算的結果

1.在右鍵按Data Sets後,選取加入,在數據1選取solution1、數據2選取solution2,結合中的方法選取精確。(此處solution1是層流計算的結果、solution2是紊流計算的結果)

2.新增一個2D繪圖群組,在資料集選取加入1,表示式輸入: data1(u)-data2(u2)

3.按下繪圖即顯示兩者計算後的速度相差結果圖

如何模擬受到剪力和扭力負載作用下的受力情形

作用情形如下圖


步驟1

Solid Mechanics>Rigid Connector>按下右鍵,選取Applied Force後,在Applied Force設定中,在z方向輸入1.94[KN]


步驟2

Solid Mechanics>Rigid Connector>按下右鍵,選取Applied Moment後,在Applied Moment設定中,在x方向輸入28.7[N*m]



步驟3

Solid Mechanics>Rigid Connector>Applied Force1>按下右鍵,選取Load Group>New Load Group,來新增一個剪力的群組

步驟4

Solid Mechanics>Rigid Connector>Applied Moment1>按下右鍵,選取Load Group>New Load Group,來新增一個力矩的群組





步驟5

經由步驟34後,點開Global Definitions後,會自動多出兩個Load Group




步驟6

Study1>step1:Stationary,展開Study Extensions後,勾選define load case,按下,新增Load Group,如下同圖有兩個case,有即表示在這個case要模擬

更細部操作可以參閱comsol®模型資料庫內的範例

Model Library path: Fatigue_Module/Stress_Based/shaft_with_fillet