User:Ddcampayo/SPHeric 2018 backup

Smoothed-particle hydrodynamics (SPH) is a computational method used for simulating the dynamics of continuum media, such as solid mechanics and fluid flows. It was developed by Gingold and Monaghan (1977) and Lucy (1977) initially for astrophysical problems. It has been used in many fields of research, including astrophysics, ballistics, volcanology, and oceanography. It is a mesh-free Lagrangian method (where the co-ordinates move with the fluid), and the resolution of the method can easily be adjusted with respect to variables such as density.

Method
The smoothed-particle hydrodynamics (SPH) method works by dividing the fluid into a set of discrete elements, referred to as particles. These particles have a spatial distance (known as the "smoothing length", typically represented in equations by $$ h $$), over which their properties are "smoothed" by a kernel function. This means that the physical quantity of any particle can be obtained by summing the relevant properties of all the particles that lie within the range of the kernel. For example, using Monaghan's popular cubic spline kernel, the temperature at position $$ \mathbf{r} $$ depends on the temperatures of all the particles within a radial distance $$2h$$ of $$ \mathbf{r}$$.

The contributions of each particle to a property are weighted according to their distance from the particle of interest and their density. Mathematically, this is governed by the kernel function (symbol $$ W $$). Kernel functions commonly used include the Gaussian function and the cubic spline. The latter function is exactly zero for particles further away than two smoothing lengths (unlike the Gaussian, where there is a small contribution at any finite distance away). This has the advantage of saving computational effort by not including the relatively minor contributions from distant particles.

The equation for any quantity $$A$$ at any point $$\mathbf{r}$$ is given by the equation



A(\mathbf{r}) = \sum_j m_j \frac{A_j}{\rho_j} W(| \mathbf{r}-\mathbf{r}_{j} |,h), $$

where $$ m_j $$ is the mass of particle $$ j $$, $$ A_j $$ is the value of the quantity $$ A $$ for particle $$ j $$, $$ \rho_j $$ is the density associated with particle $$ j $$, $$\mathbf{r}$$ denotes position and $$ W $$ is the kernel function mentioned above. For example, the density of particle $$ i $$ ($$ \rho_i $$) can be expressed as:



\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), $$

where the summation over $$ j $$ includes all particles in the simulation.

Similarly, the spatial derivative of a quantity can be obtained easily by virtue of the linearity of the derivative (del, $$ \nabla $$).



\nabla A(\mathbf{r}) = \sum_j m_j \frac{A_j}{\rho_j} \nabla W(| \mathbf{r}-\mathbf{r}_j |,h). $$

Although the size of the smoothing length can be fixed in both space and time, this does not take advantage of the full power of SPH. By assigning each particle its own smoothing length and allowing it to vary with time, the resolution of a simulation can be made to automatically adapt itself depending on local conditions. For example, in a very dense region where many particles are close together, the smoothing length can be made relatively short, yielding high spatial resolution. Conversely, in low-density regions where individual particles are far apart and the resolution is low, the smoothing length can be increased, optimising the computation for the regions of interest. Combined with an equation of state and an integrator, SPH can simulate hydrodynamic flows efficiently. However, the traditional artificial viscosity formulation used in SPH tends to smear out shocks and contact discontinuities to a much greater extent than state-of-the-art grid-based schemes.

The Lagrangian-based adaptivity of SPH is analogous to the adaptivity present in grid-based adaptive mesh refinement codes. In some ways it is actually simpler because SPH particles lack any explicit topology relating them, unlike the elements in FEM. Adaptivity in SPH can be introduced in two ways: either by changing the particle smoothing lengths or by splitting SPH particles into 'daughter' particles with smaller smoothing lengths. The first method is common in astrophysical simulations where the particles naturally evolve into states with large density differences. However, in hydrodynamics simulations where the density is often (approximately) constant, this is not a suitable method for adaptivity. For this reason, particle splitting can be employed, with various conditions for splitting ranging from distance to a free surface through to material shear.

