天天看點

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

你知道如何從指令行運作同一個模型檔案的多種工況并自動導出資料嗎?我們隻需要在 COMSOL Multiphysics® 軟體的使用者界面(UI)中進行少量準備工作,就可以使用方法來擴充模型檔案,在方法中通過指令行自動實作許多模型的設定和計算。下面,我們來看看如何操作……

從模型寫出資料

以在 COMSOL® 軟體介紹中使用的模型——母線闆教程模型 為例來示範如何操作這一工作流程。該模型具有多個需要研究的參數化輸入以及需要得到的輸出。

首先,将模型中的一些資料寫入硬碟。我們的模型已經建立了多個繪圖,包括其中的一個溫度場。右鍵單擊此特征,然後選擇 添加要導出的圖像 選項,将獲得結果 > 導出 > 圖像 特征,其設定如下面的螢幕截圖所示。在這些設定中,鍵入輸出檔案名。請注意,我們還可以根據需要調整圖像 和布局 設定。我們可以添加一些類似的特征,并導出其他類型的資料,包括動畫、網格資訊等。如果要一次性寫出所有這些資料,請右鍵單擊導出 分支,然後選擇全部導出 選項。

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

螢幕截圖顯示了結果中的導出分支,此處用于導出圖像檔案。

我們還可以提取一些标量值。在結果 分支下添加計算組 特征,并添加任意數量的派生标量值。例如,對所有域中的損耗進行 積分 并計算最高溫度。在 計算組 設定中,還可以指定檔案名,如下所示。

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

該螢幕截圖顯示了 計算組,将資料組合并寫到檔案中。

最後,結合計算組 和導出 特征,我們可以從模型中寫出任意數量的資料。現在,讓我們看看如何進一步實作自動化操作。

通過模型方法自動操作

我們需要 Microsoft® Windows™ 作業系統來使用模型方法,因為我們将使用App開發器 功能。單擊功能區中的 App 開發器 按鈕,或使用鍵盤快捷鍵 Control + Shift + A,将進入下圖所示的界面。此處我們需要做的是在方法 分支中添加一個新方法,并為其命名,例如,my_method,但是先不添加任何内容。通過左上方的按鈕或鍵盤快捷鍵 Control + Shift + M 傳回到模型開發器。

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

建立了一個方法的 App 開發器螢幕截圖。

回到模型開發器,添加方法調用。右鍵單擊全局定義,然後轉到方法調用 子菜單,我們将在其中看到我們剛剛建立的方法。添加并確定更改标記 字段。通常,我們可以使用與App開發器中相同的名稱。我們可以在下面的螢幕截圖中看到方法調用 特征具有三個按鈕:

運作

停止

編輯方法

編輯方法 按鈕是一個快捷方式,可以便于切換到 App 開發器,一旦我們需要在方法中添加代碼時就可使用此功能。

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

在模型開發器中添加方法的調用,使我們能夠運作和編輯該方法。

如果對程式設計不是很熟悉,那麼我們可以執行以下操作:方法包含代碼片段,其中每行代碼包含在模型上的某種修改或操作。有 2 種方法可以從模型開發器中提取這些代碼片段。

第 1 種方法是轉到開發工具 頁籤,然後單擊錄制方法。接着,我們可以在模型開發器中執行一系列完整的操作,直到單擊停止錄制 按鈕。相關代碼将儲存到新方法中。

在第 2 種方法中,右鍵單擊模型樹中的特征,并且(在大多數情況下)我們将看到作為代碼複制到剪貼闆 子菜單。在模型的研究 分支上進行嘗試,其中一個選項是運作。選擇此選項可将用于運作的代碼片段複制到剪貼闆。轉到方法編輯器并粘貼(Control + V)以檢視代碼:

model.study(“ std1”).run();

第 2 種方法比較簡單,是以我們在這篇部落格文章中使用了此方法。

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

複制用于運作模型樹的特定節點的代碼。

我們可以添加更多代碼來自動執行資料提取。我們已經設定了将資料寫到硬碟的功能,現在隻需要在我們的方法中包括這些功能的運作即可。右鍵單擊導出 特征,然後在運作指令中再次使用作為代碼複制到剪貼闆,如上所示。将其粘貼到我們的方法中,然後對計算組 重複此操作。完整的方法應如下所示:

model.study(“ std1”).run();

model.result().export().run();

model.result().evaluationGroup(“ eg1”).run();

由于我們正在通過方法寫入硬碟,是以我們可能還需要更改一些預設的安全首選項。進入檔案菜單 > 首選項 > 安全性,并允許通路所有檔案的檔案系統。此設定顯示在下面的螢幕截圖中。否則,我們将隻能寫入臨時 和 App 檔案 位置,此部分通過檔案菜單 > 首選項 > 檔案進行指定。

linux comsol指令,如何從指令行運作 COMSOL Multiphysics®

如果需要,修改安全性首選項以允許方法寫入檔案。

現在,當我們運作此方法時,将重新求解整個模型,并将新的資料和圖像檔案寫出到硬碟。最後一步是從指令行完成所有操作,完全不使用使用者界面。

從指令行運作

儲存此修改後的檔案,将其命名為 my_file.mph,然後退出 COMSOL Multiphysics 使用者界面。打開 Windows 指令提示符,然後導航到包含模型檔案的目錄。確定将 COMSOL® 可執行檔案的路徑添加到 PATH 環境變量中,然後輸入以下指令:

comsolbatch -inputfile my_file.mph -pname tbb,Vtot -plist“ 1 [cm]”,“ 10 [mV]”-methodcall my_method -nosave

此指令将打開模型,并通過 -pname 和 -plist 變元的組合使用修改模型中的兩個全局參數。目前情況下,參數 tbb 會更改母線闆的厚度,Vtot 為所施加的電壓。

我們自定義的方法将被調用(通過 -methodcall 變元),實作運作模型并寫出資料。附加的可選變元 -nosave 表示不儲存模型檔案。有關此處所使用的和所有其他可選變元的完整詳細資訊,請參見《COMSOL Multiphysics 參考手冊》中的 COMSOL 指令部分。

現在,修改模型和寫出資料的整個過程都已經簡化為一個指令了。

我們還能做什麼?

當然,我們在這裡所做的隻是一個非常簡單的示例,以示範運作模型和寫出資料的自動化過程。其實我們還可以做很多工作。基本上我們可以将所需的任何代碼放入模型方法中。例如,可以放入以下代碼:

另外,值得一提的是,我們還可以使用另一種工作流程實作許多相同的資料提取,即通過作業序列功能 (此功能不需要使用方法)。

最後,需要說明的是,我們可以同時并行運作多個不同的批處理作業,當我們擁有一台配置大記憶體和核心的計算機時,這種方法尤其有效。

Microsoft 和 Windows 是 Microsoft Corporation 在美國和/或其他國家的注冊商标或商标。