您的当前位置:首页正文

一种基于ABAQUS有限元与边界元的耦合方法[发明专利]

2023-04-26 来源:个人技术集锦
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 111159951 A(43)申请公布日 2020.05.15

(21)申请号 201911408608.7(22)申请日 2019.12.31

(71)申请人 哈尔滨工业大学(深圳)

地址 518000 广东省深圳市南山区桃源街

道深圳大学城哈尔滨工业大学校区(72)发明人 雷卫东 秦晓飞 段志遥 陈锐 (74)专利代理机构 深圳市添源知识产权代理事

务所(普通合伙) 44451

代理人 黎健任(51)Int.Cl.

G06F 30/23(2020.01)G06F 30/13(2020.01)

权利要求书2页 说明书9页 附图6页

CN 111159951 A(54)发明名称

一种基于ABAQUS有限元与边界元的耦合方法

(57)摘要

本发明提供了一种基于ABAQUS有限元与边

S1、ABAQUS根据输入文件界元的耦合方法,包括:

调用ABAQUS/Explicit分析计算生成结果文件Job-1.odb;S2、运行odbHistoryOutput.py把位移和坐标数据写入到TXT文本;S3、读取TXT文本的数据生成边界坐标矩阵和节点位移向量;S4、调用SolveStrategye进行时域边界元分析计算;S5、根据时域边界元分析计算将边界的面力转换成节点力;S6、利用平衡原理f=-Mp生成节点力矩阵并写入TXT文本;S7、运行Inpmodify.py生成下一个时间步耦合的输入文件。数据读写处理速度快,方便快捷。

CN 111159951 A

权 利 要 求 书

1/2页

1.一种基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述基于ABAQUS有限元与边界元的耦合方法包括以下步骤:

S1、将输入文件提交给ABAQUS,ABAQUS根据输入文件的内容调用ABAQUS/Explicit分析计算包进行有限元分析计算并生成相应的结果文件Job-1.odb;

S2、调用ABAQUS命令运行odbHistoryOutput.py把位移和坐标数据写入到TXT文本;S3、MATLAB时域边界元读取TXT文本里的数据生成边界坐标矩阵和节点位移向量;S4、调用SolveStrategye进行时域边界元分析计算;S5、MATLAB时域边界元根据时域边界元分析计算将边界的面力转换成节点力;S6、在MATLAB时域边界元中利用平衡原理f=-Mp生成节点力矩阵并写入TXT文件;S7、调用ABAQUS命令运行Inpmodify.py生成下一个时间步耦合的输入文件Job-2.inp。2.根据权利要求1所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S3中还包括以下步骤:

S31、对有限元模型中公共边界节点进行重新编号;S32、odbHistoryOutput.py脚本文件在读取结果文件中的坐标和位移数据后,依据公共边界重新编好的编号给出写入到TXT文本数据文件名的命名规则;

S33、MATLAB有规律地依据文件名读取新数据生成所需的边界节点坐标矩阵和边界节点位移向量。

3.根据权利要求1或2所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S5中在公共边界上传递位移和力时都要遵循两个准则:位移协调和力平衡原理;当公共边界节点位置一致时,则界面上节点需满足位移协调条件(uBi=uFi)和力平衡条件(fFi+MpBi=0);其中,fFi,pBi分别为公共边界处节点力和面力,M为力转换矩阵可以表示为:

N代表插值函数,NT表示插值函数的转置,Γ代表公共边界,e

代表离散边界单元。

4.根据权利要求3所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S1中还包括以下步骤:

S11、利用ABAQUSGUI生成几何部件,赋予部件材料属性,组装,划分网格,设置分析步和重启动,加载非公共边界的外荷载,生成Job-0.inp;

S12、导入Job-0.inp文件,修改公共边界节点编号,设置节点集,设置历史输出变量,加载公共边界的节点荷载并生成Job-1.inp。

5.根据权利要求4所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述Job-1.odb是在提交Job-1.inp文件ABAQUS分析计算后生成的odb文件。

