Beruflich Dokumente
Kultur Dokumente
DE CALCULO
NUMERICO
AVANZADO
PRACTICA
8: la ecuaci
on de Laplace (parte II: elementos finitos)
Vamos a obtener mediante elementos finitos (con la formulaci
on del metodo de Galerkin)
la distribuci
on de temperaturas en una placa rectangular con unas condiciones de contorno
determinadas. Inicialmente consideraremos el problema resuelto en la anterior pr
actica
mediante diferencias finitas; abordaremos la resoluci
on de este problema con elementos
finitos y posteriormente consideraremos un problema con condiciones de contorno m
as
complejas.
Elementos finitos
0.8
0.6
0.4
0.2
7
0
0.2
3
0.4
0.6
0.8
5 2 3
nodos = 1 5 9 .
8 6 7
Por su parte, bcnod y bcval son vectores cuya dimensi
on viene determinada por el
n
umero de nodos de la frontera con condici
on Dirichlet.
Para realizar las triangulaciones de nuestro dominio optaremos por la utilizaci
on del
toolbox de MATLAB para EDPs. Podemos obtener las matrices coord, nodos y el vector
bcnod a partir de la informaci
on sobre la geometra del sistema que obtenemos cuando
elegimos la opci
on Export Mesh (una vez especificadas las condiciones de contorno y
realizada la triangulaci
on del dominio). La elecci
on de esta opci
on supone generar 3
matrices cuyas denominaciones por defecto son p, t y e. La correspondencia entre estas
matrices y las que necesitaremos para nuestra rutina de elementos finitos, es la siguiente:
Matriz coord = Matriz p.
Matriz nodos = Filas 1,2,3 de la matriz t (y todas las columnas).
Vector bcnod1 = Fila 1 de la matriz e (y todas las columnas).
Si queremos guardar en ficheros de texto la informaci
on que utilizaremos sobre las
matrices t, p y e, podemos hacer uso de las siguientes instrucciones:
tt=t(1:3,:);
ee=e(1,:);
% REEMPLAZAR LOS PUNTOS SUSPENSIVOS POR
% EL DIRECTORIO CORRESPONDIENTE
fid=fopen(c:\...\p.m,w);
fprintf(fid,%20.16f %20.16f\n,p);
fclose(fid);
fid=fopen(c:\...\t.m,w);
fprintf(fid,%3i %3i %3i\n,tt);
fclose(fid);
fid=fopen(c:\...\e.m,w);
fprintf(fid,%3i\n,ee);
fclose(fid);
Este fichero se encuentra en la p
agina web con nombre:
http://personales.unican.es/segurajj/fich.txt
Si nos fijamos en la estructura de los datos en los ficheros generados p.m, t.m y e.m,
vemos que corresponden a las matrices traspuestas de las originales. Para recuperar la
estructura original u
nicamente deberemos volver trasponer, lo que podemos hacer modificando ligeramente los ficheros en cuesti
on: Por ejemplo, f.m sera:
function p=p
p=[ ...
...];
1
La fila 1 de la matriz e proporciona los nodos que est
an en la frontera. Como para el problema que
queremos resolver TODOS los nodos frontera tienen condici
on Dirichlet, se verifica la igualdad entre vector
y componentes de la fila de la matriz.
Problemas a resolver
Comenzaremos con el mismo problema que resolvimos en la pr
actica anterior. La visualizaci
on de la los resultados obtenidos se har
a mediante las instrucciones que se detallan a
continuaci
on:
%------------------------------------------------% Representamos graficamente las solucion numerica
% -----------------------------------------------figure(1)
subplot(2,2,1);
pdesurf(coord,nodos,fsol);
title(Solucion aproximada de elementos finitos);
xlabel(x);ylabel(y);zlabel(Temperatura);
cood y nodos son las matrices antes definidas y fsol es la soluci
on numerica como vector
columna.
De la misma manera podemos proceder para representar la soluci
on analtica (o la que
podamos obtener mediante MATLAB si no hay soluci
on analtica) y el correspondiente
error.
El programa main.m deber
a generar en una misma ventana pero en gr
aficas distintas
(utilizando el comando subplot), las gr
aficas de la soluci
on numerica, la de la exacta, la
del error (todas ellas mediante pdesurf) junto con la localizaci
on de los nodos. Pasra este
u
ltimo caso, las instrucciones podran ser:
subplot(2,2,4);
hold on;
for i=1:nnode
plot(coord(1,i),coord(2,i),.);
2
end
title(Puntos del grid);
xlabel(x); ylabel(y); axis equal
Adicionalmente, resolveremos un sistema similar pero en el que han practicado dos
orificios que se encuentran a temperaturas distintas, seg
un se puede ver en la figura:
y
T=5
C1
T=5
C2
1