Sei sulla pagina 1di 9

Homework 2.

RESOLUCIN DE LA ECUACIN DEL CALOR


Alumno: Juan Jess Gonzlez Alemn

1. Descripcin del problema


Nuestro objetivo es resolver la ecuacin de difusin del calor en la sub-superficie de la Tierra pero, al contrario que en el anterior Homework, esta vez la ecuacin no es estacionaria sino que su solucin depende del tiempo con coeficientes dependientes de z. La ecuacin es: T C ( z) = t (l ( z) T ) z + H ( z ) con las condiciones de contorno: T ( z1 )= f 1 y z

T q = ( ) z l ( z)
zn

Es decir, tenemos una ecuacin con el parametro q (basal heat flow density), y las funciones l(z) (thermal conductivity), H(z) (volumetric heat production), C(z) (volumetric heat capacity) en la que la solucin ser la temperatura a lo largo de la profundidad. La ecuacin la resolveremos para una profundidad de 50 metros. Para resolver el problema mediante Matlab utilizaremos un script en el que podamos modificar los parmetros y funciones de entrada de la ecuacin, as como el nmero de puntos en los que discretizaremos en el espacion (nz) y en el tiempo (nt+1) el problema, la condicin de contorno de Dirichlet sobre la superficie terrestre (bc_top) que ser ondulatoria a lo largo del tiempo, y la condicin de tipo Neumann en el fondo, entre otros (Ver script). En este mismo script introducimos el comando function para que nos haga el clculo de la ecuacin a partir de la entrada de los parmetros y funciones anteriores y nos de como salida la temperatura (T) a lo largo de la profundidad y tiempo.

2. Resolucin
El cdigo utilizado en Matlab es el siguiente: Script heatequation2.m
%Definicin de la red de nodos en el espacio nz=50; zmax=50; nd=nz-1; z=logspace(0,log10(zmax),nz-1); z=[0,z]; dz=diff(z); %Parmetros y funciones iniciales.

H=0; C=2e6; C1=C + ((C*1.2)-(C*0.8))*rand(size(dz)); for i=1:nd-1 C(i+1)=(dz(i+1)*C1(i+1)+dz(i)*C1(i))/(dz(i+1)+dz(i)); end C(1)=C(2); C(nz)=C(nd-1); q=0.06; l=3; l=l + ((l+1)-(l-1))*rand(size(dz)); %Parmetro theta que nos determina la estabilidad theta=1; %Condicin de contorno en superficie bc_top=283; %Definicin de la iteracin en el tiempo %Nmero de iteraciones nt=10000; %Tiempo total del integrado (s) tt=9.4608e+07; %Resolucin temporal y definicin del mallado en el tiempo dt=tt/(nt-1) t=[0:dt:tt]; %Amplitud, periodo y frecuencia angular de la onda que imponemos como condicin de contorno dependiente del tiempo Ta=15; Tw=60*60*24*365; w=(2*pi*dt)/(Tw) dts=dt/(60*60*24*7) years=tt/(60*60*24*365) %Comprobamos la condicin de estabilidad en el caso de que theta nos deter %mine que sea condicionalmente estable. for i=1:nd stb(i)=(l(i)*dt)/(C1(i)dz(i)*dz(i)); end stb=max(stb) %Llamamos a la funcin para que nos calcule [T,t,z]=heat2n(nz,z,nd,l,H,bc_top,q,dt,t,nt,C,Ta,dz,theta,w);

Pasamos a function heat2n.m


function [T,t,z]=heat2n(nz,z,nd,l,H,bc_top,q,dt,t,nt,C,Ta,dz,theta,w)

