Website Design Copyright 2026 © 耀登科技股份有限公司
All Rights Reserved. 網頁設計 by 覺醒設計
在工程與生醫模擬中,體積網格(Volume Mesh)是連接幾何模型與數值求解的重要基礎,其解析度、元素品質與區域連通性會直接影響計算穩定性、結果精度及所需資源。當模型同時包含尺度差異顯著的解剖組織,以及具有尖角、薄層或細小結構的工程元件時,單一建網格方法往往難以兼顧幾何保真、生成穩健性與計算成本。為處理這類問題,可利用八叉樹網格化器(Octree Mesher)建立複雜解剖區域的自適應網格,再以多面幾何網格化器(Faceted Geometry Mesher)保留電極或線圈等裝置的尖銳特徵,最後將兩者整合為連續的多域體積網格(Multidomain Volumetric Mesh)。
本文以腦電圖(EEG)電極模型貼附頭部為例,說明兩種網格方法的基本原理、適用條件、參數設定與混合應用流程,並介紹邊界建立及網格品質驗證方法,協助使用者建立從幾何分析到網格評估的完整觀念。
內容概要:
1. 多域體積網格劃分方法
多域體積網格(Multidomain Volumetric Mesh)是由多個材料區域組成的三維非結構網格。每個區域由四面體元素離散,區域之間則以共享介面連接。建立這類網格時,需要先確認三項條件: 幾何表面是否封閉且可靠、尖銳特徵與連通關係是否必須精確保留,以及可接受的元素數量與計算成本。
工程 CAD 模型通常具有規則的 NURBS 邊界與明確尖角; 解剖模型則可能包含自交、表面噪聲、極薄結構,以及尺寸差異很大的器官。Sim4Life 的多域網格提供 Faceted Geometry 與 Octree Based 兩種不同的網格劃分方法。前者從邊、面到體積逐層建立網格; 後者以自適應八叉樹離散空間,依幾何與指定解析度細分,再生成四面體。混合模式允許把已完成的非結構網格嵌入八叉樹網格,使各類幾何採用符合其特性的演算法。
| 面向/方法 | Faceted Geometry | Octree Based | 混合式流程 |
|---|---|---|---|
| 主要輸入 | 高品質實體(NURBS 幾何)與具尖角裝置 | 複雜或品質較差的封閉表面與實體 | 解剖表面加已建好的裝置網格 |
| 優勢 | 幾何精度高且拓撲接近輸入 | 穩健、快速且適合多尺度模型 | 同時保留裝置特徵與解剖模型穩定性 |
| 限制 | 自交表面可能在體積填充階段失敗 | 尖角重建有限且不保證原始拓撲 | 需處理重疊、介面與局部尺寸銜接 |
| 典型用途 | 電極、線圈、植入物與工程零件 | Virtual Population 與外部 STL | 頭部模型搭配 EEG 電極 |
2. 多面幾何網格劃分
多面幾何網格劃分(Faceted Geometry Meshing)先離散尖銳邊緣,再建立表面三角形,最後以四面體填滿封閉區域。這個順序讓裝置邊界與拓撲得到較精確的表示,因此適合高品質 CAD。代價是輸入表面若存在自相交(self-intersection)或局部缺陷,錯誤可能一路傳到最後的體積填充。大量三角表面也會增加前處理時間,所以沒有必要時,不應先把 NURBS 區域全部轉成三角網格(Triangle Mesh)。
![]()
參數設定
(1) 表面與體積網格的基本尺寸
• Remesh Surface(s): 重新建構表面網格
允許網格器依表面設定重新生成三角網格。取消後,不應期待既有三角表面依這些尺寸參數重新細化;但 NURBS 實體仍需離散成表面才能生成四面體
• Target Surface Edge Length: 表面網格的目標邊長
控制表面三角網格的基準尺寸(網格解析度)。調小可增加表面解析度與三角形數量;調大可減少元素,但可能降低幾何細節的解析能力。
• Minimum Edge Length: 最小邊長
用來限制表面細化,避免曲率或狹縫條件使尺寸過度縮小。它不是品質保證,也不宜理解成所有最終四面體邊長都絕對不得小於此值。
• Target Edge Length: 體積網格的目標邊長
控制填充區域內四面體的目標尺寸。調小會增加內部解析度與四面體數量;調大可讓內部較粗。靠近細密表面時,元素仍需配合表面尺寸及過渡條件。
(2) 表面與體積網格的尺寸過渡
• Max Surface Growth Rate: 最大表面尺寸成長率
控制範圍為相鄰表面元素的尺寸變化。越接近 1,尺寸過渡通常越平緩,細網格會延伸得更遠;較大值允許更快轉為粗網格。
• Max Volumetric Growth Rate: 最大體積尺寸成長率
控制範圍為相鄰體積元素的尺寸變化。較小值使四面體尺寸過渡更平緩,但通常增加元素數量;較大值允許內部更快粗化。
(3) 曲率解析與尖銳特徵辨識
• Max Spanning Angle: 最大跨越角
控制曲面解析度,即針對高曲率區域中精細調整元素尺寸。 在彎曲區域,相鄰表面元素的法向變化較大,需要更小的元素才能符合角度要求。調小角度曲面通常細化得更多,更能貼近曲率; 調大角度允許較大的法向變化,表面可以較粗。
• Feature Angle: 特徵角
控制哪些邊被視為尖銳特徵。調小角度較輕微的折角也會被辨識為特徵邊,可能增加需要處理的邊緣; 調大角度只有較明顯的折角會被辨識,部分較小折角可能不再受到同樣的特徵約束。
(4) 狹縫與薄層的尺寸控制
• Proximity-Based Sizing: 鄰近距離尺寸控制
啟用後可自動尺寸調整功能,該功能會縮小元素尺寸,使指定數量的元素能恰好填滿間隙。
a. 設定值 0: 關閉鄰近距離尺寸控制。
b. 設定值 0 < r < 1: 通常會生成較接近等向性的元素,狹縫方向的元素數量約為 1/r。
c. 設定值 r > 1: 可能產生非等向性或偏斜元素,不能解讀成越大越細。
(5) 局部尺寸與區域優先序
• Mesh Sizing | Target Facet Size: 目標網格面尺寸
針對物件或群組設定局部網格尺寸。當只有電極尖端、細線或特定薄層需要細網格時,可使用局部設定,避免整個模型都採用最小尺寸。
• Priority of Domain: 區域優先序
處理幾何重疊。Faceted Geometry 方法會以優先序執行布林處理,高優先序區域會從低優先序區域中扣除。
3. 八叉樹網格劃分
Octree Mesher 反覆細分立方空間,並以點或單元位於材料內外的判定來適應幾何。這使它對噪聲、外部 STL 與尺度差異大的解剖模型較有容忍度,也解釋了其限制: 解析度不足時,尖角會被離散化,細小孔洞或狹長連通區也可能改變拓撲。Target Edge Length 同時影響元素數量,以及網格可以辨識的最小幾何尺度。
![]()
參數設定
(1) 全域網格尺寸
• Target Edge Length: 目標邊長
指定輸入幾何表面附近的全域目標邊長。調小通常提高幾何解析度,也增加四面體數量;調大則使網格較粗。它不是所有四面體邊長的固定值。0 表示網格會持續細化,直到元素預算耗盡。
• Min Edge Length: 最小邊長
限制八叉樹細化階段的最小尺寸。0 表示依目標邊長自動計算,不代表允許零長度元素。
• Max Edge Length: 最大邊長
限制八叉樹細化階段的最大尺寸。0 表示自動計算,可讓遠離需細化區域的網格適度粗化。
(2) 元素數量預算(element budget)
• Max Number of Tetrahedra: 最大四面體數量
用來限制細化的計算規模。數值越大,網格器越有機會滿足細緻的尺寸要求,但記憶體需求、生成時間及後續求解成本也可能增加。
當數量超過此門檻達 20% 以上時,八叉樹細化會停止。這是細化預算與停止判據,不能將它視為最終四面體數量絕不超過五百萬的嚴格上限。若尺寸要求過細、預算卻不足,也不能預期所有區域都达到指定解析度;生成後仍須檢查關鍵結構。
(3) 背景域與外擴距離
• Padding Distance: 背景外擴距離
控制輸入幾何與八元樹網格外邊界之間的安全距離。增加此值可擴大背景範圍,但也可能增加元素數量。
• Remove Background: 移除背景
未勾選時保留背景四面體;勾選時移除背景四面體。
(4) 嵌入網格周圍的填充方法
• Use Delaunay: 使用德洛內網格法
控制既有嵌入四面體網格與周圍八元樹網格之間的空間,如何生成連接網格。
a. 勾選: 使用 Delaunay方法; 相較替代方法較穩健。
b. 未勾選: 使用 Advancing Front 推進前緣法; 穩健性較低,但可能產生品質較高的元素。
(5) 局部表面尺寸
• Target Facet Size: 目標表面三角形尺寸
指定群組所屬區域的邊界三角形目標尺寸。
(6) 表面細化與內部細化
• Refine volume: 細化區域內部
決定局部細化的空間範圍。未勾選: 只在區域表面附近細化八叉樹網格; 勾選: 在區域內部也細化八叉樹網格。
(7) 是否重新建構既有三角表面
• Disable Remeshing: 停用表面重新網格化
只適用於三角表面網格輸入。未勾選: 允許對該區域的三角表面進行局部重新網格化; 勾選: 停用該區域的表面重新網格化,即不能預期既有表面一定會重新調整成 Target Facet Size 所要求的尺寸。
4. 頭部與電極模型多域體積網格劃分案例的完整流程
本示例使用 IXI025 頭部模型與 EEG 10-10 系統座標。IXI025 模型 .zip 檔案可透過此連結或在 |X|025 Model v1.0.0 頁面下載,其中 model 文件夾包含多個 STL 解剖表面、fiducials 文件夾包含一個 EEG 10-10 系統基準點的 CSV 檔案(EEG_1010_System.csv)。將所有組織 .stl 檔案匯入 Sim4Life 後,以 Nz、Iz、RPA、LPA 四個定位點在 Skin 上建立 10-10 系統,再把圓柱形電極範本放到各測點(操作流程請參閱 "Sim4Life MR 影像 3D 建模與 10-10 系統電極自動放置操作步驟 " 一文)。接著把幾何分成兩組處理: 頭部解剖表面交給 Octree Mesher,電極則先由 Faceted Geometry Mesher 建立裝置網格。
(1) 修復皮膚表面並去除與電極重疊的體積
在頭部 10-10 系統建立的電極會穿入皮膚,因此必須先移除兩者的重疊體積。首先對 Skin 模型執行 "Make Manifold",再複製電極與皮膚並進行布林相減。對封閉三角表面而言,流形(manifold)表面要求每條內部邊具有一致且合理的鄰接關係;先修復此類拓撲問題,可降低布林運算失敗的機率。本範例只處理 CP4 與 F4 兩顆電極,以縮短示範的計算時間。
➀ 選擇 Skin 組織後,在工具欄點選 Mesh Tools | Mesh Doctor,然後在 Controller 視窗中的 Options 區塊按下 Make Manifold 按鈕以修復拓撲問題
➁ 分別複製一次 CP4、F4 電極與複製兩次皮膚模型,依序點選電極與皮膚後,使用 Boolean | Subtract 工具進行布林相減(CP4、F4 電極各執行一次)
➂ 將執行布林運算後的 CP4、F4 電極去參數化(按右鍵點選 Remove Parametrization),並將兩電極放入一個群組 Selected Electrodes
(2) 以多面幾何網格生成器(Faceted Geometry Mesher)建立裝置網格
布林裁剪後的電極屬於具尖銳特徵的實體。對於這類幾何形狀,優先使用 Faceted Geometry Mesher (多面幾何網格生成器) 作為網格劃分引擎。
在同時選擇 CP4、F4 電極後,到工具欄點選 Mesh Tools | Multidomain Mesh,Controller 視窗隨後會出現 Method Selection 及 Options 設定區塊。Method Selection 區塊中的 Meshing Engine 設定為 Faceted Geometry; 本案例將電極模型的表面目標邊長(Target Surface Edge Length)設為 0.5,體積目標邊長(Target Edge Length)設為 2.0,最小邊長(Minimum Edge Length)設為 0.2,並啟用表面重建(Remesh Surface)。這組數字應實際視模型單位與所需精度調整,不能直接當作所有電極的通用值。 所有長度參數都沿用模型的長度單位。設定數值前,必須先確認幾何匯入後的單位,並把目標邊長與電極厚度、曲率半徑及最小間隙相比較。
執行 Run,電極完成網格劃分後將多面幾何網格化模型命名為 Device Mesh。
(3) 以局部尺寸控制與電極網格嵌入建構八叉樹混合體積網格
本步驟透過 Python API 呼叫八叉樹網格器(Octree Mesher),為由封閉三角曲面網格(TriangleMesh 實體)表示的頭部模型建立體積網格。此方法適合處理複雜的解剖結構,並可結合局部尺寸控制與既有非結構化電極網格的嵌入,在提高重要組織解析度的同時,保留電極的幾何特徵,形成混合體積網格。
➀ 讀取模型中的指定電極
首先匯入 S4L 模型模組,再取得 Cloned Templates 群組的電極。程式依名稱篩選出 CP4_electrode 與 F4_electrode,存入 selected_electrodes 清單。 這裡取得的是後續聯集使用的電極幾何,不是最後嵌入的電極體積網格。
➁ 建立填補幾何及其局部設定
![]()
Unite() 將選定電極幾何進行聯集,並將結果命名為 Filling Material。加入此幾何的目的是處理電極與皮膚附近可能出現的小縫隙;但聯集本身只會合併既有幾何,能否填補縫隙仍取決於結果實際涵蓋的空間。
接著建立 local_opt_dict,用來保存物件與局部設定的對應,並將填補幾何的設定加入其中。之後的組織設定也會加入同一個字典,因此不會清除這筆設定。
此外,Filling Material 優先序(Priority)設為 -1,其設計意圖是讓填補幾何具有較低的區域優先序。其他組織的優先序預設為 0,在支援優先序的重疊處理中,填補幾何會讓位給組織,只占據未被組織占用的部分,以避免覆蓋原有解剖結構。
➂ 設定全域八叉樹網格參數
![]()
這部分設定整體網格的基本條件:
• MaxNumberOfTets: 設定四面體元素預算,控制細化規模
• TargetEdgeLength: 指定輸入幾何表面附近的全域目標邊長
• PaddingDistance: 設定幾何與背景網格外邊界之間的外擴距離
• RemoveBackground: 移除生成的背景四面體
需注意的是,目標邊長不是所有元素邊長的固定值,元素預算也不是最終數量的嚴格上限。
➃ 讀取頭部組織並指定局部尺寸
![]()
取得 IXI025 群組的組織,建立 anatomical_surfaces 清單,作為八叉樹網格器的解剖幾何輸入,以及對指定組織建立局部尺寸設定:
• 視神經 (Visual_Nerve)、動脈(Artery)、靜脈(Vein): 0.5
• 大腦灰質(Cerebrum_grey_matter): 1.0
• 其他組織: 沿用全域設定 2.5
如此一來,透過局部尺寸設定可提高重要組織的解析度,避免整個頭部都採用最細尺寸。
➄ 既有電極網格的嵌入設定
![]()
程式先將 device_settings 設為 None;若已有可用的 electrode_mesh (即 Explore 視窗中的 Device Mesh),則建立嵌入網格相關設定,指定目標邊長為 4.0。 這裡的 electrode_mesh 是先前已生成的非結構化電極體積網格 Device Mesh (15.9 kCells)。4.0 會透過下一步的 embedded_mesh_options 傳入,不能解讀為直接將既有電極內部所有四面體重新改成邊長 4.0。
➅ 生成混合體積網格並命名
前面的步驟 ➀ - ➄ 主要準備輸入與設定,此處呼叫 OctreeMeshing() 函式後才真正生成網格。
![]()
輸入參數說明
• entity_list: 解剖表面與填補幾何,交由八叉樹方法建立體積網格
• embedded_mesh: 既有電極體積網格,作為嵌入物件
• global_options: 整體尺寸、元素預算與背景設定
• local_options: 填補幾何與指定組織的局部設定
• embedded_mesh_options: 電極嵌入相關設定
總結步驟(3)核心是讓八叉樹方法處理複雜解剖表面,同時嵌入既有電極網格。成功生成後,仍應檢查細小組織的連通性、電極與組織的介面、填補區域歸屬,以及四面體品質,確認結果適合後續有限元素分析。
(4) 建立邊界 Patch
Patch 是網格邊界或材料介面上的命名面集合,求解器可利用它指定邊界條件。完成網格後,先合併 Skin 與 Filling Material domain,再把每個 electrode domain 的表面轉成 Dirichlet patch,之後刪除不需要的電極體積 domain。最後針對整體網格建立 Neumann patch;既有 patch 所涵蓋的面會被自動排除。
➀ 選取 Skin 與 Filling Material 後,使用 Mesh Tools | Merge Domains 將兩物件合併
➁ 右鍵點選合併的物件 Merged,選擇 Rename,將名稱重新命名為 Skin
➂ 選取 CP4_ electrode,然後點選 Mesh Tools | Domains Patch(es) 將電極 domain 表面轉成 Dirichlet patch 邊界,新生成的 Patch_CP4_ electrode 改命名為 CP4_ electrode_Dirichlet; F4_ electrode 也執行相同的動作。
➃ 選取 CP4_ electrode 與 F4_ electrode,然後點選 Mesh Tools | Delete Domains,將這兩個電極體積 domain 刪除。
➄ 針對整體網格建立 Neumann patch: 選取 Octree Mesh (2.6 MCells) 後,點選 Mesh Tools | Boundary Patch 以生成 Patch Boundary。將邊界名稱改為 Neumann。
➅ 在 3D 視窗檢視 Neumann 物件與混合網格化後的頭部與電極模型
5. 網格品質統計與幾何檢查
對於多域體積網格化模型,Sim4Life 視窗中提供了 Mesh Viewer 工具讓使用者檢視生成的網格品質優劣。選取 Octree Mesh (2.6 MCells) 物件後,在工具欄點選 Mesh Tools | Mesh Viewer,即可在 Controller 視窗顯示相關設定: Plane Options 或在 3D 視窗可設定切平面; Viewer Options 的 Mode 選項切換至 Quality; Mesh Statistics 區塊能選取評估網格品質好壞的計算方法。設定完成後,按下 Compute Quality 按鈕會產生成網格品質統計分布圖。
本案例以 Scaled Jacobian 評估四面體的局部形狀品質。Scaled Jacobian 會把元素的局部雅可比行列式正規化; 數值愈高通常代表形狀愈接近理想元素,但實際範圍與判讀標準仍應依軟體定義及元素類型確認。品質分析不能只看平均值,因為少量極差元素常集中在狹縫、材料介面或尺寸快速過渡處。Mesh Viewer 可搭配切割平面與最差元素篩選,將統計分布連回實際幾何位置。
➀ Mesh Viewer 工具位置
➁ Mesh Viewer 設定與 Mesh Statistics 圖表
➂ 檢視平面設定
另外,使用者也可以透過 Sim4Life Python API 的函式(xcm.ComputeMeshQuality)來產生網格品質統計圖表。例如: 下圖繪製了 100 個網格品質區間分佈的密度直方圖。
品質統計與幾何檢查要點:
• 先找品質分布尾端的最差元素,再定位其幾何位置
• 檢查局部細化與全域尺寸交界,避免邊長變化過快
• 確認薄層、孔洞、狹縫與組織連通性沒有因八叉樹解析度而改變
• 以至少兩到三組解析度生成網格化模型,觀察目標物理量是否收斂,而不是只追求更小元素
6. 結語
Sim4Life 的多域體積網格設計,重點在於把幾何特性與演算法假設對齊。Faceted Geometry 適合乾淨 CAD 與尖銳裝置; Octree 適合複雜解剖表面; 混合模式則把兩者接成實用流程。完成建網格後,仍需以 Patch 定義邊界、用品質分布定位弱點,並透過解析度研究確認模擬結果已收斂。對頭部加電極這類模型而言,這套流程能在拓撲保真、網格穩健性與計算成本之間取得可控的平衡。
依據歐盟施行的個人資料保護法,我們致力於保護您的個人資料並提供您對個人資料的掌握。
按一下「全部接受」,代表您允許我們置放 Cookie 來提升您在本網站上的使用體驗、協助我們分析網站效能和使用狀況,以及讓我們投放相關聯的行銷內容。您可以在下方管理 Cookie 設定。 按一下「同意」即代表您同意採用目前的設定,更多資訊請瀏覽 隱私權聲明。