Diferencias finitas para la segunda derivada con puntos separados por distancias que siguen una serie geometrica respecto del punto central (I)

El caso mas sencillo es cuando tenemos cinco puntos: $latex (x_0,y_0), (x_1,y_1), (x_2,y_2), (x_3,y_3), (x_4,y_4)$, de manera que: $latex x_1-x_0 = 2(x_2-x_1) = 2(x_3-x_2) = x_4-x_3$. Tal y como escribimos en el anterior post, el polinomio general para cinco puntos quedaria: $latex L(x) = y_0 l_0(x) + y_1 l_1(x) + y_2 l_2(x) + y_3 l_3(x) …

Interpolación de Lagrange y formula en diferencias finitas para la aproximación de las derivadas

Dados $latex n+1$ puntos: $latex (x_0,y_0), ldots, (x_n,y_n)$, definimos el polinomio interpolador de Lagrange: $latex L(x) := Sigma_{i=0}^n y_i l_i(x)$ donde: $latex l_i(x) := Pi_{0 leq j leq n,j neq i} frac{x-x_j}{x_i-x_j}$. Con esto, tenemos: $latex frac{d^n}{dx^n}L(x) = Sigma_{i=0}^n y_i frac{d^n}{dx^n}l_i(x)$ Supongamos que tenemos $latex n=2$: $latex (x_0,y_0), (x_1,y_1)$. En este caso, tenemos: $latex L(x) …

Reescritura del Laplaciano nd en diferencias finitas mediante el 1d con fuentes de las (n-1)d restantes

Laplaciano en cartesianas: $latex Delta u = Sigma_i frac{partial^2}{partial x_i^2}u$ 1d $latex frac{u_{i-1}-2u_i+u_{i+1}}{h^2} = f_i $ $latex frac{1}{h^2}u_{i-1} + frac{1}{h^2}u_{i+1} +frac{-2}{h^2}u_i= f_i$ 2d $latex frac{u_{i-1,j}-2u_{i,j}+u_{i+1,j}}{h_x^2} + frac{u_{i,j-1}-2u_{i,j}+u_{i,j+1}}{h_y^2} = f_{i,j}$ $latex i$ fijo: $latex frac{1}{h_y^2}u_{i,j-1} + frac{1}{h_y^2}u_{i,j+1} +(frac{-2}{h_x^2}+frac{-2}{h_y^2})u_{i,j}= g_{i,j}(:=f_{i,j} + frac{-1}{h_x^2}u_{i-1,j} + frac{-1}{h_x^2}u_{i+1,j})$ $latex j$ fijo: $latex frac{1}{h_x^2}u_{i-1,j} + frac{1}{h_x^2}u_{i+1,j} +(frac{-2}{h_x^2}+frac{-2}{h_y^2})u_{i,j}= g_{i,j}(:=f_{i,j} + frac{-1}{h_y^2}u_{i,j-1} + frac{-1}{h_y^2}u_{i,j+1})$ …

Diferencias finitas en sistemas no rectangulares para ecuaciones elípticas.

Aunque siempre podemos hacer cambios de coordenadas, vamos a ver como quedan los esquemas de diferencias finitas en sistemas no rectangulares: coordenadas cilíndricas, $latex (rho,phi, z)$, y coordenadas esféricas, $latex (r,theta,phi)$. Nos centraremos en la ecuación de Poisson aunque la técnica se puede extender de manera inmediata a cualquier tipo de PDE. En coordenadas cilíndricas …

¿Qué pasa con tres o todas las fronteras Neumann en 2D?

