1、自定义场变量
Abaqus中场变量可以先简单的理解为每个单元或者每个节点都有一个值的变量,像结果输出中的温度、应力和应变等。有时候我们也需要定义Abaqus中不存在的一些稀奇古怪,有意义或无意义的场变量,比如浓度场,固化度场,损伤度。场变量最场用于定义变化的材料参数,即让材料属性如密度,弹性模量和一个场变量相关,通过更新场变量的值来改变材料参数(这一点和温度相关的材料参数本质上是一致的),而场变量的更新在这两个子程序中均可以完成,UFIELD是用来指定预定义场变量的,USDFLD对积分点的场变量重新定义。UFIELD和USDFLD的本质上的区别是一个是定义在节点上的,一个是定义在单元材料积分点上的,同时这两个又可以相互搭配。
实例通过自定义场变量来定义随时间变化的弹性模量,如图所示,定义弹性常数的时候,number of field variable 设为1,下面两行参数表示Field变量为1时弹性模量为10000,Field变量为2时弹性模量为20000
可通过在step定义中设置:(对于digmat赋予材料属性,可通过UFIELD 逐单元设置材料)
*step,name=step1
*field
eset1, 1
*end step
3、UFIELD
Abaqus中可以通过关键字*Field来定义预定义场变量,对于简单的问题,可以直接通过数据行的形式来定义场变量值,如下小例子,可以通过inp文件直接给定节点场变量的值,在field output中可以选上FV,就可以在后处理中查看场变量云图了,但需要注意的是云图显示的并非节点值而是插值得到的积分点的值。对于较为复杂的场变量,往往没办法直接通过数据行的形式定义,这个时候就需要用到自定义场变量子程序了,即UFIELD子程序。
4、USDFLD
USDFLD子程序,它与UFIELD不同的地方是,它是对积分点的场变量进行重新定义。通过initial condition 或者*field定义的预定义场变量是定义在节点上的,在调用USDFLD之前,积分点处的场变量值是通过节点处的值插值得到的(插值方法和温度场插值一样),在调用USDFLD后,积分点处的场变量被重新定义
5、USDFLD和DFIELD联合使用
我们可以发现,abaqus是先调用UFIELD再调用USDFLD的, 由于材料参数是用在材料积分点上的,因而场变量相关的材料参数,依赖积分点的场变量,而不是节点的场变量,也就当同时通过UFIELD和USDFLD来定义场变量时,实际是根据USDFLD来更新材料参数了。下图说明了UFIELD和USDFLD调用的情况,USDFLD调用于增量步开始,UFIELD调用于增量步结束
总结
UFIELD是指定预定义节点场变量的、USDFLD是用来重新定义材料积分点的场变量,当没有用USDFLD定义材料积分点的场变量时,会通过节点场变量插值得到。当改变材料积分点场变量时,节点值不会改变。
Recent Comments