6.根据权利要求5所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S2中根据odb文件的数据结构编制odbHistoryOutput.py脚本文件,该脚本文件包含的功能有:读取odb文件里面的位移和坐标数据,然后将这些数据写入到TXT文本里。

7.根据权利要求6所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S4中时域边界元的主求解器分为SolveStrategye和SolveStrategyI,调用SolveStrategye主函数可求解出边界点的未知位移和未知应力;调用SolveStrategyI主函数可求解出内点的位移和应力。

2

CN 111159951 A

权 利 要 求 书

2/2页

8.根据权利要求7所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S6中利用力平衡原理实现将公共边界的面力转化为节点力传递给有限元子域,通过MATLAB边界元程序计算得到公共边界面力,基于MATLAB边界元计算出的位移和面力直接储存在TXT文本中,MATLAB边界元计算时沿用了ABAQUS公共边界节点编号顺序写入到TXT文本中。

9.根据权利要求8所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述步骤S7中还包括以下步骤:

S71、利用python编制法读取上一个时间步的输入文件;S72、修改里面的历史数据可得到本时间步的输入文件并将编制好的python脚本文件命名inpmodify.py。

10.根据权利要求9所述的基于ABAQUS有限元与边界元的耦合方法,其特征在于,所述输入文件Job-2.inp还可直接在在ABAQUS中由Job-1.inp生成;在之后所述输入文件为Job-3.inp、Job-4.inp...则调用ABAQUS命令运行Inpmodify.py生成的。

3

CN 111159951 A

说 明 书

一种基于ABAQUS有限元与边界元的耦合方法

1/9页

技术领域

[0001]本发明属于建筑结构耦合技术改进领域,尤其涉及一种基于ABAQUS有限元与边界元的耦合方法。

背景技术

[0002]随着中国城市化进程不断扩张,高层建筑、大跨桥梁、地铁以及交通隧道等都在大量建设而且还将不断涌现。这些建筑物的结构类型、规模复杂多样,地基却是一成不变的;结构减震、抗震研究已成为热点研究课题,然而结构及地基组成的体系的抗震研究更加具有研究意义。[0003]当前,正在众多数值分析算法中,有限元法通过对区域进行插值离散,不仅能够很好的处理线弹性、均匀介质问题;也适用于非线性、非均质、各向异性问题的求解;同时有限元算法适应不同的几何形状。目前存在着较多的有限元分析软件,例如德国的ASKA,英国的PAFEC,法国的SYSTUS、美国的ABAQUS、ANSYS还有中国的PKPM。这些有限元分析软件的共同特点是具有高效的非线性求解器以及丰富和实用的非线性材料库,这些特点使得有限元法可以更加真实地分析实际工程问题。

[0004]边界元法是在边界积分方程和对全域为连续函数的基本解的基础上发展起来的。由于基本解包含奇异性且能够自动的满足无穷远处的边界条件,因此边界元法容易处理无限域、半无限域和带有奇异性的问题。同时只对边界进行离散,降低了问题的维数,使数值计算过程得到简化。目前边界元法数学理论还处于完善之中,在收敛性、误差分析和各种不同的边界元形式的统一等方面有待于形成较规范的数学理论,所以较多的存在一些研究者自己编写的边界元程序,缺乏完善的前后处理程序,只能分析一些简单的模型。

[0005]有限元边界元耦合法可以充分发挥边界元法处理远场线性土体问题的优势;有限元法处理近场结构非线性问题的长处,结合二者的优点,避免二者的缺点,能解决一些大型复杂结构的动力问题。对于边界元工作者而言,一般都编有边界元程序。但是,进行有限元边界元耦合法的工作研究时,由于缺乏有限元软件和边界元软件对应的接口,为了方便利用现有的边界元程序,目前有限元边界元耦合方面的研究主要采用的方法是自行编制相应的有限元程序及耦合程序。