Often in astrophysics, one wishes to model self-gravity in addition to pure hydrodynamics. The particle-based nature of SPH makes it ideal to combine with a particle-based gravity solver, for instance tree gravity code, particle mesh, or particle-particle particle-mesh.

Fluid dynamics


Smoothed-particle hydrodynamics is being increasingly used to model fluid motion as well. This is due to several benefits over traditional grid-based techniques. First, SPH guarantees conservation of mass without extra computation since the particles themselves represent mass. Second, SPH computes pressure from weighted contributions of neighboring particles rather than by solving linear systems of equations. Finally, unlike grid-based techniques, which must track fluid boundaries, SPH creates a free surface for two-phase interacting fluids directly since the particles represent the denser fluid (usually water) and empty space represents the lighter fluid (usually air). For these reasons, it is possible to simulate fluid motion using SPH in real time. However, both grid-based and SPH techniques still require the generation of renderable free surface geometry using a polygonization technique such as metaballs and marching cubes, point splatting, or 'carpet' visualization. For gas dynamics it is more appropriate to use the kernel function itself to produce a rendering of gas column density (e.g., as done in the SPLASH visualisation package).

One drawback over grid-based techniques is the need for large numbers of particles to produce simulations of equivalent resolution. In the typical implementation of both uniform grids and SPH particle techniques, many voxels or particles will be used to fill water volumes that are never rendered. However, accuracy can be significantly higher with sophisticated grid-based techniques, especially those coupled with particle methods (such as particle level sets), since it is easier to enforce the incompressibility condition in these systems. SPH for fluid simulation is being used increasingly in real-time animation and games where accuracy is not as critical as interactivity.

Recent work in SPH for fluid simulation has increased performance, accuracy, and areas of application:


 * B. Solenthaler, 2009, develops Predictive-Corrective SPH (PCISPH) to allow for better incompressibility constraints
 * M. Ihmsen et al., 2010, introduce boundary handling and adaptive time-stepping for PCISPH for accurate rigid body interactions
 * K. Bodin et al., 2011, replace the standard equation of state pressure with a density constraint and apply a variational time integrator
 * R. Hoetzlein, 2012, develops efficient GPU-based SPH for large scenes in Fluids v.3
 * N. Akinci et al., 2012, introduce a versatile boundary handling and two-way SPH-rigid coupling technique that is completely based on hydrodynamic forces; the approach is applicable to different types of SPH solvers
 * M. Macklin et al., 2013 simulates incompressible flows inside the Position Based Dynamics framework, for bigger timesteps
 * N. Akinci et al., 2013, introduce a versatile surface tension and two-way fluid-solid adhesion technique that allows simulating a variety of interesting physical effects that are observed in reality
 * J. Kyle and E. Terrell, 2013, apply SPH to Full-Film Lubrication
 * A. Mahdavi and N. Talebbeydokhti, 2015, propose a hybrid algorithm for implementation of solid boundary condition and simulate flow over a sharp crested weir
 * S. Tavakkol et al., 2016, develop curvSPH, which makes the horizontal and vertical size of particles independent and generates uniform mass distribution along curved boundaries

Astrophysics
Smoothed-particle hydrodynamics's adaptive resolution, numerical conservation of physically conserved quantities, and ability to simulate phenomena covering many orders of magnitude make it ideal for computations in theoretical astrophysics.

Simulations of galaxy formation, star formation, stellar collisions, supernovae and meteor impacts are some of the wide variety of astrophysical and cosmological uses of this method.

SPH is used to model hydrodynamic flows, including possible effects of gravity. Incorporating other astrophysical processes which may be important, such as radiative transfer and magnetic fields is an active area of research in the astronomical community, and has had some limited success.

Solid mechanics
In 1990, Libersky and Petschek extended SPH to Solid Mechanics.

