[發明專利]動態循環數組存儲方法有效
| 申請號: | 201610821077.4 | 申請日: | 2016-09-13 |
| 公開(公告)號: | CN106598547B | 公開(公告)日: | 2018-09-14 |
| 發明(設計)人: | 張火明;謝卓;陸萍藍;方貴盛;孔令濱 | 申請(專利權)人: | 中國計量大學 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京超凡志成知識產權代理事務所(普通合伙) 11371 | 代理人: | 覃蛟 |
| 地址: | 310018 浙江省*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 動態 循環 數組 存儲 方法 | ||
本發明公開了一種動態循環數組存儲方法,通過采用動態循環數組存儲的方法,不需要通過減小時間步長,以降低計算結果準確度為代價,有效解決了程序計算過程中產生的數量龐大的時歷數據存儲問題,不僅降低了對計算機配置的要求,同時大大提高了計算結果的精確度。
技術領域
本發明涉及大尺度結構的分析過程中的時歷數據存儲領域,尤其涉及一種動態循環數組存儲方法。
背景技術
結構的動力響應分析是工程領域的重要專題,尤其是大尺度結構的分析,在分析過程中,可能需要獲取龐大的時歷數據,這些數據的存儲與處理為計算程序的開發帶來了難題。結構分析的時域計算收斂與否與網格比,即(其中,τ為時間步長,h為空間步長)密切相關,往往需要很小的時間步長,也就是很小的網格比,為了獲得足夠長時間的結構時歷數據,通常需要很大的時歷數據存儲數組。一次計算往往需要處理或者存儲幾十萬步甚至上百萬步的數據,這樣就需要幾十萬、上百萬規模大小的時歷數組來保存這些數據,有時存在多個需要保存的時域數據項,這就導致程序會占用巨量的存儲空間,對內存要求較大,難以在一般計算機上運行。目前一般通過改用高配置的計算機同時增大時間步長亦即增大網格比的設置來減小程序運行占用的存儲空間。
開發的程序如果僅適用高配置的計算機,一方面將嚴重影響程序的推廣使用,使得程序不具備普適性,另一方面也將面臨隨之而來的經濟壓力。時間步長的選取決定了計算的收斂與否,增大時間步長雖然減少了時歷數據的產生,但是將嚴重影響計算結果的準確性,甚至有可能導致計算結果的不收斂。
發明內容
在開發大尺度結構的相關分析程序時,計算過程中往往會產生很龐大的時歷數據,存儲及處理這些數據需要很大的存儲數組,這給程序的開發和計算帶來了巨大的障礙。為解決上述問題,本發明提供了一種動態循環數組存儲方法。
一種動態循環數組存儲方法,具體實現步驟如下:
1)創建并初始化解方程需要用到的參數矩陣;創建循環步數n和循環次數Fr,并將其初始化為0;創建存儲某項歷程數據的時歷數組,創建并打開一文本文件,以備輸入需要保存的時歷數據;
2)計算結構初始解,對時歷數組進行初始化;
3)當循環步數n小于所創建的時歷數組長度時,對每一個時間步進行迭代求解,將初始迭代設置為迭代失敗,以繼續迭代,直到滿足約束條件,停止迭代,將結果賦給時歷數組;每迭代成功一次將時域模擬總消耗時間向前移動一個時間步長;
4)重復執行步驟3),直到循環步數n等于時歷數組長度,此時時歷數組循環至下一次重復利用,即時歷數組進入循環使用狀態;
5)將步驟3)中所得到的時歷數組保存到步驟1)打開的文本文件中;
6)對時歷數組進行初始化;
7)循環執行步驟3)‐6),直至整個分析程序成功執行完畢,保存并關閉所打開的文本文件,釋放相關內存。
優選的,所述的步驟2)中對時歷數組進行初始化方法為:根據結構靜力特性,將零時刻的歷程數據設置為特定值。
優選的,所述的步驟3)中達到約束條件的判定標準為:
3.1)利用Thomas方法求解三對角方程組,得到結構變化值ΔT;
3.2)進一步求出對應的結構誤差以及誤差向量范數;
3.3)如果誤差向量范數小于指定誤差限,則認為達到約束條件。
優選的,所述的步驟6)中對時歷數組進行初始化具體為:
6.1)重置循環步數n為零,循環次數Fr增加1;
6.2)定義一中間存儲變量以記錄上一時刻的值;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國計量大學,未經中國計量大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610821077.4/2.html,轉載請聲明來源鉆瓜專利網。





