¿Puede el calor interferir? Ondas térmicas más allá de la descripción de la termodinámica clásica

https://es.wikipedia.org/wiki/Ecuaci%C3%B3n_del_calor

Analizemos una solucion tipica de la cuacion de calor en 1D descrita en el libro “Introduction To The Mathematical Theory Of The Conduction Of Heat In Solid” de Horatio Scott Carslaw.

link

import numpy as np
import matplotlib.pyplot as plt
import math
import cmath
kappa_al  = 237.0;
rho_al    = 2698.4;
c_al      = 900.0;
D         = kappa_al/(rho_al*c_al);
Nx        = 100
xi        = -0.04;
xf        =  0.04;
dx        = (xf-xi)/Nx;
x         = np.zeros(Nx+1)
TTa       = np.zeros(Nx+1)
TTn       = np.zeros(Nx+1)
t0        = 0.1
Nt        = 500;
dt        = 0.2*(dx*dx)/(2.0*D);
t         = np.zeros(Nt+1)
#
it        = 0
t[it]     = t0
for ix in range(0,Nx+1):
  x[ix]  = xi+ix*dx
  TTa[ix]= math.sqrt(t0/t[it])*math.exp(-(x[ix]*x[ix])/(4.0*D*t[it]))
  TTn[ix]= TTa[ix]
    
plt.ylim(0,1)
plt.plot(x,TTa,'-ob',label='exacta')
plt.legend()
plt.grid()
plt.title("Condicion inicial")
plt.savefig("T_00{}.png".format(0))
plt.close()
for it in range(1,Nt+1):
  t[it]     = t0+it*dt
  for ix in range(1,Nx):
    TTa[ix]= math.sqrt(t0/t[it])*math.exp(-(x[ix]*x[ix])/(4.0*D*t[it]))
    TTn[ix]= TTn[ix] + ((D*dt)/(dx*dx))*(TTn[ix+1]-2.0*TTn[ix]+TTn[ix-1])
  plt.ylim(0,1)
  plt.plot(x,TTa,'-b',label='exacta')
  plt.plot(x,TTn,'or',label='FDTD') 
  plt.title(f"t = {t[it]:.5f} s    paso = {it}/{Nt}")
  plt.legend()
  plt.grid()
  if it < 10:              plt.savefig("T_00{}.png".format(it))
  if it >= 10  and it<100: plt.savefig( "T_0{}.png".format(it))
  if it >= 100 and it<1000: plt.savefig(  "T_{}.png".format(it))
  plt.close()
import numpy as np
import matplotlib.pyplot as plt
import math
import cmath
kappa_al  = 237.0;
rho_al    = 2698.4;
c_al      = 900.0;
D         = kappa_al/(rho_al*c_al);
Nx        = 100
xi        = -0.06;
xf        =  0.06;
dx        = (xf-xi)/Nx;
x         = np.zeros(Nx+1)
TTa       = np.zeros(Nx+1)
TTn       = np.zeros(Nx+1)
t0        = 0.1
Nt        = 500;
dt        = 0.2*(dx*dx)/(2.0*D);
t         = np.zeros(Nt+1)
#
it        = 0
t[it]     = t0
xp=0.02
for ix in range(0,Nx+1):
  x[ix]  = xi+ix*dx
  aux1= math.sqrt(t0/t[it])*math.exp(-((x[ix]-xp)*(x[ix]-xp))/(4.0*D*t[it]))
  aux2= math.sqrt(t0/t[it])*math.exp(-((x[ix]+xp)*(x[ix]+xp))/(4.0*D*t[it]))
  TTa[ix]= aux1+aux2
  TTn[ix]= TTa[ix]    
plt.ylim(0,1)
plt.plot(x,TTa,'-ob')
plt.savefig("P_00{}.png".format(0))
plt.close()

for it in range(1,Nt+1):
  t[it]     = t0+it*dt
  for ix in range(1,Nx):
#    TTa[ix]= math.sqrt(t0/t[it])*math.exp(-(x[ix]*x[ix])/(4.0*D*t[it]))
   aux1= math.sqrt(t0/t[it])*math.exp(-((x[ix]-xp)*(x[ix]-xp))/(4.0*D*t[it]))
   aux2= math.sqrt(t0/t[it])*math.exp(-((x[ix]+xp)*(x[ix]+xp))/(4.0*D*t[it]))
   TTa[ix]= aux1+aux2
   TTn[ix]= TTn[ix] + ((D*dt)/(dx*dx))*(TTn[ix+1]-2.0*TTn[ix]+TTn[ix-1])
  plt.ylim(0,1)
  plt.plot(x,TTa,'-b',label='exacta')
  plt.plot(x,TTn,'or',label='FDTD') 
  plt.title(f"t = {t[it]:.5f} s    paso = {it}/{Nt}")
  plt.legend()
  plt.grid()  
  if it < 10:              plt.savefig("P_00{}.png".format(it))
  if it >= 10  and it<100: plt.savefig( "P_0{}.png".format(it))
  if it >= 100 and it<1000: plt.savefig(  "P_{}.png".format(it))
  plt.close()
#plt.savefig("T_00{}.png".format(0))
#plt.close()

Que es el FDTD?

?Que son ondas termicas?

El experimento de Anwar