ProductsAbaqus/Standard Use of subroutine UMATHT with coupled temperature-displacement and coupled thermal-electrical-structural elementsUser subroutine UMATHT should be used only with reduced-integration or modified coupled temperature-displacement and coupled thermal-electrical-structural elements if the mechanical and thermal fields are not coupled through plastic dissipation. No such restriction exists with fully integrated coupled temperature-displacement and coupled thermal-electrical-structural elements. User subroutine interfaceSUBROUTINE 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 Variables to be defined
Variables that can be updated
Variables passed in for information
Example: Using more than one user-defined thermal material modelTo use more than one user-defined thermal material model, the variable CMNAME can be tested for different material names inside user subroutine UMATHT, as illustrated below: 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 IF UMATHT_MAT1 and UMATHT_MAT2 are the actual user material subroutines containing the constitutive material models for each material MAT1 and MAT2, respectively. Subroutine UMATHT merely acts as a directory here. The argument list can be the same as that used in subroutine UMATHT. Example: Uncoupled heat transferAs a simple example of the coding of user subroutine UMATHT, consider uncoupled heat transfer analysis in a material. The equations for this case are developed here, and the corresponding UMATHT is given. This problem can also be solved by specifying thermal conductivity, specific heat, density, and internal heat generation directly. First, the equations for an uncoupled heat transfer analysis are outlined. The basic energy balance is where V is the volume of solid material with surface area S, is the density of the material, is the material time rate of the internal thermal energy, q is the heat flux per unit area of the body flowing into the body, and r is the heat supplied externally into the body per unit volume. A heat flux vector is defined such that where is the unit outward normal to the surface S. Introducing the above relation into the energy balance equation and using the divergence theorem, the following relation is obtained: The corresponding weak form is given by where is the temperature gradient and is an arbitrary variational field satisfying the essential boundary conditions. Introducing the backward difference integration algorithm: the weak form of the energy balance equation becomes This nonlinear system is solved using Newton's method. In the above equations the thermal constitutive behavior of the material is given by and where are state variables. The Jacobian for Newton's method is given by (after dropping the subscripts on U) The thermal constitutive behavior for this example is now defined. We assume a constant specific heat for the material. The heat conduction in the material is assumed to be governed by Fourier's law. The internal thermal energy per unit mass is defined as with where c is the specific heat of the material and Fourier's law for heat conduction is given as where is the thermal conductivity matrix and is position, so that and The assumption of conductivity without any temperature dependence implies that No state variables are needed for this material, so the allocation of space for them is not necessary. A thermal user material definition can be used to read in the two constants for our simple case, namely the specific heat, c, and the coefficient of thermal conductivity, k, so that 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 |