億級以上網格油藏模型三維可視化
一、賽項背景
油藏數值模擬是油氣田開發中至關重要的一環。油藏數值模擬將儲層與井的數學模型離散求解,預測地下流體、能量等的動態變化,廣泛應用于油田產量評估、開發方案優化等。隨著計算機技術特別是并行技術的發展,油藏數值模擬的網格規模可達億級到十億級。如此大規模的油藏模型對三維可視化是一個挑戰。
本次競賽的目標是期望實現億級以上網格油藏模型流暢的三維顯示和數據交互。通過應用先進的計算機圖形技術,利用局部更新、按需加載、并行處理等技巧改進算法,實現億級以上網格油藏模型流暢的三維顯示和數據交互,助力HiSim軟件的升級。
二、賽項信息
賽項名稱:億級以上網格油藏模型三維可視化
賽項主題:油藏開發,油藏數值模擬
賽項時間:2024.09-2025.01
賽項目的:本次競賽旨在通過“億級以上網格油藏模型三維可視化”競賽,旨在邀請計算機圖形學、油藏數值模擬及可視化領域的精英人才,共同探索并攻克這一技術難題。
三、競賽題目
參與本賽題所需的數據及說明已上傳到AtomGit代碼托管平臺,代碼庫地址: 億級以上網格油藏模型三維可視化 · AtomGit_開放原子開源基金會代碼托管平臺
本賽項要求參賽隊伍實現億級以上網格油藏模型流暢的三維顯示和數據交互。油藏模型的三維可視化指將油藏網格與井的動、靜態屬性以計算機三維圖形的方式呈現出來。由于CPU/GPU算力的限制、內存/顯存容量的限制,億級以上網格油藏的三維可視化會出現不流暢甚至無法顯示的問題。項目組針對上述問題,提出賽題“億級以上網格油藏模型三維可視化”,具體要求如下:
3.1 核心功能實現
億級網格處理:參賽作品必須能夠處理億級以上的油藏網格模型,實現其三維可視化。
動靜態屬性展示:除了網格,還需將井的動、靜態屬性以三維圖形的方式清晰、準確地呈現出來。
數據交互能力:用戶需能夠與三維模型進行交互,選擇特定網格。
3.2 性能優化要求
流暢性:在CPU/GPU算力及內存/顯存容量有限的情況下,確保三維顯示和數據交互的流暢性。
局部更新技術:應用局部更新技術,僅對需要變更的部分進行更新,以減少不必要的計算和資源消耗。
按需加載策略:實現按需加載機制,根據用戶需求和視圖范圍動態加載和卸載數據。
并行處理應用:利用并行處理技術,如GPU加速、多線程等,提高數據處理和渲染速度。
3.3 用戶體驗與外觀
直觀易用:用戶界面應簡潔、直觀,易于操作和理解。
美觀度:三維可視化效果應美觀,符合專業軟件的外觀標準。
可移植性與兼容性:作品應能夠在Windows或Linux平臺上穩定運行。
3.4 賽題意義
將為巔峰賽題“超大規模多組分滲流全隱式模擬中的稀疏線性方程組求解”未來成果落地提供可視化功能支持,助力HiSim軟件增強其處理大規模數據的可視化能力,提高油氣藏模擬的精度和效率。
億級以上網格的油氣藏模型能夠捕捉更多地質細節,提供更精確的地質構造和流體流動模擬,能夠直觀展示油氣藏模型的內部結構、流體分布及動態變化過程,有助于研究人員和決策者更好地理解地質情況,做出科學決策。
四、參賽歷程
4.1 研讀賽題需求
本數據是HiSim模擬器的模擬結果數據,包含兩類:
- 網格數據:連續存放的二進制數組;
- 井筒數據:文本文件。
利用以上兩種數據體,可以完整地繪制儲層和井筒的3D圖。
網格幾何數據是“Brick”格式,該格式包含“點集+拓撲”,可以描述結構或非結構的六面體單元,且單元頂點不需要是對齊的。Brick格式包含兩個數組:
①?點集坐標,是頂點的(x, y, z)坐標,是double數組,長度等于“頂點數×3”,重合的點記為一個點;
② 網格頂點在點集中的編號,即每個網格由哪8個頂點組成,是整型數組,數組長度等于“有效基質網格數×8”,編號從1開始,8個頂點的順序如,頂點先排底面、再排頂面,面內逆時針排序。
4.2 補充油藏相關知識點
油藏工程 中國石油大學
油藏工程-姚軍-中國石油大學(華東)_嗶哩嗶哩_bilibili
油藏數值模擬的核心原理是基于描述流體在多孔介質中流動的數學方程組,并通過計算機對這些方程進行數值求解,來預測地下油藏的動態行為。這個數學模型來源于基本的物理守恒定律和經驗關系式。
油藏數值模擬的基本流程可以概括為以下幾個主要步驟:
1. 構建地質模型 (Geological Modeling)
2. 網格劃分 (Gridding)
3. 屬性賦值 (Property Assignment)
4. 井數據整合 (Well Data Integration)
5. 模型初始化 (Model Initialization)
6. 動態數值模擬(時間步進計算)(Dynamic Simulation)
7. 結果后處理與分析
Petrel 地質建模專講
Petrel 地質建模專講(2023年最新錄制的獨家1080p優質內部一體化培訓視頻第二模塊)!共大于10個視頻!(并包含數據、課堂筆記、手冊、實用技巧等資料)_嗶哩嗶哩_bilibili
基于華為鯤鵬HPC并行計算:油藏數值模擬網格粗化探索與實踐【玩轉華為云】-云社區-華為云
科吉思石油技術的個人空間-科吉思石油技術個人主頁-嗶哩嗶哩視頻
硬實力|億級角點網格油藏模型三維顯示技術取得重大突破-Colchis-科吉思石油技術咨詢有限公司
十億級網格CCS模擬的"GPU超能力"!【附: 5月份休斯頓技術峰會報名】
前沿技術 |金蛇狂舞!2025斯倫貝謝數值模擬新技術應用與文獻盤點
前沿技術 |INTERSECT 2024重裝升級,引領油藏模擬新時代
對模擬計算得到的隨時間變化的壓力場、飽和度場、各井的生產/注入數據、油藏整體產出數據等進行可視化和分析。進行產量預測、歷史擬合(調整模型參數以匹配歷史生產數據)、方案優化、剩余油分布分析等。
油藏數值模擬流程總結:先利用靜態原理(重力、毛管力)和靜態輸入數據(地質模型、物性、P_c(S) 曲線等)建立油藏的初始靜態平衡狀態(初始化壓力和飽和度場)。然后,在動態模擬階段,利用動態原理(達西定律、質量守恒)和動態輸入數據(K_r(S) 曲線、粘度、井條件等),計算流體在網格之間的流動,并根據流動結果,不斷更新每個網格的壓力和飽和度場,逐步推進模擬進程。飽和度場在整個過程中貫穿始終,既是初始狀態的描述,也是連接各種巖石-流體關系(特別是通過相對滲透率和毛管壓力),驅動動態流動的核心變量。
4.3 收集HiSim相關研發資料
?自主研發,填補空白,打造全系列一體化工業軟件HiSim
HiSim?打造了一體化油藏數值模擬應用平臺,集成數模模型建立、流體相態模擬、數值模擬運行、結果可視化分析、人機交互歷史擬合、交互式井網部署及開發方案預測與方案優化等功能,為油氣田開發提供了數值建模、數值模擬、動態分析及方案優化的一體化解決方案。
2024首屆HiSim?軟件設計大賽賽前培訓圓滿落幕
https://pubs.cstam.org.cn/data/article/em/preview/pdf/1000-4750(2008)10-0012-07.pdf
https://ir.pku.edu.cn/handle/20.500.11897/483950
并行計算基礎知識
4.4 設計可視化方案
油藏數值模擬算例數據概覽
概述 ?JD_Refined_BO3.dat ?5KB
靜態網格參數 ?JD_Refined_BO3_geom.bin ?17713770KB
動態網格參數 ?JD_Refined_BO3_stu.bin ?100381214KB
井筒數據 ?JD_Refined_BO3_wstu.out ?23434KB
首先將油藏網格二進制格式Brick,通過c++轉換成中間格式ply,然后使用開源軟件Blender+python批量合成ply到glb格式。 最后再使用web技術實現模型的可視化,井筒數據的映射。
億級網格處理
處理億級以上的油藏網格模型,實現其三維可視化。
動靜態屬性展示
井的動、靜態屬性以三維圖形的方式呈現,填充物理參數,如孔隙度與滲透率,描述儲層巖石的性質。
數據交互能力
用戶需能夠與三維模型進行交互,選擇特定網格。
網格模型尺寸范圍(單位m):
XCOORD0 = 630752.507
YCOORD0 = 4338916.207
XCOORD=[33,7934],YCOORD=[-3941,1554],DEPTH=[1750,2845]
提取brick中的點集合,表征幾何點云可視化,形成總體映像
靜態網格數據讀取,從上往下切片輸出ply格式文件,在點集合中找到xy,xz, yz, -x-y, -x-z, -y-z6個平面最大點構成的格子數據,點集輸出到txt文件,在拓撲數據處理階段加載到內存,構成三維點數據,供拓撲點數據和拓撲數據的重新組合切片輸出。切片工具使用c++ mfc框架編寫。模型可視化基于網絡瀏覽器實現。
PLY是一種用于存儲三維模型的文件格式,全名為多邊形檔案(Polygon File Format),又稱斯坦福三角形格式(Stanford Triangle Format)。以下是關于PLY格式的詳細介紹:
基本特性
- ?存儲內容?:PLY格式主要用以儲存立體掃描結果的三維數值,通過多邊形片面的集合來描述三維物體。
- ?屬性支持?:它可以存儲的信息包括頂點坐標、顏色、透明度、表面法向量、材質坐標、數據可信度等,并能對多邊形的正反兩面設定不同的屬性。
- ?編碼方式?:在檔案內容的儲存上,PLY有兩種版本,分別是純文字(ASCII)版本與二元碼(binary)版本,其差異在于儲存時是否以ASCII編碼表示元素信息。
文件結構
- ?檔頭(header)?:每個PLY文件都包含檔頭,用以設定網格模型的“元素”與“屬性”。檔頭中定義了文件中包含的元素類型(如頂點、面等)以及這些元素的屬性(如坐標、顏色等)。
- ?數值資料?:在檔頭下方接著的是一連串的元素“數值資料”,這些資料按照檔頭中定義的順序和類型進行存儲。
元素與屬性定義
- ?元素?:PLY文件中的元素可以是頂點(vertex)、面(face)等。
- ?屬性?:屬性用于描述元素的特征,如頂點的坐標(x, y, z)、顏色(R, G, B)等。在PLY文件中,屬性通過“property”關鍵字進行定義。
應用場景
PLY格式因其高效的存儲方式和豐富的屬性支持,在多個領域有著廣泛的應用:
- ?3D掃描?:用于存儲和處理3D掃描設備獲取的三維數據。
- ?3D打印?:作為3D打印軟件的輸入格式之一,用于描述待打印物體的三維模型。
- ?游戲開發?:在游戲開發中,PLY格式常用于存儲游戲場景和角色的三維模型。
- ?動畫制作?:在動畫制作中,PLY格式可用于存儲動畫角色的三維模型和動作數據。
4.5 總體流程設計
開發語言:c++、javascript
模型格式:ply、stl、glb/gltf、b3dm
應用框架:B/S架構、vue、threejs、chrome?v131瀏覽器
glTF(GL Transmission Format)和GLB(GL Transmission Format Binary File)是兩種用于存儲和傳輸三維場景和模型的文件格式,它們都由Khronos Group定義和維護。以下是關于這兩種格式的詳細介紹:
glTF格式
-
?特點?:
- ?可擴展性?:glTF文件格式具有可擴展性,可以根據需要添加新的數據類型和屬性信息,便于擴展和更新。
- ?壓縮性?:支持壓縮算法,可以有效地減小文件大小,便于傳輸和存儲。
- ?廣泛的行業支持?:許多知名的3D引擎和應用程序都支持glTF格式。
- ?快速高效?:glTF文件通常比其他3D模型格式小且讀取速度快。
- ?豐富的場景數據?:除了存儲模型和材料外,還能夠存儲動畫數據、骨骼、蒙皮、場景層次結構以及燈光(通過擴展)。
-
?優點?:
- 作為開放標準,不受特定公司控制,可自由使用。
- 文件結構清晰,易于解析和渲染。
-
?缺點?:
- 由于是基于JSON的,文件大小可能比某些二進制格式大。
- 在某些特定應用程序或游戲中,可能需要進行額外的轉換或調整。
- 3D模型數據的存儲格式較為簡單,修改模型可能比較困難。
GLB格式
-
?特點?:
- ?單一文件格式?:將所有的模型數據(包括結構、幾何、紋理等)打包到一個單一的文件中,更易于傳輸和加載。
- ?二進制格式?:可以直接被GPU讀取和處理,無需預處理,提高渲染效率。
- ?glTF兼容?:完全兼容glTF規范,支持所有glTF特性。
-
?優點?:
- 文件大小通常比glTF小33%,更適合網絡傳輸。
- 包含渲染3D模型所需的所有數據,非常適合在Web和移動應用程序中使用。
- 廣泛支持,被許多3D應用程序和游戲引擎所接受。
-
?缺點?:
- 由于是二進制格式,編輯和修改比較困難,需要專業工具。
- 可擴展性受限,一旦文件生成后,修改和添加新元素可能較為困難。
- 文件結構可能相對復雜,包含擴展內容塊。
使用場景
- ?glTF?:主要用于游戲開發、虛擬現實和增強現實、建筑可視化以及工業設計等領域。其開放性和高效性使其成為這些領域中的理想選擇。
- ?GLB?:作為glTF的二進制版本,GLB的使用場景與glTF相似。由于其文件大小更小且加載速度更快,特別適合在網頁中高效加載和渲染3D模型。
3D Tiles是一種高效的三維城市和地理空間數據存儲格式,以下是對其的詳細介紹:
基本概念
3D Tiles,即三維瓦片,是由Cesium公司提出的一種針對大規模三維場景的優化格式。它主要用于存儲和傳輸高效的3D模型數據,如建筑物、地形數據、點云數據以及3D城市模型等。通過瓦片化處理,3D Tiles能夠顯著提高大規模3D模型的加載和渲染效率。
核心特點
-
?層級化數據組織?:
- 3D Tiles使用層級的方式組織數據,每個瓦片通常包含一定區域內的3D模型或數據。瓦片的大小與場景的復雜度、數據的尺度以及顯示設備的性能密切相關。
-
?按需加載?:
- 3D Tiles支持動態加載和卸載瓦片,根據視角和距離來調整細節層次(LOD),從而避免一次性加載大量數據帶來的性能瓶頸。
-
?支持多種幾何類型?:
- 3D Tiles支持多種幾何類型,包括點云、多邊形、模型等,并且可以包含豐富的屬性信息和層次細節(LOD)結構。
-
?高效渲染?:
- 通過使用層級細節技術(LOD)和批處理技術,3D Tiles能夠優化渲染性能,確保在不同設備和網絡條件下的最佳顯示效果。
結構與應用
-
?結構?:
- 3D Tiles的文件通常包括三個主要部分:根文件(root tileset file)、瓦片文件(Tile files)和二進制數據(Binary data)。根文件是一個JSON文件,描述整個場景的瓦片集合及其層次結構;瓦片文件包含每個瓦片的具體數據;二進制數據則存儲了3D模型的幾何數據、紋理數據、屬性等。
-
?應用場景?:
- ?3D城市建模?:3D Tiles非常適合用于表示和管理大規模的城市模型,能夠處理復雜的建筑物和基礎設施數據。
- ?地理信息系統(GIS)?:對于各種類型的地理空間數據,3D Tiles能夠提供快速加載和高效顯示。
- ?虛擬現實和增強現實?:借助3D Tiles的優化特性,VR/AR應用能夠流暢地呈現大規模的3D環境。
技術細節
-
?瓦片集與瓦片?:
- 瓦片集(tileset)是一組按層次結構組織的瓦片(Tile)。瓦片集本身包含根瓦片,每個瓦片都可以有子瓦片。瓦片集和瓦片都以JSON描述。
-
?邊界體積?:
- 每個瓦片包含一個邊界體積(bounding volume),用于封裝瓦片的內容和所有子內容。邊界體積可以是定向的bounding box、bounding sphere或者以最小和最大經度、緯度、高程定義的地理區域。
-
?幾何誤差與細化策略?:
- 幾何誤差(geometric error)用于衡量瓦片中的內容相對于最高細節級別的簡化程度。在運行時,幾何誤差用于計算屏幕空間誤差(SSE),從而決定層次細節(LOD)的細化。細化策略包括添加操作(ADD)和替換操作(REPLACE)。
使用方式
在實際項目中,使用3D Tiles的常見步驟如下:
- 使用專門的工具(如TilesBuilder)來加載和處理3D Tiles數據。
- 根據實際需求設置LOD的切換邏輯,以確保性能和顯示效果的平衡。
- 將3D Tiles集成到應用程序中,利用其高效渲染和交互特性來呈現大規模的三維場景。
4.6?項目總結
自賽題發布以來,大賽吸引了來自全國范圍內 的32支隊伍、共計71名選手報名參賽。其中, 21所高校與1家企業積極參與,展現了石油軟 件技術的廣泛影響力。在初賽階段,經過激烈 地角逐與比拼,8個團隊憑借出色的三維顯示 和數據交互與技術創新成功晉級決賽。
第二屆開放原子大賽石油軟件賽項決賽在北京舉辦,推動了開源創新成果在傳統油氣領域的深度應用
石油行業的一場技術盛宴 —— 第二屆開放原子大賽石油軟件賽項決賽,在中國石油勘探開發研究院盛大舉辦!
開源賦能油氣技術革新,第二屆開放原子大賽石油軟件專區賽決戰在即_OpenAtom Operation-開放原子開發者工作坊
開源助推油氣行業數字化轉型,第二屆開放原子大賽石油軟件專區賽決賽成功舉辦-開放原子大賽
決賽路演階段向院士專家匯報,與石油大學,清華大學,空氣動力研究所同臺競技,C/S,B/S兩路架構開闊眼界,絕對讓你收獲滿滿。
https://www.cardc.cn/nnw/engineering-introduction.aspx
樹優超云 | UniXDE 智能仿真優化云平臺 - 樹優超云
VTK - The Visualization Toolkit
ParaView - Open-source, multi-platform data analysis and visualization application
WebGPU,下一代 Web 圖形技術 - 邵嘉煒_嗶哩嗶哩_bilibili
W3ORG-chinese-web-gpu.pdf
這篇GPU學習筆記,詳細整理了其工作原理、編程模型和架構設計
五、可視化結果
參見官網:
億級以上網格油藏模型三維可視化-開放原子大賽