You used the in-place form but created a new array instead of mutating.
function heatfft!(du,uhat,params,t)
du .= -params[2]^2*(params[1].^2).*uhat;
end
You used the in-place form but created a new array instead of mutating.
function heatfft!(du,uhat,params,t)
du .= -params[2]^2*(params[1].^2).*uhat;
end