本發(fā)明的實施例在總體上涉及計算機程序和系統(tǒng)領(lǐng)域,具體地涉及計算機輔助設(shè)計(cad)、計算機輔助工程(cae)、建模和仿真領(lǐng)域。
背景技術(shù):
市場上提供了很多用于零件或零件的組件的設(shè)計的系統(tǒng)和程序。這些所謂的cad系統(tǒng)允許用戶構(gòu)造和操縱對象或?qū)ο蟮慕M件的復(fù)雜的三維模型。cad系統(tǒng)因此提供了使用邊或線,在一些情況下使用面來進行諸如現(xiàn)實世界對象的建模對象的表示。線、邊、面或多邊形可以多種方式來表示,例如非均勻有理基樣條(nurbs)。
這些cad系統(tǒng)管理主要是幾何結(jié)構(gòu)的規(guī)格的建模對象的零件或零件的組件。特別地,cad文件包含規(guī)格,根據(jù)該規(guī)格來生成幾何結(jié)構(gòu)。根據(jù)幾何結(jié)構(gòu),生成表示。規(guī)格、幾何結(jié)構(gòu)和表示可以存儲在單個cad文件或多個cad文件中。cad系統(tǒng)包含用于向設(shè)計者表示所建模的對象的圖形工具;這些工具專用于顯示復(fù)雜的對象。例如,組件可以包含數(shù)千零件。
cad和cae系統(tǒng)的出現(xiàn)允許對象的寬范圍的表示可能性。一種這樣的表示是有限元分析模型。術(shù)語有限元分析模型、有限元模型、有限元網(wǎng)格和網(wǎng)格在本文中可互換使用。有限元模型通常表示cad模型,并且因此,可以表示一個或多個零件或零件的整個組件。有限元模型是稱為節(jié)點的點的系統(tǒng),這些節(jié)點互連而形成柵格,稱為網(wǎng)格。
諸如cae模型、有限元模型和計算流體動力學(xué)模型以及其它的模型可以如下方式進行規(guī)劃:模型具有其所表示的一個或多個下層對象的屬性。當(dāng)例如以這種方式來規(guī)劃有限元模型時,其可用于執(zhí)行其所表示的對象的仿真。例如,有限元模型可以用來表示車輛的內(nèi)腔、結(jié)構(gòu)周圍的聲學(xué)流體以及任意數(shù)量的現(xiàn)實世界對象,包括例如諸如斯滕特氏印模(stent)的醫(yī)療裝置。當(dāng)模型表示對象且相應(yīng)地規(guī)劃時,其可用于仿真現(xiàn)實世界對象本身。例如,表示斯滕特氏印模的有限元對象可用于仿真斯滕特氏印模在現(xiàn)實的醫(yī)療設(shè)置中的使用。
此外,這些仿真能夠用來改善所仿真的現(xiàn)實世界對象的設(shè)計。例如,動態(tài)系統(tǒng)的模型能夠在仿真中用來識別系統(tǒng)的故障點。進而,能夠利用來自仿真的反饋來改善在仿真中所使用的模型所表示的且最終表示現(xiàn)實世界對象本身的三維cad模型。雖然存在用于執(zhí)行模型的仿真以及用于改善下層cad模型的方法,但是這些現(xiàn)有的方法可受益于改善效率的功能。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例涉及仿真且能夠?qū)崿F(xiàn)在仿真求解器方法中。實施例在多種應(yīng)用是有用的,包括,為計算流體動力學(xué)(cfd)、結(jié)構(gòu)動力學(xué)以及其它使用迭代方法來執(zhí)行仿真的物理仿真方法來估計收斂性。
本發(fā)明的實施例提供了提供對物理現(xiàn)實世界系統(tǒng)的仿真的計算機實現(xiàn)的方法。該實施例通過在計算機存儲器內(nèi)生成方程組而開始,其中方程組包括所仿真的現(xiàn)實世界系統(tǒng)的離散表示。接著,通過與計算機存儲器操作地耦合的處理器來仿真現(xiàn)實世界系統(tǒng)。在仿真系統(tǒng)時,處理器首先獲得方程組的解的用戶規(guī)定容限。其次,處理器迭代地求解方程組,直至達到收斂。根據(jù)實施例,在近似無限次迭代內(nèi)當(dāng)方程組對于給定迭代的解在方程組的解的用戶規(guī)定容限內(nèi)時,達到收斂。在該實施例中,將方程組對于給定迭代的解確定為在用戶規(guī)定容限內(nèi)是基于對下列的使用:實驗確定的常數(shù)、方程組對于給定迭代的最小特征值的估計以及方程組對于給定迭代的殘差。根據(jù)實施例,求解方程組求解現(xiàn)實世界系統(tǒng)的結(jié)構(gòu)力學(xué)、物理或計算流體動力學(xué)問題。
在該方法的又一實施例中,方程組是第一方程組,并且該方法還包括:在第一多次迭代內(nèi)迭代地求解第二方程組以確定第二方程組的最終解。進一步,該實施例在第二多次迭代內(nèi)迭代地求解第二方程組以確定第二方程組的誤差場(errorfield),其中誤差場包括第二方程組的最終解與第二方程組對于第二多次迭代中的每次迭代的各自的解之間的差。該實施例還可以包括:確定所述常數(shù)作為下列各項的函數(shù):誤差場、第二方程組的殘差以及第二方程組的最小特征值的估計。
根據(jù)該方法的實施例,實驗確定的常數(shù)是與現(xiàn)實世界系統(tǒng)的物理特性無關(guān)的。在又一實施例中,方程組的殘差是殘差向量的范數(shù)。此外,在實施例中,殘差向量是體加權(quán)范數(shù)。在又一可替代實施例中,利用瑞利商來確定最小特征值的估計。
本發(fā)明的實施例涉及用于提供物理現(xiàn)實世界系統(tǒng)的仿真的計算機系統(tǒng)。該計算機系統(tǒng)包括處理器以及存儲器,在存儲器中存儲有計算機代碼指令。處理器和存儲器利用計算機代碼指令被配置成使系統(tǒng)在存儲器內(nèi)生成方程組,其中方程組包括現(xiàn)實世界系統(tǒng)的離散表示。此外,處理器和存儲器利用計算機代碼指令使計算機系統(tǒng)仿真現(xiàn)實世界系統(tǒng)。根據(jù)該實施例,計算機系統(tǒng)通過如下來來仿真現(xiàn)實世界系統(tǒng):使處理器獲得方程組的解的用戶規(guī)定容限,以及迭代地求解方程組直至達到收斂。根據(jù)計算機系統(tǒng)實施例,在近似無限次迭代內(nèi),當(dāng)方程組對于給定迭代的解在方程組的解的用戶規(guī)定容限內(nèi)時,達到收斂。在計算機系統(tǒng)的實施例中,將方程組對于給定迭代的解確定為在用戶規(guī)定容限內(nèi),是使用了:實驗確定的常數(shù)、方程組對于給定迭代的最小特征值的估計、以及方程組對于給定迭代的殘差。
在計算機系統(tǒng)的可替代實施例中,方程組是第一方程組,并且處理器和存儲器利用計算機代碼指令被進一步配置成使系統(tǒng)在第一多次迭代內(nèi)迭代地求解第二方程組以確定第二方程組的最終解。此外,在該實施例中,計算機系統(tǒng)被進一步配置成在第二多次迭代內(nèi)迭代地求解第二方程組以確定第二方程組的誤差場,其中誤差場包括第二方程組的最終解與第二方程組對于第二多次迭代中的每次迭代的各自的解之間的差。在計算機系統(tǒng)的進一步的實施例中,常數(shù)被確定為下列各項的函數(shù):誤差場、第二方程組的殘差以及第二方程組的最小特征值的估計。在實施例中,實驗確定的常數(shù)是與現(xiàn)實世界系統(tǒng)的物理特性無關(guān)的。
在可替代的實施例中,方程組的殘差是殘差向量的范數(shù)。根據(jù)實施例,殘差向量的范數(shù)是體加權(quán)范數(shù)。在進一步的計算機系統(tǒng)實施例中,處理求和存儲器利用計算機代碼指令被進一步配置成使系統(tǒng)利用瑞利商來確定最小特征值的估計。根據(jù)計算機系統(tǒng)實施例,求解方程組求解現(xiàn)實世界系統(tǒng)的結(jié)構(gòu)力學(xué)、物理或計算流體動力學(xué)問題。
本發(fā)明的又一實施例涉及用于提供物理現(xiàn)實世界系統(tǒng)的仿真的云計算實現(xiàn)方式。該實施例涉及通過跨網(wǎng)絡(luò)與一個或多個客戶端通信的服務(wù)器執(zhí)行的計算機程序產(chǎn)品。在該實施例中,計算機程序產(chǎn)品包括計算機可讀介質(zhì),該計算機可讀介質(zhì)包括程序指令,當(dāng)通過處理器執(zhí)行時,所述程序指令使所述處理器在存儲器內(nèi)生成方程組,其中方程組包括現(xiàn)實世界系統(tǒng)的離散表示。在該實施例中,處理器通過獲得方程組的解的用戶規(guī)定容限以及迭代地求解方程組直至達到收斂來仿真現(xiàn)實世界系統(tǒng),其中在近似無限次迭代內(nèi),當(dāng)方程組對于給定迭代的解在方程組的解的用戶規(guī)定容限內(nèi)時,達到收斂。根據(jù)計算機程序產(chǎn)品的實施例,將給定迭代確定為在用戶規(guī)定容限內(nèi)是基于使用下列各項:實驗確定的常數(shù)、方程組對于給定迭代的最小特征值的估計以及方程組對于給定迭代的殘差。
附圖說明
根據(jù)如附圖所圖示的本發(fā)明的示例性實施例的以下更特別的描述,前述內(nèi)容將是顯而易見的,在附圖中相似的附圖標(biāo)記在不同視圖中指代相同的部件。附圖不一定是按比例繪制,重點應(yīng)放在本發(fā)明的示例的實施例上。
圖1示出了根據(jù)至少一個示例性實施例的用于提供物理現(xiàn)實世界系統(tǒng)的仿真的計算機實現(xiàn)的方法。
圖2是確定能夠在實施例中使用的常數(shù)的方法的流程圖。
圖3是使用實施例執(zhí)行仿真的流程圖。
圖4是示出利用本發(fā)明的實施例的原理來實現(xiàn)仿真的方法的流程圖。
圖5是利用實施例的原理提供對物理現(xiàn)實世界系統(tǒng)的仿真的計算機系統(tǒng)的簡化框圖。
圖6是可以實現(xiàn)本發(fā)明的實施例的簡化的計算機網(wǎng)絡(luò)環(huán)境。
具體實施方式
本發(fā)明的示例性實施例的描述如下。
在本文中所引用的全部專利、公開的申請和參考文獻的教導(dǎo)的全文通過引用方式合并于此。
如本文所提到的,本發(fā)明的實施例提供了用于仿真系統(tǒng)(例如,現(xiàn)實世界力學(xué)系統(tǒng))的方法和系統(tǒng)。各種仿真技術(shù)使用迭代方法來實現(xiàn)仿真。迭代求解技術(shù)因兩個主要原因而使用。首先,當(dāng)應(yīng)用于線性系統(tǒng)時,迭代方法減少了如果使用直接矩陣求解方法所要求的過高的存儲量??梢宰⒁獾剑椒ㄓ糜嬎阈蕮Q取了存儲。因此,重要的是最小化迭代技術(shù)的低效。迭代線性求解器的示例是開源便攜式、可擴展科學(xué)計算工具箱(petsc)。
其次,還因為使用隱式方法求解非線性微分方程要求迭代方法,故而使用迭代技術(shù)。支配方程(governingequations)在時間上被離散化和線性化。因為線性化經(jīng)常是近似的,所以需要迭代來從初始猜測和后續(xù)對解的改進來獲得最終解。非線性微分方程的解與主要變量(例如,速度場(velocityfield)、溫度場(temperaturefield))有關(guān)。利用每次迭代,求解器漸進地完善解。這提出了關(guān)于“停止標(biāo)準(zhǔn)”的重要問題,即,何時停止迭代。
穩(wěn)態(tài)求解器具有兩級嵌套迭代環(huán),第一級是非線性迭代環(huán),第二級是通過非線性迭代環(huán)部署的多個線性求解器迭代環(huán)。類似地,暫態(tài)求解器使用多個固定點迭代環(huán),多個固定點迭代環(huán)進而部署線性求解器迭代環(huán)。穩(wěn)態(tài)解可被認為是具有單個固定點的暫態(tài)求解器。相反,暫態(tài)解可能被認為是一系列擬穩(wěn)態(tài)問題,每一個均包含先前解的擾動。
對于適定問題/仿真,解隨著每次迭代而接近某值。如果這是數(shù)值解,則可以認為解收斂到數(shù)值答案(即,上述某值)。理想地,有益的是利用每次迭代確定當(dāng)前計算出的解的誤差是什么,換言之,當(dāng)前的迭代解離收斂有多遠(收斂程度)。此處,誤差是在離散化問題的解(數(shù)值解)與當(dāng)前迭代中所計算的解之間的誤差。數(shù)值解不同于解析解或?qū)嶒灲?。?shù)值解發(fā)生在有限計算狀態(tài)和有限存儲器計算機中,因此,數(shù)值解僅提供關(guān)于所感興趣的系統(tǒng)的有限信息。理論上,解析解和實驗解提供了在物理系統(tǒng)中的任意位置處的信息,并且這可能是無限量的信息。因此,誤差估計是數(shù)值仿真所固有的,因為它們總是固有地在一定程度上不精確。然而,雖然獲知收斂程度是理想的,但是因為數(shù)值答案不是提前獲知的,所以很難將收斂程度量化且確定該誤差。
現(xiàn)有的商業(yè)軟件解決方案使用替代方式來試圖測量收斂,而非確定收斂程度。現(xiàn)有的技術(shù)主要依賴于對諸如殘差等誤差的代理使用經(jīng)驗規(guī)則或自組織(ad-hoc)啟發(fā)式算法來推導(dǎo)收斂。目前使用的大部分技術(shù)基于早期引入的商業(yè)計算流體動力學(xué)(cfd)中的實踐。尚未激勵學(xué)者們再次注意該課題,因為他們(可能錯誤地)認為是“已解決的問題”,而不值得研究資助。
諸如ansys-fluent,cd-adapco和
cd-adapco使用用于暫態(tài)求解器的方法,其中固定點迭代的停止標(biāo)準(zhǔn)是通過用戶判定所確定的固定迭代數(shù)。該數(shù)量特定于每個仿真且可能僅對于每個仿真的略微變化才是正確的。因此,該預(yù)設(shè)數(shù)量是由用戶根據(jù)反復(fù)試驗(trialanderror)來確定的。合理的是,暫態(tài)解必須再收斂的程度將取決于時間步以及解中來自時間增量的擾動。小的時間增量典型地導(dǎo)致較小的擾動,并且因此要求更少的迭代?!胺磸?fù)試驗”方法還用于判定解是否無關(guān)于底層的計算網(wǎng)格,因此其對于cfd從業(yè)者的經(jīng)驗來說并不陌生。
cd-adapco描述了另一種通過監(jiān)視所導(dǎo)出的工程關(guān)注量來推導(dǎo)收斂的替代方案。例如,選項包括監(jiān)視拖曳力或提升力。一些現(xiàn)有的監(jiān)視關(guān)注量的方法允許用戶基于標(biāo)準(zhǔn)差、與其它量組合的邏輯規(guī)則以及漸近地達到閾值來定義一組規(guī)則從而推導(dǎo)收斂。例如,當(dāng)提升力每次迭代變化了不到1%時,停止迭代,或者當(dāng)在出口處的質(zhì)量流等于在入口處的質(zhì)量流的0.1%時,停止迭代。
又一技術(shù)監(jiān)視從一次迭代到下一次迭代的解的變化(校正),并且如果校正相比于解本身小,則推斷收斂。再有,這在設(shè)定歸一化尺度時需要用戶判斷并且易于發(fā)生不正確停止,因為缺少迭代進展實際上不意味著迭代已經(jīng)實現(xiàn)最終目標(biāo)。
在結(jié)構(gòu)域內(nèi),推導(dǎo)收斂是借助復(fù)雜且精巧的啟發(fā)式算法來完成的。這些啟發(fā)式算法基于殘差且與解猜測的增量變化與線性求解器迭代中的校正之比相結(jié)合來找到適當(dāng)?shù)臍w一化尺度。這還要求對域內(nèi)的作為結(jié)構(gòu)(相對于流體或自由空間)的區(qū)域進行跟蹤的能力。
關(guān)于現(xiàn)有的收斂確定技術(shù)的進一步的細節(jié)可見于ansysuserguide,其可從https://www.sharcnet.ca/software/fluent6/html/ug/node1067.htm得到,cdadapcouserguide6.02.007settingupstoppingcriteria,以及abaqususersguide6.14section7.2.3convergencecriteriafornonlinearproblems,其全文通過引用方式并入本文。
如本文所提到的,當(dāng)前的技術(shù)不能確定誤差收斂的程度,而是試圖間接地推導(dǎo)收斂,通過:殘差的表現(xiàn)、解的校正或者通過將其留給用戶來基于用戶判定所確定的導(dǎo)出量設(shè)置停止標(biāo)準(zhǔn)?,F(xiàn)有的用來確定停止標(biāo)準(zhǔn)的技術(shù)所存在的基本問題在于,誤差收斂永遠無法解決。這導(dǎo)致獲得差質(zhì)量的解,或者浪費計算資源來執(zhí)行不必要的迭代。
各種問題源自于當(dāng)前用于推導(dǎo)收斂的技術(shù)。例如,人們不能看到殘差的價值以及對“小殘差暗示同樣小的誤差”的論證進行擴展。這是因為,通用的歸一化尺度是未知的。因此,唯一的其它選項是守候殘差下降。ansys(以及其它技術(shù))描述了一種監(jiān)視殘差且等待殘差下降三個數(shù)量級的方法。當(dāng)提供用于求解方程組的初始條件時,存在兩種可能的方案。一種是,將問題初始化成非常接近收斂的解,即良好初始猜測。當(dāng)這發(fā)生時,殘差從一開始就低,將花費極長的時間使得殘差下降,或者在有限精度計算機上可能殘差永遠不再進一步下降。其次,如果初始猜測極差,則殘差將很快下降三個數(shù)量級,并且無法確保解已經(jīng)實現(xiàn)收斂。
用于“估計收斂”的校正監(jiān)視方法隨著每次迭代而觀察解的變化并且當(dāng)變化極小時停止迭代。很快出現(xiàn)對“多小是?。俊钡膯栴}進行回答的問題。所使用的尺度取決于用戶的判斷。此外,在仿真過程中,即使解尚未收斂,仍然會出現(xiàn)校正小的情形,這例如由于差的收斂性。
監(jiān)視導(dǎo)出量與所求解的解變量的收斂性具有弱的相關(guān),監(jiān)視導(dǎo)出量可以包括監(jiān)視偏差、趨勢以及諸如提升、拖曳或力矩等間接量的任何這樣的模式。通過監(jiān)視與所觀察的導(dǎo)出量無關(guān)的另一個場或量來得出收斂的結(jié)論是錯誤的。此外,該方法依賴于用戶技能且需要“期望什么作為答案”的先驗知識。
當(dāng)前技術(shù)的主要缺陷在于,用戶對于一組問題能夠校準(zhǔn)這些技術(shù),而不能確保對于其它類型的問題和使用情況都適用。不存在確定收斂的通用方法。使用現(xiàn)有的方法,用戶僅能夠推導(dǎo)出解是否收斂。經(jīng)常,用戶無需求解仿真到完全收斂,而是僅需要達到某收斂百分比。這使用當(dāng)前的方法是不能實現(xiàn)的。
上述問題出現(xiàn)于在穩(wěn)態(tài)求解器中推導(dǎo)收斂。暫態(tài)求解器和線性求解器同樣存在這些相同的問題。此外,暫態(tài)求解器和線性求解器還存在額外的后果。
對于暫態(tài)求解器,當(dāng)正在每個時間增量之間進行子迭代時,收斂起作用。當(dāng)執(zhí)行這些子迭代時最廣泛使用的技術(shù)是設(shè)定子迭代的預(yù)定次數(shù)。該預(yù)定次數(shù)需要通過反復(fù)試驗以及用戶判斷來校準(zhǔn)。此外,預(yù)定次數(shù)可能對于不同類型的問題不適用。因此,用戶必須保守且限制時間步的大小或規(guī)定大于所要求的迭代次數(shù)。暫態(tài)仿真,尤其是那些具有差的初始條件的暫態(tài)仿真,需要多次初始固定點迭代,因為流結(jié)構(gòu)發(fā)展遍布流域且該數(shù)量隨著仿真進展而減少。然而,如果使用執(zhí)行預(yù)定數(shù)量迭代的技術(shù),則難以利用隨著仿真進展而需要較少的子迭代的事實。這是對計算成本和時間的消耗。
線性求解器由穩(wěn)態(tài)求解器和暫態(tài)求解器在每個求解器的迭代之間來執(zhí)行。通過這些線性求解器進行的任何多余的迭代大幅削弱了性能。如上所述相同的難處同樣適用于這些求解器。因此,能夠精確地且一致地退出線性求解器迭代具有獲得大的性能增益的可能。
本發(fā)明的實施例通過引入對“誤差”的定義量化收斂來直接地解決問題,而不是提供另一種推導(dǎo)收斂的替代方案。如上所述,此處的誤差是在當(dāng)前解猜測與離散化系統(tǒng)的解之間的差。換言之,誤差是在當(dāng)前迭代的解與收斂解(即,通過近似無限次迭代所獲得的解)之間的差。成功地估計該誤差的能力使得執(zhí)行仿真不再有猜測工作且彌補了當(dāng)前技術(shù)的上述問題。
在本發(fā)明的實施例中,誤差被表達為已知量的函數(shù)(殘差和校正)、數(shù)學(xué)構(gòu)造(矩陣特征值)、數(shù)學(xué)簡化(特征值近似)以及經(jīng)由數(shù)值校準(zhǔn)的校準(zhǔn)方法。
對于穩(wěn)態(tài)求解器,本發(fā)明的實施例計算誤差估計,該誤差估計確定當(dāng)前數(shù)值解對于收斂解的誤差。在該實施例中,用戶僅需要根據(jù)相對誤差閾值來規(guī)定期望的收斂程度。然后,當(dāng)相對誤差估計達到該用戶規(guī)定的收斂程度時,退出穩(wěn)態(tài)迭代環(huán)。
類似地,對于暫態(tài)求解器,仿真基于所期望的誤差閾值而在每個時間增量之間執(zhí)行適當(dāng)數(shù)量的固定點迭代。作為該方法的附加優(yōu)點,如果選定了不合理地大的時間步,則效果是在每個時間步之間有更多的子迭代,因而使得求解器到達合理的解。當(dāng)期望解是穩(wěn)態(tài)的而不是暫態(tài)的時候,將看到該附加效果,類似地,將取固定點迭代的最佳數(shù)量。迭代將終止于正確的誤差級別。迭代不會過早停止而導(dǎo)致比期望的更高的誤差,也不會過晚而導(dǎo)致相比于所需的更多的計算耗費。
在線性求解器中實現(xiàn)了類似的增益。通過采用本文所描述的收斂確定技術(shù),根據(jù)本發(fā)明的實施例的線性求解器將具有大幅提高的性能。每次固定點迭代或穩(wěn)態(tài)迭代將執(zhí)行正確數(shù)量的線性求解器迭代,因此相比于現(xiàn)有技術(shù)提高了性能。
在線性求解器和暫態(tài)求解器中使用本發(fā)明的實施例的主要優(yōu)點是,所能夠?qū)崿F(xiàn)的提高的性能。此外,對于暫態(tài)求解器,如果選定了比所需的更大的時間步,則這會導(dǎo)致算法的子迭代更多,使得仿真達到盡可能合理的解。本發(fā)明的實施例的又一優(yōu)點可以是減少所執(zhí)行的迭代的次數(shù)。很多時候,不需要徑直迭代至收斂。相反地,用戶可能感興趣的是在真正收斂的某容限內(nèi)。使用本發(fā)明的實施例,現(xiàn)在能夠當(dāng)解在收斂解的某百分比內(nèi)時停止迭代環(huán)。另一優(yōu)點是,“允許用戶設(shè)置設(shè)計實驗而不對于每一個設(shè)計變化都確定停止標(biāo)準(zhǔn)的校準(zhǔn)”的能力。
圖1是用于提供對物理現(xiàn)實世界系統(tǒng)的仿真的方法110的流程圖。方法110在步驟111通過在計算機存儲器內(nèi)生成方程組而開始。在方法110的這樣的實施例中,方程組表示現(xiàn)實世界物理系統(tǒng)且駐留于計算機存儲器內(nèi)。在實施例中,方程組是現(xiàn)實世界系統(tǒng)的離散表示?,F(xiàn)實世界物理系統(tǒng)的這種離散表示代表了作為空間中的有限點集的連續(xù)統(tǒng)(continuum)。在這樣的示例中,現(xiàn)實世界物理系統(tǒng)可以通過偏微分方程來支配,并且這些方程的離散版本能夠支配空間中這些點中的每一個點。該現(xiàn)實世界系統(tǒng)可來自于如下應(yīng)用:流體動力學(xué),固體力學(xué),熱傳遞學(xué),電磁學(xué),以及量子物理學(xué),但不限于這些示例。方法110的實施例可以仿真多種系統(tǒng)。通過這樣做,方法110的實施例可以解決現(xiàn)實世界系統(tǒng)的力學(xué)、物理或計算流體動力學(xué)問題。根據(jù)實施例,方程組可以是指示物理系統(tǒng)屬性的偏微分方程組。例如,方程組可以包含反映現(xiàn)實世界系統(tǒng)的質(zhì)量、剛度、尺寸等數(shù)據(jù)/屬性。此外,方法110可以在步驟111中響應(yīng)于用戶交互而生成方程組。例如,用戶可以通過本領(lǐng)域已知的任何通信接口來提供現(xiàn)實世界方程組(一個或多個)的數(shù)據(jù)/屬性,并且進而,可以響應(yīng)于所提供的信息來實施步驟111。
接著,方法110繼續(xù),且在步驟112中仿真現(xiàn)實世界系統(tǒng)。根據(jù)實施例,在步驟112中仿真所述系統(tǒng)包括在步驟112a中首先獲得方程組的解的用戶規(guī)定容限。在步驟112a中所提供的容限指示用戶所期望的解有多精確。因為在步驟112中通過迭代地求解方程組來執(zhí)行仿真,所以在每次迭代中確定解。然而,方程組的最終解,即收斂解,近似地是如果執(zhí)行無限次迭代則所得到的方程組的解。因此,在步驟112a中所提供的容限指示:為使當(dāng)前迭代停止,對于給定迭代的解需要距最終解多遠。用戶可以通過本領(lǐng)域已知的任何手段來在步驟112a中規(guī)定容限。例如,用戶可以響應(yīng)于實現(xiàn)方法110的計算設(shè)備的提示而規(guī)定容限。在該實施例中,用戶可以通過使用計算設(shè)備的各種輸入設(shè)備中的任一種來提供容限。
給定在步驟112a中所提供的容限,方法110繼續(xù)且迭代地求解方程組直至達到收斂,其中在近似無限次迭代內(nèi),當(dāng)方程組對于給定迭代的解在方程組的解的用戶規(guī)定容限內(nèi)時,達到收斂。根據(jù)實施例,確定方程組的解在用戶規(guī)定的容限內(nèi)是基于使用下列各項:實驗確定的常數(shù)、方程組對于給定迭代的最小特征值的估計以及方程組對于給定迭代的殘差。下文中提供關(guān)于計算常數(shù)、特征值和殘差的進一步的細節(jié)。根據(jù)實施例,通過在步驟112b中求解方程組,提供了對現(xiàn)實世界系統(tǒng)的仿真。在實施例中,在步驟112b中求解方程組后,根據(jù)本領(lǐng)域已知的方法使用所確定的方程組的解來提供仿真。
換言之,對于每次迭代,方法110在步驟112b中使用所述常數(shù)、方程組對于給定迭代的特征值的估計以及方程組對于給定迭代的殘差,來確定對于給定迭代的解離方程組的最終解有多遠。方法110的實施例可以使用本領(lǐng)域已知的各種迭代技術(shù)中的任一種。例如,實施例可以使用固定點迭代、牛頓法、正割法、krlov子空間法、多網(wǎng)格法和投影法中。根據(jù)系統(tǒng)110的實施例,利用瑞利商來估計方程組的特征值。在又一實施例中,方程組的殘差是殘差向量的范數(shù)。本發(fā)明的實施例可以使用許多各種技術(shù)來確定范數(shù)。在一個示例性的實施例中,殘差向量的范數(shù)是體加權(quán)范數(shù)(volumeweightednorm)。
方法110的可替代的實施例還包括:在第一多次迭代內(nèi)迭代地求解第二方程組以確定第二方程組的最終解。換言之,該可替代的實施例確定第二方程組的收斂解。術(shù)語“收斂解”可與術(shù)語“在近似無限次迭代內(nèi)的解”同義。確定第二方程組的收斂解可以根據(jù)本領(lǐng)域已知的原理來完成。這樣的可替代的實施例還包括:在第二多次迭代內(nèi)迭代地求解第二方程組以確定第二方程組的誤差場,其中誤差場是第二方程組的最終解與第二方程組對于第二多次迭代中的每次迭代的各自的解之間的差。
更簡要地描述該實施例,首先,該第二方程組的收斂解被確定,其次,執(zhí)行多次迭代,并且計算誤差場,其中誤差場是收斂解與迭代解之間的差。該實施例可以執(zhí)行任意數(shù)量的迭代來確定誤差場。在實施例中,用于確定誤差場的迭代被執(zhí)行從而足以確保誤差場對于對誤差場進行計算的計算機的數(shù)字機器精度而言是精確的。
在實施例中,上述誤差場用于在步驟112中確定仿真現(xiàn)實世界系統(tǒng)時所使用的實驗常數(shù)。在該實施例中,該常數(shù)被確定為下列各項的函數(shù):誤差場、第二方程組的殘差以及第二方程組的最小特征值的估計。
根據(jù)實施例,在步驟112b中所使用的常數(shù)是在步驟112b中迭代地求解第一方程組之前就確定的。例如,常數(shù)可以提前確定,并且進而用于利用方法110仿真多個現(xiàn)實世界系統(tǒng)。在實施例中,常數(shù)無關(guān)于現(xiàn)實世界系統(tǒng)的物理特性,并且因此,能夠用于仿真任何系統(tǒng)。在實施例中,如果使用一種迭代技術(shù)確定常數(shù),則該常數(shù)能夠用于使用任何其它迭代技術(shù)來仿真另一方程組。
描述諸如方法110的實現(xiàn)本發(fā)明的實施例的方法的進一步的細節(jié)描述于下文中。以線性系統(tǒng)為例,該線性系統(tǒng)可以寫為下面的方程(1):
au*=b(1)
在方程(1)中,a是算子,u*是精確解,b是已知值的右手側(cè),例如,所仿真的系統(tǒng)的屬性。在迭代地求解au*=b時僅能計算出近似解u。因此,取代u得到附加項r,在本文稱為殘差。該關(guān)系是由方程(2)給出的:
au=b+r.(2)
將兩個關(guān)系(方程1和2)相減,得到:
ae=r(3)
其中誤差e由下式給出:
e=u-u*(4)
可由方程(4)表達的誤差是計算機存儲器內(nèi)的列表,該列表具有對于網(wǎng)格內(nèi)每個計算柵格點的值,該網(wǎng)格表示所要求解方程(1)所表示的物理系統(tǒng)的解域。誤差是在其計算機表示中計算機生成的解減去如果進行無限次迭代且因此達到方程(1)的精確答案則計算機所將獲得的解。為了說明,考慮這樣的示例:現(xiàn)實世界物理系統(tǒng)由有限點集(計算柵格點)來描述。每個點由偏微分方程的離散版本來支配。在這樣的示例中,每個點處的解(例如,每個點處的速度)被確定,以及對于給定的迭代,對于每個點存在一個猜測,并且因此,對于每個點存在的誤差,該誤差由陣列e來表示。可以利用范數(shù)將誤差壓縮成單個數(shù)。為了增強實施例的功能,誤差以無任何網(wǎng)格依賴性的形式來表示。換言之,范數(shù)表示誤差,而不取決于所仿真的系統(tǒng)的物理特性。本發(fā)明的實施例可以使用任意多種范數(shù)確定技術(shù)。例如,實施例可以使用加權(quán)范數(shù)。此外,本發(fā)明的實施例可以基于用來離散化現(xiàn)實世界系統(tǒng)的方法來改變范數(shù)確定方法。根據(jù)實施例的關(guān)于誤差的范數(shù)由下面的方程(6)給出:
其中||表示場的范數(shù),求和是對于該場的全部柵格值。vi可以是對應(yīng)的網(wǎng)格點值周圍的域的子區(qū)域的體積,但是無需使用該值并且可以例如對于全部網(wǎng)格點等于1(unity),ei是在網(wǎng)格點位置i處的誤差。
給定下面的關(guān)系(7):
本發(fā)明的實施例確定c而使得:
其中λmin是體加權(quán)矩陣a的最小特征值,而殘差范數(shù)|r|類似于方程(6)定義。此外,c無關(guān)于所要求解的問題的物理特性,無關(guān)于網(wǎng)格,且無關(guān)于所使用的迭代求解器方法。本發(fā)明的實施例使用數(shù)值實驗來找到并驗證這樣的常數(shù)c。用戶規(guī)定且無量綱的相對誤差定義為:
其中解范數(shù)|u|被如在方程(6)中定義。
圖2是根據(jù)實施例能夠在確定常數(shù)c的過程中使用的方法220的流程圖。方法220通過將問題離散化而在步驟221開始。接著,在步驟222中,在近似無限次迭代內(nèi),迭代地求解離散化問題,即,直至達到數(shù)字機器精度收斂解。然后,在步驟223中,再次迭代地求解離散化問題,并且在每次迭代中通過取在步驟222中所確定的收斂解與給定迭代的解之間的差來形成誤差場。
為概括方法220,在極大數(shù)量的迭代內(nèi)運行給定問題以安全地得出解已收斂的結(jié)論。因此,來自方程(1)的最終解場(finalsolutionfield)u*被獲得且存儲。然后,重新運行相同的問題,并且在每次迭代中計算出通過方程(4)給出的誤差。其中u*是來自步驟222的最終解,并且u是對于每次迭代的解。計算誤差場的范數(shù),例如體加權(quán)范數(shù)(volumeweightednorm),并且誤差場的該體加權(quán)范數(shù)能夠用于確定在實施例中所使用的常數(shù)。例如,在實施例中,使用方程(8)來確定實驗常數(shù)。對于具有各種類型的網(wǎng)格的各種物理問題可以進一步重復(fù)該過程,并且可以確定一個常數(shù),該常數(shù)將誤差粗略地界定在1個數(shù)量級內(nèi)。
本發(fā)明的實施例還可以使用在計算上高效的方法來估計在根據(jù)本文所描述的實施例執(zhí)行仿真時所使用的特征值,例如,在方法110的步驟112b中。穩(wěn)態(tài)或暫態(tài)固定環(huán)的特征值以某些方式表示所仿真的系統(tǒng)的物理特性。進一步,如在線性求解器中所使用的,估計的特征值可以是線性系統(tǒng)的算子的最小特征值。在實施例中,利用瑞利商來估計特征值。根據(jù)該實施例,對于穩(wěn)態(tài)環(huán)和暫態(tài)固定點迭代環(huán),使用方程(10)來估計特征值:
在方程(10)中,δu是從一次迭代到下一次迭代的解的變化。這是在每個線性求解器環(huán)(linearsolverloop)結(jié)束時獲得的。進一步,給定
本發(fā)明的實施例可以并入穩(wěn)態(tài)求解器和暫態(tài)求解器中,并且進一步這些求解器的內(nèi)迭代環(huán)將真正的收斂度量和求解選項提供給用戶。圖3示出了執(zhí)行并入本發(fā)明的方法的穩(wěn)態(tài)仿真的方法330。方法330開始于穩(wěn)態(tài)環(huán)331且通過在步驟332中繼續(xù)第i個解而以解的初始猜測起始。利用第i個解,線性求解器環(huán)333開始執(zhí)行線性迭代求解方法。對于線性求解器環(huán)333的每次迭代,使用本文所描述的本發(fā)明的原理在步驟334中估計誤差,并且進而在步驟335中將在步驟334中計算出的誤差與用戶規(guī)定的相對誤差閾值進行比較。注意的是,在333在線性求解器環(huán)中時,線性計算的誤差被確定,即,在334處的誤差是δu中的誤差。當(dāng)誤差不小于閾值時,線性求解器環(huán)繼續(xù),返回到步驟333。當(dāng)誤差小于閾值時,在步驟336中已經(jīng)識別出第i+1個解。然后,在步驟337中估計第i+1個解的誤差。然而,這是所估計的穩(wěn)態(tài)環(huán)的誤差。然后,將計算出的在穩(wěn)態(tài)環(huán)中的誤差與步驟338中的誤差比較,當(dāng)誤差小于閾值時,方法330結(jié)束于步驟340。得到δu,能夠利用方程un+1=un+δu來獲得un+1。步驟337中的誤差可以被視為un+1中的誤差。當(dāng)誤差不小于閾值時,方法330在步驟339中繼續(xù)到下一次迭代。
圖4描繪了執(zhí)行并入本發(fā)明的方法的暫態(tài)仿真的方法440。方法440開始于暫態(tài)環(huán)441且在步驟442中開始于時點t。利用時點t,固定點迭代環(huán)開始于步驟443且在444包括線性求解器環(huán)。線性求解器環(huán)在步驟444中執(zhí)行線性迭代求解方法。對于在444線性求解器環(huán)的每次迭代,在步驟445中利用本文所描述的本發(fā)明的原理來估計誤差,并且進而在步驟446中將在步驟445中計算出的誤差與用戶規(guī)定的相對閾值進行比較。注意的是,在444在線性求解器環(huán)中時,線性計算中的誤差被確定。當(dāng)誤差不小于閾值時,線性求解器環(huán)繼續(xù),返回到步驟444。當(dāng)在444線性求解器環(huán)的誤差小于閾值時,隨后在步驟447中估計固定點迭代環(huán)的解。相比于在步驟445中估計的內(nèi)部線性化系統(tǒng)線性求解器誤差,在步驟447中估計的誤差是在外部非線性固定點迭代環(huán)的誤差。換言之,在步驟445中的誤差是δu中的誤差,而在步驟447中的誤差是un+1中的誤差。在固定點迭代環(huán)內(nèi)計算出的誤差隨后在步驟448中與閾值比較。如果該誤差不小于閾值,則方法440在步驟443繼續(xù),且固定點迭代環(huán)繼續(xù)。當(dāng)誤差小于閾值時,在步驟449中判定時點t是否已達到期望點。當(dāng)已經(jīng)達到期望時點時,方法在步驟450中結(jié)束。如果尚未達到期望的時點,則時點在步驟451中增量,并且方法440在步驟452中移到下一次迭代。
雖然關(guān)于圖3和圖4的相應(yīng)的方法330和440均描述了單一閾值,注意的是本發(fā)明的實施例不限于此。實施例可以請用戶提供內(nèi)環(huán)和外環(huán)兩者的收斂閾值,這些所提供的閾值隨后可相應(yīng)地使用。進一步,實施例可進一步要求用戶規(guī)定執(zhí)行最大數(shù)量的迭代。這能夠安全避免不收斂到答案的問題。
圖5是根據(jù)本發(fā)明的實施例的可用于提供系統(tǒng)的仿真的基于計算機的系統(tǒng)550的簡化的框圖。系統(tǒng)550包括總線553??偩€553充當(dāng)了系統(tǒng)550的各個組件之間的互連。與總線553連接的是輸入/輸出設(shè)備接口556,其用于將諸如鍵盤、鼠標(biāo)、顯示器、揚聲器等各輸入和輸出設(shè)備與系統(tǒng)550連接。中央處理器(cpu)552連接到總線553且提供用于計算機指令的執(zhí)行。存儲器555提供了用于實施計算機指令的數(shù)據(jù)的易失性存儲。存儲設(shè)備554提供了用于諸如操作系統(tǒng)(未示出)的軟件指令的非易失性存儲。系統(tǒng)550還包括用于與本領(lǐng)域已知的包括廣域網(wǎng)(wan)和局域網(wǎng)(lan)在內(nèi)的各種網(wǎng)絡(luò)連接的網(wǎng)絡(luò)接口551。
應(yīng)當(dāng)理解的是,本文所述的示例性實施例可以多種不同的方式來實現(xiàn)。在一些實例中,本文所述的各種方法和機器可以各自由物理、虛擬或混合通用計算機如計算機系統(tǒng)550或者諸如計算機環(huán)境660的計算機網(wǎng)絡(luò)環(huán)境來實現(xiàn),如下文結(jié)合圖6所描述的。計算機系統(tǒng)550可以變換成執(zhí)行本文所描述的方法(例如,110,330和440)的機器,例如通過將軟件指令裝載到存儲器555或非易失性存儲設(shè)備554中以便由cpu552執(zhí)行。本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)進一步理解,系統(tǒng)550及其各個組件可以被配置為實施本文所述的本發(fā)明的任何實施例。進一步,系統(tǒng)550可以利用在內(nèi)部或外部與系統(tǒng)550可操作地耦合的硬件、軟件和固件模塊的任意組合來實現(xiàn)本文所述的各個實施例。
圖6示出了計算機網(wǎng)絡(luò)環(huán)境660,其中可以實現(xiàn)本發(fā)明的實施例。在計算機網(wǎng)絡(luò)環(huán)境660中,服務(wù)器661通過通信網(wǎng)絡(luò)662與客戶端663a-n鏈接。環(huán)境660可用來單獨地或者與服務(wù)器661相結(jié)合地允許客戶端663a-n執(zhí)行本文所述的任意方法(例如,110,330和440)。
其實施例或方面可以通過硬件、固件或軟件的形式來實現(xiàn)。如果用軟件來實現(xiàn),則軟件可以存儲在被配置為使計算機能夠裝載軟件或其指令的子集的任何非暫態(tài)計算機可讀介質(zhì)上。處理器隨后執(zhí)行指令且被配置為操作或者使裝置以本文所述的方式來操作。
此外,固件、軟件、例程或指令可以在本文描述為執(zhí)行數(shù)據(jù)處理器的某些動作和/或功能。然而,應(yīng)當(dāng)意識到,本文所包含的這些描述僅為了方便并且這些動作事實上源自于計算設(shè)備、處理器、控制器或執(zhí)行固件、軟件、例程、指令等的其它設(shè)備。
應(yīng)當(dāng)理解的是,流程圖、框圖和網(wǎng)絡(luò)圖可以包括更多或更少的元件,可以不同地布置,或者可以不同地表示。但是,應(yīng)進一步理解的是,某些實現(xiàn)可以規(guī)定圖示說明以特定方式實現(xiàn)的實施例的執(zhí)行的框和網(wǎng)絡(luò)圖以及框和網(wǎng)絡(luò)圖的數(shù)量。
相應(yīng)地,另外的實施例還可以實現(xiàn)在各種計算機體系結(jié)構(gòu)、物理、虛擬、云計算機和/或其某種組合中,并且因此,本文所描述的數(shù)據(jù)處理器旨在僅為了示例的目的,不是作為實施例的限制。
雖然參考本發(fā)明的示例性實施例特別地顯示和描述了本發(fā)明,本領(lǐng)域技術(shù)人員將理解的是,可以在其中進行形式和細節(jié)上的各種改變,而不背離如隨附權(quán)利要求所涵蓋的本發(fā)明的范圍。