[0006]有限元法在处理场域分布剧烈变化的奇异问题时,存在较大的困难;同时有限元处理无限延伸的开域或者半无限域的开域问题时,一般采用透射边界、粘性边界、粘弹性边界或者无限单元等,这些处理方式较为复杂,而且在有限元软件中实现难度较高。[0007]边界元能够很好的处理无限域问题,并能很好地保持计算精度,但是边界元法对于各向异性问题、以及非均质、非线性问题的处理存在困难,并且边界元法缺乏大型通用商业软件。

[0008]针对有限元和边界元耦合法的工作研究,由于缺乏有限元软件和边界元软件对应的接口,为了方便利用现有的边界元程序,目前有限元边界元耦合方面的研究主要采用的方法是自行编制相应的有限元程序及耦合程序。而这样做的局限性在于:(1)分析计算时由

4

CN 111159951 A

说 明 书

2/9页

于缺乏有限元软件那样的丰富的材料库和单元库,因此在需要有限元边界元耦合法分析非线性或者具有复杂边界条件问题时,前期建模往往会花费更大时间成本编制前处理程序。(2)当使用耦合法的计算之后,想要呈现模型的应力分布情况时,需要寻找生成应力云图的插件,并将应力数据输入至插件的接口才能生成应力云图,这种后处理操作过程相当麻烦。[0009]现有的时域边界元软件是用MATLAB编制的。以python编制的脚本文件关联MATLAB和ABAQUS。MATLAB编制的程序python识别不了,python编制的脚本文件MATLAB也读取不了。发明内容

[0010]本发明的目的在于提供一种基于ABAQUS有限元与边界元的耦合方法,利用ABAQUS脚本接口,旨在解决ABAQUS与MATLAB编制时域边界元程序之间耦合的技术问题。[0011]本发明是这样实现的,一种基于ABAQUS有限元与边界元的耦合方法,所述基于ABAQUS有限元与边界元的耦合方法包括以下步骤:[0012]S1、将输入文件提交给ABAQUS,ABAQUS根据输入文件的内容调用ABAQUS/Explicit分析计算包进行有限元分析计算并生成相应的结果文件Job-1.odb;[0013]S2、调用ABAQUS命令运行odbHistoryOutput.py把位移和坐标数据写入到TXT文本;

[0014]S3、MATLAB时域边界元读取TXT文本里的数据生成边界坐标矩阵和节点位移向量;[0015]S4、调用SolveStrategye进行时域边界元分析计算;[0016]S5、MATLAB时域边界元根据时域边界元分析计算将边界的面力转换成节点力;[0017]S6、在MATLAB时域边界元中利用平衡原理f=-Mp生成节点力矩阵并写入TXT文本;[0018]S7、调用ABAQUS命令运行Inpmodify.py生成下一个时间步耦合的输入文件Job-2.inp。

[0019]本发明的进一步技术方案是:所述步骤S3中还包括以下步骤:[0020]S31、对有限元模型中公共边界节点进行重新编号;[0021]S32、odbHistoryOutput.py脚本文件在读取结果文件中的坐标和位移数据后,依据公共边界重新编好的编号给出写入到TXT文本数据文件名的命名规则;[0022]S33、MATLAB有规律地依据文件名读取新数据生成所需的边界节点坐标矩阵和边界节点位移向量。

[0023]本发明的进一步技术方案是:所述步骤S5中在公共边界上传递位移和力时都要遵循两个准则:位移协调和力平衡原理;当公共边界节点位置一致时,则界面上节点需满足位移协调条件(uBi=uFi)和力平衡条件(fFi+MpBi=0);其中,fFi,pBi分别为公共边界处节点力和面力,M为力转换矩阵可以表示为:

N代表插值函数,NT表示

插值函数的转置,Γ代表公共边界,e代表离散边界单元。[0024]本发明的进一步技术方案是:所述步骤S1中还包括以下步骤:[0025]S11、利用ABAQUSGUI生成几何部件,赋予部件材料属性,组装,划分网格,设置分析步和重启动,加载非公共边界的外荷载,生成Job-0.inp;[0026]S12、导入Job-0.inp文件,修改公共边界节点编号,设置节点集,设置历史输出变量,加载公共边界的节点荷载并生成Job-1.inp。