%Utilizamos la inversa de la funcin C para cada elemento Cinv=spdiags([(1./C)'], 0, nz, nz); %Definimos la matriz del sistema L para calcular las condiciones iniciales en %toda la malla de puntos de profundidad d=0.5*(dz(2:nd)+dz(1:nd-1)); dl=l./dz; c(3:nz)=dl(2:nd)./d; a(1:nz-2)=dl(1:nd-1)./d; b(2:nz-1)=-a(1:nz-2)-c(3:nz); a(nz-1)=l(nd)/(dz(nd)*dz(nd)); a(nz)=0; b(nz)=-(l(nd)/(dz(nd)*dz(nd))); b(1)=-1; L=spdiags([a' b' c'], -1:1, nz, nz); %Definimos el vector trmino independiente b1=-H*ones(nz,1); %Condiciones de contorno b1(1)=-bc_top; b1(nz)=-H-(q/dz(nd)); %Resolucin del sistema que nos da la solucin estacionaria que se toma %como condicin inicial para integrar en el tiempo T=L\b1; %Ahora procedemos a integrar en el tiempo %Definimos la matriz del sistema A que nos permitir calcular los valores %en el tiempo I=eye(nz); L=Cinv*L; A=(I-theta*dt*L); %Integracin en el tiempo por el theta-method (time stepping) for i=2:nt b1(:,i-1)=Cinv*b1(:,1); b1(:,i)=Cinv*b1(:,i-1); b1(1,i)=Cinv(1,1)*(bc_top+Ta*sin(w*i)); b2(:,i-1)=(I+(1-theta)*dt*L)*T(:,i-1)+dt*(theta*b1(:,i)+(1-theta)*b1(:,i-1)); T(:,i)=A\b2(:,i-1); end

3. Soluciones
A continuacin se muestran los resultados para el valor de =1. Es decir, estaramos ante una estabilidad incondicional, ya que es una integracin implcita. En la figura 1 puede verse la condicin inicial que toma el mtodo para empezar a iterar en el tiempo al resolver primero la ecuacin independiente del tiempo. Tenemos por tanto la distribucin inicial de temperaturas a lo largo de la sub-superficie.

Figura 1. Temperatura (K) inicial representada frente a la altura (m).

Una vez calculada la condicin inicial, el mtodo calcula el cambio de la temperatura. La variacin de la temperatura con el tiempo se puede observar en la figura 2. El clculo se ha realizado tomando como condicin de contorno en la superficie una onda que representa la variacin anual de la temperatura. El tiempo total equivale a 3 aos con una resolucin temporal de 946,089 segundos. La figura 3 muestra el mismo resultado pero utilizando el comando mesh y para una profundidad de 15 metros. Para comprobar como vara el resultado segn el valor de zmx se presentan las figuras 4 y 5. Se pueden observar pequeas variaciones en los valores de la temperatura, sobre todo para las mayores profundidades, donde se aprecia que la terminacin de la amplitud de la onda suele sufrir una distorsin si se acerca mucho al valor de zmx.

Figura 2. Temperatura (K) representada frente a la altura (m) y tiempo (s) para una profundidad de 50 m..

Figura 3. Temperatura (K) representada frente a la altura (m) y tiempo (s) para una profundidad de 15 m..

Figura 4. Temperatura (K) representada frente a la altura (m) y tiempo (s) para una profundidad de 15 m..

Figura 5. Temperatura (K) representada frente a la altura (m) y tiempo (s) para una profundidad de 10 m..

3.1 Estabilidad del mtodo


Para comprobar la diferente estabilidad, tomamos el valor de =0 que nos llevara a un mtodo condicionalmente estable, es decir, estara condicionada al cumplimiento de la condicin t 1 C x 2 que es una funcin en el espacio definida en las celdas y por tanto el nmero de Neumann depender de la profundidad en este problema, por lo que se considera que se cumple la condicin de estabilidad cuando el mximo de la funcin lo cumpla. La figura 6 muestra el resultado de la inestabilidad del mtodo tras no cumplirse esta condicin por utilizar, por ejemplo, un paso de tiempo de 9.4617e+03 y una resolucin espacial de 99 celdas entre 0 y -50 m, lo que da lugar a un valor mximo del nmero de Neumann de 11.95 que es mayor que 0.5. Por tanto, se comprueba la condicin de estabilidad.

Figura 6. Resultado tras utilizar el mtodo en su versin inestable.

Potrebbero piacerti anche