子程序UMDFLUX
· 可用于描述是位置、时间、温度等函数的多个移动或静止热通量;
· 可以使用和更新单元解相关的变量;
· 每个单元可以调用一次,来描述单元内容开始点和结束点之间的移动热源;
· 施加热通量为点移动热源,单位是能量单位(JT-1);
· 在用户子程序外,不需要体积积分;
1. 与子程序DFLUX的区别
子程序DFLUX
· 可以用来在热传导或质量扩散分析中,定义一个非均匀分布的热通量,可以是位置,时间,温度,单元号,积分点号等的函数;
· 对于分析中定义了基于单元或基于表面(仅仅热传导)的非均匀分布热通量,每个热通量积分点调用;
· 忽略任何可能出现的与非均匀分布通量定义相关的幅值参考;
· 将节点作为一阶传热单元、一阶温度-位移耦合单元、一阶热-电-结构耦合单元和质量扩散单元的通量积分点。
SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,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
2. 子程序接口
subroutine umdflux(
* jFlags, amplitude, noel, nElemNodes, iElemNodes,
* mcrd, coordNodes, uNodes, kstep, kinc, time, dt, jlTyp,
* temp, npredef, predef, nsvars, svars, sol, dsol,
* nIntp, volElm, volInt,
* nHeatEvents, flux, dfluxdT, csiStart, csiEnd)
C
include 'aba_param.inc'
C
dimension jFlags(2), iElemNodes(nElemNodes),
* coordNodes(mcrd,nElemNodes), uNodes(mcrd,nElemNodes),
* volInt(nIntp), time(2), dt(2),
* temp(2,nElemNodes), predef(2,npredef,nElemNodes),
* svars(nsvars,2), sol(nElemNodes), dsol(nElemNodes),
* flux(nHeatEvents), dfluxdT(nHeatEvents),
* csiStart(3,nHeatEvents), csiEnd(3,nHeatEvents)
user coding to define nHeatEvents, flux, dfluxdT, csiStart, csiEnd,
and possibly update dt, svars
return
end
3. 必须定义的变量
nHeatEvents
该单元中移动或静止热事件(热通量)的总数。
flux(nHeatEvents)
流进单元里的热通量的大小(单位JT-1)。
dfluxdT(nHeatEvents)
参考于温度,通量的改变率。
csiStart(3,nHeatEvents)
移动通量起始点的等参坐标。
csiEnd(3,nHeatEvents)
移动通量终点的等参坐标。如果通量是静止的,端点的坐标与起始点的坐标相同。(csiStart=csiEnd)
4. 可以被更新的变量
dt(2)
新的建议时间增量(可修改);为了使用分析时间增量,请保持其不变。
svars(nsvars,1)
一个数组,用于在增量结束时定义与单元解相关的变量的新值。除非它们被其他用户子程序更新(在这种情况下,更新的值将被传递进来),否则它们将作为增量的开始部分的值传递进来。数组的大小是nsvars。
5. 作为传递信息的变量
jFlags
一个数组,其中包含定义当前解过程和分析类型的标志。
jFlags(1):定义过程类型。
jFlags(2)=0:小位移分析。
jFlags(2)=1:大位移分析(在分析步中包含非线性几何的影响)。
Amplitude
为通量参考的幅值曲线的当前值(如果没有振幅参考,设置为统一)。*DFLUX中定义的幅值曲线。
Noel
用户分派的单元数量
nElemNodes
单元节点的数量
iElemNodes(nElemNodes)
包含用户分配的单元节点编号的数组
Mcrd
任意节点所需坐标的用户定义最大数目与用户单元的最大活动自由度值之间的最大值,该值小于或等于3。例如,如果指定坐标的最大数目为1,用户单元的活动自由度为2、3和6,那么mcrd将为3。如果指定坐标的最大数目为2,用户单元的活动自由度为11和12,那么mcrd将为2。
coordNodes(mcrd,nElemNodes)
包含单元节点坐标的数组。
uNodes(mcrd,nElemNodes)
包含单元节点位移的数组。在纯传热分析中,位移被设为坐标。
Kstep
现在的分析步号
Kinc
现在的增量步号
Time(1)
分析步时间此刻的值
Time(2)
总时间此刻的值
Dt(1)
时间增量步
jlTyp
标识被UMDFLUX调用的移动通量类型;只有集中的热通量类型被支持(jLTyp=1)
temp(2,nElemNodes)
一个数组,包含单元节点上预定义的温度值对。一对中的第一个值temp(1,nElemNodes)对应于增量结束时的值;第二个值temp(2,nElemNodes)对应于温度的增量。
Npredef
场变量的数量。
predef(2,npredef,nElemNodes)
在单元节点上包含预定义场变量值对的数组。一对中的第一个值predef(1,npredef,nElemNodes)对应于增量末尾的值;第二个值predef(2,npredef,nElemNodes)对应于场变量的增量。
Nsvars
单元解相关变量的数量。
svars(nsvars,2)
在增量开始处包含与单元解相关变量的值的数组。
sol(nElemNodes)
增量开始时的一组解变量(传热分析中的温度)。
dsol(nElemNodes)
解变量(传热分析中的温度)增量的估计值数组。这些值总是被设置为零。
nIntp
对于这个单元类型,积分点的总数。
volElm
单元的总体积。
volInt(nIntp)
积分点体积。