【在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的维数,*depvar20,看来我的错误不在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等那样输出,只能在UV ARM中定义,但同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不知谁还有更好的方法。