9 agosto, 2012

You are currently browsing the daily archive for 9 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.

Tags: , , , , , ,

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 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: $latex W(r-r’,h) geq 0$ dentro del dominio.
  2. Soporte compacto: $latex W(r-r’,h) = 0$ fuera del dominio.
  3. Normalizada: $latex int W(r-r’,h) dr’ = 1$.
  4. Comportamiento de función delta: $latex 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.

$latex nabla f(vec{r}) = sum_b frac{m_b}{rho_b} f_b W(vec{r}-vec{r’},h)$

Tags: , , , ,