用于模擬一組元件的方法及相關的計算機程序的制作方法
【專利摘要】一種對元件的系統進行模擬的方法,根據該方法所述元件的行為是基于元件的系統的漢密爾頓算符H確定的以使得(公式I),其中p是表示元件的力矩的矢量,q是表示元件的位置的矢量,M-1是隨元件的質量而變化的對角矩陣,以及V是系統的勢能,該方法包括以下步驟:根據該步驟,當力矩矢量p采取與至少一個元件有關的某個預定值時,零值被分配給矩陣M-1的與該至少一個元件有關的至少一個對角項。
【專利說明】用于模擬一組元件的方法及相關的計算機程序
【技術領域】
[0001] 本發明涉及一種用于模擬一組元件的方法,根據該方法基于與元件系統(該組元 件的動能和勢能之和)相關聯的漢密爾頓算符H4 來確定元件的行為,其中,P 是表示元件力矩的矢量,V是系統的勢能,以及C1是這些元件的質量的函數的對角矩陣(在 此情況下,該矩陣可以是元件位置的函數)。
【背景技術】
[0002] 在此情況下勢能例如等于元件之間的可從其推導相互作用力的相互作用勢或是 相互作用勢V(q)的函數,q是表示元件的位置的矢量(在此情況下,更一般而言相互作用 勢還可以依賴于元件的力矩)。
[0003] -組元件的模擬允許研究這樣的一組元件的行為并分析其屬性:在元件的相繼位 置和力矩方面的位移,元件之間的位移的相關性,結構的變化,元件之間的相互作用的增加 和減小,平均采用的配置,相關聯能量的演變等等。這些元件可以表示機械體,例如天體或 流體;顆粒,例如原子或分子,例如蛋白質,流體等。
[0004] 模擬一組元件的常規方式是考慮該組元件的漢密爾頓算符并從中推導力矩方程。
[0005] W02009/007550例如描述了模擬一組元件的技術。
[0006] 該組元件的演變有時必須被長時段上模擬以便能夠觀察某些現象或能夠計算某 些統計量。這種模擬的計算時間、以及計算成本有時是非常大的。已經提出的很多方法來 加速對一組元件的模擬。
【發明內容】
[0007] 本發明旨在提出用于克服這些問題的新方案。
[0008] 為此,根據第一方面,本發明提出一種對上述類型的一組元件進行模擬的方法,所 述方法是由計算機執行的并且其特征在于所述方法包括以下步驟:根據該步驟,當力矩矢 量P采取與至少一個元件有關的某個預定值時,零值被分配給矩陣W1的與該至少一個元件 有關的至少一個對角項。
[0009] 本發明使得可以減少計算量,因此減少確定元件的勢能、相互作用勢、相互作用 力、位置和/或所需力矩所需的計算時間。
[0010] 在實施例中,根據本發明的對一組元件進行模擬的方法還包括以下特征中的一個 或更多個:
[0011]-其中所述方法包括以下步驟:對于所述元件中的至少一個元件,如果表示所述 元件的動能的參數具有低于第一嚴格為正的閾值,則把零值分配給矩陣M4的與該至少一 個元件有關的至少一個對角項;
[0012] -當所述至少一個元件的動能大于第二嚴格為正的閾值時隨元件的質量而變化的 矩陣M4的對角項被分配最大值;
[0013]-如果包括所述至少一個元件的力矩和所述至少一個元件的位置的數偶采用某些 預定值則把零值分配給與該至少一個元件有關的矩陣W1的至少一個對角項;
[0014] -該方法包括基于所述漢密爾頓算符在相繼的模擬時刻確定至少一個信息的值的 步驟,所述步驟利用與在前一模擬時刻為矩陣W1的對角項分配零值所針對的元件k元組有 關的信息的值因此在至少所述前一模擬時刻和當前模擬時刻之間未改變的事實,k是大于 等于2的整數,并且在零值未被分配給矩陣的與元件k元組中的每個元件有關的對角項時 通過執行以下步驟來計算在當前模擬時刻與構成k元組一部分的給定元件有關的信息的 值:
[0015] -通過從在前一模擬時刻確定并且與所述給定元件相關的信息的值中減去在前一 模擬時刻至少與所述元件k元組相關聯并且與所述給定元件有關的所述信息的值來計算 與所述給定元件相關的所述信息的工作值;以及/或者
[0016] -向所述工作值添加在當前模擬時刻確定的至少與所述元件k元組相關聯并且與 所述給定元件有關的信息的值。
[0017] -在當前計算時刻,由低于給定閾值的距離分隔的元件對的當前列表被在當前模 擬時刻準備并且與在前一模擬時刻準備的由低于給定閾值的距離分隔的元件對的前一列 表相比較,
[0018] 并且在當前模擬時刻與給定元件有關的信息的值被基于包括所述給定元件的各 元件對通過執行以下步驟來計算:
[0019] -如果所考慮的對僅存在于前一列表中或者如果把所述給定元件連接到對中的另 一元件的矢量已經在前一模擬時刻和當前模擬時刻之間變化,則通過從在前一模擬時刻確 定并且與所述給定元件相關的信息的值中減去與所述給定元件相關的信息的與所考慮的 對中的另一元件相關聯的值,來計算工作值;
[0020] -如果所考慮的對僅存在于當前列表中或者如果把所述給定元件連接到對中的另 一元件的矢量已經在前一模擬時刻和當前模擬時刻之間變化,則通過向所述工作值添加與 所考慮的對中的另一元件相關聯并且與所述給定元件相關的信息的值來確定在當前模擬 時刻與所述給定元件相關的信息的值。
[0021] -在當前計算時刻,滿足某些條件的元件k元組的當前列表被在當前模擬時刻準 備并且與在前一模擬時刻滿足所述條件的元件k元組的前一列表相比較,k是大于等于2的 整數,
[0022] 并且在當前模擬時刻與一個元件有關的信息的值被基于包括所述元件的k元組 對通過執行以下步驟來計算:
[0023] -當所述k元組僅存在于前一列表中時或者當與所述k元組相關聯并且與所述元 件相關的信息的值已經在前一模擬時刻和當前模擬時刻之間變化時,通過從在前一模擬時 刻確定并且與所述元件相關的信息的值中減去在前一模擬時刻與所述k元組相關聯并且 與所述元件相關的信息的值,來計算臨時值;
[0024] -當所述k元組僅存在于當前列表中時或者當與所述k元組相關聯的信息已經在 前一模擬時刻和當前模擬時刻之間變化時(例如當k元組中的k個元件的相對位置已變化 時),則通過向所述臨時值添加在當前模擬時刻與所述k元組相關聯并且與所述元件相關 的信息的值來確定在當前模擬時刻與所述元件相關的信息的值。
[0025] -元件的位置空間被劃分為單元并且在前一模擬時刻和當前模擬時刻中的每一 個,每個元件根據在模擬時刻確定的位置坐標與歸屬單元相關聯,以及對于第一元件執行 以下步驟,使得在當前模擬時刻與所述第一元件相關的矩陣W1的項還未被分配零值:
[0026]-確定在前一模擬時刻第一兀件的歸屬單兀;
[0027]-對于每個第一元件,在所述歸屬單元中或所述歸屬單元的給定鄰域中的單元中, 確定在前一模擬時刻與所述第一兀件相距小于給定閾值的第二兀件;通過從在前一模擬時 刻確定并且與所述第一元件相關的信息的值中減去與所述第二元件相關聯并且與所述第 一元件相關的所述信息的值來計算工作值;
[0028] -確定在當前模擬時刻的第一元件的新歸屬單元;
[0029]-對于每個第一元件,在所述新歸屬單元中或所述新歸屬單元的給定鄰域中的單 元中,確定在當前模擬時刻與所述第一元件相距小于給定閾值的第三元件;
[0030]-通過向工作值添加與所述第三元件相關聯并且與第一元件相關的信息的值來確 定在當前模擬時刻與所述第一元件相關的信息的值。
[0031]-與所述元件相關的信息包括所述元件的勢能和/或施加到所述元件的相互作用 力。
[0032]-該方法包括在某些模擬時刻確定信息I的步驟,所述步驟優選地利用在某些模 擬時刻零值被分配給矩陣W1的某些對角項的事實。
[0033]-該方法包括在某些模擬時刻確定信息I的步驟,所述步驟優選地利用如下事實: 該信息I不改變并且當信息I在前一模擬時刻已確定并且在至少所述前一模擬時刻和當前 模擬時刻之間零值被分配給矩陣M4的對角項的對應集合時不必再次確定("對角項的對應 集合"是指具有對信息I的值的影響的對角項,即當這些項為零時信息I不變化);
[0034]-該方法包括在某些模擬時刻確定勢能或相互作用力的步驟,所述步驟優選地利 用在某些模擬時刻零值已被分配給矩陣W1的至少一個對角元素的事實;
[0035] 根據第二方面,本發明提出一種用于模擬元件的系統的計算機程序,包括用于在 該程序被計算裝置執行時執行根據權利要求1至12中任一項的方法的步驟的軟件指令。
【專利附圖】
【附圖說明】
[0036] 參照附圖,通過對以下僅以示例方式提供的描述的閱讀,本發明的其它特征和優 點將會變得更加清楚,在附圖中:
[0037]-圖1示出實施本發明的實施例的設備;
[0038] -圖2示出作為X軸上的ε i的函數的函數p J ε D在y軸上的演變;
[0039]-圖3是本發明的實施例中的方法步驟的流程圖;
[0040]-圖4示出步驟103的一個實施例;
[0041]-圖5示出步驟103的另一實施例;
[0042]-圖6示出用常數漢密爾頓算符的與相空間(p,q)中的固定點相關聯的顆粒的軌 跡的模擬。
【具體實施方式】
[0043] 考慮到N個顆粒ai的一個組E的模擬:i=1至N。
[0044] 與該組E相關聯的漢密爾頓算符H(p,q)常寫作如下(參見例如"理解分子模擬: 從算法到應用",FrenkelD.,SmitB):
[0045]
【權利要求】
1. 一種對元件的系統進行模擬的方法,根據該方法所述元件的行為是基于元件的系統
量,q是表示元件的位置的矢量,M4是隨元件的質量而變化的對角矩陣,以及V是系統的勢 能,所述方法是由計算機執行的并且其特征在于所述方法包括以下步驟:根據該步驟,當力 矩矢量P采取與至少一個元件有關的某個預定值時,零值被分配給矩陣W1的與該至少一個 元件有關的至少一個對角項。
2. 按照權利要求1所述的對元件的系統進行模擬的方法,其中所述方法包括以下步 驟:對于所述元件中的至少一個元件,如果表示所述元件的動能的參數具有低于第一嚴格 為正的閾值,則把零值分配給矩陣W1的與該至少一個元件有關的至少一個對角項。
3. 按照權利要求1或2所述的對元件的系統進行模擬的方法,其中,當所述至少一個元 件的動能大于第二嚴格為正的閾值時隨元件的質量而變化的矩陣M4的對角項被分配最大 值。
4. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,其中,當包括所 述至少一個元件的力矩和所述至少一個元件的位置的數偶采用某些預定值時把零值分配 給與該至少一個元件有關的矩陣W1的至少一個對角項。
5. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,包括基于所述漢 密爾頓算符在相繼的模擬時刻確定至少一個信息的值的步驟,所述步驟利用與在前一模擬 時刻為矩陣W1的對角項分配零值所針對的元件k元組有關的信息的值因此在至少所述前 一模擬時刻和當前模擬時刻之間未改變的事實,k是大于等于2的整數,并且在零值未被分 配給矩陣的與元件k元組中的每個元件有關的對角項時通過執行以下步驟來計算在當前 模擬時刻與構成k元組一部分的給定元件有關的信息的值: -通過從在前一模擬時刻確定并且與所述給定元件相關的信息的值中減去在前一模擬 時刻至少與所述元件k元組相關聯并且與所述給定元件有關的所述信息的值來計算與所 述給定元件相關的所述信息的工作值;以及/或者 -向所述工作值添加在當前模擬時刻確定的至少與所述元件k元組相關聯并且與所述 給定元件有關的信息的值。
6. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,其中,在當前計 算時刻,由低于給定閾值的距離分隔的元件對的當前列表被在當前模擬時刻準備并且與在 前一模擬時刻準備的由低于給定閾值的距離分隔的元件對的前一列表相比較, 并且在當前模擬時刻與給定元件有關的信息的值被基于包括所述給定元件的各元件 對通過執行以下步驟來計算: _如果所考慮的對僅存在于前一列表中或者如果把所述給定元件連接到對中的另一元 件的矢量已經在前一模擬時刻和當前模擬時刻之間變化,則通過從在前一模擬時刻確定并 且與所述給定元件相關的信息的值中減去與所述給定元件相關的信息的與所考慮的對中 的另一元件相關聯的值,來計算工作值; _如果所考慮的對僅存在于當前列表中或者如果把所述給定元件連接到對中的另一元 件的矢量已經在前一模擬時刻和當前模擬時刻之間變化,則通過向所述工作值添加與所考 慮的對中的另一元件相關聯并且與所述給定元件相關的信息的值來確定在當前模擬時刻 與所述給定元件相關的信息的值。
7. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,其中,在當前計 算時刻,滿足某些條件的元件k元組的當前列表被在當前模擬時刻準備并且與在前一模擬 時刻滿足所述條件的元件k元組的前一列表相比較,k是大于等于2的整數, 并且在當前模擬時刻與一個元件有關的信息的值被基于包括所述元件的k元組對通 過執行以下步驟來計算: -當所述k元組僅存在于前一列表中時或者當與所述k元組相關聯并且與所述元件相 關的信息的值已經在前一模擬時刻和當前模擬時刻之間變化時,則通過從在前一模擬時刻 確定并且與所述元件相關的信息的值中減去在前一模擬時刻與所述k元組相關聯并且與 所述元件相關的信息的值,來計算臨時值; -當所述k元組僅存在于當前列表中時或者當與所述k元組相關聯的信息已經在前一 模擬時刻和當前模擬時刻之間變化時,則通過向所述臨時值添加在當前模擬時刻與所述k 元組相關聯并且與所述元件相關的信息的值來確定在當前模擬時刻與所述元件相關的信 息的值。
8. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,其中,元件的位 置空間被劃分為單元并且在前一模擬時刻和當前模擬時刻中的每一個,每個元件根據在模 擬時刻確定的位置坐標與歸屬單元相關聯,以及對于第一元件執行以下步驟,使得在當前 模擬時刻與所述第一元件相關的矩陣W1的項還未被分配零值: -確定在前一模擬時刻第一元件的歸屬單元; -對于每個第一元件,在所述歸屬單元中或所述歸屬單元的給定鄰域中的單元中,確定 在前一模擬時刻與所述第一兀件相距小于給定閾值的第二兀件;通過從在前一模擬時刻確 定并且與所述第一元件相關的信息的值中減去與所述第二元件相關聯并且與所述第一元 件相關的所述信息的值來計算工作值; -確定在當前模擬時刻的第一元件的新歸屬單元; -對于每個第一元件,在所述新歸屬單元中或所述新歸屬單元的給定鄰域中的單元中, 確定在當前模擬時刻與所述第一元件相距小于給定閾值的第三元件; -通過向工作值添加與所述第三元件相關聯并且與第一元件相關的信息的值來確定在 當前模擬時刻與所述第一元件相關的信息的值。
9. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,其中,與所述元 件相關的信息包括所述元件的勢能和/或施加到所述元件的相互作用力。
10. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,包括:在某些 模擬時刻確定信息I的步驟,所述步驟優選地利用在某些模擬時刻零值被分配給矩陣W1的 某些對角項的事實。
11. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,包括在某些模 擬時刻確定信息I的步驟,所述步驟優選地利用如下事實:該信息I不改變并且當信息I在 前一模擬時刻已確定時并且在至少所述前一模擬時刻和當前模擬時刻之間零值被分配給 矩陣W1的對角項的對應集合時不必再次確定。
12. 按照前述權利要求中任一項所述的對元件的系統進行模擬的方法,包括在某些模 擬時刻確定勢能或相互作用力的步驟,所述步驟優選地利用在某些模擬時刻零值已被分配 給矩陣W1的至少一個對角元素的事實。
13. -種對元件的系統進行模擬的計算機程序,包括在該計算機程序被計算裝置執行 期間用于執行根據權利要求1到12中任一項所述的方法的步驟的軟件指令。
【文檔編號】G06F17/50GK104508667SQ201380038556
【公開日】2015年4月8日 申請日期:2013年5月23日 優先權日:2012年5月25日
【發明者】S·阿蒂莫瓦, S·瑞東 申請人:國家信息及自動化研究院