大规模结构有限元模型的多位移边值约束工况处理方法技术

技术编号:14976722 阅读:73 留言:0更新日期:2017-04-03 09:58
一种大规模结构有限元模型的多位移边值约束工况处理方法,由三个关键技术策略构成:结构离散化有限元模型的节点分类与重排序策略、三类节点刚阵元素的一维全稀疏存储及其数据结构管理策略和各位移边值工况的结构总刚矩阵动态拼装策略。本发明专利技术的算法思路与现代工程商用软件的算法操作完全是逆向的,一次性生成多位移边值总刚矩阵,采用了便于拼装的分段存储结构,在结构多工况分析中当需要获得每一位移工况的总刚矩阵时,只需要进行拼装即可获得完整的总刚矩阵,从而避免了初始总刚矩阵边值处理过程中大量的内存移动操作,因而具有明显的效率优势。另外,在大规模结构中与位移边值约束有关的总刚矩阵元素比例较小,因此此方法还具备明显的内存优势。

【技术实现步骤摘要】

本专利技术适用于大型结构有限元数值计算领域,属于大规模高效率建模中的数据结构算法技术。
技术介绍
工程结构设计与大规模有限元离散化数值分析相结合是现代工程精细化设计的显著技术特征,是实现高精度高效率工程设计的重要技术途径。大型工程结构分析中不可避免涉及到多载荷与多位移边值的组合设计分析情况,按大规模结构离散化模型数值分析原理,多载荷工况仅需要在求解方程的右端项各列放置相应于该工况的载荷数值即可;但对于位移边值工况,则要按照稀疏矩阵的数据管理结构以及线性方程组数值计算原理,对不同工况有效合理地组织处理与这些位移边值节点相应的矩阵元素及其位移数值,是大规模工程结构有限元数值分析算法中的关键基础技术。在算法原理上,对于某个位移边值条件下的结构静力分析方程为:[K]{u

【技术保护点】
一种大规模结构有限元模型的多位移边值约束工况处理方法,其特征在于,具体过程是:步骤1,多位移工况的节点重排序;所述多位移工况的节点重排序是对第1类的位移约束节点、第2类的与所有位移边值约束相关联的自由节点和第3类的完全自由类节点的重排序;重排序时,将第三类完全自由节点安排在结构总刚矩阵的前位;将第二类相关联节点安排在结构总刚矩阵的中位;将位移边值约束节点安排在结构总刚矩阵的末位;重排序后的位移约束节点内部原有的相对顺序、与所有位移边值约束相关联的自由节点内部原有的相对顺序和完全自由类节点内部原有的相对顺序均保持不变;具体排序中,根据网格节点编号的分布确定自然序;通过对自然序进行节点重排序,得到该节点的使用序;步骤2,多位移边值总刚矩阵模拟投放;所述的总刚矩阵采用全稀疏按行压缩存储格式,缩写为CSR,在有限元模型总刚矩阵形成之前需要建立其数据结构,得到总刚矩阵线性表,包括CSR格式中的行索引数组及列索引数组;为获得所述多位移边值总刚矩阵的线性表,通过两个步骤完成:第一步,形成结构模型节点单链表,该节点单链表描述了结构模型离散化网格中的节点间关联关系;第二步,形成多位移边值总刚矩阵线性表,此过程是在单链表的基础上按自由度级展开,并引入多位移边值条件的标记;所述的总刚矩阵节点单链表包括三个整型数组:列号数组IROW、行头数组IFCR及位置数组LNXT;通过对结构模型所有单元的遍历查询得到总刚矩阵单链表,获得到单元节点间的关联关系,并在单链表中记录每一节点在总刚矩阵中的后继关联节点;所述总刚矩阵单链表的生成算法流程如下:首先对单链表各数组初始化;随后依次按单元种类、单元数以及单元节点循环,对有限元模型的单元节点关联关系进行遍历查询,并判断节点间是否存在单元连接关系;当节点之间存在单元关联关系时,需将节点自然序通过数组IOVE转换为使用序,并将每一节点相关联的节点使用序记录到单链表中,步骤3,生成多位移边值总刚矩阵;所述生成过程是对单元遍历,并将各单元的刚度矩阵元素投放到多位移工况总刚矩阵数值部分对应位置;多位移工况总刚矩阵及约束刚度矩阵的投放过程包含两个大循环和两个小循环;大循环为单元种类循环和单元循环,即实现了对所有单元的遍历,并形成每一单元总体坐标系下的刚度矩阵小循环即单元节点循环和位移工况循环,在单元节点循环中,由于单元节点使用的是自然序,因而需将节点自然序通过IOVE转换成总刚矩阵中的使用序,然后判断当前单元是否包含约束节点或约束相关节点,当所有节点为完全自由节点时单元刚度矩阵将投放到完全自由节点对应的总刚矩阵GSM中,投放地址通过节点的使用序从完全自由节点自由度序列表IDOF中获取;当单元中存在约束节点或约束相关节点时,需进行多位移边值循环,并将对应的单元刚阵元素投放到约束节点相关的多工况总刚矩阵GCSMibc,ibc=1,…,NBC及约束矩阵GDSMibc,ibc=1,…,NBC中;所述投放的投放地址通过节点使用序从约束节点及约束相关自由度序列表IDOFCibc,ibc=1,…,NBC中获取;多位移工况总刚度矩阵在系统总顺序表中的数据存储为线性表,由三部分组成,即完全自由节点对应的总刚矩阵、约束节点及相关节点的未约束自由度的总刚矩阵和约束节点及相关节点的约束自由度的总刚矩阵;步骤4,多位移边值总刚矩阵的动态拼装;通过上述各节的运算操作,形成多位移边值工况分段管理的全部数据,其中包括多位移工况的自由度序列表、总刚矩阵和约束刚度矩阵;所述总刚矩阵和约束刚度矩阵中均包括线性表及数值部分;所述总刚矩阵都采用多位移边值一维分段存储管理模式,即完全自由节点对应部分存储一份,约束节点和约束相关节点对应部分每一位移边值各自存储;为了适应这种动态拼装,需要在自由节点的相关数据后预留足够的内存数组空间;为了获得第ibc位移工况的自由度序列表,拼装方式为IDOF‑IDOFCibc;将IDOFCibc对应的数据拷贝到IDOF后面预留的内存空间,然后访问一维顺序表中IDOF起始空间数据即能够实现对第ibc位移工况自由度序列表的调用;同理,总刚矩阵的拼装过程也相同,其拼装过程包括三部分,即总刚矩阵线性表的行索引IRN‑ICRNibc、列索引ICN‑ICCNibc和数值部分GSM‑GCSMibc。...

【技术特征摘要】
1.一种大规模结构有限元模型的多位移边值约束工况处理方法,其特征在于,具体过
程是:
步骤1,多位移工况的节点重排序;所述多位移工况的节点重排序是对第1类的位移约
束节点、第2类的与所有位移边值约束相关联的自由节点和第3类的完全自由类节点的重排
序;重排序时,将第三类完全自由节点安排在结构总刚矩阵的前位;将第二类相关联节点安
排在结构总刚矩阵的中位;将位移边值约束节点安排在结构总刚矩阵的末位;重排序后的
位移约束节点内部原有的相对顺序、与所有位移边值约束相关联的自由节点内部原有的相
对顺序和完全自由类节点内部原有的相对顺序均保持不变;
具体排序中,根据网格节点编号的分布确定自然序;通过对自然序进行节点重排序,得
到该节点的使用序;
步骤2,多位移边值总刚矩阵模拟投放;所述的总刚矩阵采用全稀疏按行压缩存储格
式,缩写为CSR,在有限元模型总刚矩阵形成之前需要建立其数据结构,得到总刚矩阵线性
表,包括CSR格式中的行索引数组及列索引数组;
为获得所述多位移边值总刚矩阵的线性表,通过两个步骤完成:第一步,形成结构模型
节点单链表,该节点单链表描述了结构模型离散化网格中的节点间关联关系;第二步,形成
多位移边值总刚矩阵线性表,此过程是在单链表的基础上按自由度级展开,并引入多位移
边值条件的标记;
所述的总刚矩阵节点单链表包括三个整型数组:列号数组IROW、行头数组IFCR及位置
数组LNXT;
通过对结构模型所有单元的遍历查询得到总刚矩阵单链表,获得到单元节点间的关联
关系,并在单链表中记录每一节点在总刚矩阵中的后继关联节点;所述总刚矩阵单链表的
生成算法流程如下:首先对单链表各数组初始化;随后依次按单元种类、单元数以及单元节
点循环,对有限元模型的单元节点关联关系进行遍历查询,并判断节点间是否存在单元连
接关系;当节点之间存在单元关联关系时,需将节点自然序通过数组IOVE转换为使用序,并
将每一节点相关联的节点使用序记录到单链表中,
步骤3,生成多位移边值总刚矩阵;所述生成过程是对单元遍历,并将各单元的刚度矩
阵元素投放到多位移工况总刚矩阵数值部分对应位置;
多位移工况总刚矩阵及约束刚度矩阵的投放过程包含两个大循环和两个小循环;大循
环为单元种类循环和单元循环,即实现了对所有单元的遍历,并形成每一单元总体坐标系
下的刚度矩阵小循环即单元节点循环和位移工况循环,在单元节点循环中,由于单元节
点使用的是自然序,因而需将节点自然序通过IOVE转换成总刚矩阵中的使用序,然后判断
当前单元是否包含约束节点或约束相关节点,当所有节点为完全自由节点时单元刚度矩阵
将投放到完全自由节点对应的总刚矩阵GSM中,投放地址通过节点的使用序从完全自由节
点自由度序列表IDOF中获取;当单元中存在约束节点或约束相关节点时,需进行多位移边
值循环,并将对应的单元刚阵元素投放到约束节点相关的多工况总刚矩阵GCSMibc,ibc=
1,…,NBC及约束矩阵GDSMibc,ibc=1,…,NBC中;所述投放的投放地址通过节点使用序从约
束节点及约束相关自由度序列表IDOFCibc,ibc=1,…,NBC中获取;
多位移工况总刚度矩阵在系统总顺序表中的数据存储为线性表,由三部分组成,即完
全自由节点对应的总刚矩阵、约束节点及相关节点的未约束自由度的总刚矩阵和约束节点
及相关节点的约束自由度的总刚矩阵;
步骤4,多位移边值总刚矩阵的动态拼装;通过上述各节的运算操作,形成多位移边值
工况分段管理的全部数据,其中包括多位移工况的自由度序列表、总刚矩阵和约束刚度矩
阵;所述总刚矩阵和约束刚度矩阵中均包括线性表及数值部分;所述总刚矩阵都采用多位
移边值一维分段存储管理模式,即完全自由节点对应部分存储一份,约束节点和约束相关
节点对应部分每一位移边值各自存储;为了适应这种动态拼装,需要在自由节点的相关数
据后预留足够的内存数组空间;
为了获得第ibc位移工况的自由度序列表,拼装方式为IDOF-IDOFCibc;将IDOFCibc对应
的数据拷贝到IDOF后面预留的内存空间,然后访问一维顺序表中IDOF起始空间数据即能够
实现对第ibc位移工况自由度序列表的调用;同理,总刚矩阵的拼装过程也相同,其拼装过
程包括三部分,即总刚矩阵线性表的行索引IRN-ICRNibc、列索引ICN-ICCNibc和数值部分
GSM-GCSMibc。
2.如权利要求1所述大规模结构有限元模型的多位移边值约束工况处理方法,其特征
在于,步骤1中在有限元程序执行中,有限元模型的处理网格节点涉及三类基本编号,包括、
有限元离散模型的原始节点编号、有限元模型中原始节点编号的自然序号和总刚矩阵中的
节点排列顺序;所述的有限元离散模型的原始节点编号存储于一维节点数组IP中,这仅是
用户识别的标示码,并不直接在数据结构管理算法中使用;所述的有限元模型中原始节点
编号的自然序号,即原始节点编号的IP数组的数组序,又称为自然序;所述的总刚矩阵中的
节点排列顺序又称为使用序。
3.如权利要求1所述大规模结构有限元模型的多位移边值约束工况处理方法,其特征
在于,步骤1中所述总刚矩阵节点排序规则为:结构总刚矩阵的行列顺序按节点的自然顺序
排列,将第三类完全自由节点安排在结构总刚矩阵的前位;将第二类相关联节点安排在结
构总刚矩阵的中位;将位移边值约束节点安排在结构总刚矩阵的末位。
4.如权利要求1所述大规模结构有限元模型的多位移边值约束工况处理方法,其特征
在于,步骤2中生成总刚矩阵节点单链表具体过程是:
第一步,取IPG行首元素L=ICFR(IPG),根据L进行判断:当L=0时,创建单链表行头,依
次执行LN=LF,ICFR(IPG)=LN,LF=LNXT(LN),LNXT(LN)=0,IROW(LN)=JPG;当L不为0时,
执行第二步;
第二步,依次执行LA=0和LS=IROW(L),并根据JPG和LS的相对大小判断:当JPG<LS时,
执行第三步;当JPG<LS不成立时,执行第四步;
第三步,执行LN=LF,并根据LA是否为0判断:当LA=0时,新节点插入单链表头,然后依
次执行ICFR(IPG)=LN,LF=LNXT(LN),LNXT(LN)=L,IROW(LN)=JPG,跳出图中循环;当LA
=0不成立时,新节点插入单链表中,LNXT(LA)=LN,LF=LNXT(LN),LNXT(LN)=L,IROW(LN)
=JPG,跳出图中循环;
第四步,根据JPG和LS是否相等判断:当JPG=LS不成立时,跳出图中循环;当JPG=LS成
立时,执行LA=L和L=LNXT(L),执行第五步;
第五步,根据L是否为0判断:当L=0不成立时,返回第二步的LS=IROW(L);当L=0时,
新节点插入单链表尾,依次执行LN=LF,LNXT(LA)=LN,LF=LNXT(LN),IROW(LN)=JPG,
LNXT(LN)=L,然后跳出图中循环;
所述L、LA、LN、LF、LS分别为不同节点序的临时变量;
至此,得到总刚矩阵节点单链表。
5.如权利要求1所述大规模结构有限元模型的多位移边值约束工况处理方法,其特征
在于,步骤2中生成多位移边值总刚矩阵线性表的具体过程是;
生成多位移边值总刚矩阵线性表,需要:一、生成多位移工况自由度序列表;二、通过多
位移工况自由度序列表与节点单链表结合生成多位移边值总刚矩阵线性表;
一、生成多位移工况自由度序列表:
生成多位移边值自由度序列表;所述的多位移边值自由度序列表由完全自由节点的自
由度序列表和约束相关节点与约束节点的自由度序列表组成;所述完全自由节点的自由度
序列表中各位移工况生成一份,约束相关节点与约束节点的自由度序列表中按各位移工况
不同分别生成;
在所述多位移边值自由度序列表中,用正整数标识自由的节点自由度序号,用负整数
标识约束的节点自由度序号,两类自由度在序列表中是按绝对值从小到大排列;根据总刚
矩阵节点排序规则,完全自由节点和约束相关节点在各位移工况中都不存在约束自由度,
这些节点在自由度序列表中的元素为从1连续增大的整数,从而确定了单元刚阵元素在一
维总刚矩阵中的位置;约束节点存在约束的自由度,在自由度序列表中,未约束自由度对应
元素为继前两类节点自由度序列表最大值依次增加的正整数,约束自由度对应元素为从-1
开始依次连续减小的负整数;
二、通过多位移工况自由度序列表与节点单链表结合生成多位移边值总刚矩阵线性
表;包括多位移边值总刚矩阵线性表的行索引和多位移边值总刚矩阵线性表的列索引;
Ⅰ生成多位移边值总刚矩阵线性表的行索引;具体过程如下:首先初始化变量,IL=0、
NQF=0、NBEG=1;其次位移工况循环,当位移工况更新后首先进行变量赋值,赋值等式为MR
=1、NR=1、IL1=1、ICL=1,并进行拼装形成当前工况的自由度序列表IDOFibc,拼装的方法
是将ibc工况的约束相关节点及约束节点对应自由度序列表拷贝到IDOF后的内存空间中;
最后节点循环生成当前位移工况ibc的总刚矩阵线性表的行索引,包括当該位移工况为第
一个位移工况时需要生成完全自由节点的行索引IRN和生成各位移工况的约束相关节点及
约束节点的总刚矩阵线性表行索引;在节点循环完成后,需要对线性表行索引的最后一行
进行赋值,即ICRNibc(MR+1-NQF)=IL1,IDRNibc(NR+1)=ICL;
Ⅱ生成多位移总刚矩阵列索引,其过程如下:首先初始化变量,IL=0、NBEG=1;其次位
移工况循环ibc=1,…,NBC,当位移工况更新后首先进行变量赋值,赋值等式为IL1=1、IDL
=1,并进行拼装形成当前工况的自由度序列表IDOFibc,拼装的方法是IDOF-IDOFCibc,即将
ibc工况的约束相关节点及约束节点对应自由度序列表拷贝到IDOF后的内存空间中;最后
节点循环生成当前位移工况ibc的总刚矩阵线性表的列索引,在此过程中又分为两种情况,
一种当該位移工况为第一个位移工况时需要生成完全自由节点的列索引ICN,所述各位移
工况的约束相关节点及约束节点的总刚矩阵线性表列索引包括ICCNibc和IDCNibc;
所述IL是线性表的非零元序号;NQF是当前位移工况约束节点及约束相关节点的未约
束自由度总和;NBEG是当前位移工况号;MR是当列索引中当前行的最大列号;IL1是IL的临
时整数变量;ICL、IDL均为约束自由度线性表的元素序号;NR是列索引中当前约束自由度的
行号;NBC为位移工况数;ibc是位移工况号的临时变量;IDOFibc是第ibc位移工况的自由度
序列表;IDCNibc是第ibc位移工况的约束自由度列索引;ICCNibc是第ibc位移工况的约束节
点及约束相关节点未约束自由度的列索引;ICN是完全自由节点的列索引;ICRNibc是第ibc
位移工况的约束节点及约束相关节点未约束自由度的行索引;IDRNibc是第ibc位移工况的
约束节点及约束相关节点约束自由度的行索引;IRN是完全自由节点的行索引。<...

【专利技术属性】
技术研发人员:孙秦张保
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1