5

CN 111159951 A[0027]

说 明 书

3/9页

本发明的进一步技术方案是:所述Job-1.odb是在提交Job-1.inp文件ABAQUS分析

计算后生成的odb文件。

[0028]本发明的进一步技术方案是:所述步骤S2中根据odb文件的数据结构编制odbHistoryOutput.py脚本文件,该脚本文件包含的功能有:读取odb文件里面的位移和坐标数据,然后将这些数据写入到TXT文本里。[0029]本发明的进一步技术方案是:所述步骤S4中时域边界元的主求解器分为SolveStrategye和SolveStrategyI,调用SolveStrategye主函数可求解出边界点的未知位移和未知应力;调用SolveStrategyI主函数可求解出内点的位移和应力。[0030]本发明的进一步技术方案是:所述步骤S6中利用力平衡原理实现将公共边界的面力转化为节点力传递给有限元子域,通过MATLAB边界元程序计算得到公共边界面力,基于MATLAB边界元计算出的位移和面力直接储存在TXT文本中,MATLAB边界元计算时沿用了ABAQUS公共边界节点编号顺序写入到TXT文本中。[0031]本发明的进一步技术方案是:所述步骤S7中还包括以下步骤:[0032]S71、利用python编制法读取上一个时间步的输入文件;[0033]S72、修改里面的历史数据可得到本时间步的输入文件并将编制好的python脚本文件命名inpmodify.py。

[0034]本发明的进一步技术方案是:所述输入文件Job-2.inp还可直接在在ABAQUS中由Job-1.inp生成;之后所输入文件Job-3.inp、Job-4.inp...则调用ABAQUS命令运行Inpmodify.py生成。

[0035]本发明的有益效果是:采用把数据以二进制方式写入文件,数据读写处理速度快,方便快捷。建立的基于ABAQUS的有限元边界元耦合系统,编制的ABAQUS接口模块,可以很方便的实现MATLAB程序与ABAQUS之间的数据交互。实现了ABQUS与基于MATLAB编写的时域边界元法之间的软件耦合。

附图说明

[0036]图1是本发明实施例提供的ABAQUS与MATLAB程序之间的数据交互示意图。[0037]图2是本发明实施例提供的显示的直接耦合的流程图。

[0038]图3是本发明实施例提供的自行编制的时域边界元求解器主函数界面示意图。[0039]图4是本发明实施例提供的由Job-1生成Job-2的复制模型示意图。[0040]图5是本发明实施例提供的由Job-1生成Job-2的Edit Model Attributes对话框示意图。

[0041]图6是本发明实施例提供的基于ABAQUS有限元与边界元的耦合方法的流程图。[0042]图7是本发明实施例提供的整个时间步耦合流程图。

具体实施方式

[0043]如图1-7所示,本文以TXT文本作为“数据桥梁”,只需将MATLAB时域边界元程序所需数据从ABAQUS写入到TXT文本里面,MATLAB便可很方便的读取这些数据并存储到矩阵中;而对ABAQUS所需的相关数据,只需从MATLAB写入到TXT文本里面,利用python读取并写入到inp文件里面,实现MATLAB-python-ABAQUS数据交互。

6

CN 111159951 A[0044]

说 明 书

4/9页

基于ABAQUS的有限元边界元耦合法的整个计算过程是在MATLAB界面里完成的,采

用的是显示直接的分区域耦合方式,其流程如图2所示。流程图中省去了以TXT文本作为“数据桥梁”的部分。

