本来以为fortran是abaqus的内置计算语言,不过从文档的定义来看,这类函数都是被定义好的接口,只是可以接受fortran语言或C++定义的函数,作为变量
DFLUX函数格式(只有中间的user coding处可以自由改变,定义变量FLUX(1)和FLUX(2)的输入值)
SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,
1 JLTYP,TEMP,PRESS,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION FLUX(2), TIME(2), COORDS(3)
CHARACTER*80 SNAME
# user coding to define FLUX(1) and FLUX(2)
#(这里可以自由输入数学计算公式)
RETURN
END
可定义变量FLUX(1) and FLUX(2)
FLUX(1)
Magnitude of flux flowing into the model at this point. In heat transfer cases the units are JT−1L−2 for surface fluxes and JT−1L−3 for body flux. In transient heat transfer cases where a nondefault amplitude is used to vary the applied fluxes, the time average flux over the time increment must be defined rather than the value at the end of the time increment. In mass diffusion cases the units are PLT−1 for surface fluxes and PT−1 for body flux.
FLUX(1) will be passed into the routine as the magnitude of the flux specified as part of the element-based or surface-based flux definition. If the magnitude is not defined, FLUX(1) will be passed in as zero.
This flux is not available for output purposes.
flux(1)是此时流入模型的通量的大小,在热传递过程中,单位大小为JT−1L−2(表面热流)、JT−1L−3(体热流)。在瞬态热传递过程中,非默认振幅用于改变施加的热流量,必须定义时间增量上的时间平均流量(即单位时间内的流量),而不是时间增量结束时的流量值,在质量扩散的情况下的单位是表面通量的PLT-1和体通量的PT-1
flux(1)将基于元素或基于表面的通量定义的部分即指定通量的大小传递到程序中。如果不定义量值,flux(1)将作为零传递
这个flux不可在输出中使用
FLUX(2)
In heat transfer cases d q d θ \frac{\,dq}{\,d\theta} dθdq, the rate of change of the flux with respect to the temperature at this point. The units are J T − 1 L − 2