读文件和读sqlite谁快_手把手教你读abaqus的inp文件(以一个单元的inp文件为例)...

手把手教你读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
**
** 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的有限元分析和应用》庄茁等编著

百度、知乎等一系列知名帖子,在此一一谢过

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值