yejet 发表于 2006-8-19 11:05

如何在计算中修改材料特性

If you like to use USDFLD, in the subroutine, you can get step number and just use a if to
determine the field variable value due to the step number. Say, step 1 is 1 and step 2 field
variable become 2. In the material definition, just define material properties as a function of
your field variables. Here I use elastic as example. I'm not sure about the grammar since I do
not have manual at hand. You need to check them. something like this:
*elastic, dependencies
2e5,0.3,,1
1e5,0.3,,2

Here I assume your material does not have any temperature dependency and you need to make
sure field variable is the 4th value. Then, in step 1, you have 2e5 as Young's modulus and in step
you have 1e5.



yogayoga,我还是有问题,我修改材料特性后,计算不收敛。请您帮我看看。
在inp文件中,按你讲的使用了下面语句定义材料特性:
*elastic, dependencies=1
15e7,0.3,,1
2e10,0.2,,2

然后采用usdfld子程序,现将子程序附在下面请您帮我检查检查,并提出宝贵意见,谢谢。

      SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
   1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
   2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3 FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
   1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
c
c
      FIELD(1)=time(2)
cprint*,field(1)
c
c
      RETURN
      END


First, if you want a sudden change, you can not use total time. Abaqus will linearly interpolate
all the value. If that's what you want, OK. If you want a sudden change at step two, use kstep
instead.
Second, consider the real physical situation: you got equilibrium before you changed material
properties. After you changed material properties, you naturally lose it. Stress need to be
redistributed and changed to get force balance. This is the reason for non convergence.

You have several way to deal with it: if you have static problem and rate effect is minimal, you
can keep the bc and let the model balance itself. The other way is to decrease the increment
length. You can also try damping (you can just apply stabilize directly) or adding some viscoplastic
or plastic effect. Dynamic analysis will also help to do the trick. Basicly, the method normally you
deal with unstable problem.


改变材料的参数甚至模型,可以通过以下的办法:
(1)在不同的分析之间传递结果
细节请见:ABAQUS Analysis User's Manual /7.7.1 Transferring results between ABAQUS
analysis products: overview
该方法的主要缺点就是建立模型时不能使用多个parts或assembly。
但在某些情况下非常方便,如想在第一步变形的基础上做后续分析。
(2)使用场变量,然后定义材料时指明参数依赖于该变量
如果场变量(不一定要有物理意义)很明确,比如目前讨论的问题,可以定义一个变量,在
step1的时候为1.,step2为2.(可以随便定义了):
*STEP,name=step1
*STATIC......
*FIELD, VARIABLE=1
NALL, 1.
*END STEP
*STEP,name=step2
*STATIC......
*FIELD, VARIABLE=1
NALL, 2.
*END STEP

NALL是包含所有节点的集合,可以根据需要改变成欲改变参数的节点集。
然后再定义材料时,指明某个参数依赖于该场变量:
*MATERIAL
*ELASTIC, DEPENDENCIES=1
200.E9, 0.3, , 1.
180.E9, 0.3, , 2.
这样计算到step1时,所有节点的场变量1为1.0,abaqus由此查表确定模量为200.E9,到step2,
因为场变量变为2.,所以模量为180.E9。

如果场变量连续变化或依赖于其他计算结果,如温度,应变等,可以使用USDFLD子程序(25.2.38
USDFLD
User subroutine to redefine field variables at a material point.
)来连续改变该变量。在定义材料时同样只需要指定一个参数随该变量变化的表,ABAQUS在计算
时自动插值计算材料参数。

对你的情况,不需要使用该子程序。



If you like to use USDFLD, in the subroutine, you can get step number and just use a if
to determine the field variable value due to the step number. Say, step 1 is 1 and step
2 field variable become 2. In the material definition, just define material properties
as a function of your field variables. Here I use elastic as example. I'm not sure about
the grammar since I do not have manual at hand. You need to check them. something like
this:
*elastic, dependencies
2e5,0.3,,1
1e5,0.3,,2

Here I assume your material does not have any temperature dependency and you need to make
sure field variable is the 4th value. Then, in step 1, you have 2e5 as Young's modulus
and in step you have 1e5.

t_y2004 发表于 2006-10-29 10:37

这个是个好东东!

hero2005 发表于 2007-3-22 21:00

回复 #1 yejet 的帖子

FIELD(1)=time(2)    ??
如果采用这个的话,那么在STEP分析步内的×FIELD命令中,的参数应该写多少呢?

*STEP,name=step2
*STATIC......
*FIELD, VARIABLE=1
NALL, 2 :victory: .
*END STEP

liyongjin 发表于 2007-5-17 21:07

求教

运用场变量,在不同的STEP中改变材料。在改变的材料中,需要含有子程序,如何将这个子程序也加入到新的STEP中。

chensteven 发表于 2008-7-31 12:29

麻煩死了 !! 在LS_DYNA中,就用RESTART功能就能夠任意更改模型即時的物理狀況! 還有跟本就不用去動到inp檔! 在視窗就能完成了!! 一分鐘搞定!!

zhangmeng 发表于 2008-7-31 16:45

abaqus也可以,这里说的是连续的材料参数变化,比如延曲线变化
这也是最复杂的时变材料
页: [1]
查看完整版本: 如何在计算中修改材料特性