Abaqus 导出单元刚度矩阵和全局刚度矩阵

Abaqus 导出单元刚度矩阵和全局刚度矩阵_第1张图片

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,          8
          1,          2,          3
*MATRIX,TYPE=STIFFNESS
  127.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)位置索引,最后一个为该索引位置的值。

你可能感兴趣的:(有限元,abaqus)