Thermal behavior not available in CalculiX can be coded by the user in subroutine ``umatht.f''. This also applies to any behavior of the thermally equivalent models such as shallow water theory etc. For instance, the thickness of the oil film in lubrication is part of the equivalent conductivity coefficients. A mechanical part can be coupled with the oil region by incorporating the effect of the motion of the mechanical part on the oil film thickness in a thermal material user-subroutine. The header and input/output variables of the umatht routine are as follows:
subroutine umatht(u,dudt,dudg,flux,dfdt,dfdg, & statev,temp,dtemp,dtemdx,time,dtime,predef,dpred, & cmname,ntgrd,nstatv,props,nprops,coords,pnewdt, & noel,npt,layer,kspt,kstep,kinc) ! ! heat transfer material subroutine ! ! INPUT: ! ! statev(nstatv) internal state variables at the start ! of the increment ! temp temperature at the start of the increment ! dtemp increment of temperature ! dtemdx(ntgrd) current values of the spatial gradients of the ! temperature ! time(1) step time at the beginning of the increment ! time(2) total time at the beginning of the increment ! dtime time increment ! predef not used ! dpred not used ! cmname material name ! ntgrd number of spatial gradients of temperature ! nstatv number of internal state variables as defined ! on the *DEPVAR card ! props(nprops) user defined constants defined by the keyword ! card *USER MATERIAL,TYPE=THERMAL ! nprops number of user defined constants, as specified ! on the *USER MATERIAL,TYPE=THERMAL card ! coords global coordinates of the integration point ! pnewd not used ! noel element number ! npt integration point number ! layer not used ! kspt not used ! kstep not used ! kinc not used ! ! OUTPUT: ! ! u not used ! dudt not used ! dudg(ntgrd) not used ! flux(ntgrd) heat flux at the end of the increment ! dfdt(ntgrd) not used ! dfdg(ntgrd,ntgrd) variation of the heat flux with respect to the ! spatial temperature gradient ! statev(nstatv) internal state variables at the end of the ! increment !