The main advantage of SPH is the possibility of dealing with larger local distortion than grid-based methods. This feature has been exploited in many applications in Solid Mechanics: metal forming, impact, crack growth, fracture, fragmentation, etc. Another important advantage of meshfree methods in general, and of SPH in particular, is that mesh dependence problems are naturally avoided given the meshfree nature of the method. In particular, mesh alignment is related to problems involving cracks and it is avoided in SPH due to the isotropic support of the kernel functions. However, classical SPH formulations suffer from tensile instabilities and lack of consistency. Over the past years, different corrections have been introduced to improve the accuracy of the SPH solution. That is the case of Liu et al., Randles and Libersky and Johnson and Beissel, who tried to solve the consistency problem. Dyka et al. and Randles and Libersky introduced the stress-point integration into SPH and Belytschko et al. showed later that the stress-point technique removes the instability due to spurious singular modes while tensile instabilities can be avoided by using a Lagrangian kernel. Many other recent studies can be found in the literature devoted to improve the convergence of the SPH method.

Recent improvements in understanding the convergence and stability of SPH have allowed for more widespread applications in Solid Mechanics. Here are some recent examples of applications and developments of the method:


 * Libersky and Petschek modified the SPH method in order to solve Strength of Materials problems.
 * Johnson and Beissel and Randles and Libersky applied SPH to impact phenomena.
 * Bonet and Kulasegaram applied SPH to metal forming simulations.
 * William G. Hoover developed a SPH-based method whose acronym is SPAM (smooth-particle applied mechanics) to study impact fracture in solids.
 * Rabczuk and co-workers applied a modified SPH (SPH/MLSPH) to simulate fracture and fragmentation.
 * Herreros and Mabssout developed the Taylor-SPH (TSPH) method to overcome the problem of shock wave propagation in solids.

Method
The smoothed-particle hydrodynamics (SPH) method works by dividing the fluid into a set of discrete elements, referred to as particles. These particles have a spatial distance (known as the "smoothing length", typically represented in equations by $$ h $$), over which their properties are "smoothed" by a kernel function. This means that the physical quantity of any particle can be obtained by summing the relevant properties of all the particles that lie within the range of the kernel. For example, using Monaghan's popular cubic spline kernel, the temperature at position $$ \mathbf{r} $$ depends on the temperatures of all the particles within a radial distance $$2h$$ of $$ \mathbf{r}$$.

The contributions of each particle to a property are weighted according to their distance from the particle of interest and their density. Mathematically, this is governed by the kernel function (symbol $$ W $$). Kernel functions commonly used include the Gaussian function and the cubic spline. The latter function is exactly zero for particles further away than two smoothing lengths (unlike the Gaussian, where there is a small contribution at any finite distance away). This has the advantage of saving computational effort by not including the relatively minor contributions from distant particles.

The equation for any quantity $$A$$ at any point $$\mathbf{r}$$ is given by the equation



A(\mathbf{r}) = \sum_j m_j \frac{A_j}{\rho_j} W(| \mathbf{r}-\mathbf{r}_{j} |,h), $$

where $$ m_j $$ is the mass of particle $$ j $$, $$ A_j $$ is the value of the quantity $$ A $$ for particle $$ j $$, $$ \rho_j $$ is the density associated with particle $$ j $$, $$\mathbf{r}$$ denotes position and $$ W $$ is the kernel function mentioned above. For example, the density of particle $$ i $$ ($$ \rho_i $$) can be expressed as:



\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), $$

where the summation over $$ j $$ includes all particles in the simulation.

Similarly, the spatial derivative of a quantity can be obtained easily by virtue of the linearity of the derivative (del, $$ \nabla $$).



\nabla A(\mathbf{r}) = \sum_j m_j \frac{A_j}{\rho_j} \nabla W(| \mathbf{r}-\mathbf{r}_j |,h). $$

