|
汽车零部件采购、销售通信录 填写你的培训需求,我们帮你找 招募汽车专业培训老师
【 在 luxz (panda) 的大作中提到: 】
: 哪位有什么好办法?
: 感觉abaqus自己的前处理用得很不爽
: patran可以么?
我感觉abaqus/cae不错的呀,实体建模颇有pro/e的风格
感觉patran也好不到哪去,太麻烦,
也许patran功能更强一些(要不然也对不起它那硕大的身躯呀),
但对于不是很庞大的模型,根本体现不出来什么优势
: air1大侠,本人给你作广告,为何不可?
: 请问:弹塑性矩阵【D]与ddsdde有何联系,
: 你用过板壳单元吗?
stress=D*stran?
d(stress)=ddsdde*d(stran)
--
那应该就是一样的,因为全量理论,
Sij=DijklEkl(满足张量求和约定)
即Stress=D*Strain;
而在增量理论中,
△S=D*△E(在有限变形中,△其实应该为应力的客观率)
--
似乎不对吧
大变形下此D非彼D
你看过黄克智的固体本构关系这本书么
如果你从全量理论和增量理论的角度上讲
那似乎第一个Digkl就不对
你有第一个式子么
如果有,求导不久完了?
: 那应该就是一样的,因为全量理论,
: Sij=DijklEkl(满足张量求和约定)
: 即Stress=D*Strain;
: 而在增量理论中,
: △S=D*△E(在有限变形中,△其实应该为应力的客观率)
是啊,大变形下的[D]与普通意义下的[D]在构型上是不一样的,
毕竟[D]大是变形历史的函数,而[D]小则不是,
我推导一种新的本构关系,
△Sij=Dijkl△Ekl (其中△为Jaumann率)
假设材料一开始就屈服(即屈服面为0)
想用壳单元,
: 似乎不对吧
: 大变形下此D非彼D
: 你看过黄克智的固体本构关系这本书么
: 如果你从全量理论和增量理论的角度上讲
: 那似乎第一个Digkl就不对
: 你有第一个式子么
: 如果有,求导不久完了?
: 是啊,大变形下的[D]与普通意义下的[D]在构型上是不一样的,
: 毕竟[D]大是变形历史的函数,而[D]小则不是,
: 我推导一种新的本构关系,
: △Sij=Dijkl△Ekl (其中△为Jaumann率)
: 假设材料一开始就屈服(即屈服面为0)
: 想用壳单元,
唉,别提了,问题就出在,在abaqus中,明明写着可以考虑剪切效应,
可我打印出剪切力个数是,nshr=1,即只有S12,
那我的S13,S23就不知怎么计算,
(DDSDDE(5,5)无法计算,因为ntens=3,最多只能计算DDSDDE(3,3))
你编umat编进去不久行了
他让用NDI,NSHR,NTENS表示变量,你就用这些表示变量
这样他就可以任意的计算了呀,而不在意实际计算的变量数
: 唉,别提了,问题就出在,在abaqus中,明明写着可以考虑剪切效应,
: 可我打印出剪切力个数是,nshr=1,即只有S12,
: 那我的S13,S23就不知怎么计算,
: (DDSDDE(5,5)无法计算,因为ntens=3,最多只能计算DDSDDE(3,3))
因为我的UMAT从abaqus传来的变量(当我选用壳单元时)ntens=3,
ndi=2,nshr=1,这样的话,STRESS为3个,STRESS(3),不可能计算
STRESS(4),STRESS(5),同理,STRAIN,DDSDDE也存在同样的情况
在中厚度板壳元中(MINDLIN)中,DDSDDE为5×5
你的FOR文件收到,可惜研究的对象相差太大,看不懂!
不过你在文件中定义的变量有的根本就没有用到,
还有有的地方似乎是毫无用处的代码,比如:SMISES一段
我觉得你不应该太急,第一步应该保证代码的正确性。
另外看了你上面的讨论,我觉得你应该换一种单元试一试。
比如用梁单元。很有可能NDI和NSHR会不一样。
不知道你是不是一定要用到壳单元上?
如果必须用在壳单元上,可能S23,S31就必须自己在UAMT
中输出了。具体的做法我也不清楚。
还有对DDSDDE,我的理解也是: dS=DDSDDE*dE
我的意思是不管他是几乘几的矩阵
一般的D矩阵就是6*6
你编的umat需要适应于任何单元
所以当然6*6的矩阵应该给完全
当算体的时候
如果是壳单元,他只有ntens=3
那就等于三呗,他用哪个就是哪个
反正你的D6*6的矩阵放在哪了
如果是三维实体单元,ntens=6
所以你的D矩阵就全用上啦
记住你编的umat应该适应于所有的单元,所以不用考虑哪几个参数的值
而且这个stress(3)也许是人家只用到了你D6*6的第一行,第二行,和的四行哪
sigh
不知道我说明白了没有
: 因为我的UMAT从abaqus传来的变量(当我选用壳单元时)ntens=3,
: ndi=2,nshr=1,这样的话,STRESS为3个,STRESS(3),不可能计算
: STRESS(4),STRESS(5),同理,STRAIN,DDSDDE也存在同样的情况
: 在中厚度板壳元中(MINDLIN)中,DDSDDE为5×5
对于DDSDDE,其实就是给了一个应力应变的斜率,我感觉
真正计算的是利用更新的应力,DDSDDE我觉得就是为了确保收敛
真开心有这么多人讨论ABAQUS,特别是umat
我国外的师兄说Umaterial在国外应用得也很广
: 对于DDSDDE,其实就是给了一个应力应变的斜率,我感觉
: 真正计算的是利用更新的应力,DDSDDE我觉得就是为了确保收敛
: 真开心有这么多人讨论ABAQUS,特别是umat
: 我国外的师兄说Umaterial在国外应用得也很广
各位大侠,看到我提出的uamt,及statev有这么多人感兴趣,实在很
高兴,希望大家能把摸索到的东西介绍给大家,现在我的程序能通了,
(因没有屈服面的概念),虽然结果是错误的,但总可以静下心来,不像以前
一运行自己的umat程序就standard.exe error.(并且程序.dat.msg.中无
任何错误信息,log说error see msg,but msg中无)。
现在我明白了,在用户程序中,WRITE(*,*)则写入log,write(6,*)则写入
dat,等,
在监控程序时,发现,statev(),是每次迭代和增量运行它,他就为0,
还是为上一步的值,因为我每次都为0,怀疑有误
还望大侠提醒!
: dat,等,
: 在监控程序时,发现,statev(),是每次迭代和增量运行它,他就为0,
应该不是0,如果在每个增量步的最后你重新更新过他
输入文件*.inp中,*depvar不要忘了写statev()的维数哦!
: 还是为上一步的值,因为我每次都为0,怀疑有误
: 还望大侠提醒!
--
你只有一个单元么?
【 在 saturn (好好工作) 的大作中提到: 】
: ~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~这我以前还不知道
: 应该不是0,如果在每个增量步的最后你重新更新过他
: 输入文件*.inp中,*depvar不要忘了写statev()的维数哦!
--
【 在 air1 (无影如风※勤奋羊羊※课题在即) 的大作中提到: 】
: 可是这个写的命令有用么
: 对于输出而言
: 你只有一个单元么?
已经写了,定义了statev的维数,
*depvar
20,
看来我的错误不在statev,
因为我的输出显示在第三增量步中,statev不为0,
但我还是有些不清楚uamt程序的执行过程,
比如,
一板一次壳元s4r,面内采用缩减积分,即1×1,厚度方向为5点simpson
积分,按道理,
没一增量步的迭代步,对每一积分点都会运行一次umat,
即上问题,每一迭代该运行5次,
那上面的statev,是每次迭代都会改变(不是每次运行)?
请air1,beauty_life,saturn,......等各位相助
看过书上例子,
如果定义statev为(nblock,*)的数组,
应该对每个积分点都进行迭代计算,从而更新变量值
(写stateNew(nblock,*)
请问Mikejwg,变量statev怎么输出?
可以象应力应变那样进行绘图、动画等后处理吗?
不好意思,我只在log文件中输出,还没有在odb中输出,
想同element output等那样输出,只能在UVARM中定义,但
同statev是不同的,老兄你可以试试。
发信人: Mikejwg (mikejwg), 信区: FEA
标 题: 用abaqus中的UMAT的大侠看过来。。。
发信站: BBS 水木清华站 (Tue Dec 25 15:36:27 2001)
各位大侠,
在加入自己弹塑性本构模型时,如何加入区分弹性部分与塑性部分(或
非弹性部分)。也就是说,在输出时,EE,LE,IE([PE]),因为在umat中,
我们只发现dstran,stress,除此并没有发现其它有关应力应变得变量。
你所说的区分弹性部分和塑性部分是指应变的弹塑性部分:E=EE+PE吗?
还是指加载过程的弹塑性?
E=EE+PE
我觉得想从umat的输入参数里面区分是不可能的
可不可以你先算出弹性的,然后用stran减去弹性的,得到塑性的
我猜的哦
我自己是明白的,但不知怎么让程序明白
比如,在一定条件下可解出位移增量,abaqus得到应变增量dstran,stran,
而弹性部分,dEEij=dSij/(2G),dEPij=dstranij-dEEij
但怎么控制程序了?
默认得情况又是怎样计算的
谢谢
我不清楚你的本构,
我大概觉得你如果是用屈服面的话
你是不是可以用statev()记录每一步的EE,EP
然后通过应力偏量来计算DEE,DEP,然后自己更新EE,EP,就不与stran扯上关系
我以前见过用Umat算J2流动理论的时候,是这么做的
首先我的本构不能采用屈服面的概念(一种新型的弹塑性本构模型),
我也看了那个采用j2流动法则的例子,我可以在umat中的statev重定义
ee,pe,但statev不能像EE,PE,IE那样在odb中输出。
再说在umat中的ee,pe与inp中的ee,pe是不同的。
谢谢
看来你只能试试uvarm了
呵呵,
发信人: Mikejwg (mikejwg), 信区: FEA
标 题: Re: ABAQUS中的弹塑性应变的计算问题??
发信站: BBS 水木清华站 (Thu Dec 27 14:19:27 2001)
用uvar()勉强成功
标 题: 在abaqus中,DSTRAN,STRAN为工程剪应变吗?
Sat Dec 29 09:44:03 2001)
同题,这涉及到ddsdde,peeq的计算
对,我也是最近才发现的
peeq怎么计算?
在umat中计算peeq,(因用umat后,系统缺省peeq=0)然后再uvarm输出
uvarm可以输出到哪里?.odb可以么?
另外那个strav??就是自己定义用于umat的那个数组里的数可以输出到.odb里么?
谢了,你这个成长中的大侠
在umat中,statev是不能用在output中的,statev只是作为一个解的
状态变量,说来惭愧,我是在umat中定义peeq,(peeq)的求解一般在
弹塑性力学书上有(等效塑性应变),用write()写入一个临时文件,
((切记:这个文件unit号不要与abaqus中的重合,因为他有一些系统默认
的文件号,))
然后在uvarm中读取,以uvarm输出,因为uvarm可以以odb的形式输出,
支持output,field,output,history
不知谁还有更好的方法。
听说清华有人abaqus用的很熟了。
大家过奖了,我是没办法,要出论文,总得学习,上午版主还在qq中指点了我一番
YOU CAN TRY AS FOLLOWS:
*STEP,EXTRAPOLATION=NO,INC=2000000
*STATIC
0.001,500.0,0.00001,0.1
可以
并且在step里好像有选项选择
你是手写的程序么
新建一个step
然后定义边条
在上一step定义边条的节点上重新定义边条
而且,好像,是不是有个选项是new
这样就可以取消上一step的边条设置了
在以后的载荷步里重新定义边界条件,加参数new
比如在第二个载荷步里:
*STEP
......
......
*BOUNDARY CONDITIONS,OP=NEW
......
*END STEP
Command方式:abaqus job=job_name user=source_file(或者obj_file);
CAE方式:在最后submit的时候可以选择source_file(或者obj_file).
不太明白你的意思。
如果只是要得到所需要的如应力,应变等,那么在数据行请求
输出就行了啊,而且个人觉得abaqus的后处理功能基本上也够用了,直接输出到*.odb文件
中,用CAE或者Viewer后处理即可。
而*el print输出的dat文件包含其他的信息,如版本号、处理内容等。
若想要直接输出到其他后处理软件的话,可以输出到result file文件*.fil,不过,
这可是二进制文件或者ASCII文件,还是需要处理的,或者直接用Hypermesh等后处理
程序打开做图。
好像是在tool->display->create->再选定一个单元集或者是节点集
然后操作是“取代”还是其他等等(就是里面的两个圆圈相交,
还是想减)。你试试看看。
这个是要到后处理才行吧
非要计算以后形成*.odb吗
前处理里面怎么才可以啊
Python在abaqus中可以运行scrpit文件,你在CAE manual中就
可以将其附录中的例子存为*.py文件,然后在CAE的菜单中
run script就可以运行了。
BTW:请问你的是abaqus的那个版本?6.2 or 6.3?6.3的有盗版了?
: (1),请问如何得到M,C,K矩阵?用什么命令?
试一试:*element matrix output
: (2),想要用Newmark方法求解.求解问题,在ABAQUS中如何实现?或者
: 那里能找到类似的例子?
看看:standard manuals:analysis的dynamics analysis和explicit manuals
: (3),ABAQUS中能实现这样的东西吗?就是我需要平滑ABAQUS产生的位移场
: 还是这个平滑只能在其他环境中完成?
试试这个输出选项:
*El print,Position=average at Nodes
: abaqus/CAE好像不能生成节点集,只能定义某个实体,后处理用这个实体上的节点。
: 看到CAE的例题都是这样做的。
NODE SET是abaqus的基本功能,也是其方便使用之处,
在CAE中是支持的。
这个例子我做过,没有问题。
: : 我用tool》set》create居然不能选择由CAE生成的节点(不是顶点)
这是因为你没有正确操作Partition Edge这一步。
【 在 sunhaolan 的大作中提到: 】
: abaqus/CAE好像不能生成节点集,只能定义某个实体,后处理用这个实体上的节点。
ABAQUS divides all of its analysis procedures into
two main groups: linear perturbation and general.
ABAQUS makes a very clear distinction between
perturbation and general analysis procedures because
loading conditions and "time" are defined differently
for the two cases. Furthermore, the results from each
type of procedure should be interpreted differently.
The response of the model during a general analysis
procedure, known as a general step, may be either
nonlinear or linear. In a step that uses a perturbation
procedure, which is called a perturbation step,
the response can only be linear. ABAQUS treats
such steps as a linear perturbation about the preloaded,
predeformed state (known as the base state) created by
any previous general steps; therefore, its capability
for doing linear simulations is rather more general
than that of a purely linear
analysis program.
各位大侠,我在定义step的时候,前三个用的是standard中的相关命令.在
step 4的时候,我想用explicit来求解,并且定义了amplitude,来模拟一个
位移随时间的简单变化,命令如下:
*step name="~~~",nlgeom,inc=1000(好像explicit里没有inc这个参数)
*dynamic,explicit
,2
*amplitude name=ramp
0,0,1,1,2,1
*boundary amplitude=ramp
refpunch(刚体参照点)2,2,-0.03
*end step
有问题吗?
另外standard的命令和explicit的命令能出现在同一个.inp文件中吗?
要转换的.
ABAQUS/Standard and ABAQUS/Explicit are separate program modules with
different data structures; hence, the
explicit dynamics procedure cannot be used in the same analysis as any of
the procedures in ABAQUS/Standard.
However, ABAQUS provides a capability to import a deformed mesh and associated
material state from
ABAQUS/Explicit into ABAQUS/Standard and vice versa. This procedure is
described in ``Transferring results between
ABAQUS/Explicit and ABAQUS/Standard,'' Section 7.6.2 of the ABAQUS/Standard
User's Manual.
【 在 linyuwho (苍龙有悔) 的大作中提到: 】
: 各位大侠,我在定义step的时候,前三个用的是standard中的相关命令.在
: step 4的时候,我想用explicit来求解,并且定义了amplitude,来模拟一个
: 位移随时间的简单变化,命令如下:
: *step name="~~~",nlgeom,inc=1000(好像explicit里没有inc这个参数)
: *dynamic,explicit
: ,2
: *amplitude name=ramp
: 0,0,1,1,2,1
: *boundary amplitude=ramp
: refpunch(刚体参照点)2,2,-0.03
: *end step
: ...................
feature菜单下有删除一项。基准点是一种feature
: 工具栏不有个像铅笔一样的的东东么
我想把计算出来的应力,应变,位移等数据提取出来,在其他软件里处理,
请问该怎么办?我在。dat里没有找到这些数据阿?。res不是文本格式,
其他的好像也没有啊。
计算结果,没有文本格式,只能自己把数据倒出来。
在显示结果的模块中,名字忘了,
就是sketch前面那个,
在report菜单中,可以到处自己需要的文件。
文件格式是:rpt
谢谢,但是这个为什么只有应力和应变呢?计算出的位移的数据怎么会没有呢?
【 在 santong (supernova) 的大作中提到: 】
: 计算结果,没有文本格式,只能自己把数据倒出来。
: 在显示结果的模块中,名字忘了,
: 就是sketch前面那个,
: 在report菜单中,可以到处自己需要的文件。
: 文件格式是:rpt
发信人: wjytj (赖子), 信区: FEA
你要在STEP模块field output和history output改变默认
请求输出位移U
或者在*step中加上:
*NODE PRINT
U
计算完成后在*.DAT文件中就可以提取节点位移。
请问field output和history output什么区别?
关键字*node output和*node print有什么区别?谢谢!
我的。inp数据文件里有这么几行:
*Output, field, frequency=99999
*Node Output
U, RF
*Element Output
S, E, EE
*Output, history, variable=PRESELECT
*El Print, freq=999999
*Node Print, freq=999999
其中在history output中有*node print关键字,但是没有指定输入U,
最后导出的数据没有U这一选项,请问是什么原因?
【 在 wjytj (赖子) 的大作中提到: 】
: 你要在STEP模块field output和history output改变默认
: 请求输出位移U
: 或者在*step中加上:
: *NODE PRINT
: U
: 计算完成后在*.DAT文件中就可以提取节点位移。
发信人: Mikejwg (mikejwg), 信区: FEA
field output和history output这在viewer模块中很明显。
field output是场量输出,history output为历史数据输出,会记录场量随时间的曲线
至于*node output与*node print的区别在于他们写入不同的后缀文件,
比如*.odb,*.dat等,在help中有详细介绍。
【 在 wsun 的大作中提到: 】
: 请问field output和history output什么区别?
: 关键字*node output和*node print有什么区别?谢谢!
: 我的。inp数据文件里有这么几行:
: *Output, field, frequency=99999
: *Node Output
: U, RF
: *Element Output
: S, E, EE
: *Output, history, variable=PRESELECT
: *El Print, freq=999999
: ...................
发信人: wjytj (赖子), 信区: FEA
然也!!补充一句:
*node output是给CAR或VIEWER做后处理用的,是二进制文件;
而*node print则是写到DAT文件中,你可以自己看的文本文件。
【 在 Mikejwg 的大作中提到: 】
: field output和history output这在viewer模块中很明显。
: field output是场量输出,history output为历史数据输出,会记录场量随时间的曲..
: 至于*node output与*node print的区别在于他们写入不同的后缀文件,
: 比如*.odb,*.dat等,在help中有详细介绍。
: 【 在 wsun 的大作中提到: 】
: : 请问field output和history output什么区别?
: : 关键字*node output和*node print有什么区别?谢谢!
: : 我的。inp数据文件里有这么几行:
: : *Output, field, frequency=99999
: : *Node Output
: ...................
发信人: octopuszy (猴哥), 信区: FEA
*node output是在odb文件中输出?br /> *node print是在dat文件中输出
【 在 Mikejwg (mikejwg) 的大作中提到: 】
: field output和history output这在viewer模块中很明显。
: field output是场量输出,history output为历史数据输出,会记录场量随时间的曲..
: 至于*node output与*node print的区别在于他们写入不同的后缀文件,
: 比如*.odb,*.dat等,在help中有详细介绍。
file>print>file
文件类型选择:png或tiff
【 在 Dshmy 的大作中提到: 】
: 谢谢
一般说可以这样理解:
Δσ=ddsdde*Δε
有点像我们常说的弹塑性矩阵:Dep
【 在 wjytj 的大作中提到: 】
: 在*USER MATERIAL的定义中,Δσ对Δε的偏倒数,即
: DDSDDE被称为:
: "material stiffness matrix";
: 而在UMAT中,DDSDDE被称为:
: "material's Jacobian matrix"。
: 请问DDSDDE和材料的切线刚度矩阵的关系是什么?
: 二者是一个概念么?
第二个
【 在 octopuszy (猴哥) 的大作中提到: 】
: 偶在umat中调用求主应力函数
: CALL SPRINC(STRESS,PS,LSTR,NDI,NSHR)
: 后,存储主应力得数组PS中
: 各个主应力排列顺序是什么?
: PS1>PS2>PS3 ?
: PS1<PS2<PS3 ?
: PS1>PS3>PS2 ?
: 谢谢!
abaqus job=jobname parametercheck
abaqus job=jobname datacheck
abaqus job=jobname continue
【 在 gentlewtj (gentlewtj) 的大作中提到: 】
: 那有没有检查错误的方法?
【 在 uptonow (到目前为止) 的大作中提到: 】
: 1、在边界条件和加载时,总是有initial这个步,然后是我们自己定义的
: 加载步,请问这个initial步,主要作用是什么?能不能去掉?
不能去掉,所有的分析都有,是默认的步
: 2、A solid extrusion base feature 这句话是什么意思?
: extrusion、revolution、等是什么意思?
这两的是三维建模时候,在画完二维图形,如何来生成三维图形,
extrusion意思是你给定一个厚度,然后二维图形第三个方向上面伸展这么多形成三维图形
revolution意思是你给定一个旋转轴,二维图形绕其旋转后形成三维轴对称图形
: 谢谢!
发信人: fangxj (fxj), 信区: FEA
标 题: Re: abaqus中接触问题请教
发信站: BBS 水木清华站 (Fri Jun 14 15:51:20 2002)
接触问题不收敛有两个方面不妨试试:
一、在*CONTACT PAIR 里调试ADJUST参数;
二、调一些模型参数,比如FRICTION等。
【 在 octopuszy (猴哥) 的大作中提到: 】
: 偶的模型中存在两个物体的接触,计算过程中报错:
: ***WARNING: OVERCLOSURE OF CONTACT SURFACES FOUNDATIONOUTSIDE and
: BUCKETOUTSIDE IS TOO SEVERE -- CUTBACK WILL RESULT. YOU MAY WANT
: TO CHANGE THE VALUE OF HCRIT ON THE *CONTACT PAIR OPTION.
: 。。。。。。。。。。。。。。。。。。。。。。。。。
: ***WARNING: CONVERGENCE JUDGED UNLIKELY. INCREMENT WILL BE ATTEMPTED AGAIN
: WITH A TIME INCREMENT OF 9.76563E-05
: ***ERROR: TOO MANY ATTEMPTS MADE FOR THIS INCREMENT: ANALYSIS TERMINATED
: 不知该如何解决?
standard使用隐式作动力分析,explicit用显式作动力分析,你该用explicit。
【 在 uptonow (到目前为止) 的大作中提到: 】
: 请问这两本书有什么不同,
: 我做的是圆形杯子的深冲的模拟过程,我这里只有standard一书
: 那位有explicit书的大虾请留个言,我想复印,谢谢:)
一般说来,你那样是正确的,如果不行,你可以在
dat,log,msg中找到中断的增量步,假如为60,不妨可以
在res_pulse中,
*restart,read,step=1,inc=59
【 在 ypm (红塔山) 的大作中提到: 】
: 我的一个abaqus程序(结构动力学,用的/standard模块,假设名
: 为pulse.inp,一个step, inc=1000, restart命令的参数为
: *restart, write, frequency=10),在算了一半之后人为停掉,然
: 后我想从中止的地方继续运算.
: 我定义一个res_pulse.inp,其中就一个命令
: *restart,read
: 然后在command窗口,输入 abaqus job=res_pulse oldjob=pulse
: 结果程序从起始点开始运算,而不是从中断的地方.请问是什么
: 原因? 刚学不久,希望大侠们指点指点!thanks
发信人: Mikejwg (mikejwg), 信区: FEA
uptonow一直叫我在水木清华上写一点东西,我一直忙于毕业论文,再说也是困难一个一个
出现,永远有解不完的问题,就本人体会,写一点东西:
在umat中,
(我总结三点:
1,求试算应力,stress=stress+De*dstran (其中:De为弹性矩阵)
2,据应力势函数(屈服函数)求解满足条件的应力,应变,
在此我们要注意试算应力与真实应力的关系:sigma_true=Sigma_tri-De*dpstran: dpstr
an为塑性应变增量,据此满足屈服条件,F(Sigmaij)=0,求得真实的应力
更新应力 stress=stress-De*dpstran
3,(与2联合,弹塑性区域的转换)判断是否屈服,
4,组集ddsdde(与个人的本构有关)
这4步都要在UMAT实现
采用上一迭代步构造ddsdde,然后dsigma=ddsdde*dstran不可取,以我个人经验,收敛很慢
并且敏感与步长。
希望大家交流!
发信人: uptonow (为什么受伤的总是我?), 信区: FEA
衷心感谢Mikejwg大侠的该出手时,就出手! 希望Mikejwg大侠以后经常出手!
造福于UMAT的万民!
【 在 Mikejwg (mikejwg) 的大作中提到: 】
: uptonow一直叫我在水木清华上写一点东西,我一直忙于毕业论文,再说也是困难一?.
: 出现,永远有解不完的问题,就本人体会,写一点东西:
: 在umat中,
: (我总结三点:
: 1,求试算应力,stress=stress+De*dstran (其中:De为弹性矩阵)
: 2,据应力势函数(屈服函数)求解满足条件的应力,应变,
: 在此我们要注意试算应力与真实应力的关系:sigma_true=Sigma_tri-De*dpstran: d..
: an为塑性应变增量,据此满足屈服条件,F(Sigmaij)=0,求得真实的应力
: 更新应力 stress=stress-De*dpstran
: 3,(与2联合,弹塑性区域的转换)判断是否屈服,
: 4,组集ddsdde(与个人的本构有关)
: ...................
发信人: wjytj (赖子), 信区: FEA
精华区有一些帖子,很有帮助,大家感兴趣可以去看看
【 在 Mikejwg 的大作中提到: 】
: uptonow一直叫我在水木清华上写一点东西,我一直忙于毕业论文,再说也是困难一?..
: 出现,永远有解不完的问题,就本人体会,写一点东西:
: 在umat中,
: (我总结三点:
: 1,求试算应力,stress=stress+De*dstran (其中:De为弹性矩阵)
: 2,据应力势函数(屈服函数)求解满足条件的应力,应变,
: 在此我们要注意试算应力与真实应力的关系:sigma_true=Sigma_tri-De*dpstran: d..
: an为塑性应变增量,据此满足屈服条件,F(Sigmaij)=0,求得真实的应力
: 更新应力 stress=stress-De*dpstran
: 3,(与2联合,弹塑性区域的转换)判断是否屈服,
: ...................
发信人: uptonow (为什么受伤的总是我?), 信区: FEA
精华区的帖子太少了,还需要你补充呢!不要推辞了!:)
推辞就是逃避责任呵呵,开玩笑的
【 在 wjytj (赖子) 的大作中提到: 】
: 精华区有一些帖子,很有帮助,大家感兴趣可以去看看
发信人: edodo (大漠孤沙), 信区: FEA
老哥可以挺身而出呀!哈哈!
期待中!
【 在 uptonow (为什么受伤的总是我?) 的大作中提到: 】
: 精华区的帖子太少了,还需要你补充呢!不要推辞了!:)
: 推辞就是逃避责任呵呵,开玩笑的
发信人: air1 (无影如风※勤奋36小时※永不言败), 信区: FEA
我曾经犯的错误
1,发现456方向的应变是工程应变
2,全量法可以直接根据更新后的应变求应力,单独求ddsdde矩阵.
3,ddsdde何时更新对于收敛性很有影响.
【 在 Mikejwg (mikejwg) 的大作中提到: 】
: uptonow一直叫我在水木清华上写一点东西,我一直忙于毕业论文,再说也是困难一?.
: 出现,永远有解不完的问题,就本人体会,写一点东西:
: 在umat中,
: (我总结三点:
: 1,求试算应力,stress=stress+De*dstran (其中:De为弹性矩阵)
: 2,据应力势函数(屈服函数)求解满足条件的应力,应变,
: 在此我们要注意试算应力与真实应力的关系:sigma_true=Sigma_tri-De*dpstran: d..
: an为塑性应变增量,据此满足屈服条件,F(Sigmaij)=0,求得真实的应力
: 更新应力 stress=stress-De*dpstran
: 3,(与2联合,弹塑性区域的转换)判断是否屈服,
: 4,组集ddsdde(与个人的本构有关)
: ...................
发信人: wjytj (赖子), 信区: FEA
: 1,发现456方向的应变是工程应变
说白了,因为在UMAT中应变是以列向量的形式存储的,而初始刚度DDSDDE的形式为:
λ+μ μ μ 0 0 0
μ λ+μ μ 0 0 0
μ μ λ+μ 0 0 0
0 0 0 μ 0 0
0 0 0 0 μ 0
0 0 0 0 0 μ
所以,应变是工程应变,而如果DDSDDE的形式为(直接用张量表示):
λ+μ μ μ 0 0 0
μ λ+μ μ 0 0 0
μ μ λ+μ 0 0 0
0 0 0 2μ 0 0
0 0 0 0 2μ 0
0 0 0 0 0 2μ
那么,应变就应该是应变张量中的应变了,也就是说,采用工程应变只是为了方便应用而
已,比如,求弹性应变能,可以直接将应力列向量的转置乘以应变列向量,显然,这在编
程中很容易实现。
: 2,全量法可以直接根据更新后的应变求应力,单独求ddsdde矩阵.
同感,应该可以减少不少工作量。
: 3,ddsdde何时更新对于收敛性很有影响.
希望air1能够说得更详细些,比如在开始是可以采用初始刚度,在后来可以采用切线刚度
,可是如何控制,编程如何实现呢?
【 在 air1 的大作中提到: 】
: 我曾经犯的错误
: 1,发现456方向的应变是工程应变
: 2,全量法可以直接根据更新后的应变求应力,单独求ddsdde矩阵.
: 3,ddsdde何时更新对于收敛性很有影响.
: 【 在 Mikejwg (mikejwg) 的大作中提到: 】
: : uptonow一直叫我在水木清华上写一点东西,我一直忙于毕业论文,再说也是困难?..
: : 出现,永远有解不完的问题,就本人体会,写一点东西:
: : 在umat中,
: : (我总结三点:
: : 1,求试算应力,stress=stress+De*dstran (其中:De为弹性矩阵)
: ...................
发信人: wjytj (赖子), 信区: FEA
: 2,全量法可以直接根据更新后的应变求应力,单独求ddsdde矩阵.
在我的本构中,DDSDDE的确定需要知道STRESS中的某些量,那么
请问,按照你的意思和经验,在UMAT中是否可以先得到STRESS(比如,
利用全量法),然后再得到DDSDDE?
如果可以的话,就应该可以减少迭代求解的次数了。
谢谢!!
假定采用mises屈服准则。
1 在调用UMAT之前,ABAQUS传递给UMAT本次增量开始时的应力sigma(0),总应变E,应变增
量delta(E)。
状态变量保存:弹性应变,塑性应变,等效塑性应变。
(请问,状态变量保存的弹性应变+塑性应变是否等于ABAQUS传递给UMAT的总应变???
??)
2,然后在UMAT中利用上述的ABAQUS传递的量和状态变量得到DDSDDE矩阵,然后返回给
ABAQUS,ABAQUS根据delta(sigma)=ddsdde*delta(E),并且得到本次增量结束时的应力
sigma(1)=sigma(0)+delta(sigma)=sigma(0)+ddsdde*delta(E)
3 然后更新本次增量结束时的状态变量:弹性应变,塑性应变,等效塑性应变以供下次调
用UMAT
请问手册上UMAT必须更新应力,可是根据上述我的理解好像是ABAQUS根据UMAT提供的本
次增量的DDSDDE在ABAQUS中更新,请问到底是怎么回事?谢谢!
个人觉得,在Abaqus中更新应力是必须的,而且必须准确,这是你的本构的核心;DDSDDE
则可以是不准确的,比如,你可以保持DDSDDE一直为初始刚度矩阵,当然,这样做的问题
会是收敛速度较慢或者根本不收敛。
在Manual中也说过,DDSDDE不影响结果,前提是,只要能得到结果。
与大家共同讨论。
【 在 uptonow 的大作中提到: 】
: 假定采用mises屈服准则。
: 1 在调用UMAT之前,ABAQUS传递给UMAT本次增量开始时的应力sigma(0),总应变E,应..
: 量delta(E)。
: 状态变量保存:弹性应变,塑性应变,等效塑性应变。
: (请问,状态变量保存的弹性应变+塑性应变是否等于ABAQUS传递给UMAT的总应变?.
: ??)
: 2,然后在UMAT中利用上述的ABAQUS传递的量和状态变量得到DDSDDE矩阵,然后返回?.
: ABAQUS,ABAQUS根据delta(sigma)=ddsdde*delta(E),并且得到本次增量结束时的应..
: sigma(1)=sigma(0)+delta(sigma)=sigma(0)+ddsdde*delta(E)
: 3 然后更新本次增量结束时的状态变量:弹性应变,塑性应变,等效塑性应变以供下..
: ...................
--
期盼了好久的abaqus6.3终于安装成功
寄希望于此来成功import我的.igs模型(unigraphics v18生成的)
但是,结果却不尽如人意,现将我的感受说一下:
1. 6.3在import进模型后,它的形状基本上与真实形状差不多,比6.2更像原始模型
但是,依然是invalid geometry
2. 经过delete invalid geometry后,它确实成了imprecise geometry(意味着你
以划分网格了),但是此时的形状已经面目全非了,删除了太多的东西了,得到的
imprecise geometry 就毫无意义了
3. 如果我用automated repair,它还是invalid geometry
我现在急需把文件import进后来进行下一步工作,
而老板出国前定的任务是11月底出结果
我现在连模型都是个问题了
急急急!!!
请大侠帮忙!!!!!
救救我吧!给个好的建议吧
用PATRAN导入,生成网格后用ABAQUS计算
试试parasolid的文件格式,iges格式先天不足,尤其是表达曲面。
对了俺不知道abaqus支持parasolid文件不?不过一般情况下比igs格式
好点。
State variables
Since the redefinition of field variables in USDFLD is local to the current
increment (field variables are restored to the values
interpolated from the nodal values at the start of each increment),
any history dependence required to update material properties by
using this subroutine must be introduced with user-defined state variables.
The state variables can be updated in USDFLD and then passed into other user
subroutines that can be called at this material point,
such as those listed above. The number of such state variables is
specified with the *DEPVAR option...
要引入材料的非线性,需要usdfld;而要引入历史相关,就得要靠statev帮忙了!
(我的理解不全面,可以自己参考manual中的这一段.版主g上吧,我以后忘了看文摘区
就行了
感谢!
现在弄明白了,原来我的文件里多了几行空行,没想到abaqus的inp文件不允许有空行的。
感谢wjytj的帮助!刚开始用abaqus,太弱了。
【 在 wjytj 的大作中提到: 】
: :*NGEN
: :1,111,11
: :11,121,11
: **此时,12,22,23……110节点并未生成,所以生成12,22以后的节点是没有意义?..
: 看看这样行否?
: *NODE
: 1,0,10
: 11,10,10
: 111,0,0
: 121,10,0
: ...................
: solution-dependent variable
从字面上理解,即为“与解答有关的变量”,它的值与每一增量结束时的变量有关,常用
于UMAT中,即SDV,可以由*DEPDV来定义其个数。
: time-dependent variable
从字面上理解,即为“与时间有关的变量”,常用于定义随时间变化的量如地震荷载等,
,可以由*APPLITUDE来定义。
【 在 octopuszy 的大作中提到: 】
: solution-dependent variable
: time-dependent variable
: 这两种变量有什么差别?
: 谢谢!
【 在 octopuszy 的大作中提到: 】
: UFIELD和USDFLD定义的场量有什么不同
: 另外solution-dependent variable
: 和time-dependent variable
: 有什么不同?
: 谢谢!
标 题: 给大家几点关于UMAT的建议!
今天UMAT调试通过,非常高兴!!
就我的经验来说,给大家几点建议:
1、UMAT一般应该适合各种应力状态,也就是无论NDI=2或3
都应该适用;
2、UMAT中应力和应变列向量的存储方式(下标)是:
11,22,33,12,13,23,而不是11,22,33,12,23,31;
3、ABAQUS第一次计算中传递给UMAT的应变STRAN和应变增量
DSTRAN的值均为零(因为需要得到DDSDDE),此时UMAT中的
应力也应该为零,所以,UMAT中分母有可能为零,这种情况
应该注意!!(我就是这样陷在里面好几天) |
|