今天要介绍的子程序是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)
节点处的温度增量。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删