Although the size of the smoothing length can be fixed in both space and time, this does not take advantage of the full power of SPH. By assigning each particle its own smoothing length and allowing it to vary with time, the resolution of a simulation can be made to automatically adapt itself depending on local conditions. For example, in a very dense region where many particles are close together, the smoothing length can be made relatively short, yielding high spatial resolution. Conversely, in low-density regions where individual particles are far apart and the resolution is low, the smoothing length can be increased, optimising the computation for the regions of interest. Combined with an equation of state and an integrator, SPH can simulate hydrodynamic flows efficiently. However, the traditional artificial viscosity formulation used in SPH tends to smear out shocks and contact discontinuities to a much greater extent than state-of-the-art grid-based schemes.

The Lagrangian-based adaptivity of SPH is analogous to the adaptivity present in grid-based adaptive mesh refinement codes. In some ways it is actually simpler because SPH particles lack any explicit topology relating them, unlike the elements in FEM. Adaptivity in SPH can be introduced in two ways: either by changing the particle smoothing lengths or by splitting SPH particles into 'daughter' particles with smaller smoothing lengths. The first method is common in astrophysical simulations where the particles naturally evolve into states with large density differences. However, in hydrodynamics simulations where the density is often (approximately) constant, this is not a suitable method for adaptivity. For this reason, particle splitting can be employed, with various conditions for splitting ranging from distance to a free surface through to material shear.

Often in astrophysics, one wishes to model self-gravity in addition to pure hydrodynamics. The particle-based nature of SPH makes it ideal to combine with a particle-based gravity solver, for instance tree gravity code, particle mesh, or particle-particle particle-mesh.

Uses in astrophysics
Smoothed-particle hydrodynamics's adaptive resolution, numerical conservation of physically conserved quantities, and ability to simulate phenomena covering many orders of magnitude make it ideal for computations in theoretical astrophysics.

Simulations of galaxy formation, star formation, stellar collisions, supernovae and meteor impacts are some of the wide variety of astrophysical and cosmological uses of this method.

SPH is used to model hydrodynamic flows, including possible effects of gravity. Incorporating other astrophysical processes which may be important, such as radiative transfer and magnetic fields is an active area of research in the astronomical community, and has had some limited success.

Uses in fluid simulation


Smoothed-particle hydrodynamics is being increasingly used to model fluid motion as well. This is due to several benefits over traditional grid-based techniques. First, SPH guarantees conservation of mass without extra computation since the particles themselves represent mass. Second, SPH computes pressure from weighted contributions of neighboring particles rather than by solving linear systems of equations. Finally, unlike grid-based techniques, which must track fluid boundaries, SPH creates a free surface for two-phase interacting fluids directly since the particles represent the denser fluid (usually water) and empty space represents the lighter fluid (usually air). For these reasons, it is possible to simulate fluid motion using SPH in real time. However, both grid-based and SPH techniques still require the generation of renderable free surface geometry using a polygonization technique such as metaballs and marching cubes, point splatting, or 'carpet' visualization. For gas dynamics it is more appropriate to use the kernel function itself to produce a rendering of gas column density (e.g., as done in the SPLASH visualisation package).

One drawback over grid-based techniques is the need for large numbers of particles to produce simulations of equivalent resolution. In the typical implementation of both uniform grids and SPH particle techniques, many voxels or particles will be used to fill water volumes that are never rendered. However, accuracy can be significantly higher with sophisticated grid-based techniques, especially those coupled with particle methods (such as particle level sets), since it is easier to enforce the incompressibility condition in these systems. SPH for fluid simulation is being used increasingly in real-time animation and games where accuracy is not as critical as interactivity.

