【Python API】在相同求解器設定下執行場源自動化切換的模擬

【Python API】在相同求解器設定下執行場源自動化切換的模擬

在電磁模擬研究中,常常需要比較不同場源條件下的暴露結果。然而,在需要測試大量電磁暴露源的應用情境中(例如: 於 MR 梯度線圈中切換不同磁場分佈,以研究人體周邊神經刺激(PNS)的影響,或分析多種無線充電源環境下人體組織的電磁場暴露),若以手動方式逐一設定求解器並執行模擬,往往會耗費大量時間與人力。 

 

為了提升整體效率,Sim4Life 提供了內建的 Python API 與腳本編輯器,讓使用者能在維持相同求解器參數設定的前提下,自動化執行不同電磁源條件下的模擬流程,從而大幅加速研究進程,並確保分析結果的一致性。 

 

本教學將以人體手部在不同無線電力傳輸(WPT)場源暴露下的低頻磁準靜態(LF Magneto Quasi-Static, MQS)模擬為範例,說明如何透過 Python 自動化切換場源檔案的設定流程。

MQS 模擬場景

1. 首先,開啟 Sim4Life Jupyter Notebook 腳本視窗,導入 Python 相關模組與 Sim4Life python API

 

2. 設定模擬檔案文件夾路徑 

我們建立一個 SimulationProject 主文件夾,裡面增設 3 個子文件夾和 1 個 Sim4Life .smash 檔案   

  • Model 文件夾: 放置本模擬案例的模型檔(model.sab)[模型源自於教材範例: WPT Exposure Assessment with MAGPy Source]   
  • Sources 文件夾: 放置記錄不同磁場空間分佈的文字檔(.txt),檔案名稱依照數字編號排序(例如: B_field_1.txt, B_field_2.txt,…)   
  • BatchResults 文件夾: 放置每個模擬完成後的場數據檔(.cache)模擬日誌文字檔(batch_simulation_log.txt)

3. 定義執行模擬的 Python 函式 

 

(1) 建立初始化的 Sim4Life MQS 求解器模板函式與設定模擬參數: initialize_simulation_template(model, solver, database, frequency)

 

  • ž 定義版本、建立 MQS 求解器以及讀取個模型各物件名稱


  • ž Setup 與材料設置


ž

  • 場源設定(執行批次模擬將設置不同的源文件路徑)


 

  • ž場感測器設定

ž

  • 網格設定

 

  • 體素設定、更新參數與回傳結果

(2) 建立用於讀取場源文件的函式: get_source_files(source_folder: str)

 

(3) 建立可一次依序執行多個模擬的函式: run_batch_simulation(simulation, vector_potential_settings, source_files)

 

函式包含以下流程:

  • ž生成一個模擬日誌檔

 

 

  • ž紀錄模擬起始時間 ž   
  • 依序在求解器的 vector_potential_settings.UserDefFile 設定不同磁場源路徑並執行模擬 ž   
  • 提取模擬結果並導出成 .cache 檔案 ž   
  • 紀錄每次模擬執行時間並寫入模擬日誌檔

 

(4) 建立用於顯示在 Jupyter Notebook 的文字樣式: display_text(s)

 

3. 執行批量模擬 

 

模擬流程包含 

(1) 用 time() 紀錄腳本開始執行的時間和計算模擬結束後總花費的時間 

(2) 導入手部模型檔 model.sab 

(3) 使用 initialize_simulation_template() 初始化求解器設定 

(4) 將設定好參數的求解器新增至 Sim4Life 的 UI 畫面中 

(5) 使用 get_source_files() 讀取場源清單中的不同磁場源文件 

(6) 使用 run_batch_simulation() 依次更換不同磁場源進行模擬 

(7) 將模擬進度顯示在 Jupyter Notebook 的輸出格中

 



模擬完成後也可打開 BatchResults 文件夾中的 batch_simulation_log.txt 檔案,查看每個模擬是否成功被執行以及運行的時間

 


 

 

CONTACT US
如果您對我們的產品服務有興趣,歡迎直接與我們聯繫 !
產品介紹 最新消息 聯絡我們

依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。
按一下「全部接受」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。您可以在下方管理 Cookie 設定。 按一下「同意」即代表您同意採用目前的設定,更多資訊請瀏覽 隱私權聲明

此網站使用了Cookies

依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。按一下「同意」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。

按一下「僅必需的」,代表您只允許我們置放必要的 Cookie。網站運行離不開這些 Cookie 且您不能在系統中將其關閉。通常僅根據您所做出的操作(即服務請求)來設置這些 Cookie,如設置隱私偏好、登錄或填充表格。您可以將您的瀏覽器設置為阻止或向您提示這些 Cookie,但可能會導致某些網站功能無法工作。

關於Cookie 谷歌隱私權政策