專利名稱:一種用于地球系統(tǒng)模式耦合過程的高階插值方法
一種用于地球系統(tǒng)模式耦合過程的高階插值方法技術(shù)領(lǐng)域
本發(fā)明屬于地球系統(tǒng)模式耦合技術(shù)領(lǐng)域,涉及一種用于地球系統(tǒng)模式耦合過程 的高階插值方法,應用該方法,當前無法應用于地球系統(tǒng)模式耦合過程的高階插值算法可 以得以應用,特別是在維持耦合器插值模塊使用方法不變的前提下應用已有的高階插值算 法。
背景技術(shù):
地球系統(tǒng)模式是一個在模擬全球氣候變化過程中用于全球變化研究的重要工具, 主要由耦合器和分量模式構(gòu)成。其中,分量模式是模擬地球各子系統(tǒng)的數(shù)值模擬模塊,包括 了大氣、海洋、海冰、大陸、生物圈等等分量模式,而耦合器是一個用于連接分量模式最終構(gòu) 成地球系統(tǒng)模式的重要組件。在整個變化過程中,能量會在地球各子系統(tǒng)之間傳遞,分量模 式之間需要通過耦合器傳遞數(shù)據(jù),用于各自的數(shù)值模擬計算。然而,由于不同的分量模式根 據(jù)自身的物理模型采用的網(wǎng)格是不同的,在耦合過程中需要通過插值計算對不同網(wǎng)格下的 物理量數(shù)據(jù)進行轉(zhuǎn)換,即將物理量數(shù)據(jù)從對方分量模式所采用的網(wǎng)格通過插值擬合到本地 分量模式所采用的網(wǎng)格。
具體地,分量模式網(wǎng)格由若干互不相交的網(wǎng)格單元組成,每個網(wǎng)格單元有一個中 心點坐標,對于給定的物理量數(shù)據(jù),每個網(wǎng)格單元包含一個浮點數(shù)據(jù),代表網(wǎng)格單元中心點 上的物理量數(shù)據(jù)。在不同網(wǎng)格下,對物理量數(shù)據(jù)進行插值就是利用網(wǎng)格A的各網(wǎng)格單元中 心點上的物理量數(shù)據(jù)計算網(wǎng)格B的各網(wǎng)格單元中心點上的物理量數(shù)據(jù)。對于固定的網(wǎng)格 A和網(wǎng)格B,需要插值的物理量一般有很多,對每個物理量進行單獨處理的開銷巨大;因而, 用于地球系統(tǒng)模式耦合過程的插值過程被分為兩個部分第一個部分為插值系數(shù)生成,即 通過插值算法,從源網(wǎng)格以及目標網(wǎng)格生成一組插值系數(shù),插值系數(shù)給出利用源網(wǎng)格物理 量數(shù)據(jù)計算目標網(wǎng)格相應物理量數(shù)據(jù)的與物理量數(shù)據(jù)無關(guān)的系數(shù)。該部分方法通常為離線 操作,即不用于地球系統(tǒng)模式的運行過程中,生成的插值系數(shù)被保存在數(shù)據(jù)文件里面供耦 合器使用;第二個部分為插值計算,在地球系統(tǒng)模式運行過程中,當分量模式之間發(fā)生耦合 時,耦合器根據(jù)相應的插值系數(shù)將對方分量模式發(fā)送來的物理量數(shù)據(jù)通過插值計算轉(zhuǎn)化成 本地分量模式的物理量數(shù)據(jù),該部分主要通過稀疏矩陣乘實現(xiàn),可以對不同的物理量進行 統(tǒng)一處理;兩部分之間的關(guān)系為第一部分離線生成的插值系數(shù)提供給第二部分在耦合過 程進行插值計算時使用。
目前應用于地球系統(tǒng)模式的耦合器均利用一階形式的插值系數(shù),即插值結(jié)果僅線 性依賴于網(wǎng)格A上的物理量數(shù)據(jù),其特征為可以用一組與物理量數(shù)據(jù)無關(guān)的插值系數(shù)描 述給定網(wǎng)格之間的插值,把僅有一組的插值系數(shù)稱為一階形式的插值系數(shù)。對于給定的網(wǎng) 格A和網(wǎng)格B,如果將網(wǎng)格A上的物理量數(shù)據(jù)記為列向量f,插值到網(wǎng)格B后的物理量數(shù)據(jù) 記為F,那么一階形式的插值系數(shù)可以表示為稀疏矩陣W(矩陣的行數(shù)等于網(wǎng)格B的網(wǎng)格單 元個數(shù),列數(shù)等于網(wǎng)格A的網(wǎng)格單元個數(shù))且滿足矩陣運算表達式F = Wf。由于插值系數(shù) 與物理量數(shù)據(jù)無關(guān),因而一階形式的插值系數(shù)的好處在于可以使用同樣的插值系數(shù)完成網(wǎng)格A和網(wǎng)格B之間不同物理量的插值,另外,不同網(wǎng)格之間、不同物理量的各種一階插值算 法可以使用一致的處理流程,使得耦合器中的插值計算變得簡單、一致。
一階插值算法生成的插值系數(shù)都是一階形式的,可以直接應用于地球系統(tǒng)模式的 耦合過程;所謂一階插值算法,是指其計算表達式中只涉及物理量數(shù)據(jù)而不涉及物理量偏 導數(shù)數(shù)據(jù)。但一階插值算法也有其不足之處,由于計算插值系數(shù)時只使用物理量數(shù)據(jù),忽略 偏導數(shù)數(shù)據(jù),使用一階插值算法得到的插值結(jié)果的數(shù)值精度比較低,可能無法達到預期目 標;特別是對于守恒插值算法,忽略物理量的偏導數(shù)數(shù)據(jù)會明顯減低插值結(jié)果的數(shù)值精度。
設計高精度插值算法時需要考慮物理量的偏導數(shù)數(shù)據(jù),以便更準確地反映物理量 的插值過程,這樣的插值算法一般被稱為高階插值算法。采用高階插值算法進行計算能夠 增加插值結(jié)果的數(shù)值精度,進而提高相關(guān)模式計算(例如通量計算)結(jié)果的數(shù)值精度,并可 能促進整體模式的預測。然而高階插值算法一般會生成多組插值系數(shù),每一組插值系數(shù)形 式上都是一階形式的插值系數(shù),稀疏矩陣表示為W1,. . .,Wi,. . .,Wn,其中W1對應于物理量 數(shù)據(jù)f,Wi, i = 2,. . .,N對應N-1個不同類型的物理量偏導數(shù)數(shù)據(jù)Pi,i = 2,. . .,N,N為 高階插值系數(shù)的個數(shù)(取值與所采用的高階插值算法有關(guān));高階插值算法插值結(jié)果的計算 表達式為F 二 Wd+Eil2Wi Pi,相比一階插值算法,完成高階插值額外需要物理量偏導數(shù)數(shù) 據(jù) Pi, i = 2,· · ·,N。
—階插值算法已經(jīng)應用于地球系統(tǒng)模式的耦合過程,如圖1所示,按插值的兩個 部分表示如下
第一部分生成一階形式的插值系數(shù)文件
I)根據(jù)網(wǎng)格配置文件,調(diào)用相應的API,讀取網(wǎng)格A和網(wǎng)格B文件中的網(wǎng)格單元信 息,包括網(wǎng)格單元個數(shù)、維度,網(wǎng)格單元坐標、遮蓋數(shù)據(jù),儲存在相應的數(shù)據(jù)結(jié)構(gòu)中;
2)利用已讀取的網(wǎng)格A和網(wǎng)格B的坐標、遮蓋數(shù)據(jù),調(diào)用選用的一階插值算法,生 成一階形式的插值系數(shù)W1 ;調(diào)用相應的API將巧中的數(shù)據(jù)寫入數(shù)據(jù)文件,作為一階形式的 插值系數(shù)文件;
第二部分利用第一部分得到的一階形式的插值系數(shù)文件和網(wǎng)格A的物理量數(shù)據(jù) 計算網(wǎng)格B的物理量數(shù)據(jù)
3)根據(jù)物理量配置信息,讀入網(wǎng)格A上的物理量數(shù)據(jù),利用步驟3中得到插值系數(shù) 文件中的W1計算得到網(wǎng)格B上的物理量數(shù)據(jù),即計算F =
如果不應用于地球系統(tǒng)模式的耦合過程(即無需按插值的兩個階段進行),一般高 階插值算法按照計算表達式,整體流程如圖2所示,包括以下步驟
I)根據(jù)網(wǎng)格配置文件,調(diào)用相應的API,讀取網(wǎng)格A和網(wǎng)格B文件中的網(wǎng)格單元信 息,包括網(wǎng)格單元個數(shù)、維度,網(wǎng)格單元坐標、遮蓋數(shù)據(jù),儲存在相應的數(shù)據(jù)結(jié)構(gòu)中;
2)利用已讀取的網(wǎng)格A和網(wǎng)格B的坐標、遮蓋數(shù)據(jù),調(diào)用選用的高階插值算法,生 成高階插值系數(shù)W1, . . .,Wi,. . .,Wn并儲存在任何一種選定的稀疏矩陣數(shù)據(jù)結(jié)構(gòu)中;
3)根據(jù)物理量配置信息,讀入網(wǎng)格A上的物理量數(shù)據(jù)f ;
4)利用網(wǎng)格A的網(wǎng)格單元坐標和物理量數(shù)據(jù),使用選用的偏導數(shù)計算方法,計算 選用的高階插值算法所需的物理量偏導數(shù)數(shù)據(jù)Pi,i = 2,...,N ;
5)按照計算表達式計算插值結(jié)果,即F = W1F + Eil2Wi P; ,
高階插值算法目前沒有廣泛地應用于當前的耦合器中,主要難點在于當前的耦合器只能處理一階形式的插值系數(shù),另外如何高效地計算同一網(wǎng)格上不同物理量的偏導數(shù)也 給高階插值算法在耦合過程中的應用帶來挑戰(zhàn)。直接使用圖2中的高階插值流程,必須修 改耦合器的插值模塊代碼,使其可以計算或以參數(shù)形式傳入物理量偏導數(shù)數(shù)據(jù);但這種方 法代碼難以維護且影響了耦合器插值模塊的結(jié)構(gòu),一般不予考慮。另外,由于同一網(wǎng)格上有 不同的物理量,如果步驟4)中的偏導數(shù)算法不能高效地計算偏導數(shù),偏導數(shù)計算將引入較 大的計算開銷。
綜上,一階插值算法生成一組插值系數(shù)W1, W1作為一階形式的插值系數(shù)可以直接 應用于地球系統(tǒng)模式的耦合過程;但一階插值算法的缺點是插值結(jié)果的數(shù)值精度可能較 低。高階插值算法利用物理量偏導數(shù)數(shù)據(jù),可以提高插值結(jié)果的數(shù)值精度,可能對地球系統(tǒng) 模式計算產(chǎn)生有利影響;但高階插值算法的缺點是無法直接給出一階形式的插值系數(shù),另 外如何高效計算同一網(wǎng)格上不同物理量的偏導數(shù)數(shù)據(jù)也是一個難點。耦合器插值模塊只能 處理一階形式的插值系數(shù),而高階插值算法沒有直接給出一階形式的插值系數(shù),因而難以 廣泛、方便地應用于地球系統(tǒng)模式的耦合過程。發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種用于地球系統(tǒng)模式耦合過 程的高階插值方法,對于給定的高階插值算法,本方法可以給出一階形式的插值系數(shù),使得 給定的高階插值算法可以應用于地球系統(tǒng)模式的耦合過程,進而提高插值結(jié)果的數(shù)值精度。
本發(fā)明的特點及有益效果
本發(fā)明采用最小二乘法計算偏導數(shù)系數(shù)的方法,該方法得到的偏導數(shù)系數(shù)與物理 量數(shù)據(jù)無關(guān),因而可以高效地計算同一網(wǎng)格內(nèi)不同物理量的偏導數(shù)數(shù)據(jù);本發(fā)明按照高階 插值算法的計算表達式,結(jié)合偏導數(shù)系數(shù)和高階插值系數(shù),合成高階插值算法對應的一階 形式的插值系數(shù)。
本發(fā)明先計算與物理量數(shù)據(jù)無關(guān)的偏導數(shù)系數(shù),使得同一網(wǎng)格內(nèi)不同物理量的偏 導數(shù)計算開銷大大降低。本發(fā)明中的系數(shù)合并的方法結(jié)合高階插值的計算表達式,得到一 階形式的高階插值系數(shù),應用該發(fā)明,高階插值算法可以應用于地球系統(tǒng)模式的耦合過程, 進而提高插值結(jié)果的數(shù)值精度,潛在地對整個地球系統(tǒng)模式的模擬結(jié)果產(chǎn)生有利的影響。
圖1為已有的一階插值算法在地球系統(tǒng)模式耦合過程中的應用流程圖。
圖2為已有的高階插值算法的使用流程圖。
圖3為本發(fā)明的方法流程圖。
圖4為實施例中的經(jīng)緯網(wǎng)格。
圖5為實施例中網(wǎng)格A的鄰居單元。
具體實施方式
本發(fā)明提出的一種用于地球系統(tǒng)模式耦合過程的高階插值方法,基于最小二乘 法的偏導數(shù)系數(shù)計算和系數(shù)合并方法,生成已有高階插值算法(未應用于地球系統(tǒng)模式的耦合過程)的一階形式的插值系數(shù),使其可以應用于地球系統(tǒng)模式的耦合過程。下面通過附圖并結(jié)合實施例來闡述本發(fā)明的具體實施方式
。
本發(fā)明提出的一種用于地球系統(tǒng)模式耦合過程的高階插值方法分為兩個部分,第一個部分根據(jù)網(wǎng)格A (源網(wǎng)格)、網(wǎng)格B (目標網(wǎng)格)信息生成給定高階插值算法的一階形式的插值系數(shù)r 1;并形成一階形式的插值系數(shù)文件,第二個部分利用網(wǎng)格A上的物理量數(shù)據(jù)通過插值系數(shù)文件中的r ,插值計算得到網(wǎng)格B相應的物理量數(shù)據(jù);
第一部分具體包括以下步驟
I)根據(jù)網(wǎng)格配置文件,調(diào)用相應的API,讀取網(wǎng)格A和網(wǎng)格B文件中的網(wǎng)格單元信息,包括網(wǎng)格單元個數(shù)、維度,網(wǎng)格單元坐標、遮蓋數(shù)據(jù),儲存在相應的數(shù)據(jù)結(jié)構(gòu)中;
2)根據(jù)讀取的網(wǎng)格A文件中的網(wǎng)格信息對網(wǎng)格A中的每個網(wǎng)格單元進行搜索得到每個網(wǎng)格單元的多個鄰居單元;具體包括
2-1)讀取已儲存在數(shù)據(jù)結(jié)構(gòu)中的網(wǎng)格A文件中的網(wǎng)格信息,包括網(wǎng)格單元個數(shù)、 維·度、頂點坐標、中心點坐標、遮蓋;
2-2)若網(wǎng)格單元維度為2 (即網(wǎng)格A是局部矩形網(wǎng)格),根據(jù)網(wǎng)格單元的二維索引, 在二維索引空間中找到網(wǎng)格單元的網(wǎng)格鄰居;
2-3)若網(wǎng)格單元維度為I (即網(wǎng)格A是無結(jié)構(gòu)網(wǎng)格),根據(jù)網(wǎng)格單元中心點坐標將網(wǎng)格A劃分為若干區(qū)域,然后對于每個網(wǎng)格單元,計算其與指定區(qū)域內(nèi)網(wǎng)格單元的距離,按距離從小到大排序,選取排序位置處于前面的多個(預先指定的個數(shù))相應網(wǎng)格單元,作為網(wǎng)格鄰居;
2-4)利用步驟2-2)或2_3)的結(jié)果,依次遍歷網(wǎng)格單元的網(wǎng)格鄰居及網(wǎng)格鄰居的網(wǎng)格鄰居組成鄰居單元,使得到的鄰居單元數(shù)目超過預定個數(shù)(預定個數(shù)是與選用的高階插值算法相應數(shù)目);
3)利用已讀取的網(wǎng)格A和網(wǎng)格B的坐標、遮蓋數(shù)據(jù),調(diào)用選用的高階插值算法,生成高階插值系數(shù)W1,. . .,Wi,. . .,Wn并儲存在任何一種選定的稀疏矩陣數(shù)據(jù)結(jié)構(gòu)中,N為高階插值系數(shù)的個數(shù)(取值與所采用的高階插值算法有關(guān));
4)利用網(wǎng)格A中網(wǎng)格單元的鄰居單元及其坐標數(shù)據(jù),基于最小二乘法,計算網(wǎng)格A 的每個網(wǎng)格單元的各個偏導數(shù)系數(shù),具體包括
4-1)根據(jù)步驟2)得到的網(wǎng)格A中的網(wǎng)格單元的若干個鄰居單元,組成鄰居集合 Neighbor (a),對鄰居集合Neighbor (a)中的每個鄰居單元j e Neighbor (a),將網(wǎng)格單元j 的物理量數(shù)據(jù)在網(wǎng)格單元a的中心點進行Taylor展開如式(I)
權(quán)利要求
1.一種用于地球系統(tǒng)模式耦合過程的高階插值方法,其特征在于,該方法分為兩個部分,第一個部分根據(jù)網(wǎng)格A、網(wǎng)格B信息生成給定高階插值算法的一階形式的插值系數(shù) r i,并形成一階形式的插值系數(shù)文件;第二個部分利用網(wǎng)格A上的物理量數(shù)據(jù)通過插值系數(shù)r ,插值計算得到網(wǎng)格B相應的物理量數(shù)據(jù);第一部分具體包括以下步驟1)根據(jù)網(wǎng)格配置文件,調(diào)用相應的API,讀取網(wǎng)格A和網(wǎng)格B文件中的網(wǎng)格單元信息, 包括網(wǎng)格單元個數(shù)、維度,網(wǎng)格單元坐標、遮蓋數(shù)據(jù),儲存在相應的數(shù)據(jù)結(jié)構(gòu)中;2)根據(jù)讀取的網(wǎng)格A文件中的網(wǎng)格信息,對網(wǎng)格A中的每個網(wǎng)格單元進行搜索得到每個網(wǎng)格單元的多個鄰居單元;3)利用已讀取的網(wǎng)格A和網(wǎng)格B的坐標、遮蓋數(shù)據(jù),調(diào)用選用的高階插值算法,生成高階插值系數(shù)W1,. . .,Wi,. . .,Wn并儲存在任何一種選定的稀疏矩陣數(shù)據(jù)結(jié)構(gòu)中,N為高階插值系數(shù)的個數(shù)(取值與所采用的高階插值算法有關(guān));4)利用網(wǎng)格A中網(wǎng)格單元的鄰居單元及其坐標數(shù)據(jù),基于最小二乘法,計算網(wǎng)格A的每個網(wǎng)格單元的各個偏導數(shù)系數(shù);5)將高階插值系數(shù)和偏導數(shù)系數(shù)合并生成一階形式的插值系數(shù)文件;第二部分具體為6)根據(jù)物理量配置信息,讀入網(wǎng)格A上的物理量數(shù)據(jù)f,利用步驟5)中得到的插值系數(shù)文件中的W' i計算得到網(wǎng)格B上的物理量數(shù)據(jù)F,即計算F = W'
2.如權(quán)利要求1所述方法,其特征在于,所述步驟2)具體包括2-1)讀取已儲存在數(shù)據(jù)結(jié)構(gòu)中的網(wǎng)格A文件中的網(wǎng)格信息,包括網(wǎng)格單元個數(shù)、維度、 頂點坐標、中心點坐標、遮蓋;2-2)若網(wǎng)格單元維度為2,根據(jù)網(wǎng)格單元的二維索引,在二維索引空間中找到網(wǎng)格單元的網(wǎng)格鄰居;2-3)若網(wǎng)格單元維度為1,根據(jù)網(wǎng)格單元中心點坐標將網(wǎng)格A劃分為若干區(qū)域,然后對于每個網(wǎng)格單元,計算其與指定區(qū)域內(nèi)網(wǎng)格單元的距離,按距離從小到大排序,選取排序位置處于前面的多個相應網(wǎng)格單元,作為網(wǎng)格鄰居;2-4)利用步驟2-2)或2-3)的結(jié)果,依次遍歷網(wǎng)格單元的網(wǎng)格鄰居及網(wǎng)格鄰居的網(wǎng)格鄰居組成鄰居單元,使得到的鄰居單元數(shù)目超過預定個數(shù)。
3.如權(quán)利要求1所述方法,其特征在于,所述步驟4)具體包括4-1)根據(jù)步驟2)得到的網(wǎng)格A中的網(wǎng)格單元a的若干個鄰居單元,組成鄰居集合 Neighbor (a),對鄰居集合Neighbor (a)中的每個鄰居單元j e Neighbor (a),將網(wǎng)格單元j 的物理量數(shù)據(jù)在網(wǎng)格單元a的中心點進行Taylor展開如式(I)
4.如權(quán)利要求3所述方法,其特征在于,所述步驟5)具體包括5-1)結(jié)合高階插值算法的計算表達式和4-3)中的計算表達式,利用矩陣運算給出一階形式的插值系數(shù)矩陣如式(3):即=W^EiL2WiGi (3);5-2)按照插值系數(shù)文件的標準格式,調(diào)用相應的API將W' I中的數(shù)據(jù)寫入數(shù)據(jù)文件, 作為一階形式的插值系數(shù)文件。
全文摘要
本發(fā)明涉及一種用于地球系統(tǒng)模式耦合過程的高階插值方法,屬于地球系統(tǒng)模式耦合技術(shù)領(lǐng)域,該方法分為兩個部分,第一個部分根據(jù)網(wǎng)格A、網(wǎng)格B信息生成給定高階插值算法的一階形式的插值系數(shù)W′1,并形成一階形式的插值系數(shù)文件;第二個部分利用網(wǎng)格A上的物理量數(shù)據(jù)通過插值系數(shù)W′1插值計算得到網(wǎng)格B相應的物理量數(shù)據(jù);本發(fā)明按照高階插值算法的計算表達式,結(jié)合偏導數(shù)系數(shù)和高階插值系數(shù),合成高階插值算法對應的一階形式的插值系數(shù),應用該發(fā)明,已有的高階插值算法可以應用于地球系統(tǒng)模式的耦合過程,進而提高插值結(jié)果的數(shù)值精度,潛在地對整個地球系統(tǒng)模式的模擬結(jié)果產(chǎn)生有利的影響。
文檔編號G06F17/30GK103019704SQ20121049539
公開日2013年4月3日 申請日期2012年11月28日 優(yōu)先權(quán)日2012年11月28日
發(fā)明者宋順強, 季穎生, 楊廣文, 王姝 申請人:清華大學