输出 fil文件 关键词
*Output, history, variable=PRESELECT, time interval=0.01
*El file, frequency=999
*Node file, frequency=999
*El file
S,e
*Node file
CF, TF, U
frequency=1
示每一个时间增量步输出一次 frequency=999 表示每999个时间增量步输出一次 当frequency值足够大时,只在分析步的末端结束时 输出数据
输出dat文件 关键词
*Output, history, variable=PRESELECT, time interval=0.01
*El print, frequency=999
*Node print, frequency=999
*El print
S11,e11
*Node print
CF, TF, U
El print El file 将单元上的分析结果(应力、应变和截面力等输出)
Node file Node print 将单元上的分析结果(位移、反力输出)
输出单元刚度矩阵的方法!
*Element Matrix Output,Elset=All, frequency=n
File Name=user defined, file name= abc, Stiffness=Yes mass=yes,DLOAD=YES
frequency=n 每隔n个增量步输出一次单元矩阵,
Elset=All all为单元集合名称 集合可以在assembly instance中进行定义
Stiffness=Yes 表示输出刚度矩阵的的算子矩阵 mass=yes 表示输出质量矩阵
DLOAD=YES 表示输出载荷向量
no表示输出
输出单元刚度矩阵的最终正确方法!
*File Format,Ascii
*Element Matrix Output,Elset=E1,File Name=abc,Frequency=50,
Output File=User Defined,Stiffness=Yes
E:\xch-cae-nsoft\jiedianli-yanjiu\ABC.mtx 生成文件.mtx所在路径
输出单元刚度矩阵的方法!
1.用命令:*ELEMENT MATRIX OUTPUT
只设定Required parameter:ELSET的话,由于结果文件(*.fil)是二进制文件,用文本编辑器打开是一堆我们看不明白的乱码,所以有必要设置一下文件格式。
2.用命令:*FILE FORMAT设定文件格式
将文件格式设为ASCII,那么结果文件我们就能够看明白了。
3.命令:*ELEMENT MATRIX OUTPUT的其他参数设定:
首先FREQUENCY要设定,否则会生成每一步的结果文件,这个文件会很大,举例来说,1800个单元,共50步,全部输出的单元刚度矩阵有600M,这是一个很大的数据,所以要把不需要的删除。并且在打开这个600M大的文件时发现,UntraEdit比记事本和写字板的打开速度快得多!假如共50步,我只想要最后一步的单元刚度矩阵,那么可以设定
FREQUENCY=50,设定FREQUENCY=0表示不输出,默认为每一步都输出。
其次可以设定结果文件名,设定时要使用OUTPUT FILE=USER DEFINED这个选项,将FILE NAME的值设定为想要的文件名,注意不要扩展名。
例如:
*Elset, Elset=All, Generate
1, 1800, 1
*File Format,Ascii
*Element Matrix Output,Elset=All,File Name=abc,Frequency=50,Output File=User Defined,Stiffness=Yes
计算完后可以在工作目录下找到文件名为ABC.mtx的单元刚度矩阵的结果文件,结果数据为十进制,大小仅为12M。
ABAQUS输出实体单元某一截面的轴力和弯矩
一、方法
在INP文件中进行编辑;在*Output, history, variable=PRESELECT后面添加以下语句
*Section Print, name=a1, surface=asd, axes=local
(空两行)
SOM, SOF
二、注意:
1、中间要空开两行;
2、name名字自己定义,surface的名字是自己定义的那个面;
3、算完后在DAT文件里面有SOM和SOF的输出数值;
4、cutting surface需要事先定义好才可以输出该位置的轴力和弯矩
可以用以下方法:
方法一:
**定义切平面
*surface,type=cutting surface,name=fifth-ring-up
**定义输出——(SOM为截面总弯矩,SOF为截面合力)
*section print,name=forcemoment,surface=fifth-ring-up,update=yes
SOM, SOF
注意:关键词surface和section print的用法可以参见abaqus帮助/Abaqus Keywords Referrence Manual 以及Abaqus/CAE User's Manual等。
方法二:
首先需要导出节点应力,节点应力可以:(1)从Visualization/Report/Field output里选择Unique Nodal导出;(2)由于节点应力不能直接在inp中关键词输出,但是可以在inp文件中将节点附近单元应力导出,然后取平均值即可;语法为:
*el print, elset=fifth-ring-outside-el
s
将截面内外节点的应力值求出后,用材料力学方法求解。
ABAQUS中如何通过cutting surface和section print输出桩的轴力
经过两个星期的摸索与学习,今天终于学会了桩轴力的输出。现
如下:
1.主要步骤是先定义截面cutting surface,然后用section print输出轴力sof。
2.所有操作均是在inp文件中进行修改的,而不是ABAQUS/CAE中的编辑关键词(edit keywords)。
原因:在CAE中编辑关键词是可以修改inp文件,但CAE并不能识别所有的inp文件关键词,下面将举例说明。
3.最后提交的inp文件也不是在CAE中导入模型文件(import model),然后提交job进行运算的,而是在ABAQUS命令窗口(小黑屏)进行的。
原因同2中的一样,CAE并不能识别关键词*section print。
好了,下面开始详细的步骤讲解吧!
第一步:定义截面(cutting surface),具体的关键语句为:
*surface,type=cutting surface,name=cutsurf-1
0.6,25,0,0,1,0
Set-pile
解读:
第一行,定义surface、surface类型以及名称。
第二行,定义截面上的一点(0.6,25,0)以及截面的法向量(0,1,0)。法向量不一定是单位向量。
第三行,截面所在的单元或集合。这个集合可以是事先在CAE里定义好的。
需要注意的是,这个cutting surface是垂直于桩径方向的一个桩截面,而不是桩的侧表面。我一开始理解错了!
此关键句在inp文件中的位置是在*Assembly, name=Assembly这一行之后,我试了下在放在材料定义之后,运算不成功。估计是因为我的Set-pile是在assembly里定义的,而不是在part里定义的单元集。若是在part里定义了桩的集合,是不是可以将此关键句移动到材料定义之后,这个我倒没试。
如果是在CAE中通过编辑关键词来添加上述语句,将会有下面的错误提示:
第二步:定义输出(section print),具体的关键语句为:
*section print,name=secprint-1,surface=cutsurf-1
sof,som
解读:
第一行,定义输出的名称及截面。
第二行,定义输出选项,sof为截面合力,som为截面弯矩。
注意,此处第一行surface=**必须是上一步中cutting surface的名称(name=**),因为要输出的就是第一步定义的截面轴力及弯矩。如果此处乱写surface=?的话,估计到最后什么也输出不了了。
有些人还在第一句后面加上了axes=local,frequency=1,update=yes,由于我的模型较简单,也就没管这几个东西。除了命名之外,inp文件中的大小写英文字符,是没有区别的。所以大家不要再犹豫写*SECTION PRINT还是*section print……
此关键句在inp文件中的位置是最后一个** HISTORY OUTPUT: H-Output-3之后,*Output, history, variable=PRESELECT之前。也就是我的inp文件中的倒数第四和第三行。如果放错了位置,估计也会引起不识别等问题,最终导致无输出结果。
如果是在CAE中通过导入inp文件来进行运算,在导入时,CAE下方窗口将会有下述警告信息:
WARNING:Thefollowing keywords/parameters are not yet supported by the input file reader:
---------------------------------------------------------------------------------
*SECTIONPRINT
The model "Job-20101215" has been imported from an input file.
Please scroll up to check for error and warning messages.
这再次验证了,ABAQUS/CAE是不能识别关键词*section print的。强制提交job是可以运算的,但是在最后的dat结果文件里没用任何输出结果。
第三步:保存并提交inp文件。
在保存之前需要仔细检查上面关键语句的位置及拼写,以及是否含有中文字符。
然后就可以在ABAQUS命令窗口提交inp文件进行运算了。具体操作是:开始→所有程序→Abaqus 6.9.1→Abaqus Command
输入:
abaqus job=***.inp(就是你刚才修改的inp文件名)
回车即可。
然后黑屏窗口会弹出一个警告语句:
Abaqus Warning:The .inp extension has been removed from the job indentifier
大概意思是说,后缀.inp被省略。由此可判断,在上面输入的时候,完全可以不写后缀名字。我之所以写了,是因为我的默认工作路径D:\Temp下还有个跟inp文件完全同名的.cae文件,而如果这两个文件信息不是完全一样的话,建议还是加上.inp后缀为好。
到此,计算完毕。黑屏窗口并不会像CAE那样提示job completed或ANSYS中的solution is done!(害得我还以为没反应…… -_- 汗!)默认工作路径下已经生产了结果文件 .com .dat .log .msg .odb .prt .sta等一系列后缀文件。
第四步:提取数据
用记事本打开刚才生产的.dat文件,在最下面会找到想要的输出结果
THE FOLLOWING TABLES ARE PRINTED
SOFM SOF1 SOF2 SOF3
1.0556E+06 4.0515E+04 1.0548E+06 0.000
三个方向的sof,以及合力SOFM。
需要注意的是,此sof值是合应力,单位为N。无需乘以截面面积……
至此,大功告成!
后话:
(1)本人查看了仿真论坛里的一些帖子,发现输出轴力的方法有三:
?后处理模块中运用free body cut,此法较为方便简单,可直接得到截面合力,无奈我的模型是二维轴对称的,不能进行自由体切割。
?输出截面上的应力值进行积分运算,主要方法是创建路径(path)或者拾取节点应力值,桩身的网格越密集,最后的积分值越精确,此法我已学会。
?cutting surface和section print联合使用,由于手动修改inp文件,此法最复杂,而且不知道最终的sof值,软件是如何算出来的。如果需要得到桩深方向N个截面的轴力,就需要在cutting surface里定义N个截面。
Abaqus中input文件介绍
1. 本INP文件以及解释参考石亦平博士所著的《ABAQUS有限元分析实例详解》;
2. 注释行以**口头,以保持与INP文件的格式一致(为方便起见以绿色显示)。
*Heading
** Job name: Plate-CPS8 Model name: Model-1
**----------------------------------------------------------------------------------------------------------------------------------------------------
**INP 文件总是以*Heading开头,接下来可以用一行或多行来写下此模型的标题和相关信息.
**----------------------------------------------------------------------------------------------------------------------------------------------------
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**----------------------------------------------------------------------------------------------------------------------------------------------------
**Preprint可设置在DAT文件(*.dat)中
的内容。上述为ABAQUS默认,内容为:在DAT文件
**中不记录对INP文件的处理过程,以及详细的模型和历史数据。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** PARTS
*Part, name=Plate1
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Part的
格式:*Part,name=部件名称
**对于非独立实体,比如此例,要在下面数据块中定义详细的节点,单元,截面属性等数据。以便Mesh时,**Mesh在Part上面;
**对于独立实体,则Part数据块只包含*Part和*End Part两行,而没有实质性的数据。节点,单元,截面属**性等数据将在Instance数据块中定义,而
**Mesh时也只能在Instance上面做。
**
**如果INP文件是由Abaqus/CAE生成的,其结构会包括部件*Part,装配件*Assembly,实体*Instance等数**据块,比如此例。
**如果INP文件是由其他前处理器如MSC,PATRAN,FEMAP等生成的,其结构将不包含部件,装配件和实**体等数据块,而是直接定义节点和单元等数据。
**----------------------------------------------------------------------------------------------------------------------------------------------------
*Node
**----------------------------------------------------------------------------------------------------------------------------------------------------
**节点定义以*Node开始
**节点的基本表示方法:
**一维模型:节点编号,节点坐标
**二维模型:节点编号,节点坐标1,节点坐标2
**三维模型:节点编号,节点坐标1,节点坐标2,节点坐标3
**注意:1.节点编号可以不从1开始也可以是不连续的。
**注意:2.在INP文件中,不同的部件或实体可以有相同的节点或单元编号。比如,部件Part-A的节点编号**是1,2,3...,部件Par-B的节点编号也可以
**是1,2,3,...
**注意:3.如果在定义荷载Load,边界条件BC或约束Constraint是需要引用这些节点编号,需要加上相应**的 实体 名称作为前缀。例如,部件Part-A和
**部件Part-B的相应 实体 分别名为Part—A-1和Part-B-1,则实体Part-A-1的节点记作Part-A-1. 5,而实体**Part-B-1的节点5记作Part-B-1. 5
**----------------------------------------------------------------------------------------------------------------------------------------------------
1, 0., 27.5
2, 0., 5.
3, 3.53553391, 3.53553391
**省略若干节点
279, 10.1391716, 28.3766441
280, 4.99425983, 29.4102631
281, 0., 30.3125
*Element, type=CPS8
**----------------------------------------------------------------------------------------------------------------------------------------------------
**单元的定义方法:*Element,type=单元类型
** 单元编号,节点1编号,节点2编号,节点三编号...
**----------------------------------------------------------------------------------------------------------------------------------------------------
1, 1, 12, 57, 23, 102, 103, 104, 105
2, 12, 13, 58, 57, 106, 107, 108, 103
3, 13, 14, 59, 58, 109, 110, 111, 107
**省略若干单元
78, 99, 100, 22, 21, 273, 279, 126, 278
79, 100, 101, 23, 22, 275, 280, 117, 279
80, 101, 56, 1, 23, 277, 281, 105, 280
**----------------------------------------------------------------------------------------------------------------------------------------------------
**下面为集合的定义:集合分为节点集合*Nset和单元集合*Elset,又分为下面两种:
**1.定义在Part或Instance数据块中的集合:这类集合出现在*Part和*End part之间(比如此例),或出现
**在*Instance和*End instance之间,一般用来定义
**界面属性。
**2.定义在Assembly数据块的集合:这类集合出现在*End Instance之后,*End assembly之前,一般用来定**义荷载,边界条件,接触或约束等。
**
**节点集合和单元集合的表示方法:
**1.如果集合中的节点或单元编号是连续的,可以表示为
**节点集合: *Nset, Nset=节点集合名称, Generate
** 起始节点编号,结束节点编号,节点编号增量
**单元集合: *Elset, Elset=单元集合名称,Generate
** 起始单元编号,结束单元编号,单元编号增量
**注意:节点集合和单元集合的名称不得超过80个字符,必须以字母或下划线开始。
**2.如果集合中的节点或单元编号是不连续的,表示方法为:依次列出集合中的所有节点或单元(每个数据行接点或单元编号不得超过16个),格式:
**节点集合: *Nset, Nset=节点集合名称
节点编号1,节点编号2,...节点编号16
**单元集合: Elset,Elset=单元集合名称
单元编号1,单元编号2,...单元编号16
**----------------------------------------------------------------------------------------------------------------------------------------------------
*Nset, nset=_PickedSet2, internal, generate
1, 281, 1
*Elset, elset=_PickedSet2, internal, generate
1, 80, 1
** Region: (Section-1:Picked)
*Elset, elset=_PickedSet2, internal, generate
1, 80, 1
**----------------------------------------------------------------------------------------------------------------------------------------------------
**截面属性的基本表示方法为:*Solid Section, Elset=单元集合名称, Material=材料名称
** 界面参数
**界面参数可以是二维模型的厚度或一维模型的截面面积等。材料名称不超过80个字符,必须以字母开头。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** Section: Section-1
*Solid Section, elset=_PickedSet2, material=Steel
1.,
*End Part
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Assembly数据块的格式为:*Assembly, Name=装配件名称
** ......
** *End Assembly
**省略号代表在Assembly数据块中的Instance数据块,以及定义在Assembly数据块中的几何数据块,以及面和约束有关的数据块。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** ASSEMBLY
**
*Assembly, name=Assembly
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Instance数据块的格式为:*Instance, Name=实体名称,部件名称
** ......
** *End Instance
**在下面的格式中,不包含任何节点,单元,集合和截面属性等数据,因为文件中的实体是非独立实体,必**须在Part模块中定义。
**----------------------------------------------------------------------------------------------------------------------------------------------------
*Instance, name=Plate1-1, part=Plate1
*End Instance
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义在Assembly数据块中的集合表示方法与定义在Part或Instance数据块中的集合基本相同,只是需要在其后面加上参数 Instance=实体名称
**----------------------------------------------------------------------------------------------------------------------------------------------------
**
*Nset, nset=_PickedSet5, internal, instance=Plate1-1
1, 2, 11, 12, 13, 14, 54, 55, 56, 102, 106, 109, 112, 260, 268, 276
281,
*Elset, elset=_PickedSet5, internal, instance=Plate1-1
1, 2, 3, 4, 68, 72, 76, 80
*Nset, nset=_PickedSet6, internal, instance=Plate1-1
5, 6, 7, 27, 28, 29, 33, 34, 35, 152, 160, 168, 176, 178, 181, 184
187,
*Elset, elset=_PickedSet6, internal, instance=Plate1-1
20, 24, 28, 32, 33, 34, 35, 36
*Elset, elset=__PickedSurf4_S2, internal, instance=Plate1-1, generate
36, 48, 4
*Elset, elset=__PickedSurf4_S1, internal, instance=Plate1-1, generate
49, 52, 1
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Surface数据块的格式为:*Surface, Type=面的类型, Name=免得名称
** 构成面的集合1,名称1
** 构成面的集合2,名称2
** ......
**像定义节点和单元集合一样,不需要使用*End Surface等语法来结束。
**----------------------------------------------------------------------------------------------------------------------------------------------------
*Surface, type=ELEMENT, name=_PickedSurf4, internal
__PickedSurf4_S2, S2
__PickedSurf4_S1, S1
*End Assembly
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Material数据块的格式为:*Material, Name=材料名称
** *Elastic
** 弹性模量,泊松比
** *Plastic
** 屈服应力(列),塑性应变(列)
** 还可以定义*Density等
**注意:所有使用Abaqus/Explicit的分析,都要使用*Density来定义密度。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** MATERIALS
**
*Material, name=Steel
*Elastic
210000., 0.3
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Boundary Condition数据块的格式(以边界条件为例,速度等以此类推):
** *Boundary
** 节点编号或节点集合,约定的边界条件类型
**注意:如果一个边界条件定义在初始步(Initial Step)中则相应的Boundary数据块出现在*Step之前;
** 如果一个边界条件定义在后续分析步中,则相应的Boundary数据块出现在此后续分析步的*Step
**和*End Step之间。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** BOUNDARY CONDITIONS
**
** Name: Fix-X Type: Symmetry/Antisymmetry/Encastre
*Boundary
_PickedSet5, XSYMM
** Name: Fix-Y Type: Symmetry/Antisymmetry/Encastre
*Boundary
_PickedSet6, YSYMM
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义Step数据块的格式为(以静力分析为例): *Step, Name=分析部名称
** *Static
** 初始增量步,分析时间,最小增量步,最大增量步
**----------------------------------------------------------------------------------------------------------------------------------------------------
** STEP: Apply Load
**
*Step, name="Apply Load"
*Static
1., 1., 1e-05, 1.
**----------------------------------------------------------------------------------------------------------------------------------------------------
**定义载荷Load数据块的格式:1. 集中载荷: *Cload
** 节点编号或节点集合,自由度编号,载荷值
** 2. 定义在单元上的分布荷载: *Dload
** 单元编号或单元集合,载荷类型的代码
** 3.定义在面上的分布载荷:*DSload
** 面的名称,载荷类型的代码,载荷值
**注意:描述载荷的关键词为:集中载荷*Cload (Concentrated Load),定义在单元上的分布载荷*Dload
**(Distributing Load)和定义在面上
**的分布载荷*DSload(Distributing Surface Load)。
** 在Dload和DSload中的载荷类型的代码,从ABAQUS Analysis User's Manual的Distributing loads查**找。下例的P代表均布面荷载。**
**----------------------------------------------------------------------------------------------------------------------------------------------------
** LOADS
**
** Name: Load-1 Type: Pressure
*Dsload
_PickedSurf4, P, -100.
**
** OUTPUT REQUESTS
*Restart, write, frequency=0
**----------------------------------------------------------------------------------------------------------------------------------------------------
**不输出用于重启动分析的数据。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** FIELD OUTPUT: F-Output-1
**
*Output, field, variable=PRESELECT
**----------------------------------------------------------------------------------------------------------------------------------------------------
**将Abaqus默认的场变量写入ODB文件。
**----------------------------------------------------------------------------------------------------------------------------------------------------
** HISTORY OUTPUT: H-Output-1
**
*Output, history, variable=PRESELECT
**----------------------------------------------------------------------------------------------------------------------------------------------------
**将Abaqus默认的历史变量写入ODB文件。
**----------------------------------------------------------------------------------------------------------------------------------------------------
*End Step
从Abaqus/Standard结果文件中读取单元矩阵
为了从Abaqus/Standard结果文件中读取单元矩阵,必须在先前的分析中将刚度和质量矩阵写入结果文件中作为单元矩阵输出或子结构矩阵输出。
必须指定单元号n或子结构标识符Zn,来知道与哪个矩阵对应。对于通过部件装配得到的模型,输出到结果文件中的单元号是Abaqus/Standard中产生的内部号。
另外,在输出的单元矩阵中必须为其指定子步号和增量号。在子结构内部矩阵输出时这些都不需要。
输入格式: *USER ELEMENT, FILE=name, OLD ELEMENT=n or Zn, STEP=n, INCREMENT=n