專利名稱:用面向?qū)ο蟮某绦蛟O(shè)計模擬物理系統(tǒng)的方法和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用面向?qū)ο蟪绦蛟O(shè)計模擬物理系統(tǒng)的至少一種特性的方法。一方面,本發(fā)明涉及一種模擬流體在物理系統(tǒng)中流動和傳輸?shù)姆椒?,其包括但不限于至少部分含有烴的形式。此方法特別適用于儲層模擬中的并行計算。
儲層模擬具有很大的益處,因為其可從儲層模型的性能來推定真實含烴儲層的性質(zhì)。儲層模擬的典型目的是充足地了解發(fā)生在儲層中的復(fù)雜的化學(xué)、物理、和流體流動過程以預(yù)測儲層的將來性質(zhì)來最大程度地回收烴。儲層模擬通常指儲層中流體的流體動力學(xué),但是在更大規(guī)模的儲層模擬中也指整個的烴系統(tǒng),其不僅包括儲層,而且包括注入井、生產(chǎn)井、地表出油管(flowline)、毗連含水層,和地表處理設(shè)備。在這樣烴系統(tǒng)中的儲層模擬基于流過被模擬的整個烴體系的流體。用變化的精確度來進(jìn)行計算,這取決于具體模擬研究的需要和所使用模擬軟件的性能。
數(shù)值模擬的原理是使用計算機數(shù)值地求解方程式來描述物理現(xiàn)象。通常地這樣的方程式是普通的微分方程和偏微分方程。作為一個數(shù)值地求解這樣方程的方法,已知的有有限元法、有限差分法、有限容積法等等。不管使用那種方法,將被模型化的物理系統(tǒng)分成單元(一種被稱為網(wǎng)格或網(wǎng)的系列),并且在整個模型空間中變化的狀態(tài)變量由每個單元的一系列值來描述。典型地將每個單元中的儲集巖的性質(zhì)如多孔性和滲透性假定為常數(shù)。在單元中在給定點(有時被稱作節(jié)點)詳細(xì)說明其他的變量如流體壓力和相飽和度。將兩個節(jié)點間的鏈接稱為“連接”。典型地將在兩個單元間的流體流動模擬作沿著它們之間連接的流動。
由于儲層模擬能包括許多不同的流體流動環(huán)境(例如,多孔巖石、油管、加工設(shè)備),一系列單元能包括不同流體環(huán)境的多個段。盡管單獨的段如生產(chǎn)設(shè)備和地表管道段可由單個單元代表,但儲層模擬程序時常將這樣的段再細(xì)分為多個單元。
制定了一系列方程來表示每個單元內(nèi)的質(zhì)量、能量、和/或動量的守恒的基本理論,以及單元間質(zhì)量、能量、和/或動量的運動。這些方程的計數(shù)在百萬級。對于每個單元,用有限個數(shù)的變量值來替代在模型的整個空間內(nèi)變化的狀態(tài)變量被稱作“離散化”。為了及時地分析現(xiàn)象變化,有必要在離散的時間間隔計算物理量,該間隔稱為時間步長,而不用去顧及作為時間的函數(shù)的連續(xù)變化的條件。因此傳輸工藝的與時間有關(guān)的模擬按時間步長的順序進(jìn)行。
在一個時間步長中,在單元間發(fā)生各種的傳輸。通過這種傳輸,單元可與其它相鄰的單元進(jìn)行質(zhì)量、動量、或能量的交換。在地下儲層的多孔介質(zhì)中,用Darcy定律來計算質(zhì)量和動量傳輸。在井孔中的生產(chǎn)管道中,可使用公知的方法進(jìn)行質(zhì)量和動量傳輸?shù)挠嬎銇砻枋龆嘞嗤牧鳌D芰靠梢栽谶\動的流體中對流傳輸,并可以在儲集巖中進(jìn)行。某些情況下,也要考慮通過輻射進(jìn)行的能量傳輸。有時需要考慮在時間步長中,在單元中的化學(xué)反應(yīng)導(dǎo)致質(zhì)量和能量的產(chǎn)生和消耗。
控制時間步長期間每個單元的行為的方程與質(zhì)量、動量和能量守恒理論結(jié)合起來共同使用來進(jìn)行傳輸計算。這些方程可以假設(shè)不穩(wěn)定態(tài)或假穩(wěn)定態(tài)傳輸過程。如果它們假設(shè)一個不穩(wěn)定態(tài)過程,可將守恒理論表示為時間步長終了時在單元中的量=時間步長開始時在單元中的量+時間步長中傳送至單元的凈額+時間步長中單元中產(chǎn)生的凈額如果假設(shè)是假穩(wěn)定態(tài),可將守恒理論表示為時間步長中傳送至單元的凈額+時間步長中單元中產(chǎn)生的凈額=0在每一個時間步長,模擬程序必須求解一個或多個矩陣方程,其個數(shù)取決于所使用時間步長計算方法的類型。因為矩陣方程很大(至少每個單元一個方程),除了小模型以外迭代地(iteratively)求解它們。
已經(jīng)提出了各種用于儲層模擬的時間步長計算法。兩個通常使用的計算法稱為“IMPES”和“全隱法”(fullyimplicit)。在源自術(shù)語“隱式壓力,顯式飽和度”的IMPES法中,基于時間步長結(jié)束時的壓力值和時間步長開始時的飽和度來計算鄰近單元間的流動。在IMPES時間步長結(jié)束時的壓力是相互依賴的并且必須將其同時測定。這種方法稱為“隱式的”,因為每個壓力都取決于其它的量(例如,在時間步長結(jié)束時的其它壓力),其僅僅隱式地被得知。基本的步驟是構(gòu)建矩陣方程,其中僅有壓力是隱式的,求解矩陣方程得到壓力,然后顯式地逐單元使用這些壓力來計算飽和度。這樣,在及時得到壓力后,飽和度被顯式更新。計算了飽和度后,可以計算出新的相對滲透率和毛細(xì)管壓力;這些在下一個時間步長被直接使用。可以將相似的處理用于其它可能的變量如濃度、質(zhì)量、溫度或內(nèi)能的求解。
全隱法隱式地處理壓力和飽和度兩者。利用每一時間步長結(jié)束時的相壓和飽和度來計算流量。流量、壓力和飽和度的計算包括用合適的迭代技術(shù)對非線性方程的求解。每一次迭代,此方法構(gòu)建并求解一個矩陣方程,其(壓力和飽和度)未知數(shù)在迭代過程中改變。由于求解了壓力和飽和度,連續(xù)使用壓力和飽和度的新值來更新這些項。當(dāng)預(yù)定的收斂條件滿足后,結(jié)束迭代過程。
相對地IMPES每個時間步長消耗較少的計算機時間,但是在一些模擬中其穩(wěn)定性的限制導(dǎo)致其使用大量的小時間步長。結(jié)果計算成本可能很大。全隱法每個時間步長比IMPES消耗更多的計算時間,但是它可以使用更大的時間步長。
在很多儲層模擬中,僅一小部分的單元需要隱式計算。已經(jīng)提出模擬程序來進(jìn)行IMPES和全隱法計算。當(dāng)降低每個時間步長的計算成本時,使得利用全隱法的長時間步長變得可能。
關(guān)于儲層模擬和計算技術(shù)的其它信息也可在如下文獻(xiàn)中找到(1)美國專利申請序號60/074188(J.W.Watts),題目為″ImprovedProcess for Predicting Behavior of a Subterranean Formation″;(2)Mattax,C.C.和Dalton,R.L.,Reservoir Simulation,Monograph卷13,Society of Petroleum Engineers,1990;(3)Aziz,K.和Settari,A.,Petroleum Reservoir Simulation,Applied Science Publishers Ltd,Barking,Essex,England,1979;(4)D.W.Peaceman,″Fundamentals of Numerical ReservoirSimulation,″Elsevier,New York,1977;(5)J.W.Watts,″Reservoir SimulationPast,Present,andFuture,″SPE 38441 presented at the 1997 SPE Reservoir SimulationSymposium,Dallas,Texas,811 June 1997;和(6)K.T.Lim,D.J.Schiozer,K.Aziz,″A New Approach forResidual and Jacobian Array Construction in ReservoirSimulators,″SPE 28248 presented at the 1994 SPE PetroleumComputer Conference,Dallas,Texas,July 31-August3,1994.
在單機代碼中,已經(jīng)進(jìn)行了努力以執(zhí)行變化的儲層模擬方法。但是,這樣的“通用”模擬系統(tǒng)非常復(fù)雜、龐大,這是由于它們被設(shè)計成具有一種或多種下述的性能(1)表示多種不同類型的單元(例如,不同的儲層區(qū)域、井管和地表集儲和分布設(shè)備、和地表處理設(shè)備);(2)使用不同的時間步長計算方法(例如,IMPES,全隱式,順序隱式,自適應(yīng)隱式和/或級聯(lián)法);(3)利用不同的表示儲層流體的方式;(4)利用多種計算單元之間的傳輸?shù)姆绞剑?br>
(5)執(zhí)行所謂“重質(zhì)油模型”,其把烴看作由兩種組分構(gòu)成,并且也具有進(jìn)行組成表示的性能,其中假設(shè)烴包含化合物如甲烷、乙烷、丙烷和更重的烴;(6)模擬蒸汽注入或就地燃燒過程,其必須考慮溫度隨時間的變化,需要能量平衡和相關(guān)的計算;(7)利用具體流體性質(zhì)和傳輸計算來模擬可混的回收過程;(8)模擬考慮有表面活性劑、聚合物、或其它化學(xué)物質(zhì)注入的烴的回收過程,和這些流體流入儲層的流動;(9)模擬互相之間反應(yīng)、或與儲層烴類、儲集巖反應(yīng)的化學(xué)物質(zhì)的注入;和(10)模擬烴和地質(zhì)沉積物隨地質(zhì)時期的遷移。
大多數(shù)儲層模擬程序使用所謂的結(jié)構(gòu)網(wǎng)格,其中單元被假設(shè)為三維矩形,將其扭曲以盡可能地符合地理特性和流動模式。結(jié)構(gòu)網(wǎng)格不能很好地表示特定的地理特性和模擬位置(modeling situation)。通過使用局部網(wǎng)格加密能部分地克服這個缺陷,其中將所選的單元分成更小的單元和非相鄰的連接,其允許在單元間流動,這些單元互相之間物理地鄰近但是在數(shù)據(jù)結(jié)構(gòu)上不相鄰。對此問題更有力的解決是利用整個非結(jié)構(gòu)網(wǎng)格提供的靈活性。這需要改造模擬程序存儲其數(shù)據(jù)和進(jìn)行其計算的方式。
因為在儲層模擬中通用的計算需要大量的計算資源,已經(jīng)提出將模擬模型細(xì)分為更小的片段并且在多處理器計算機上進(jìn)行并行計算。并行計算的主要吸引力是其降低模擬占用時間的能力,理想地n個因式對應(yīng)n個處理器計算機。并行計算并不理想,這是由于幾個因素,包括在線性方程式求解中的遞歸,各種計算所需的信息傳遞的相關(guān)總開銷,并且由于在烴流體的物理過程和特性描述中的不均勻性而加入了不平衡。
過去通用模擬程序使用具有各種連接和單元類型的規(guī)則的、結(jié)構(gòu)的單元。這些模擬程序以不同的方式處理這些連接和單元類型,導(dǎo)致無系統(tǒng)的方法和復(fù)雜代碼。當(dāng)將局部加密、非相鄰連接和并行計算性能加入到這個程序中時,它們將變得特別復(fù)雜并且很難使用。這樣的程序趨近于無效和不可靠。
對于儲層模擬程序在工業(yè)上一直都有需要,其能廣泛地在并行計算機上利用非結(jié)構(gòu)網(wǎng)格進(jìn)行多種類型的模擬計算。結(jié)果,需要一種降低復(fù)雜性并提供計算效率的方法組織并實現(xiàn)模擬計算。
圖1B示出具有36個單元的二維無結(jié)構(gòu)的網(wǎng)格的實例。
圖2A是與圖1A實例相似的三維結(jié)構(gòu)網(wǎng)格系統(tǒng)的簡化實例,不同的是如圖2B所示部分網(wǎng)格系統(tǒng)被細(xì)分為附加的單元。
圖3是一個二維的不規(guī)則的網(wǎng)格系統(tǒng)的簡化實例,其具有在模型內(nèi)終止的行。
圖4示出了一個表示含烴系統(tǒng)的三維示意圖,可由使用本發(fā)明方法的通用儲層模擬器表述。
圖5A示出了一個與圖1A的實例相似的三維結(jié)構(gòu)網(wǎng)格的簡圖,其被分為如圖5B和5C示出的兩個域。
圖6概括地示出了面向?qū)ο蟪绦蛟O(shè)計中的繼承概念。
圖7概括地示出了面向?qū)ο蟪绦蛟O(shè)計中的包含(containment)概念。
圖8A示出了8-單元模擬模型并且圖8B示出了按照圖8A的單元和連接的排列。
圖9示意地示出單元-組和連接-組的實例,其由圖8B的單元和連接制成,能夠用于本發(fā)明的方法中。
圖10示出了五個單元-組類,其派生自單個基類。
圖11是一個簡圖,示出了基于面向?qū)ο蟪绦蛟O(shè)計理論的連接-組類中的繼承關(guān)系。
圖12是一個簡圖,示出了本發(fā)明所用的四種類型對象的類的關(guān)系。
圖13A示出了一個二維網(wǎng)格系統(tǒng),其被細(xì)分為編號為100-103的四個域。
圖13B示出了可從域100得到的四個單元-組。
圖13C示出了圖13B域100的單元-組和域101、102和103的單元-組。在域100中的連接計算包括虛線中的單元-組。
圖13D示出了域100的單元-組,用箭頭表示連接域100內(nèi)的單元-組的單元的連接-組。
圖13E示出了域100的單元-組,其用箭頭表示連接域100內(nèi)的單元-組的單元的連接-組。
圖13F示出了域100的單元-組和域101和102的單元-組,用箭頭表示連接域101和102的單元-組的單元的連接-組。
圖14是一個高級方框圖,其示出了并行計算系統(tǒng)的實例,此系統(tǒng)在本發(fā)明的實際操作中使用面向?qū)ο蟮某绦蛟O(shè)計。
附圖不是意在排除本發(fā)明的由這些具體實施方式
正常和預(yù)期修改而得到的其它實施方式。
發(fā)明的詳細(xì)描述本發(fā)明提供了一種模擬物理系統(tǒng)的新方法,其由偏微分方程數(shù)值地表示??蓪⒋朔椒ㄓ糜谀M二-和三-維域,將該域離散成結(jié)構(gòu)網(wǎng)格、非結(jié)構(gòu)網(wǎng)格或兩者的組合。此方法也可用在計算近似得到具有超過三維的拓?fù)浣Y(jié)構(gòu),如發(fā)生在模擬通過裂縫孔隙介質(zhì)的流體流動。本發(fā)明特別適用于模擬其中發(fā)生傳輸現(xiàn)象的物理系統(tǒng)的特性。在本說明書中使用的術(shù)語“傳輸現(xiàn)象”廣義地用于包括動量傳輸(粘性流)、能量傳輸(熱傳導(dǎo)、對流和輻射)和質(zhì)量傳輸(擴(kuò)散)。本發(fā)明可以廣泛地用于不同的領(lǐng)域如物理、巖石鑒定、晶體學(xué)、電工學(xué)、生物學(xué)、數(shù)學(xué)、流體力學(xué)和石油工程學(xué)。例如,本發(fā)明可用于模擬從儲集巖中去除烴,其利用多種補充開采技術(shù),例如但不限于熱基開采法如蒸汽驅(qū)操作、水驅(qū)操作和基于氣驅(qū)的方法,其可在可混合的和不能混合的的條件下操作。本發(fā)明也可用于模擬通過地層的污染物的遷移。本發(fā)明特別地適用于非結(jié)構(gòu)網(wǎng)格系統(tǒng)上進(jìn)行通用儲層模擬,并且特別地適用于含烴系統(tǒng)的并行計算機模擬,其不僅能包括儲層,而且包括注入井、生產(chǎn)井、地表出油管、毗連含水層,和地表處理設(shè)備。
本發(fā)明的模擬方法以新的方式存儲計算數(shù)據(jù)和組織計算。本發(fā)明基于使用兩種類型的利用“面向?qū)ο蟪绦蛟O(shè)計”理論的軟件程序設(shè)計“對象”;一種對象包含一組單元,另一對象包含一組連接。本發(fā)明可選擇地包括附加對象,如含有整個模型的對象和含有整個模型一部分的其它對象。在本發(fā)明說明書中對象的四種類型分別是指“單元-組”、“連接-組”、“模型”和“子模型”。
每個單元-組包含全部或基本上全部數(shù)據(jù),其需要在其包含的單元上進(jìn)行計算。這些單元都必須具有某種公共特性。例如,一個單元-組能包含在其上進(jìn)行全隱式計算的儲層單元,而其它單元-組則含有在其上進(jìn)行IMPES計算的儲層單元。
每個連接-組包含全部或基本上全部的為其所含有的連接計算所必需的數(shù)據(jù)。需以同樣的方式計算通過全部的這些連接的流動。非限制的例子包括在一個連接一組中全部連接上使用Darcy’s定律,在另一連接-組中全部連接上使用機械多相湍流計算,并且在另一連接-組中全部連接上使用基于預(yù)先定義的水力表格的多相流體流動計算。而且,在連接-組中每個連接應(yīng)該從在單元-組中的一個單元到在相同單元-組中的另一個單元,或從在單元-組中的一個單元到在特定其它單元-組中的另一個單元。
子模型包含一個或多個單元-組和零個或多個連接-組,其將一個特定的單元-組的單元相互連接或?qū)⒁粋€特定單元-組中的單元連接到其它子模型單元-組中的單元上。一個模型含有一個或多個子模型和零個或多個連接-組,其將這些子模型相互連接。
例如,如果模擬模型包括兩個單元-組,一個含有IMPES單元和一個含有全隱式單元,該模型可具有至少三個連接-組,如下1.IMPES單元-組中單元之間的連接;2.全隱式單元-組中單元之間的連接;3.IMPES單元-組中單元和全隱式單元-組中單元之間的連接。
模型和子模型對象特別地適用于進(jìn)行并行模擬計算。
與現(xiàn)有技術(shù)的模擬程序(其在單元上迭代進(jìn)行)相反,本發(fā)明的方法在單元-組對象上迭代。在進(jìn)行本發(fā)明的方法的迭代時,每個單元-組對象調(diào)用一個合適的迭代方法,其在它的單元上迭代并且在每個單元上進(jìn)行所需的計算。相似地,以前在連接上迭代進(jìn)行的計算現(xiàn)在通過在連接-組對象上迭代而進(jìn)行,每個連接-組調(diào)用其方法,其在它的連接上迭代并且在每個連接上進(jìn)行所需的計算。
每個連接-組對象“知道”(即,有詳細(xì)信息說明)它所連接的兩個單元-組或它將一個單元-組連接到其本身。相似地,每個連接-組的連接知道它所連接的兩個單元,一個在第一個單元-組中而另一個在其連接的第二個單元-組(其與第一個相同)中。
單元-組或連接-組對象提供一種以這樣的方式用于組織軟件的新方法中,其在一個簡單、恒定的結(jié)構(gòu)之內(nèi)正常地進(jìn)行復(fù)雜計算。有很多單元-組和連接-組類型需要進(jìn)行所需類型的計算。加入新的單元-組和連接-組不會增加程序整個結(jié)構(gòu)的復(fù)雜性。進(jìn)行新的單元-組和連接-組的計算所需的方法被封裝在它們的軟件“類”中。
模型和子模型對象提供一種方式來組織進(jìn)行與并行處理相關(guān)的具體計算。這些對象使以這樣方式進(jìn)行的并行處理變得可能,其最小化和防止額外帶來的復(fù)雜性。相對于過去所用的模擬程序,本發(fā)明可實際上不損失計算效率而得到其優(yōu)點。
在進(jìn)一步詳細(xì)描述之前,先對構(gòu)建單元和連接、并行計算和面向?qū)ο蟪绦蛟O(shè)計的基本理論進(jìn)行介紹以幫助讀者理解本發(fā)明。
單元和連接在實施本發(fā)明的方法中,將模擬的物理系統(tǒng)細(xì)分成多個體積單元。這些單元的數(shù)目從低于100到數(shù)百萬。利用有限差分、有限體積、有限元或相似的方法進(jìn)行離散化,這些方法基于將模擬的物理系統(tǒng)分成更小的單元。本發(fā)明的說明書主要指有限差分法。本領(lǐng)域的普通技術(shù)人員能夠認(rèn)識到本發(fā)明也能使用有限元法或有限體積法。當(dāng)應(yīng)用有限元法時,單元變成有限元,而當(dāng)應(yīng)用有限體積時,單元變成有限體積。在此專利中,為了簡化描述,使用術(shù)語“單元”,但是應(yīng)該理解如果一個模擬模型使用有限元法,術(shù)語“元”將代替用于說明書和權(quán)利要求書中的術(shù)語“單元”。無論使用什么方法,離散化將偏微分方程減少為代數(shù)方程的有限維系統(tǒng)。
在本發(fā)明的實際使用中,單元可以是任何幾何形狀,如平行六面體(或立方體)或六面體(典型地具有四個近似垂直的角邊,其可在長度上改變)或四面體、偏菱形、梯形或三角形。網(wǎng)格包括組織在規(guī)則的結(jié)構(gòu)模式(圖1A示出了一個實例)中的矩形單元。因此結(jié)構(gòu)單元具有相似的形狀和相同數(shù)目的邊或面。最常用的結(jié)構(gòu)網(wǎng)格是笛卡爾坐標(biāo)系的或極坐標(biāo)的,其中每個單元在兩維上有四條邊或在三維上有六個面。網(wǎng)格也包括各種形狀的布置在一個不規(guī)則的、非結(jié)構(gòu)的模式中的單元,或網(wǎng)格包括一些結(jié)構(gòu)和非結(jié)構(gòu)模式。當(dāng)其由具有形狀、尺寸和一定數(shù)目邊或面的多邊形(三維多面體)組成時,其從一個位置改變?yōu)榱硪粋€位置(二維非結(jié)構(gòu)網(wǎng)格實例在圖1B中示出,下面將進(jìn)一步討論細(xì)節(jié)),則稱該網(wǎng)格是靈活的或非結(jié)構(gòu)的。完全非結(jié)構(gòu)的網(wǎng)格可以結(jié)合起來假定任何形狀。優(yōu)選但不是必須的全部單元沿其它單元的邊界排列,因此避免了單元的任何邊與兩個其它單元的邊相接觸。
典型地常規(guī)儲層模擬模型假定多數(shù)的表示儲層的單元排布在結(jié)構(gòu)的笛卡爾網(wǎng)格中。圖1A示出了儲層三維域的常規(guī)表示實例。這種表示能夠通過一系列索引如(i,j,k)識別每個單元。笛卡爾網(wǎng)格系統(tǒng)的實例在圖1A中示出。參照圖1A,使用索引系統(tǒng)(i,j,k),單元(3,4,4)可用這種方式在計算機中表示。在笛卡爾的網(wǎng)格上定義的數(shù)據(jù)可用常規(guī)的可用于大多數(shù)程序語言的數(shù)組表示;本領(lǐng)域的普通技術(shù)人員可以用這樣數(shù)組表示適用于這些單元的數(shù)量。例如在單元(i,j,k)的壓力在FORTRAN程序設(shè)計語言中可以表示為P(I,J,K),其中P是具有適當(dāng)維數(shù)的浮點數(shù)組。這種方法具有容易知道單元的鄰近單元的方便特性。例如,在每個單元(i,j,k)的六個鄰近單元分別是P(I-1,J,K)、P(I+1,J,K)、P(I,J-1,K)、P(I,J+1,K)、P(I,J,K-1)和P(I,J,K+1)。其它單元定義的數(shù)值以相同方式處理。
如果流體可以直接傳輸?shù)絻蓚€單元之間,則認(rèn)為該單元是“連接的”,并且將流體表示為流過它們之間的連接。為這些單元的連接定義數(shù)量,正如定義單元本身那樣。將數(shù)量存儲在與包含在與單元定義量相同維數(shù)的數(shù)組中。例如,在單元(i,j,k)和單元(i+1,j,k)間i-方向可傳輸性可表示為TI(I,J,K),應(yīng)理解TI(NI,J,K)(其中NI是i的最大值)實際是不存在的,因為它將單元與模擬模型外的單元相連接。這與設(shè)定TI(NI,J,K)=0具有相同的效果。相似地,有j-方向的可傳輸性,TJ(I,J,K)在單元(i,j,k)和單元(i,j+1,k)間,和k-方向的可傳輸性,TK(I,J,K)在單元(i,j,k)和單元(i,j,k+1)間;其儲存在類似形式中。
在FORTRAN語言中,按照每個索引的允許最大尺寸限定三維數(shù)組。例如,當(dāng)提到P(I,J,K)時,前述討論的壓力數(shù)組限定尺寸為P(NI,NJ,NK),其中NI,NJ和NK分別是I,J和K所允許的最大值。FORTRAN在存儲器中排列數(shù)組元素,以使I值連續(xù)的元素彼此相鄰,J值連續(xù)的元素被NI個元素分開,并且K值連續(xù)的元素被NI*NJ個元素分開。P(I,J,K)的值中存儲在P數(shù)組的第IJK元素上,其中IJK=I+(J-1)*NI+(K-1)*NI*NJ。
雖然結(jié)構(gòu)網(wǎng)格容易使用,但它們在適應(yīng)儲層和井幾何的變化時缺乏靈活性并且不能有效地處理儲層中巖石和流體物理性質(zhì)的空間變化。這種不靈活性限制了結(jié)構(gòu)網(wǎng)格所能有效表達(dá)的烴系統(tǒng)的類型。已經(jīng)提出了試圖克服這些缺陷的各種改進(jìn)。例如,常需要對儲層一部分詳細(xì)地表示而對儲層其余部分粗略地表示。這可以通過局部加密性能來完成。這是可以實現(xiàn)的所以單元的矩形組由更小單元的網(wǎng)格所代替。例如,參照圖2A中示出的粗略網(wǎng)格系統(tǒng),在間隔(i=3,4,5;j=1,2;k=2,3)的單元可由圖2B中所示的更小單元的6×4×6網(wǎng)格來代替。與粗略網(wǎng)格(圖2A)相似,這個局部精細(xì)網(wǎng)格(圖2B)也是結(jié)構(gòu)的。
結(jié)構(gòu)網(wǎng)格在儲層中表示“尖滅”或消失的地質(zhì)層時有困難。圖3示出了單元層50至55的兩維表示,其中單元層52和53由于尖滅而消失,其在單元層51和54間允許直接地流動。表示尖滅的一種方式是在在模擬網(wǎng)格中對應(yīng)層也在這些位置消失。當(dāng)此發(fā)生時,在單元間就創(chuàng)建了連接,其正常情況下相互沒有通訊。已經(jīng)提出了模擬程序,其通過通常所述的特別或非-鄰近單元間連接來處理這種尖滅的問題。
通常,對包括明顯不同的流體流動環(huán)境的含烴儲層的模擬系統(tǒng)不能方便地通過結(jié)構(gòu)、矩形網(wǎng)格來處理。為了進(jìn)行這樣的模擬,必須提供不同流體環(huán)境間的連接。
圖4示出了非限制性的包含含烴巖層11的簡化的三維含烴系統(tǒng)的示意圖,該巖層11被多個井12a至12p(在圖中僅示出了一個井12a,通過上覆巖層18進(jìn)入巖層11)穿透。每個含有管道(未示出)的井提供了地表10和巖層11間的流體竄槽。從巖層11產(chǎn)生的流體經(jīng)過井12a-p,通過地表集輸管線14到達(dá)泵單元13a,13b,和13c,再通過其它集輸管線15a,15b和15c,進(jìn)入地表處理設(shè)備16a和16b,其為常規(guī)的油-水分離器(為了表示簡單,在井間和泵間的多條地表集輸管線中僅有三條用標(biāo)號14表示)。從處理設(shè)備,油通過管線17a而水通過管線17b用于進(jìn)一步加工和/或處理。儲層模擬包括模擬在巖層11,通過井12a-p,通過地表集輸管線14和15a-c和通過泵單元13a-c,和通過處理設(shè)備16a和16b的流體流動和組合。
為了進(jìn)行含烴系統(tǒng)的模擬,模擬典型地假設(shè)儲層計算處在不穩(wěn)定的狀態(tài)并且設(shè)備處在假-穩(wěn)定狀態(tài)。兩個假設(shè)之間的不同在于一個時間步長之間通過單元的流體流動的單元體積數(shù)目。典型地在儲層單元中,在一個時間步長之間進(jìn)入或流出單元的流體量僅僅是單元體積的一小部分。但是在地表系統(tǒng)中,一個時間步長中很多單元量經(jīng)過一個單元。結(jié)果,表面系統(tǒng)的時間常數(shù)的階比儲層的更小。在典型的時間步長期間內(nèi)地表系統(tǒng)達(dá)到有效的穩(wěn)定狀態(tài)。
已經(jīng)提出了將可變化(flexible)的網(wǎng)格用于結(jié)構(gòu)網(wǎng)格無效的情況。非結(jié)構(gòu)網(wǎng)格比結(jié)構(gòu)網(wǎng)格更容易符合流體流動環(huán)境廣泛地變化,并且因為這個原因已經(jīng)提出將非結(jié)構(gòu)網(wǎng)格用于模擬含烴系統(tǒng)。
用于本發(fā)明的方法和模型中的一種類型的可變化的網(wǎng)格是Voronoi網(wǎng)格。將Voronoi單元定義為空間區(qū),其比接近任何其它節(jié)點都更接近其所包含的中心節(jié)點,并且Voronoi網(wǎng)格就是由這樣的單元制成。每個單元與節(jié)點和一系列相鄰節(jié)點有關(guān)。在幾何意義上Voronoi網(wǎng)格局部性地正交;也就是說,對于連接在每個邊界的兩側(cè)上的節(jié)點的線來說單元邊界是垂直的。由于這個原因,更通常地將Voronoi網(wǎng)格稱作垂直對分(PEBI)網(wǎng)格。在一些情況中,矩形網(wǎng)格(笛卡爾網(wǎng)格)是PEBI網(wǎng)格的特別實例。PEBI網(wǎng)格具有表示儲層的廣泛地幾何變化的靈活性,因為能自由地選擇節(jié)點的位置。由在給定的域中分配節(jié)點位置產(chǎn)生PEBI網(wǎng)格,然后以這樣的方式產(chǎn)生單元邊界,即每個單元含有與該單元所包含的節(jié)點位置比與其它節(jié)點位置更接近的全部的點。
由于PEBI網(wǎng)格中的節(jié)點之間的連接被單元邊界垂直地等分,這明顯地簡化了各向同性滲透性(即,滲透性在各方向都相同,雖然其可以在空間上改變)情形的流動方程的求解。在這種情況下,將這樣的網(wǎng)格稱為“k-正交的”。對于k-正交的網(wǎng)格,在兩個單元之間的傳輸僅取決于兩個單元和它們之間的連接的性質(zhì)。對于各向異性滲透性,k-正交的條件更復(fù)雜,但通常可以形成滿足它的網(wǎng)格。即使當(dāng)這實際上不能操作時,從k-正交得到的偏差通常仍很小。在這種情況下,誤差也很小并且不需改變計算。如果從k-正交得到的偏差大,可以使用多點通量近似。當(dāng)使用多點通量近似時,兩單元間的傳輸取決于這兩個單元的性質(zhì)并還取決于特定相鄰單元的性質(zhì)。為了簡明,下述討論假定k-正交,但是本領(lǐng)域普通技術(shù)人員能通過基于本發(fā)明的教導(dǎo)將本方法擴(kuò)展到處理多點通量近似。
圖1B示出了二維PEBI網(wǎng)格的實例。點40表示單元節(jié)點,實線41表示單元邊界,并且連接節(jié)點的虛線42表示單元間的連接。典型地,兩個節(jié)點間的流體流動和其它傳輸現(xiàn)象被模擬為沿著它們之間連接的流動。如果僅通過三角形構(gòu)成,通過連接相鄰PEBI單元的節(jié)點形成網(wǎng)通常被稱為Delaunay網(wǎng)。在一個兩維的Delaunay網(wǎng)中,將儲層分成三角形,其中節(jié)點位于三角形的各頂點,這樣用三角形添滿儲層。當(dāng)經(jīng)過三角形的各頂點(外心)的圓不含有任何其它的節(jié)點在其中時,這樣的三角形劃分就是一個Delaunay網(wǎng)。在三維中,將儲層區(qū)域分解成四面體,這樣儲層體積完全被添滿。當(dāng)經(jīng)過四面體各頂點(外接球心)的球面不含有任何其它的節(jié)點在其中時,這樣的三角劃分就是一個Delaunay網(wǎng)。為了更詳細(xì)地描述PEBI網(wǎng)格的產(chǎn)生,參見Palagi,C.L.和Aziz,K.“在儲層模擬中PEBI的使用”,在第66屆技術(shù)年會和展覽會,Dallas,TX(1991年10月6-9日)發(fā)表的論文第SPE22889頁。
在非結(jié)構(gòu)網(wǎng)格上的計算使用基于單元和連接的數(shù)據(jù)結(jié)構(gòu)。例如參見K.T.Lim,D.J.Schiozer,K.Aziz的論文,“A New Approachfor Residual and Jacobian Array Construction in ReserviorSimulators”,在1994 SPE石油計算機會議,Dallas,Texas,1994年7月31日到8月3日,提出了單元和連接的使用。將壓力數(shù)組的維數(shù)設(shè)定為等于單元數(shù),在單元n的壓力被寫為P(N)。將前述的這三個可傳性數(shù)組合并成一個單個數(shù)組,其維數(shù)大到足以包含全部的可傳性。伴隨這個數(shù)組,也必須有兩個整數(shù)數(shù)組指示給定的可傳性所連接的兩個單元。例如,單元保持它們在前邊討論的結(jié)構(gòu)網(wǎng)格實例中相同的順序。在新的數(shù)據(jù)結(jié)構(gòu)中,P(N)對應(yīng)于P(I,J,K),其中N=I+(J-1)*NI+(K-1)*NI*NJ。如果T(M)對應(yīng)于TK(I,J,K),那么這兩個整數(shù)具有值IL(M)=N和IR(M)=N+NI*NJ。
本發(fā)明方法和程序是不限于特定維數(shù)的模擬。預(yù)測程序可以被構(gòu)造為物理域的一維(1-D),二維(2-D)和三維(3-D)模擬。在儲層模擬應(yīng)用中,1-D模型很少用于儲層研究中,這是由于其不能模型面積和垂直掃描。預(yù)測置換效率的1-D注氣模型不能有效地表示垂直于流動方向的重力影響。但是能將1-D注氣模型用于調(diào)查儲層動態(tài)對工藝參數(shù)變化的靈敏性和解釋實驗室置換試驗。
當(dāng)面流模式在儲層動態(tài)中占主導(dǎo)時,可使用2-D面流體注入模型。例如通常地將平面模型用于比較可能的布井模式或評估平面不均勻性儲層對儲層動態(tài)的影響。當(dāng)在垂直截面在儲層動態(tài)中占主導(dǎo)時,能使用2-D截面和徑向氣體注入模型。例如,通常地將截面或徑向模型用于模擬重力占主導(dǎo)的進(jìn)程,如頂部注氣或注氣到具有高垂直滲透性的儲層中,并且評估垂直不均勻性對儲層動態(tài)的影響。
可能需要用3-D模型有效地表示復(fù)雜儲層的幾何形狀或復(fù)雜的流體力學(xué)。例如模型可以是包括PEBI網(wǎng)格層的3-D模型,其在石油工業(yè)中有時稱為2-D。層狀的PEBI網(wǎng)格在平面向上是非結(jié)構(gòu)的而在垂直上是結(jié)構(gòu)的(層狀的)。層狀的3-D網(wǎng)格的結(jié)構(gòu)描述在(1)Heinemann,Z.E.,等人“modeling Reservoir Geometry With Irregular Grids”SPE儲層工程,1991年5月和(2)Verma,S.等人“A Control VolumeScheme for Flexible Grids in Reservoir Simulation”SPE37999,SPE Reservoir Simulation Symposium,Dallas,TX,1997年6月。
并行計算為了減少模擬計算所需的時間,可能需要在并行的幾個中央處理器單元(CPU)上進(jìn)行模擬。在單個單元中這些CPU能共享存儲器或在連接在網(wǎng)絡(luò)中的幾個CPU每個都有其自己的存儲器。這兩種類型的系統(tǒng)分別使用所謂的共享存儲器和分布式存儲器。而且,可將幾個多CPU單元連接在網(wǎng)絡(luò)中,形成混合分布式-共享存儲器系統(tǒng)。
不管是共享還是分布式存儲器,在模擬計算中必須以相同的方式達(dá)到并行性。通常將模型細(xì)分的計算單元稱作“域”。例如,如果兩個CPU可用,在圖5A中的網(wǎng)格模型可被分成兩個域,如圖5B和5C所示。典型地這種劃分使所有的域含有盡可能相同數(shù)目的單元。在圖5A示出的實例中,兩個域(圖5B和5C)含有恰好相同數(shù)目的單元。將各個域分配至兩個CPU中的一個,并且每個CPU進(jìn)行與該域相關(guān)的幾乎所有的計算。在計算中的某步,域間的數(shù)據(jù)傳輸是必要的,并且因此,在CPU之間也是如此。使用了有時被稱為“信息傳送”來實現(xiàn)這點。在模型中,各個單元被分配到兩個域中的一個。在相同域中單元間的各個連接也被分配到那個域中。在不同域中單元間的連接可看作是屬于其中一個域、屬于兩個域或兩個都不屬于。在本發(fā)明中,優(yōu)選認(rèn)為域間的連接不屬于域但是被兩者使用。在任何情況下,域間連接需要不同于域內(nèi)連接的處理。
面向?qū)ο蟪绦蛟O(shè)計實現(xiàn)本發(fā)明的方法和模型是使用面向?qū)ο蟪绦蛟O(shè)計(“OOP”)技術(shù)實現(xiàn)的。最常用的OOP程序設(shè)計語言是Simula,Eiffel,C++,Smalltalk,Objective-C或其變化。但是,本發(fā)明的實施不限于特定的OOP語言。OOP的設(shè)計是本領(lǐng)域普通技術(shù)人員公知的,因而將只做概述。面向?qū)ο蟪绦虻脑O(shè)計和操作更詳細(xì)的描述在“What EveryProgrammer Should Know About Object-Oriented Design”,作者M(jìn)eilir Page-Jones,Dorset House出版,New York,1995。
在面向?qū)ο蟪绦蛑?,首要地?yīng)注意數(shù)據(jù)而其次是訪問該數(shù)據(jù)的函數(shù),而不是首要地關(guān)心函數(shù)而其次是它們所需要的數(shù)據(jù)。與主要由過程描述的程序(其中對各個過程輸入和輸出數(shù)據(jù))相反(如用FORTRAN或COBOL編寫的程序),面向?qū)ο蟪绦驀@“對象”組織。對象是數(shù)據(jù)結(jié)構(gòu)和一系列能訪問該數(shù)據(jù)結(jié)構(gòu)的操作或函數(shù)。典型地OOP系統(tǒng)包含大量對象。每種訪問數(shù)據(jù)結(jié)構(gòu)的操作(函數(shù))被稱為“方法”。各個對象是“類”的成員。這樣一個對象就是類的一個“例子”,其為該類的一個成員。類定義了與對象相關(guān)的信息(其數(shù)據(jù))和它可以執(zhí)行的操作(其方法)。OOP使得對象可以模擬真實世界的實體,通過數(shù)據(jù)表現(xiàn)其特征,而通過使用該數(shù)據(jù)的可執(zhí)行的操作表現(xiàn)其行為。這樣,對象能模擬具體的事物如儲層模擬中的單元和如數(shù)這樣的抽象概念。對于本發(fā)明的目的,OOP的優(yōu)點來自于三條基本原理封裝、多態(tài)性和繼承。
對象隱藏或封裝了它們的數(shù)據(jù)的內(nèi)部結(jié)構(gòu)和它們的函數(shù)所用的算法。盡管沒有暴露實施細(xì)節(jié),對象呈現(xiàn)的接口清楚地表明了它們的概要,而沒有無關(guān)的信息。接口僅允許有限數(shù)目的外界和對象之間的交互作用。C++程序設(shè)計中,多數(shù)這些交互作用包括對象調(diào)用方法。通過調(diào)用對象的方法,外界能告知對象作一些事,但是對象怎樣進(jìn)行這個動作的細(xì)節(jié)對外界是不顯示的。實際上,對象封裝其數(shù)據(jù)和方法并且對外界隱藏它們。
多態(tài)性使封裝更進(jìn)一步。一個軟件的部件可以請求另一個部件,而不確切知道那個部件是什么。該部件收到請求并解釋它并且根據(jù)其變量和數(shù)據(jù)決定怎樣執(zhí)行此請求。
繼承允許開發(fā)者再使用已經(jīng)存在的設(shè)計和代碼。通過創(chuàng)建對象的新的超類和子類,繼承使以前寫的程序變寬。新的對象通過用它們與已經(jīng)存在的對象如何不同來描述,而不需要編寫整個新程序來處理新的類型的數(shù)據(jù)或函數(shù)。通用的數(shù)據(jù)和方法屬于“基”類。更特定的類“繼承”這些數(shù)據(jù)和方法并定義它們自己的數(shù)據(jù)和方法。這些特定的類“派生自”基類。
可用實現(xiàn)三種多邊形的類來說明繼承的一個例子。例如,多邊形可以為三角形、矩形或六邊形。參照圖6,這三個多邊形可用稱作多邊形20的基類和三個派生的稱作三角形21、矩形22和六邊形23的三個派生類來實現(xiàn)。在圖6中用小三角形說明在其下邊的類從其上邊的類繼承得到。
在這個實例中,多邊形可以是三角形、矩形或六邊形。不論其是哪種,它都有“面積”和“顏色”。因此,基類多邊形包含稱為面積和顏色的數(shù)據(jù)項。所述的三個派生類(三角形、矩形和六邊形)從基類繼承了這些數(shù)據(jù)項。而且,與三個派生類相同的方法也可能出現(xiàn)在基類中。例如,基類方法可以定義數(shù)據(jù)項“面積”和“顏色”,為它們分配存儲器并且對其初始化。但是,對于三種多邊形中每種的面積計算是不同的,所以每個派生類必須為這個計算提供自己的方法。這樣,三角形、矩形和六邊形每個都有一個方法稱為compute_area,其需要進(jìn)行計算面積的操作,而不管這些操作是什么。外界可包含例如多邊形對象的數(shù)組,其中一些是三角形對象,一些是矩形對象而一些是六邊形對象。其能通過請求compute_area得到這些對象的各個面積。為了獲得特定的多邊形面積,外界不必知道其怎么計算出它的面積。實際上,外界不需要知道其為何種類型的多邊形。
對象能包含其它的對象。例如,圖能包含多邊形。參照圖7,將圖實現(xiàn)為對象,其為一個稱為圖25類的例子。這個對象可以包含多邊形26對象。在圖7中,菱形27說明上類的對象圖25,包含未定義的數(shù)目的下類的對象的多邊形26。在這個例子中,允許的多邊形對象的數(shù)目為零或更多,由于圖不必需含有多邊形。
對于一個對象,外界是應(yīng)用程序的更高級代碼,其使用對象完成其目的。封裝、多態(tài)性和繼承允許高級代碼處理在類型上相似但不相同的對象,就仿佛它們在實際上在類型上是相同的一樣。這大大地簡化了高級代碼,使其比起用過程語言來,能夠用來編寫執(zhí)行更復(fù)雜操作的代碼。單元和連接計算能將在每個時間步長進(jìn)行的大多數(shù)模擬計算分成三大類1.流體和傳輸性質(zhì)測定;2.組合一個或多個矩陣方程;和3.求解該矩陣方程。
在單元上定義流體性質(zhì)并且由此在單元上迭代測定。將傳送性質(zhì)賦予連接,盡管一些能定義在單元上。總的說來,結(jié)合在單元和連接上的迭代用來測定傳輸性質(zhì)。矩陣方程包含定義在單元上的數(shù)量和定義在連接上的數(shù)量。因此,它的組合在單元和連接上的迭代的結(jié)合來進(jìn)行。
組合矩陣方程后,必須對其求解。本領(lǐng)域普通技術(shù)人員知道有很多方法求解矩陣方程。典型地,這些需要在單元的連接上、在單元上、和有可能在所有的連接上進(jìn)行迭代。因此,求解需要附加的信息-各個單元的連接列表。列表可以采用不同的形式,例如矩陣的一行上的非對角線系數(shù)(off-diagonal coefficient)的索引的列表和各列的列表。無論其列表的形式如何,該列表應(yīng)當(dāng)有效地確定各單元之間的連接。單元-組對象和連接-組對象本發(fā)明的一個具體實施方式
使用至少兩個對象的類,其基于面向?qū)ο蟪绦蛟O(shè)計的原理進(jìn)行定義一個類的例子含有一個或多個單元,而另一個類的例子含有一個或多個連接。在其它的具體實施方式
中,也可使用附加對象,例如,但不限于,含有整個模型的對象和/或含有整個模型的一部分的對象。
圖8A和8B說明了單元和相關(guān)的連接的簡化實例。圖8A示出了編號為0到7的8個單元的二維表示。單元0、1、4和5表示第一個模擬域的單元并且單元2、3、6和7代表第二個模擬域的單元,其與第一個域相鄰。圖8B示出了圖8A八個單元和在單元間的10個連接。示出了這10個連接(由字母a,b,c,d,e,f,g,h,i和j表示)。每個連接都用正方形和連到該連接所連接的兩個單元的線表示。例如,連接“a”表示單元0和單元1之間的連接,連接“g”表示單元0和單元4之間的連接。
圖9示出了依照本發(fā)明實踐,圖8B的單元和連接如何成為組的實例。參照圖9,單元-組20包含單元0、1、4和5;單元-組21包含單元2、3、6和7。連接-組30含有連接a、g、h和d;連接-組31含有連接b和e;并且連接-組32含有連接c、i、j和f。單元-組20和21由在同一個域中的單元形成。同一域中的連接來形成連接30和32并且形成連接-組31以表示連接第一個域的單元和第二個域的單元的一系列連接。
本發(fā)明使用面向?qū)ο蟪绦蛟O(shè)計理論,其包含各種類型的單元來實施計算。通過指定至少三個特性-其物理類型、其計算方法和其流體表達(dá)式(fluid representation)來決定每個單元的類型。
對于儲層模擬,每個單元均可為下列非限制性物理類型的實例中的一種
1.儲層。這是最普通單元類型。
2.裂縫。這個單元例如可表示裂縫性儲層的雙孔隙度-雙重滲透率。
3.井。在生產(chǎn)井中,流體流動從儲層進(jìn)入這個單元。井包含單個井單元或多井單元。在前者的例子中,從儲層進(jìn)入單元的流體離開單元流到地表集輸設(shè)備。在后者的例子中,流體從一個井單元流到下一個,直到井單元連接到地表集輸設(shè)備。從這個井單元,流體進(jìn)入地表集輸設(shè)備。
4.管道。管道單元表示管道的一段。這個管道可在地表集輸系統(tǒng),或其可以表示井管道系統(tǒng),其將采出液傳輸至地表。
5.分離器。單個流體流動進(jìn)入分離器,并且有兩個或更多的物流離開。典型地分離器將從烴中分離水或從蒸氣烴中分離液態(tài)烴。
其它類型的單元是可能的并且本發(fā)明不限于上邊列出的實例。本領(lǐng)域普通技術(shù)人員可以開發(fā)其它的適于特定的模擬應(yīng)用單元類型。
圖10示出通過方框61、62、63、64和65表示五個類,其基于上述列出的五個單元類,其派生自單個基類(表示為CellGroup 60)。CellGroup 60含有對五個派生類61、62、63、64和65共用的數(shù)據(jù)和過程。每個派生類(如類61,儲層單元組)包含那個類特有的數(shù)據(jù)和方法。在圖10中的三角形66表示作用面向?qū)ο蟪绦蛟O(shè)計術(shù)語的繼承。這意味著對于五個派生類(61-65)都相同的數(shù)據(jù)和方法僅僅需要在基類-CellGroup 60中定義。
必須為每個單元選擇計算方法。計算方法的非限定例子包括1.IMPES。
2.全隱式。
可用對于前述五個派生類相同的方式實施計算方法。結(jié)果,將計算方法和其所需的數(shù)據(jù)置于基類-CellGroup 60中。五個派生類(類61-65)中都從CellGroup 60繼承計算方法。
根據(jù)存在哪些成分、是否包含能量和怎么計算屬性來定義單元的流體表達(dá)式。一部分模擬模型可以用一系列成分來表示儲層流體,而另一部分用第二系列成分來表示??蛇x擇地,在一部分模型而不在另一部分中進(jìn)行能量平衡計算。對于給定的組件系列,可以以不同的方式計算性質(zhì)。下面列出非限制的性質(zhì)計算1.油-水重質(zhì)油。
2.油-氣重質(zhì)油。
3.氣-水重質(zhì)油。
4.油-氣-水重質(zhì)油。
5.油-水熱量的(thermal)。水可以在液相或在氣相中(例如蒸汽)。
6.油-氣-水熱量的。
7.狀態(tài)方程組合的(compositional)。
8.平衡值組合的。
9.狀態(tài)方程組合的熱量的。
10.平衡值組合的熱量的。
象在前邊討論的計算方法,在圖10的基類-CellGroup 60中實施流體性質(zhì)計算。
每個單元-組對象包含從每個單元特性的三大類中的一個選擇。例如,假定單元-組對象的物理類型是“井”,其計算方法是“全隱式”,并且其流體表達(dá)式使用油-氣-水重質(zhì)油。因此其含有全隱式井單元,其中用組分“油”、“水”和“氣”通過重質(zhì)油計算來測定流體性質(zhì)。
對于其組成而言上邊列出單元-組的前6種類型是特定的,其為六種類型使用的組成。后四種不是特定的;將它們的組成定義為部分模擬模型的輸入數(shù)據(jù)。對于后四種單元-組類型,組成數(shù)和它們的含義隨單元-組變化,但是必須將它們固定在一個給定的單元-組中。
在前述的例子中,可有5×2×10或100種可能的物理單元類型、計算方法和流體表示法的組合,但是僅需要一個基類和五個派生類實施它們。而且,由于使用了繼承,派生類僅需要實施它們特有的特性。
所有的單元組類均源自單一的基類使得可以多態(tài)性地處理它們。例如,在C++中,含有單元-組的高級代碼可以通過指針數(shù)組使其訪問基類-CellGroup 60。這允許高級代碼使用對象而不用知道它們是什么特定種類的單元-組。
假定使用多單元-組對象,也要使用多連接-組對象。必須將在模擬模型中每個連接都放在連接-組的一個中。各個連接-組連接兩個單元-組或一個單元-組與它自己。每個連接-組進(jìn)行某種類型的傳輸計算。連接-組的各個類型僅與某種類型單元-組相連接。例如,由一個多相湍流連接連接兩個儲層單元是不對的。另外,可將給定類型的連接-組連接幾種類型的單元-組上。例如,一個多相湍流連接可將井單元-組連接至地表集輸單元-組上,將地表集輸單元-組與其自己相連,或?qū)⒌乇砑攩卧?組和分離器單元-組相連。
通過指定至少三種屬性來決定每個連接-組類型(1)其如何計算流體傳輸,(2)其所連接的單元-組的計算類型,和(3)其是否連接在利用不同組件設(shè)置的單元-組上。
如何計算出傳輸?shù)幕A(chǔ)的非限制性實例如下,全部涉及物理單元類型1.使用表格查閱法的沒有滯后的Darcy定律。例如適用于在儲層中單元間的流動。
2.使用表格查閱法的沒有滯后(hysteresis)的Darcy定律。例如適用于在儲層中單元間的流動。
3.使用冪律方程的Darcy定律。例如適用于在儲層中單元間的流動。
4.裂縫至裂縫流動。
5.儲層至裂縫流動。
6.機械多相湍流。例如適用于井至井,井至管道,管道至管道和管道至分離器的流動。
7.用表格計算的多相流動。例如適用于井至井,井至管道,管道至管道和管道至分離器的流動。
8.儲層至井流動。
9.裂縫至井流動。
相連的單元-組的計算類型的非限定性實例包括1.IMPES-IMPES。
2.全隱式-全隱式。
3.IMPES-全隱式。
基于用于連接的單元-組中的流體表達(dá)式,在單元-組中的流體表達(dá)式可表示如下1.用于兩個單元-組中相同流體的表達(dá)式;或2.用于兩個單元-組中不同流體的表達(dá)式。
圖11圖解地說明了為實施前面所列出的九種物理單元類型的九種流動可能性所需的類和所得到的這些類的繼承關(guān)系。在圖11中用框70表示的并稱為ConnGroup的基類可以包含用于下述三個類的共用數(shù)據(jù)并執(zhí)行共用函數(shù)1.全部儲層-儲層,儲層-裂縫和裂縫-裂縫流動。稱這為ResResConnGrop類,其在圖11用框71表示。
2.儲層-井和裂縫-井流動。稱這為ResWellConnGroup類,其用框72表示。
3.在設(shè)備網(wǎng)絡(luò)中流動。稱這為FacFacConnGroup類,用框73表示。
參照圖11,需要ResResConnGrop(框71)的三種形式;一種形式進(jìn)行全隱式-全隱式計算(框74),另一種進(jìn)行IMPES-IMPES計算(框75),和再一個進(jìn)行IMPES-全隱式計算(框76)。ResWellConnGroup類(框72)需要兩種形式全隱式-全隱式(框77)和IMPES-全隱式(框78)。在設(shè)備網(wǎng)絡(luò)中(框73),只進(jìn)行全隱式計算,這是由于IMPES方法的穩(wěn)定性限制。結(jié)果,F(xiàn)acFacConnGroup類僅需要隱式-隱式形式。三角形80、81和82說明下面的類繼承上面的類。
而且,如果計算熱效應(yīng),必須進(jìn)行能量傳輸計算??蓪⒛芰康膶α骺醋魇桥c質(zhì)量對流相似。因為能量也能通過傳導(dǎo)來傳輸,如果需要也可包含傳導(dǎo)計算,特別是對于那些儲層內(nèi)的連接類型。在其它的連接類型中,對流能量傳輸占優(yōu)勢并且包括傳導(dǎo)計算是不實際的。對流能量傳輸通常被認(rèn)為非常類似于對流質(zhì)量傳輸,不必單獨處理。需要將傳導(dǎo)能量傳輸分開處理,由此上述列出的九種傳輸計算類型的每一種原則上都需要進(jìn)行傳導(dǎo)計算;但是實際上,通常地僅在儲層中需要進(jìn)行傳導(dǎo)計算。
本發(fā)明的方法也包括考慮化學(xué)反應(yīng)的計算。在沒有化學(xué)反應(yīng)的情況下,質(zhì)量守恒意味著化合物守恒。在有化學(xué)反應(yīng)的情況下,由于可生成和破壞化合物,質(zhì)量守恒意味著元素的守恒?;瘜W(xué)反應(yīng)也產(chǎn)生或消耗能量。包含化學(xué)反應(yīng)不會改變本發(fā)明的方法。其僅有的影響是加入新型的單元-組和連接-組,本領(lǐng)域普通技術(shù)人員在基于本說明書的教導(dǎo)下可進(jìn)行這樣的加入。
本發(fā)明前面的說明中,僅使用了兩個對象類型單元-組和連接-組。在本發(fā)明的另一個具體實施方案中,本方法也可以包含一個或多個子模型對象和一個或多個模型對象。將這些對象作為單元-組和連接-組的容器。子模型對象含有一個或多個單元-組對象和零個或多個連接-組對象。子模型中任何連接-組使一個子模型單元-組中的單元和相同單元-組中的其它單元相連,或使一個子模型單元-組中的單元和其它子模型單元-組中的單元相連。一個模型對象含有一個或多個子模型對象和零個或多個連接-組對象,該連接組對象的每一個均使模型的一個子模型的一個單元-組和模型的另一個子模型中的一個單元-組相連。在子模型內(nèi)部的連接-組對于模型來說是不可見的。
圖12為簡化示意圖,其圖示了稱為Model 85、SubModel 86、CellGroup 87和ConnGroup 88的類的包含關(guān)系。菱形符號89、90、91和92表示在面向?qū)ο蟪绦蛟O(shè)計中所使用的術(shù)語“包含”。參照圖12,Model 85含有一個或多個SubModel 86。如果僅有一個SubModel86,將沒有Model 85直接包含的ConnGroup 88。如果有兩個或更多SubModel 86,并且它們之間有連接,模型85將含有一個或多個ConnGroup 88。每個SubModel 86將至少含有一個CellGroup 87。SubModel 86不需要含有任何ConnGroup 88。
圖13A說明了被分成四個空間域100、101、102和103的物理域。每個域含有單元和連接數(shù)據(jù)。在儲層模擬方程的公式制定中,制作了三種計算的基本類型只有單元、只有連接和單元-連接-單元。只有單元和只有連接的計算是自給的(self-contained)的并且可以不共享信息而并行執(zhí)行。沿著兩個域之間邊界的單元-連接-單元計算需要兩個域的信息。例如,一個單元到另一個連接的單元的壓力差是連接量并且可按如下計算dp(連接)=p(″左″單元)-p(″右″單元)需要連接兩側(cè)的單元數(shù)據(jù),所以這是單元-連接-單元計算。給連接指定“左”和“右”側(cè)。指定從左向右的流動為正。象這樣的單元-連接-單元計算可通過在連接-組的連接中迭代而方便地進(jìn)行。如果連接的一側(cè)的單元數(shù)據(jù)不包含在當(dāng)前域中,則該單元數(shù)據(jù)必須得自相鄰的域。
因為包含在計算中僅有的單元是相連的兩個,前面一段中的討論假定K-正交網(wǎng)格。如果使用多點通量近似,能將其它鄰近單元包括在計算內(nèi)。連接-組必須知道對于其每個連接來說這些其它的鄰近單元是什么,和其必須包含的其它信息。在本專利的教導(dǎo)下,本領(lǐng)域的普通技術(shù)人員將會熟悉那些為包含這種附加信息所需的對本發(fā)明的擴(kuò)展。這樣的擴(kuò)展引入了連接可以包含超過兩個單元-組的可能性。這意味著,對于包含在一種連接計算中的各個特有系列的單元組,可以有至少一個的多點通量近似連接組,而不是對于每個對連接的單元組均有至少一個連接組。
基于這些需要,可將域分為單元數(shù)據(jù)和連接數(shù)據(jù)的組。某種連接的計算需要鄰近域的單元信息。對于圖13A中示出的實例而言,假定僅在域100和101,100和102,101和102,102和103之間有連接,但是在域100和103之間和域102和101之間沒有單元連接。
在一個域內(nèi),將單元和連接劃分進(jìn)不同的單元-組中。單元組由對于特定系列的域的連接計算所涉及的全部單元組成。可將域100劃分進(jìn)四個單元-組100a、100b、100c和100d中,其在圖13B中表示出。例如在域100中,單元-組100a是僅連接于其它域100的單元的所有的單元的集合。單元組100b是僅連接于域101的單元的所有的單元的集合。單元組100c是一系列僅連接于域102的單元的所有單元的集合。單元組100d是連接于域101和102的所有單元的集合。一個單元只屬于一個單元-組。圖1 3C表示對于四個域100、101、102和103的四個單元組(域100的單元-組100a、100b、100c、100d;域101的單元-組101a、101b、101c、101d;域102的單元-組102a、102b、102c、102d;和域103的單元-組103a、103b、103c、103d)。在域100中的連接計算包括全部域100的單元-組和域101和102的一些單元-組。對于域100的單元-組示出在圖13C的虛線110中。
為了進(jìn)行域內(nèi)連接的計算,將連接劃分進(jìn)一系列連接-組。對于與特定域相關(guān)的各個單元-組,有相應(yīng)的連接-組將單元-組中的單元連接至相同單元-組中的(假定存在這樣的連接)其它單元。對于域100,這些可在圖13D中用箭頭200、201、202、和203表示。
其它連接-組連接一個單元-組的單元和其它單元-組的單元,其在圖13E中用箭頭204、205、206和207表示。
另一些連接-組連接一個域的單元-組和另一個域的單元-組。如在圖13F中用箭頭表示,將域100的單元-組100b和101d連接至域101的單元-組101b和101d,其由箭頭208和209表示并且將域100的單元-組100c和100d連接至域102的單元-組102c和102d,其由箭頭211和210表示。
圖13A的整個網(wǎng)格表示域可由圖12中的Model 85表示。Model85含有四個SubModel86,每一個表示四個域中的一個(100、101、102和103)。Model85還含有八個ConnGroups88兩個將域100連接至域101,兩個將域100連接至域102,兩個將域101連接至域103,和兩個將域102連接至域103。每個SubModel86含有四個CellGroup。對于域100,將這些子組示出在圖13B中。組100a中單元僅與域100中的其它單元連接,組100b中單元與域101中的單元和域100的單元相連,組100c中單元與域102中的單元和域100的單元相連,和組100d中單元與域101和102中的單元和域100的單元相連。在組100b、100c和100d中單元是那些域101和/或102需要其數(shù)據(jù)的組。域100需要域101和102中相似的單元-組的數(shù)據(jù)。這些是圖13F中陰影區(qū)域。
圖14圖示本發(fā)明操作的硬件和軟件系統(tǒng)。此系統(tǒng)包括一個或多個計算單元200和201,顯示終端203,和非易失性數(shù)據(jù)儲存裝置204。每個計算單元包括兩個易失性存儲裝置205和206,典型地為隨機存儲器(RAM),為面向?qū)ο蟪绦?07,現(xiàn)役數(shù)據(jù)和中間結(jié)果(將其安裝在兩個計算部件205和206中)提供工作存儲,和一個或多個中央處理器(CPU)以執(zhí)行一個或多個域的計算。為了圖示的目的,對于計算單元200僅示出了兩個計算域208和209并且對于計算單元201示出了兩個計算域210和211。在圖14中,示出了與計算單元200相關(guān)的兩個CPU217和218,和與計算單元201相關(guān)的兩個CPU219和220。計算單元200和201可為大型計算機、小型計算機、工作站或個人計算機。當(dāng)本發(fā)明中使用超過一個計算單元時,通過高速連接將計算部件連接在一起,其在圖14中符號地表示為編號225的連接。非易失性數(shù)據(jù)存儲裝置204用于面向?qū)ο蟪绦?07和數(shù)據(jù)的永久儲存。其正常地包括直接存取存儲裝置(DASD),并且其可包括磁帶機,可擦寫光盤驅(qū)動器,或其它已知設(shè)備。顯示終端203可包括屏幕或其它顯示器,和鍵盤。
本發(fā)明能以軟件或軟硬件組合來實施。當(dāng)實施全部或部分軟件時,發(fā)明能永久地或暫時地駐留于任何存儲器或存儲介質(zhì)上,包括但不限于RAM、只讀存儲器(ROM)、一個或多個磁盤、特定應(yīng)用集成電路(ASIC)、可編程只讀存儲器,等等。
已經(jīng)描述了本發(fā)明的原理和應(yīng)用該原理的最佳方式。明顯地本領(lǐng)域普通技術(shù)人員可對上述具體實施方式
進(jìn)行各種改變而不背離在下列權(quán)利要求中本發(fā)明的精神和范圍。因此,可以理解本發(fā)明不限于所述明和描述的特定細(xì)節(jié)。
權(quán)利要求
1.一個使用面向?qū)ο蟪绦騺眍A(yù)測含流體的物理系統(tǒng)中至少一種流體的性質(zhì)的方法,所述方法包括制定模擬對象的類,所述模擬對象的類包括單元-組類和連接-組類,并且在計算機上運行該程序以確定該物理系統(tǒng)中至少一種流體的作為時間的函數(shù)的性質(zhì)。
2.權(quán)利要求1的方法,其中物理體系包括含烴的地下巖層。
3.權(quán)利要求1的方法,其中物理體系包括與來自地下含烴巖層的烴的生產(chǎn)相關(guān)的含流體裝置。
4.權(quán)利要求1的方法,其中物理體系由單個模型對象表示。
5.權(quán)利要求4的方法,其中物理體系由多個子模型對象表示,每個子模型對象表示一部分的物理體系。
6.權(quán)利要求1的方法,其中單元-組的全部單元具有共同的性質(zhì)。
7.權(quán)利要求1的方法,其中相同地處理對于連接-組的全部連接的所有傳輸現(xiàn)象。
8.權(quán)利要求1的方法,其中將物理體系分成多個域并且程序包括單元-組對象和與每個域中單元和連接相關(guān)的連接-組對象,和與一個域的單元與另一個域的單元之間的連接相關(guān)的連接-組對象。
9.權(quán)利要求1的方法,其中單元在非結(jié)構(gòu)網(wǎng)格中。
10.權(quán)利要求1的方法,其中多個單元中的單元僅屬于一個單元-組對象。
11.權(quán)利要求1的方法,其中單元是PEBI網(wǎng)格單元。
12.權(quán)利要求1的方法,其中單元是三維的。
13.權(quán)利要求1的方法,其中單元的網(wǎng)格是平面上非結(jié)構(gòu)和垂直上結(jié)構(gòu)的。
14.權(quán)利要求1的方法,其中進(jìn)一步包括在連接在一起的多個計算單元上運行程序。
15.權(quán)利要求1的方法,其中進(jìn)一步包括使用多個CPU在多個域上運行程序。
16.一種使用面向?qū)ο蟪绦騺砟M復(fù)雜系統(tǒng)特性的方法,包括步驟a)將物理系統(tǒng)離散化為多個體積單元;b)產(chǎn)生多個表示單元對單元傳輸現(xiàn)象的連接;c)產(chǎn)生多個對象來定義該復(fù)雜的系統(tǒng),所述的對象包含單元-組和連接-組;和d)在面向?qū)ο竽M程序中使用對象來模擬復(fù)雜體系的一個特性。
17.一種在含烴儲層和與其相關(guān)的井和設(shè)備中模擬流體流動的方法,所述的方法包括a)將物理體系離散化為多個體積單元;b)根據(jù)所選擇的單元特性將所述的體積單元形成組;c)構(gòu)造一個與各組單元相關(guān)的單元-組對象,所述的單元-組對象含有與其相關(guān)的一組單元所需的信息;d)定義在其中各對單元之間的流體可以流動且能量可以傳輸?shù)倪B接;e)匯集一系列控制在該連接中各對單元之間流體流動和能量傳輸?shù)姆匠?;f)將所述的各對單元間的連接形成組,各組均連接一對單元-組對象;g)構(gòu)造一個與各組連接相關(guān)的連接-組對象,所述連接組對象包含與其相關(guān)的各組連接所需的信息;h)用所述的單元組-對象和連接組-對象模擬流體流動和能量傳輸,來計算各單元所含流體的性質(zhì)并計算通過該連接的流體的流動和能量的傳輸;和i)使用步驟(h)的模擬結(jié)果來模擬含烴儲層和與其相關(guān)的井和裝置之中的流體流動。
18.權(quán)利要求17的方法,其中單元是PEBI網(wǎng)格單元。
19.權(quán)利要求17的方法,其中單元是三維的。
20.權(quán)利要求17的方法,其中單元形成了一種平面上非結(jié)構(gòu)而垂直上結(jié)構(gòu)的網(wǎng)格。
21.一種模擬在含烴儲層及其相關(guān)的井和裝置中流體流動的方法,所述方法包括a)將物理系統(tǒng)離散為多個體積單元;b)將所述體積單元形成域;c)根據(jù)所選擇的單元特征,將各個域中的體積單元形成組;d)構(gòu)造一個與各組單元相關(guān)的單元-組對象,所述單元-組對象包含與其相關(guān)的各組單元所需的信息;e)定義在其中各對單元之間的流體可以流動且能量可以傳輸?shù)倪B接;f)匯集一系列控制在該連接中各對單元之間流體流動和能量傳輸?shù)姆匠蹋籫)將所述的各對單元間的連接形成組,各組均連接一對單元-組對象;h)構(gòu)造一個與各組連接相關(guān)的連接-組對象,所述連接-組對象包含與其相關(guān)的各組連接所需的信息;i)構(gòu)造一個與各體積單元域相關(guān)的子模型對象,所述子模型對象包含屬于該域的單元-組和連接-組,該連接-組(1)將屬于該域的特定單元-組的單元連接至相同組的其它單元,或(2)將屬于該域的特定單元-組的單元連接至屬于該域的其它單元-組的單元上;j)構(gòu)造一個模型對象,其包含(1)所述的子模型對象和(2)將特定子模型對象的單元連接至其它子模型對象的單元上的連接-組對象;k)用所述的單元-組,連接-組,子模型和模型對象模擬流體流動和能量傳輸,來計算所含在各單元中流體的性質(zhì),并計算通過連接的流體的流動和能量的傳輸;和l)使用步驟(k)的模擬結(jié)果來模擬含烴儲層及與其相連的井和裝備中的流體流動。
22.權(quán)利要求21的方法,其中單元是PEBI網(wǎng)格單元。
23.權(quán)利要求22的方法,其中單元的網(wǎng)格是平面上非結(jié)構(gòu)和垂直上結(jié)構(gòu)的。
24.權(quán)利要求22的方法,其中單元是三維的。
25.一種模擬在含流體的物理系統(tǒng)中的至少一種流體的隨時間變化性質(zhì)的計算機實現(xiàn)方法,包括步驟a)在計算機的存儲器中接收和存儲一系列對象,至少一些對象表示多個單元-組和多個連接-組;b)對于特定的模擬時間段中,在模擬器中使用所述對象來模擬該特理系統(tǒng)中至少一種流體的性質(zhì);和c)生成表示該隨時間變化的性質(zhì)的值的輸出數(shù)據(jù)。
26.一種有形地表現(xiàn)計算機可執(zhí)行指令的程序的計算機可讀取介質(zhì),用來執(zhí)行一種使用面向?qū)ο蟮某绦蛟O(shè)計來預(yù)測含流體的物理系統(tǒng)的至少一種流體的性質(zhì)的方法,所述方法包含單元-組對象和連接-組對象。
27.權(quán)利要求26的計算機可讀取介質(zhì),其中所述介質(zhì)包括RAM、ROM、磁盤、ASIC和PROM中的至少一種。
28.用于執(zhí)行使用面向?qū)ο蟪绦蝾A(yù)測含流體的物理系統(tǒng)的至少一種性質(zhì)的模擬的計算機系統(tǒng),該系統(tǒng)包括a)中央處理器(CPU);b)用戶接口,其包括幫助用戶選擇工作時間模擬參數(shù)的裝置;c)用于存儲數(shù)據(jù)和面向?qū)ο蟪绦虼a的存儲庫,與CPU一起來簡化存儲于其中的程序代碼的執(zhí)行,該存儲庫存儲一系列的對象和該面向?qū)ο蟮某绦?,所述對象包含多個單元-組和多個連接-組;和d)使用所述的一系列對象,來執(zhí)行預(yù)測至少一種流體的性質(zhì)的模擬的裝置。
29.權(quán)利要求28的系統(tǒng),其中該一系列模擬對象被組織成類。
30.權(quán)利要求29的系統(tǒng),其中所述的類包含模型和一個或多個子模型。
31.權(quán)利要求30的系統(tǒng),其中所述的類還包含一個或多個單元-組和一個或多個連接-組。
全文摘要
本發(fā)明涉及一種面向?qū)ο蟮姆椒?,其用來模擬在含有流體的物理體系(圖4,11)中至少一種流體的性質(zhì),其中由多個體積單元和多個單元間的連接表示物理體系。此方法在模擬中使用單元-組對象(圖12,87)和連接-組對象(圖12,88)。本發(fā)明能可選擇地包括額外的對象,如含有整體模擬模型的對象和包含部分整體模型的其它對象。
文檔編號E21B43/00GK1415090SQ00817849
公開日2003年4月30日 申請日期2000年11月21日 優(yōu)先權(quán)日1999年12月3日
發(fā)明者J·W·瓦茨三世, G·O·小莫雷爾 申請人:埃克森美孚上游研究公司