# Smoothed-particle hydrodynamics

Smoothed-particle hydrodynamics (SPH) es un método computacional utilizado para simular la dinámica de medios continuos como la mecánica de sólidos y los flujos de fluido. Ha sido desarrollado por Gingold y Monaghan (1977) inicialmente para problemas astrofísicos. Su uso abarca múltiples campos de investigación, incluyendo astrofísica, balística, vulcanología y oceanografía. Es un método de Lagrange (donde las coordenadas se mueven con el fluido) sin malla, y la resolución del método se puede ajustar fácilmente con respecto a variables como la densidad.

## Método

El método smoothed-particle hydrodynamics (SPH) funciona dividiendo el fluido en un conjunto de elementos discretos, a los cuales se refiere como partículas. Estas partículas tienen una distancia espacial (conocida como "longitud de suavizado", típicamente representada en ecuaciones como $h$), sobre las cuales sus propiedades se "suavizan" mediante una función núcleo. Esto significa que la cantidad física de cualquier partícula se puede obtener sumando las propiedades relevantes de todas las partículas que se encuentran dentro del rango del núcleo.
La contribución de cada partícula a una propiedad se pondera de acuerdo con su distanciación de la partícula de interés, y su densidad. Matemáticamente, esto está definido por una función de núcleo (símbolo $W$). Las funciones de núcleo utilidades habitualmente incluyen la función gaussiana y la Interpolación Segmentaria Cúbica. Esta última es exactamente cero para las partículas que estén más alejadas que el doble de la distancia de suavizado (a diferencia de la gaussiana, donde hay una pequeña contribución desde cualquier distancia finita). Esto tiene la ventaja de ahorrar recursos computacionales dado a no incluir las contribuciones menos significantes de partículas distantes.
La ecuación para cualquier cantidad $A$ en cualquier punto $\mathbf {r}$ se da mediante la ecuación
    $A(\mathbf {r} )=\sum _{j}m_{j}{\frac {A_{j}}{\rho _{j}}}W(|\mathbf {r} -\mathbf {r} _{j}|,h),$
dónde $m_{j}$ es la masa de la partícula $j$, $A_{j}$ es el valor de la cantidad $A$ para la partícula $j$, $\rho _{j}$ es la densidad asociada con la partícula $j$, $\mathbf {r}$ denota posición y $W$ es la función de núcleo mencionada anteriormente. Por ejemplo, la densidad de la partícula $i$ ($\rho _{i}$) puede expresarse cómo:
    $\rho _{i}=\rho (\mathbf {r} _{i})=\sum _{j}m_{j}{\frac {\rho _{j}}{\rho _{j}}}W(|\mathbf {r} _{i}-\mathbf {r} _{j}|,h)=\sum _{j}m_{j}W(|\mathbf {r} _{i}-\mathbf {r} _{j}|,h),$
donde el sumatorio de $j$ incluye todas las partículas de la simulación.
Similarmente, la derivada espacial de la cantidad puede obtenerse fácilmente en virtud de la linearidad de la derivada (nabla, $\nabla$).
    $\nabla A(\mathbf {r} )=\sum _{j}m_{j}{\frac {A_{j}}{\rho _{j}}}\nabla W(|\mathbf {r} -\mathbf {r} _{j}|,h).$
