Moving heat source simulated by using multiple load steps. *** UPDATE**** For the benefit of others, here is the APDL code I wrote for this simulation (for simulation of friction stir welding): /prep7 ! define constants for the analysis width=0.08 length=0.2 thickness=0.0025 film_coeff=30 ambient_temp=30 alpha=1 beta=0.95 pi=3.141 mu=0.4 normal_force=8000 shoulder_radius=0.010 feed_rate=0.001 step_length=0.004 csnum=1004 ! select element type et,1,solid278 ! select material properties mpread,'al-2024-linear','mp','c:\users\aakash\' ! create solid model blc4,0,0,width,length,-thickness ! mesh ! define element size lesize,4,thickness, , ,-0.4, , , ,1 lesize,2,thickness, , ,-0.4, , , ,1 lesize,5,thickness, , ,-0.4, , , ,1 lesize,7,thickness, , ,-0.4, , , ,1 lesize,1,thickness, , , , , , ,1 lesize,3,thickness, , , , , , ,1 lesize,6,thickness, , , , , , ,1 lesize,8,thickness, , , , , , ,1 lesize,9,thickness/2, , , , , , ,1 lesize,10,thickness/2, , , , , , ,1 lesize,11,thickness/2, , , , , , ,1 lesize,12,thickness/2, , , , , , ,1 mshape,0,3d ! use hexahedral 3d elements mshkey,1 ! use mapped mesh vmesh,all /sol antype,4 ! setup transient analysis trnopt,full ! Full solution method lumpm,0 ! no lumped mass approximation ! specify initial temperature setting tunif,ambient_temp, hflux_val=(alpha*beta*pi*mu*normal_force*shoulder_radius/45)/(pi*shoulder_radius*shoulder_radius) num_load_steps=nint((length-2*shoulder_radius)/step_length) time_step_size=step_length/feed_rate ! start applying loads time_now=0 *do,i,0,(num_load_steps-1) nsel,all ! select all nodes nsel,s,ext ! select all exterior nodes sf,all,conv,film_coeff,ambient_temp ! apply convection loads on all external nodes first nsel,all ! reselect all nodes nsel,s,loc,z,0 ! select nodes on top surface local,csnum,cylin,(width/2),shoulder_radius+i*step_length,0 ! setup a local coordinate system nsel,r,loc,x,0,shoulder_radius ! re-select all nodes from 0 to shoulder_radius distance sfdele,all,conv ! delete all convection loads from these nodes sf,all,hflux,hflux_val ! instead, apply hflux loads on these nodes ! specify ramped loading and sub-step settings kbc,1 ! ramped loading time_now=time_now+time_step_size time,time_now ! specify time at the end of load step autots,on ! use automatic time-stepping deltim, time_step_size/5, time_step_size/10, time_step_size/2, on lswrite,i+1 ! write load step file csdele,all ! delete previous local coordinate system nsel,all ! select all nodes sfdele,all,all ! delete all surface loads *enddo lssolve,1,num_load_steps