[0045]在ABAQUS进行前处理的过程中会对有限元模型中公共边界(相对于有限元边界元耦合法的公共边界)节点重新编号,方便公共边界节点的位移和坐标数据输出;odbHistoryOutput.py脚本文件中在读取了结果文件中的坐标和位移数据之后,依据公共边界重新编好的编号给出了写入到TXT文本数据的文件名的命名规则,该规则在脚本文件中详细说明了,例如:文件名为COOR-801-1.txt里面的数据代表ABAUQS模型里面节点编号为801(重新编好的编号,也就是公共边界第一个节点)的节点1方向(X方向)的坐标,文件名为U-880-2.txt里面的数据代表ABAQUS模型里面节点编号为880(重新编好的编号,也就是公共边界第80个节点)的节点2方向(Y方向)的位移,文件名中COOR或者U代表坐标和位移,801或者880代表节点编号,1或2代表X方向或者Y方向。这种处理方式把位移和坐标信息写入到TXT文本之后,MATLAB便能很有规律地依据文件名读取这些数据生成所需的边界节点坐标矩阵和边界节点位移向量。[0046]从图2、4中可以看出,ABAQUS有着成熟的前后处理模式。首先只需将输入文件提交给ABAQUS,ABAQUS就可以根据输入文件的内容调用ABAQUS/Explicit分析计算包进行有限元分析计算,并生成相应的结果文件。然后调用ABAQUS相关命令运行odbHistoryOutput.py把位移和坐标数据写入到TXT文本里面。而MATLAB时域边界元程序没有成熟的前后处理程序。只能自己编写适合的前处理代码,主要读取TXT文本里面的数据生成边界坐标矩阵和位移矩阵;然后调用SolveStrategye进行时域边界元分析计算;再编写适合的后处理代码,将边界的面力转换成节点力,再利用平衡原理(f=-Mp)生成节点力矩阵并写入TXT;最后调用ABAQUS相关命令运行Inpmodify.py生成下一个时间步的输入文件(Job-2.inp)。[0047](1)Job-1.inp

[0048]Job-1.inp主要生成利用ABAQUSGUI生成几何部件,赋予部件材料属性,组装,划分网格,设置分析步和重启动,加载非公共边界的外荷载,生成Job-0.inp;然后导入该文件,修改公共边界节点编号,设置节点集,设置历史输出变量,加载公共边界的节点荷载,最后便可生成Job-1.inp。Job-1.inp,包含了模型信息,公共边界的节点荷载信息,分析步、历史输出变量和重启动信息。[0049](2)Job-1.odb

[0050]Job-1.odb是在提交Job-1.inp文件ABAQUS分析计算后生成的odb文件。[0051](3)odbHistoryOutput.py

[0052]通过odbHistoryOutput.py脚本来读取odb文件里的数据,并写入TXT文本里面。根据odb文件的数据结构,编制相应的python脚本就可以将所需的数据输出出来。无论是按照场输出的数据结构还是历史输出的数据结构读取,对于有限元边界元耦合法而言,只要能读取坐标和位移数据并将该数据写入TXT文本即可。依据历史输出的数据结构编制了对应的脚本文件,并将这个脚本文件命名为odbHistoryOutput.py,这个脚本文件的主要功能为从odb文件中读取公共边界节点的位移数据和坐标数据,并将这些数据写入到TXT文本里面。MATLAB调用odbHistoryOutput.py程序读取ABAQUS结果odb文件中的结果数据相关命令为:

7

CN 111159951 A[0053]

说 明 书

5/9页

system(‘abaqus cae noGUI=odbHistoryOutput.py’);程序代码如下所示。

[0054]

[0055]

基于python编写的脚本文件

[0056]上述示出的是自行编制的读取odb文件数据的脚本文件,通过odbHistoryOutput.py脚本来读取odb文件里的数据,并写入TXT文本里面。[0057](4)SolveStrategye

[0058]MATLAB时域边界元程序是基于时域边界元法编制的。文件均为函数式M文件,使用前先输入某一函数文件所需的输入参量,然后调用该函数,运算得到要求的结果,再返回这些结果的值。函数文件类似于一个黑箱,由函数执行的命令以及这些命令所创建的中间变

8

CN 111159951 A

说 明 书