A pesar de que el tamaño de la longitud de suavizado puede ser fijo tanto en espacio como en tiempo, esto no se beneficia de la capacidad máxima de SPH. Asignando a cada partícula su propia distancia de suavizado y permitiéndole variar con el tiempo, la resolución de una simulación puede hacerse adaptar a sí misma dependiendo de las condiciones locales. Por ejemplo, en una región muy densa, donde muchas partículas se encuentran muy cerca entre sí, la distancia de suavizado puede ser relativamente corta, produciendo una resolución espacial alta. A la inversa, en regiones de baja densidad, donde las partículas individuales están separadas y la resolución es baja, la distancia de suavizado se puede incrementar, optimizando la computación para regiones de interés. Combinado con una ecuación de estado y un integrador, SPH puede simular flujos hidrodinámicos de forma eficiente. No obstante, la formulación de la viscosidad artificial tradicional utilizada en SPH tiende a difuminar los choques y las discontinuidades de contacto mucho más que los modelos basados en malla más modernos.
La adaptabilidad de SPH basada en métodos de Lagrange es análoga a la adaptabilidad encontrada en códigos de refinamiento de malla adaptativo basados en malla. De algunas maneras, es en realidad más sencillo porque las partículas SPH carecen de topología explícita que las interrelacione, a diferencia de los elementos en métodos de elementos finitos. La adaptabilidad en SPH se puede conseguir de dos modos; o bien cambiando las distancias de suavizado de las partículas, o bien dividiendo las partículas SPH en partículas 'hijas' con distancias de suavizado más pequeñas. El primer método es común en simulaciones astrofísicas, donde las partículas evolucionan de forma natural en estados con grandes diferencias de densidad. No obstante, en simulaciones hidrodinámicas donde la densidad es habitualmente (aproximadamente) constante, esto no es un método adecuado para adaptabilidad. Por esta razón se puede utilizar la división de partículas, con varias condiciones para dividir, como distancia, superficie libre o corte de material.
Habitualmente, en astrofísica, uno desea modelar la autogravedad, a mayores de hidrodinámica pura. La naturaleza basada en partículas de SPH hace ideal combinar con este método otro que incluya gravedad basada en partículas, como por ejemplo una simulación en árbol, malla de partículas, o particle-particle particle-mesh.

## Usos en astrofísica

La resolución adaptable de SPH, conservación numérica de las cantidades físicas conservadas, y la habilidad para simular fenómenos abarcando múltiples órdenes de magnitud hacen el método ideal para cálculos computacionales en astrofísica teórica.
Simulaciones de formación y evolución de las galaxias, formación estelar, supernovas e impactos de meteoritos son algunas de las múltiples variedades de usos astrofísicos y cosmológicos de este método.
SPH es usado para modelar flujos hidrodinámicos, incluyendo posibles efectos de gravedad. Incorporar otros procesos astrofísicos que pueden resultar importantes, tales como la teoría del transporte radiativo y campos magnéticos es un área de investigación activa en la comunidad astronómica, y ha tenido algún éxito.

## Usos en simulación de fluidos

