UMATHT子程序 | 您所在的位置:网站首页 › abaqus热电 › UMATHT子程序 |
UMATHT子程序
前言使用带有耦合温度-位移和耦合热-电-结构元件的子程序用户子程序接口要定义的变量可更新的变量为信息传入的变量示例:使用多个用户定义的热材料模型示例:非耦合传热
前言
用户子程序 UMATHT: 可用于定义材料的热本构行为以及传热过程中的内部生热; 将在材料定义包括用户定义的热材料行为的元素的所有材料计算点处调用; 可与关于传热分析程序中讨论的程序一起使用 ; 可以使用依赖于解决方案的状态变量; 必须定义每单位质量的内能及其相对于温度和温度空间梯度的变化; 必须定义热通量矢量及其相对于温度和温度梯度的变化; 必须在增量结束时将依赖于解决方案的状态变量更新为它们的值; 可以与用户子程序USDFLD结合使用,在 传入之前重新定义任何字段变量;和在用户定义的热材料行为中进一步描述 。 目录 前言使用带有耦合温度-位移和耦合热-电-结构元件的子程序用户子程序接口要定义的变量可更新的变量为信息传入的变量示例:使用多个用户定义的热材料模型示例:非耦合传热 使用带有耦合温度-位移和耦合热-电-结构元件的子程序使用带有耦合温度-位移和耦合热-电-结构元件的子程序UMATHT 如果机械和热场不是通过塑性耗散耦合,则用户子程序 UMATHT应仅用于减少积分或修改的耦合温度位移和耦合热电结构元件。完全集成的温度-位移耦合和热-电-结构耦合元件不存在此类限制。 用户子程序接口 User subroutine interface SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG, 1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED, 2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT, 3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD), 1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3) user coding to define U,DUDT,DUDG,FLUX,DFDT,DFDG, and possibly update STATEV, PNEWDT RETURN END 要定义的变量U -增量结束时每单位质量的内部热能U。此变量作为增量开始时的值传入,并且必须在增量结束时更新为其值。 DUDT -每单位质量内热能随温度的变化, ∂U/∂θ, 在增量结束时计算。 DUDG(NTGRD) -每单位质量的内部热能随温度空间梯度的变化, ∂U/∂(∂θ/∂X), 在增量结束时。该数组的大小取决于如下定义的NTGRD值 。该项在经典传热分析中通常为零。 FLUX(NTGRD) -热通量矢量,f, 在增量结束时。此变量与增量开始时的值一起传入,并且必须更新为增量结束时的值。 DFDT(NTGRD) -热通量矢量相对于温度的变化, ∂F/∂θ, 在增量结束时计算。 DFDG(NTGRD,NTGRD) -热通量矢量相对于温度空间梯度的变化, ∂F/∂(∂θ/∂X), 在增量结束时。该数组的大小取决于如下定义的NTGRD值 。 可更新的变量STATEV(NSTATV) 包含依赖于解决方案的状态变量的数组。 在非耦合传热分析中,STATEV在增量开始时与这些变量的值一起传递到 UMATHT。但是,在用户子程序USDFLD中对STATEV所做的 任何更改都将包含在传递给UMATHT的值中 ,因为 USDFLD在UMATHT之前被调用 。此外,如果 UMATHT用于完全耦合的温度-位移或耦合的热-电-结构分析和用户子程序 CREEP、用户子程序 UEXPAN、用户子程序 UMAT或用户子程序 UTRS用于定义材料的机械行为,这些程序在此程序之前调用;因此,任何更新 STATEV在完成 蠕变, UEXPAN, UMAT,或 非编码区将被包括在传递到值 UMATHT。 在所有情况下,STATEV都应该作为当前增量结束时状态变量的值从UMATHT传回 。 PNEWDT 建议的新时间增量与正在使用的时间增量的比率(DTIME,见下文)。此变量允许您为Abaqus/Standard 中的自动时间增量算法提供输入 (如果选择了自动时间增量)。 在每次调用UMATHT之前,PNEWDT被设置为一个较大的值 。 如果PNEWDT被重新定义为小于 1.0,则 Abaqus/Standard 必须放弃时间增量并以较小的时间增量再次尝试。提供给自动时间积分算法的建议新时间增量是PNEWDT × DTIME,其中使用的 PNEWDT是所有调用用户子程序的最小值,允许为该迭代重新定义 PNEWDT。 如果对于本次迭代对用户子程序的所有调用,PNEWDT被赋予一个大于 1.0 的值,并且增量在本次迭代中收敛,则Abaqus/Standard 可能会增加时间增量。提供给自动时间积分算法的建议新时间增量是 PNEWDT × DTIME,其中使用的PNEWDT是此迭代对用户子程序的所有调用的最小值。 如果分析过程中没有选择自动时间增量,值PNEWDT是大于1.0将被忽略和的值PNEWDT是小于1.0会导致作业终止。 为信息传入的变量TEMP -增量开始时的温度。 DTEMP -温度增量 DTEMDX(NTGRD) -温度空间梯度的当前值∂θ/∂x TIME(1) -当前增量开始时的步时间值。 TIME(2) -当前增量开始时的总时间值。 DTIME -时间增量 PREDEF -增量开始时的预定义字段变量的内插值数组,基于在节点处读入的值。 DPRED -预定义字段变量的增量数组。 CMNAME -用户定义的材料名称,左对齐。 NTGRD -温度空间梯度的数量 NSTATV -与此材料类型相关的解相关状态变量的数量(如分配空间中所述定义 )。 PROPS(NPROPS) -用户指定的与此用户材料关联的材料常数数组。 NPROPS -与此用户材料关联的用户定义的材料常数数量。 COORDS -包含该点坐标的数组。如果在步骤中考虑了几何非线性,这些是完全耦合的温度-位移或耦合的热-电-结构分析中的当前坐标(请参阅 定义分析);否则,该数组包含该点的原始坐标。 NOEL -元素编号。 NPT -积分点编号。 LAYER -层数(对于复合壳和分层实体)。 KSPT -当前层内的截面点编号。 KSTEP -步数。 KINC -递增数。 示例:使用多个用户定义的热材料模型要使用一个以上的用户定义的热材料模型,可变 CMNAME可以为用户子程序内的不同材料的名称进行测试 UMATHT,如下图所示: IF (CMNAME(1:4) .EQ. 'MAT1') THEN CALL UMATHT_MAT1(argument_list) ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THEN CALL UMATHT_MAT2(argument_list) END IFUMATHT_MAT1 和 UMATHT_MAT2 是包含每种材料的本构材料模型的实际用户材料子程序 MAT1 和 MAT2, 分别。子程序 UMATHT在这里只是作为一个目录。参数列表可以与子程序UMATHT中使用的相同 。 示例:非耦合传热作为用户子程序UMATHT编码的一个简单示例 ,考虑材料中的非耦合传热分析。这里开发了这种情况的方程,并给出了相应的 UMATHT。这个问题也可以通过直接指定热导率、比热、密度和内部生热来解决。 首先,概述了非耦合传热分析的方程。 基本的能量平衡是 热通量矢量 F 被定义为 热用户材料定义可用于读取我们简单情况下的两个常数,即比热c和导热系数k,以便 PROPS(1)=k, PROPS(2)=c. SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG, 1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED, 2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT, 3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD), 1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3) C COND = PROPS(1) SPECHT = PROPS(2) C DUDT = SPECHT DU = DUDT*DTEMP U = U+DU C DO I=1, NTGRD FLUX(I) = −COND*DTEMDX(I) DFDG(I,I) = −COND END DO C RETURN END |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |