今天要介绍的子程序是ufield,主要是用来定义一些我们希望在求解过程中使用或者需要实时在分析过程中监测某个变量,这个时候就可以考虑到这个子程序,它和usdfld有相似之处,后续我介绍这个子程序的时候再说下它们之间的区别与用法。



提供了两种不同的方法来更新场变量。
单独更新变量
默认情况下,在用户子程序 UFIELD 中一次只能更新一个场变量。在这种情况下,每当规定的场变量定义中列出的节点需要场变量的当前值时,将调用用户子 例程 。该方法只能用于场变量相互独立的情况。
同步更新变量
对于场变量相互依赖的情况,可以在用户子程序 UFIELD 中同时更新一个点上的多个(可能是所有)场变量。在这种情况下,必须指定在一个点上同时更新的场变量的数量,并且每次需要当前场变量值时都会调用用户子程序。
SUBROUTINE UFIELD(FIELD,KFIELD,NSECPT,KSTEP,KINC,TIME,NODE, 1 COORDS,TEMP,DTEMP,NFIELD) C INCLUDE 'ABA_PARAM.INC' C DIMENSION FIELD(NSECPT,NFIELD), TIME(2), COORDS(3), 1 TEMP(NSECPT), DTEMP(NSECPT) C user coding to define FIELD RETURN END要定义的变量
FIELD(NSECPT,NFIELD)
节点号 NODE 处的预定义场变量值数组。当一次只更新一个场变量时,只需要返回指定场变量的值(见下面的 KFIELD)。在这种情况下,NFIELD 被传递到值为 1 的用户子例程 UFIELD,因此 FIELD 的尺寸为 FIELD(NSECPT,1)。当同时更新所有场变量时,必须返回该点指定数量的场变量的值。在这种情况下,FIELD 的维度为 FIELD(NSECPT,NFIELD),其中 NFIELD 是指定的场变量数,KFIELD 没有意义。
传递 信息 的变量
KFIELD 用户指定的场变量号。此变量仅在一次更新单个场变量时才有意义。
NFIELD 用户指定的要更新的场变量号。该变量只有在同时更新多个场变量时才有意义。
NSECPT 模型中任何节点所需的最大截面值数目。当接触模型中的某些非梁或非壳节点仅指定一个场变量时,NSECPT 可以为 2。
KSTEP
分析步号
KINC
增量步号
TIME(1)
分析步时间的当前值。
TIME(2)
当前总时间。
NODE
节点号
COORDS
包含此节点坐标的数组。如果在步骤中考虑了 几何非线性 ,则这些是当前坐标;否则,数组包含节点的原始坐标。
TEMP(NSECPT)
节点的当前温度。如果同时使用用户子程序 UTEMP 和 UFIELD,则用户子程序 UTEMP 在用户子程序 UFIELD 之前处理。
DTEMP(NSECPT)
节点处的温度增量。

案例主要是测试验证温度和场变量值是否正确传递到结构,较为简单,主要是可以用来参考学习,公众号回复ufield子程序即可获取。获取更多资料和学习交流欢迎大家关注公众号冬生亦东生,分享旨在本人复习和交流
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删