세포내 입자
Particle-in-cell세포내 입자법(PIC)은 일정 등급의 부분 미분 방정식을 푸는 데 사용되는 기술을 말한다. 이 방법에서, 라그랑지안 프레임의 개별 입자(또는 유체 요소)는 연속 위상 공간에서 추적되는 반면, 밀도와 전류와 같은 분포의 모멘트는 오일러리(스테이션) 메시 포인트에서 동시에 계산된다.
PIC 방법은 최초의 포르트란 컴파일러가 이용 가능하기도 전인 1955년부터 이미 사용되고 있었다.[1] 이 방법은 1950년대 후반과 1960년대 초반에 Buneman, Dawson, Hockney, Birdsall, Morse 등에 의해 플라스마 시뮬레이션으로 인기를 얻었다. 플라즈마 물리 애플리케이션에서 이 방법은 고정 메쉬에서 계산된 자기 정합성 전자기(또는 정전기) 장에서 충전된 입자의 궤적을 따르는 것에 해당한다. [2]
기술적 측면
많은 유형의 문제에 있어서, Buneman, Dawson, Hockney, Birdsall, Morse 등이 발명한 고전적인 PIC 방법은 비교적 직관적이고 실행이 간단하다. 이는 특히 플라즈마 시뮬레이션의 경우 성공 사례의 대부분을 설명할 수 있으며, 이 방법에는 일반적으로 다음과 같은 절차가 포함된다.
- 운동 방정식의 통합.
- 현장 메쉬에 대한 전하 및 전류 소스 용어 보간.
- 메쉬 점의 필드 계산.
- 메쉬에서 입자 위치로 필드 보간
평균장을 통해서만 입자의 상호작용을 포함하는 모델을 PM(Particle-mesh)이라고 한다. 직접 이항 상호작용을 포함하는 것은 PP(입자-입자)이다. 두 가지 상호작용 유형을 모두 갖는 모델을 PP-PM 또는 PM이라고3 한다.
초기부터 PIC 방법은 소위 이산 입자 잡음으로부터 오차에 취약한 것으로 인식되어 왔다. [3] 이 오류는 본질적으로 통계적인 것이며, 오늘날에는 오일러나 반 라그랑고 계획과 같은 전통적인 고정 그리드 방법에 비해 잘 이해되지 않고 있다.
현대의 기하학적 PIC 알고리즘은 매우 다른 이론적 프레임워크에 기초하고 있다. 이러한 알고리즘은 게이지 불변성 및 전하 보존, 에너지-모멘텀, 그리고 더 중요하게는 입자장 시스템의 무한 치수 동시성 구조를 보장하기 위해 이산 다지관, 차동형식 보간 및 표준 또는 비수평적 복합적 통합자의 도구를 사용한다. [4] [5] 이러한 바람직한 특징들은 기하학적 PIC 알고리즘이 보다 근본적인 현장-이론적 프레임워크에 구축되어 완벽한 형태, 즉 물리학의 변이 원리와 직접 연결되어 있기 때문이라고 할 수 있다.
PIC Plasma 시뮬레이션 기법의 기초
플라즈마 연구 공동체 내부에서는 서로 다른 종(전자, 이온, 중성미자, 분자, 먼지 입자 등)의 시스템을 조사한다. 따라서 PIC 코드와 관련된 방정식의 집합은 소위 코드의 푸셔 또는 입자 무버에서 해결되는 움직임의 방정식으로서의 로렌츠 힘, 그리고 (필드) 솔버에서 계산된 전기장과 자기장을 결정하는 맥스웰의 방정식이다.
초입자
연구된 실제 시스템은 종종 그들이 포함하는 입자의 수 측면에서 매우 크다. 시뮬레이션을 효율적이거나 아예 가능하게 하기 위해 이른바 슈퍼 파티클이 사용된다. 초입자(또는 마크로피자)는 많은 실제 입자를 나타내는 연산 입자로, 플라즈마 시뮬레이션의 경우 수백만 개의 전자나 이온일 수도 있고, 예를 들어 유체 시뮬레이션의 소용돌이 원소일 수도 있다. 로렌츠 힘으로부터의 가속은 전하 대 질량 비율에만 의존하기 때문에, 초입자는 실제 입자가 하는 것과 같은 궤적을 따를 것이기 때문에 입자의 수를 재조정할 수 있다.
초입자에 해당하는 실제 입자의 수는 입자 운동에서 충분한 통계를 수집할 수 있도록 선택해야 한다. 시스템 내 다른 종의 밀도(예를 들어, 이온과 중성미자 사이)에 유의한 차이가 있을 경우, 이들을 위해 별도의 실제와 초입자 비율을 사용할 수 있다.
입자 이동기
슈퍼 입자를 사용하더라도 시뮬레이션된 입자의 수는 대개 매우 많으며(> 105), 입자 모버는 각 입자에 대해 별도로 해야 하기 때문에 PIC에서 가장 많은 시간을 소비하는 부분이다. 따라서 푸셔는 높은 정확도와 속도를 가져야 하며 다른 계획을 최적화하는데 많은 노력을 기울여야 한다.
입자 이동기에 사용되는 계획은 암묵적 해결기와 명시적 해결기의 두 범주로 나눌 수 있다. 암묵적 해결사(예: 암묵적 오일러 체계)가 이미 업데이트된 필드에서 입자 속도를 계산하는 반면, 명시적 해결사는 이전 시간 단계의 오래된 힘만 사용하므로 간단하고 빠를 뿐 더 작은 시간 단계가 필요하다. PIC 시뮬레이션에서는 2차 명시적 방법인 도약대 방법이 사용된다. [6] 또한 뉴턴-로렌츠 방정식의 자기장을 상쇄하는 보리스 알고리즘이 사용된다.[7][8]
플라즈마 용도의 경우, leapfrog 방법은 다음과 같은 형태를 취한다.
where the subscript refers to "old" quantities from the previous time step, to updated quantities from the next time step (i.e. ), and velocities are calculated in-between the usual time steps
위의 방정식에서 대체되는 보리스 체계의 방정식은 다음과 같다.
와 함께
및 = (/ )
뛰어난 장기 정확성 때문에 보리스 알고리즘은 충전된 입자를 발전시키기 위한 사실상의 표준이다. 비관계적 보리스 알고리즘의 우수한 장기 정확도는 비록 동정적이지는 않지만 위상 공간량을 보존하기 때문이라는 사실이 밝혀졌다. 일반적으로 동시렉트릭 알고리즘과 관련된 에너지 오류에 대한 전역 경계는 여전히 보리스 알고리즘을 유지하며, 플라스마의 다단계 역학을 위한 효과적인 알고리즘이 된다. 또한 상대론적 보리스가 볼륨 보존을 위해 추진하는 것과 E와 B를 넘나드는 분야에서 일정한 속도 해결책을 가질 수 있다는 것을 보여주었다.
현장 해결사
맥스웰 방정식(또는 더 일반적으로 부분 미분 방정식(PDE))을 푸는 데 가장 일반적으로 사용되는 방법은 다음 세 가지 범주 중 하나에 속한다.
FDM을 사용하여 연속 도메인은 전기장과 자기장이 계산되는 이산형 점 그리드로 대체된다. 파생상품은 인접 격자점 값 사이의 차이에 근사치를 가지며 따라서 PDE는 대수 방정식으로 변한다.
FEM을 이용하여 연속영역은 원소의 이산 메쉬로 나뉜다. PDE는 고유값 문제로 취급되며 초기에는 각 요소에 국부화된 기본 함수를 사용하여 시험 솔루션을 계산한다. 그런 다음 필요한 정확도에 도달할 때까지 최적화를 통해 최종 해결책을 얻는다.
또한 빠른 푸리에 변환(FFT)과 같은 스펙트럼 방법은 PDE를 고유값 문제로 변환하지만, 이번에는 기본 함수가 높은 순서가 되며 전체 영역에 걸쳐 전체적으로 정의된다. 이 경우 도메인 자체가 불명확해지는 것이 아니라, 계속적으로 유지된다. 다시, 기본 함수를 고유값 방정식에 삽입한 다음 초기 시행 매개변수의 최선의 값을 결정하는 데 최적화함으로써 시험 솔루션을 찾는다.
입자 및 전계 가중치
"입자-입자-세포"라는 명칭은 플라즈마 매크로 수량(숫자 밀도, 전류 밀도 등)을 시뮬레이션 입자(즉, 입자 가중치)에 할당하는 방식에서 유래한다. 입자는 연속 영역의 어느 곳에나 위치할 수 있지만, 매크로 정수는 필드와 마찬가지로 메쉬 포인트에서만 계산된다. 매크로 양을 구하려면 입자가 형상 함수에 의해 결정되는 일정한 "모양"을 갖는다고 가정한다.
여기서 은는) 입자의 좌표이며 관측점이다 아마도 형상함수에 가장 쉽고 가장 많이 사용되는 선택은 첫 번째 순서(선형) 가중치 체계인 이른바 CIC(Cloud-in-cell(Cloud-in-cell) 체계일 것이다. 계획이 무엇이든 형상함수는 다음 조건을 만족시켜야 한다: 공간 동위원소, 전하 보존, 고차 항에 대한 증가 정확도(융합).
필드 솔버에서 얻은 필드는 그리드 포인트에서만 결정되며 입자에 작용하는 힘을 계산하기 위해 입자 이동기에 직접 사용할 수는 없지만 필드 가중치를 통해 보간해야 한다.
첨자 이(가) 그리드 점에 레이블을 지정함. 입자에 작용하는 힘이 스스로 일관성 있게 얻어지도록 하기 위해서는 격자점의 입자 위치에서 매크로 정량을 계산하고 격자점에서 입자 위치로 필드를 보간하는 방법 역시 맥스웰 방정식에 모두 나타나기 때문에 일관성이 있어야 한다. 무엇보다도, 현장 보간 체계는 추진력을 보존해야 한다. 이는 입자와 필드에 대해 동일한 가중치 체계를 선택하고 동시에[10] 필드 해결자의 적절한 공간 대칭성(즉, 자체적인 힘이 없고 작용-반응 법칙을 충족하지 않음)을 보장함으로써 달성할 수 있다.
충돌
자기장 용해체가 없어야 하므로 세포 내부에서는 입자로부터의 거리가 줄어들면서 입자에 의해 생성된 장이 감소해야 하며, 따라서 세포 내부의 입자간 힘은 과소평가된다. 이것은 충전된 입자 사이의 쿨롱 충돌의 도움으로 균형을 맞출 수 있다. 큰 시스템의 모든 쌍에 대한 상호작용을 시뮬레이션하는 것은 계산적으로 너무 비쌀 수 있기 때문에, 그 대신에 몇 가지 몬테카를로 방법이 개발되었다. 널리 사용되는 방법은 이항 충돌 모델인데, 입자가 세포에 따라 그룹화되면 이 입자들이 무작위로 쌍을 이루고, 마침내 쌍들이 충돌하는 방식이다.[11]
실제 플라즈마에서는 충전된 입자와 중성 입자 사이의 충돌과 같은 탄성 충돌, 전자 중립 이온화 충돌과 같은 비탄성 충돌에서부터 화학 반응에 이르기까지 많은 다른 반응들이 역할을 할 수 있다. 각각의 반응은 별도의 처리를 필요로 한다. 충전된 중립 충돌을 취급하는 대부분의 충돌 모델은 모든 입자가 충돌 확률에 대한 정보를 전달하는 직접 몬테카를로 방식 또는 모든 입자를 분석하지 않고 대신 각 충전된 종에 대한 최대 충돌 확률을 사용하는 null-Carlo 방식을 사용한다.[12][13]
정확도 및 안정성 조건
모든 시뮬레이션 방법에서와 마찬가지로 PIC에서도 시간 단계와 격자 크기를 잘 선택해야 관심 있는 시간 및 길이 눈금 현상이 문제에서 적절히 해결된다. 또한 시간 단계와 격자 크기는 코드의 속도와 정확도에 영향을 미친다.
명시적 시간 통합 방식(예: 가장 일반적으로 사용되는 도약대)을 사용한 정전기 플라즈마 시뮬레이션의 경우, 용액의 안정성을 보장하기 위해 그리드 크기 및 시간 단계 에 관한 두 가지 중요한 조건이 충족되어야 한다.
1차원 비자기 플라즈마의 고조파 진동을 고려해 유도할 수 있다. 후자의 조건은 엄격히 요구되지만, 에너지 절약과 관련된 실질적인 고려사항은 인자 2가 더 작은 숫자 1 순서로 대체되는 훨씬 더 엄격한 구속조건을 사용할 것을 제안한다. p - ,0.1의 사용이 대표적이다.[10][14] 당연히 플라즈마의 자연 시간 척도는 역 플라즈마 -1 에 의해 주어지고 길이 척도는 데비예 길이 에 의해 주어진다
명시적 전자기 혈장 시뮬레이션의 경우, 시간 단계는 다음 CFL 조건도 충족해야 한다.
여기서 ~ c 은 빛의 속도다.
적용들
플라즈마 물리학 내에서 PIC 시뮬레이션은 오로라 전리층의 레이저-플라즈마 상호작용, 전자 가속도 및 이온 가열, 자기유체역학, 자기재연결, 토카막의 이온온온도 및 기타 미세계측성, 나아가 진공배출, 먼지플라스마 등을 성공적으로 연구하기 위해 사용되어 왔다.
하이브리드 모델은 일부 종(Maxwellian)의 운동 처리를 위해 PIC 방법을 사용할 수 있으며, 다른 종(Maxwellian)은 유동 모델로 시뮬레이션된다.
PIC 시뮬레이션은 고체와 유체 역학의 문제에도 플라즈마 물리학의 외부에서 적용되었다. [15] [16]
전자파 입자 세포 내 계산 애플리케이션
| 연산응용 | 웹 사이트 | 면허증 | 유용성 | 표준 참조 |
|---|---|---|---|---|
| 샤프 | [17] | 소유권. | doi:10.3847/1538-4357/aa6d13 | |
| 알라딘 | [18] | GPLv3+ | Repo 열기:[19] | doi:10.5281/zenodo.49553 |
| 에포치 | [20] | GPL | 교육용 사용자에게 열려 있지만 등록이 필요한 경우:[21] | doi:10.1088/0741-335/57/11/113001 |
| FBPIC | [22] | 3-클라우스-BSD-LBNL | Repo 열기:[23] | doi:10.1016/j.cpc.2016.02.007 |
| LSP | [24] | 소유권. | ATK에서 사용 가능 | doi:10.1016/S0168-9002(01)00024-9 |
| 마술 | [25] | 소유권. | ATK에서 사용 가능 | doi:10.1016/0010-4655(95)00010-D |
| 오시리스 | [26] | 소유권. | 닫힘(MoU와 공동 작업자) | doi:10.1007/3-540-47789-6_36 |
| 피칸테 | [27] | GPLv3+ | Repo 열기:[28] | doi:10.5281/zenodo.48703 |
| 피클라스 | [29] | 소유권. | 슈투트가르트 대학교의 우주 시스템 연구소 및 공기역학 및 가스 역학 연구소에서 이용 가능 | doi:10.1016/j.crme.2014.07.005 |
| 피콘GPU | [30] | GPLv3+ | Repo 열기:[31] | doi:10.1145/2503210.2504564 |
| 스마일리 | [32] | CECIL-B | Repo 열기:[33] | doi:10.1016/j.cpc.2017.09.024 |
| iPIC3D | [34] | 아파치 라이선스 2.0 | Repo 열기:[35] | doi:10.1016/j.matcom.2009.08.038 |
| VLPL(Virtual Laser Plasma Lab) | [36] | 소유권. | 알 수 없는 | doi:10.1017/S0022377899007515 |
| 비즈그레인 | [37] | 소유권. | 에스지 테크놀로지스 사에서 상업적으로 구입할 수 있다. | |
| VPIC | [38] | 3-클라우스-BSD | Repo 열기:[39] | doi:10.1063/1.2840133 |
| VSim (Vorpal) | [40] | 소유권. | Tech-X Corporation에서 이용 가능 | doi:10.1016/j.jcp.2003.11.004 |
| 워프 | [41] | 3-클라우스-BSD-LBNL | Repo 열기:[42] | doi:10.1063/1.860024 |
| 워프X | [43] | 3-클라우스-BSD-LBNL | Repo 열기:[44] | doi:10.1016/j.nima.2018.01.035 |
| ZPIC | [45] | AGPLv3+ | Repo 열기:[46] | |
| 울트라피카 | 소유권. | Plasma Tai Innovation Corporation에서 상업적으로 사용 가능. |
참고 항목
참조
- ^ F.H. Harlow (1955). "A Machine Calculation Method for Hydrodynamic Problems". Los Alamos Scientific Laboratory report LAMS-1956.
{{cite journal}}: Cite 저널은 필요로 한다.journal=(도움말) - ^ Dawson, J.M. (1983). "Particle simulation of plasmas". Reviews of Modern Physics. 55 (2): 403–447. Bibcode:1983RvMP...55..403D. doi:10.1103/RevModPhys.55.403.
- ^ Hideo Okuda (1972). "Nonphysical noises and instabilities in plasma simulation due to a spatial grid". Journal of Computational Physics. 10 (3): 475–486. Bibcode:1972JCoPh..10..475O. doi:10.1016/0021-9991(72)90048-4.
- ^ Qin, H.; Liu, J.; Xiao, J.; et al. (2016). "Canonical symplectic particle-in-cell method for long-term large-scale simulations of the Vlasov-Maxwell system". Nuclear Fusion. 56 (1): 014001. arXiv:1503.08334. Bibcode:2016NucFu..56a4001Q. doi:10.1088/0029-5515/56/1/014001.
- ^ Xiao, J.; Qin, H.; Liu, J.; et al. (2015). "Explicit high-order non-canonical symplectic particle-in-cell algorithms for Vlasov-Maxwell systems". Physics of Plasmas. 22 (11): 12504. arXiv:1510.06972. Bibcode:2015PhPl...22k2504X. doi:10.1063/1.4935904.
- ^ Birdsall, Charles K.; A. Bruce Langdon (1985). Plasma Physics via Computer Simulation. McGraw-Hill. ISBN 0-07-005371-5.
- ^ Boris, J.P. (November 1970). "Relativistic plasma simulation-optimization of a hybrid code". Proceedings of the 4th Conference on Numerical Simulation of Plasmas. Naval Res. Lab., Washington, D.C. pp. 3–67.
- ^ Qin, H.; et al. (2013). "Why is Boris algorithm so good?" (PDF). Physics of Plasmas. 20 (5): 084503. Bibcode:2013PhPl...20h4503Q. doi:10.1063/1.4818428.
- ^ Higuera, Adam V.; John R. Cary (2017). "Structure-preserving second-order integration of relativistic charged particle trajectories in electromagnetic fields". Physics of Plasmas. 24 (5): 052104. Bibcode:2004JCoPh.196..448N. doi:10.1016/j.jcp.2003.11.004.
- ^ a b c Tskhakaya, David (2008). "Chapter 6: The Particle-in-Cell Method". In Fehske, Holger; Schneider, Ralf; Weiße, Alexander (eds.). Computational Many-Particle Physics. Lecture Notes in Physics 739. Vol. 739. Springer, Berlin Heidelberg. doi:10.1007/978-3-540-74686-7. ISBN 978-3-540-74685-0.
- ^ Takizuka, Tomonor; Abe, Hirotada (1977). "A binary collision model for plasma simulation with a particle code". Journal of Computational Physics. 25 (3): 205–219. Bibcode:1977JCoPh..25..205T. doi:10.1016/0021-9991(77)90099-7.
- ^ Birdsall, C.K. (1991). "Particle-in-cell charged-particle simulations, plus Monte Carlo collisions with neutral atoms, PIC-MCC". IEEE Transactions on Plasma Science. 19 (2): 65–85. Bibcode:1991ITPS...19...65B. doi:10.1109/27.106800. ISSN 0093-3813.
- ^ Vahedi, V.; Surendra, M. (1995). "A Monte Carlo collision model for the particle-in-cell method: applications to argon and oxygen discharges". Computer Physics Communications. 87 (1–2): 179–198. Bibcode:1995CoPhC..87..179V. doi:10.1016/0010-4655(94)00171-W. ISSN 0010-4655.
- ^ Tskhakaya, D.; Matyash, K.; Schneider, R.; Taccogna, F. (2007). "The Particle-In-Cell Method". Contributions to Plasma Physics. 47 (8–9): 563–594. Bibcode:2007CoPP...47..563T. doi:10.1002/ctpp.200710072.
- ^ Liu, G.R.; M.B. Liu (2003). Smoothed Particle Hydrodynamics: A Meshfree Particle Method. World Scientific. ISBN 981-238-456-1.
- ^ Byrne, F. N.; Ellison, M. A.; Reid, J. H. (1964). "The particle-in-cell computing method for fluid dynamics". Methods Comput. Phys. 3 (3): 319–343. Bibcode:1964SSRv....3..319B. doi:10.1007/BF00230516.
- ^ Shalaby, Mohamad; Broderick, Avery E.; Chang, Philip; Pfrommer, Christoph; Lamberts, Astrid; Puchwein, Ewald (23 May 2017). "SHARP: A Spatially Higher-order, Relativistic Particle-in-Cell Code". The Astrophysical Journal. 841 (1): 52. arXiv:1702.04732. Bibcode:2017ApJ...841...52S. doi:10.3847/1538-4357/aa6d13.
- ^ "ALaDyn". ALaDyn. Retrieved 1 December 2017.
- ^ "ALaDyn: A High-Accuracy PIC Code for the Maxwell-Vlasov Equations". GitHub.com. 18 November 2017. Retrieved 1 December 2017.
- ^ "Codes". Ccpp.ac.uk. Retrieved 1 December 2017.
- ^ "Sign in". GitLab. Retrieved 1 December 2017.
- ^ "FBPIC documentation — FBPIC 0.6.0 documentation". fbpic.github.io. Retrieved 1 December 2017.
- ^ "fbpic: Spectral, quasi-3D Particle-In-Cell code, for CPU and GPU". GitHub.com. 8 November 2017. Retrieved 1 December 2017.
- ^ "Orbital ATK". Mrcwdc.com. Retrieved 1 December 2017.
- ^ "Orbital ATK". Mrcwdc.com. Retrieved 1 December 2017.
- ^ "OSIRIS - PICKSC". Picksc.idre.ucla.edu. Retrieved 1 December 2017.
- ^ "Piccante". Aladyn.github.io. Retrieved 1 December 2017.
- ^ "piccante: a spicy massively parallel fully-relativistic electromagnetic 3D particle-in-cell code". GitHub.com. 14 November 2017. Retrieved 1 December 2017.
- ^ "PICLas".
- ^ "PIConGPU - Particle-in-Cell Simulations for the Exascale Era - Helmholtz-Zentrum Dresden-Rossendorf, HZDR". picongpu.hzdr.de. Retrieved 1 December 2017.
- ^ "ComputationalRadiationPhysics / PIConGPU — GitHub". GitHub.com. 28 November 2017. Retrieved 1 December 2017.
- ^ "Smilei — A Particle-In-Cell code for plasma simulation". Maisondelasimulation.fr. Retrieved 1 December 2017.
- ^ "SmileiPIC / Smilei — GitHub". GitHub.com. 29 October 2019. Retrieved 29 October 2019.
- ^ Markidis, Stefano; Lapenta, Giovanni; Rizwan-uddin (17 Oct 2009). "Multi-scale simulations of plasma with iPIC3D". Mathematics and Computers in Simulation. 80 (7): 1509. doi:10.1016/j.matcom.2009.08.038.
- ^ "iPic3D — GitHub". GitHub.com. 31 January 2020. Retrieved 31 January 2020.
- ^ Dreher, Matthias. "Relativistic Laser Plasma". 2.mpq.mpg.de. Retrieved 1 December 2017.
- ^ "VizGrain". esgeetech.com. Retrieved 1 December 2017.
- ^ "VPIC". github.com. Retrieved 1 July 2019.
- ^ "LANL / VPIC — GitHub". github.com. Retrieved 29 October 2019.
- ^ "Tech-X - VSim". Txcorp.com. Retrieved 1 December 2017.
- ^ "Warp". warp.lbl.gov. Retrieved 1 December 2017.
- ^ "berkeleylab / Warp — Bitbucket". bitbucket.org. Retrieved 1 December 2017.
- ^ "WarpX Documentation". ecp-warpx.github.io. Retrieved 29 October 2019.
- ^ "ECP-WarpX / WarpX — GitHub". GitHub.org. Retrieved 29 October 2019.
- ^ "Educational Particle-In-Cell code suite". picksc.idre.ucla.edu. Retrieved 29 October 2019.
- ^ "ricardo-fonseca / ZPIC — GitHub". GitHub.org. Retrieved 29 October 2019.
참고 문헌 목록
- Birdsall, Charles K.; A. Bruce Langdon (1985). Plasma Physics via Computer Simulation. McGraw-Hill. ISBN 0-07-005371-5.
- Hockney, Roger W.; James W. Eastwood (1988). Computer Simulation Using Particles. CRC Press. ISBN 0-85274-392-0.