Vamos a suponer $latex n=3$ para reducir el tamaño de las matrices. Empezamos suponiendo que conocemos: $latex frac{partial}{partial x}|_{0,0,}u, frac{partial}{partial x}|_{0,1}u, frac{partial}{partial x}|_{0,2}u$ $latex frac{partial}{partial y}|_{0,0}u, frac{partial}{partial y}|_{1,0}u$ $latex frac{partial}{partial y}|_{0,2}u, frac{partial}{partial y}|_{1,2}u$ $latex u|_{2,0}, u|_{2,1}, u|_{2,2}$ Discretizamos: $latex frac{u_{-1,0}-2u_{0,0}+u_{1,0}}{h^2} + frac{u_{0,-1}-2u_{0,0}+u_{0,1}}{h^2} = f_{0,0}$ $latex frac{u_{-1,1}-2u_{0,1}+u_{1,1}}{h^2} + frac{u_{0,0}-2u_{0,1}+u_{0,2}}{h^2} = f_{0,1}$ $latex frac{u_{-1,2}-2u_{0,2}+u_{1,2}}{h^2} + frac{u_{0,1}-2u_{0,2}+u_{0,3}}{h^2} = …

Discretización de PDEs, matrices por bloques, simetrizaciones y rangos.

Suponemos $latex Delta u = f$ en $latex 2D$, es decir, $latex frac{partial^2}{partial x^2}u(x,y) + frac{partial^2}{partial y^2}u(x,y) = f(x,y)$. Miraremos como queda la matriz del sistema al discretizar, como simetrizarla y su rango en tres casos: condición Neuman respecto $latex x$ en una frontera, condición Neumann respecto $latex y$ en una frontera y condición Neumann …

Ejemplo sencillo de frontera Neumann en 2D

Suponemos $latex n=5$. En el caso de tener todas las fronteras con condiciones Dirichlet: $latex frac{u_{0,1} -2u_{1,1} + u_{2,1}}{h^2} + frac{u_{1,0} -2u_{1,1} + u_{1,2}}{h^2} = f_{1,1}$ para $latex i,j=1,1$, $latex frac{u_{0,2} -2u_{1,2} + u_{2,2}}{h^2} + frac{u_{1,1} -2u_{1,2} + u_{1,3}}{h^2} = f_{1,2}$ para $latex i,j=1,2$, $latex frac{u_{0,3} -2u_{1,3} + u_{2,3}}{h^2} + frac{u_{1,2} -2u_{1,3} + u_{1,4}}{h^2} = …

Condiciones de contorno tipo Neumann

En el post anterior hablamos sobre condiciones de frontera y su transferencia entre mallas pero no comentamos en el caso de que las condición haga referencia al valor de la derivada y no al de la función: condición de Neumann. En $latex 1D$ supongamos que ahora tenemos $latex frac{partial^2}{partial x^2}u = f$ en $latex [a,b]$ …

Discretización de la ecuación de Poisson en 1D, 2D y 3D

En $latex 1D$ tenemos: $latex u_{xx} = f(x)$, con $latex 0 < x < 1$ y $latex u(0)= u(1)=0$. Particionamos el dominio en $latex n$ subintervalos introduciendo los puntos $latex x_i = ih$ con $latex h=frac{1}{n}$. De esta manera, para cada uno de los puntos interiores reemplazamos las derivadas por su aproximación de segundo orden …

Propiedades de la función kernel en SPH

En el artíclo [Gingold & Monaghan, 1977] se introducen La función kernel, $latex W(vec{r}-vec{r’},h)$, es una función que permite interpolar los valores de cualquier propiedad del fluido en función del valor de las partículas del entorno. Su papel es similar al de los diferentes esquemas de diferencias en el ámbito de las Diferencias Finitas o …

Orígenes del Smoothed Particle Hydrodynamics (SPH)

En el artículo  [Gingold & Monaghan, 1977] se presenta por primera vez el método Smoothed Particle Hydrodynamics. Los autores, originalmente, buscaban un método que permitiera tratar problemas en astrofísica asimétricos (sin simetría esférica, sin simetría axial, etc.) . En estos casos, los métodos de diferencias finitas no se adaptan bien, pues requieren elevar el número …