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}