Recent work in SPH for fluid simulation has increased performance, accuracy, and areas of application:


 * B. Solenthaler, 2009, develops Predictive-Corrective SPH (PCISPH) to allow for better incompressibility constraints
 * M. Ihmsen et al., 2010, introduce boundary handling and adaptive time-stepping for PCISPH for accurate rigid body interactions
 * K. Bodin et al., 2011, replace the standard equation of state pressure with a density constraint and apply a variational time integrator
 * R. Hoetzlein, 2012, develops efficient GPU-based SPH for large scenes in Fluids v.3
 * N. Akinci et al., 2012, introduce a versatile boundary handling and two-way SPH-rigid coupling technique that is completely based on hydrodynamic forces; the approach is applicable to different types of SPH solvers
 * M. Macklin et al., 2013 simulates incompressible flows inside the Position Based Dynamics framework, for bigger timesteps
 * N. Akinci et al., 2013, introduce a versatile surface tension and two-way fluid-solid adhesion technique that allows simulating a variety of interesting physical effects that are observed in reality
 * J. Kyle and E. Terrell, 2013, apply SPH to Full-Film Lubrication
 * A. Mahdavi and N. Talebbeydokhti, 2015, propose a hybrid algorithm for implementation of solid boundary condition and simulate flow over a sharp crested weir
 * S. Tavakkol et al., 2016, develop curvSPH, which makes the horizontal and vertical size of particles independent and generates uniform mass distribution along curved boundaries

Uses in solid mechanics
In 1990, Libersky and Petschek extended SPH to Solid Mechanics.

The main advantage of SPH is the possibility of dealing with larger local distortion than grid-based methods. This feature has been exploited in many applications in Solid Mechanics: metal forming, impact, crack growth, fracture, fragmentation, etc. Another important advantage of meshfree methods in general, and of SPH in particular, is that mesh dependence problems are naturally avoided given the meshfree nature of the method. In particular, mesh alignment is related to problems involving cracks and it is avoided in SPH due to the isotropic support of the kernel functions. However, classical SPH formulations suffer from tensile instabilities and lack of consistency. Over the past years, different corrections have been introduced to improve the accuracy of the SPH solution. That is the case of Liu et al., Randles and Libersky and Johnson and Beissel, who tried to solve the consistency problem. Dyka et al. and Randles and Libersky introduced the stress-point integration into SPH and Belytschko et al. showed later that the stress-point technique removes the instability due to spurious singular modes while tensile instabilities can be avoided by using a Lagrangian kernel. Many other recent studies can be found in the literature devoted to improve the convergence of the SPH method.

Recent improvements in understanding the convergence and stability of SPH have allowed for more widespread applications in Solid Mechanics. Here are some recent examples of applications and developments of the method:


 * Libersky and Petschek modified the SPH method in order to solve Strength of Materials problems.
 * Johnson and Beissel and Randles and Libersky applied SPH to impact phenomena.
 * Bonet and Kulasegaram applied SPH to metal forming simulations.
 * William G. Hoover developed a SPH-based method whose acronym is SPAM (smooth-particle applied mechanics) to study impact fracture in solids.
 * Rabczuk and co-workers applied a modified SPH (SPH/MLSPH) to simulate fracture and fragmentation.
 * Herreros and Mabssout developed the Taylor-SPH (TSPH) method to overcome the problem of shock wave propagation in solids.

Software

 * Algodoo is a 2D simulation framework for education using SPH
 * pysph Open Source Framework for Smoothed Particle Hydrodynamics in Python (New BSD License)
 * DualSPHysics is an open source SPH code based on SPHysics and using GPU computing
 * Fluidix is a GPU-based particle simulation API available from OneZero Software
 * FLUIDS v.1 is a simple, open source (Zlib), real-time 3D SPH implementation in C++ for liquids for CPU and GPU.
 * GADGET is a freely available (GPL) code for cosmological N-body/SPH simulations
 * GPUSPH SPH simulator with viscosity (GPLv3)
 * SimPARTIX is a commercial simulation package for SPH and DEM simulations from Fraunhofer IWM
 * SPLASH is an open source (GPL) visualisation tool for SPH simulations
 * SPH-flow
 * SPHysics is an open source SPH implementation in Fortran
 * SYMPLER: A freeware SYMbolic ParticLE simulatoR from the University of Freiburg.
 * Physics Abstraction Layer is an open source abstraction system that supports real time physics engines with SPH support
 * Pasimodo is a program package for particle-based simulation methods, e.g. SPH
 * Punto is a freely available visualisation tool for particle simulations
 * AQUAgpusph is the free (GPLv3) SPH of the researchers, by the researchers, for the researchers