abaqus输出文件fildat刚度矩阵等关键词及相关例子Word格式文档下载.docx
《abaqus输出文件fildat刚度矩阵等关键词及相关例子Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《abaqus输出文件fildat刚度矩阵等关键词及相关例子Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
输出单元刚度矩阵的最终正确方法!
*FileFormat,Ascii
*ElementMatrixOutput,Elset=E1,FileName=abc,Frequency=50,
OutputFile=UserDefined,Stiffness=Yes
E:
\xch-cae-nsoft\jiedianli-yanjiu\ABC.mtx生成文件.mtx所在路径
1.用命令:
*ELEMENTMATRIXOUTPUT
只设定Requiredparameter:
ELSET的话,由于结果文件(*.fil)是二进制文件,用文本编辑器打开是一堆我们看不明白的乱码,所以有必要设置一下文件格式。
2.用命令:
*FILEFORMAT设定文件格式
将文件格式设为ASCII,那么结果文件我们就能够看明白了。
3.命令:
*ELEMENTMATRIXOUTPUT的其他参数设定:
首先FREQUENCY要设定,否则会生成每一步的结果文件,这个文件会很大,举例来说,1800个单元,共50步,全部输出的单元刚度矩阵有600M,这是一个很大的数据,所以要把不需要的删除。
并且在打开这个600M大的文件时发现,UntraEdit比记事本和写字板的打开速度快得多!
假如共50步,我只想要最后一步的单元刚度矩阵,那么可以设定
FREQUENCY=50,设定FREQUENCY=0表示不输出,默认为每一步都输出。
其次可以设定结果文件名,设定时要使用OUTPUTFILE=USERDEFINED这个选项,将FILENAME的值设定为想要的文件名,注意不要扩展名。
例如:
*Elset,Elset=All,Generate
1,1800,1
*FileFormat,Ascii
*ElementMatrixOutput,Elset=All,FileName=abc,Frequency=50,OutputFile=UserDefined,Stiffness=Yes
计算完后可以在工作目录下找到文件名为ABC.mtx的单元刚度矩阵的结果文件,结果数据为十进制,大小仅为12M。
ABAQUS输出实体单元某一截面的轴力和弯矩
一、方法
在INP文件中进行编辑;
在*Output,history,variable=PRESELECT后面添加以下语句
*SectionPrint,name=a1,surface=asd,axes=local
(空两行)
SOM,SOF
二、注意:
1、中间要空开两行;
2、name名字自己定义,surface的名字是自己定义的那个面;
3、算完后在DAT文件里面有SOM和SOF的输出数值;
4、cuttingsurface需要事先定义好才可以输出该位置的轴力和弯矩
可以用以下方法:
方法一:
**定义切平面
*surface,type=cuttingsurface,name=fifth-ring-up
**定义输出——(SOM为截面总弯矩,SOF为截面合力)
*sectionprint,name=forcemoment,surface=fifth-ring-up,update=yes
SOM,SOF
注意:
关键词surface和sectionprint的用法可以参见abaqus帮助/AbaqusKeywordsReferrenceManual以及Abaqus/CAEUser'
sManual等。
方法二:
首先需要导出节点应力,节点应力可以:
(1)从Visualization/Report/Fieldoutput里选择UniqueNodal导出;
(2)由于节点应力不能直接在inp中关键词输出,但是可以在inp文件中将节点附近单元应力导出,然后取平均值即可;
语法为:
*elprint,elset=fifth-ring-outside-el
s
将截面内外节点的应力值求出后,用材料力学方法求解。
ABAQUS中如何通过cuttingsurface和sectionprint输出桩的轴力
经过两个星期的摸索与学习,今天终于学会了桩轴力的输出。
现总结如下:
1.主要步骤是先定义截面cuttingsurface,然后用sectionprint输出轴力sof。
2.所有操作均是在inp文件中进行修改的,而不是ABAQUS/CAE中的编辑关键词(editkeywords)。
原因:
在CAE中编辑关键词是可以修改inp文件,但CAE并不能识别所有的inp文件关键词,下面将举例说明。
3.最后提交的inp文件也不是在CAE中导入模型文件(importmodel),然后提交job进行运算的,而是在ABAQUS命令窗口(小黑屏)进行的。
原因同2中的一样,CAE并不能识别关键词*sectionprint。
好了,下面开始详细的步骤讲解吧!
第一步:
定义截面(cuttingsurface),具体的关键语句为:
*surface,type=cuttingsurface,name=cutsurf-1
0.6,25,0,0,1,0
Set-pile
解读:
第一行,定义surface、surface类型以及名称。
第二行,定义截面上的一点(0.6,25,0)以及截面的法向量(0,1,0)。
法向量不一定是单位向量。
第三行,截面所在的单元或集合。
这个集合可以是事先在CAE里定义好的。
需要注意的是,这个cuttingsurface是垂直于桩径方向的一个桩截面,而不是桩的侧表面。
我一开始理解错了!
此关键句在inp文件中的位置是在*Assembly,name=Assembly这一行之后,我试了下在放在材料定义之后,运算不成功。
估计是因为我的Set-pile是在assembly里定义的,而不是在part里定义的单元集。
若是在part里定义了桩的集合,是不是可以将此关键句移动到材料定义之后,这个我倒没试。
如果是在CAE中通过编辑关键词来添加上述语句,将会有下面的错误提示:
第二步:
定义输出(sectionprint),具体的关键语句为:
*sectionprint,name=secprint-1,surface=cutsurf-1
sof,som
第一行,定义输出的名称及截面。
第二行,定义输出选项,sof为截面合力,som为截面弯矩。
注意,此处第一行surface=**必须是上一步中cuttingsurface的名称(name=**),因为要输出的就是第一步定义的截面轴力及弯矩。
如果此处乱写surface=?
的话,估计到最后什么也输出不了了。
有些人还在第一句后面加上了axes=local,frequency=1,update=yes,由于我的模型较简单,也就没管这几个东西。
除了命名之外,inp文件中的大小写英文字符,是没有区别的。
所以大家不要再犹豫写*SECTIONPRINT还是*sectionprint……
此关键句在inp文件中的位置是最后一个**HISTORYOUTPUT:
H-Output-3之后,*Output,history,variable=PRESELECT之前。
也就是我的inp文件中的倒数第四和第三行。
如果放错了位置,估计也会引起不识别等问题,最终导致无输出结果。
如果是在CAE中通过导入inp文件来进行运算,在导入时,CAE下方窗口将会有下述警告信息:
WARNING:
Thefollowingkeywords/parametersarenotyetsupportedbytheinputfilereader:
---------------------------------------------------------------------------------
*SECTIONPRINT
Themodel"
Job-20101215"
hasbeenimportedfromaninputfile.
Pleasescrolluptocheckforerrorandwarningmessages.
这再次验证了,ABAQUS/CAE是不能识别关键词*sectionprint的。
强制提交job是可以运算的,但是在最后的dat结果文件里没用任何输出结果。
第三步:
保存并提交inp文件。
在保存之前需要仔细检查上面关键语句的位置及拼写,以及是否含有中文字符。
然后就可以在ABAQUS命令窗口提交inp文件进行运算了。
具体操作是:
开始→所有程序→Abaqus6.9.1→AbaqusCommand
输入:
abaqusjob=***.inp(就是你刚才修改的inp文件名)
回车即可。
然后黑屏窗口会弹出一个警告语句:
AbaqusWarning:
The.inpextensionhasbeenremovedfromthejobindentifier
大概意思是说,后缀.inp被省略。
由此可判断,在上面输入的时候,完全可以不写后缀名字。
我之所以写了,是因为我的默认工作路径D:
\Temp下还有个跟inp文件完全同名的.cae文件,而如果这两个文件信息不是完全一样的话,建议还是加上.inp后缀为好。
到此,计算完毕。
黑屏窗口并不会像CAE那样提示jobcompleted或ANSYS中的solutionisdone!
(害得我还以为没反应……-_-汗!
)默认工作路径下已经生产了结果文件.com.dat.log.msg.odb.prt.sta等一系列后缀文件。
第四步:
提取数据
用记事本打开刚才生产的.dat文件,在最下面会找到想要的输出结果
THEFOLLOWINGTABLESAREPRINTED
SOFMSOF1SOF2SOF3
1.0556E+064.0515E+041.0548E+060.000
三个方向的sof,以及合力SOFM。
需要注意的是,此sof值是合应力,单位为N。
无需乘以截面面积……
至此,大功告成!
后话:
(1)本人查看了仿真论坛里的一些帖子,发现输出轴力的方法有三:
后处理模块中运用freebodycut,此法较为方便简单,可直接得到截面合力,无奈我的模型是二维轴对称的,不能进行自由体切割。
输出截面上的应力值进行积分运算,主要方法是创建路径(path)或者拾取节点应力值,桩身的网格越密集,最后的积分值越精确,此法我已学会。
cuttingsurface和sectionprint联合使用,由于手动修改inp文件,此法最复杂,而且不知道最终的sof值,软件是如何算出来的。
如果需要得到桩深方向N个截面的轴力,就需要在cuttingsurface里定义N个截面。
Abaqus中input文件介绍
1.本INP文件以及解释参考石亦平博士所著的《ABAQUS有限元分析实例详解》;
2.注释行以**口头,以保持与INP文件的格式一致(为方便起见以绿色显示)。
*Heading
**Jobname:
Plate-CPS8Modelname:
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和*EndPart两行,而没有实质性的数据。
节点,单元,截面属**性等数据将在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和*Endpart之间(比如此例),或出现
**在*Instance和*Endinstance之间,一般用来定义
**界面属性。
**2.定义在Assembly数据块的集合:
这类集合出现在*EndInstance之后,*Endassembly之前,一般用来定**义荷载,边界条件,接触或约束等。
**节点集合和单元集合的表示方法:
**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)
**截面属性的基本表示方法为:
*SolidSection,Elset=单元集合名称,Material=材料名称
**界面参数
**界面参数