CN106598547A - 动态循环数组存储方法 - Google Patents
动态循环数组存储方法 Download PDFInfo
- Publication number
- CN106598547A CN106598547A CN201610821077.4A CN201610821077A CN106598547A CN 106598547 A CN106598547 A CN 106598547A CN 201610821077 A CN201610821077 A CN 201610821077A CN 106598547 A CN106598547 A CN 106598547A
- Authority
- CN
- China
- Prior art keywords
- group
- count
- array
- iteration
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000012432 intermediate storage Methods 0.000 claims description 9
- 238000004064 recycling Methods 0.000 claims description 4
- 238000004088 simulation Methods 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 4
- 238000007599 discharging Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000004458 analytical method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000013535 sea water Substances 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种动态循环数组存储方法,通过采用动态循环数组存储的方法,不需要通过减小时间步长,以降低计算结果准确度为代价,有效解决了程序计算过程中产生的数量庞大的时历数据存储问题,不仅降低了对计算机配置的要求,同时大大提高了计算结果的精确度。
Description
技术领域
本发明涉及大尺度结构的分析过程中的时历数据存储领域,尤其涉及一种动态循环数组存储方法。
背景技术
结构的动力响应分析是工程领域的重要专题,尤其是大尺度结构的分析,在分析过程中,可能需要获取庞大的时历数据,这些数据的存储与处理为计算程序的开发带来了难题。结构分析的时域计算收敛与否与网格比,即(其中,τ为时间步长,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)定义一中间存储变量以记录上一时刻的值;
6.3)释放时历数组所占内存,利用6.2)中定义的中间存储变量为其重新赋值;所赋值必须为上一个循环最后时刻的历程数据值;
6.4)释放中间存储变量。
本发明通过采用动态循环数组存储的方法,不需要通过减小时间步长,以降低计算结果准确度为代价,有效解决了程序计算过程中产生的数量庞大的时历数据存储问题,不仅降低了对计算机配置的要求,同时大大提高了计算结果的精确度。
附图说明
图1是动态循环数组存储流程图;
图2是动态循环数组存储原理图;
图3是程序创建的文本文件示意图;
图4是缆绳某节点运动轨迹示意图;
图5是缆绳某节点时历张力图;
图6是动力计算结果验证图。
具体实施方式
下面结合说明书附图对本发明作进一步说明
本发明公开了一种动态循环数组存储方法,具体实现步骤如下:
1)图1中的a步骤为此方法的初始步骤,需要对相关变量进行创建。创建并初始化解方程需要用到的参数矩阵;创建整型变量,循环步数(n)和循环次数(Fr),并将其初始化为0;创建存储某项历程数据的时历数组,例如张力时历数组,速度、加速度或位移等时历数组;创建并打开一文本文件(.dat文件),以备输入需要保存的数据。
2)计算结构初始解,此初始解可以为初始形状以及其他相关初始解,并对时历数组进行初始化,第一次使用时历数组和循环状态下时历数组的初始化采用不同的方法。
2.1)当第一次使用该时历数组时,如图1中b流程项,将零时刻的张力或其他历程数据设置为特定值,此特定值为根据结构静力特性而定,例如,结构由静止到运动过程中,速度、加速度项特定值为0。
2.2)当时历数组进入循环状态时,即进入图1中的f流程项,新的循环开始,张力或其他项历程数据初始值必须为上一个循环最后时刻的相关值。
3)当循环步数(n)小于所创建的时历数组长度时,进入流程图1中c、d循环项。
3.1)对每一个时间步进行迭代求解。每个时间步的计算都需要一定的迭代次数,以满足一定的误差要求。将初始迭代设置为迭代失败,以继续迭代,直到满足约束条件,停止迭代,将结果赋给时历数组;
3.2)将时域模拟总消耗时间向前移动一个时间步长,重复执行3.1)步骤。循环原理如图2所示,假设每个时间步迭代后产生三个数据项,每迭代成功一次后,将时域模拟总消耗时间向前移动一个时间步长,继续进行下一个时间步的迭代计算;
4)当循环步数(n)等于时历数组长度时,进入图1中的e流程项。将步骤3)中所得到的时历数组保存到步骤1)打开的文本文件中。
5)时历数组循环至下一次重复利用,即时历数组进入循环使用状态,此时需要对0时刻重新初始化,亦即2.2步所述。
5.1)重置循环步数(n)为零,循环次数(Fr)增加1;
5.2)定义一中间存储变量以记录上一时刻的值;
5.3)释放时历数组所占内存,并为其重新分配内存,并利用中间存储变量以及步骤2中所述方法为其重新赋值;
5.4)释放中间存储变量;
6)循环执行步骤3)‐5),直至整个分析程序成功执行完毕,保存并关闭所打开的文本文件,释放相关内存。
借助于上述方法,开发了悬链式系泊缆绳动力特性的分析系统,计算所得数据可以在界面中以曲线形式实时显示出来,使得数据表现更加直观,易于观察数据特性。系统对缆绳时域动态响应过程中的张力、位移、跨距、速度等数据项采用时历数组进行存储,并利用动态循环数组存储方法对数据进行保存。以张力和跨距为例,时间步长设置为0.0001s,此时间步长足够小,确保了时历结果的准确性。保存数据所用到的文本文件如图3所示,假设总时间ts,将产生t*104时历数据。利用动态循环数组存储方法,完美解决了时历过程中庞大的数据存储问题。最终程序得到张力以及跨距时历结果,经过处理后如图4,5所示。
利用相关文献对程序的准确性进行验证,设定水深为3m,水流速度为0.5m/s,系泊缆直径为0.00599m,总长9m,弹性模量为2.107×1010N/m3,初始预张力为28.4886N,海水的密度为1030kg/m3,时间步长为0.02s。同时给定上端点为简谐运动激励,沿x正方向运动。如图6所示,本文程序计算结果基本与文献相符,周期和幅值基本一致。
Claims (4)
1.一种动态循环数组存储方法,其特征在于包括如下步骤:
1)创建并初始化解方程需要用到的参数矩阵;创建循环步数n和循环次数Fr,并将其初始化为0;创建存储某项历程数据的时历数组,创建并打开一文本文件,以备输入需要保存的时历数据;
2)计算结构初始解,对时历数组进行初始化;
3)当循环步数n小于所创建的时历数组长度时,对每一个时间步进行迭代求解,将初始迭代设置为迭代失败,以继续迭代,直到满足约束条件,停止迭代,将结果赋给时历数组;每迭代成功一次将时域模拟总消耗时间向前移动一个时间步长;
4)重复执行步骤3),直到循环步数n等于时历数组长度,此时时历数组循环至下一次重复利用,即时历数组进入循环使用状态;
5)将步骤3)中所得到的时历数组保存到步骤1)打开的文本文件中;
6)对时历数组进行初始化;
7)循环执行步骤3)‐6),直至整个分析程序成功执行完毕,保存并关闭所打开的文本文件,释放相关内存。
2.根据权利要求1所述的动态循环数组存储方法,其特征在于所述的步骤2)中对时历数组进行初始化方法为:根据结构静力特性,将零时刻的历程数据设置为特定值。
3.根据权利要求1所述的动态循环数组存储方法,其特征在于所述的步骤3)中达到约束条件的判定标准为:
3.1)利用Thomas方法求解三对角方程组,得到结构变化值ΔT;
3.2)进一步求出对应的结构误差以及误差向量范数;
3.3)如果误差向量范数小于指定误差限,则认为达到约束条件。
4.根据权利要求1所述的动态循环数组存储方法,其特征在于所述的步骤6)中对时历数组进行初始化具体为:
6.1)重置循环步数n为零,循环次数Fr增加1;
6.2)定义一中间存储变量以记录上一时刻的值;
6.3)释放时历数组所占内存,利用6.2)中定义的中间存储变量为其重新赋值;所赋值必须为上一个循环最后时刻的历程数据值;
6.4)释放中间存储变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610821077.4A CN106598547B (zh) | 2016-09-13 | 2016-09-13 | 动态循环数组存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610821077.4A CN106598547B (zh) | 2016-09-13 | 2016-09-13 | 动态循环数组存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598547A true CN106598547A (zh) | 2017-04-26 |
CN106598547B CN106598547B (zh) | 2018-09-14 |
Family
ID=58556414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610821077.4A Expired - Fee Related CN106598547B (zh) | 2016-09-13 | 2016-09-13 | 动态循环数组存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598547B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441570A (zh) * | 2002-02-28 | 2003-09-10 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式实时操作系统中定时器的计时方法 |
US20110157194A1 (en) * | 2009-12-31 | 2011-06-30 | Omri Eisenbach | System, data structure, and method for processing multi-dimensional video data |
-
2016
- 2016-09-13 CN CN201610821077.4A patent/CN106598547B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1441570A (zh) * | 2002-02-28 | 2003-09-10 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式实时操作系统中定时器的计时方法 |
US20110157194A1 (en) * | 2009-12-31 | 2011-06-30 | Omri Eisenbach | System, data structure, and method for processing multi-dimensional video data |
Non-Patent Citations (2)
Title |
---|
丁强,臧斌宇,朱传琪: "一种动态分布数组的数据划分模式", 《计算机工程与设计》 * |
陆 竞: "Visual Basic 中动态数组的应用", 《杭州师范学院学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN106598547B (zh) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Borker et al. | Mesh adaptation framework for embedded boundary methods for computational fluid dynamics and fluid‐structure interaction | |
Pace | BSP vs MapReduce | |
Kapahi et al. | Parallel, sharp interface Eulerian approach to high-speed multi-material flows | |
CN106528989B (zh) | 一种分布式并行sph仿真方法 | |
Einasto et al. | SDSS DR7 superclusters-Principal component analysis | |
Löhner | A 2nd generation parallel advancing front grid generator | |
CN112613243B (zh) | 一种流体力学模拟的方法、装置及计算机可读存储介质 | |
CN106485030B (zh) | 一种用于sph算法的对称边界处理方法 | |
Bonfiglioli et al. | The role of mesh generation, adaptation, and refinement on the computation of flows featuring strong shocks | |
EP0538415B1 (en) | A fluid dynamics parallel processor | |
CN103631714A (zh) | 基于矩阵重复度的最小组合测试用例生成方法 | |
Fei et al. | Large-scale high performance computation on 3D explosion and shock problems | |
CN109800857A (zh) | 一种空洞卷积加速系统及其方法 | |
CN106598547A (zh) | 动态循环数组存储方法 | |
Post | Highlights of the CREATE Program | |
Liu et al. | Hull form multi-objective optimization for a container ship with Neumann-Michell theory and approximation model | |
KR20220024456A (ko) | 양자 컴퓨터를 에뮬레이트 하기 위한 시스템 및 이와 사용하기 위한 방법 | |
Santos | Deep and Physics-Informed Neural Networks as a Substitute for Finite Element Analysis | |
Lu | Artificial neural network for behavior learning from meso-scale simulations, application to multi-scale multimaterial flows | |
De Sousa et al. | A toll for multidisciplinary design conception of spacecraft equipment layout | |
Chen et al. | Accelerating underwater vehicle hydrodynamic analysis using convolutional networks | |
Ifrim et al. | REPLICATING IMPULSE-BASED PHYSICS ENGINE USING CLASSIC NEURAL NETWORKS. | |
Lohner et al. | Comparison of body-fitted, embedded and immersed 3-d euler predictions for blast loads on columns | |
Ma et al. | Geometric modeling and mesh generation by radial basis functions and their application to ship flow simulations | |
Deryugin et al. | Specific features of the Chimera calculation methodology implemented for unstructured grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180914 |
|
CF01 | Termination of patent right due to non-payment of annual fee |