You are currently browsing the monthly archive for agosto 2012.

Una de las funcionalidades soportadas a partir de Fortran 2003 es la orientación a objetos. De esta manera, tenemos herencia, abstracción y polimorfismo en el lenguaje para computación de altas prestaciones por excelencia.

Sin embargo, cuando hablamos de Fortran 2003 nos referimos al estandar correspondiente, cuya implementación corresponde a los diferentes compiladores.

En particular, el compilador gfortran de GNU, ¿qué funcionalidades incorpora del estardar 2003? ¿qué es lo que incorpora de la Orientación a Objetos? Y de la misma manera, ¿qué soportan el resto de compiladores? En este enlace tenemos información al respecto.

Anuncios

En el artíclo [Gingold & Monaghan, 1977] se introducen

La función kernel, 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 las funciones de forma en los Elementos Finitos.

Existen diferentes funciones kernel: Gaussiana, cuadrática, spline cúbico, quíntica, etc.

La función kernel debe cumplir:

  1. Positiva: W(r-r',h) \geq 0 dentro del dominio.
  2. Soporte compacto: W(r-r',h) = 0 fuera del dominio.
  3. Normalizada: \int W(r-r',h) dr' = 1.
  4. Comportamiento de función delta: \lim_{h \rightarrow 0} W(r-r',h) dr' = \delta(r-r').
  5. Monotona decreciente.

Para derivar, tomamos la derivada analítica de la suma aproximada. De esta manera, como la derivada de la función kernel es conocida, no necesitamos diferencias finitas y el conjunto de ecuaciones PDE pasa a ser ODE.

\nabla f(\vec{r}) = \sum_b \frac{m_b}{\rho_b} f_b W(\vec{r}-\vec{r'},h)

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 de puntos en la malla para seguir con la precisión deseada su evolución, lo cual complica enormemente la evolución de las integrales múltiples.

Lo que pensaron es utilizar la descripción Lagrangiana del flujo del fluido que centra su atención en los elementos del fluido. En la discretización, estos elementos se mueven siguiendo las leyes de Newton con fuerzas debidas a los gradientes de presión y a otras fuerzas de cuerpo como la gravedad, rotación o magnéticas. ¿Qué método utilizar para determinar las fuerzas que actuan en un momento determinado sobre un elemento de fluido?

Para empezar, para elementos de fluido de igual masa, el número de elementos por unidad de volumen debe ser proporcional a la densidad. Además, sin ningún tipo especial de simetría, la posicion de los elementos será aleatoria de acuerdo con la densidad. Para recuperar la densidad de la distribución conocida de los elementos es equivalente a recuperar una distribución de probabilidad a partir de una muestra. Existen dos métodos para conseguir esto que funcionan bien con problemas de fluidos: el smoothing kernel method y  la técnica del spline delta. Ambos métodos se pueden pensar como la aproximación de una integral por el procedimiento de Monte Carlo.

En relatividad especial, o relatividad restringida, podemos generalizar las ecuaciones de Euler clásicas que determinan la evolución de los fluidos.

Para ello, definimos el tensor de energia-impulso de la siguiente manera:

T^{\alpha \beta} = (\rho + \frac{p}{c^2}) u^\alpha u^\beta + p \eta^{\alpha \beta}

De esta manera:

\frac{\partial}{\partial x^\beta} T^{\alpha \beta} = 0

generaliza tanto la ecuación de conservación de la masa como las ecuaciones de Euler.

Las estrellas con una masa mayor a 8 masas solares finalizan su evolución hidroestática con una supernova. El remanente de este evento puede ser tanto un agujero negro, en el caso de las estrellas mas masivas , o una estrella compacta, comunmente llamada estrella de neutrones, para el resto de estrellas.

Existe la posibilidad de que estos objetos sean en realidad estrellas de quarks.

En arquitectura de computadores, la taxonomía de Flynn clasifica a las mismas en función del número de instrucciones que se pueden ejecutar de forma concurrente y el número de datos por instrucción.

Una de las posibilidades es la arquitectura  SIMD (Single Instruction Multiple Data), que explota el paralelismo a nivel de datos, puesto que cada instruccion se puede ejecutar simultaneamente sobre un conjunto amplio de datos.

Las GPU (Graphics Processing Unit) son procesadores desarrollados para el procesamiento gráico que implementan una arquitectura vectorial. Si queremos utilizar de esta potencia para nuestros programas paralelos, disponemos de  CUDA y OpenCL.

CUDA (Compute Unified Device Architecturees) es el sofware que ofrece NVIDIA para explotar la potencia de las GPUs en las aplicaciones programadas por el usuario.

OpenCL (Open Computing Language) es la alternativa libre a CUDA. No solo pretende trabajar con GPUs sino también con CPUs. La arquitectura OpenCL se muestra en el siguiente gráfico:

Las ecuaciones de Euler gobiernan la dinámica de los fluidos compresibles, como gases o líquidos a alta presión, cuando consideramos despreciables las fuerzas de cuerpo, las tensiones viscosas y los flujos de calor. Forman un sistema de PDE no lineal hiperbólico.

En el caso clásico, deducidas por Leonhard Euler, las leyes de conservación son las siguientes:

  1. Conservación de la masa: \rho_t + \nabla \cdot (\rho \vec{v}) = 0
  2. Conservación del momento: (\rho \vec{v})_t + \nabla \cdot (\rho \vec{v} \otimes \vec{v} + pI) = 0
  3. Conservación de la energia: E_t + \nabla \cdot [(E + p)] \vec{v} = 0

donde \rho(x,y,z,t) es la densidad de masa, \vec{v}= (v^1,v^2,v^3) es el vector velocidad con v^i(x,y,z,t), p(x,y,z,t) es la presión,

De hecho, podemos escribir el sistema de forma compacta:

U_t + \nabla \cdot H = 0

con el vector columna U = \left[ \begin{array}{c} \rho \\ \rho v^1 \\ \rho v^2 \\ \rho v^3 \\ E \end{array} \right] y el tensor H = \begin{bmatrix} \rho v^1 & \rho (v^1)^2 + p & \rho v^2 v^1 & \rho v^3 v^1 & v^1 (E + p) \\ \rho v^2 & \rho v^1 v^2 & \rho (v^2)^2 + p & \rho v^3 v^2 & v^2 (E + p) \\ \rho v^3 & \rho v^1 v^3 & \rho v^2 v^3 & \rho (v^3)^2 + p & v^3 (E + p) \end{bmatrix}

La derivación de estas leyes de conservación esta basada en la relación entre las integrales en volumenes de control y sus fronteras y utilizando el teorema de Gauss. En la forma integral de las ecuaciones no necesitamos la hipótesis de diferenciabilidad. Para la conservación de la masa asumimos que en un volumen V la masa ni se crea ni se destruye, por lo que la variación de fluido en su interior esta relacionada con la cantidad del mismo que atraviesa su frontera \partial V

La hidrodinámica (HD) es la parte de la física que estudia la dinámica de los fluidos tanto incompresibles, los líquidos, como compresibles, los gases o los líquidos a alta presión (de hecho, todos los fluidos son compresibles, siendo la incompresibilidad una aproximación para simplificar las ecuaciones que describen su dinámica).

La magnetohidrodinámica (MHD) estudia la dinámica de fluidos conductores de electricidad en presencia de campos electromagnéticos. El conjunto de ecuaciones que describen la MHD son una combinación de las ecuaciones de Navier Stokes de la dinámica de fluidos y las ecuaciones de Maxwell del electromagnetismo que deben ser resueltas simultaneamente.

Cuando tenemos flujos a velocidades cercanas a la velocidad de la luz entonces hablamos de hidrodinámica en relatividad especial (SRHD) y magnetohidrodinámica en relatividad especial (SRMHD).

Finalmente, cuando el fluido está en presencia de fuertes campos gravitatorios, como por ejemplo en presencia de objetos compactos, hablamos de hidrodinámica y magnetohidrodinámica en relatividad general (GRHD y GRMHD).

agosto 2012
L M X J V S D
    Sep »
 12345
6789101112
13141516171819
20212223242526
2728293031  
Anuncios