Abaqus 导出单元刚度矩阵和全局刚度矩阵
首次创建:2023.7.29
最后更新:2023.7.29
如有什么改进的地方,欢迎大家讨论!
详细情况请查阅:Abaqus Analysis User’s Guide
一、Abaqus 导出单元刚度矩阵
1.生成单元刚度矩阵方法
导出单元刚度矩阵需要修改inp文件
,先在abaqus中创建一个单元集合,这个集合是你想导出的单元集合,这里我创建的是Element_ALL
。然后生成inp
文件,在inp
文件中的step关键字对中添加如下一行指令:
*Element Matrix Output, Elset=Element_ALL, File Name=ElementStiffness, Output File=User Defined, stiffness=yes
.....
.....
*Restart, write, frequency=0
**
** FIELD OUTPUT: F-Output-1
**
*Output, field, variable=PRESELECT
**
** HISTORY OUTPUT: H-Output-1
**
*Output, history, variable=PRESELECT
** 添加下面这一行
*Element Matrix Output, Elset=Element_ALL, File Name=ElementStiffness, Output File=User Defined, stiffness=yes
*End Step
2.单元刚度矩阵文件格式分析
这样在abaqus提交任务计算后,就会在abaqus 的当前项目工作目录下生成一个ElementStiffness.mtx
文件,其格式如下:
**
** ELEMENT NUMBER 1 STEP NUMBER 1 INCREMENT NUMBER 1
** ELEMENT TYPE C3D4
*USER ELEMENT, NODES= 4, LINEAR
** ELEMENT NODES
** 2, 1, 9, 81, 2, 3
*MATRIX,TYPE=STIFFNESS127.06125836015 ,0.0000000000000 , 183.76386705487 0.0000000000000 , -121.64117806010 , 388.01179556583 -39.618685020706 , -22.681043477885 , 48.656471224038 , 60.711115702304 -15.120695651923 , -96.321293715418 , 80.880129060096 , 37.801739129808 92.212564977143 ,32.437647482692 , 60.499604560096 , -81.962788877760 , -13.159037040064 -19.738555560096 , 42.381078873928 -173.27005949011 , 0.0000000000000 , 0.0000000000000 , 28.116306917523 0.0000000000000 , -53.846153846154 , 287.62647738911 0.0000000000000 , -173.27005949011 , 80.769230769231 , 0.0000000000000 28.116306917523 , -80.769230769231 , 0.0000000000000 , 287.62647738911 0.0000000000000 , 121.15384615385 , -606.44520821538 , -80.769230769231 -121.15384615385 , 98.407074211329 , 0.0000000000000 , 0.0000000000000 1006.6926708619 ,85.827486150661 , 22.681043477885 , -48.656471224038 , -49.208737599120 -22.681043477885 , 34.567543403526 , -142.47272481653 , 0.0000000000000 80.769230769231 , 105.85397626499 15.120695651923 , 85.827486150661 , -40.008181769231 , -15.120695651923 -24.007578179248 , 40.008181769231 , 0.0000000000000 , -142.47272481653 0.0000000000000 , 0.0000000000000 , 80.652816845114 -32.437647482692 , -60.012272653846 , 300.39620152731 , 45.271796585256 60.012272653846 , -58.825364207497 , 53.846153846154 , 0.0000000000000 -498.65453685784 , -66.680302948718 , 0.0000000000000 , 257.08369953803 ........
从内容可以看出*MATRIX,TYPE=STIFFNESS
后面的就是一个单元刚度矩阵,其形式为下三角形式
。上面是一个线性四面体的单元刚度矩阵,由于线性四面体有4个节点,每个节点有3个自由度,所以单元刚度矩阵的维度是12x12的:
k e 12 x 12 ke_{12x12} ke12x12
整理后如下所示:
127.06125836015 | ||||
0.0000000000000 | 183.76386705487 | |||
0.0000000000000 | -121.64117806010 | 388.01179556583 | ||
-39.618685020706 | -22.681043477885 | 48.656471224038 | 60.711115702304 | |
… | … | … | … | … |
二、Abaqus 导出全局刚度矩阵
1.生成全局刚度矩阵方法
在inp
文件最后添加一个输出全局刚度矩阵的step,如下所示:
....
....
*Output, field, variable=PRESELECT
**
** HISTORY OUTPUT: H-Output-1
**
*Output, history, variable=PRESELECT
** 导出单元刚度矩阵
*Element Matrix Output, Elset=Element_ALL, File Name=ElementStiffness, Output File=User Defined, stiffness=yes
**
*End Step**
** 导出全局刚度矩阵
*Step, name=GlobalStiffnessMatrix
*MATRIX GENERATE, STIFFNESS
*MATRIX OUTPUT, STIFFNESS, FORMAT=COORDINATE
*End Step
**
2.全局刚度矩阵文件格式分析
同样提交任务后将在工程的工作目录下生成一个以你任务名称命名的mtx文件
:如我的任务名称为Job-exportStiffness-globalstiffness
那么将生成Job-exportStiffness-globalstiffness_STIF2.mtx
文件,这个文件就存储着全局刚度矩阵。部分内容如下:
1 1 3.405254068249726e+02
1 2 6.072817378766025e+01
2 1 6.072817378766025e+01
1 3 1.269469880224359e+02
3 1 1.269469880224359e+02
1 4 -5.756613438782665e+01
4 1 -5.756613438782665e+01
1 5 -3.763929516105769e+01
5 1 -3.763929516105769e+01
1 6 8.076923076923076e+01
6 1 8.076923076923076e+01
1 7 6.181074378769931e+01
7 1 6.181074378769931e+01
....
....
可以看出这是采用三元数组
的方式来存储的,即一行数据前面个为矩阵的(x,y)位置索引,最后一个为该索引位置的值。