용융 및 유체는 자연 시스템에서 대량 수송의 유비쿼터스 벡터입니다. 우리는 이러한 시스템의 ab initio 분자 역학 시뮬레이션을 분석하기 위해 오픈 소스 패키지를 개발했습니다. 우리는 구조 (접합, 클러스터화, 화학 적 분석), 운송 (확산, 점도) 및 열역학 적 특성 (진동 스펙트럼)을 계산합니다.
우리는 유체의 ab initio 분자 역학 시뮬레이션에서 유래 결과를 분석하기 위해 파이썬 기반 오픈 소스 패키지를 개발했습니다. 이 패키지는 규산염 및 산화물 용융, 수성 유체 및 다양한 초임계 유체와 같은 천연 시스템의 응용 분야에 가장 적합합니다. 패키지는 파일 형식을 처리하고 결정예로 처리 두 개의 주요 라이브러리를 포함하는 파이썬 스크립트의 모음입니다. 모든 스크립트는 명령줄에서 실행됩니다. 우리는 원자 궤적과 보편적 인 분자 역학을 위해 서, UMD 파일에 저장되는 시뮬레이션의 관련 열역학 정보를 저장하는 단순화 된 형식을 제안한다. UMD 패키지를 사용하면 일련의 구조, 운송 및 열역학 적 특성을 계산할 수 있습니다. 결합 길이를 정의하고, 원자간 연결 매트릭스를 구축하고, 결국 화학적 표본을 결정합니다. 화학 종의 수명을 결정하는 것은 전체 통계 분석을 실행할 수 있습니다. 그런 다음 전용 스크립트는 원자뿐만 아니라 화학 종에 대한 평균 제곱 변위를 계산합니다. 원자 속도의 구현된 자기 상관 관계 분석은 확산 계수와 진동 스펙트럼을 산출합니다. 응력에 적용된 동일한 분석은 점도를 산출합니다. 이 패키지는 GitHub 웹 사이트를 통해 ERC IMPACT 프로젝트의 전용 페이지를 오픈 액세스 패키지로 사용할 수 있습니다.
유체 및 용융은 자연 환경에서 활성 화학 및 물리적 수송 벡터입니다. 원자 확산의 높은 비율은 화학 교류와 반응을 선호, 다양한 부력과 결합 낮은 점도 큰 질량 전송을 선호하고, 크리스탈 용융 밀도 관계는 행성 체 내부 레이어를 선호합니다. 주기적인 격자의 부재, 용융 상태에 도달하는 데 필요한 전형적인 고온, 담금질에 대한 어려움은 밀도, 확산 및 점도와 같은 일련의 명백한 특성의 실험적 결정을 매우 어렵게 만듭니다. 이러한 어려움으로 인해 대체 계산 메서드가 이 재료 클래스를 조사하기 위한 강력하고 유용한 도구를 만듭니다.
컴퓨팅 능력의 출현과 슈퍼컴퓨터의 가용성으로, 현재 비결정 분무 시스템, 몬테 카를로1 및 분자 역학(MD)1,2의 동적 상태를 연구하기 위해 두 가지 주요 수치 원자 시뮬레이션 기술이 사용됩니다. 몬테 카를로 시뮬레이션에서 구성 공간은 무작위로 샘플링됩니다. 모든 샘플링 관측이 서로 독립적이면 Monte Carlo 메서드는 병렬화로 선형 배율을 표시합니다. 결과의 품질은 난수 생성기의 품질과 샘플링의 대표성에 따라 달라집니다. 몬테 카를로 메서드는 샘플링이 서로 독립적인 경우 병렬화로 선형 배율을 표시합니다. 분자 역학(MD)에서 구성 공간은 시간 의존적 원자 궤적에 의해 샘플링된다. 지정된 구성에서 시작하여 원자 궤적은 뉴턴의 모션 방정식을 통합하여 계산됩니다. 원자간 힘은 모델 간 원자 적 잠재력 (고전 MD)을 사용하거나 첫 번째 원칙 방법 (ab initio 또는 첫 번째 원칙, MD)을 사용하여 계산할 수 있습니다. 결과의 품질은 궤적의 길이와 로컬 미니마에 끌리지 않는 능력에 따라 달라집니다.
분자 역학 시뮬레이션에는 시스템의 동적 거동과 관련된 다양한 정보가 포함되어 있습니다. 내부 에너지, 온도 및 압력과 같은 열역학 평균 특성은 계산하는 데 표준이 됩니다. 시뮬레이션의 출력 파일(들)에서 추출하고 평균화할 수 있는 반면 원자의 이동과 상호 관계와 직접적인 관련이 있는 수량은 원자 위치와 속도를 추출한 후 계산해야 합니다.
따라서 결과를 시각화하는 데 많은 노력이 전념했으며, 다양한 플랫폼에서 오픈 소스가 아닌 [Ovito3, VMD4, Vesta5, Travis6 등]에서 다양한 패키지를 사용할 수 있습니다. 이러한 모든 시각화 도구는 상호 원자 거리를 효율적으로 처리하므로 쌍 분포 함수및 확산 계수의 효율적인 계산을 허용합니다. 대규모 분자 역학 시뮬레이션을 수행하는 다양한 그룹은 시뮬레이션, 때로는 쉐어웨어 또는 커뮤니티에 대한 제한된 액세스의 다른 형태로 발생하는 다양한 다른 특성을 분석하는 독점 소프트웨어를 가지고 있으며 때로는 범위와 특정 패키지로 제한됩니다. 이러한 패키지 3,4,5,6,7 등에서 원자 결합, 기하학적 패턴 및 열역학에 대한 정보를 추출하는 정교한 알고리즘이 개발 및 구현됩니다.
여기서 우리는 분자 역학 시뮬레이션의 출력을 분석하기 위해 파이썬으로 작성된 오픈 소스 패키지인 UMD 패키지를 제안합니다. UMD 패키지를 사용하면 광범위한 구조적, 동적 및 열역학적 특성(그림 1)을 계산할 수 있습니다. 이 패키지는 GitHub 웹사이트(https://github.com/rcaracas/UMD_package)를 통해 제공되며 ERC IMPACT 프로젝트의 전용 페이지(http://moonimpact.eu/umd-package/)를 오픈 액세스 패키지로 사용할 수 있습니다.
보편적이고 쉽게 처리하기 위해, 우리의 접근 방식은 먼저 실제 분자 역학 실행의 출력 파일에서 열역학 상태 및 원자 궤적과 관련된 모든 정보를 추출하는 것입니다. 이 정보는 시뮬레이션이 실행된 원래 MD 패키지와 는 별개의 전용 파일에 저장됩니다. 유니버설 분자 역학을 의미하는 이러한 파일 “탯” 파일의 이름을 지정합니다. 이러한 방식으로, 우리의 UMD 패키지는 쉽게 적응의 최소 노력으로, 모든 소프트웨어와 AB 이니티오 그룹에 의해 사용할 수 있습니다. 현재 패키지를 사용하는 유일한 요구 사항은 아직 존재하지 않는 경우 특정 MD 소프트웨어의 출력에서 적절한 파서를 umd 파일 형식으로 작성하는 것입니다. 당분간, 우리는 VASP8 및 QBox9 패키지에 대한 이러한 파스터를 제공합니다.
그림 1: UMD 라이브러리의 순서도입니다.
물리적 특성은 파란색으로 되어 있으며 주요 Python 스크립트와 옵션은 빨간색입니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.
탯줄 파일은 ASCII 파일입니다. 일반적인 확장은 “탯.dat”이지만 필수는 아닙니다. 모든 분석 구성 요소는 실제 이름 확장에 관계없이 UMD 형식의 ASCII 파일을 읽을 수 있습니다. 그러나 여러 시뮬레이션에서 빠른 대규모 통계를 수행하도록 설계된 일부 자동 스크립트는 특히 탯.dat 확장이 있는 파일을 찾습니다. 각 물리적 특성은 한 줄로 표현됩니다. 모든 선은 키워드로 시작됩니다. 이러한 방식으로 형식은 매우 적응력이 뛰어나며 버전 전반에 걸쳐 가독성을 유지하면서 새로운 속성을 umd 파일에 추가할 수 있습니다. 토론에 사용되는 4.6 GPa 및 3000 K에서 파이롤라이트 시뮬레이션의 탯줄 파일의 처음 30선은 그림 2에 나와 있다.
그림 2: 4.6 GPa 및 3000 K에서 액체 파이롤라이트의 시뮬레이션을 설명하는 탯줄 파일의 시작입니다.
헤더다음에각 스냅숏에 대한 설명이 뒤따릅니다. 각 속성은 물리적 속성의 이름, 값 및 단위의 이름을 포함하는 한 줄로 작성되며 모두 공간으로 구분됩니다. 이 그림의 더 큰 버전을 보려면 여기를 클릭하십시오.
모든 탯줄 파일에는 원자, 전자 및 원자 유형의 수와 같은 시뮬레이션 셀의 함량을 설명하는 헤더와 유형, 화학 기호, 원자 전자 수 및 질량과 같은 각 원자에 대한 세부 정보가 포함되어 있습니다. 빈 선은 헤더의 끝을 표시하고 배드 파일의 주부와 분리합니다.
그런 다음 시뮬레이션의 각 단계가 상세합니다. 첫째, 즉각적인 열역학 파라미터는 각각 다른 선상에 각각 제공되며, 에너지, 응력, 동등한 유압, 밀도, 부피, 격자 매개변수 등(ii) 값 및 (iii) 단위와 같은 매개 변수의 이름을 지정합니다. 원자를 설명하는 테이블이 다음에 옵니다. 헤더 라인은 카르테시안 위치, 속도, 요금 및 장치와 같은 다양한 측정값을 제공합니다. 그런 다음 각 원자는 한 줄에 상세합니다. 세 개의 x, y, z 축에 해당하는 3개의 그룹으로, 항목은 감소된 위치, 시뮬레이션 셀로 접힌 카르테시안 위치, 카르테시안 위치(원자가 시뮬레이션 중에 여러 단위 셀을 통과할 수 있다는 사실을 적절히 고려함), 원자 속도 및 원자력입니다. 마지막 두 항목은 스칼라입니다: 충전 및 자기 순간.
두 개의 주요 라이브러리는 전체 패키지의 적절한 작동을 보장합니다. umd_process.py 라이브러리는 읽기 및 인쇄와 같은 탯줄 파일을 다룹니다. crystallography.py 라이브러리는 실제 원자 구조와 관련된 모든 정보를 다룹니다. crystallography.py 라이브러리의 기본 철학은 격자를 벡터 공간으로 취급하는 것입니다. 단위 셀 매개 변수와 방향은 기초 벡터를 나타냅니다. “Space”에는 일련의 스칼라 특성(특정 부피, 밀도, 온도 및 특정 수의 원자), 열역학 적 특성(내부 에너지, 압력, 열 용량 등), 일련의 텐서리얼 특성(응력 및 탄력)이 있습니다. 원자는 이 공간을 채웁니다. “격자” 클래스는 특정 볼륨, 밀도, 직접 적도 등에서 상호 격자를 얻는 등과 같은 몇 가지 짧은 계산과 함께이 앙상블을 정의합니다. “원자” 클래스는 원자를 정의합니다. 그들은 일련의 스칼라 속성 (이름, 기호, 질량, 전자 의 수 등)과 일련의 벡터 특성 (격자 클래스에 설명된 벡터 기준에 비해 공간의 위치 또는 보편적 인 카르테시안 좌표, 속도, 힘 등을 특징으로하는 위치)를 특징으로합니다. 이 두 클래스 외에도 crystallography.py 라이브러리에는 원자 거리 또는 셀 곱셈과 같은 다양한 테스트 및 계산을 수행하는 일련의 기능이 포함되어 있습니다. 요소의 주기적인 테이블도 사전으로 포함됩니다.
umd 패키지의 다양한 구성 요소는 여러 출력 파일을 작성합니다. 일반적으로 모든 ASCII 파일이며 모든 항목은 탭으로 구분되며 가능한 한 자명하게 만들어집니다. 예를 들어 물리적 속성과 단위를 항상 명확하게 나타냅니다. 탯.dat 파일은 이 규칙을 완전히 준수합니다.
UMD 패키지는 ab initio 시뮬레이션을 통해 더 잘 작동하도록 설계되었으며, 스냅숏 수는 일반적으로 단위 셀당 수백 개의 원자가 있는 수만 개의 스냅숏으로 제한됩니다. 또한 후처리 실행이 충분한 활성 메모리 리소스를 가지고 있는 기계에 대해 더 큰 시뮬레이션을 견딜 수 있습니다. 이 코드는 계산할 수 있는 다양한 속성과 오픈 소스 라이선스로 구분합니다.
탯.dat 파일은 시뮬레이션 전체에서 변경되지 않은 파티클 수를 유지하는 앙상블에 적합합니다. UMD 패키지는 시뮬레이션 상자의 모양과 볼륨이 다른 계산에서 비롯된 파일을 읽을 수 있습니다. 이는 NVT 및 NPT와 같은 가장 일반적인 계산을 포함하며, 여기서 입자, N, 온도 T, 부피, V 및/또는 압력 P의 수가 일정하게 유지됩니다.
당분간 쌍 분포 기능뿐만 아니라 분석 스크립트와 같은 원자 간 거리를 추정하는 데 필요한 모든 스크립트는 축 사이의 각도가 90 °인 입방, 테트라고날 및 orthorhombic 셀에 대한 의미직기 단위 셀에 대해서만 작동합니다.
버전 2.0의 주요 개발 라인은 거리에 대한 직교 제한을 제거하고 개별 화학 결합을 분석하고, 원자 간 각도를 분석하고, 두 번째 조정 구를 구현하는 등 스펙션 스크립트에 대한 더 많은 기능을 추가하는 것입니다. 외부 협업의 도움으로 더 큰 시스템에서 더 빠른 분석을 위해 코드를 GPU에 이식하는 작업을 진행하고 있습니다.
The authors have nothing to disclose.
이 작품은 유럽 연합 호라이즌 2020 연구 및 혁신 프로그램 (RC에 대한 보조금 계약 번호 681818 영향)에 따라 유럽 연구 위원회 (ERC)에 의해 지원되었으며, 딥 탄소 천문대의 극단적 인 물리 및 화학 이사회에 의해, 그리고 우수 자금 조달 계획의 센터를 통해 노르웨이연구위원회에 의해 프로젝트 번호 223272. 우리는 STl2816 시리즈 eDARI 컴퓨팅 보조금을 통해 GENCI 슈퍼 컴퓨터에 대한 액세스를 인정, PRACE RA4947 프로젝트를 통해 아이린 AMD 슈퍼 컴퓨터, UNINETT 시그마2 NN9697K를 통해 프램 슈퍼 컴퓨터. FS는 마리 Skłodowska-Curie 프로젝트 (보조금 계약 ABISSE No.750901)에 의해 지원되었다.
getopt library | open-source | ||
glob library | open-source | ||
matplotlib library | open-source | ||
numpy library | open-source | ||
os library | open-source | ||
Python software | The Python Software Foundation | Version 2 and 3 | open-source |
random library | open-source | ||
re library | open-source | ||
scipy library | open-source | ||
subprocess library | open-source | ||
sys library | open-source |