Beruflich Dokumente
Kultur Dokumente
TALLER N 4
Mtodos numricos para ecuaciones diferenciales con mltiples escalas, con aplicacin a flujo y
transporte en medios porosos y fracturados
PRESENTADO POR:
Fanny Anglica Torres Aya
c.c 1.010.212.113
fatorresa@unal.edu.co
20 de Julio de 2016
CONTENIDO
SCRIPT.............................................................................................................................................................. 3
GRAFICAS PARA INSTANTES DE TIEMPO ......................................................................................................... 5
PASO 1 ............................................................................................................................................................. 5
PASO 7 ............................................................................................................................................................. 5
PASO 14 ........................................................................................................................................................... 6
PASO 20 ........................................................................................................................................................... 6
PASO 30 ........................................................................................................................................................... 7
PASO 50 ........................................................................................................................................................... 7
BIBLIOGRAFA .................................................................................................................................................. 8
SCRIPT
1. clear all;
2. Lx = 2.0; Ly = 1.0;
3. Nx = 40; Ny = Nx/2;
4. G = cartGrid([Nx Ny],[Lx Ly]);
5. G = computeGeometry(G);
6.
7. Nc = G.cells.num;
8. Ngf = G.faces.num;
9. neighborship = G.faces.neighbors;
10.
11.
[cell_no,cell_faces] = getCellNoFaces (G);
12.
13.
D = ones(Nc , 1);
14.
D(G.cells.centroids(: , 2) > 0.5 ) = 10.0;
15.
D_struct = struct('perm',D);
16.
TD = computeTrans(G, D_struct);
17.
fD = 1 ./ accumarray(cell_faces, 1 ./ TD, [Ngf, 1]);
18.
19.
20.
AD = zeros (Nc, Nc);
21.
for i = 1: Ngf
22.
v1 = neighborship(i ,1 );
23.
v2 = neighborship(i ,2 );
24.
if (v1 ~= 0) && (v2 ~= 0)
25.
AD(v1, v1)= AD( v1, v1) + fD(i);
26.
AD(v1, v2)= AD( v1, v2) - fD(i);
27.
AD(v2, v1)= AD( v2, v1) - fD(i);
28.
AD(v2, v2)= AD( v2, v2) + fD(i);
29.
end
30.
end
31.
32.
v = diag(G.cells.volumes);
33.
34.
dx = Lx/Nx ; dy = Ly/ Ny;
35.
hf_centroids = G.faces.centroids(cell_faces, :);
36.
37.
i_hfL = all(hf_centroids(:,1) < dx /2 , 2);
38.
i_hfL1 = all(hf_centroids(:,1) < dx /2 & hf_centroids(:, 2) > 0.4 &
hf_centroids(:, 2) < 0.6, 2);
39.
%Definicion de la ubicacion de entrada de concentracion
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
s = zeros (Nc,1);
s(cell_no(i_hfL1)) = cL1 * TD(i_hfL1);
tmp = cell_no(i_hfL);
tmp2 = TD (i_hfL);
for i = 1 : length (tmp)
AD(tmp(i), tmp(i))= AD (tmp(i), tmp(i))+ tmp2 (i);
end
clear tmp tmp2
dt = 1e-3;
A = v + dt * AD;
c0= zeros(Nc,1);
n1 = 0.1; %limite primer intervalo de tiempo
n2 = 5; %limite segundo intervalo de tiempo
for i = 1 : (n1/dt)
c1= A \ (dt* s + v *
c0 = c1;
switch i
case 1
plotCellData (G,c1);
case 7
plotCellData (G,c1);
case 14
plotCellData (G,c1);
c0);
end
pause(1);
end
s(cell_no(i_hfL1)) = cL2 * TD(i_hfL1);
for i = 1 : ((n2-n1)/dt)
c1= A \ (dt* s + v * c0);
c0 = c1;
switch i
case 20
plotCellData (G,c1); axis equal; shading flat
case 30
plotCellData (G,c1); axis equal; shading flat
case 50
plotCellData (G,c1); axis equal; shading flat
end
92.
93.
94.
95.
pause(1);
end
Tal y como se define el anterior cdigo teniendo un delta de tiempo de 0.001, se definen los pasos de
tiempo, para un primer ciclo hasta el tiempo 0.1 y un segundo ciclo hasta 5, es decir 100 y 5000 pasos
respectivamente, es de tener en cuenta que 5000 es un nmero muy grande por lo que el programa
demorara bastante generando las grficas, se definieron instantes de tiempo en los que se deben generar
las grficas con el fin de identificar claramente el cambio y el cambio de tiempo.
PASO 7
PASO 14
PASO 20
PASO 30
PASO 50
BIBLIOGRAFA
Este trabajo fue realizado gracias a la direccin del ingeniero David Barajas.