6/9页

量都是隐含的。运算过程中的中间变量都是局部变量,存放在函数本身的空间内,不会和MATLAB基本工作空间的变量相互覆盖,对于用户来讲,可见的只是输入和输出,因此易于使程序模块化,移植性强,特别适合于大型程序代码的集成。对于弹性问题而言,时域边界元程序的主求解器分为两部分:SolveStrategye和SolveStrategyI。调用SolveStrategye主函数可求解出边界点的未知位移和未知应力;调用SolveStrategyI主函数可求解出内点的位移和应力。

[0059]在公共边界上传递位移和力时都要遵循两个准则:位移协调和力平衡原理。当公共边界节点位置一致时,则界面上节点需满足位移协调条件(uBi=uFi)和力平衡条件(fFi+MpBi=0)。其中,fFi,pBi分别为公共边界处节点力和面力。M为力转换矩阵可以表示为:

这样利用力平衡原理可以实现将公共边界的面力转化为节

点力传递给有限元子域。通过MATLAB边界元程序计算可以得到公共边界面力,基于MATLAB边界元计算出来的位移和面力可以直接储存在TXT文本中。为了实现公共节点处面力和节点力转换。MATLAB边界元计算时沿用了ABAQUS公共边界节点编号顺序(均为选定一点后,沿逆时针方向顺序编号)写入到TXT文本中。例如:文件名为AMP-8X.txt里面的数据代表ABAUQS模型里面公共边界第8个的节点1方向(X方向)的坐标,文件名为AMP-10Y.txt里面的数据代表ABAQUS模型里面也就是公共边界第10个的节点2方向(Y方向)的位移,文件名中AMP为节点力,8或者10代表公共节点编号顺序,1或2代表X方向或者Y方向。当前时间步的节点力和和位移已知后,就可以开始下一个时间步的耦合。[0060]时域边界元程序比较单一,没有GUI(图形用户界面),没有完善的前后处理,主要部分为时域边界元法的求解器,利用边界上的已知位移和面力首先求解边界上的未知位移和未知面力,输入内点的坐标便可求解内点的位移和应力。所以时域边界元程序需要给出划分好网格的坐标数据、已知位移和已知面力才可以利用时域边界元程序求解出任意一点的位移或者应力,但并不能绘制模型的应力云图。如图3所示,为自行编制的时域边界元求解器主函数界面。[0061](5)Inpmodify

[0062]python语言是一种既简单又具有强大功能的语言,而ABAQUS脚本接口就是基于python语言实现的。由于每一个输入文件的历史数据的格式都是一样的,所以后续的输入文件都具有之前时间步的输入文件的格式,这样就可以利用GUI建模,生成前两个时间步的输入文件。由于第二个时间步的输入文件和之后的每个时间步的输入文件都有相同的格式,只是历史数据不一样。所以可以利用python编制相关代码,读取上一个时间步的输入文件,然后修改里面的历史数据便可得到本时间步的输入文件,编制好的python脚本文件可以命名为inpmodify.py。如下脚本编码所示,为自行编制的Python脚本文件。

9

CN 111159951 A

说 明 书

7/9页

[0063]

[0064]

自行编制的inpmodify.pyPython脚本文件

10

CN 111159951 A

说 明 书

8/9页

[0065]

[0066]

自行编制的inpmodify.pyPython脚本文件

[0067]

自行编制的inpmodify.py Python脚本文件(6)Job-2.inp

[0069]最后调用ABAQUS相关命令运行Inpmodify.py生成下一个时间步的输入文件(Job-2.inp)。此外,对于Job-2.inp,还可以直接在ABAQUS中由Job-1.inp生成。简单介绍一下如何利用GUI生成。首先在CAE界面导入Job-1.inp,如图4所示,选中Job-1,右键然后点击Copy 

11

[0068]

CN 111159951 A

说 明 书

9/9页

