• Description
錯誤訊息
Q1:
如何模擬高度非線性問題,並避免分析時的不收斂?
 
A:

解決方式

以下五種方法可以解決的非線性方程式的不收斂問題:

(建議一) 使用 general solution form 或是 weak solution form,來提供 exact Jacobians處理非線性偏微分方程式。此外,當使用到耦合變數時,必須使用 weak solution form 來得到準確的 Jacobian

(建議二) 提供最有可能的初始值。

(建議三) 確保邊界條件是一致的 (consistent)

(建議四) 將穩態非線性問題切換成暫態問題並試著去求解。這種方式一般會產生較平滑的收斂,確保求解問題的時間需夠長足以達到穩態。

(建議五) 使用參數解,以及變化與非線性行為很大關係的材料係數,因此可以一連串的微調方程式的非線性程度。

Q2:
在暫態問題中,如何避免求解中的不收斂,或是解的不準確?
 
A:

解決方式

對於暫態問題,容忍值(tolerance)的大小會影響求解值的誤差和收斂性。

1.對於結構問題,常常遇到求解時的位移量非常小,因此需要設定絕對容忍值(absolute tolerance)小於位移量約一個因次。

使用方法

開啟Solver,當選擇為Time dependent Solver時,在Absolute tolerance欄位中設定

 

2.對於熱應力問題,位移量大小可能為1e-6,然而溫度場的變化可能只有1e-2K,所以可以使用到相對容忍值 (relative tolerance),將其設定u(位移變數)1e-6 T(溫度變數)0.01

範例

開啟Solver,當選擇為Time dependent Solver時,在Absolute tolerance欄位中設定 u 1e-6 T 0.01

Q3:
在化工問題中,如何避免反應速率過高的不收斂?
 
A:

解決方式

具有高反應速率項(R)的問題,或大的來源項(source),會導致收斂上的問題,錯誤訊息如"No convergence, even when using the minimum damping factor""NaN repeatedly found in solution",一般處理方式為:

由調低來源項開始求解,並使用參數解,逐步增加回來

1.乘上反應項一個係數"k"

2.開啟Solver Parameters,使用參數解,並指定k為參數名稱

3.列出參數值範圍,例如1e-3 1e-2 1e-1 1,逐步調回1

Q4:
求解時發生的奇異點矩陣問題?(錯誤訊息是”Singular Matrix”)
 
A:
解決方式:

這個問題是因為線性系統的勁度矩陣是有奇異點,求解器無法轉置,處理的方案如下:

問題(方程式系統與邊界條件)是過度或是不足定義,請檢查邊界條件和初始條件有定義過相依變數表示式為解變數的空間微分,因為初始猜值對非線性系統是常數,導致方程式變為奇異,處理方式是指定初始條件為非零微分,例如1e-6*sqrt(x^2+y^2+z^2),或是得到錯誤訊息後,點選重新求解(Restart)的選項,也可以解決。

Q5:
求解時記憶體不足,或如何增加記憶體的使用量?(錯誤訊息是”Out of memory”)
 
A:

解決方式

COMSOL Multiphysics® 4版使用更有效益的方式來運用記憶體,所以針對比較複雜的Model(特別是3D Model),使其能夠更快、更順利的完成計算,減少Out of memory 錯誤訊息的發生可能!當然模型越複雜,多少還是有機會遇到記憶體不足的錯誤訊息產生,以下幾個方向,從軟體與硬體方面來提供改善的方案:

軟體設定更具記憶體效益的模型處理~

考慮更具記憶體效應的模型處理,有下列的考慮因素:

l   幾何網格(geometry mesh)的節點數(node

l   形狀函數,根據冪次不同(e.g. Linear Lagrange elements2 order Lagrange elements,etc)與幾何網格組合成計算網格(extended mesh

l   獨立變數(x y z r等等)與求解因變數數量

l   系統矩陣的稀疏性;此外耦合變數的使用也會增加矩陣稀疏性

 

選擇適當的求解器

l   COMSOL Multiphysics® 4版會自動偵測系統的對稱性,對於對稱系統可快速提供正確的求解器選擇

l   直接求解器使用高斯消去法求解線性系統,在1D2D問題上快於迭代求解器。但處理大型問題時,消去法過程需要大量記憶體資源與長時間計算,會影響部分3D問題,因此3D問題的預設是迭代求解,優勢是比直接求解器使用更少的記憶體,通常也比較快,最佳的調整需要搭配適當的預處理器(preconditioner)設定

 

總結

l   幾何模型對稱:可由3D模型調降為2D、軸對稱或1D

l   執行求解管理器(Solver Manager):對於單向耦合場問題,可使用Solver Manager,分序執行計算

l   網格設定:使用free mesh parameterassembly調整非重要區的網格密度

l   求解器設定:使用迭代求解器搭配GMGVanka參數

l   形狀函數:使用線性或低階形狀函數

 

硬體設定~

32位元電腦

一般32位元電腦最大只能運用1.5 G左右的記憶體(實體+虛擬記憶體),對於Windows XP Pro Windows 2003 server版,可以取用至3GB的虛擬記憶體,方法是需要修改開機系統,檔案為 boot.ini,需注意這個檔案是隱藏檔,所以解隱藏後,使用一般文字編輯軟體去修改,修改內容如下:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(2)\WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB

 

64位元電腦

搭配64位元CPU與作業系統,記憶體上限的限制將不存在,因此8G16G,甚至64G以上的記憶體運用都是可能的

 

執行Client-Server模式

在一台或兩台電腦藉由執行程序的不同,來配置不同處理程序時的記憶體使用量,最終提高計算時的記憶體使用量。COMSOL®  Client處理GUICOMSOL Server™處理求解程序。(註:同台電腦也可模擬此兩個程序;兩台電腦執行不同程序則需要使用floating license

 

調整Java heap size參數

設定方式說明:至資料夾COMSOL / lib / win32,開啟檔案comsol.opts,將其中一行的參數 MAXHEAP=256m256MB128MB或更低

COMSOL Multiphysics ®4版平行化運算~

COMSOL Multiphysics® 4版的求解器,支援多微處理器平行運算支援平行化矩陣組合、3D 網格、迭代求解等等不同程序

求解器:隔離求解器 (Segregated Solver)

簡介

利用隔離求解器提供的分群組計算矩陣的功能,可以將整個問題包含多個因變數的矩陣,隔離為單一或多個群組的獨立求解程序(子步求解,Substeps),透過阻尼牛頓法(damped Newton)來進行不同群組的迭代與收斂機制

 

優點

較易獲得多重物理耦合模型的初始猜值

大幅降低大型、耦合問題,如流固、波傳熱固問題的記憶體消耗

Q6:
當模擬不同結構的網格類型結合,需使用到一致性條件 (identity condition) 來設定關聯,為何會出現錯誤?(錯誤訊息是” identity coupling”)
 
A:

解決方式

當使用一致性條件來耦合不同網格結構時,先決要件是從較疏的網格結構耦合到較密的網格結構。因此要先選擇較疏網格的幾何視窗,再開啟一致性條件的編輯視窗來設定一致性耦合條件。

Q7:
COMSOL®求解時出現警告訊息:Inverted mesh element near coordinates
 
A:

解決方式

使用ALE移動網格或參數幾何模式時,因為幾何移動使網格形狀變形過大,影響求解精確或導致無法收斂。可嘗試不同的網格方法,產生較均勻分佈的網格。若仍無法解決,可進行下列設定:

1.ALE模式將物理量/屬性,更改平滑方法為Winslow

2.參考COMSOL Multiphysics/ Modeling GuideThe Moving Mesh Application Mode節次,使用ALE Remeshing功能。

3.若使用參數求解器,選擇求解器參數/參數的/預測器,由線性改為常數。

4.若使用暫態求解,嘗試降低求解器參數/通用/相對公差與絕對公差,進行更精確的求解。

繪製幾何輔助線,以控制網格變形情況。

Q8:
COMSOL®模擬結構接觸問題,求解時出現未收斂的錯誤訊息
 
A:

解決方式

模擬前應先考慮模型特性:

1. 可否簡化為二維或軸對稱模型。除了建模分析較快,可作為模擬真正案例前的檢測,例如軸對稱邊界,並提供額外的拘束條件,使圓柱體保持在中軸移動而不會傾斜。

2. 考慮受力平衡情況,例如 物體移動至接觸未發生前的過程,適合給定位移量的模擬。若指定外力,適合由接觸時開始模擬。

模擬時若發生未收斂訊息,可檢查下列設定:

1. 若物體變形較大,需開啟物理量/屬性/大變形。對於變形較小時,此選項沒有影響。可分別開啟或關閉此選項並求解,若結果有差異,則應該開啟。

2. 設定接觸邊界為MasterSlave邊界,後者為接觸時產生凹陷的一方,並需要至少前者2倍的網格致密程度,詳細可參照結構手冊137頁的接觸建模分析。

3. 設定接觸邊界後,可於邊界條件/對偶頁面,設定接觸法線懲罰因子Pn。此預設值適合線性等向問題,提高此值可增加收斂度,例如改為E_smaxi/hmin_cp1_smaxi*min(10*5^auglagiter,100)。詳細可先參考結構手冊138

4. 若了解模擬結果的位移量uv,接觸壓力Tn_cp的大致量級,則對求解有幫助。於求解器參數/進階,設定比例類型為手動,輸入手動比例調整,例如:u 1e-5 v 1e-5 Tn_cp1_smps 1e9。此做為求解猜測與協助收斂,不需相當精準。數值也影響誤差範圍與收斂速度。可觀察求解趨勢,是否與比例調整輸入的數值差異過大,再做適當修改。

5. 若變形區域較小,為了增加解析,可加密此區域的網格。

6. 若材質形變較大,可能需考慮Polymide等可壓縮性質,例如更改為超彈性材料,可參考結構案例Rail Steel

Q9:
在COMSOL®定義方程式表示式與方程式名稱f,但無法使用fx得到f對x的微分結果?
 
A:

解決方式

對於COMSOL®模組的預設因變數,例如電壓V、溫度T,軟體可直接輸入Tx。若使用者自行定義額外變數,則需由運算子計算,例如d(f,x)得到微分結果。

Q10:
在兩相流-氣泡流 (Bubble flow) 問題中,如何避免求解中的不收斂,或是解的不準確?
 
A:

解決方式

一般解決改善方法有兩個步驟,如下:
第一步驟:
1. 
局部加密液體和氣體入口的網格
2. 
先求解所有變數,除了rhoeff,也就是先跑流場,其中分離求解器使用PARDISO
 

第二步驟:
1. 
設定氣體入口通量為較少值 (1e-5),使用 Restart 求解所有變數
2. 
改為參數分離求解器,將入口通量改為參數,以 1e-5 參數逼近至原始值
 (0.01)

Q11:
當選擇兩相流模版來分析問題時,為何求解後沒有出現合理結果?
 
A:

解決方式

當使用Level Set Two Phase模版時,需要有兩階段的求解步驟。如下

1. 因預設的求解方式為Transient initialization,也就是當我們求解兩相流問題時,軟體會先做等位函數 (phi) 的初始化計算。
2. 計算完成後,才選擇Transient 分析,做暫態計算,這時候其他因變數u v p等才會求解,
所以求解此問題時,需要執行兩階段計算,第一階段為相位初始化,第二階段為耦合計算。

Q12:
求解穩態問題時出現”Maximum number of Newton iteration reached”.錯誤
 
A:

解決方式

開啟Solve > Solver parameter,於Stationary分頁,加大Maximum number of iterations數值。

Q13:
執行COMSOL®時,出現錯誤訊息“ System clock has been set back”
 
A:

解決方式

1. 檢查系統時間是否正確。
2. 確認硬碟內沒有日期超前檔案,例如正確日期為2008,檔案日期卻為2009,將此檔案刪除或以其他軟體更改為正確時間。
3. 重新啟動COMSOL®並進入主畫面

Q14:
如果遇到錯誤訊息顯示 “System matrix is zero”
 
A:
解決方式:

這問題大部分都是因為使用結構型網格(Mapped mesh)並且只在3D物件的表面產生網格並未在其內部實體產生網格,因此才會出現此種錯誤訊息的警示。