You are currently browsing the tag archive for the ‘Chombo’ tag.

Para empezar, vamos a calcular numéricamente, y en mecánica clásica,  el campo creado por una partícula con masa en el espacio.

Si colocamos las fronteras de nuestro dominio \Omega \in \mathbb{R}^3 lo suficientemente lejos, el cálculo del potencial gravitatorio se reduce a resolver la ecuación de Poisson

\Delta u(x,y,z) = 4 \pi G \rho(x,y,z) si (x,y,z) \in \Omega

con

u(\bar{x},\bar{y},\bar{z}) = 0 si (\bar{x},\bar{y},\bar{z}) \in \partial \Omega,

y donde \rho(x,y,z) es la densidad de masa.

Aunque en estos casos tenemos solución analítica utilizando la función de Green, vamos a calcularla numéricamente utilizando Chombo, y mediante superposición, extenderlo a un sistema de masas puntuales.

Para empezar con la aproximación, utilizaremos gaussianas para simular las funciones \delta correspondientes a la distribución de masa puntual (mas similares a una \delta cuanto mas estrechas sean).

A continuación, colocaremos una partícula en el centro de un cubo y utilizaremos un malla adaptativa, definida manualmente (aunque Chombo también capaz de hacerlo automáticamente), que se hará mas fina a medida que se acerque a la misma. Esto permitirá tener resolución y tiempo de cálculo donde realmente se necesita:

masPun1masPun2

Colocamos fronteras Dirichlet homogeneas, y ejecutamos. El resultado es:

masPunSol1

que, al ser tridimensional, cuesta un poco de ver. Básicamente, es un campo con simétria esférica. A continuación cortamos con un plano por el centro del campo

masPunSol2masPunSol2b masPunSol2c

y lo elevamos, pues es campo gravitatorio se puede pensar como una curvatura 🙂

masPunSol3b masPunSol3

Suponemos ahora dos masas puntuales y procedemos de la misma manera. El tamaño de la partícula representa su masa.

2masPunSol1

Como se puede apreciar, hemos añadido un poco mas de resolución en la parte de la partícula mas masiva. Lo que obtenemos es (en 3D y en corte):

Finalmente, si elevamos los cortes, obtenemos:

2masPunSol3 2masPunSol3b

Finalmente, algunas gráficas correspondientes a dos nuevos casos en los que separo cada vez mas las partículas:

Anuncios

En el libro de Análisis numérico de Burden y Faires aparecen una serie de ejemplos y ejercicios resueltos de PDEs elípticas en 2D. Vamos a intentar resolverlos utilizando Chombo…

La primera ecuación corresponde con un ejemplo y es

\frac{\partial^2}{\partial x^2}u(x,y) + \frac{\partial^2}{\partial y^2}u(x,y) = 0

en

\Omega = \{ (x,y): 0<x<0.5, 0<y<0.5\}

y cuyas condiciones en la frontera \partial \Omega son

u(x,0)=0, u(0,y)=0, u(x,0.5)=200x, u(0.5,y)=200y.

El resultado es:

ejeM1

Para el ejercicio 12.1.1

u_{xx} + u_{yy} = 4

en

\Omega = \{ (x,y): 0<x<1, 0<y<2\}

y cuyas condiciones en la frontera \partial \Omega son

u(x,0)=x^2, u(0,y)=y^2, u(x,2)=(x-2)^2, u(1,y)=(y-1)^2.

El resultado es:

ejeR1

A continuación, para el 12.1.3.a

u_{xx} + u_{yy} = 0

en

\Omega = \{ (x,y): 0<x<1, 0<y<1\}

y cuyas condiciones en la frontera \partial \Omega son

u(x,0)=0, u(0,y)=0, u(x,1)=x, u(1,y)=y.

El resultado es:

ejeR3a

En el 12.1.3.b encontramos

\Delta u = -(\cos(x+y)+\cos(x-y))

en

\Omega = \{ (x,y): 0<x<\pi, 0<y<\frac{\pi}{2}\}

y

u(x,0)=\cos x , u(0,y)=\cos y, u(x,\frac{\pi}{2})=0, u(\pi,y)=-\cos y,

obteniendo:

 ejeR3b ejeR3b2

El software Chombo, del Berkeley Lab, combina los métodos en diferencias finitas con las mallas adaptativas (AMR) para resolver, entre otras, PDEs elípticas.

Las siguientes imágenes, en 2D y 3D, se han obtenido a partir de su AMRPoisson:

schSolSouschSol

agosto 2018
L M X J V S D
« Ago    
 12345
6789101112
13141516171819
20212223242526
2728293031  
Anuncios