Model,然后在Copy Model对话框将命名更改为Job-2。再双击Job-2弹出Edit Model Attributes;在Restart栏下面,勾选Read data from job,设置为Job-1;在Step name栏填写Step-1。具体操作如图5所示,这一步的操作表示Job-2分析计算是以Job-1里设置的Step-1分析步末,也就是分析结束时的状态开始的栏填写Step-1。具体操作如图5所示,这一步的操作表示Job-2分析计算是以Job-1里设置的Step-1分析步末,也就是分析结束时的状态开始的。

[0070]然后和Job-1一样在Step模块设置Step-2分析步、历史输出变量和重启动,在Load模块输入第二个时间步的荷载幅值,命名为Load-2;然后输入第二个时间步的节点荷载,这里荷载幅值可以先设置为零。以第一个公共节点为例,再次说明公共节点荷载的命名方式,荷载命名为Load-2-1X,作用在SET-2-1节点上,对应的荷载幅值命名为AMP-2-1X,表示为第二个时间增量步作用在SET-2-1节点上X方向荷载的大小。最后跳到Job模块,生成Job-2.inp文件。显示的直接耦合的时间步长比较短,要分析一个典型的模型,可能需要成千上百步。经过比较Job-1.inp和Job-2.inp的内容发现:Job-2.inp相对于Job-1.inp只是缺少了模型数据,因此可以知道下一个时间步也就是第三个时间步的输入文件也缺少模型数据,但和上一个时间步的输入文件(Job-2.inp)具有相同的格式和内容,只是历史数据不同。因此可以用python读取上一个时间步的输入文件,并以列表的形式赋值给一个变量名,然后把这个列表里面包含历史变量的部分替换为当前时间步所需的历史变量,历史变量包括时间步信息以及荷载信息这两部分,都是首先从MATLAB里面写入到TXT文本里面,然后利用python读取相关数据,这也就是inpmodify.py脚本文件的主要功能。[0071]若当前时刻的有限元子域所有节点的位移已知,便可将已知的公共边界的位移利用位移协调传递给边界元子域,利用边界元程序软件便可求解出当前时刻的所有未知量,包括公共边界的面力。然后利用力平衡原理将公共边界的面力转化为节点力传递给有限元子域。当前时间步末时刻的节点力已知,那么当前时间步有限元子域所有的量均已知,可以开始下一个时间步的耦合。整个的耦合过程如图7所示[0072]可以看出,由于在初始时刻t1,并未加载外荷载,所以没有初始加速度,有限元方程右端项残余系数为零,第一个时间步的末和起始时刻的位移是相等的,即在t1时刻的位移可以求出;然后利用位移协调求出边界元子域公共边界的位移,将其作为已知部分带入时域边界元控制方程,便可求解出在t1时刻边界元子域的所有未知量,包括公共边界的节点面力,然后利用力平衡原理求出在t1时刻有限元子域公共边界的节点荷载。下一个时间步耦合开始时,由于在该时间步的起始时刻t1加载了外荷载,并且在t1时刻公共边界节点荷载已知,从而可以求出残余系数(下一时间步与当前时间步插值),下一个时间仍可以进行如图7的耦合流程了每个时间步耦合流程图。[0073]采用把数据以二进制方式写入文件,数据读写处理速度快,方便快捷。建立的基于ABAQUS的有限元边界元耦合系统,编制的ABAQUS接口模块,可以很方便的实现MATLAB程序与ABAQUS之间的数据交互。实现了ABQUS与基于MATLAB编写的时域边界元法之间的软件耦合。

[0074]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

12

CN 111159951 A

说 明 书 附 图

1/6页

图1

13

CN 111159951 A

说 明 书 附 图

2/6页

图2

14

说 明 书 附 图

图3

图4

15

3/6页

CN 111159951 A

CN 111159951 A

说 明 书 附 图

4/6页

图5

16

CN 111159951 A

说 明 书 附 图

5/6页

图6

17

CN 111159951 A

说 明 书 附 图

6/6页

图7

18

因篇幅问题不能全部显示,请点此查看更多更全内容