如何有效減小模型文件的大小?

COMSOL Multiphysics? 模擬的輸出結果中往往包含一個或多個物理量。根據物理量的數量、幾何的複雜性和得到足夠精度結果所需的網格密度,模擬可能包含數百萬個自由度(degree of freedom,簡稱 DOF)。通常情況下,只需儲存一個或幾個標量,或小型幾何零件的結果便足夠了。在這篇博客文章中,我們將探討可用於存儲選定輸出量,以及減小模型文件大小和縮短顯示數據所需時間的工具。

存儲重要模擬結果的兩種方法

在 COMSOL Multiphysics 中,您可以通過兩種方法使模擬輸出中僅包含選定部分的解。第一種方法是定義一個或多個選擇,並在選擇中添加目標點、邊界或域,這樣便可以控制研究輸出,使其僅包含這些選擇所指定幾何部分的物理場。如果您只想獲取特定幾何部分的模擬輸出,同時能像往常一樣對其進行後處理並訪問場和導出量,這種方法將會十分簡明實用。

請注意,如果您要存儲某些邊界或點上的解,該方法只能保存求解物理量(因變數)的結果。這便意味著因變數導數以及與導數相關的物理量(例如應力和通量)均無法獲得,因為計算這類變數需要用到域內的因變數結果。如果您希望存儲一些派生結果(例如數個相關的邊界或點上的應力),那麼第二種方法是您的最佳選擇。

第二種方法是添加常微分和微分代數方程 介面,從而定義一個新的因變數,然後將目標物理量轉換為這個新變數。這個物理量可以是一個全局標量,例如某個量的最大值或平均值,或者某個邊界上的物理量。(對於後一種情況,上文的選擇法能夠更方便地獲取相同的結果。)也就是說,若您的目標輸出是一個全局標量值,並已經將它轉換成簡單代數方程變數所表示單個自由度,那麼該方法十分適用。如上所述,如果您希望獲取的物理量是一個基於導數的派生結果(例如應力和通量),第二種方法也將適用。

創建選擇以存儲選定部分的解

為了只對選定幾何部分的解進行儲存,我們需要在模型樹中「組件」下創建一個命名選擇。具體步驟是:首先右鍵單擊定義,並從選擇 子菜單中挑選一個合適的選擇。若您希望在選擇中加入多個特定的幾何實體(例如域、邊界或點),那麼顯式 選擇必然最為方便。隨後為選擇節點添加一個描述性標籤,例如周圍空氣襯底接觸。您可以使用多個選擇節點來表示不同的幾何部分,並將它們組合在一起,這樣您就可以用於確定輸出的存儲對象,或者對這些選擇節點進行布爾操作(例如並集交集)來創建另一個選擇節點。最後,將所創建的選擇應用到研究步驟的設置中,最終確定存儲特定幾何部分的解。

應用案例:用於存儲機械設計中頂面變形的選擇

在固體力學模擬中,目標面或點上的變形(位移)值很可能是有價值的信息,因此只需存儲它們的模擬輸出就足夠了,例如下方「圖形」窗口中進料器夾鉗模型幾何的選定頂面。

固體力學模擬模型的選定表面。

為了僅存儲這些表面(邊界)的解,我們要創建一個顯式 選擇,並將選擇中的輸入實體設為幾何的四個頂面,也就是計劃存儲的解所對應的幾何結構。如果需要存儲的面或點並非所創建的幾何結構的一部分,您可以在幾何序列中額外添加曲線 節點以分割邊界,或者在目標位置上添加一個點(和一個網格節點)。顯式 選擇節點的設置如下圖所示。

顯式選擇節點的設置。

在這裡,為了反映選擇中包含的對象,將標籤更改為變形面。

現在可以指定需要存儲的對象。在研究 步驟節點的設置窗口中找到因變數值 一欄,並對其進行擴展。這一欄包括在輸出中存儲物理場 設置,您可以從它的下拉菜單中選定用於選擇,然後單擊添加 按鈕,便打開了可用選擇的列表。在本案例中,我們選中變形面 這一選擇,然後單擊確定

用於存儲選定幾何面變形的設置。

現在,您便可以運行模擬了。此時僅會輸出頂面的解,您可以用表面 繪圖的形式來查看輸出結果。

選定的幾何面在 y 軸方向上的位移。剩餘幾何結構沒有解輸出。

對於點上的解,您可以利用派生值 下的點計算 節點對其輸出進行後處理、顯示總位移,以及執行其他操作。您還可以使用一維繪圖組 下的點圖 節點繪製點上位移隨時間變化的曲線,或者隨參數化掃描中的參數變化的曲線。

創建存儲在輸出中的目標變數

如果您感興趣的是一個標量,便只需要一個表示輸出中該物理量的單個自由度(變數)。您可以通過全局常微分和微分代數方程 介面來定義全局方程,隨之創建作為簡單代數方程求解量的變數。這個介面以及類似定義域內或點上的常微分和微分代數方程的介面,都位於添加物理場 窗口和「模型嚮導」中的數學 >常微分和微分代數方程介面 下。最後,在全局方程 節點的設置窗口中定義希望模擬輸出的變數名和代數方程。

除此之外,標量耦合運算元同樣也是 COMSOL Multiphysics 中用於實現這一目標的重要特徵。藉助這些極其強大的工具,您可以在模型中創建全局可用的標量。

應用案例:表示平均溫度的變數

