Views
- State: visible
adi_convdiff.tex
adi_convdiff.tex
Size
4.0 kB
-
File type
text/x-tex
File contents
\documentclass[12pt]{article} \usepackage{graphicx,amsmath,amsfonts,amssymb,epsfig,euscript} \usepackage[T1]{fontenc} \usepackage[utf8x]{inputenc} \newtheorem{ejer}{Ejercicio} \newcommand{\bej}{\begin{ejer}\rm} \newcommand{\fej}{\end{ejer}} \newcommand{\R}{\mathbb{R}} \newcommand{\C}{\mathbb{C}} \def\dt{\Delta t} \def\dx{\Delta x} \topmargin-2cm \vsize 29.5cm \hsize 21cm \setlength{\textwidth}{16.75cm}\setlength{\textheight}{23.5cm} \setlength{\oddsidemargin}{0.0cm} \setlength{\evensidemargin}{0.0cm} \begin{document} \centerline{{\small Universidad de Buenos Aires - Facultad de Ciencias Exactas y Naturales - Depto. de Matemática}} \vskip 0.2cm \hrulefill \vskip 0.2cm \centerline{{\bf\Huge {\sc Análisis Numérico}}} \vskip 0.2cm \centerline{\ttfamily Segundo Cuatrimestre 2016} \hrulefill \bigskip \centerline{\bf TP N$^\circ$ 1. Convección-Difusión. Método ADI 2D. } \bigskip El objetivo de este trabajo es resolver la ecuación de convección-difusión en un rectángulo, utilizando un método de direcciones alternadas, que descompone un problema multi-dimensional en varios problemas uni-dimensionales. Concretamente, se desea resolver: $$\left\{\begin{array}{cc}u_t = \mu_x u_{xx} + \mu_y u_{yy} + a_x u_x + a_y u_y + f & \Omega = [0,2]^2 , \; t\in(0,T_f) \\ u(x,y,t) = 0 & (x,y)\in\partial\Omega, \; t\in(0,T_f). \\ u(x,y,0) = g(x,y) & (x,y)\in\Omega\end{array}\right.$$ \vspace{12 pt} Consideramos una grilla del interior de $\Omega$: $$\{x_i=ih_x:\;1\le i\le I-1\}\times \{y_j=jh_y:\;1\le j\le J-1\}.$$ Para simplicar, puede tomarse $h_x=h_y=h$ e $I=J$. A esto agregamos la grilla temporal $\{t_n=n\dt:\;0\le T\}$, con $T=T_f/\dt$. Sobre esta grilla se define $u_{ij}^n$, aproximación de $u(x_i,y_j,t_n)$. Notamos $u^n$ al arreglo $(u^n_{ij})$. Definimos los operadores de discretización espacial $\delta_x^2$ y $\delta_x$: $$\delta_x^2 (u_{ij}^n) = \frac{u_{i+1,j}^n-2u_{ij}^n+u_{i-1,j}^n}{h^2}.$$ $$\delta_x (u_{ij}^n) = \frac{u_{i+1,j}^n - u_{i-1,j}^n}{2h}.$$ que operan sobre la coordenadas $x$, y análogamente $\delta_y^2$ y $\delta_y$ que operan sobre la coordenada $y$. Así, podemos discretizar en el espacio con los operadores $A_x, A_y$, dados por \begin{align*} D_x(u^n) = & \mu_x \delta_x^2 (u_{ij}^n) + a_x \delta_x (u_{ij}^n) \\ D_y(u^n) = & \mu_y \delta_y^2 (u_{ij}^n) + a_y \delta_y (u_{ij}^n) \end{align*} El método de direcciones alternadas (ADI) consiste en resolver dos problemas en cada iteración temporal, cada uno de ellos implícito en una única coordenada, y explícito en la otra. Definiendo la solución a un paso intermedio $u^*$, calculamos \begin{align*} \frac{u^*-u^n}{\Delta t} & = \frac{1}{2} \left( D_y (u_n) + D_x (u^*) + f \right)\\ \frac{u^{n+1}-u^*}{\Delta t} & = \frac{1}{2} \left( D_x (u^*) + D_y (u^{n+1}) + f \right) \end{align*} \newpage \textbf{Para hacer:} Estudie el problema de convección-difusión con \begin{enumerate} \item Los parámetros $f=1, \mu_x=1, \mu_y=1, a_x=5,a_y=5$ \item Las condiciones iniciales $g(x,y)=e^{-10((x-0.5)^2+(y-0.5)^2)}$ \item El tiempo final $T_f = 0.5$ \end{enumerate} Para ello, \begin{enumerate} \item Utilizando la matriz usual $A$ de la derivada segunda y otra matriz $B$ de la derivada primera en 1D, implemente un método explícito de orden 1 para la ecuación dada, en dos dimensiones. \textbf{Sugerencia:} Preste atención a las transpuestas! \item Implemente el esquema propuesto y compare ambos métodos. Verifique numéricamente que el método ADI es incondicionalmente estable. \item Estudie numéricamente el error del método ADI en el tiempo. Para ello, calcule la solución a tiempo $t=T_f$ utilizando distintos valores de $\Delta t$. Tomando $\Delta t, \Delta x$ muy pequeños como referencia, grafique la convergencia a ese valor, en escala logarítmica. \end{enumerate} \textbf{Sugerencia:} Visualice la solución a cada paso, por ejemplo, utilizando \texttt{surf(X,Y,Un); shading interp; view(0,90);} -- se debería observar convección y difusión, y el alcance de un estado estacionario no-nulo. \end{document}