Similarity Transform:

Manipulate[Plot[a*Sech[a*x]*Cos[a^2*t]^2,{x,-5,5},PlotRange->{0,10}],{t,0,10},{a,1,10}]

Green’s functions for the heat equation:

heatfund[x_,t_]=(1/(2*Sqrt[Pi*t]))*Exp[-(x^2)/(4*t)]

greensline[x_,y_,t_]=heatfund[x-y,t]

greensdirichlet[x_,y_,t_]=heatfund[x-y,t]-heatfund[x+y,t]

greensneumann[x_,y_,t_]=heatfund[x-y,t]+heatfund[x+y,t]

greensdirichletderiv[x_,y_,t_]=D[greensdirichlet[x,y,t],y]

The Heat Equation IVP:

expheat[x_,t_]=(∫_(-∞)^∞)greensline[x,y,t]*Exp[-y]\[DifferentialD]y

Manipulate[Plot[Exp[t-x],{x,-50,50},PlotRange->{0,100}],{t,0,20}]

stepheat[x_,t_]=(∫_(-∞)^∞)greensline[x,y,t]*UnitStep[y]\[DifferentialD]y

Manipulate[Plot[stepheat[x,t],{x,-50,50},PlotRange->{0,1}],{t,0.1,1000}]

The Heat Equation IBVP (Dirichlet BCs):

xxheat[x_,t_]=(∫_0^∞)greensdirichlet[x,y,t]*y^2\[DifferentialD]y

Manipulate[Plot[xxheat[x,t],{x,0,35},PlotRange->{0,2500}],{t,0.1,1000}]

stepheatdbc[x_,t_]=(∫_0^∞)greensdirichlet[x,y,t]*UnitStep[y-10]\[DifferentialD]y

Manipulate[Plot[stepheatdbc[x,t],{x,0,20},PlotRange->{0,1.1}],{t,0.0001,5000,0.5}]

stepheatdbc2[x_,t_]=(∫_0^∞)greensdirichlet[x,y,t]*UnitStep[y-10]*(1-UnitStep[y-20])\[DifferentialD]y

Manipulate[Plot[stepheatdbc2[x,t],{x,0,50},PlotRange->{0,1}],{t,0.0001,1000,0.2}]

The Heat Equation IBVP (Neumann BCs):

xxheatn[x_,t_]=(∫_0^∞)greensneumann[x,y,t]*y^2\[DifferentialD]y

Manipulate[Plot[xxheatn[x,t],{x,0,35},PlotRange->{0,2500}],{t,0.1,1000}]

stepheatnbc[x_,t_]=(∫_0^∞)greensneumann[x,y,t]*UnitStep[y-10]\[DifferentialD]y

Manipulate[Plot[stepheatnbc[x,t],{x,0,20},PlotRange->{0,1.1}],{t,0.0001,5000,0.5}]

stepheatnbc2[x_,t_]=(∫_0^∞)greensneumann[x,y,t]*UnitStep[y-10]*(1-UnitStep[y-20])\[DifferentialD]y

Manipulate[Plot[stepheatnbc2[x,t],{x,0,50},PlotRange->{0,1}],{t,0.0001,1000,0.2}]