1、abaqus输出文件fildat刚度矩阵等关键词及相关例子输出 fil文件 关键词*Output, history, variable=PRESELECT, time interval=0.01*El file, frequency=999 *Node file, frequency=999*El fileS,e*Node fileCF, TF, Ufrequency=1 表示每一个时间增量步输出一次 frequency=999 表示每999个时间增量步输出一次 当frequency值足够大时,只在分析步的末端结束时 输出数据输出dat文件 关键词*Output, history, varia
2、ble=PRESELECT, time interval=0.01*El print, frequency=999*Node print, frequency=999*El print S11,e11*Node printCF, TF, UEl print El file 将单元上的分析结果(应力、应变和截面力等输出)Node file Node print 将单元上的分析结果(位移、反力输出)输出单元刚度矩阵的方法!*Element Matrix Output,Elset=All, frequency=n File Name=user defined, file name= abc, Sti
3、ffness=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,St
4、iffness=YesE:xch-cae-nsoftjiedianli-yanjiuABC.mtx 生成文件.mtx所在路径 输出单元刚度矩阵的方法!1.用命令:*ELEMENT MATRIX OUTPUT只设定Required parameter:ELSET的话,由于结果文件(*.fil)是二进制文件,用文本编辑器打开是一堆我们看不明白的乱码,所以有必要设置一下文件格式。2.用命令:*FILE FORMAT设定文件格式将文件格式设为ASCII,那么结果文件我们就能够看明白了。3.命令:*ELEMENT MATRIX OUTPUT的其他参数设定:首先FREQUENCY要设定,否则会生成每一步的
5、结果文件,这个文件会很大,举例来说,1800个单元,共50步,全部输出的单元刚度矩阵有600M,这是一个很大的数据,所以要把不需要的删除。并且在打开这个600M大的文件时发现,UntraEdit比记事本和写字板的打开速度快得多!假如共50步,我只想要最后一步的单元刚度矩阵,那么可以设定FREQUENCY50,设定FREQUENCY0表示不输出,默认为每一步都输出。其次可以设定结果文件名,设定时要使用OUTPUT FILE=USER DEFINED这个选项,将FILE NAME的值设定为想要的文件名,注意不要扩展名。例如:*Elset, Elset=All, Generate 1, 1800,
6、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=l
7、ocal(空两行)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注意:关键词
8、surface和section print的用法可以参见abaqus帮助/Abaqus Keywords Referrence Manual 以及Abaqus/CAE Users Manual等。方法二:首先需要导出节点应力,节点应力可以:(1)从Visualization/Report/Field output里选择Unique Nodal导出;(2)由于节点应力不能直接在inp中关键词输出,但是可以在inp文件中将节点附近单元应力导出,然后取平均值即可;语法为:*el print, elset=fifth-ring-outside-el s将截面内外节点的应力值求出后,用材料力学方法求解。
9、 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进行运算的,而是在
10、ABAQUS命令窗口(小黑屏)进行的。原因同2中的一样,CAE并不能识别关键词*section print。好了,下面开始详细的步骤讲解吧!第一步:定义截面(cutting surface),具体的关键语句为:*surface,type=cutting surface,name=cutsurf-10.6,25,0,0,1,0Set-pile解读:第一行,定义surface、surface类型以及名称。第二行,定义截面上的一点(0.6,25,0)以及截面的法向量(0,1,0)。法向量不一定是单位向量。第三行,截面所在的单元或集合。这个集合可以是事先在CAE里定义好的。需要注意的是,这个cutti
11、ng surface是垂直于桩径方向的一个桩截面,而不是桩的侧表面。我一开始理解错了!此关键句在inp文件中的位置是在*Assembly, name=Assembly这一行之后,我试了下在放在材料定义之后,运算不成功。估计是因为我的Set-pile是在assembly里定义的,而不是在part里定义的单元集。若是在part里定义了桩的集合,是不是可以将此关键句移动到材料定义之后,这个我倒没试。如果是在CAE中通过编辑关键词来添加上述语句,将会有下面的错误提示: 第二步:定义输出(section print),具体的关键语句为:*section print,name=secprint-1,sur
12、face=cutsurf-1sof,som解读:第一行,定义输出的名称及截面。第二行,定义输出选项,sof为截面合力,som为截面弯矩。注意,此处第一行surface=*必须是上一步中cutting surface的名称(name=*),因为要输出的就是第一步定义的截面轴力及弯矩。如果此处乱写surface=?的话,估计到最后什么也输出不了了。有些人还在第一句后面加上了axes=local,frequency=1,update=yes,由于我的模型较简单,也就没管这几个东西。除了命名之外,inp文件中的大小写英文字符,是没有区别的。所以大家不要再犹豫写*SECTION PRINT还是*sect
13、ion 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:-*SECTIONPRINTThe
14、 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.1Abaq
15、us 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
16、或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)本人查看
17、了仿真论坛里的一些帖子,发现输出轴力的方法有三:后处理模块中运用free body cut,此法较为方便简单,可直接得到截面合力,无奈我的模型是二维轴对称的,不能进行自由体切割。输出截面上的应力值进行积分运算,主要方法是创建路径(path)或者拾取节点应力值,桩身的网格越密集,最后的积分值越精确,此法我已学会。cutting surface和section print联合使用,由于手动修改inp文件,此法最复杂,而且不知道最终的sof值,软件是如何算出来的。如果需要得到桩深方向N个截面的轴力,就需要在cutting surface里定义N个截面。Abaqus中input文件介绍1. 本INP文
18、件以及解释参考石亦平博士所著的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文件的处理过程,以及详细
19、的模型和历史数据。*-* PARTS*Part, name=Plate1*-*定义Part的标准格式:*Part,name=部件名称*对于非独立实体,比如此例,要在下面数据块中定义详细的节点,单元,截面属性等数据。以便Mesh时,*Mesh在Part上面;*对于独立实体,则Part数据块只包含*Part和*End Part两行,而没有实质性的数据。节点,单元,截面属*性等数据将在Instance数据块中定义,而*Mesh时也只能在Instance上面做。*如果INP文件是由Abaqus/CAE生成的,其结构会包括部件*Part,装配件*Assembly,实体*Instance等数*据块,比如此
20、例。*如果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.如果在定义荷载L
21、oad,边界条件BC或约束Constraint是需要引用这些节点编号,需要加上相应*的 实体 名称作为前缀。例如,部件Part-A和*部件Part-B的相应 实体 分别名为PartA-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,
22、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, 27879, 100, 101, 23, 22, 275, 280, 117, 27980, 101, 56, 1, 23, 277, 281, 105, 2
23、80*-*下面为集合的定义:集合分为节点集合*Nset和单元集合*Elset,又分为下面两种:*1.定义在Part或Instance数据块中的集合:这类集合出现在*Part和*End part之间(比如此例),或出现*在*Instance和*End instance之间,一般用来定义*界面属性。*2.定义在Assembly数据块的集合:这类集合出现在*End Instance之后,*End assembly之前,一般用来定*义荷载,边界条件,接触或约束等。*节点集合和单元集合的表示方法:*1.如果集合中的节点或单元编号是连续的,可以表示为*节点集合: *Nset, Nset=节点集合名称, G
24、enerate* 起始节点编号,结束节点编号,节点编号增量*单元集合: *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=材料名称* 界面参数*界面参数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1