LAMMPS
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)는 샌디아 국립 연구소에서 개발한 분자동역학 프로그램이다. 메시지 전달 인터페이스(MPI)를 사용하여 병렬 통신을 활용하며 고성능 시뮬레이션을 가능하게 한다. LAMMPS는 GNU 일반 공중 사용 허가서의 조건에 따라 배포되는 자유-오픈 소스 소프트웨어이다. 리눅스, 윈도우, macOS 플랫폼에서 사용할 수 있다.
| 원저자 | 스티브 플림턴, 에이든 톰슨, 스탠 무어, 악셀 콜마이어, 리처드 버거 |
|---|---|
| 개발자 | 샌디아 국립 연구소 템플 대학교 |
| 발표일 | 1995년 |
| 안정화 버전 | 2025-07-22[1] |
| 저장소 | github.com/lammps/lammps |
| 프로그래밍 언어 | C++ |
| 운영 체제 | 크로스 플랫폼: 리눅스, macOS, Windows, FreeBSD, Solaris |
| 플랫폼 | X86, X86-64, ARM, POWER9 |
| 크기 | 534 MB |
| 언어 | 영어 |
| 종류 | 분자동역학 |
| 라이선스 | GNU 일반 공중 사용 허가서 |
| 웹사이트 | www.lammps.org |
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)는 샌디아 국립 연구소에서 개발한 분자동역학 프로그램이다.[2] 메시지 전달 인터페이스(MPI)를 사용하여 병렬 통신을 활용하며 고성능 시뮬레이션을 가능하게 한다. LAMMPS는 GNU 일반 공중 사용 허가서의 조건에 따라 배포되는 자유-오픈 소스 소프트웨어이다.[2] 리눅스, 윈도우, macOS 플랫폼에서 사용할 수 있다.
역사
[편집]LAMMPS는 1990년대 중반에 미국 에너지부 산하 두 연구소(샌디아 국립 연구소와 로렌스 리버모어 국립연구소)와 세 회사(크레이, 듀폰, 브리스톨 마이어스 스퀴브) 간의 공동 연구 개발 협약에 따라 개발되었다.[3] 목표는 재료 및 생체 분자 모델링을 위해 대규모 슈퍼컴퓨터에서 실행할 수 있는 병렬 분자 역학 코드를 만드는 것이었다.[4] 처음에는 포트란으로 작성되었으나, 이후 새로운 기능을 추가하는 데 더 많은 유연성과 용이성을 제공하기 위해 C++로 다시 작성되었다.
기능
[편집]LAMMPS는 MPI 및 OpenMP를 통한 단일 프로세서 및 병렬 실행을 모두 지원하는 매우 유연하고 확장 가능한 분자 역학 시뮬레이터이다. GPU 가속도 사용할 수 있다. LAMMPS는 입력 스크립트뿐만 아니라 그래픽 인터페이스 GUI에서도 실행할 수 있다.[5] 모듈식 오픈 소스 C++ 디자인은 다른 코드나 파이썬과 같은 언어와 쉽게 확장하거나 통합할 수 있다. 사용자는 변수를 정의하고, 루프를 사용하며, 단일 스크립트에서 여러 시뮬레이션을 동시에 실행할 수 있다.[6]
입자 및 모델 유형
[편집]LAMMPS는 단순한 원자부터 분자, 금속, 과립형 재료와 같은 복잡한 시스템에 이르기까지 다양한 입자 및 모델 유형을 지원한다. 또한 구형 및 타원형 입자, 점 쌍극자 입자, 자기 스핀과 같은 유한 크기 형상도 처리하며,[7] 이러한 입자 및 모델 유형의 하이브리드 조합을 사용할 수 있다.[6]
원자간 포텐셜
[편집]LAMMPS는 쌍방향(예: Lennard-Jones, Coulombic), 다체(예: EAM, REBO, ReaxFF[8]), 머신러닝(예: ACE, GAP), 특수 모델(예: TIP4P 물)을 포함한 광범위한 포텐셜을 지원한다. 또한 하이브리드 및 중첩 포텐셜을 수용하여 단일 시뮬레이션에서 여러 포텐셜 유형을 결합할 수 있다.
앙상블, 제약 및 경계 조건
[편집]LAMMPS는 직교 또는 비직교(삼사정계) 시뮬레이션 도메인으로 2D 및 3D 시스템을 모두 지원한다. Nose/Hoover, Berendsen, Parrinello/Rahman과 같은 여러 써모스탯 및 바로스탯 선택을 포함한다. 다양한 강체 제약과 SHAKE 및 RATTLE과 같은 고급 알고리즘을 추가적인 조화력과 결합할 수 있다. 또한 LAMMPS는 일부 몬테카를로 이동, 원자 및 분자 삽입 및 삭제, 비평형 분자 역학(NEMD), 다양한 경계 조건(예: 주기적, 수축 포장) 및 벽(정적 및 이동)을 지원한다.[3]
적분기
[편집]속도-버렛 적분기, 브라운 운동 역학, 강체 적분 등 여러 적분기를 LAMMPS와 함께 사용할 수 있다. 또한 켤레 기울기, 최급 강하, 감쇠 역학(FIRE, Quickmin)과 같은 에너지 최소화 기술과 rRESPA 계층적 시간 단계 및 고정 또는 적응형 시간 단계를 지원한다. 또한 rerun 명령을 사용하면 덤프 파일의 후처리가 가능하다.[6]
출력
[편집]LAMMPS는 시스템 속성을 모니터링하기 위한 수많은 fix 및 compute 명령을 제공한다. 시스템 온도 및 에너지와 같은 열역학 데이터가 기록되고, 위치 및 속도와 같은 원자 수준 정보는 선택한 간격으로 텍스트 또는 이진 덤프 파일을 통해 출력될 수 있다. LAMMPS는 또한 청크, 시간 평균 또는 히스토그램을 사용하여 공간적 또는 시간적 해상도에 맞게 출력을 사용자 정의할 수 있다. 시뮬레이션 상태는 텍스트 및 이진 재시작 파일로 저장할 수 있다. 또한 LAMMPS는 다양한 형식으로 원자 스냅샷을 내보낼 수 있다.[6][5]
기타
[편집]컴퓨팅 효율성을 위해 LAMMPS는 인접한 입자를 추적하기 위해 인접 목록(베를레 목록)을 사용한다. 이 목록은 짧은 거리에서 반발하는 입자 시스템에 최적화되어 있어 입자의 국부 밀도가 너무 커지지 않는다.[4]
병렬 컴퓨터에서 LAMMPS는 시뮬레이션 도메인을 작은 3D 하위 도메인으로 분할하기 위해 공간 분해 기술을 사용하며, 각 하위 도메인에는 하나의 프로세서가 할당된다. 프로세서는 하위 도메인 경계에 있는 원자에 대한 유령 원자 정보를 통신하고 저장한다. LAMMPS는 입자가 거의 균일한 밀도로 3D 직사각형 상자를 채우는 시스템에 대해 (병렬 컴퓨팅 의미에서) 가장 효율적이다. Trilinos와의 통합 덕분에 CUDA, OpenCL, HIP, SYCL), 인텔 제온 파이, OpenMP를 포함한 많은 가속기가 LAMMPS에서 지원된다.
다른 소프트웨어와 LAMMPS 연결
[편집]LAMMPS는 VMD[9] 및 OVITO[10]를 포함한 다양한 외부 분석 도구 및 시각화 엔진과 연결될 수 있다.[11] LAMMPS는 MDAnalysis[12], MDTraj[13], ASE[14]와 같은 파이썬 라이브러리와 연결하여 시뮬레이션을 설정하고 분석할 수 있다. 또한 LAMMPS는 PLUMED[15] 및 Colvars 모듈[16]과 같은 자유 에너지 계산 도구와의 연결도 지원한다.
같이 보기
[편집]각주
[편집]- ↑ “Stable Release 22 July 2025”. 2025년 7월 22일. 2026년 1월 6일에 확인함.
- ↑ 가 나 “LAMMPS Molecular Dynamics Simulator”. Sandia National Laboratories. 2022년 7월 13일에 확인함.
- ↑ 가 나 Thompson, Aidan P.; Aktulga, H. Metin; Berger, Richard; Bolintineanu, Dan S.; Brown, W. Michael; Crozier, Paul S.; In 't Veld, Pieter J.; Kohlmeyer, Axel; Moore, Stan G.; Nguyen, Trung Dac; Shan, Ray; Stevens, Mark J.; Tranchida, Julien; Trott, Christian; Plimpton, Steven J. (2022). 《LAMMPS-a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales》. 《Computer Physics Communications》 271. Bibcode:2022CoPhC.27108171T. doi:10.1016/j.cpc.2021.108171. hdl:20.500.12613/10406.
- ↑ 가 나 Plimpton, S. (1993년 5월 1일). 《Fast parallel algorithms for short-range molecular dynamics》. 《Journal of Computational Physics》 117. 1–19쪽. doi:10.2172/10176421.
- ↑ 가 나 Gravelle, Simon; Gissinger, Jacob R.; Kohlmeyer, Axel (2025). “A Set of Tutorials for the LAMMPS Simulation Package”. arXiv:2503.14020 [physics.comp-ph].
- ↑ 가 나 다 라 “General features — LAMMPS documentation”. 《LAMMPS》. 2025년 4월 11일에 확인함.
- ↑ Tranchida, Julien Guy, Wood, Mitchell A., Moore, Stan Gerald (2018). Coupled Magnetic Spin Dynamics and Molecular Dynamics in a Massively Parallel Framework (LDRD Final Report) (보고서). Albuquerque, NM, United States: Sandia National Lab (SNL-NM).
- ↑ Aktulga, H.M.; Fogarty, J.C.; Pandit, S.A.; Grama, A.Y. (2012). 《Parallel reactive molecular dynamics: Numerical methods and algorithmic techniques》. 《Parallel Computing》 38 (Elsevier). 245–259쪽. doi:10.1016/j.parco.2011.08.005.
- ↑ Humphrey, William; Dalke, Andrew; Schulten, Klaus (1996). 《VMD: Visual Molecular Dynamics》. 《Journal of Molecular Graphics》 14 (Elsevier). 33–38쪽. doi:10.1016/0263-7855(96)00018-5. PMID 8744570.
- ↑ Stukowski, Alexander (2009년 12월 15일). 《Visualization and analysis of atomistic simulation data with OVITO–the Open Visualization Tool》. 《Modelling and Simulation in Materials Science and Engineering》 18. doi:10.1088/0965-0393/18/1/015012. S2CID 42073422.
- ↑ “External Coupling and Integration”. 《LAMMPS Official Website》. 2025년 4월 12일에 확인함.
- ↑ Naughton, Fiona B; Alibay, Irfan; Barnoud, Jonathan; Barreto-Ojeda, Estefania; Beckstein, Oliver; Bouysset, Cédric; Cohen, Orion; Gowers, Richard J; MacDermott-Opeskin, Hugo; Matta, Micaela (2022). 《MDAnalysis 2.0 and beyond: fast and interoperable, community driven simulation analysis》. 《Biophysical Journal》 121 (Elsevier). 272a–273a쪽. Bibcode:2022BpJ...121..272N. doi:10.1016/j.bpj.2021.11.1368.
- ↑ McGibbon, Robert T; Beauchamp, Kyle A; Schwantes, Christian R; Wang, Lee-Ping; Hernández, Carlos X; Harrigan, Matthew P; Lane, Thomas J; Swails, Jason M; Pande, Vijay S (2014년 9월 9일). 《MDTraj: a modern, open library for the analysis of molecular dynamics trajectories》. 《Biophysical Journal》 109. 1528–1532쪽. doi:10.1016/j.bpj.2015.08.015. PMC 4623899. PMID 26488642.
- ↑ Hjorth Larsen, Ask; Mortensen, Jens Jørgen; Blomqvist, Jakob; Castelli, Ivano E.; Christensen, Rune; Dynesen, Mathias; Groves, Michael N.; Haastrup, Sten; Jensen, Per B.; Jørgen Mortensen, Jens (2017). 《The Atomic Simulation Environment—a Python library for working with atoms》. 《Journal of Physics: Condensed Matter》 29. 273002쪽. Bibcode:2017JPCM...29A3002H. doi:10.1088/1361-648X/aa680e. hdl:11250/2720492. PMID 28323250.
- ↑ Tribello, Gareth A.; Bonomi, Massimiliano; Branduardi, Davide; Camilloni, Carlo; Bussi, Giovanni (2014년 2월 1일). 《PLUMED 2: New feathers for an old bird》. 《Computer Physics Communications》 185. 604–613쪽. arXiv:1310.0980. Bibcode:2014CoPhC.185..604T. doi:10.1016/j.cpc.2013.09.018. ISSN 0010-4655. S2CID 17904052.
- ↑ Fiorin, Giacomo; Klein, Michael L.; Hénin, Jérôme (December 2013). 《Using collective variables to drive molecular dynamics simulations》. 《Molecular Physics》 111. 3345–3362쪽. Bibcode:2013MolPh.111.3345F. doi:10.1080/00268976.2013.813594. ISSN 0026-8976.
외부 링크
[편집]- LAMMPS
- 공식 웹사이트