SPH se usa cada vez más para modelar, además, fluidodinámica. Esto ocurre debido a varios beneficios sobre las técnicas tradicionales basadas en malla. En primer lugar, SPH garantiza la conservación de la masa sin esfuerzo computacional adicional, ya que las partículas representan ellas mismas la masa. En segundo lugar, SPH computa la presión de contribuciones ponderadas de las partículas vecinas, en vez de resolver sistemas lineales de ecuaciones. Finalmente, y a diferencia de las técnicas basadas en malla, que deben realizar un seguimiento de los contornos fluidos, SPH crea una superficie libre directamente para la interacción de dos fases de fluido, ya que las partículas representan el fluido más denso (habitualmente agua) y el espacio vacío representa el fluido más ligero (habitualmente aire). Por estas razones es posible simular dinámica de fluidos utilizando SPH a tiempo real. Desde el punto de vista de la animación, ambos modelos basados en malla y técnicas SPH requieren de la generación de una superficie libre renderizable para poder hacer visualizaciones de calidad, utilizando técnicas de poligonización como metaball o cubos de marcha, Splatting, o un plano de interpolación. Para dinámicas de gas es más apropiado utilizar la función núcleo para producir un renderizado de la densidad de columnas de gas.
Una de las desventajas con respecto a técnicas basadas en malla es la necesidad de un alto número de partículas para producir simulaciones de resolución equivalente. En la implementación habitual de ambas técnicas, cuadrícula cartesiana y partículas SPH, múltiples vóxeles o partículas se utilizan para rellenar volúmenes de agua que luego en la visualización no son renderizados. La precisión puede ser significativamente superior con técnicas sofisticadas basadas en malla, especialmente aquellas utilizadas conjuntamente con métodos de partículas, dado que es más fácil imponer condiciones de flujo incompresible en estos sistemas. El uso de SPH para simulación de fluidos se utiliza cada vez más en animación a tiempo real y videojuegos, donde la precisión no es tan crítica como la interactividad, o en modelos físicos en los que intervengan procesos complejos difíciles de simular con modelos de malla.
Trabajos recientes de SPH para la simulación de fluidos han conseguido aumentar el rendimiento, precisión y áreas de aplicación del mismo:
* B. Solenthaler, 2009, desarrolla Predictive-Corrective SPH (PCISPH) para permitir mejores restricciones de incompresibilidad
* M. Ihmsen et al., 2010, introduce el manejo de contornos y pasos de tiempo adaptables para PCISPH, para interacciones en cuerpos rígidos más precisas.
* K. Bodin et al., 2011, reemplaza la ecuación de estado de presión estándar con una restricción de densidad, y aplica un integrador de tiempo variacional.
* R. Hoetzlein, 2012, desarrolla un método SPH eficiente basado en GPU para grandes escenas en Fluids v.3
* N. Akinci et al., 2012, introduce un manejo de contorno versátil y una técnica de acoplado bidireccional para cuerpos rígidos SPH, basada completamente en fuerzas hidrodinámicas. Este acercamiento es aplicable a diferentes tipos de simuladores SPH.
* M. Macklin et al., 2013 simula flujos incompresibles dentro del framework Position Based Dynamics, para saltos temporales mayores.
* N. Akinci et al., 2013, introduce una tensión de superficie versátil y una técnica de adhesión bidireccional que permite simular una variedad de efectos físicos interesantes que se observan en la realidad.
* J. Kyle and E. Terrell, 2013, SPH aplicado a lubricación total
* A. Mahdavi and N. Talebbeydokhti, 2015, propone un algoritmo híbrido para la implementación de condiciones de contorno para sólidos y simula flujo sobre un vertedero con una cresta afilada.
* S. Tavakkol et al., 2016, desarrolla curvSPH, el cual hace los tamaños horizontales y verticales de las partículas independientes y genera una distribución de masa uniforme a través de contornos curvos.

## Usos en mecánica de sólidos

En 1990, Libersky y Petschek han extendido SPH a la mecánica de sólidos.
La principal ventaja de SPH es la posibilidad de trabajar con una distorsión local mayor que con los métodos basados en malla. Esta funcionalidad ha sido explotada en múltiples aplicaciones en mecánica de sólidos: formación metálica, impacto, crecimiento de fallas, fracturación, fragmentación, etc. Otra ventaja importante de métodos sin malla, en general, y SPH en particular, es que los problemas derivados de la dependencia de malla se evitan de forma natural dada la naturaleza sin malla de este método. En particular, el alineamiento de malla está relacionado con problemas que implican fallas, y se evita en SPH debido al soporte isotrópico de las funciones núcleo. No obstante, las formulaciones SPH clásicas sufren de inestabilidades de tensión y falta de consistencia. A través de los últimos años, han sido introducidas diferentes correcciones para mejorar la precisión de la solución SPH. Este es el caso de Liu et al., Randles y Libersky y Johnson y Beissel, que han intentado solucionar los problemas de consistencia. Dyka et al. y Randles y Libersky ha introducido la integración de puntos de estrés en SPH y Belytschko et al. mostró más tarde que la técnica de puntos de estrés elimina la inestabilidad debido a modos singulares espurios mientras que las inestabilidades de tensión pueden evitarse utilizando un kernel de Lagrange. Muchos otros estudios recientes pueden encontrarse en la literatura dedicada a mejorar la convergencia del método SPH.