1! 2! CalculiX - A 3-dimensional finite element program 3! Copyright (C) 1998-2021 Guido Dhondt 4! 5! This program is free software; you can redistribute it and/or 6! modify it under the terms of the GNU General Public License as 7! published by the Free Software Foundation(version 2); 8! 9! 10! This program is distributed in the hope that it will be useful, 11! but WITHOUT ANY WARRANTY; without even the implied warranty of 12! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13! GNU General Public License for more details. 14! 15! You should have received a copy of the GNU General Public License 16! along with this program; if not, write to the Free Software 17! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18! 19 subroutine umatht(u,dudt,dudg,flux,dfdt,dfdg, 20 & statev,temp,dtemp,dtemdx,time,dtime,predef,dpred, 21 & cmname,ntgrd,nstatv,props,nprops,coords,pnewdt, 22 & noel,npt,layer,kspt,kstep,kinc,vold,co,lakonl,konl, 23 & ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,mi) 24! 25! heat transfer material subroutine 26! 27! INPUT: 28! 29! statev(nstatv) internal state variables at the start 30! of the increment 31! temp temperature at the start of the increment 32! dtemp increment of temperature 33! dtemdx(ntgrd) current values of the spatial gradients of the 34! temperature 35! time(1) step time at the beginning of the increment 36! time(2) total time at the beginning of the increment 37! dtime time increment 38! predef not used 39! dpred not used 40! cmname material name 41! ntgrd number of spatial gradients of temperature 42! nstatv number of internal state variables as defined 43! on the *DEPVAR card 44! props(nprops) user defined constants defined by the keyword 45! card *USER MATERIAL,TYPE=THERMAL 46! nprops number of user defined constants, as specified 47! on the *USER MATERIAL,TYPE=THERMAL card 48! coords global coordinates of the integration point 49! pnewd not used 50! noel element number 51! npt integration point number 52! layer not used 53! kspt not used 54! kstep not used 55! kinc not used 56! vold(0..4,1..nk) solution field in all nodes 57! 0: temperature 58! 1: displacement in global x-direction 59! 2: displacement in global y-direction 60! 3: displacement in global z-direction 61! 4: static pressure 62! co(3,1..nk) coordinates of all nodes 63! 1: coordinate in global x-direction 64! 2: coordinate in global y-direction 65! 3: coordinate in global z-direction 66! lakonl element label 67! konl(1..20) nodes belonging to the element 68! ipompc(1..nmpc)) ipompc(i) points to the first term of 69! MPC i in field nodempc 70! nodempc(1,*) node number of a MPC term 71! nodempc(2,*) coordinate direction of a MPC term 72! nodempc(3,*) if not 0: points towards the next term 73! of the MPC in field nodempc 74! if 0: MPC definition is finished 75! coefmpc(*) coefficient of a MPC term 76! nmpc number of MPC's 77! ikmpc(1..nmpc) ordered global degrees of freedom of the MPC's 78! the global degree of freedom is 79! 8*(node-1)+direction of the dependent term of 80! the MPC (direction = 0: temperature; 81! 1-3: displacements; 4: static pressure; 82! 5-7: rotations) 83! ilmpc(1..nmpc) ilmpc(i) is the MPC number corresponding 84! to the reference number in ikmpc(i) 85! mi(1) max # of integration points per element (max 86! over all elements) 87! mi(2) max degree of freedomm per node (max over all 88! nodes) in fields like v(0:mi(2))... 89! 90! OUTPUT: 91! 92! u not used 93! dudt not used 94! dudg(ntgrd) not used 95! flux(ntgrd) heat flux at the end of the increment 96! dfdt(ntgrd) not used 97! dfdg(ntgrd,ntgrd) variation of the heat flux with respect to the 98! spatial temperature gradient 99! statev(nstatv) internal state variables at the end of the 100! increment 101! 102 implicit none 103! 104 character*8 lakonl 105 character*80 cmname 106! 107 integer ntgrd,nstatv,nprops,noel,npt,layer,kspt,kstep,kinc, 108 & konl(20),ipompc(*),nodempc(3,*),nmpc,ikmpc(*),ilmpc(*),mi(*) 109! 110 real*8 u,dudt,dudg(ntgrd),flux(ntgrd),dfdt(ntgrd), 111 & statev(nstatv),pnewdt,temp,dtemp,dtemdx(ntgrd),time(2),dtime, 112 & predef,dpred,props(nprops),coords(3),dfdg(ntgrd,ntgrd), 113 & vold(0:mi(2),*),co(3,*),coefmpc(*) 114! 115! insert here your code 116! 117 return 118 end 119