Particle method explained

Particle methods is a widely used class of numerical algorithms in scientific computing. Its application ranges from computational fluid dynamics (CFD) over molecular dynamics (MD) to discrete element methods.

History

One of the earliest particle methods is smoothed particle hydrodynamics, presented in 1977.[1] Libersky et al.[2] were the first to apply SPH in solid mechanics. The main drawbacks of SPH are inaccurate results near boundaries and tension instability that was first investigated by Swegle.[3]

In the 1990s a new class of particle methods emerged. The reproducing kernel particle method[4] (RKPM) emerged, the approximation motivated in part to correct the kernel estimate in SPH: to give accuracy near boundaries, in non-uniform discretizations, and higher-order accuracy in general. Notably, in a parallel development, the Material point methods were developed around the same time[5] which offer similar capabilities. During the 1990s and thereafter several other varieties were developed including those listed below.

List of methods and acronyms

The following numerical methods are generally considered to fall within the general class of "particle" methods. Acronyms are provided in parentheses.

Definition

The mathematical definition of particle methods captures the structural commonalities of all particle methods.[6] It, therefore, allows for formal reasoning across application domains. The definition is structured into three parts:First, the particle method algorithm structure, including structural components, namely data structures, and functions.Second, the definition of a particle method instance. A particle method instance describes a specific problem or setting, which can be solved or simulated using the particle method algorithm. Third, the definition of the particle state transition function. The state transition function describes how a particle method proceeds from the instance to the final state using the data structures and functions from the particle method algorithm.

A particle method algorithm is a 7-tuple

(P,G,u,f,i,e,\overset{\circ}{e})

, consisting of the two data structures

\begin{align} &P:=A1 x A2 x ... x An&&theparticlespace,\\ &G:=B1 x B2 x ... x Bm&&theglobalvariablespace, \end{align}

such that

[G x P*]

is the state space of the particle method, and five functions:

\begin{align} &u:[G x P*] x NN* &&theneighborhoodfunction,\\ &f:G\{\top,\bot\}&&thestoppingcondition,\\ &i:G x P x PP x P&&theinteractfunction,\\ &e:G x PG x P* &&theevolvefunction,\\ &\overset{\circ}{e}:GG&&theevolvefunctionoftheglobalvariable. \end{align}

An initial state defines a particle method instance for a given particle method algorithm

(P,G,u,f,i,e,\overset{\circ}{e})

:

[g1,p1]\in[G x P*].

The instance consists of an initial value for the global variable

g1\inG

and an initial tuple of particles

p1\inP*

.

In a specific particle method, the elements of the tuple

(P,G,u,f,i,e,\overset{\circ}{e})

need to be specified. Given a specific starting point defined by an instance

[g1,p1]

, the algorithm proceeds in iterations.Each iteration corresponds to one state transition step

s

that advances the current state of the particle method

[gt,pt]

to the next state

[gt+1,pt+1]

.The state transition uses the functions

u,i,e,\overset{\circ}{e}

to determine the next state. The state transition function

S

generates a series of state transition steps until the stopping function

f

is

true

. The so-calculated final state is the result of the state transition function. The state transition function is identical for every particle method.

The state transition function is defined as

S:[G x P*][G x P*]

with

[gT,pT]:=S([g1,p1])

.

The pseudo-code illustrates the particle method state transition function:

1

[g,p]=[g1,p1]

2 while

f(g)=false

3 for

j=1

to

|p|

4

k=u([g,p],j)

5 for

l=1

to

|k|

6

(pj,p

kj

)=i(g,pj,p

kj

)

7

q=

8 for

j=1

to

|p|

9

(g,\overline{q})=e(g,pj)

10

q=q\circ\overline{q}

11

p=q

12

g=\overset{\circ}{e}(g)

13

[gT,pT]=[g,p]

The fat symbols are tuples,

p,q

are particle tuples and

k

is an index tuple.

is the empty tuple. The operator

\circ

is the concatenation of the particle tuples, e.g.

(p1,p2)\circ(p3,p4,p5)=(p1,p2,p3,p4,p5)

. And

|p|

is the number of elements in the tuple

p

, e.g.

|(p1,p2)|=2

.

See also

Further reading

External links

Notes and References

  1. Gingold RA, Monaghan JJ (1977). Smoothed particle hydrodynamics – theory and application to non-spherical stars. Mon Not R Astron Soc 181:375–389
  2. Libersky, L.D., Petscheck, A.G., Carney, T.C., Hipp, J.R., Allahdadi, F.A. (1993). High Strain Lagrangian Hydrodynamics. Journal of Computational Physics.
  3. Swegle, J.W., Hicks, D.L., Attaway, S.W. (1995). Smoothed Particle Hydrodynamics Stability Analysis. Journal of Computational Physics. 116(1), 123-134
  4. Liu, W.K., Jun, S., Zhang, Y.F. (1995), Reproducing kernel particle methods, International Journal of Numerical Methods in Fluids. 20, 1081-1106.
  5. D. Sulsky, Z., Chen, H. Schreyer (1994). a Particle Method for History-Dependent Materials. Computer Methods in Applied Mechanics and Engineering (118) 1, 179-196.
  6. Pahlke . Johannes . Sbalzarini . Ivo F. . A Unifying Mathematical Definition of Particle Methods . IEEE Open Journal of the Computer Society . March 2023 . 4 . 97–108 . 10.1109/OJCS.2023.3254466. 257480034 . free .