[分享]清华有限元论坛上部分abaqus问答集合
本帖最后由 wdhd 于 2016-4-6 11:15 编辑1.ABAQUS的UMAT一点看法:
如果本构模型复杂,应力应变关系是非线性的隐式表达,就需要进行迭代,更新应力。这就是UMAT的最重要的任务。那么这样一来,在给定应变增量的情况下更新应力,就必须求解应变对应力的导数,运用迭代,如N-R迭代。这样一来,在UMAT中就需要求解两次导数。(DDSDDE为一次)所以比较麻烦的。对于时间相关的本构模型来说更是麻烦。
2.使用abaqus求解螺栓和螺母接触螺纹的强度所碰到的问题
1. Solver problem. Zero pivot when processing D.O.F. 1 of 49 nodes. The nodes have been identified in node set warnnodesolvprobzeropiv_1_1_1_1_1.(是什么原因造成的?)
2。The system matrix has 6276 negative eigenvalues..(是什么原因造成的?)
3。1304 nodes may have incorrect normal definitions. The nodes have been identified in node set warnnodeincorrectnormal.(这个法向量错误在模型中显示为螺母内部的接触面,但我反了一下法向量还是同样错误)
4。Program is asked to invert a singular matrix.(是什么原因造成的?)
2. 模型就是一个螺母和螺栓之间夹一个平板的简单模型
边界条件施加如下:固定螺栓的下端,在螺栓、平板、螺母之间分别建立surface to surface接触(带摩擦),然后在螺母上施加力矩,这样来求解螺栓预紧时螺纹接触部分的应力,但总是出现上述问题,请高手分析指点,谢谢!
答:检查一下两个接触面之间是不是有初始的穿透; 负特征值可能是因为你的初始步长太大了,接触的问题;保证模型中的每个零件在开始时有稳定的约束,可以考虑加一些软弹簧约束住; 还可以用ajust使两个接触面在一开始就起上作用。
1.cae 不支持哪些command命令,在哪个手册中查询?
cae user's manual中的A Keyword support
2.怎样制作movie,既是把view中的动画制作成reaplay的格式播放?
直接存成avi动画即可
3.plot图形中x,y轴怎样调换,即要改变系统默认的坐标,把x,y轴表达的量对换?
.plot图形中x,y轴怎样调换,即要改变系统默认的坐标,把x,y轴表达的量对换?
4*。fil 文件用什么后处理软件分析更好?
fil用patran或者hypermesh都行。都比abaqus/cae强如何在explicit中改变摩擦系数? 帮助21.4.3中说可以如下改:
*STEP
Step1
*DYNAMIC, EXPLICIT
…
*SURFACE, NAME=ASURF
ESETA,
*SURFACE, NAME=BSURF
ESETB,
*CONTACT PAIR, INTERACTION=GRATING
ASURF, BSURF
*SURFACE INTERACTION, NAME=GRATING
*FRICTION
0.4
.
.*STEP
Step2
*DYNAMIC, EXPLICIT
…*SURFACE INTERACTION, NAME=GRATING
*FRICTION
0.5
也就是把*SURFACE INTERACTION, NAME=***
*FRICTION
这两个命令在新的step里重复一次,就可以把摩擦系数改掉.
但我实际应用时,总是提示error,说***这个name不能用超过一次,是不是有bug?
我肯定是在两个step里分别定义的.
我定义的两个接触面一个实体单元的表面,一个是刚体表面.
回复:(TNC)[分享]清华有限元论坛上部分abaqus问答集...
本帖最后由 wdhd 于 2016-4-6 11:16 编辑回复:(TNC)[分享]清华有限元论坛上部分abaqus问答集...
问: 小弟欲用umat写混凝土材料的本构方程,不知umat中提供的DFGRD0,DFGRD1各自的意思是什么以及他们与DROT的关系?本构方程采用的是亚弹性形式,帮助中说对于此类问题,需要DFGRD0和(或)DFGRD1来得到输入的量,DFGRD0是增量步开始时的变形梯度,DFGRD1是增量步结束时的变。
变形梯度的概念任何一本连续介质力学的书里都有,或者看看庄茁老师翻译的《连续体与结构的非线性有限元》的第三章。
变形梯度:F = dx/dX (找不到偏导算符,就用d代替)
其中:X是原始构形里的材料点位置矢量
x是X代表的材料点在当前构形的位置矢量
变形梯度可以分解为:F = R*U = V*R
其中:R为正交旋转张量,U,V分别为右拉伸张量和左拉伸张量。
UMAT里的DFGRD0,DFGRD1分别是在当前increment开始时刻和结束时刻的F值。如果用DDFGRD表示当前increment结束时刻相对开始时刻的变形梯度:DDFGRD = DFGRD1*inv(DFGRD0)
那么按照前面给出的分解公式,DDFGRD也可以分解为
DDFGRD = DROT*DU
ABAQUS:对子程序的疑问!我就不知道子程序这么神秘?
同一个分析,我仅仅是为了将圆周上的一系列结点施加沿径向的位移(位移值是结点的空间坐标值的函数),当我不怕麻烦对每一个结点施加我用该函数计算出来的位移值时,分析可以正常运行,其定义格式如下:
*boundary
n1,1,1,-0.0043
。。。。。N多个结点均是如此定义,其中n1。。为每一个结点,且已在transform中定义好,沿径向 而我想省事(当然用子程序肯定就是为了省事),将此函数写入子程序DISP,其定义如下:
SUBROUTINE DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)
C
INCLUDE 'ABA_PARAM.INC'
DIMENSION U(3),TIME(2),COORDS(3)
open(16,file="D:/prueba.dat",position='append')
open(17,file="D:/prueba1.dat",position='append')
write(16,*), coords(1),coords(2),coords(3)
close(16)
U(1)=0.5*(1.0-SQRT(COORDS(1)*COORDS(1)+COORDS(2)*COORDS(2)))
write(17,*) node,time(1),JDOF,U(1),U(2),U(3)
close(17)
RETURN
END
式中的U(1)即为我的函数,函数没有问题,通过输出到dat的值我也可以看出,和我自己计算的值 是一样的,可就是这样,一用子程序分析就不能收敛,这是为什么,难道是我子程序写的有问题?可输出来的值没有问题呀!
在inp中调用该子程序这样写的:
*boundary,user
n1,1,1
那么我想是不是调用过程中的问题?我从dat文件中可以看出,在abaqus每一次分析平衡迭代时,均调用一次子程序,而似乎不用子程序的边条仅仅是在分析之前将位移值加好后就不再对其进行操作了(个人想法,不知是不是对?)
那怎么样才能达到两者一致的效果呢?这个模型还算简单,如果结点狂多的话,手写不就累死了?
答:你定义的子程序设定位移和时间无关,引起不收敛。
问:谢谢,我也考虑过是不是这个问题才使得子程序在每一次迭代时都引用,但不知如何设置才可以和用直接写的作用一样呢?如何做到与时间相关呢?
答:*time/steptime:
回复:(TNC)[分享]清华有限元论坛上部分abaqus问答集...
本帖最后由 wdhd 于 2016-4-6 11:17 编辑回复:(TNC)[分享]清华有限元论坛上部分abaqus问答集...
问:计算模型是轴对称模型,计算时只用了1/6模型,后处理怎么能结果映射成整个模型?
答:view->odb display option->sweep&exturde即可
问:我现在想建一个心脏的维模型在abaqus,,由于模型太复杂了,但是我有心脏模型的三维模型数据文件,不知道abaqus有没有那样的接口,读取这样的模型数据文件,是一个已经构造好的三维模型,可以是说一个数学模型了,因为着个模型的每一点的三维坐标都是定的。
所以我想是不是可以直接导入abaqus
答:试试在inp 中间用
*NODE, INPUT=node.inp
node.inp中,是节点的编号和坐标
node1, x, y, z
......
你应该有这样形式的文件吧.然后从CAE里面导入inp文件,模型就好了 。
问:有一个弹性矩形薄板,绕y轴做定轴转动
/|\
|y
|
A————————————————————B
| |
| |
| |
C————————————————————D
我定义BC为:
在AC这个face上,加U2=0,UR2=UR2(t)
结果最终计算结果怎么都不动,是不是我的边条给的不对?
怎么理解转动自由度,是对node定义?怎么定义的?转动基准在哪里?
答:应该把AC边都加Uxyz=0吧 。
问:有人用过map solution嘛?是不是shell单元不可以用? 看帮助说只能用在Continuum 单元,这是不是就意味着shell(它是structure单元)不能用到map solution了?那么我用shell单元进行的分析当remesh后,如何取得与map solution相同的效果呢?abaqus不会这么弱吧?
答:要么你采用continuum shell element,要么就直接用solid element(如果计算资源允许的话)
问:平面中画一个线裂纹,
答:平面中裂纹位置划一条线即可在该处定义为裂纹单元,并在尖端处定义一个区域为裂纹尖端场输入相关参数就ok了
问:ABAQUS中裂缝的扩展问题:DEBOND为什么不起作用?我定义了裂缝,开始BOND在一起,后来的STEP中想DEBOND开,定义了如下:
*DEBOND,SLAVE=LEFTSURF,MASTER=leftrock,
TIME INCREMENT=.001,FREQUENCY=2,OUTPUT=BOTH
0.0 , 1.0
0.005, 0.0
*FRACTURE CRITERION,TYPE=COD,TOLERANCE=0.01,
DISTANCE=2.426,SYMMETRY
2.518, 0.0934
可以计算,但是裂缝总是粘在一起(BD),怎样定义才能使其DEBOND开(DB状态中SL)?
补充说明,我是想在STEP1中,施加荷在,接触面
BOND在一起,在STEP2中,分开,无论荷载大小,(DEBOND),然后,接触面按通常的接触对作用,STEP1没问题,可是STEP2就是不分开(DB),是不是*FRACTURE定义的有问题?
答:type=cod是根据位移判断是否断裂,是不是你的设置有问题,发个裂纹扩展的input文件,是按照type=critical stress进行失效判断的,你自己对比的看。
问:请教ABAQUS中怎样在每个节点上加集中力?谢谢在.inp文件中这样写
*cload
1,1,1
1,2,2
2,1,0
其中第一列是节点号,结果运行出错,说是ERROR:in keyuword *CLOAD,file "plane21.inp", line 13020:unknown assembly id 1
答:你把要加力的节点定义成节点集 nset就行了吧.
问:Abaqus6.4 CAE中如何设置局部坐标系?
分析问题中有明显的转动,因此需要建立局部坐标系,但在CAE中如何
加呢,我只在Property -> Assign 中找到Material Orientation。
答:load模块tool-datum-csys。
问:在CAE中如何加预应力,加预应力除了用等效荷载法外还有没有其它更好的方法?
答:看看manual吧,*initial conditions, type=stress应该可以做到预应力的
问: 我作一个接触问题,用interaction-> Constraint-> Creat->Tie 时只让选择面,如何才能选择点呢。我只想对两个点用Tie粘接。
答:在inp文件中加上
*MPC
TIE, node1,node2
就可以了。
问:ABAQUS的线性扰动与一般分析怎么区别?把那本中文版教材第10章看了两遍还是不太懂。比如那个洗涤盆的例子,在盆子上站一个人是线性扰动分析,盆子里灌满水又成了一般分析了,不都是一个静态加载过程吗?
答:线性扰动和一般分析是两个差别很明显的分析过程,
一般分析可以是线性,非线性的,上一个一般分析步骤是下一个分析步骤(线性扰动,一般分析)起始状态,输出结果是整个一般分析的结果,而线性扰动只能是线性的响应,而且他不能作为下一个分析步骤的起始状态,它的输出结果只是本次扰动分析的结果,象你说的例子,其实主要是看你想分析什么问题,得到什么结果,一个人站在盆子上,是想分析盆子对站一个人的响应,在盆子工作的时候,一般这个人是不会在盆子上的,也就是说人不会对盆子的工作状况起作用,而且下一步的分析是去掉这个人的,因此要把它当作一个线性扰动来看,而盆子装满水,既可以看成一个一般分析也可以看成线性扰动,主要是看你怎么分析这个问题的,如果只想看盆子装满水的响应,而以后的分析是要分析空盆子,看就要当成一个线性扰动问题,但如果后续要分析装满水的盆子,那就要当成一般分析。很简单易的理解,线性扰动对后续分析不起作用,只是想看当前的响应,而且分析只能线性的,而一般分析可以是个累积的过程,线性,非线性都可以。
问:请问怎么用abaqus怎么建空间网架结构,在part里面选择了3D wire之后只给提供一个平面坐标,怎么才能输进3方向的坐标还是用别的方法建?
答:在平面坐标中建立某个平面内的主框架的sketch,然后生成一个part,然后就可在3D空间中构建你想要得框架的。
用写 input的方式可以很快的建立这个模型。
input文件的格式和大多数有限元程序差不多比如:
*HEADING
AN ANALYSIS FOR 8STORY FRAME STRUCTURE .
**CREATE THE NODES
*NODE
1, 0.0000, 0.0000
17, 18.0000, 0.0000
**CREATE NODES
*NGEN, NSET=S0
1, 17, 1
*NSET, NSET=Base
1, 17
*NSET, NSET=Middle
9
*ELEMENT, TYPE=B23
1, 1, 2
*ELGEN, ELSET=level0
1, 16, 1, 1,
*BEAM SECTION, ELSET=B8, MATERIAL=steel, SECTION=I
0.375, 0.75, 0.40, 0.40, 0.036, 0.036, 0.019
0.,0.,-1.
**DEFINE MATERIAL
*MATERIAL, NAME=steel
*ELASTIC
2.058E+11, 0.2963
*PLASTIC, HARDENING=KINEMATIC
258720000.0, 0.0
464520000.0, 0.049
**DEFINE BOUNDARY CONDITION
*BOUNDARY
Base, 1, 2
Base, 6, 6
**----------------------------------------------------
*STEP, NAME=gravity
*STATIC
0.1, 1.0, 1.0E-5, 1.0
*CLOAD
S0, 2, -60000.0
*END STEP
**----------------------------------------------------
*STEP, NAME=staticstepupper, INC=999
*STATIC
1.0, 1.0, 1.0E-5, 1.0
*BOUNDARY
Middle, 2, 2, 0.05
*RESTART, WRITE, OVERLAY
*FILE FORMAT, ASCII
*NODE FILE, NSET=Base, FREQUENCY=999
RF
*END STEP
回复:(TNC)[分享]清华有限元论坛上部分abaqus问答集...
问: 以Getting Started with ABAQUS中那个connecting lug为例。分析时假设材料为理想弹塑性,即只给出一个屈服应力,当荷载太大时(如60KN),得出的变形图显示模型几乎转了90度,abaqus可以设置条件让分析中止吗?答:可以参考*STATIC关键词的FULLY PLASTIC参数进行控制,CAE在创建step的时候支持
问::在Getting Started with ABAQUS里
: 那个梁单元的例子,为什么需要给定横截面的方向?好像有的单元需要有的单元不需要,不知为什么?方向向量是要自己算么?
:
答:梁单元需要定义横截面方向,t,n1,n2。给出n1就行了。n1,n2为截面轴,t,为局部切线。
问:ABAQUS:关于tie接触中distributing weight和contact area的
: ***WARNING: THE CONTACT AREA OR DISTRIBUTING WEIGHT ASSOCIATED WITH THE NSET 0
: IS ZERO OR NEGATIVE. A ONE IS ASSUMED FOR THE CONTACT AREA IF THIS
: SURFACE IS USED IN A CONTACT CALCULATION. A ZERO IS ASSUMED FOR
答:建议你看看庄茁的ABAQUS入门里面的接触问题。
平衡主控-从属算法里面用weight来控制权重,如果取1.0,前一个面就是主控面;如果取0,后一个面是主控面。当然一般都是取0~1.0之间的数值的,除非你用了一个绝对刚性的表面。如果你的模型假设没错,这个warning没什么影响。
问:怎么在abaqus中设置集中质量啊? 建立了点单元却不能指定到节点上啊!
: 恳请各位大虾赐教!
答:1 cae中建立一个点刚体,然后在section中选择point的属性,给出惯性特征就行了。
2 在keyword中添加: *element,type=mass,elset=pointmass
1(单元号),1(point)
*mass,elset=pointmass
2.2(质量大小)
这样就建立一个质量为2.2,在node 1上建立的。
问:我刚刚接触abaqus一段时间,希望大家能多多帮助,谢谢了!
: 我要算的是一个简单的框架结构(3m*3m*3m)在地震波(加速度荷载)下的响应,是否只能用*dynamic?我除了指定时间步其它参数都是默认,HAFTOL对结果的影响不大,随便取了一个值,梁单元用b31,不知道这样计算是否正确?结果不太对我不知是什么原因?:
答:对于响应问题好像halftol没用吧。对于implicit dynamic,halftol是自动步长的设置
,如果不设置halftol,选择direct就是固定步长。不过感觉abaqus不好的地方就是这个halftol,需要自己估计一个力的大小。如果你是加了一个集中力还好说,如果就是一个冲击问题,我算之前都不知道冲击力的大小,不是很号估计。其实我觉得完全可以程序
自己根据上一步的收敛情况,自己给出halftol的大小呀。或者只是设置一个精度的选项
问:新手求助怎么在ABAQUS里调用.inp文件啊?还有在菜单模式下用命令不行啊?
: 比如,我输入 abaqus fetch job=frame 或者 abaqus job=frame interactive
: 都说是无效字符,我用的是 6.41版,请高手指教!
答:将inp文件置于工作目录下,在 abaqus command下输入abaqus job=文件名 就可以了,
如果是帮助里面例子的inp文件,或者将它拷贝出来,或者用abaqus fetch job
1.可以在Cae中用File>Import>Model输入inp文档作为模型,然后在Job模块中设置
任务,执行即可。
2。执行的目录中必须有abaqus.bat, 或者abq641.bat 才可以。
问:abaqus中怎么加加速度的荷载啊?
答:我一般使用Amplitude输入地震波,然后加载时用
*Amplitude, name=acce
...
*Cload, amplitude=acce
Nset, 1, -1000.0
1000.0是加载点上的质量。
这种做法和加边界条件在地面上得到的反应是一致的。
问:大家帮我看看我在abaqus中提取J积分的方法对不对?
答:1、建好模型(二维)
2、导出*.inp文件
3、导入*.inp文件
4、create set(名为JRegion)选择type为node,选取需要的node
5、导出*.inp文件
6、手动修改*.inp文件,在history output那一部份添加如下:
CONTOUR INTEGRAL,CONTOURS=1,OUTPUT=BOTH,TYPE=J
JRegion,0.,-1.,0.
7、然后手动提交运算
abaqus analysis job=JobName input=*.inp
8、运算完成后进入CAE中,打开JobName.odb文件,History Output里就有J积分的值了
1。设置裂纹周围的奇异性单元,
2。手动修改*.inp文件,在history output那一部份添加如下:
CONTOUR INTEGRAL,CONTOURS=1,OUTPUT=BOTH,TYPE=J
JRegion,0.,-1.,0. 这一行应该是 nodeset(裂尖),裂纹扩展x方向余弦,裂纹扩展y方向余弦不需要导来导去,第一次导出来修改完了就可以递交运算了。 楼主人好。。。。 楼主整理的太辛苦了!
辛苦
谢谢 收藏!谢谢! 楼主辛苦了 谢谢 求助请问ABAQUS中的TIE和CONTACT 有什么区别,定义TIE的时候所选的MASTER SURFACE 和SLAVE SURFACE的原则与CONTACT定义主从面的原则是一样的吗,一直搞不清楚两者的区别,请高手赐教 ***请不要重复发帖***
[ 本帖最后由 likuiming 于 2006-9-11 16:49 编辑 ] 谢谢! 学习了,谢谢楼主。 :handshake 论坛咱能进不?
页:
[1]
2