手把手教你读abaqus的inp文件(以一个单元的inp文件为例)
首先写出全部代码,一个单元的inp文件完整流程图(可先大致浏览后跳过,接下来分步骤进行详细说明):
*Heading
** Job name: 3pct2Mesh Model name: Model-1
** Generated by: Abaqus/CAE 6.14-1
*Node
1, -0.5, -0.5, 1
2, -0.5, 0.5, 1
3, -0.5, -0.5, 0
4, -0.5, 0.5, 0
5, 0.5, -0.5, 1
6, 0.5, 0.5, 1
7, 0.5, -0.5, 0
8, 0.5, 0.5, 0
*Element, type=C3D8
1, 5, 6, 8, 7, 1, 2, 4, 3
*Nset, nset=Al-1, generate
1, 8, 1
*Elset, elset=Al-1
1,
*NODE, NSET=Ref1
999998, 1., 1.1, 0.0
*NODE, NSET=Ref2
999999, 1.1, 1., 0.0
*NODE, NSET=Ref3
999997, 1, 1., 2
** Section: Aluminum
** Section: Section-1
*Solid Section, elset=Al-1, material=Al-1
*Nset, nset=ORIGIN_1, unsorted
1
*Nset, nset=TOPORI_1, unsorted
2
*Nset, nset=ORIGIN, unsorted
3
*Nset, nset=TOPORI, unsorted
4
*Nset, nset=RIGHTORI_1, unsorted
5
*Nset, nset=TOPRIGHT_1,unsorted
6
*Nset, nset=RIGHTORI, unsorted
7
*Nset, nset=TOPRIGHT, unsorted
8
*Nset, nset=FRONTFACE, unsorted
3,
4,
7,
8,
*Nset, nset=BACKWARDFACE, unsorted
1,
2,
5,
6,
*Nset, nset=LEFTFACE, unsorted
3,
4,
*Nset, nset=RIGHTFACE, unsorted
7,
8,
*Nset, nset=BOTFACE, unsorted
3,
*Nset, nset=TOPFACE, unsorted
4,
*Nset, nset=Al-1, generate
1,1,1
*Elset, elset=Al-1,generate
1,8,1
*Equation
3
BACKWARDFACE,1,-1
FRONTFACE,1,1
Ref3,1,1
*Equation
3
BACKWARDFACE,2,-1
FRONTFACE,2,1
Ref3,2,1
*Equation
3
BACKWARDFACE,3,-1
FRONTFACE,3,1
Ref3,3,1
*Equation
3
RIGHTFACE,1,-1
LEFTFACE,1,1
Ref1,1,1
*Equation
3
RIGHTFACE,2,-1
LEFTFACE,2,1
Ref1,2,1
*Equation
3
RIGHTFACE,3,-1
LEFTFACE,3,1
Ref1,3,1
*Equation
3
TOPFACE,1,-1
BOTFACE,1,1
Ref2,1,1
*Equation
3
TOPFACE,2,-1
BOTFACE,2,1
Ref2,2,1
*Equation
3
TOPFACE,3,-1
BOTFACE,3,1
Ref2,3,1
**
** MATERIALS
**
*Material, name=Al-1
*USER MATERIAL, CONSTANTS = 15
0, 1, 0, 1.00, 1, 0, 0, 0,
0, 0, 0, 0.500, 1.000, 1, 5
*DEPVAR
43
*EXPANSION
13.9E-6, 25.
13.9E-6, 500.
14.00E-6, 600.
14.35E-6, 700.
14.50E-6, 800.
14.80E-6, 900.
15.10E-6, 1000.
16.10E-6, 1100.
*Initial conditions, type=temperature
Al-1, 20
*Material, name=Hole
*Elastic
1e-05, 0.3
*AMPLITUDE, NAME=DISP, VALUE=RELATIVE, TIME=STEP TIME
0.0, 0.0, 10000., 1.0
*Boundary
ORIGIN,1,3
Ref1,2,3
Ref3,2,2
** ----------------------------------------------------------------
**
** STEP: Step-1
**
*Step, name=Step-1, nlgeom=YES, inc=1000
*Static
1, 1000, 1e-10, 20
*CONTROLS,PARAMETERS=TIME INCREMENTATION
,,,,,,,15,,
**0.667,,,,,,,
*CONTROLS, PARAMETERS=FIELD, FIELD=Displacement
0.05,0.05,,,,,,
*CONTROLS, PARAMETERS=FIELD, FIELD=Rotation
0.05,0.05,,,,,,
**
** LOADS
**
*Boundary, AMPLITUDE=DISP
Ref2, 2, 2, 0.1
**
** OUTPUT REQUESTS
**
*Restart, write, frequency=0
**
** FIELD OUTPUT: F-Output-1
**
*Output, field, variable=PRESELECT
*ELEMENT OUTPUT,ELSET=Al-1
S,E
*NODE OUTPUT,NSET=Ref2
RF,U
*End Step
现在开始分步骤详细介绍:
*Heading
** Job name: 3pct2Mesh Model name: Model-1
** Generated by: Abaqus/CAE 6.14-1
第一行表明inp文件要开始写了,就是这么个格式规范,看看就好。其中单*号表示本命令流要开始了,双**号在inp文件中代表注释的意思。这两句的意思就是本工作的名字及其是由abaqus/cae 6.14-1产生的。
*Node
1, -0.5, -0.5, 1
2, -0.5, 0.5, 1
3, -0.5, -0.5, 0
4, -0.5, 0.5, 0
5, 0.5, -0.5, 1
6, 0.5, 0.5, 1
7, 0.5, -0.5, 0
8, 0.5, 0.5, 0
定义节点,单*号加Node开头,表明本段命令流要开始啦,上文已经提到了,接下来不再赘述了。接下来的8行意思是8个节点,每行的第一个数字表示节点标号,后三个数字表示节点坐标(分别是x、y、z坐标)
*Element, type=C3D8
1, 5, 6, 8, 7, 1, 2, 4, 3
定义单元,类型是C3D8,意思是三维的8节点立方体单元。下面一行数字表示构成本单元的8个节点(也就是上端代码*Node中的8个点)
*Nset, nset=Al-1, generate
1, 8, 1
第一行*Node表示产生节点集,全称为Node Set,nset=Al-1,表示节点集的名字叫做Al-1,这么写是为了当节点集有很多时,方便后文的调用。generate表示下一行产生节点,第二行的前两个数字意思是产生1到8的节点,第三个数字意思是节点间的间隔为1(相当于产生1、2、3、4、5、6、7、8八个节点喽)。
*Elset, elset=Al-1
1,
第一行*Elset表示产生单元集,全称为Element Set,接下来elset=Al-1表示产生的单元集名称。第二行1表示的就是上文中产生的那个单元1。
*NODE, NSET=Ref1
999998, 1., 1.1, 0.0
*NODE, NSET=Ref2
999999, 1.1, 1., 0.0
*NODE, NSET=Ref3
999997, 1, 1., 2
这次又是产生三个节点,这三个节点其实是为了后文施加边界条件或载荷时方便使用的,并且分别定义节点集的名称是Ref1、Ref2、Ref3,也就是参考点1、2、3。为了不与之前的取点重合,所以直接倒数取了三个点999999、999998、999997这三个点标号,标号后的自然而然就是坐标。
** Section: Aluminum
** Section: Section-1
这两行,双**号,表示注释的意思,注释一下接下来开始定义截面的意思。
*Solid Section, elset=Al-1, material=Al-1
这一行*Solid Section表示定义截面,elset=Al-1表示把截面属性赋予上文提到的Al-1单元集,material=Al-1表示该单元集的材料属性为Al-1。
*Nset, nset=ORIGIN_1, unsorted
1
*Nset, nset=TOPORI_1, unsorted
2
*Nset, nset=ORIGIN, unsorted
3
*Nset, nset=TOPORI, unsorted
4
*Nset, nset=RIGHTORI_1, unsorted
5
*Nset, nset=TOPRIGHT_1,unsorted
6
*Nset, nset=RIGHTORI, unsorted
7
*Nset, nset=TOPRIGHT, unsorted
8
继续定义了8个节点集,每个节点集中包含一个节点,节点集的名称分别为ORIGIN_1、TOPORI_1、ORIGIN、TOPORI、RIGHTORI_1、TOPRIGHT_1、RIGHTORI、TOPRIGHT。unsorted表示接下来的节点为一个一个敲上去,再多也得一个一个敲上去。(与上文中的generated相对应,generated表示按间隔生成点)
*Nset, nset=FRONTFACE, unsorted
3,
4,
7,
8,
*Nset, nset=BACKWARDFACE, unsorted
1,
2,
5,
6,
*Nset, nset=LEFTFACE, unsorted
3,
4,
*Nset, nset=RIGHTFACE, unsorted
7,
8,
*Nset, nset=BOTFACE, unsorted
3,
*Nset, nset=TOPFACE, unsorted
4,
表明生成前后左右上下六个面的节点集。
*Nset, nset=Al-1,generate
1,1,1
*Elset, elset=Al-1,generate
1,8,1
继续生成单元集或节点集,不再赘述。
*Equation
3
BACKWARDFACE,1,-1
FRONTFACE,1,1
Ref3,1,1
*Equation
3
BACKWARDFACE,2,-1
FRONTFACE,2,1
Ref3,2,1
*Equation
3
BACKWARDFACE,3,-1
FRONTFACE,3,1
Ref3,3,1
*Equation
3
RIGHTFACE,1,-1
LEFTFACE,1,1
Ref1,1,1
*Equation
3
RIGHTFACE,2,-1
LEFTFACE,2,1
Ref1,2,1
*Equation
3
RIGHTFACE,3,-1
LEFTFACE,3,1
Ref1,3,1
*Equation
3
TOPFACE,1,-1
BOTFACE,1,1
Ref2,1,1
*Equation
3
TOPFACE,2,-1
BOTFACE,2,1
Ref2,2,1
*Equation
3
TOPFACE,3,-1
BOTFACE,3,1
Ref2,3,1
以上九个模块表示生成周期性边界条件,*Equation表示生成方程,3表示生成该方程的三个部分,接下来每行的第一列表示上文定义的节点集,第二列表示方向,1代表方向、2代表y方向、3代表z方向,第三列表示位移量。综合来看,以最后一个举例,这个方程的意思就是 -Z位移(TOPFACE)+ Z位移(BOTFACE)+ Z位移(Ref2)=0.
下面图片是ABAQUS中关于*EQUATION的解释:
![9a90937ccb5c634c2654a94d778753e4.png](https://img-blog.csdnimg.cn/img_convert/9a90937ccb5c634c2654a94d778753e4.png)
**
** MATERIALS
**
双**号表示注释接下来的内容为材料属性。
*Material, name=Al-1
*USER MATERIAL, CONSTANTS = 15
0, 1, 0, 1.00, 1, 0, 0, 0,
0, 0, 0, 0.500, 1.000, 1, 5
*DEPVAR
43
*EXPANSION
13.9E-6, 25.
13.9E-6, 500.
14.00E-6, 600.
14.35E-6, 700.
14.50E-6, 800.
14.80E-6, 900.
15.10E-6, 1000.
16.10E-6, 1100.
第一行*Material, name=Al-1表示定义材料属性,名字为Al-1. 接下来*USER MATERIAL, CONSTANTS = 15表示使用用户自定义子程序UMAT,传入UMAT的参数为15个。接下来两行为传入UMAT的15个参数。*DEPVAR 43 表明UMAT中的状态变量为43个,用于存储可能用到的一些状态量。*EXPANSION表示定义热膨胀系数,接下来第一列表示热膨胀系数,第二列表示该热膨胀系数适用的温度。
*Initial conditions, type=temperature
Al-1, 20
定义初始状况,类型为温度,模型为Al-1,温度为20℃。
*Material, name=Hole
*Elastic
1e-05, 0.3
第一行表示定义材料的名字是Hole。(因为本模型为一个组合模型,用到的材料本构关系为两个,所以又定义了一个弹性的材料本构)。第二行定义弹性模量为1e-05,泊松比为0.3.(abaqus为无量纲运算,这里为了运算统一,弹性模量的单位为MPa)
*AMPLITUDE, NAME=DISP, VALUE=RELATIVE, TIME=STEP TIME
0.0, 0.0, 10000., 1.0
定义加载的幅度,DISP表示位移加载,RELATIVE表示相对给值,STEP TIME表示下文给出的时间为步长取值。第二行,两个值为一组,其中开始的0.0,0.0表示0步长时,位移为0;第二组10000.,1.0表示第10000步长时间时,位移为1.0.(其实就是表示在10000个步长的时间内,位移从0加载到1)
*Boundary
ORIGIN,1,3
Ref1,2,3
Ref3,2,2
关于*Boundary这块比较有趣,我在本系列文章《再谈abaqus中的inp文件——具体科目》中给出了一些详细的解释,留给有需要具体了解的小哥哥小姐姐们。
说回此刻的重点,第一行*Boundary表示定义边界条件,后三行第一列表示上文定义的节点集,第二行的第二列和第三列表示从第1个自由度到第3个自由度,位移值为0,也就是进行固定。(1、2、3自由度分别表示沿x、y、z方向的位移)具体讲解可查看上面提到的文章。
** ----------------------------------------------------------------
**
** STEP: Step-1
**
双**号注释,表示接下来要开始分析步的计算了。
*Step, name=Step-1, nlgeom=YES, inc=1000
*Static
1, 1000, 1e-10, 20
第一行*Step表示分析步开始了,name=Step-1表示分析步的名称, nlgeom=YES表示为大位移(几何非线性)问题, inc=1000表示分析步时间为1000。第二行*Static表示本程序为静力分析。第三行1表示初始增量步,1000表示分析步时间,1e-10表示最小增量步,20表示最大增量步。
*CONTROLS,PARAMETERS=TIME INCREMENTATION
,,,,,,,15,,
**0.667,,,,,,,
*CONTROLS, PARAMETERS=FIELD, FIELD=Displacement
0.05,0.05,,,,,,
*CONTROLS, PARAMETERS=FIELD, FIELD=Rotation
0.05,0.05,,,,,,
上面*CONTROLS表示控制收敛状况,前两行逗号之间省略的参数表示保持abaqus的默认值不变,15表示将严重不连续迭代的最大次数变为15。后面四行分别表示控制位移和转动的收敛状况。
**
** LOADS
**
双**号表示注释接下来要施加载荷了。
*Boundary, AMPLITUDE=DISP
Ref2, 2, 2, 0.1
表示施加的荷载为位移荷载,幅度为上文提到的DISP。第二行第一列表示施加的节点集,第二列、第三列表示施加在y方向上,第四列表示施加的位移大小值为0.1
**
** OUTPUT REQUESTS
**
双**号表示输出请求。
*Restart, write, frequency=0
表示不输出用于重启动分析的数据。
**
** FIELD OUTPUT: F-Output-1
**
双**号表示接下来要输出结果到ODB文件中。
*Output, field, variable=PRESELECT
表示将ABAQUS默认的场变量写入ODB文件中。
*ELEMENT OUTPUT,ELSET=Al-1
S,E
表示输出名称为Al-1单元集的应力和应变。
*NODE OUTPUT,NSET=Ref2
RF,U
表示输出名称为Ref-2节点集的支反力和位移。
*End Step
表示当前分析步内容结束。至此,整个inp文件全部结束。
参考文献:
《ABAQUS有限元分析实例讲解》石亦平、周玉蓉著
《基于ABAQUS的有限元分析和应用》庄茁等编著
百度、知乎等一系列知名帖子,在此一一谢过