假設您的研究重點是模型幾何中的平均溫度。為了獲取平均溫度值,您可以添加一個平均值耦合運算元(例如 aveop1),並對其進行設置,使之在整個幾何結構(所有域)或目標域內有效。隨後,您可以將該運算元應用到全局代數方程中,並保證它作為標量存儲在模擬結果中。假如您想要存儲的是最高溫度,那麼可以使用最大值耦合運算元

全局常微分和微分代數方程 介面可用於求解

f(u,u_{t} ,u_{tt},t)=0

不過在這個案例中,我們只需要將方程的變數值設置為等於平均溫度值。因此,若您已經將代數方程的變數定義為 avtemp,便只需輸入 aveop1(T)-avtemp 即可。請記住,全局常微分和微分代數方程 介面表示表達式等於零,因此求解的方程為 avtemp = aveop1(T)。在這裡,T 表示幾何結構中的溫度場,我們要對該變數進行求解,但並不需要將它存儲在輸出中。下方屏幕截圖顯示了本案例中全局常微分和微分代數方程 介面下全局方程 節點的設置窗口。

全局方程節點設置用於創建一個存儲在輸出中的變數

請注意上圖中設置窗口內的單位 欄。為了避免單位不統一,並保證求解變數的單位正確無誤,您應當對因變數和源項的單位分別進行設置。

最後一步是對模擬進行設置,使其僅存儲剛剛定義的新標量變數。下圖顯示了瞬態模擬中幾何結構的平均溫度變化曲線,此圖表是通過一維繪圖組全局 繪圖得到的。

平均溫度隨時間變化的曲線,我們將其作為瞬態模擬中唯一的標量輸出進行計算。

控制輸出中的存儲對象

對於要執行的研究,首先右鍵單擊研究 節點並選擇顯示默認求解器,以便能順利地訪問求解器配置。然後,通過單擊求解器配置 > 解 > 因變數 來訪問因變數設置。對於上文的案例,您會看到兩個節點:物理場 節點(溫度)和狀態 節點(平均溫度)。物理場 節點表示幾何結構的整個溫度場,而狀態 節點表示平均溫度的變數。

接著,單擊溫度 節點以顯示其設置窗口。查看通用 欄的底部,並清除在輸出中存儲 複選框,這樣求解器便不會將溫度場存儲在輸出中。

溫度節點設置中清除 輸出中存儲複選框

完成求解後,您可以通過全局計算 節點將需要查看標量變數結果顯示在圖表中,同時還可以繪製全局 圖表,以顯示位移隨時間變化的曲線或平均溫度隨參數化解參數變化的曲線。因為沒有場變數的解,所以只要繪製顯示了這類變數,或者是使用這類變數的物理量,繪圖中的值都會顯示為零。

應用案例:頂面有效應力的代數方程

現在讓我們以進料器夾鉗模型為例,向您演示如何使用代數方程來存儲頂面上的有效應力(von Mises 應力)值。進行這一操作前,首先需添加邊界常微分和微分代數方程 介面,此介面位於添加物理場 窗口和「模型嚮導」中的數學 > 常微分和微分代數方程介面 下。

接著,在邊界常微分和微分代數方程 介面的設置窗口中將相同的位移邊界 選擇應用於頂面。然後務必確保指定單位與應力量相匹配,完成此操作需要選擇應力張量 作為因變數物理量和源項物理量的單位。實際上,它是固體力學 介面的 von Mises 應力。

用於創建機械應力的 邊界常微分和微分代數方程介面設置

然後在分散式常微分方程 子節點中將代數方程的表達式定義為 bndstress-nojac(solid.mises),並使新因變數 bndstress(僅定義在頂面)的值等於固體力學 介面的 von Mises 應力 (預定義的solid.mises 變數)。

此處需要使用 nojac() 運算元,這是因為我們不希望該方程對整個模型的 Jacobian 矩陣(系統矩陣)有任何貢獻。在分散式常微分方程 子節點設定區的源項中輸入該表達式,並將所有其他係數設置為零,以求解方程 0 = bndstress-nojac(solid.mises)(即 bndstress = nojac(solid.mises))。

分散式常微分代數方程節點的設置,該設置用於定義邊界應力的代數方程。

在進行求解之前,一定要記得清除輸出中存儲 複選框,該複選框位於求解器序列中因變數 下的位移場 節點內。隨後即可執行計算,並只存儲頂面上的應力值,同時可使用表面 繪圖對結果進行繪製。

繪圖顯示了 von Mises 應力,其中只有頂面的應力值存儲在輸出中。

藉助存儲解技術優化模擬

正如我們今天演示的,只需簡單的幾步操作,便能在模擬中只對部分物理場、甚至是一個或多個感興趣的目標標量進行求解,從而將這些指定對象存儲在輸出中。這些建模技術不僅可以大幅度壓縮模型文件的大小,還能縮短計算和顯示目標標量的時間。如果模擬中包含大型參數化掃描,或者需執行詳細的長時間瞬態研究時,這一技術帶來的優勢便更加明顯。

如您希望了解 COMSOL Multiphysics 中更多用於優化模擬工作流程的工具,請瀏覽「COMSOL 博客」中的核心功能分類下的博客文章。如果您對本文演示的建模技術有任何疑問,請隨時聯繫我們。

經授權轉載自 cn.comsol.com/blogs/,原作者 Magnus Ringh。

推薦閱讀:

初學者如何學好數控編程呢?
使用midas civil未知荷載係數功能求斜拉橋初索力係數 ?
【Comp-Neuro小黑屋】關於幾個單神經元模型(下)
如何建立起自己的3Dmax建模思維?

TAG:COMSOLMultiphysics | 模擬 | 建模 |