CN106598547A - 动态循环数组存储方法 - Google Patents

动态循环数组存储方法 Download PDF

Info

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
Application number
CN201610821077.4A
Other languages
English (en)
Other versions
CN106598547B (zh
Inventor
张火明
谢卓
陆萍蓝
方贵盛
孔令滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Jiliang University
Original Assignee
China Jiliang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Jiliang University filed Critical China Jiliang University
Priority to CN201610821077.4A priority Critical patent/CN106598547B/zh
Publication of CN106598547A publication Critical patent/CN106598547A/zh
Application granted granted Critical
Publication of CN106598547B publication Critical patent/CN106598547B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements 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)释放中间存储变量。
CN201610821077.4A 2016-09-13 2016-09-13 动态循环数组存储方法 Expired - Fee Related CN106598547B (zh)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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