PIMD: User’s guideversion 2.6
M. Shiga (Japan Atomic Energy Agency)shiga.motoyuki@jaea.go.jp
April 26, 2024
PIMD is an open-source code written in Fortran 90 (f90) and Message Passing Interface (MPI), whichenables users to perform molecular simulations on parallel computers. It oﬀers a wide range of methods,
from basic techniques such as static and normal mode analysis, minimum energy path calculations, andclassical molecular dynamics in various ensembles, to advanced methods such as replica exchange hybridMonte Carlo, path integral molecular dynamics, metadynamics, and nonadiabatic dynamics simulations.
The software allows for simulations using classical force ﬁelds, as well as ab initio and hybrid (ONIOM or
QM/MM) potentials through interfaces with external codes. PIMD is released under the Apache License 2.0.
Copyright 2016-2022

M. Shiga

All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions andlimitations under the License.
To the best of our knowledge, the code is functioning correctly. If you come across any bugs, please do
not hesitate to contact us. Please note that we cannot be held responsible for any consequences resulting
from errors in your speciﬁc application. We kindly ask for your understanding that due to our workload, we
may not be able to respond to all questions and requests for advice.

Contents
1 Changes from old versions

12

2 Installation
2.1 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12
13

1

3 Methods
3.1 Static (STATIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Geometry optimization (GEOOPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Restarts and interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Normal mode analysis (NMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Steepest descent (SD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Box optimization (BOXOPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Full optimization (FULLOPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8 Static elastic constants (ELASTIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9 Classical molecular dynamics (MD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.1 NVE molecular dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.2 NVT molecular dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.3 Constrained molecular dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.4 NPT molecular dynamics in cubic box . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.5 NPT and NtT molecular dynamics in hexahedron box . . . . . . . . . . . . . . . . . .
3.10 Path integral simulations (PI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.1 Path integral molecular dynamics (PIMD) . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.2 Path integral hybrid Monte Carlo (PIHMC) . . . . . . . . . . . . . . . . . . . . . . . .
3.10.3 Brownian chain molecular dynamics (BCMD) . . . . . . . . . . . . . . . . . . . . . . .
3.10.4 Centroid molecular dynamics (CMD) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.5 Ring polymer molecular dynamics (RPMD) . . . . . . . . . . . . . . . . . . . . . . . .
3.10.6 Thermostatted ring polymer molecular dynamics (TRPMD) . . . . . . . . . . . . . . .
3.10.7 Centroid Intrinsic Reaction Coordinate (CIRC) . . . . . . . . . . . . . . . . . . . . . .
3.11 Replica exchange hybrid Monte Carlo (REHMC) . . . . . . . . . . . . . . . . . . . . . . . . .
3.11.1 Temperature replica exchange hybrid Monte Carlo . . . . . . . . . . . . . . . . . . . .
3.11.2 Hamiltonian replica exchange hybrid Monte Carlo . . . . . . . . . . . . . . . . . . . .
3.12 Metadynamics (MTD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13 Mean force dynamics (AFED) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13.1 Common keywords used in all the AFED methods (Free energy gradient) . . . . . . .
3.13.2 Descent search for free energy minima . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13.3 Ascent search for free energy saddles . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13.4 Automated search for free energy stationary points . . . . . . . . . . . . . . . . . . . .
3.13.5 Temperature accelerated molecular dynamics . . . . . . . . . . . . . . . . . . . . . . .
3.13.6 Logarithmic mean force dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.14 String method (STRING) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.15 Phonon calculation (PHONON) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.16 Optimization of OM action (OMOPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.17 User-made potentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.17.1 Testing forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.17.2 Testing virial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.17.3 Testing Ewald parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.18 Mechanochemistry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.19 Nonadiabatic dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.19.1 Surface hopping dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.19.2 Mean ﬁeld dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.20 Molecular dynamics of rigid molecules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.20.1 Gentlest ascent dynamics (GAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.21 Consecutive static calculations (SCAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

14
14
16
18
19
20
20
21
21
21
22
23
24
25
27
30
30
32
34
34
36
38
38
39
39
41
42
46
47
50
51
52
53
55
56
57
59
60
61
62
63
63
64
64
67
68
70
71

4 Potentials
4.1 Empirical force ﬁelds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Molecular mechanics (MM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2 TIP4P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3 Embedded atom method (EAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.4 Angular dependent potential (ADP) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.5 Pair potential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.6 Tersoﬀ potential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 User deﬁned potentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Born-Oppenheimer potentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 SMASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 ABINIT-MP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 CP2K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.4 DFTB - Internal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.5 DFTB - External . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.6 GAMESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.7 GAUSSIAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.8 MOLPRO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.9 MOPAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.10 NTCHEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.11 ORCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.12 PHASE/0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.13 QUANTUM ESPRESSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.14 TURBOMOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.15 VASP - General Words of Caution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.16 VASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.17 VASP6 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Machine learning potential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 AENET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.2 MTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71
72
72
75
76
77
80
81
81
81
82
83
83
86
88
90
91
93
94
95
96
97
100
102
104
105
107
107
108
111

5 Hybrid potentials
112
5.1 QM/MM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.1 QM/MM setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.2 QM/MM with SMASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.1.3 QM/MM with other codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.1.4 QM/MM with BEST method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.1.5 Multiple time scale QM/MM method . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2 ONIOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.1 ONIOM setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.2.2 ONIOM with any codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3 ONIOM with BEST method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6 Data analysis
120
6.1 Visualization of trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.2 Statistical analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7 Codes122
7.1 main codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2 Codes for post processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3 Subsidiary codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.4 Utility codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

3

7.5

External calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

8 Classical force ﬁeld
124
8.1 How to convert TINKER ﬁles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2 Preparation of initial structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.3 How to use CHARMM force ﬁeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
9 Keywords132
9.1 Necessary keywords in input.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.1.1 <ensemble> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.1.2 <ipotential> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
9.1.3 <method> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
9.1.4 <natom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.1.5 <nspec> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.2 Important keywords in input.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.2.1 <bath type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.2.2 <dt> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
9.2.3 <iboundary> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
9.2.4 <iprint rest> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.5 <iprint std> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.6 <iprint trj> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.7 <iread exit> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.8 <nbead> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.9 <nstep> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.2.10 <temperature> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
9.3 Frequently used keywords in input.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
9.3.1 <beadspread> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
9.3.2 <corrections> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
9.3.3 <input style> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.4 <iprint dcd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.5 <iprint xsf> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.6 <iprint xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.7 <ncolor> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.8 <nnhc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.9 <np beads> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.10 <np force> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3.11 <nref> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.3.12 <nsymbol> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.3.13 <nys> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.3.14 <pimd command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.3.15 <pressure> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
9.3.16 <time bath> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4 Speciﬁc keywords in input.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4.1 <abinit mp exe command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4.2 <abinit mp input> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4.3 <abinit mp output> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4.4 <abinit mp reuse mo> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4.5 <alchem dat dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.4.6 <alchem potential> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.4.7 <alchem scr dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.4.8 <auto string> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.4.9 <cells phonon> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

4

9.4.10 <cluster> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.11 <cp2k lib output> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.12 <cut rec 3d> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.13 <dftb exe command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.14 <dftb lib output> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.15 <dftb version> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.16 <dir save aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.17 <dir train aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.18 <dosrange phonon> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.19 <dt conv gad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.20 <dt om> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.21 <dt poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.22 <dtemp meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.23 <dual dat dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.24 <dual potential> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.25 <dual scr dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.26 <efei> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.27 <ends poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.28 <ends string> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.29 <eps best> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.30 <equation om> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.31 <fc best> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.32 <fdiff> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.33 <g03 command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.34 <g03 dip> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.35 <g03 grad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.36 <g09 command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.37 <g09 dip> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.38 <g09 grad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.39 <g09 oniom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.40 <g16 command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.41 <g16 dip> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.42 <g16 grad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.43 <g16 oniom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.44 <g98 command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.45 <g98 dip> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.46 <g98 grad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.47 <gamess command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.48 <gamma gad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.49 <gamma om> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.50 <generate aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.51 <gh meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.52 <guess poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.53 <gw meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.54 <iformat trj> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.55 <iformat xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.56 <igamma> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.57 <ikind best> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.58 <ikind xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.59 <iobest> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.60 <ioption best> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.61 <ioption meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5

142
143
143
143
143
143
143
143
144
144
144
144
144
144
144
144
145
145
145
145
145
145
146
146
146
146
146
146
146
147
147
147
147
147
147
147
147
147
148
148
148
148
148
148
148
149
149
149
149
149
149
149

9.4.62 <ioption xsf aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.63 <iorder hmc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.64 <iprint alc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.65 <iprint best> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.66 <iprint bond> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.67 <iprint box> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.68 <iprint cons> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.69 <iprint cv meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.70 <iprint dip> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.71 <iprint dual> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.72 <iprint eavg> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.73 <iprint mech> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.74 <iprint meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.75 <iprint mfe> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.76 <iprint mom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.77 <iprint nac> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.78 <iprint oniom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.79 <iprint poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.80 <iprint qmmm> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.81 <iprint rdf> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.82 <iprint rdfbead> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.83 <iprint rdfcent> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.84 <iprint rec meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.85 <iprint rgy> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.86 <iprint str> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.87 <iprint tfs> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.88 <iprint xsf aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.89 <irandom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.90 <irem type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.91 <istate init> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.92 <istep adjust hmc>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.93 <istep hmc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.94 <istep max hmc>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.95 <istep mul hmc>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.96 <istep save aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.97 <istep train aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.98 <joption meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.99 <kdisp phonon> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.100 <kdos phonon> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.101 <mech type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.102 <mg meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.103 <minxsf train aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.104 <model water> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.105 <molpro command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.106 <mopac command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.107 <ncons> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.108 <ncycle poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.109 <ngrid string> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.110 <nmeta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.111 <nmulti> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.112 <np poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.113 <nph type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6

150
150
150
150
150
150
151
151
151
151
151
151
151
151
151
152
152
152
152
152
152
152
153
153
153
153
153
153
153
154
154
154
154
154
154
154
154
155
155
155
156
156
156
156
156
157
157
157
157
158
158
158

9.4.114 <npoly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.115 <npt type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.116 <nref meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.117 <nstate> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.118 <nth type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.119 <ntt type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.120 <ntype aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.121 <oniom dat dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.122 <oniom hi potential> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.123 <oniom lo potential> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.124 <oniom scr dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.125 <orca command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.126 <params cons> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.127 <params lbfgs> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.128 <params rdf> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.129 <params rec meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.130 <phase0 proc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.131 <projcmf poly> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.132 <qe input file name> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.133 <qe output> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.134 <qmmm embedding> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.135 <qmmm dat dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.136 <qmmm potential> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.137 <qmmm scr dir> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.138 <ratio max hmc>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.139 <ratio min hmc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.140 <scan exe shell> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.141 <smash command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.142 <smash dip> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.143 <smash grad> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.144 <smash guess> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.145 <smash options> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.146 <smash threads> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.147 <temprange phonon> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.148 <temprange rem> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.149 <tension> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.150 <time baro> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.151 <time cv bath> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.152 <time cv meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.153 <time fc meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.154 <time limit meta> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.155 <train aenet> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.156 <turbo command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.157 <turbo guess> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.158 <user command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.159 <user input file> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.160 <user output file> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.161 <vasp command> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.162 <vasp keyword energy> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.163 <vasp keyword gradient> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.164 <vasp output> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.165 <vasp reuse wavefunction> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7

159
159
159
159
159
160
160
160
160
160
160
160
161
161
161
161
162
162
162
162
162
162
162
162
163
163
163
163
163
163
163
164
164
164
164
164
164
164
164
165
165
165
165
165
165
166
166
167
167
167
167
167

9.5

Optional keywords in input.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5.1 <components> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5.2 <molecules> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6 Keywords in calc.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.1 <ncalc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.2 <iprint calc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.3 <iprint std calc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.4 <istep fin calc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.5 <istep ini calc> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.6 <jformat xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.7 <jorigin xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.8 <jprint xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.9 <jspec xyz> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.10 <jxyz atom> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.11 <jxyz bead> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.12 <jxyz origin> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.13 <params lin dens> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.14 <params angl dens> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6.15 <params dih dens> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7 Keywords for MM potential in mm.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.1 <linear bonds> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.2 <genlin bonds> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.3 <angular bonds> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.4 <improper bonds> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.5 <dihedral bonds> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.6 <ncmap>, <nkind cmap> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.7 <lennard-jones> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.8 <charges>, <nbcp>, <ewald> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.9 <ewald type>, <pme ewald> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.10 <charges>, <damping>, <ewald>, <ewpol> . . . . . . . . . . . . . . . . . . . . . . .
9.7.11 <morse> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7.12 <buckingham> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8 Keywords for EAM potential in eam.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.1 <nref eam> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.2 <rcut eam> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.3 <rhor eam> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.4 <frho eam> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.5 <phir eam> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.6 <ur adp> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8.7 <wr adp> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.9 Keywords for Tersoﬀ potential in tersoﬀ.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.10 Common keywords shared with constrained MD and metadynamics . . . . . . . . . . . . . . .
9.10.1 <ncons> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.10.2 <nref> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.10.3 <params cons> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11 Common keywords shared in all types of AFED . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11.1 <afed type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11.2 <fenergy max afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11.3 <mdcycle pro afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11.4 <niter afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11.5 <nstep pre afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.11.6 <nstep pro afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8

167
167
168
168
168
170
170
170
170
170
171
171
171
171
171
171
171
171
171
172
172
173
173
174
174
175
175
176
177
178
179
179
180
181
181
182
182
182
183
183
183
184
184
184
185
185
185
185
185
185
185
186

9.11.7 <params afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12 Additional keywords in DESCENT, ASCENT and AUTO . . . . . . . . . . . . . . . . . . . .
9.12.1 <algo ascent afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.2 <ascent sampling afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.3 <dt ascent afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.4 <dt conv afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.5 <dt damp afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.6 <fdiff sampling afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.7 <gamma ascent afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.8 <hessian ascent afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.9 <niter gad2evf afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.10 <niter refresh afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.11 <nmiss auto afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.12 <ioption eigen afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.13 <nshot auto afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.14 <radius auto afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.15 <iprint xyz afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.12.16 <iprint test afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13 Additional keywords in TAMD and LogMFD . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.1 <alpha logmfd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.2 <dt logmfd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.3 <dt tamd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.4 <fenergy ini logmfd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.5 <fenergy ini tamd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.6 <gamma logmfd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.7 <ioption afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.8 <logmfd type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.9 <mass afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.10 <niter bath afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.11 <tamd type> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.12 <temperature tamd> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.13 <start afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.13.14 <start therm afed> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

186
186
186
186
187
187
187
187
187
187
187
187
188
188
188
188
188
188
188
188
189
189
189
189
189
189
189
190
190
190
190
190
190

10 Files191
10.1 Input ﬁles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.1.1 input.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.1.2 input default.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.1.3 centroid.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.1.4 eam.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.1.5 tersoﬀ.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.1.6 gamess.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.7 g03.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.8 g98.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.9 mm.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.10 molpro.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.11 mopac.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.12 orca.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.13 structure.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.1.14 turbo.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
10.1.15 TAMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
10.1.16 LogMFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

9

10.2 Output ﬁles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.1 afed.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.2 afed.xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.3 afed weight.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.4 alc.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.5 best.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.6 bond.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.7 box.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.8 box.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.9 calc.xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.10 charges.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.11 cons.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.12 cv.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.13 dip.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.14 dipole.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.15 dipole scan.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.16 dual.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.17 eavg.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.18 forces.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.19 forces scan.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.20 force.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.21 force high.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.22 force low.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.23 hessian.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.24 logmfd.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.25 mech.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.26 meta.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.27 mfe.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.28 nac.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.29 oniom.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.30 phonon dos.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.31 phonon energy.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.32 phonon kdisp.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.33 phonon kdos.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.34 pot.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.35 potential scan.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.36 qmmm.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.37 rdf.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.38 rgy.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.39 standard.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.40 string.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.41 string.xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.42 string ﬁnal.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.43 template.xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.44 tfs.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.45 trj.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.46 trj.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.47 trj.xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.48 rec.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.49 vel.dcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Restart ﬁles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.1 afed.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10

194
194
195
195
196
196
196
197
197
198
199
199
199
200
200
200
200
201
201
202
202
202
202
203
203
203
204
204
204
205
205
205
205
206
206
206
206
207
207
207
209
209
209
209
209
210
211
211
211
212
212
212

10.3.2 auto.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.3 averages.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.4 bath.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.5 box.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.6 cstate.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.7 cv.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.8 gad.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.9 geometry.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.10 hills.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.11 step.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.12 string.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

214
214
214
215
215
215
215
215
215
216
216

11 Theoretical background216
11.1 Mechanochemistry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2 Steepest descent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.3 Box optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.3.1 Zero pressure condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.3.2 Finite pressure condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.3.3 Finite tension condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.4 Static elastic constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.5 Normal mode analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.6 Phonon calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.7 String method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11.8 OM action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.9 NVE molecular dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.9.1 Velocity-Verlet algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
11.10NVT molecular dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
11.10.1 Nosé-Hoover method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
11.10.2 Nosé-Hoover chain method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.10.3 Massive Nosé-Hoover chain method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
11.11Path integral methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
11.11.1 Fictitious mass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
11.11.2 Thermostats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
11.11.3 Barostats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.11.4 How to set up RPMD and CMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
11.11.5 Dual-level hybrid Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
11.11.6 Fourth order path integral hybrid Monte Carlo . . . . . . . . . . . . . . . . . . . . . . 234
11.11.7 Translational and rotational corrections . . . . . . . . . . . . . . . . . . . . . . . . . . 234
11.12Replica exchange hybrid Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.12.1 Temperature replica exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.12.2 Hamiltonian replica exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.13Constrained MD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
11.14Metadynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
11.15Conventional and well tempered metadynamics . . . . . . . . . . . . . . . . . . . . . . . . . . 239
11.15.1 Coordination number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.16Well sliced metadynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.17Mean force dynamics (AFED) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.17.1 Steepest descent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
11.17.2 Gentlest ascent dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.17.3 Automated search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.17.4 Temperature accelerated molecular dynamics . . . . . . . . . . . . . . . . . . . . . . . 249
11.17.5 Logarithmic mean force dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

1111.18Nonadiabatic dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.19Hybrid potentials: ONIOM and QM/MM . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.20Multiple time scale method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.21BEST method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.22Ewald sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.23Polarizable force ﬁeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.24Dihedral bond potential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 Publications

1

251
252
254
255
255
256
259
259

Changes from old versions

Starting from version 2.2.0, a new initial geometry format has been introduced. The previous ﬁle, centroid.dat,has been replaced by a new ﬁle called structure.dat. The format of structure.dat follows the xyz-like format,
which is explained in Section 10.1.13, and includes information on the number of atoms and their atomic
species. As a result, the keywords <natom> and <nspec> are no longer necessary in the input.dat ﬁle, except
in certain special cases.
It is still possible to use the old input format, centroid.dat, together with the keywords <natom> and<nspec>, by designating the keyword <input_style> = OLD. However, the default input style is now<input_style> = NEW, which employs the new structure.dat ﬁle format.
This change was implemented to facilitate the use of hybrid potentials (QM/MM, ONIOM) and methods
utilizing collective variables (constrained MD, metadynamics, AFED).

2

Installation

First of all, decompress the tar ﬁle> tar xvfz pimd-x.x.x.tar
In the main directory, the following directories should be present:> lsexamples webpage lib makefiles manual source tools>
Now, let’s create a new directory where the compilation will be done:> mkdir compile
and put all the necessary ﬁles there. First, copy all the source codes from the source directory to the compile
directory:> cp source/* compile/
Here, makeﬁle and makeﬁle.inc are necessary. For speciﬁc platforms, they are available in the makeﬁlesdirectory. However, for other platforms, they must be prepared by the user. Second, BLAS and LAPACK
libraries are required. They can be downloaded from the NETLIB website: Download the appropriate version
for your computer system. These libraries are mainly used for matrix diagonalization in the diag.F routine.
To compile, type> cd compile; make veryclean; make; cd ..
If successful, the serial executable pimd.x and the parallel executable pimd.mpi.x will be created. If not, edit
makeﬁle appropriately and try again.
NOTE: If you see this kind of error, it is likely that your LAPACK library is not linked properly:
12diag.o:diag.F:(.test+0x488): undefined reference to ‘zgeev’
diag.o:diag.F:(.test+0x9f8): undefined reference to ‘dsyev’
If linking the LAPACK library is diﬃcult, you can use an internal routine for the diagonalization of real
symmetric matrices by including LAPACK = -Dnolapack in makeﬁle. However, there will be no access to the
diagonalization of complex matrices, which are not covered in the internal routine. Thus, some methods
that use the diagonalization of complex matrices, such as phonon calculations, nonadiabatic dynamics, etc.,
cannot be used if the “LAPACK = -Dnolapack” option is employed.
NOTE: If you see an error while compiling ﬀtpack.F, use the “-w” option in OPTS or switch on PME =-Dnopme.
Finally, copy all the executable ﬁles with names ending in *.x (including pimd.x and pimd.mpi.x) to a
directory (/xxx) where the PATH is accessible. In bash, you can set it up like this:echo "export PATH=$PATH:/xxx" >> ~/.bashrc
Now the calculations are ready to run.

2.1

DockerThis is an instruction for using a preinstalled PIMD image linked to QE and AENET.
• Step 1: Download Docker from the website appropriate for your operating system, for example, macOS:https://hub.docker.com/editions/community/docker-ce-desktop-mac/• Step 2: Create a user directory for Docker, for example, ”test”:
mkdir ~/test
cd ~/test• Step 3: Download the PIMD image from the website:
https://hub.docker.com/r/cometscome/pimd_aenet_qe
To download the image, launch a terminal and type:docker pull cometscome/pimd_aenet_qe• Step 4: To activate Docker, type:docker run --shm-size=2gb -v ~/test:/home/pimder/home --rm -it cometscome/pimd_aenet_qe
The shared memory size should be adjusted depending on the number of parallel processes you will beusing. After activating Docker, you can access the test directory at /home/pimder/home.
• Step 5: You’re done! Conﬁrm that PIMD is running correctly with the following examples:cd ~/pimd/examples/SiO2/qe_md/
mpirun -np 2 pimd.mpi.x
cd ~/pimd/examples/SiO2/aenet_pimd_nvt/
mpirun -np 2 pimd.mpi.x
cd ~/pimd/examples/SiO2/qe_slhmc/
mpirun -np 2 pimd.mpi.x
13

3

Methods

To check that everything is correct, it is recommended to start by running simple calculations. In this section,
the keywords necessary for each method are explained by showing several input examples. In most of theexamples, a single water molecule with the ﬂexible simple point charge model (ﬂexible SPC) potential [43] isemployed. The ﬂexible-SPC potential can be speciﬁed using the keyword:<ipotential>
WATER
Note that this is a special case where the potential information is implemented internally in the PIMD code.
In cases other than <ipotential> = WATER, additional ﬁles associated with the potential information must
be prepared, which will be explained in Section 4.

3.1

Static (STATIC)As an example, a set of input ﬁles for the static calculation of ﬂexible-SPC water is available. Therefore, let
us copy it to a new directory called run:> mkdir run> cp -r examples/H2O/water_static run
and navigate to that directory:> cd run/water_static/
Here, three ﬁles are available: input.dat, input default.dat, and structure.dat. In ALL calculations,
two input ﬁles, input.dat and input default.dat, must be prepared in the execution directory. The ﬁle input default.dat is always available from the examples directory. The input ﬁles contain the main information
to set up the calculation. It is expected that input.dat is edited by the user, while input default.dat is kept
unchanged. The ﬁle input default.dat includes all the default values that are not speciﬁed in input.dat. Thismeans that when running the calculation, the code ﬁrst looks for necessary data in input.dat, and if the data
is not found there, the code seeks it alternatively in input default.dat. Therefore, input.dat does not have tocontain the full set of data if the default setup is satisfactory.
Some additional ﬁles having the name *.dat may be necessary depending on the conditions mainly speciﬁedby input.dat. The *.dat ﬁles should also be in the execution directory unless speciﬁed. For instance, in order tostart a new calculation, the initial geometry ﬁle called structure.dat must be prepared. The ﬁle structure.dat
consists of a list of Cartesian coordinates of atoms:N
unit
a1, x1 y1 z1 n1
a2, x2 y2 z2 n2...
where N is the number of atoms, unit is the unit of atomic coordinates (BOHR” or ANGSTROM”),
ai, xi, yi, zi, ni are the atomic element, the x, y, and z components of atomic coordinates, and theatomic kind of atom i.
Before running, let’s examine the contents of input.dat. You will ﬁnd a list of keywords enclosed inbrackets <...>, followed by a few lines that are the essential part. The remaining parts of this ﬁle are justcomments, so you can keep them, remove them, or modify them as you prefer. The order of appearance of
the keywords is arbitrary. The details of each keyword are listed in Section 9.
Let’s examine the keywords one by one. First,<method>
STATIC
14

This keyword sets the simulation method. In this case, “STATIC” corresponds to a static calculation.
<ipotential>
WATER
This keyword sets the potential model. In this case, “WATER” corresponds to the ﬂexible-SPC water
potential (the order should be O, H, H in this special case).
<iboundary>0This keyword sets the boundary condition. In this case, “0” means the free boundary condition, i.e., an
isolated system. To begin the calculation, type
> pimd.x
Then the following message will appear on the screen:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++PIMD version x.x.x
Author:M. Shiga

Last Updated:

Xxx. xx, 20xx.

Copyright(C) 20xx

M. Shiga

All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions andlimitations under the License.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Method:static.

Model:

water.

Ensemble: none.
Atomic positions read from structure.dat. Molecular configuration initialized.
Free boundary condition - isolated system.
==============================================================================
potential energy values
bead
hartreekcal/molkJ/mol15

-----------------------------------------------------------------------------1
0.00036497
0.229023
0.958230-----------------------------------------------------------------------------Normal termination of pimd.

To start the calculation again, remove the output ﬁles *.out, trajectory ﬁles *.xyz, and the restart ﬁles *.ini
before executing. To run the calculation as a background job, type
> pimd.x >> monitor.out &The job will end by creating an output ﬁle named forces.out that contains energy and forces data, as explainedin Section 10.2.

3.2

Geometry optimization (GEOOPT)

Limited-memory Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm [2, 3] is used for geometry optimization.
As an example, a set of input ﬁles for the ﬂexible-SPC water is available. So, let us copy it to the directoryrun:> cp -r examples/H2O/water_geoopt run
and enter that directory:> cd run/water_geoopt/
To prepare the ﬁle input.dat, all the keywords in Section 3.1 are important. In addition, the following
keywords are also important.
<method>
GEOOPT
This keyword sets the simulation method. In the present case, GEOOPT corresponds to the geometry
optimization.
<nstep>10This keyword sets the number of steps. In the case of geometry optimization, this corresponds to the
maximum number of optimization steps. Here it is set to be 10 steps.
<iread_exit>
1
This keyword sets the interval step of checking the existence of exit.dat ﬁle for interruption (See Section 3.3).
In the present case, every step.
<iprint_std>
1
This keyword sets the print interval of the standard output standard.out. In the present case, every step.
<iprint_rest>
116

This keyword sets the interval step of generating (and overwriting) the restart ﬁles, *.ini. In the present
case, every step.
<iprint_trj>
1This keyword sets the print interval of the standard trajectory ﬁle trj.out. In the present case, every step.
<iprint_xyz>
1This keyword sets the print interval of the trajectory ﬁle in xyz format trj.xyz. In the present case, every
step.
<params_lbfgs>
1.d-4, 1.d-5,

1.d-5,

1.d-6

This keyword sets the convergence criteria in the limited memory BFGS method. The four numbers correspond to the maximum displacement in au (bohr), the root-mean-square displacement in au (bohr), themaximum force in au (hartree/bohr), and the root-mean-square force in au (hartree/bohr), respectively.
Before running, make sure that the ﬁles input.dat, input default.dat and structure.dat are present in theexecution directory. Now, to start running the calculation, type
> pimd.x
Then the following message will appear on the screen:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++PIMD version x.x.x
Author:M. Shiga

Last Updated:

Xxx. xx, 20xx.

Copyright(C) 20xx

M. Shiga

All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions andlimitations under the License.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Method:geometry optimization.

Limited memory BFGS - http://users.iems.northwestern.edu/~nocedal/lbfgs.html
J. Nocedal, "Updating Quasi-Newton Matrices with Limited Storage",17

Mathematics of Computation, 35, 773-782 (1980).
D. C. Liu and J. Nocedal, "On the Limited Memory Method for Large Scale
Optimization", Mathematical Programming B, 45, 3, 503-528 (1989).
Modified code written by M. Shiga.
Model:

water.

Ensemble: none.
Atomic positions read from structure.dat. Molecular configuration initialized.
Free boundary condition - isolated system.
==============================================================================
stepenergy [au]max displ
rms displ
max forcerms force
0.00001
0.00000
0.000100
0.000010-----------------------------------------------------------------------------00.00036497
0.00000
0.00000
0.0092210.001357
10.03310297
0.75483
0.05153
0.038251
0.00603720.00021197
0.719930.04915
0.008308
0.001669
30.00005349
0.010120.001170.003593
0.000618
40.00000292
0.013510.001510.000759
0.00011450.00000005
0.003350.000400.000184
0.00002660.00000000
0.000460.00004
0.000007
0.000001
70.00000000
0.00001
0.00000
0.000000
0.000000
Restart files: geometry.ini, step.ini.
Normal termination of pimd.

The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively. NOTE: Sometimes the GEOOPT calculation stops with an error message implying that theconvergence criterion is too strict. In this case, it is recommended to set larger values for those speciﬁed by
the keyword <params_lbfgs>.

3.3

Restarts and interruptions

For each run, the restart ﬁles are automatically created at the end of the calculation, unless it is turned oﬀ
intentionally by setting the keyword <iprint_rest> to -1. To be prepared for an unexpected error, such asa sudden electricity power down, it is possible to print restart ﬁles from time to time during the run. To dothis, the print interval of restart ﬁles are set by the keyword <iprint_rest>. Also one is encouraged to savethe restart ﬁles as well as the output ﬁles from time to time.
> cp *.ini *.out *.xyz somewhere
IMPORTANT: The restart ﬁles are always overwritten on the top of the old ones.
If you wish to stop the job during the run, the soft exit would be useful. To do this, you only need tocreate a blank ﬁle called exit.dat in the execution directory as> touch exit.dat
During the run, the code checks the existence of the ﬁle exit.dat once in a while, with the frequency speciﬁedby the keyword <iread_exit>. When the code ﬁnds exit.dat, the job ends as soon as possible after generating18

the full set of restart ﬁles. The ﬁle exit.dat is automatically removed at the end of the job so as to restart
the next job easily.
NOTE: Sometimes in the MM potentials, it happens that the calculation slows down because the disk
access to exit.dat too often could consume time. This can be controlled by the keyword <iread_exit>. For
instance, by setting <iread_exit> = 100 the disk access is done every 100 steps. The soft exit could becompletely disabled by setting <iread_exit> = -1.
The current step is written in a restart ﬁle called step.ini. To restart, the number of steps, which isdesignated by the keyword <nstep> in the ﬁle input.dat, should be always larger then the current step. So,
to extend the trajectory after a job has been completed, the number of steps should be increased. Without
doing this, the restarted job will stop at the beginning, after the calculation for the current step.
Now, in order to restart the job, just type again> pimd.xor> pimd.x >> monitor.out &At the beginning of the run, the code automatically searches for the restart ﬁles named geometry.ini, step.ini,
etc. in the execution directory. If the code does not ﬁnd it, the default initial condition is adopted in therestarted calculation.

3.4

Normal mode analysis (NMA)

In normal mode analysis, the Hessian matrix is obtained numerically as the second derivative of the potential
energy surface with respect to atomic positions.
As an example, a set of input ﬁles for ﬂexible-SPC water is available, so let’s copy it to the run directorywith the following command:> cp -r examples/H2O/water_nma run
Then, navigate to that directory:> cd run/water_nma/
Before running the simulation, the optimized structure should be prepared. This can be done manuallyby creating a structure.dat ﬁle or by using the restart ﬁle geometry.ini, which is produced at the end of the
GEOOPT calculation.
To prepare the input ﬁle input.dat, all the keywords in Section 3.1 are important. In addition, the following
keywords are required:<method>
NMA
This keyword sets the simulation method, and in this case, it corresponds to normal mode analysis.
<fdiff>
1.d-4
This keyword sets the ﬁnite diﬀerence shift of the geometry in bohr, which is used to compute the Hessian
matrix. Here, a value of 10−4 bohr is used. The results are written to the output ﬁle named nma.out in
GAUSSIAN 98-like format.

19

3.5

Steepest descent (SD)

From a given starting point, the steepest descent trajectory is computed as the minimum energy path in the
mass-weighted coordinate space. When the starting geometry is a saddle point, the trajectory corresponds
to the intrinsic reaction coordinate (IRC). The theoretical background of this method is brieﬂy explained in
Section 11.2.
As an example, a set of input ﬁles for ﬂexible-SPC water is available. Let us copy it to the directory run:> cp -r examples/H2O/water_sd run
and enter that directory:> cd run/water_sd
To prepare the ﬁle input.dat, all the keywords in Sections 3.1 and 3.2 are important. In addition, thefollowing keywords are also important:<method>SD
This keyword sets the simulation method. In the present case, ”SD” corresponds to the steepest descentmethod.
<nstep>10This keyword sets the number of steps. In the case of an SD calculation, this corresponds to the number ofSD steps.
<dt>
0.01d0This keyword sets the SD step in the unit of hartree0.5 femtoseconds. The output ﬁles named *.out and therestart ﬁles named *.ini will be explained in Section 10.2 and Section 10.3, respectively.

3.6

Box optimization (BOXOPT)The box optimization can be done for a system with the periodic boundary condition. The theoreticalbackground of this method is brieﬂy explained in Section 11.3. The limited-memory Broyden-FletcherGoldfarb-Shanno (BFGS) algorithm [2, 3] is used.
As an example, a set of input ﬁles for the face-centered-cubic nickel crystal using the EAM potential isavailable. So, let us copy it to the directory run:> cp -r examples/Ni/eam_boxopt run
and enter that directory:> cd run/eam_boxopt
To prepare the ﬁle input.dat, all the keywords in Sections 3.1 and 3.2 are important. In addition, thefollowing keywords are also important. In addition, the following keywords are also important.
<method>
BOXOPT
This keyword sets the simulation method. In the present case, “BOXOPT” corresponds to box optimization.
<iprint_box>
120

This keyword sets the print interval of the box matrix to the ﬁle box.out. In the present case, “1” means
every step.
<iprint_rest>
1
This keyword sets the print interval of the restart ﬁles *.ini. In the present case, “1” means every step.
<fdiff>
1.d-4
This keyword sets the ﬁnite diﬀerence shift of the box matrix elements in Bohr, which is used to computethe virial matrix. In the present case, 10−4 Bohr is used.
<iboundary>1
33.20000000
0.00000000
0.00000000

0.00000000
33.20000000
0.00000000

0.00000000
0.00000000
33.20000000

This keyword sets the boundary condition and the initial box. In the present case, “1” means periodic
boundary and the following three lines are the matrix of the initial box. In the present case, a cubic box
with a side length of 33.2 Bohr is used. The output ﬁles *.out and the restart ﬁles *.ini will be explained in
Section 10.2 and Section 10.3, respectively.

3.7

Full optimization (FULLOPT)To optimize both the box and geometry, one can use the following method:<method>
FULLOPT

3.8

Static elastic constants (ELASTIC)

The static elastic constants can be computed using the following method:<method>
ELASTICThis is usually done after optimizing both the box and geometry (FULLOPT). In this case, the ﬁles geometry.ini and box.ini are read at the beginning of the run. The static elastic constants are computed as thenumerical derivatives of the stress tensor. The accuracy can be controlled by setting the ﬁnite diﬀerence
parameter<fdiff>
1.d-4
In PIMD, the elastic constants can be computed for orthorhombic boxes only.

3.9

Classical molecular dynamics (MD)In PIMD, classical molecular dynamics (MD) simulations of various ensembles, including NVE (microcanonical), NVT (canonical), NPT (isobaric-isothermal), and NtT (isotensional-isothermal), are implemented. The
temperature is controlled using Nosé-Hoover, Nosé-Hoover chain, and massive Nosé-Hoover chain methods
in the NVT, NPT, and NtT ensembles. For simulations of isotropic liquids and anisotropic solids underpressure, a cubic and parallel-piped hexahedron box can be used, respectively, in the NPT ensemble. For
simulations of anisotropic solids under external stress, a parallel-piped hexahedron box can be used, where
the thermodynamic tension t is given as a real symmetric 3 × 3 matrix.
21

3.9.1

NVE molecular dynamics

The equation of motion for the NVE ensemble, i.e., Newton’s equation, is solved using the velocity Verlet
algorithm. The theoretical background is brieﬂy explained in Section 11.9.
As an example, a set of input ﬁles for ﬂexible-SPC water is available. Let us copy it to the directory run
by entering the following command:> cp -r examples/H2O/water_md_nve run
Then, navigate to the directory:> cd run/water_md_nve/
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. Additionally,
the following keywords are important:<method>
MD
This keyword sets the simulation method. In the present case, MD stands for classical molecular dynamics.
<ensemble>
NVE
This keyword sets the statistical ensemble. In the present case, NVE stands for the NVE ensemble.
<dt>
0.25d0This keyword sets the step size in femtoseconds. In the present case, the step size is 0.25 femtoseconds.
<nstep>100
This keyword sets the number of steps.
<temperature>
300.d0This keyword sets the temperature in Kelvin. If the restart ﬁle geometry.ini exists, the atomic positions andvelocities are read from this ﬁle. Otherwise, the velocities are newly generated according to the MaxwellBoltzmann distribution at this temperature. The temperature is not controlled during the run in the NVE
MD method.
<corrections>
1 1This keyword sets the translational and rotational corrections. In the present case, both the translationaland rotational corrections are applied at the initial step.
<iprint_dip>
1
This keyword sets the print interval of the dipole moment.
<iprint_rdf>
10This keyword sets the print interval of the atomic pair distribution. In the present case, it is set to every ten
steps. When <iprint_rdf> is activated, it is useful to set
22

<params_rdf>
1.d0 5.d0 0.01d0
This keyword sets the mesh parameters for the atomic pair distributions. In the present case, the mesh points
are ranged from 1.0 bohr to 5.0 bohr with an increment of 0.01 bohr.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
3.9.2

NVT molecular dynamics

In the PIMD code, molecular dynamics for the NVT ensemble is based on massive Nosé-Hoover chain
thermostats [8, 10, 11]. The equation of motion is solved using the reversible RESPA algorithm [12, 13].
The theoretical background of NVT molecular dynamics is brieﬂy explained in Section 11.10.
As an example, a set of input ﬁles for the ﬂexible-SPC water is available. Let us copy it to the directoryrun:> cp -r examples/H2O/water_md_nvt run
Then navigate to that directory:> cd run/water_md_nvt
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important:<method>
MD
This keyword sets the simulation method. In the present case, ”MD” corresponds to classical molecular
dynamics.
<ensemble>
NVT
This keyword sets the statistical ensemble. In the present case, ”NVT” corresponds to the NVT ensemble.
<dt>
0.25d0This keyword sets the step size in femtoseconds.
<nstep>100
This keyword sets the number of steps.
<temperature>
300.d0This keyword sets the temperature in kelvin. This keyword sets the temperature in Kelvin. If the restart ﬁlegeometry.ini exists, the atomic positions and velocities are read from this ﬁle. Otherwise, the positions areread from centroid.dat and the velocities are generated at this temperature as an initial run. The temperature
is controlled during the run.
<corrections>
0 0This keyword sets the translational and rotational corrections. In the present case, the corrections are notapplied at the initial step.
23

<iprint_dip>
10This keyword sets the print interval of the dipole moment. In the present case, it is printed every ten steps.
<iprint_rdf>
10This keyword sets the print interval of the atomic pair distribution. In the present case, it is printed every
ten steps.
<params_rdf>
1.d0 5.d0 0.01d0
This keyword is valid when <iprint_rdf> is activated. It sets the mesh parameters for the atomic pair
distributions. In the present case, the mesh points are ranged from 1.0 Bohr to 5.0 Bohr with an incrementof 0.01 Bohr.
<bath_type>
MNHC
This keyword sets the type of thermostats. When NHC is chosen, a Nose-́Hoover thermostat chain (NHC)
is attached to the whole system. When MNHC is chosen, massive Nosé-Hoover thermostat chains (MNHC)
are attached to each of the degrees of freedom.
<nnhc>
4
This keyword sets the chain length of the MNHC thermostats to four.
<ncolor>
1
This keyword sets the multiplicity of the MNHC thermostats to one.
<time_bath>
10.d0This keyword controls the mass of the thermostats, which is related to the characteristic time scale of thesystem in femtoseconds, designated by this keyword. The mass of the thermostats could be set to a value
close to the fastest vibrational time scale of the system. Here, it is set to 10 femtoseconds, which is close to
the oscillation period of 8.881 femtoseconds of the anti-symmetric OH stretching mode frequency of water,which is 3756 cm−1 .
<nys>5This keyword controls the step size for the MNHC thermostats, with the thermostats updated ﬁve times per
step in the present case.
The output ﬁles named *.out and the restart ﬁles named *.ini will be explained in Section 10.2 andSection 10.3, respectively.
3.9.3

Constrained molecular dynamics

In NVT and NVE molecular dynamics simulations, harmonic constraints can be added to calculate freeenergy gradients, which are the negative mean force imposed on each constraint. The free energy proﬁlecan be obtained by integrating with respect to the shift in the constraints. To accomplish this, independent
trajectories (beads) with diﬀerent constraint equilibrium positions are calculated. The following example isfor a water molecule:24<nbead>128
This keyword sets the number of independent trajectories (beads) with diﬀerent constraints, in this case,“128”.
<ncons>
1
1 1 2

1.3

2.5

This keyword sets the number of constraints followed by the parameters of each constraint. In this case,there is one constraint of type “1” (interatomic distance) between atoms “1” and “2”. As a function of thebead number, the position of the constraint is shifted linearly from 1.3 bohr to 2.5 bohr.
<params_cons>
1
1.d0
2
4.d-4
3
1.d-4
4
1.d0
5
1.d0
6
1.d0
7
1.d0
8
1.d0
This keyword sets the force constant for each type of constraint. In this case, the ﬁrst line sets the force
constant of type “1” (interatomic distance) to be 1.0 hartree/bohr2 .
<iprint_cons>
10
This keyword sets the print interval of constraint information to the ﬁle cons.out. In this case, it is every”10” steps.
3.9.4

NPT molecular dynamics in cubic box

In the PIMD code, molecular dynamics for the NPT ensemble is based on massive Nos’e-Hoover chain
thermostats [8, 10, 16, 17, 11]. The equation of motion is solved using the reversible RESPA algorithm[12, 13, 14, 15]. The theoretical background of NPT molecular dynamics is brieﬂy explained in Section 11.11.
As an example, a set of input ﬁles for liquid water is available. So, let us copy it to the directory run:> cp -r examples/water_256/mm_md_npt run
and navigate to that directory:> cd run/mm_md_npt
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important.
<method>
PIMD
This keyword sets the simulation method. Generally, ”PIMD” corresponds to path integral molecular dynamics, but in special the case of the single bead, nbead=1 (by default), it corresponds to classical molecular
dynamics.
<ensemble>
NPT
25

This keyword sets the statistical ensemble. In the present case, ”NPT” corresponds to the NPT ensemble.
<npt_type>
CUBIC2This keyword sets the shape of the simulation box. Either Andersen’s equation of motion (”CUBIC1”) or
Martyna’s equation of motion (”CUBIC2”) can be used for the cubic box. Here the box is set to be cubic,
and Martyna’s equation of motion is chosen.
<dt>
0.25d0This keyword sets the step size in femtoseconds.
<nstep>100
This keyword sets the number of steps.
<temperature>
300.d0This keyword sets the temperature in kelvin. If the restart ﬁle geometry.ini exists, the atomic positions andvelocities are read from this ﬁle. Otherwise, the positions are read from structure.dat and the velocities are
generated at this temperature as an initial run. The temperature is controlled during the run.
<corrections>
0 0This keyword sets the translational and rotational corrections. In the present case, the corrections are notapplied at the initial step.
<bath_type>
MNHC
This keyword sets the type of thermostats. When NHC is chosen, a Nosé-Hoover thermostat chain (NHC)
is attached to the whole system. When MNHC is chosen, massive Nosé-Hoover thermostat chains (MNHC)
are attached to each of the degrees of freedom.
<nnhc>
4
This keyword sets the chain length of the MNHC thermostats. In the present case, it is four.
<ncolor>
1
This keyword sets the multiplicity of the MNHC thermostats to one in the present case.
<time_bath>
10.d0This keyword controls the mass of the thermostats, which is related to the characteristic time scale of thesystem in femtoseconds, designated by this keyword. This parameter could be set to a value close to thefastest vibrational time scale of the system, and in this case, it is set to be 10 femtoseconds. This value isclose to the oscillation period of 8.881 femtoseconds of the anti-symmetric OH stretching mode frequency ofwater, which is 3756 cm−1 .
<nys>
5
26

This keyword controls the step size for the MNHC thermostats. In this case, the thermostats are updated
ﬁve times per step.
<pressure>
100.d0This keyword sets the pressure in megapascals to 100 in the present case.
<time_baro>
1000.d0This keyword controls the mass of the barostat, which is related to the characteristic time scale of the volume
ﬂuctuation in femtoseconds, designated by this keyword. In this case, it is set to be 1000 femtoseconds.
<iprint_box>
10
This keyword controls the print interval of the box matrix to the output ﬁle box.out. In this case, it is printed
every ten steps.
<iboundary>1
37.2276d+00, 0.0000d+00, 0.0000d+00
0.0000d+00, 37.2276d+00, 0.0000d+00
0.0000d+00, 0.0000d+00, 37.2276d+00
This keyword sets the boundary condition and the initial box. In this case, “1” means periodic boundarywith Bohr units, and the following three lines are the matrix of the initial box. A cubic box with a side
length of 33.2276 bohr is used.
<iprint_trj>
10This keyword controls the print interval of the trajectory to the output ﬁle trj.out. In this case, it is printed
every ten steps.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
3.9.5

NPT and NtT molecular dynamics in hexahedron box

In the PIMD code, molecular dynamics for the NPT and NtT ensembles (NtT: isotensional ensemble) arebased on massive Nosé-Hoover chain thermostats [8, 10, 11]. The equation of motion is solved using thereversible RESPA algorithm [12, 13, 14, 15]. The theoretical background of NtT molecular dynamics isbrieﬂy explained in Section 11.11.
Setups for NPT MD simulation with hexahedron box. As an example, a set of input ﬁles for nickel
crystal is available. So, let’s copy it to the directory run:> cp -r examples/Ni/eam_pimd_ntt run
and navigate to that directory:> cd run/eam_pimd_ntt
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important.

27

<method>
PIMD
This keyword sets the simulation method. Generally, “PIMD” corresponds to path integral molecular dynamics, but in the special case of a single bead (nbead=1 by default), it corresponds to classical molecular
dynamics.
<ensemble>
NPT
This keyword sets the statistical ensemble. In the present case, ”NPT” corresponds to the NPT ensemble.
<npt_type>
PPHEX
This keyword sets the shape of the simulation box. Here, the box is set to a parallel-piped hexahedron.
<dt>
0.25d0This keyword sets the step size in femtoseconds.
<nstep>100
This keyword sets the number of steps.
<temperature>
300.d0This keyword sets the temperature in kelvin. If the restart ﬁle geometry.ini exists, the atomic positions andvelocities are read from this ﬁle. Otherwise, the positions are read from structure.dat, and the velocities are
generated at this temperature as an initial run. The temperature is controlled during the run.
<corrections>
0 0This keyword sets the translational and rotational corrections. In the present case, the corrections are notapplied at the initial step.
<bath_type>
MNHC
This keyword sets the type of thermostats. When “NHC” is chosen, a Nosé-Hoover thermostat chain (NHC)
is attached to the whole system. When “MNHC” is chosen, massive Nosé-Hoover thermostat chains (MNHC)
are attached to each of the degrees of freedom.
<nnhc>
4
This keyword sets the chain length of the MNHC thermostats, which, in the present case, is four.
<ncolor>
1
This keyword sets the multiplicity of the MNHC thermostats, in this case, it is set to one.
<time_bath>
10.d0
28

This keyword controls the mass of the thermostats. The mass of the thermostats is related to the characteristic
time scale of the system, in femtoseconds, which is designated by this keyword. This parameter could be set
to a value close to the fastest vibrational time scale of the system. Here it is set to be 10 femtoseconds, which
is close to the oscillation period of 8.881 femtoseconds for the anti-symmetric OH stretching mode frequencyof water, which is 3756 cm−1 .
<nys>5This keyword controls the step size for the MNHC thermostats. In this case, the thermostats are updated 5
times per step.
<pressure>
100.d0This keyword sets the pressure in megapascals, in this case, it is set to 100 megapascals.
<time_baro>
1000.d0This keyword controls the mass of the barostat. The mass of the barostat is related to the characteristic
time scale of the volume ﬂuctuation, in femtoseconds, which is designated by this keyword. Here it is set to
be 1000 femtoseconds.
<iprint_box>
10
This keyword controls the print interval of the box matrix to the output ﬁle box.out. In this case, it is set toevery ten steps.
<iboundary>1
33.20000000
0.00000000
0.00000000

0.00000000
33.20000000
0.00000000

0.00000000
0.00000000
33.20000000

TThis keyword sets the boundary condition and the initial box. In this case, “1” means periodic boundary,and the following three lines are the matrix of the initial cubic box with a side length of 33.2 bohr.
<iprint_trj>
10This keyword controls the print interval of the trajectory to the output ﬁle trj.out. In this case, it is set toevery ten steps.
Setups for NtT MD simulation with hexahedron box. The setups in the NtT MD will be the sameas those in NPT MD, except for the following keywords. The keyword <pressure> should be replaced by<tension>
0.0
0.0
0.0

0.0
0.0
0.0
0.0
0.0 1000.0

This keyword sets the tension tensor in megapascals, in this case, 1000 megapascals is the zz element. Notethat the tension tensor must be given as a 3 × 3 real symmetric matrix. Then, one should designate the
keyword29

<iboundary>1
33.20000000
0.00000000
0.00000000

0.00000000
33.20000000
0.00000000

0.00000000
0.00000000
33.20000000

This keyword sets the boundary condition and the initial box. In the special case of the NtT ensemble, thiswill be the reference box matrix under zero tension. To provide the reference box, one must run a preliminary
simulation with the same conditions (the same temperature, etc.) but with zero tension. The reference box
matrix is evaluated as the average values of the box matrix in this preliminary simulation. The reference box
matrix within this preliminary simulation is arbitrary.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.

3.10

Path integral simulations (PI)In the PIMD code, the following path integral methods are implemented:• Path integral molecular dynamics (PIMD) with the second-order Suzuki-Trotter expansion [23].
• Brownian chain molecular dynamics (BCMD) [35].
• Centroid molecular dynamics (CMD) [26].
• Ring polymer molecular dynamics (RPMD). [24].
• Thermostatted Ring polymer molecular dynamics (TRPMD) [34].
• Path integral hybrid Monte Carlo (PIHMC) with the second-order [23] and fourth-order Suzuki-Trotter
expansion. [32]• Centroid intrinsic reaction coordinate (CIRC). [33]The theoretical background of these methods is brieﬂy explained in Section 11.11.
3.10.1

Path integral molecular dynamics (PIMD)

As an example, a set of input ﬁles for ﬂexible-SPC water is available. To use it, copy it to the directory run:> cp -r examples/H2O/water_pimd_nvt run/and navigate to that directory:> cd run/water_pimd_nvt/
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. Additionally,
the following keywords are important:<method>
PIMD
This keyword sets the simulation method. In this case, “PIMD” corresponds to path integral molecular
dynamics.
<ensemble>
NVT
This keyword sets the statistical ensemble. In this case, “NVT” corresponds to the NVT ensemble.
30

<dt>
0.25d0This keyword sets the step size in femtoseconds. In this case, the step size is 0.25 femtoseconds.
<nstep>100
This keyword sets the number of steps. In this case, the simulation runs for 100 steps.
<temperature>
300.d0This keyword sets the temperature in Kelvin. In this case, the temperature is 300 K. The temperature iscontrolled during the PIMD simulation.
<corrections>
0 0This keyword sets the translational and rotational corrections. In this case, the corrections are not appliedat the initial step.
<iprint_dip>
10This keyword sets the print interval for the dipole moment. In this case, the dipole moment is printed every
ten steps.
<iprint_rdf>
10This keyword sets the print interval for the atomic pair distribution. In this case, the atomic pair distribution
is printed every ten steps.
<params_rdf>
1.d0 5.d0 0.01d0
This keyword sets the mesh parameters for the atomic pair distribution. In this case, the mesh points range
from 1.0 bohr to 5.0 bohr with an increment of 0.01 bohr.
<bath_type>
MNHC
This keyword sets the type of thermostats. When NHC is chosen, a Nosé-Hoover thermostat chain (NHC) is
attached to the whole system. When “MNHC” is chosen, massive Nosé-Hoover thermostat chains (MNHC)
are attached to each degree of freedom.
<nnhc>
4
This keyword sets the chain length of the MNHC thermostats. In this case, the chain length is four.
<ncolor>
1
This keyword sets the multiplicity of the MNHC thermostats. In this case, the multiplicity is one.
<time_bath>
10.d0
31

This keyword controls the mass of thermostats. The mass of thermostats is related to the characteristic timescale of the system, in femtoseconds, which is designated by this keyword. Here it is set to 10 femtoseconds.
<nys>5This keyword controls the step size for the MNHC thermostats. In the present case, thermostats are updated
5 times per step.
<nbead>32This keyword sets the number of beads, in the present case, 32 beads.
<nref>
1
This keyword controls the step size for updating the harmonic forces in path integrals. In the present case,“1” means the harmonic forces are updated once per step.
<beadspread>
500.d0This keyword controls the bead spread for the initial conﬁguration.
If the restart ﬁle geometry.ini exists, the positions and velocities of the beads are read from this ﬁle.
Otherwise, the centroid positions being read from structure.dat, all the positions of beads are created randomly
around the centroid positions with the standard deviation controlled by the keyword <beadspread>, whilethe velocities are generated at this temperature as an initial run.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
3.10.2Path integral hybrid Monte Carlo (PIHMC)

As an example, a set of input ﬁles for water molecule is available. So, let us copy it to the directory run:> cp -r examples/H2O/water_pihmc_nvt_2 runand enter that directory:> cd run/water_pihmc_nvt_2
Let us look at the keywords one by one.
<method>
PIHMC
This keyword sets the simulation method, in the present case, path integral hybrid Monte Carlo.
<ensemble>
NVT
This keyword sets the statistical ensemble, in the present case, the NVT ensemble.
<iorder_hmc>
2This keyword sets the order of Suzuki-Trotter expansion, in the present case, the second order.
<istep_hmc>
132This keyword sets the number of MD updates per MC step in the hybrid Monte Carlo method.
<ipotential>
WATER
This keyword sets the potential, in the present case, the ﬂexible SPC potential of water.
<iboundary>0This keyword sets the boundary condition, in the present case, “0” means the free boundary condition.
<nbead>32This keyword sets the number of beads to 32.
<nstep>1000
This keyword sets the number of steps of PIHMC to 1000.
<dt>
1.5d0
This keyword sets the step size of PIHMC to 1.5 femtoseconds.
<temperature>
300.d0This keyword sets the temperature to 300 K.
<beadspread>
500.d0This keyword sets the initial bead spread to 500 K.
<iread_exit>
100
This keyword sets the interval for reading exit.dat to every 100 steps.
<iprint_std>100<iprint_bond>100<iprint_eavg>
100<iprint_rest>100<iprint_rdf>
100<iprint_trj>
33

100<iprint_xyz>
100<iprint_dip>
100
These keywords set the intervals for printing the standard output, average bond distances, energy averages,
restart ﬁles, radial distributions, trajectories in regular and xyz formats, and dipole moments, respectively.
The output ﬁles *.out and restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3, respectively.
3.10.3

Brownian chain molecular dynamics (BCMD)

The following keywords are important:<method>
BCMD
This keyword sets the simulation method. In the present case, ”BCMD” corresponds to Brownian chain
molecular dynamics.
<ensemble>
NVT
This keyword sets the statistical ensemble. In the present case, ”NVT” corresponds to the NVT ensemble.
3.10.4

Centroid molecular dynamics (CMD)

As an example, a set of input ﬁles for the ﬂexible-SPC water model is available. Let us copy it to the directoryrun:> cp -r examples/H2O/water_cmd run
Then, navigate to that directory:> cd run/water_cmd
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important:<method>
CMD
This keyword sets the simulation method. In the present case, ”CMD” corresponds to centroid molecular
dynamics.
<ensemble>
NVE
This keyword sets the statistical ensemble. In the present case, ”NVE” corresponds to the NVE ensemble.
<dt>
0.025d0This keyword sets the step size in femtoseconds. In the present case, the step size is 0.025 femtoseconds.
Note that in centroid molecular dynamics, the step size should be smaller than usual to deal with the fast
motion of non-centroid modes. It is recommended to set <dt> to be the original step size divided by thefactor <igamma>.
34

<nstep>
1000
This keyword sets the number of steps. In the present case, it is set to 1000 steps.
<temperature>
300.d0This keyword sets the temperature in kelvin. In the present case, it is set to 300 K.
<corrections>
2 2This keyword sets the translational and rotational corrections. In the present case, both translation androtational corrections are applied every step.
<iprint_dip>
100This keyword sets the print interval of dipole moment. In the present case, it is set to every 100 steps.
<iprint_rdf>
100This keyword sets the print interval of the atomic pair distribution. In the present case, it is set to every 100
steps.
<params_rdf>
1.d0 5.d0 0.01d0
his keyword is valid when <iprint_rdf> is activated. It sets the mesh parameters for the atomic pair
distributions. In the present case, the mesh points are ranged from 1.0 bohr to 5.0 bohr with an incrementof 0.01 bohr.
<bath_type>
MNHC
This keyword sets the type of thermostats. When MNHC is chosen, massive Nosé-Hoover thermostat chains(MNHC) are attached to each degree of freedom. In the case of CMD, the MNHC thermostats are attachedonly to the non-centroid modes, and they are not attached to the centroids.
<nnhc>
4
This keyword sets the chain length of the MNHC thermostats. In the present case, it is set to four.
<ncolor>
1
This keyword sets the multiplicity of the MNHC thermostats. In the present case, it is set to one.
<time_bath>
10.d0This keyword controls the mass of the thermostats. The mass of the thermostats is related to the characteristic time scale of the system, in femtoseconds, which is designated by this keyword. Here it is set to 10
femtoseconds.
<nys>
5
35

This keyword controls the step size for the MNHC thermostats. In the present case, thermostats are updated
5 times.
<nbead>32This keyword sets the number of beads. In the present case, 32 beads are used.
<nref>
1
This keyword controls the step size for updating the harmonic forces in path integrals. In the present case,“1” means the harmonic forces are updated once per step.
<beadspread>
500.d0This keyword controls the bead spread for the initial conﬁguration.
<igamma>
10This keyword controls the adiabaticity in centroid molecular dynamics. The accuracy of CMD will increaseas the value of <igamma> gets larger. Note that the adiabaticity parameter, γ, is given by the inverse of thesquare of <igamma>; in the present case, it is 0.01.
If the restart ﬁle geometry.ini from a previous PIMD run exists, the atomic positions and velocities
are read from this ﬁle (recommended in CMD). If the restart ﬁle bath.ini from a previous PIMD run also
exists, the bath positions and velocities are read from this ﬁle (recommended in CMD). Otherwise, thecentroid positions are read from structure.dat, and all the positions of beads are created randomly aroundthe centroid positions with the standard deviation controlled by the keyword <beadspread>. The velocities
are generated at this temperature as an initial run (not recommended in CMD). The temperature is notcontrolled with respect to the centroid coordinates in the CMD method. The temperature control is activewith respect to the non-centroid modes only.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
3.10.5

Ring polymer molecular dynamics (RPMD)

As an example, a set of input ﬁles for the ﬂexible-SPC water is available. So, let us copy it to the directoryrun:> cp -r examples/H2O/water_rpmd run
and enter that directory:> cd run/water_rpmd
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important.
<method>
RPMD
This keyword sets the simulation method. In the present case, ”RPMD” corresponds to ring polymer molecular dynamics.
<ensemble>
NVE
36

This keyword sets the statistical ensemble. In the present case, ”NVE” corresponds to the NVE ensemble.
<dt>
0.25d0This keyword sets the step size in femtoseconds. In the present case, the step size is 0.25 femtoseconds.
<nstep>100
This keyword sets the number of steps. In the present case, there are 100 steps.
<temperature>
300.d0This keyword sets the temperature in Kelvin.
<corrections>
2 2This keyword sets the translational and rotational corrections. In the present case, both translation androtation corrections are applied at each step.
<iprint_dip>
10This keyword sets the print interval of the dipole moment. In this case, the dipole moment is printed every
ten steps.
<iprint_rdf>
10This keyword sets the print interval of the atomic pair distribution. In this case, the atomic pair distribution
is printed every ten steps.
<params_rdf>
1.d0 5.d0 0.01d0
This keyword is valid when <iprint_rdf> is activated. It sets the mesh parameters for the atomic pair
distributions. In the present case, the mesh points range from 1.0 Bohr to 5.0 Bohr with an increment of
0.01 Bohr.
<nbead>32This keyword sets the number of beads. In the present case, there are 32 beads.
<beadspread>
500.d0This keyword controls the bead spread to generate the initial conﬁguration.
If the restart ﬁle geometry.ini from a previous PIMD run exists, the atomic positions and velocities areread from this ﬁle (recommended in RPMD). Otherwise, the centroid positions are read from structure.dat,
and all the positions of beads are created randomly around the centroid positions with the standard deviation
controlled by the keyword <beadspread>, while the velocities are generated at this temperature as an initialrun (not recommended in RPMD). The temperature is not controlled during the RPMD run since it is an
NVE dynamics.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
37

3.10.6

Thermostatted ring polymer molecular dynamics (TRPMD)

The following keywords are important:<method>
TRPMD
This keyword sets the simulation method. In the present case, ”BCMD” corresponds to Brownian chain
molecular dynamics.
<ensemble>
NVT
This keyword sets the statistical ensemble. In the present case, ”NVT” corresponds to the NVT ensemble.
3.10.7

Centroid Intrinsic Reaction Coordinate (CIRC)

The CIRC calculations can be carried out by the code polymers.x. In addition to the PIMD setups mentioned
in Subsection 3.10.7, the following keywords are also important.
<npoly>16This keyword sets the number of centroid images. In the present case, there are 16 images.
<np_poly>
16
This keyword sets the parallel number with respect to centroid images. In the present case, all the images
are computed in parallel with a parallel number of 16.
<ends_poly>
FIXEDThis keyword sets the option for end centroid images. In this case, the end centroid images are ﬁxed.
<dt_poly>
0.04d0This keyword sets the displacement of centroid images per update cycle.
<ncycle_poly>1This keyword sets the number of update cycles of centroid images by the string method. In this case, there
is only one cycle.
<iprint_poly>
10
This keyword sets the print interval of centroid mean force during the PIMD runs. In this case, the centroid
mean force is printed every 10 PIMD steps.
<guess_poly>
LINE
This keyword sets the initial guess of centroid images. In this case, the initial guess is a line interpolation of
two ends read from the ﬁle structure.dat.

38

<projcmf_poly>
OFF
This keyword sets the projection of mean forces applied to centroid images. In this case, no projection isapplied.
<ngrid_poly>
10
This keyword sets the number of grid points used for interpolation in the string method. In this case, 10 grid
points are used.

3.11

Replica exchange hybrid Monte Carlo (REHMC)

In the PIMD code, the following replica exchange hybrid Monte Carlo (REHMC) methods are implemented:• Temperature replica exchange (TX) between the systems with diﬀerent temperatures.
• Hamiltonian replica exchange (HX) between the systems with diﬀerent alchemical intermediates.
The theoretical background of these methods is brieﬂy explained in Section 11.12.
3.11.1

Temperature replica exchange hybrid Monte Carlo

For example, a set of input ﬁles for a water molecule is available. To use it, copy the ﬁles to the directory
run by running the following command:> cp -r examples/H2O/water_rehmc_tx run
Then enter that directory:> cd run/water_rehmc_tx
Next, let’s look at the keywords one by one:<method>
REHMC
This keyword sets the simulation method to replica exchange hybrid Monte Carlo.
<ensemble>
NVT
This keyword sets the statistical ensemble to NVT.
<irem_type>
TX
This keyword sets the type of replica exchange method to temperature exchange.
<istep_hmc>
1This keyword sets the number of MD updates per MC step in the hybrid Monte Carlo method.
<ipotential>
WATER
This keyword sets the atomic species of the system. In this case, the system is a water molecule.
39

<iboundary>0This keyword sets the boundary condition. In this case, “0” means the free boundary condition.
<nstep>
100000This keyword sets the number of steps to 100000.
<dt>
2.d0
This keyword sets the step size to 2 femtoseconds.
<nbead>4This keyword sets the number of replicas to four.
<temprange_rem>
300.d0 2400.d0
This keyword sets the temperature range by specifying the lowest temperature T1 and the highest temperature
Tn among the replicas. In this case, the temperature range is set between 300 K and 2400 K, with the ﬁrst,
second, third, and fourth replica set to be 300 K, 600 K, 1200 K, and 2400 K, respectively.
<beadspread>
500.d0This keyword sets the initial bead spread to 500 K.
<iread_exit>
1000
This keyword speciﬁes the read interval of the ﬁle exit.dat.
<iprint_std>
1000<iprint_rest>
1000<iprint_rdf>
1000<iprint_trj>
1000<iprint_xyz>
1000
These keywords specify the print interval of the standard output, the restart ﬁles, the radial distributions,the trajectories in the regular format and the xyz format, respectively.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.

40

3.11.2

Hamiltonian replica exchange hybrid Monte Carlo

As an example, a set of input ﬁles for M+ (H2 O) cluster (M = K and Cs) is available. To use these input
ﬁles, copy them to the directory run:> cp -r examples/CsH2O/mm_rehmc_hx run
and navigate to that directory:> cd run/mm_rehmc_hx
Now let’s look at the keywords one by one:<method>
REHMC
This keyword sets the simulation method, which in this case is replica exchange hybrid Monte Carlo.
<ensemble>
NVT
This keyword sets the statistical ensemble, which in this case is the NVT ensemble.
<irem_type>
HX
This keyword sets the type of replica exchange method, which in this case is Hamiltonian exchange.
<istep_hmc>
1This keyword sets the number of molecular dynamics updates per Monte Carlo step in the hybrid Monte
Carlo method.
<ipotential>
ALCHEM
This keyword declares the use of potentials of alchemical intermediates.
<iboundary>0This keyword sets the boundary condition, where ”0” means the free boundary condition.
<nstep>
100000This keyword sets the number of steps, which in this case is 100000.
<dt>
2.d0
This keyword sets the step size to 2 femtoseconds.
<nbead>4This keyword sets the number of replicas with diﬀerent alchemical intermediates, which in this case is four.
<alchem_dat_dir>
dat_1 dat_2
41This keyword sets the input directories of alchemical potentials.
<alchem_scr_dir>
scr_1 scr_2
This keyword sets the temporary scratch directories of alchemical potentials.
<beadspread>
500.d0This keyword sets the initial bead spread, which in this case is 500 K.
<iread_exit>
1000
This keyword speciﬁes the read interval of the ﬁle ”exit.dat”.
<iprint_std>
1000<iprint_rest>
1000<iprint_rdf>
1000<iprint_trj>
1000<iprint_xyz>
1000
These keywords specify the print interval of the standard output, restart ﬁles, radial distributions, trajectories
in the regular format, and trajectories in the xyz format, respectively.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.

3.12

Metadynamics (MTD)

The theoretical background of metadynamics (MTD) is brieﬂy explained in Section 11.14.
In PIMD, MTD in the NVT ensemble based on massive Nosé-Hoover thermostats is implemented.
Five types of collective variables have been implemented so far, and the set of collective variables should
be chosen from the following list:• type 1: bond distance (between two atoms)• type 2: bond angle (among three atoms)• type 3: dihedral angle (among four atoms)• type 4: bond diﬀerence (among three atoms)• type 5: coordination number (for atomic species)• type 6: diﬀerence in coordination numbers (for atomic species)• type 7: center of mass (of atomic species)42• type 8: diﬀerence in center of masses (of two atomic species)
It is possible to choose one, two, or three collective variables, corresponding to 1-, 2- or 3-dimensional
metadynamics, respectively. It is also possible to employ two or three collective variables of one type, suchas two bond distances.
In the PIMD code implementation, the Gaussian width is set for each type of collective variable, not foreach collective variable. For instance, if two bond distances are speciﬁed, the Gaussian width value is shared
between them.
As an example, a set of input ﬁles for one-dimensional MTD of a water molecule is available. In thiscase, the H-H bond distance is chosen as the collective variable. Copy the input ﬁles to the directory run byrunning the command:> cp -r examples/H2O/water_mtd_1d run
Then enter the directory:> cd run/water_mtd_1d
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. Additionally,
the following keywords are also important:<method>
MTD
This keyword sets the simulation method, in this case, metadynamics.
<ensemble>
NVT
This keyword sets the statistical ensemble, in this case, the NVT ensemble.
<nstep>
10000
This keyword sets the number of steps, in this case, 10,000 steps.
<dt>
0.25d0This keyword sets the step size in femtoseconds, in this case, 0.25 femtoseconds.
<temperature>
300.d0This keyword sets the temperature of the system in Kelvin, in this case, 300 K.
<bath_type>
MNHC
This keyword sets the type of thermostats. In metadynamics, only the MNHC thermostats are implemented.
<ncolor>
1
This keyword sets the multiplicity of the MNHC thermostats, in this case, one.
<nnhc>
4
This keyword sets the chain length of the MNHC thermostats, in this case, four.
43

<time_bath>
10.d0This keyword controls the mass of thermostats attached to the system. The mass of the thermostats is related
to the characteristic time scale of the system, in femtoseconds, which is designated by this keyword. In thepresent case, a time scale of 10 femtoseconds is chosen.
<nys>5This keyword controls the time increment for the MNHC thermostats. In the present case, thermostats are
updated 5 times per <dt>.
<nbead>1This keyword sets the number of walkers, i.e., the number of beads. In the present case, a single walker ischosen.
<beadspread>
500.d0This keyword sets the temperature that controls the bead spread of the walkers in the initial conﬁguration.
In the present case, 500 kelvin is chosen.
Now, the keywords speciﬁc to metadynamics are listed below.
<mg_meta>
50000
This keyword sets the maximum number of history-dependent Gaussian hills, in the present case, 50000 hills.
<nmeta>1
1,
23This keyword gives the parameters of the collective variables. The ﬁrst line designates the dimension of thecollective variables, in the present case, one dimension. The following line sets the information of collective
variable(s), in the present case, one-dimensional collective variable of the bond distance (type 1) between
atom #2 and atom #3.
<nref_meta>
10This keyword controls the time increment updating the forces of harmonic potential and Gaussian hill potential. In the present case, the forces are updated 10 times within dt.
<gh_meta>
150.d0This keyword sets the Gaussian hill height, in the present case, a height of 150 kelvin is chosen.
<gw_meta>
10.100d025.000d03
10.000d0
40.100d050.100d060.100d070.100d080.100d044This keyword sets a list of the hill widths for each type of collective variable. In the present case, only theﬁrst line is important since it designates that the Gaussian width for the bond distance (type 1) is 0.1 bohr.
<time_cv_meta>
75.0This keyword sets the diﬀusion time scale of the collective variables, which controls the mass of the ﬁctitious
particle. In the present case, a time scale of 75 femtoseconds is chosen.
<time_fc_meta>
30.d0This keyword sets the oscillation period of the harmonic potential between the ﬁctitious particle and thecollective variables. In the present case, 30 femtoseconds is chosen.
<time_limit_meta>
225.0This keyword sets the time limit for adding a new Gaussian hill. In the present case, 225 femtoseconds havebeen chosen. This is three times the value of <time_cv_meta>.
<time_cv_bath>
1000.0This keyword sets the time scale of the thermostat attached to the ﬁctitious particle, which controls thethermostat mass. In this case, it is set to be 1000 femtoseconds.
<iprint_cv_meta>
1This keyword sets the print interval of the collective variables and the ﬁctitious particle to the output ﬁlecv.out. In the present case, it is set to print every step.
<iprint_meta>
1This keyword sets the print interval of the energy components in metadynamics to the output ﬁle meta.out.
In the present case, it is set to print every step.
<iprint_rec_meta>
100
eyword sets the print interval of the free energy to the output ﬁle rec.out. In the present case, it is set toprint every 100 steps.
<params_rec_meta>
1
1.0
6.0
0.02
2
0.0 180.0
1.00
3
0.0 360.0
2.00
4 -3.0
3.0
0.02
5
0.0
4.0
0.02
6
0.0
4.0
0.02
7
1.0
6.0
0.02
8
1.0
6.0
0.02
This keyword sets the mesh points of the reconstructed free energy landscape for each type of the collective
variable. In the present case, only the ﬁrst line is important since it designates that the mesh points arecovered from 1.0 bohr to 6.0 bohr with an increment of 0.02 bohr.
45

<cut_rec_3d>
100.0This keyword controls the numerical accuracy of the reconstruction of the free energy surface in threedimensional metadynamics. In the present case, this is not active since the metadynamics is one-dimensional.
<joption_meta>
0This keyword controls the timing of adding new Gaussian hills. In the present case, a new hill is added when
the walker is well-displaced.
To run well-tempered metadynamics, one needs to specify<dtemp_meta>
1000.0This sets the temperature parameter of well-tempered metadynamics, in this case, 1000 Kelvin. Without
specifying this keyword, <dtemp_meta> = 0.0 corresponds to conventional metadynamics.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.

3.13

Mean force dynamics (AFED)The theoretical background of mean force dynamics is brieﬂy explained in Section 11.17. Throughout thismanual, “adiabatic free energy dynamics (AFED)” is instead used to indicate “mean force dynamics”. In
PIMD, the following AFED-related techniques are implemented.
• GRAD: calculation of free energy gradient with a constant constraint.
• DESCENT: descent search for free energy minimum points using descent method.
• ASCENT: ascent search for free energy saddle points using ascent dynamics.
• AUTO: automated search for free energy stationary points by combining DESCENT and ASCENT.
• TAMD: temperature accelerated molecular dynamics. The options are NVE, NVT, and velocity scaling.
• LOGMFD: logarithmic mean force dynamics. The options are NVE, NVT, and velocity scaling.
Five types of collective variables have been implemented (so far). The set of collective variables should bechosen from below.
• type 1: bond distance (between two atoms)• type 2: bond angle (among three atoms)• type 3: dihedral angle (among four atoms)• type 4: bond diﬀerence (among three atoms)• type 5: coordination number (for atomic species)• type 6: diﬀerence in coordination numbers (for atomic species)• type 7: center of mass (of atomic species)• type 8: diﬀerence in center of masses (of two atomic species)46

3.13.1

Common keywords used in all the AFED methods (Free energy gradient)

As an example, a set of input ﬁles for one-dimensional AFED of a butene molecule is available. In this case,the collective variable is chosen to be the C-C-C-C bond dihedral. So, let us copy it to the directory run:> cp -r examples/C4H10/mm_afed_grad run
and enter that directory:> cd run/mm_afed_grad
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords, which can be categorized into the following three groups, are also important.
First group: Keywords for molecular dynamics This keyword sets the number of atoms in the system.
In the present case, there are 14 atoms in C4 H10 molecule.
<ipotential>
MM
This keyword sets the potential model. In the present case, “MM” corresponds to the molecular mechanics
potential.
<iprint_std>
100This keyword sets the print interval of the standard output standard.out. In the present case, every 100 steps.
<ensemble>
NVT
This keyword sets the statistical ensemble of molecular dynamics, In the PIMD code, the “NVT” ensemble
must always be chosen for AFED (NPT ensemble for AFED is currently “not” available).
<bath_type>
MNHC
This keyword sets the type of thermostats. In the PIMD code, the massive Nosé-Hoover thermostat chain
thermostat, “MNHC”, must always be chosen for AFED. The thermostat settings can be controlled by the
keywords <time_bath>, <nnhc>, <ncolor>.
<temperature>
500.d0This keyword sets the temperature of the system in kelvin, in the present case “500” kelvin.
<dt>
0.25d0This keyword sets the molecular dynamics step size in femtoseconds, in the present case, 0.25 fs.
<nys>8This keyword controls the step size for the MNHC thermostats. In the present case, the thermostats are
updated “8” times per step.

47

Second group: Keywords for constraints<nref>
8This keyword controls the step size for the harmonic constraint. In the present case, the harmonic constraint
is updated “8” times per step.
<iprint_cons>-1
This keyword sets the print interval of the information of constraints to the ﬁle cons.out, in the present case,not printed.
<ncons>
1
3
1
5

8

11

This keyword sets the number of constraints followed by the parameters of each constraint. In the present
case, there is “1” constraint of type “3” (dihedral angle) among atoms “1, 5, 8, 11”.
<params_cons>
1
5.0d+02
5.0d-23
5.0d-34
2.5d+05
1.0d+06
1.0d+07
5.0d+08
5.0d+0This keyword sets the force constant for each type of constraint. In the present case, the third line is of the only
importance, which sets the force constant of type “3” (dihedral angle) to be “5.0 × 10−3 ” hartree/degree2 .
Third group: Keywords for adiabatic free energy dynamics<method>
AFEDThis keyword sets the simulation method, in the present case, “AFED” means adiabatic free energy dynamics.
<afed_type>
GRAD
This keyword sets the type of AFED, in the present case, “GRAD” means free energy gradient calculation.
<nbead>8This keyword sets the number of beads (replicas), in the present case, “8” beads.
<params_afed>
1
0.08d03.0d0
2
3.00d00.0d0
3
5.00d0 -180.0d0
4
0.04d0-3.0d05
0.02d00.0d0
6
0.02d00.0d0
7
0.08d03.0d0
8
0.08d0
3.0d0

10.0d0180.0d0
180.0d0
3.0d0
4.0d0
4.0d0
10.0d010.0d048

This keyword sets the AFED parameters with respect to all kinds of collective variables. In the present case,the active ones are the ﬁrst four numbers in the third line. For the collective variable type “3” (dihedral
angle), the reference shift ∆Rdref is “5.0” degrees, the lower bound Rdmin is “-180” degrees, and the upperbound Rdmax is “180” degrees. All the rest is inactive.
<nstep_pre_afed>
1000
This keyword sets the number of preliminary MD steps to equilibrate the system, in the present case “1000”
steps.
<nstep_pro_afed>
2000
This keyword sets the number of productive MD steps to collect the average of free energy gradient, in thepresent case “2000” steps.
Now, to start running the calculation, type
> pimd.x
Then the following message will appear on the screen:

....
....
1700
1800
1900
2000

..........
..........
1.32412595
1.32412021
1.32411461
1.32412219..........
..........
0.03728593
0.03356013
0.03331202
0.03664502......
......
485.62469.85527.77416.04..........................
..........................
2017-02-23 THU 12:06:50.47
2017-02-23 THU 12:06:50.92
2017-02-23 THU 12:06:51.49
2017-02-23 THU 12:06:52.05==============================================================================
step st cv r-idealr-meanf-energy-df/dr
dr/dt
dt
n xi
-----------------------------------------------------------------------------0 GR 1 179.010 179.016
0.000000
0.000094
0.00000 0.500 1.00
0
Restart files: geometry.ini, step.ini, bath.ini, cv.ini, afed.ini.
Normal termination of pimd.

The last line includes the following information.
• step: AFED step number (iteration number).
• st: AFED status.
– GR: free energy gradient.
– TE: convergence test.
– AS: ascent trajectory.
– DE: descent trajectory.
– D1: ﬁrst descent trajectory from a saddle.
– D2: second descent trajectory from a saddle.
– EQ: minimum point.
– TS: saddle point.
49

– TA: temperature accelerated molecular dynamics.
– LO: logarithmic mean force dynamics.
• r-ideal: position of ﬁctitious particle.
• r-mean: mean position of collective variables.
• f-energy: free energy (potential of mean force).
• -df/dr: mean force (negative sign of free energy gradient).
• dr/dt: velocity of collective variables• dt: AFED step size.
• n: unit vector.
– For ascent trajectories, vector n.
– For descent trajectories, vector parallel to mean force.
• xi: angle ξ between the force vectors of last two AFED steps, which is used to judge the convergence.
To test the convergence of mean forces, one can use<afed_type>
TEST
In this case, the run is controlled by the following keywords.
<nstep_pro_afed>
20000
This keyword sets the length of production MD run.
<iprint_test_afed>
1000
This keyword sets the print interval of mean forces during the production MD run.

The output ﬁles *.out, *.xyz, and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
3.13.2

Descent search for free energy minima

To prepare the ﬁle input.dat, all the keywords given in Sections 3.1, 3.2, and 3.13.1 are important. In addition,
the following keywords are also important.
<method>
AFEDThis keyword sets the simulation method, in the present case, “AFED” means adiabatic free energy dynamics.
<afed_type>
DESCENTThis keyword sets the type of AFED, in the present case, “DESCENT” means descent search.
<niter_afed>
200
50

This keyword sets the number of iterations (the number of updates of ﬁctitious particle) in adiabatic freeenergy dynamics, in the present case, “200” iterations.
<dt_descent_afed>
0.5d0This keyword sets the initial AFED step size for descent search, in the present case, “0.5” (dimensionless).
<dt_damp_afed>
0.7d0This keyword sets the damping factor of the AFED step size as approaching the convergence, in the present
case, “0.7” (dimensionless).
<dt_conv_afed>
0.05d0This keyword sets the AFED step size at the convergence in the present case, “0.05” (dimensionless).
3.13.3

Ascent search for free energy saddles

To prepare the ﬁle input.dat, all the keywords given in Sections 3.1, 3.2, and 3.13.1 are important. In addition,
the following keywords are also important.
<method>
AFEDThis keyword sets the simulation method, in the present case, “AFED” means adiabatic free energy dynamics.
<afed_type>
ASCENT
This keyword sets the type of AFED, in the present case, “ASCENT” means ascent search.
<niter_afed>
200This keyword sets the number of iterations (the number of updates of ﬁctitious particle) in adiabatic freeenergy dynamics, in the present case, “200” iterations.
<dt_ascent_afed>
1.0d0This keyword sets the initial AFED step size for ascent search, in the present case, “1.0” (dimensionless).
<dt_damp_afed>
0.7d0This keyword sets the damping factor of the AFED step size as approaching the convergence, in the present
case, “0.7” (dimensionless).
<dt_conv_afed>
0.05d0This keyword sets the AFED step size at the convergence in the present case, “0.05” (dimensionless).
<gamma_ascent_afed>
1.0d0This keyword sets the parameter γ gad for AFED ascent search in hartree, in the present case, “1.0” hartree.
51

<hessian_ascent_afed>
NUMERICALThis keyword sets the option for the evaluation of hessian term in AFED ascent search, in the present case,“numerical” evaluation.
<fdiff_sampling_afed>
5.0This keyword sets the ﬁnite diﬀerence parameter for the numerical evaluation of the hessian term in AFED
ascent search, in this case, “5.0”.
3.13.4

Automated search for free energy stationary points

To prepare the ﬁle input.dat, all the keywords given in Sections 3.1, 3.2, and 3.13.1 are important. In addition,
the following keywords are also important.
<method>
AFEDThis keyword sets the simulation method, in the present case, “AFED” means adiabatic free energy dynamics.
<afed_type>
AUTO
This keyword sets the type of AFED, in the present case, “AUTO” means automated search by combining
descent and ascent methods.
<niter_afed>
200This keyword sets the number of iterations (the number of updates of ﬁctitious particle) in adiabatic freeenergy dynamics, in the present case, “200” iterations.
<dt_descent_afed>
0.5d0This keyword sets the initial AFED step size for descent search, in the present case, 0.5 (dimensionless).
<dt_ascent_afed>
1.0d0This keyword sets the initial AFED step size for ascent search, in the present case, 1.0 (dimensionless).
<dt_damp_afed>
0.7d0This keyword sets the damping factor of the AFED step size as approaching the convergence, in the present
case, “0.7” (dimensionless).
<dt_conv_afed>
0.05d0This keyword sets the AFED step size at the convergence in the present case, “0.05” (dimensionless).
<gamma_ascent_afed>
1.0d0This keyword sets the gamma parameter for AFED ascent search in hartree, in the present case, “1.0” hartree.
52

<hessian_ascent_afed>
NUMERICALThis keyword sets the option for the evaluation of hessian term in AFED ascent search, in the present case,“numerical” evaluation.
<fdiff_sampling_afed>
5.0This keyword sets the ﬁnite diﬀerence parameter for the numerical evaluation of the hessian term in AFED
ascent search, in this case, “5.0”.
<nshot_auto_afed>
10This keyword sets the maximum number of shots in AFED ascent search from a minimum in automatedcalculations.
<nmiss_auto_afed>
5This keyword sets the maximum number of consecutive misses in AFED ascent search from a minimum in
automated calculations.
3.13.5Temperature accelerated molecular dynamics

To prepare the ﬁle input.dat, all the keywords given in Sections 3.1, 3.2, and 3.13.1 are important. In addition,
the following keywords are also important.
<method>
AFEDThis keyword sets the simulation method, in the present case, “AFED” means adiabatic free energy dynamics.
<afed_type>
TAMD
This keyword sets the type of AFED, in the present case, “TAMD” means temperature accelerated molecular
dynamics.
<tamd_type>
NVE
This keyword sets the type of TAMD. In the present case, “NVE” means NVE-type TAMD. NVT (NoséHoover dynamics) and VS (velocity scaling dynamics) are also available.
<niter_afed>
200This keyword sets the number of AFED steps (the number of total updates of ﬁctitious particle) in TAMD.
In the present case, “200” iterations.
<dt_tamd>
1.0This keyword sets the AFED step size, ∆tcv , for TAMD. In the present case, “1.0” (since the dynamics of
TAMD is physically meaningless, the unit can be arbitrarily chosen; e.g., fs).

53

<start_afed>
MANUAL0.2 1.3e-2
1.67 -6.3e-1...
This keyword sets the initial position and velocity of each of ﬁctitious CV particles (variables). If “MANUAL”
is speciﬁed in the ﬁrst line, the initial position and velocity of each CV particle should be given for each line asin the example above; in this case, the initial position of the ﬁrst CV particle is 0.2 and its velocity is 1.3e-2.
Those of the second CV particle are 1.67 and -6.3e-1, respectively. If “AUTOMATIC” is instead speciﬁed(default setting), the initial positions are automatically estimated from the initial conﬁguration of the MD
system, and the initial velocities are set by random numbers corresponding to the physical temperature givenby the keyword <temperature>.
<start_therm_afed>
MANUAL0 0This keyword sets the initial position and velocity of the Nosé-Hoover thermostat variable η. If “MANUAL”
is speciﬁed, its initial position and velocity should be given; in this case, η(0) = 0 and vη (0) = 0 (default
setting). If “AUTOMATIC” is instead speciﬁed, η is set to be “0” and vη is automatically set according to
the preset physical temperature.
<mass_afed>
MANUAL
1
4...
This keyword sets the parameters that re-adjust the mass of the ﬁctitious CV particles. If “MANUAL” is set,the mass determined by <params_afed> (see Sec.3.13.1) is mutiplied by the number given below “MANUAL”(the ith line is for the mass of the ith particle). In this example, the mass of the ﬁrst CV particle is mutipliedby “1” and that of the second CV particle is mutiplied by “4”. If “AUTOMATIC” is instead speciﬁed (default
setting), the masses are not re-adjusted.
<temperature_tamd>
3000.0This keyword sets the temperature of TAMD, Ttamd , in the present case, “3000.0” kelvin.
<niter_bath_afed>
100This keyword sets the number of AFED steps, nb , associated to the mass of the Nosé-Hoover thermostat,
Q. In the present case, “100” (no unit); i.e., Q = DkB T (nb ∆tcv )2 , where D is the number of the ﬁctitious
paticles and T is the physical temperature given by the keyword <temperature>.
<ioption_afed>
1 or 2This keyword sets the weight Wl in parallel-dynamics discussed in Sec.11.17. With “1”, Wl = 1 for all beads(replicas), while Wl is set by Eq.(238) (see Sec.11.17) with “2”.
<iprint_weight>
10
This keyword sets the print interval of the weight Wl in parallel-dynamics discussed in Sec.11.17. In thepresent case, Wl are output every 10 steps to af ed weight.out. No Wl will be output with “-1” (default).
54

3.13.6

Logarithmic mean force dynamics

To prepare the ﬁle input.dat, all the keywords given in Sections 3.1, 3.2, and 3.13.1 are important. In addition,
the following keywords are also important.
<method>
AFEDThis keyword sets the simulation method, in the present case, “AFED” means adiabatic free energy dynamics.
<afed_type>
LOGMFD
This keyword sets the type of AFED, in the present case, “LOGMFD” means logarithmic mean force dynamics.
<logmfd_type>
NVE
This keyword sets the type of LogMFD. In the present case, “NVE” means NVE-type LogMFD. NVT (NoséHoover dynamics) and VS (velocity scaling dynamics) are also available.
<niter_afed>
200This keyword sets the number of AFED steps (the number of total updates of ﬁctitious particle) in LogMFD,
in the present case, “200” iterations.
<dt_logmfd>
1.0This keyword sets the AFED step size, ∆tcv , for LogMFD. In the present case, “1.0” (since the dynamics of
LogMFD is physically meaningless, the unit can be arbitrarily chosen; e.g., fs).
<alpha_logmfd>
4.0′This keyword sets the parameter αlog (> 0) in LogMFD. In input.dat, α (= αlog kB T ) should instead be givenby this keyword, where T is the physical temperature set by the keyword <temperature>. In the present
case, αlog = 4/kB T hartree−1 .
<gamma_logmfd>
0.25′This keyword sets the parameter γlog in LogMFD. In input.dat, γ (= γlog /kB T ) should instead be given by
this keyword. Normally, γlog = 1/αlog works well (default setting). In the present case, γlog = 0.25kB T
hartree.
<start_afed>
MANUAL0.2 1.3e-2
1.67 -6.3e-1...
This keyword sets the initial position and velocity of each of ﬁctitious CV particles (variables). If “MANUAL”
is speciﬁed in the ﬁrst line, the initial position and velocity of each CV particle should be given for each line asin the example above; in this case, the initial position of the ﬁrst CV particle is 0.2 and its velocity is 1.3e-2.
Those of the second CV particle are 1.67 and -6.3e-1, respectively. If “AUTOMATIC” is instead speciﬁed(default setting), the initial positions are automatically estimated from the initial conﬁguration of the MD
system, and the initial velocities are set by random numbers corresponding to the physical temperature givenby the keyword <temperature>.
55

<start_therm_afed>
MANUAL0 0This keyword sets the initial position and velocity of the Nosé-Hoover thermostat variable η. If “MANUAL”
is speciﬁed, its initial position and velocity should be given; in this case, η(0) = 0 and vη (0) = 0 (default
setting). If “AUTOMATIC” is instead speciﬁed, η is set to be “0” and vη is automatically set according to
the preset physical temperature.
<mass_afed>
MANUAL
1
4...
This keyword sets the parameters that re-adjust the mass of the ﬁctitious CV particles. If “MANUAL” is set,the mass determined by <params_afed> (see Sec.3.13.1) is mutiplied by the number given below “MANUAL”(the ith line is for the mass of the ith particle). In this example, the mass of the ﬁrst CV particle is mutipliedby “1” and that of the second CV particle is mutiplied by “4”. If “AUTOMATIC” is instead given (default
setting), the masses are not re-adjusted.
<niter_bath_afed>
100This keyword sets the number of AFED steps, nb , associated to the mass of the Nosé-Hoover thermostat,
Q. In the present case, “100” (no unit); i.e., Q = DkB T (nb ∆tcv )2 , where D is the number of the ﬁctitious
paticles and T is the physical temperature given by the keyword <temperature>.
<fenergy_ini_logmfd>
0.01This keyword sets the initial value of the free energy estimated on-the-ﬂy during the LogMFD run. Thismeans that this keyword sets the origin of the energy scale. In the present case, the initial free energy is“0.01” hartree.
<ioption_afed>
1 or 2This keyword sets the weight Wl in parallel-dynamics discussed in Sec.11.17. With “1”, Wl = 1 for all beads(replicas), while Wl is set by Eq.(238) (see Sec.11.17) with “2”.
<iprint_weight>
10
This keyword sets the print interval of the weight Wl in parallel-dynamics discussed in Sec.11.17. In thepresent case, Wl are output every 10 steps to af ed weight.out. No Wl will be output with “-1” (default).

3.14

String method (STRING)

The theoretical background of the string method (STRING) is brieﬂy explained in Section 11.7.
As an example, a set of input ﬁles for the water dimer is available. Let us copy it to the directory run:> cp -r examples/H4O2/mm_string run
and enter that directory:> cd run/mm_string56

Let us look at the keywords one by one.
<method>
STRING
This keyword sets the simulation method to the string method.
<ipotential>
MM
This keyword sets the potential, in this case, the MM force ﬁeld is chosen.
<iboundary>0This keyword sets the boundary condition, in the present case, “0” means the free boundary condition.
<nbead>32This keyword sets the number of images, i.e., the number of beads, in the string method. In this case, 32
images is chosen.
<nstep>1000
This keyword sets the maximum number of updates of the string, in this case, 1000 steps.
<dt>
0.01d0This keyword sets the step size for updates of the string. In this case, 0.01 hartree0.5 femtoseconds.
<ends_string>
FIXEDThis keyword sets the condition for the end points of the string. In this case, both end points are ﬁxed.
<iprint_std>
100This keyword sets the print interval of standard output. In this case, every 100 steps.
The output ﬁles *.out and the restart ﬁles *.ini are explained in Section 10.2 and Section 10.3, respectively.
To run from scratch, one can start from a straight line interpolation of the atomic positions of the reactant
end and the product end, which are given in the ﬁle structure.dat. Otherwise, one can create the restart ﬁlestring.ini in which all the atomic positions of 32 images are listed. When both the restart ﬁle (string.ini)
and the input ﬁle (structure.dat) are present, the former always has priority.

3.15

Phonon calculation (PHONON)

The theoretical background of phonon calculation (PHONON) is brieﬂy explained in Section 11.6.
As an example, a set of input ﬁles for nickel FCC crystal is available. So, let us copy it to the directoryrun:> cp -r examples/Ni/eam_phonon run
and enter that directory:> cd run/eam_phonon
57

Let us look at the keywords one by one.
<method>
PHONON
This keyword sets the simulation method, in the present case, the phonon calculation.
<ipotential>
EAM
This keyword sets the potential, in the present case, the embedded atom method.
<iboundary>1
33.25917740
0.00000000
0.00000000

0.00000000
33.25917740
0.00000000

0.00000000
0.00000000
33.25917740

This keyword sets the boundary condition. In the present case, “1” means that the periodic boundary
condition is applied, and the following nine numbers indicate that the simulation box is cubic with the side
length of 33.25917740 bohr.
Now, the keywords speciﬁc to the phonon calculation is listed below.
<cells_phonon>
5 5 5This keyword sets the number of unit cells in the box along the a, b, c axes. In the present case, there are
125 = 5 × 5 × 5 unit cells in the box with the size ⃗au.c. = (L, 0, 0), ⃗bu.c. = (0, L, 0) and ⃗cu.c. = (0, 0, L) where
L = 33.25917740/5 = 6.65183548.
<kdisp_phonon>
20
0.00000 0.0 0.0
0.05000 0.0 0.0
0.10000 0.0 0.0
0.15000 0.0 0.0
0.20000 0.0 0.0
0.25000 0.0 0.0
0.30000 0.0 0.0
0.35000 0.0 0.0
0.40000 0.0 0.0
0.45000 0.0 0.0
0.50000 0.0 0.0
0.55000 0.0 0.0
0.60000 0.0 0.0
0.65000 0.0 0.0
0.70000 0.0 0.0
0.75000 0.0 0.0
0.80000 0.0 0.0
0.85000 0.0 0.0
0.90000 0.0 0.0
0.94458 0.0 0.0
This keyword sets the k-points for the calculation the phonon dispersion curve. In the present case, 20 points
are computed up to the kmax = 2π/L = 0.94458. The results are displayed in the output ﬁle phonon kdisp.out.

58

<kdos_phonon>
3 3 3This keyword sets the k-point sampling for the calculation of phonon density of states. In the present case,3 × 3 × 3 is chosen.
<dosrange_phonon>
0.0 500.0
5.0This keyword sets the frequency range of the phonon density of states, which is printed to the output ﬁlephonon dos.out. In the present case, the range is set to be from 0.0 cm−1 to 500.0 cm−1 with the incrementof 5.0 cm−1 .
<temprange_phonon>
0.0
900.0
5.0
This keyword sets the temperature range of the phonon energies to be displayed in the output ﬁle phonon
energy.out. In the present case, the range is set to be from 0.0 K to 900.0 K with the increment of 5.0 K.
The output ﬁles *.out will be explained in Section 10.2 and Section 10.3, respectively.

3.16

Optimization of OM action (OMOPT)The theoretical background of OM action is brieﬂy explained in Section 11.8.
As an example, a set of input ﬁles for water dimer is available. So, let us copy it to the directory run:> cp -r examples/H4O2/mm_omopt run
and enter that directory:> cd run/mm_omopt
Let us look at the keywords one by one.
<method>
OMOPTThis keyword sets the simulation method, the string method.
<ipotential>
MM
This keyword sets the potential, in the present case, the MM force ﬁeld is chosen.
<iboundary>0This keyword sets the boundary condition, in the present case, “0” means the free boundary condition.
<nbead>120
This keyword sets the number of images, i.e., the number of beads, in the string method. In the present case,
120 images is chosen.
<nstep>
10000
This keyword sets the maximum number of updates of the string, in the present case, 10000 steps.

59

<dt>
0.625d0This keyword sets the step size for updates of the string, in the present case, 0.625 femtoseconds.
<iprint_std>
100This keyword sets the print interval of standard output, in the present case, every 100 steps.
<gamma_om>
0.00625d0
This keyword sets the friction constant in femtoseconds−1 , in the present case, 0.00625 femtoseconds−1 .
<fdiff>
1.d-6
This keyword sets the maximum shift of atomic coordinates, δ, to obtain the numerical gradient of OM
action.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.
In order to run from scratch, one can start from a straight line interpolation of the atomic positions of
the reactant end and the product ends, which are given in the ﬁle structure.dat. Otherwise, one can makethe restart ﬁle string.ini ﬁle in which all the atomic positions of 120 images are listed. When both the restartﬁle (string.ini) and the input ﬁle (structure.dat) are present, the former always has the priority.
When the keyword<method>
TESTOMis used instead of <method> = OMOPT, the numerical gradient of OM action is tested.

3.17

User-made potentials

One can modify the PIMD code in order to implement a user-made potentials. The easiest way is to modify
the source ﬁles, force user.F and force user MPI.F, for the serial and parallel codes.
c***********************************************************************
subroutine force_user
c***********************************************************************
c----------------------------------------------------------------------c/*
shared variables*/c----------------------------------------------------------------------use common_variables, only :&x, y, z, fx, fy, fz, pot, natom, nbeadc----------------------------------------------------------------------c/*
local variables*/c----------------------------------------------------------------------implicit none
.....
.....

60

returnend

c***********************************************************************
subroutine force_user_MPI
c***********************************************************************
c----------------------------------------------------------------------c/*
shared variables*/c----------------------------------------------------------------------use common_variables, only :&x, y, z, fx, fy, fz, pot, natom, nbead, myrank, nprocsc----------------------------------------------------------------------c/*
local variables*/c----------------------------------------------------------------------implicit none
.....
.....
returnend

and compile them normally as described in Section 2.
When running the PIMD code, set to<ipotential> = USER to make use of these routines.
As the tools to check the user-made potentials, it is advisable to compare the analytical force and analyticalvirial values, with the numerical ones. For this sake, the following methods are supported.
• <method> = TESTFORCE: A test of forces. The force of each atom are compared with that obtained
numerically by varying the atomic position. This works both under the free boundary <iboundary> = 0
or the periodic boundary conditions <iboundary> = 1.
• <method> = TESTVIRIAL: A test of virial matrix. The potential derivative with respect to the box
matrix is obtained analytically from the virial matrix. Then, this is compared with that obtained
numerically by varying the box matrix. This only works under the periodic boundary condition<iboundary> = 1.
3.17.1

Testing forces

Starting from the setup of the static calculations, one has only to replace <method> = STATIC by<method>
TESTFORCE
The precision of the numerical diﬀerentiation can be controlled by the keyword<fdiff>
1.e-4
which sets the shift of atomic coordinates, δ, to obtain the numerical force,−

V (riα + δ) − V (riα,l − δ)
∂V
== −
.
∂riα,l2δ
61(1)

On the execution of the PIMD code, the following output will appear on the screen:......
==============================================================================
atom bead F (analytical)
F (numerical) stat wall clock time-----------------------------------------------------------------------------1
1
0.2275176522
0.2275176520
OK 2015-05-19 TUE 10:08:23.N
1
1-0.0197918981-0.0197918968
OK 2015-05-19 TUE 10:08:23.N
1
10.0547412167
0.0547412165
OK 2015-05-19 TUE 10:08:23.N...
...
............
............
.. .......... ... ..........
Here the analytical values (third column) and the numerical values (fourth column) of − ∂r∂Vix,l(row 1), − ∂r∂Viy,l(row 2) and − ∂r∂V (row 3) are displayed for each atom i and for each bead l. In the ﬁfth column, the statusiz,l“OK” means that the analytical and numerical values are within the error tolerance. Otherwise, the statuschanges into “X”.
3.17.2

Testing virial

Starting from the setup of the static calculations, one has only to replace <method> = STATIC by<method>
TESTVIRIAL
The precision can be controlled by the keyword<fdiff>
1.e-3
which sets the shift of box matrix, δ, to obtain the numerical derivatives,−

V (hαβ + δ) − V (hαβ − δ)
∂V
=−
.
∂hαβ
2δ

(2)

Meanwhile, the analytical derivatives are obtained from the expression
−

3
X
∂V
=
Aαγ h−1
βγ .
∂hαβ
γ=1

where Aαγ is the virial matrix.
On the execution of the PIMD code, the following output will appear on the screen:......
==============================================================================
ij -dV/dH (analy) -dV/dH (numer) stat wall clock time-----------------------------------------------------------------------------1
1
0.15682910
0.15682911
OK 2015-05-19 TUE 16:21:53.N
1
2-0.11805355-0.11805355
OK 2015-05-19 TUE 16:21:54.N
1
3-0.15588884-0.15588884
OK 2015-05-19 TUE 16:21:54.N
2
1-0.11710006-0.11710006
OK 2015-05-19 TUE 16:21:54.N
2
20.15944027
0.15944027
OK 2015-05-19 TUE 16:21:54.N
2
3-0.15758104-0.15758104
OK 2015-05-19 TUE 16:21:54.N
62

(3)

3
3
3

1
2
3

-0.16004417-0.15969706
0.24311474-0.16004417-0.15969705
0.24311475

OK
OK
OK

2015-05-19 TUE 16:21:54.N
2015-05-19 TUE 16:21:54.N
2015-05-19 UTE 16:21:54.N∂V
Here the analytical values (third column) and the numerical values (fourth column) of − ∂hare displayed
αβfor all the indices i and j. In the ﬁfth column, the status “OK” means that the analytical and numericalvalues are within the error tolerance. Otherwise, the status changes into “X”. By deﬁnition, the virial tests
can be only be done in the periodic boundary condition.

3.17.3

Testing Ewald parameters

In the case of non-polarizable MM force ﬁeld, <ipotential> = MM, or polarizable MM force ﬁelds,<method> = POL, OSS, one can test the Ewald parameters, the precision (epsilon) and the computation
ratio of real/reciprocal space (ratio). Starting from the setup of the static calculations, one has only toreplace <method> = STATIC by<method>
TESTEWALD
for the Ewald parameters of charge-charge interactions.
<method>
TESTEWPOL
for the Ewald parameters of charge-dipole and dipole-dipole interactions in the case of polarizable force ﬁeld.
On the execution of the PIMD code, the following output will appear on the screen:......
==============================================================================
epsilonratio n1 n2 n3 l1 l2 l3energy [au]wall clock time-----------------------------------------------------------------------------2020-05-10 Sun 09:11:52.89
0.1E-070.100 3 3 3 5 5 5 -339.755346433 2020-05-10 Sun 09:11:53.93
0.1E-05
0.100 2 2 2 4 4 4 -339.755326782 2020-05-10 Sun 09:11:54.54
0.1E-06
0.100 3 3 3 5 5 5 -339.755347885 2020-05-10 Sun 09:11:55.52
0.1E-070.100 3 3 3 5 5 5 -339.755346433 2020-05-10 Sun 09:11:56.55
0.1E-080.100 3 3 3 5 5 5 -339.755352183 2020-05-10 Sun 09:11:57.64
0.1E-090.100 3 3 3 6 6 6 -339.755352947 2020-05-10 Sun 09:11:59.05
0.1E-070.144 3 3 3 5 5 5 -339.755349913 2020-05-10 Sun 09:12:00.01
0.1E-070.120 3 3 3 5 5 5 -339.755343475 2020-05-10 Sun 09:12:01.02
0.1E-070.100 3 3 3 5 5 5 -339.755346433 2020-05-10 Sun 09:12:02.04
0.1E-070.083 3 3 3 5 5 5 -339.755343699 2020-05-10 Sun 09:12:03.09
0.1E-070.069 3 3 3 5 5 5 -339.755353672 2020-05-10 Sun 09:12:04.17
Here n1 n2 n3 are the cut oﬀs in the real space, and l1 l2 l3 are the cut oﬀs in the reciprocal space, which
are automatically determined by epsilon and ratio parameters. Initial values of epsilon and ratio can becontrolled by the keywords <ewald> and <ewpol> in the ﬁle mm.dat. By deﬁnition, the Ewald tests can be
only be done in the periodic boundary condition.

3.18

Mechanochemistry

The theoretical background of mechanochemical calculation (MECH) is brieﬂy explained in Section 11.1.

63

The external force explicitly included (EFEI) method for mechanochemical calculations [40] is implemented in the PIMD code. The EFEI method can be used, in principle, in the combination with any othermethods. An example for a water molecule can be found in the directory examples/H2O/water mech. andenter that directory:> cd run/water_mech
The following keywords designate the inclusion of the external force.
<mech_type>
EFEI
This keyword sets the type of mechanochemical calculation to be the external force explicitly included (EFEI)
method.
<efei>
2 3 0.01
This keyword sets the parameters of the EFEI method. In this case, the repulsive force is applied between
the pair of atoms 2 and 3 with the amplitude of F = 0.01 hartree/bohr.
<iprint_mech>
1
This keyword sets the print interval of energy components to the output ﬁle, mech.out.
On the execution of the PIMD code, the output ﬁle, mech.out, will be created. See Section 10.2 for thedata format of the output ﬁle.

3.19

Nonadiabatic dynamics

The following methods for nonadiabatic dynamics are implemented in the PIMD code.
• TFS: surface hopping dynamics (Tully’s fewest switches).
• MFE: mean ﬁeld dynamics (Ehrenfest mean ﬁeld).
3.19.1

Surface hopping dynamics

The theoretical background of surface hopping dynamics is brieﬂy explained in Section 11.18.
As an example, a set of input ﬁles for the LiH molecule is available. So, let us copy it to the directoryrun:> cp -r examples/LiH/molpro_tfs run
and enter that directory:> cd run/molpro_tfs/
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important.
<method>
TFS
This keyword sets the simulation method. In the present case, surface hopping dynamics.
<nbead>464This keyword sets the number of independent trajectories, i.e., the number of beads, in the present case, four
trajectories.
<dt>
0.25d0This keyword sets the step size, in the present case, 0.25 femtoseconds.
<nstep>400
This keyword sets the number of steps, in the present case, 400 steps.
<nref>
100
This keyword controls the time increment of the state coeﬃcients, in the present case, 1/100 of <dt>.
<nstate>2This keyword sets the number of adiabatic electronic states. In the present case, two states, the ground state
and the ﬁrst excited state, are chosen.
<istate_init>
2
This keyword sets the state occupied initially. In the present case, the second lowest state (the ﬁrst excitedstate) is chosen.
<temperature>
300.d0This keyword sets the initial temperature of the system. The velocities are generated randomly according to
Maxwell-Boltzmann distribution at this temperature, in the present case, 300 kelvin.
<iprint_tfs>
1
This keyword sets the print interval of the output ﬁle tfs.out, in the present case, every step.
<iprint_nac>1This keyword sets the print interval of the output ﬁle nac.out, in the present case, every step.
Input data for MOLPRO. In the PIMD code, nonadiabatic dynamics, i.e., surface hopping dynamics
and mean ﬁeld dynamics, can be carried out with the MOLPRO code. The MOLPRO input ﬁle, molpro.dat,should be present in the execution directory. The following is an example of LiH molecule using the CASSCF
method and 6-31g(d,p) basis set. The input ﬁle sets up the static calculation of the potential energy, thedipole moment, the forces and the nonadiabatic coupling elements. It makes the data printed to the output
ﬁle, table.molpro.
> cat molpro.dat***,title
memory,100,mbasis=6-31g(d,p)
65

geomtyp=xyz
geometry={nosym;noorient;2comment
li 0.0000
0.00000.0000h5.00000.00000.0000}int;
multi;
occ,3;frozen,0;closed,1;wf,4,1,0;state,2;weight,1,1
cpmcscf,nacm,1.1,2.1,accu=1.d-7,record=5101.1
cpmcscf,grad,1.1,accu=1.d-7,record=5102.1
cpmcscf,grad,2.1,accu=1.d-7,record=5103.1
e=energytable,esave,table.molpro
title,<energy>
format,(e24.16)!print a table with results!save to file!title for the table!explicit format

table,dmx,dmy,dmz
save,table.molpro
title,<dipole>
format,(3e24.16)!print a table with results!save to file!title for the table!explicit format

force
samc,5101.1
varsav
table,gradx,grady,gradz
save,table.molpro
title,<nacme> 1 2
format,(3e24.16)!print a table with results!save to file!title for the table!explicit format

force
samc,5102.1
varsav
table,gradx,grady,gradz
save,table.molpro
title,<grad> 1
format,(3e24.16)!print a table with results!save to file!title for the table!explicit format

force
samc,5103.1
varsav
table,gradx,grady,gradz
save,table.molpro
title,<grad> 2
format,(3e24.16)!print a table with results!save to file!title for the table!explicit format

This ﬁle could be tested by running directly the MOLPRO code,> molpro < molpro.dat
If this works correctly, one is ready to run the PIMD code.
66

On the execution of PIMD, the output ﬁle tfs.out is generated.
> less tfs.out.....
==========================================================================
step bead
s occ
pop/s
ratio/spotential/s
potential/occ-------------------------------------------------------------------------0
1
1
2 0.000000 0.000000-7.92966939-7.86722151
012
2 1.000000 1.000000-7.86722151-7.86722151
02
1
2 0.000000 0.000000-7.92966939-7.86722151
022
2 1.000000 1.000000-7.86722151-7.86722151
03
1
2 0.000000 0.000000-7.92966939-7.86722151
032
2 1.000000 1.000000-7.86722151-7.86722151
041
2 0.000000 0.000000-7.92966939-7.86722151
042
2 1.000000 1.000000-7.86722151-7.86722151
1
1
1
2 0.000004 0.000000-7.92988085-7.86730272
11
2
2 0.999996 1.000000-7.86730272-7.86730272
12
1
2 0.000003 0.000000-7.92947539-7.86714613
12
2
2 0.999997 1.000000-7.86714613-7.86714613
13
1
2 0.000004 0.000000-7.92988085-7.86730272
13
2
2 0.999996 1.000000-7.86730272-7.86730272
1
4
1
2 0.000003 0.000000-7.92947539-7.86714613
14
2
2 0.999997 1.000000-7.86714613-7.86714613.....
The ﬁrst three columns are the step number, the bead number, and the state number. The fourth column isthe occupied state of the corresponding bead. The ﬁfth column is the population of the corresponding statefor each bead. The sixth column is the occupancy ratio of the corresponding state among all the beads. The
seventh and the eighth columns are the potential energies of the corresponding state and the occupied state,
respectively, of each bead.
3.19.2

Mean ﬁeld dynamics

The theoretical background of mean ﬁeld dynamics is brieﬂy explained in Section 11.18.
As an example, a set of input ﬁles for the LiH molecule is available. So, let us copy it to the directoryrun:> cp -r examples/LiH/molpro_mfe runand enter that directory:> cd run/molpro_mfe/
The keywords for the ﬁle input.dat are basically the same as those in Section 3.19.1, except that the
keyword <method> = TFS is replaced by<method>MFE
and the keyword <iprint_tfs> is replaced by<iprint_mfe>
167which controls the print interval of the output ﬁle, mfe.out.
On the execution of PIMD, the output ﬁle mfe.out is generated.
> less mfe.out.....
==========================================================================
step bead
s occ
pop/s
occ/s
pot/state
pot/occ-------------------------------------------------------------------------01
1
0 0.000000 0.000000-7.92966939-7.86722151
012
0 1.000000 1.000000-7.86722151-7.86722151
02
1
0 0.000000 0.000000-7.92966939-7.86722151
02
2
0 1.000000 1.000000-7.86722151-7.86722151
03
1
0 0.000000 0.000000-7.92966939-7.86722151
03
2
0 1.000000 1.000000-7.86722151-7.86722151
04
1
0 0.000000 0.000000-7.92966939-7.86722151
042
0 1.000000 1.000000-7.86722151-7.86722151
11
1
0 0.000004 0.000003-7.92988085-7.86730277
11
2
0 0.999996 0.999997-7.86730272-7.86730277
12
1
0 0.000003 0.000003-7.92947539-7.86714619
12
2
0 0.999997 0.999997-7.86714613-7.86714619
1
3
1
0 0.000004 0.000003-7.92988085-7.86730277
13
2
0 0.999996 0.999997-7.86730272-7.86730277
14
1
0 0.000003 0.000003-7.92947539-7.86714619
14
2
0 0.999997 0.999997-7.86714613-7.86714619.....
The ﬁrst three columns are the step number, the bead number, and the state number. The fourth column iszero (no meaning, since the occupied state is mixed). The ﬁfth column is the population of the corresponding
state for each bead. The sixth column is the occupancy ratio of the corresponding state among all the beads.
The seventh and the eighth columns are the potential energies of the corresponding state and the mixed
state, respectively, of each bead.

3.20

Molecular dynamics of rigid molecules

As an example, a set of input ﬁles for the aqueous solution of NaCN is available. So, let us copy it to thedirectory run:> cp -r examples/"NaCN(aq)"/mm_rotor run
and enter that directory:> cd run/mm_rotor/
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important.
<method>
ROTOR
This keyword sets the simulation method, in the present case, molecular dynamics of rigid molecules.
<ensemble>
NVT
68

<dt>
0.25d0This keyword sets the step size, in the present case, 0.25 femtoseconds.
<nstep>400
This keyword sets the number of steps, in the present case, 0.25 femtoseconds.
<temperature>
300.d0This keyword sets the temperature of the system, in the present case, 300 kelvin.
<iboundary>1
37.237981
0.000000
0.000000

0.000000
37.237981
0.000000

0.000000
0.000000
37.237981

This keyword sets the boundary condition and the initial box. In the present case, “1” means periodic
boundary and the following three lines are the matrix of the initial box. In the present case, a cubic box
with the side length of 37.237981 bohr is used.
<iread_exit>
10
This keyword set the interval of reading exit.dat, in the present case, every 10 steps.
<iprint_std>10<iprint_rest>10<iprint_rdf>
10<iprint_trj>
10<iprint_xyz>
10<iprint_dip>
10
These keywords set the print intervals of the standard output, the restart ﬁles, the radial distributions, thetrajectories in the regular and the xyz formats, and the dipole moments, respectively.
Now comes the keywords peculiar to <method> = ROTOR.
<components>
3
H2O
4-1.430429

GENERAL-0.984140

0.00000069

1.430429
0.000000
0.000000
CN
40.000000
0.000000
0.000000
0.000000
Na
10.000000-0.984140
0.123017-0.160441
LINEAR
0.000000
0.000000
0.000000
0.000000MONOATOM
0.000000

0.000000
0.000000
0.000000-1.020452
0.805023
1.190527
1.610047
0.000000

This keyword sets the molecular components. There are “3” components (H2 O, CN, Na). The H2 O and CN
molecules have four interaction sites, while Na has one interacting site. As the CN molecule is linear, theatoms of CN molecule must be arranged along the z axis.
<molecules>
256
H2O
1 255 509 763
H2O
2 256 510 764...
... ... ... ...
...
... ... ... ...
H2O
254 508 762 1016
CN
1017 1018 1019 1020
Na
1021This keyword sets the number of molecules, in the present case, 256. The following lines set the site numbersof each molecule.
3.20.1

Gentlest ascent dynamics (GAD)In PIMD code, the gentlest ascent dynamics is implemented [78].
As an example, a set of input ﬁles for C2 H4 O is available. So, let us copy it to the directory run:> cp -r examples/C2H4O/smash_gad run
and enter that directory:> cd run/smash_gad
To prepare the ﬁle input.dat, all the keywords given in Sections 3.1 and 3.2 are important. In addition,
the following keywords are also important.
<method>
GAD
This keyword sets the simulation method. In the present case, “GAD” corresponds to gentlest ascent dynamics.
<dt>
0.01d0This keyword sets the step size in hartree0.5 femtoseconds.
<nstep>1000
This keyword sets the number of GAD steps.
70<iprint_xyz>
1This keyword sets the print interval of trajectory in xyz format. In the present case, every ten steps.
<nbead>8This keyword sets the number of GAD trajectories computed in parallel. In the present case, eight trajectories.
<fdiff>
1.d-3
This keyword sets the ﬁnite diﬀerence parameter used in GAD. In the present case, 10−3 bohr.
<irandom>
0This keyword sets the random number. In the present case, the random number starting with a predeﬁned
seed.
<gamma_gad>
0.1This keyword sets the gamma value of GAD. In the present case, “0.1” atomic unit.
<energy_max_gad>-150.6This keyword sets the maximum energy value of GAD. In the present case, “-150.6” hartree.
The output ﬁles *.out and the restart ﬁles *.ini will be explained in Section 10.2 and Section 10.3,
respectively.

3.21

Consecutive static calculations (SCAN)

Consecutive static calculations are performed using <method> = SCAN. A series of molecular conﬁgurations
is read from the ﬁle structure.dat. Upon executing the PIMD code, the potential energy, forces, and dipole
moment are computed for each molecular conﬁguration based on <ipotential>. The results are printed to
the following ﬁles: coord scan.out (atomic coordinates), potential scan.out (potential energy), forces scan.out(forces), and dipole scan.out (dipole moment).
In addition, an external shell script can be executed for each structure. The ﬁle name of the shell script
is speciﬁed by the keyword <scan_exe_shell>.

4

Potentials

In this section, the data in the potential ﬁles are explained. The ﬁle names and the data depend on thepotential employed. The input data for external codes (e.g., for ab initio calculations) should be preparedby the user. In principle, the PIMD code reuses the input ﬁles that work in the external codes. To make it
simple, most of the examples below are for a water molecule but with diﬀerent potentials.
IMPORTANT: Beware that only the geometry information in the PIMD input ﬁles, structure.dat, geometry.ini or string.ini, will be used. Thus, the geometry given in the external codes will not be used in the
PIMD code.

71

4.1

Empirical force ﬁelds

In the PIMD code, the following empirical force ﬁelds are implemented.
• MM: molecular mechanics (classical force ﬁeld).
• EAM: embedded atom method.
• ADP: angular dependent potential.
• PAIR: pair potential.
• TERSOFF: Tersoﬀ potential.
4.1.1

Molecular mechanics (MM)In the PIMD code, the molecular mechanics potential is given by the sum of the following terms• Vlin : the linear bonds in the harmonic form.
• Vgenlin : the linear bonds in the general anharmonic form.
• Vangl : the angular bonds.
• Vdih : the dihedral angular bonds.
• Vimpr : the improper angular bonds.
• Vcmap : CMAP correction for CHARMM force ﬁeld.
• Vlj : Lennard-Jones (LJ) interaction of 6-12 type.
• Ves : the electrostatic interaction.
• Vmrs : Morse interaction.
• Vbuck : Buckingham interaction.
The Ves could be either polarizable (MM) or non-polarizable (POL). Parameters for each term must be
speciﬁed in the input ﬁle called mm.dat in the execution directory. See Section 9.7 for details.
Example of non-polarizable liquid water. The following is the example of the input ﬁle mm.dat for
liquid water composed of 256 non-polarizable water molecules (768 atoms). The order of atoms is O(1), · · · ,O(256), H(257), · · · , H(512), H(513), · · · , H(768). The parameters are taken from the ﬂexible TIP3P model[41, 42].
> less examples/water/water_static/mm.dat<linear_bonds>
512
1 257 0.180884D+01
1 513 0.180884D+01... ... ............
... ... ............
256 512 0.180884D+01
256 768 0.180884D+01

0.401926D+00
0.401926D+00............
............
0.401926D+00
0.401926D+00<angular_bonds>
256
72

257
1 513
258
2 514
... ... ...
... ... ...
511 255 767
512 256 768

0.104520D+03
0.104520D+03............
............
0.104520D+03
0.104520D+03

0.534400D-04
0.534400D-04............
............
0.534400D-04
0.534400D-04<lennard-jones>
2937600.153900D+02 0.182250D+02
1
2 0.242560D-03 0.595369D+01
1
3 0.242560D-03 0.595369D+01... ... ............ ............
... ... ............ ............
257 258 0.733600D-04 0.755910D+00
257 259 0.733600D-04 0.755910D+00... ... ............ ............
... ... ............ ............
256 766 0.133400D-03 0.335480D+01
256 767 0.133400D-03 0.335480D+01<charges>768
1 -0.834000D+00
2 -0.834000D+00. .............
. .............
767 0.417000D+00
768 0.417000D+00<nbcp>
768
1 257
257 513... ...
512 768768 256<ewald>1.d-08

0.0
0.0
...
0.0
0.0

11.d+000• <linear_bonds>: There are two OH linear bonds per water molecule, O(n)-H(n + 256) and O(n)H(n + 512) for 1 ≤ n ≤ 256. Thus, there are 256 × 2 = 512 OH linear bonds in total. In each line, thetwo atoms involved in the linear bond are listed together with the equilibrium bond lengths (1.80884
bohr) and the force constants (0.401926 hartree/bohr2 ).
• <angular_bonds>: There are one HOH angular bond per water molecule, H(n + 256)-O(n)-H(n + 512)
for 1 ≤ n ≤ 256. Thus, there are 256 HOH angular bonds in total. In each line, the three atoms
involved in the angular bond are listed together with the equilibrium bond angles (104.52 degrees) andthe force constants 0.5344 × 10−4 hartree/degrees2 .

73• <lennard-jones>: There are 256×255/2 = 32640 intermolecular OO pairs, 512×511/2−256 = 130560
intermolecular HH pairs, and 256 × 512 − 512 = 130560 intermolecular OH pairs. Thus, there are
32640 + 130560 + 130816 = 293760 LJ interactions in total. The LJ cutoﬀ distances is set to be 15.390
bohrs (inner) and 18.225 bohrs (outer), respectively, Within the range 15.39 < r < 18.225, all the LJ
interactions are damped smoothly with a switching function. The two atoms relevant to each linear
bond are listed together with the LJ parameters, i.e., ϵ = (0.24256, 0.07336, 0.13340) × 10−3 hartrees
and σ = (5.95369, 0.75591, 3.35480) bohrs for the intermolecular (OO, HH, OH) pairs, respectively.
• <charges>: There are 768 atoms, all of them with atomic charges. Each line gives the atomic charge,-0.834 for O atom and 0.417 for H atom.
• <nbcp>: The electrostatic interaction is neglected (the scaling factor being zero) for all the 1-2 and1-3 bonded pairs. Such bonded charge pairs are three intramolecular pairs (two OH and one HH) per
water molecule. So, there are 768 pairs in total. Each of these pairs are listed together with the scaling
factor, 0.0.
• <ewald>: For the Ewald sum of charge-charge interactions, the precision is set as 10−8 hartrees. The
ratio of computational time between the real and the reciprocal space contributions is set as 11.0. The
dipole correction is not included (0).
Example of polarizable liquid water. The following is the example of the input ﬁle mm.dat for liquidwater composed of 96 polarizable water molecules and a chloride ion (289 atoms). Here the parameters aretaken from the RPOL model [84]. The intra-molecular parameters, as well as the Lennard-Jones parameters,
should be set in the same manner as the last paragraph, while the inter-molecular parameters should be set
as follows.
> less examples/water/water_static/mm.dat<linear_bonds>.......
<angular_bonds>.......
<lennard-jones>.......
<charges>289
1 -0.730000D+00
2 -0.730000D+00. .............
. .............
287 0.365000D+00
288 0.365000D+00
289 -1.000000D+00

3.563119D+00
3.563119D+00............
............
1.147216D+00
1.147216D+00
3.698086D+01<damping>
4
DD
1
CC
2
CD
2
CD
3

1.111158D+01
4.119602D+00
4.119602D+00
4.119602D+00

3
3
3
2

EXP
EXP
EXP
EXP

1
1
.
.
2
2
3

74

<nbcp>.......
<ewald>.......
<ewpol>1.d-8 0.1d0• <charges>: There are 289 atoms, all of them with atomic charges. Each line gives the atomic charge(-0.730, 0.365 and -1.000 for O, H and Cl atoms, respectively), and the atomic polarizability in bohr−3
units (3.563119, 1.147216 and 36.98086 for O, H and Cl atoms, respectively) and the atomic kind (1, 2
and 3 for O, H and Cl atoms, respectively).
• <damping>: There are 4 non-zero damping functions in the Thole exponential (EXP) form. The dipoledipole (DD) damping function between atomic kinds 1 and 3 (O and Cl), the charge-charge (CC),and charge-dipole (CD) damping function between atomic kinds 2 and 3 (H and Cl). The damping
parameters (11.11158 and 4.119602) are given in bohr units. Note the CD damping functions must be
designated separately for kinds x and y and for kinds y and x.
• <ewpol>: The parameters for the Ewald sum of the charge-dipole and dipole-dipole interactions are
given by this keyword. The precision is 10−8 , and the ratio of computational time between the real
and the reciprocal space is 0.1.
4.1.2

TIP4P

A special routine for TIP4P potentials has been implemented. This can be used not only for pure water but
also for aqueous solutions. To use this, one has to take care of three things mentioned below.
• Set the keyword<ipotential>
TIP4P
in the ﬁle input.dat.
• Set the keyword<TIP4P>O H 0.744
in the ﬁle mm.dat. The ﬁrst two characters, O and H, are the symbols of oxygen and hydrogen atoms.
These symbols should correspond to those designated in the ﬁle structure.dat (in the case of old input
style, those designated by the keyword nspec in input.dat). In this case, all the O and H atoms should
belong to TIP4P water molecules. For each O atom, two H atoms must exist within the range of 1.4 Å
and they must be unshared with any other O atoms. Otherwise the run will stop with an error message.
rH′ + ⃗rH′′ ).
The last value is γ value which determines the position of the M site, i.e. ⃗rM = γ⃗rO + 1−γ
2 (⃗• Set the all parameters in mm.dat as in the case of TIP3P aqueous solution. A slight diﬀerence isthat one assumes that the M charge belong to that of the nearest O atom. The keyword <charge>
designates the charge values of M in TIP4P where those of O would have been designated in TIP3P.
The keyword <nbcp> designates the non-interacting bonded charge pairs between M–H in TIP4P where
those between O–H would have been designated in TIP3P.
75

4.1.3

Embedded atom method (EAM)

The embedded atom method can be used by designating the keyword<ipotential>
EAM
The theoretical background is brieﬂy described in Section 9.8.
Example: hydrogen in FCC nickel crystal. The following is the example of the input ﬁle eam.dat for
nickel-hydrogen system composed of 500 nickel atoms and 1 hydrogen atom (501 atoms in total). The orderof atoms is Ni(1), · · · , Ni(500), H(501). The parameters are taken from the paper by Baskes et al. [47].
<nref_eam>
1000
This keyword gives the number of reference points for the table functions ϱ(r), F (ρ) and ϕ(r). in the present
case, 1000.
<rcut_eam>
5.7d0This keyword gives the cutoﬀ distance, in the present case, 5.7 Å.
<rhor_eam>
10.0000000000000000E+00
0.5678391991991992E-02......................
......................
20.0000000000000000E+00
0.5678391991991992E-02......................
......................

0.0000000000000000E+00
0.1353993104251454E-10......................
......................
0.0000000000000000E+00
0.8576998932607242E-09......................
......................

This keyword gives the table for the electron density functions ϱ as a function of interatomic distance r inÅ. The data shown here are• “1”, meaning the ﬁrst atomic species, Ni.
• 1000 lines of r and ϱNi (r).
• “2”, meaning the second atom species, H.
• 1000 lines of r and ϱH (r).
<frho_eam>
10.0000000000000000E+00 0.0000000000000000E+00
0.1300722992992993E-01 -0.1332662793615358E+00...................... ......................
...................... ......................
20.0000000000000000E+00 0.0000000000000000E+00
0.1300722992992993E-01 -0.1535560579048078E+00...................... ......................
...................... ......................
76

This keyword gives the table for the embedding functions F in eV as a function of the atomic electron density
ρ. The data shown here are• “1”, meaning the ﬁrst atomic species, Ni.
• 1000 lines of ρ and FNi (ρ).
• “2”, meaning the second atom species, H.
• 1000 lines of ρ and FH (ρ).
<phir_eam>
1 1
0.5678391959798995E-02
0.1135678395182324E-01......................
......................
1 2
0.5678391959798995E-02
0.1135678395182324E-01......................
......................
2 2
0.5678391959798995E-02
0.1135678395182324E-01......................
......................

0.6631473037261000E+02
0.6516245220935400E+02......................
......................
0.2625695627813300E+03
0.2552302121997200E+03......................
......................
0.3685598530752200E+02
0.3572904277414200E+02......................
......................

This keyword gives the table for the pair functions ϕ in eV as a function of the interatomic distance r in Å.
The data shown here are• “1 1”, meaning the atomic species, Ni and Ni.
• 1000 lines of r and ϕNi−Ni (r).
• “1 2”, meaning the atomic species, Ni and H.
• 1000 lines of r and ϕNi−H (r).
• “2 2”, meaning the atomic species, H and H.
• 1000 lines of r and ϕH−H (r).
4.1.4

Angular dependent potential (ADP)The angular dependent potential, developed by Mishin et al., [49] can be used by designating the keyword<ipotential>
ADP
The theoretical background is brieﬂy described in Section 9.8.

77

Example: Iron-Nickel crystal. The following is the example of the input ﬁle eam.dat for iron-nickel
system composed of 3 nickel atoms and 1 iron atom (4 atoms in total). The order of atoms is Fe(1), Ni(2),Ni(3), Ni(4). The parameters are taken from the paper by Mishin et al. [49]<nref_eam>
3000
This keyword gives the number of reference points for the table functions ϱ(r), F (ρ) and ϕ(r) u(r) and w(r).
in the present case, 3000.
<rcut_eam>
5.1683020
This keyword gives the cutoﬀ distance, in the present case, 5.1683020 Å.
<rhor_eam>
1
1.50118494266664
1.50236988533328................
................
2
1.50122276733329
1.50244553466657................
................

0.135029877700000
0.135019407000000.................
.................
7.97532702200000D-002
7.97200488300000D-002.....................
.....................

This keyword gives the table for the electron density functions ϱ as a function of interatomic distance r inÅ. The data shown here are• “1”, meaning the ﬁrst atomic species, Fe.
• 3000 lines of r and ϱFe (r).
• “2”, meaning the second atom species, Ni.
• 3000 lines of r and ϱNi (r).
<frho_eam>
11.61583175409239D-003
3.23166350818479D-003......................
......................
2
9.70543866871617D-004
1.94108773374323D-003......................
......................

-0.157213669000000-0.258334267800000..................
..................
-3.02907373000000D-002-5.06347214800000D-002......................
......................

This keyword gives the table for the embedding functions F in eV as a function of the atomic electron density
ρ. The data shown here are• “1”, meaning the ﬁrst atomic species, Fe.
• 3000 lines of ρ and FFe (ρ).

78• “2”, meaning the second atom species, Ni.
• 3000 lines of ρ and FNi (ρ).
<phir_eam>
11
1.50118494266664
1.50236988533328................
................
1
2
1.50122786633336
1.50245573266673................
................
2
2
1.50122276733329
1.50244553466657................
................

81.8259297900000
81.1895109900000................
................
50.0535601700000
49.6656730200000................
................
2.92413458500000
2.91770869700000................
................

This keyword gives the table for the pair functions ϕ in eV as a function of the interatomic distance r in Å.
The data shown here are• “1 1”, meaning the atomic species, Fe and Fe.
• 3000 lines of r and ϕFe−Fe (r).
• “1 2”, meaning the atomic species, Ni and H.
• 3000 lines of r and ϕFe−Ni (r).
• “2 2”, meaning the atomic species, H and H.
• 3000 lines of r and ϕNi−Ni (r).
<ur_adp>1
10.1501184943E+01 0.8546158795E-01
0.1502369885E+01 0.8547910647E-01................ ................
................ ................
1
2
1.50122786633336 4.31348913400000D-002
1.50245573266673 4.31657669700000D-002................ .....................
................ .....................
2
20.1501222767E+01 -0.3653576403E-01
0.1502445535E+01 -0.3648116307E-01................ ................
................ ................
This keyword gives the table for the pair functions u in eV1/2 Å−1 as a function of the interatomic distancer in Å. The data shown here are79• “1 1”, meaning the atomic species, Fe and Fe.
• 3000 lines of r and uFe−Fe (r).
• “1 2”, meaning the atomic species, Ni and H.
• 3000 lines of r and uFe−Ni (r).
• “2 2”, meaning the atomic species, H and H.
• 3000 lines of r and uNi−Ni (r).
<wr_adp>1
10.1501184943E+01
0.1502369885E+01................
................
1
2
1.50122786633336
1.50245573266673................
................
2
20.1501222767E+01
0.1502445535E+01................
................

0.1951794978E+00
0.1948689593E+00................
................
0.111232678200000
0.111050965000000................
................
0.1084737450E+00
0.1082973717E+00................
................

This keyword gives the table for the pair functions w in eV1/2 Å−1 as a function of the interatomic distancer in Å. The data shown here are• “1 1”, meaning the atomic species, Fe and Fe.
• 3000 lines of r and wFe−Fe (r).
• “1 2”, meaning the atomic species, Ni and H.
• 3000 lines of r and wFe−Ni (r).
• “2 2”, meaning the atomic species, H and H.
• 3000 lines of r and wNi−Ni (r).
4.1.5

Pair potential

The tabulated pair potential can be used by designating the keyword<ipotential>
PAIR
The input is given by the ﬁle eam.dat with the keywords <nref_eam>, <rcut_eam>, and <phir_eam> in thesame format as the case of EAM.

80

4.1.6

Tersoﬀ potential

Tersoﬀ potential can be used by designating the keyword<ipotential>TERSOFF
The input is given by the ﬁle tersoﬀ.dat with the keywords <tersoff>. The theoretical background is brieﬂy
described in Section 9.9.

4.2

User deﬁned potentials

User-deﬁned potentials can be used by designating the keyword<ipotential>
USER
along with the execution command, input ﬁle, and output ﬁle, designated by the keywords <user_command>,<user_input_file>, and <user_output_file>, respectively. Refer to Section 9.4 for further details.

4.3

Born-Oppenheimer potentials

In the PIMD code, Born-Oppenheimer potentials are computed using the external codes for electronic structure calculations either by ab initio, density functional, or semiempirical methods. Currently, the PIMD code
can be combined with the following codes.
• ABINIT-MP [68] (ab initio, fragment molecular orbital).
• DFTB [53] (density functional tight binding).
• MOPAC [52] (semiempirical).
• GAMESS [60] (ab initio, density functional theory, semiempirical).
• GAUSSIAN 98, 03, 09 [56, 57, 58] (ab initio, density functional theory, semiempirical).
• MOLPRO [62] (ab initio).
• ORCA [64] (ab initio, density functional theory).
• PHASE/0 [55] (density functional theory).
• QUANTUM ESPRESSO [65] (density functional theory).
• SMASH [67] (ab initio, density functional theory).
• TURBOMOLE [61] (ab initio, density functional theory).
• VASP [66] (density functional theory).
Especially, the SMASH code is internally linked to the PIMD code.

814.3.1SMASH

SMASH is an open-source software (Apache 2.0 license).
The ab initio SMASH code is linked at the subroutine force smash.F. SMASH should be compiled together
with PIMD. To do so, modify makeﬁle as follows:• Specify -Dsmash option to link PIMD to SMASH.
• Specify SMASHOPT and SMASHOPTMPI options for the modiﬁed SMASH code.
Prepare the original SMASH source ﬁles, e.g., in the directory lib/smash/smash.1.1.0.src. Copy it to a newone called lib/smash/smash.1.1.0.modiﬁed.
> cd lib/smash> cp -r smash.1.1.0.src smash.1.1.0.modified
Now, by running makeﬁle> cd ../../compile> make veryclean> makethe following is done automatically. First, the bash script lib/smash/smash.1.1.0.modiﬁed/modify smash.sh
modiﬁes the SMASH code. Then, this code is compiled with the SMASHOPT and SMASHOPTMPI options. The
archive called lib/libsmash.a is created. Finally, the PIMD code is compiled with -Dsmash option linking to
lib/libsmash.a.
NOTE: In SMASH version 1.1.0, the force calculations are available for Hartree-Fock and DFT methods
only (NOT for MP2 method). Also, the dipole moments are not available. These features are inherited in
the PIMD code as well.
NOTE: In the modify smash.sh script, ‘sed -i’ should be implemented in your computer. This is not thecase, for instance, in the default setting of MACOSX.
Setups of SMASH. The PIMD input ﬁle input.dat should be prepared. To make the calculation passthrough the subroutine force smash.F, one has to set<ipotential>
SMASH
The initial guess of molecular orbitals can be controlled by the keyword<smash_guess>
PREVIOUS
In the present case, those of the previous step is reused. The SMASH standard input should be designatedas follows.
<smash_options>job method=b3lyp basis=6-31g(d) memory=1gb charge=0
control iprint=1

Here, the lines starting from ‘job’, ‘control’, etc. should be speciﬁed. Exceptionally, the lines ‘geom’ and thenuclear coordinates are not necessary.
Execution of PIMD.

The execution is done in the usual way by pimd.x or pimd.mpi.x command.

82

4.3.2

ABINIT-MP

IMPORTANT: The user is solely responsible for all the issues of ABINIT-MP license. PIMD does not provide
any ABINIT-MP license.
The ab initio ABINIT-MP code is linked externally at the subroutine force abinit mp5.F of the PIMD
code. The ABINIT-MP code is linked internally at the subroutine force abinit mp MPI.F. The ABINIT-MP
code must be installed beforehand in order to make use of this link. The source code is complete, but they
are not tested with suﬃcient amount of examples. Therefore, the user’s manual of this part is left incomplete.
For the use of these methods, one is encourage to carefully read the source code.
4.3.3

CP2K

IMPORTANT: The user is solely responsible for all issues related to the CP2K license. PIMD does notprovide any CP2K license.
The CP2K code for quantum chemistry and solid-state physics [54] is directly linked to the code throughthe interface located in the subroutine force libcp2k.F, which calls the F77 CP2K API. To use this link,
the CP2K API code must be compiled beforehand. This can be done, for example, by invoking make
ARCH=psmp libcp2k in the directory where CP2K was compiled. Please consult the CP2K documentationon compilation for further instructions. This method was tested in February 2020, using the development
version of CP2K and the Linux-x86-64-intel-minimal.psmp architecture ﬁle.
Linking the CP2K API To link to the CP2K API, ﬁrst, ensure that the CP2K code is built with the
API enabled. Then, make a few changes in the PIMD makeﬁle around the following lines.

#----------------------------------------------------------------------#
Usage of CP2K as static library - without MPI#----------------------------------------------------------------------#
compile PIMD with CP2K as a static library#CP2KFLAG = -Dlibcpk#
compile PIMD without CP2K as a static library
CP2KFLAG =ifdef CP2KLIBFLAG
CP2KDIR = /home/g3/a184053/QM-Programs/cp2k_new
CP2KVER = Linux-x86-64-intel-minimal/ssmp
CP2KINC
CP2KLIB= -I$(CP2KDIR)/obj/$(CP2KVER)/= -L$(CP2KDIR)/lib/$(CP2KVER)/ \-lcp2k -L$(CP2KDIR)/lib/$(CP2KVER)/exts/dbcsr/ -ldbcsr

endif#----------------------------------------------------------------------#
Usage of CP2K as static library - with MPI#----------------------------------------------------------------------#
compile PIMD with CP2K as a static library#CP2KMPIFLAG = -Dlibcpkmpi#
compile PIMD without CP2K as a static library
CP2KMPIFLAG =ifdef CP2KMPIFLAG

83

CP2KDIRMPI = /home/g3/a184053/QM-Programs/cp2k_new
CP2KVER = Linux-x86-64-intel-minimal/psmp
CP2KINCMPI = -I$(CP2KDIRMPI)/obj/$(CP2KVER)/
CP2KLIBMPI = -L$(CP2KDIRMPI)/lib/$(CP2KVER)/ \-lcp2k -L$(CP2KDIRMPI)/lib/$(CP2KVER)/exts/dbcsr/ -ldbcsr
endif

Please note that you must choose between adding support for CP2K in the serial and MPI parallelizedversions of the code separately. Please do not attempt to link an MPI parallelized version of CP2K tothe serial PIMD code, or vice versa. To enable compilation with linking to the CP2K API, comment out
either the CP2KFLAG= or CP2KMPIFLAG= line and remove the comment at the line containing thereal ﬂag. The CP2KDIR or corresponding MPI variable should be set to the main directory where theCP2K code was compiled. Secondly, the CP2KVER and corresponding MPI variable should be set to thearchitecture/parallel-version of CP2K that the libcp2k ﬁle was made for.
CP2K input ﬁle. Before running the PIMD code, the CP2K input ﬁles [54] should be prepared. The
CP2K input ﬁles should correspond to a static calculation of the energy and gradient for the system ofinterest. The order of atoms in the CP2K input ﬁles must match those in the PIMD input ﬁles.
Here is an example of the cp2k.dat ﬁle for a system of 32 water molecules:&FORCE_EVALMETHOD QS&DFTBASIS_SET_FILE_NAME GTH_BASIS_SETS
BASIS_SET_FILE_NAME BASIS_MOLOPTPOTENTIAL_FILE_NAME POTENTIAL&PRINT&MOMENTSPERIODIC TRUE
&END
&END
&MGRIDCUTOFF 300&END MGRID&QSEPS_DEFAULT 1.0E-12&END QS&SCF
SCF_GUESS ATOMICEPS_SCF
1.0E-5&MIXING
ALPHA 0.4
&END
&PRINT&RESTART OFF&END RESTART&END PRINT&END SCF&XC&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL&END XC

84

&END DFT
&SUBSYS&CELL
ABC 9.8528 9.8528 9.8528&END CELL# 32 H2O (TIP5P,1bar,300K) a = 9.8528&COORDO
2.280398
9.146539...
H
8.687134
8.667252&END COORD&KIND HBASIS_SET DZVP-GTH
POTENTIAL GTH-PADE-q1&END KIND&KIND OBASIS_SET DZVP-GTH
POTENTIAL GTH-PADE-q6&END KIND&END SUBSYS&END FORCE_EVAL&GLOBAL
PROJECT H2O-32
PRINT_LEVEL MEDIUM&END GLOBAL

5.088696
2.448452

The coordinates have been left out here but can be found in the examples/water 32/cp2k pimd dip directory.
Using this input ﬁle, one can test the CP2K execution by running:
cp2k.psmp -i cp2k.dat
Note that the RESTART OFF print option under SCF is essential to ensure that no unnecessary ﬁles are
printed. This is especially important if the input suppression keyword <cp2k_lib_output> is used in the
PIMD input ﬁle, as discussed below.
PIMD input ﬁle.

The following keywords should be set in the input.dat ﬁle:<ipotential>
CP2KLIBThis keyword declares the use of the CP2K code. Another useful option is the ability to selectively print theoutput of a given CP2K calculation. ％<cp2k_lib_output>
1
This can be set to -1, 0, or 1, where the option -1 suppresses the printing of any output from CP2K, 0 causes
only the output of the ﬁrst bead to be printed in the directory 001/, and setting it to 1 causes all beads toprint their outputs in the numbered directories found in the main directory of the PIMD simulation. Notethat if the output from CP2K is suppressed, it is doubly important to ensure that CP2K does not create
any restart or other data ﬁles as part of the single point calculation described in the previous paragraph.
This is because all CP2K processes launched will try to write to the same restart ﬁles located in the main
simulation directory, thereby causing resource locking and severely decreased performance of the simulation.
Finally, note that if one wishes to have PIMD output the dipoles of the system, the CP2K calculation must
calculate the dipole moments. For instance, to output every 10 steps, set as follows:<iprint_dip>
1085Execution of PIMD. The execution is done in the usual way using the pimd.x or pimd.mpi.x command.
Note that it might be necessary to set the system variable OMP NUM THREADS to allow for correct parallelization of the CP2K code. If running with the MPI version of the code, for instance, OMP NUM THREADS
times the number of MPI processes should be less than or equal to the number of hardware threads available
on your system.
4.3.4

DFTB - Internal

MPORTANT: The user is solely responsible for any issues related to the DFTB+ license. PIMD does notprovide any DFTB+ license.
The semiempirical DFTB+ code [53] is linked directly to the PIMD code via the force libdftb.F subroutineinterface, using calls to the DFTB+ API. Before making use of this link, the DFTB API code must becompiled in advance. To do so, one can, for example, use make api in the directory where DFTB was
compiled. This feature has been tested and shown to work only for the non-MPI version of DFTB+. We are
currently investigating the possibility of extending this feature to the MPI version of DFTB+, but as it isstill experimental, we have no concrete plans as to when this will happen.
Linking the DFTB+ API To link to the DFTB+ API, it is necessary to ensure that the DFTB+ codeis built with the API enabled. Secondly, the cmake directories of DFTB+ must be added to the list of
directories searched by cmake. This is done by adding the directories in the cmake directory of the DFTB+
installation to the CMAKE PREFIX PATH system variable. In a default installation of DFTB+, this would
be in the $HOME/opt/dftb+/lib64/cmake directory, as shown in the example below.
export CMAKE_PREFIX_PATH=$HOME/opt/dftb+/lib64/cmake/dftbplus:$CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH=$HOME/opt/dftb+/lib64/cmake/mctc-lib:$CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH=$HOME/opt/dftb+/lib64/cmake/mstore:$CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH=$HOME/opt/dftb+/lib64/cmake/s-dftd3:$CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH=$HOME/opt/dftb+/lib64/cmake/test_drive:$CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH=$HOME/opt/dftb+/lib64/cmake/oml-f:$CMAKE_PREFIX_PATH

To link to the DFTB+ API, it is necessary to make a few changes in the PIMD CMakeLists.txt ﬁle on thefollowing line
option(DFTB+ "DFTB+" OFF)where OFF should be changed to ON. After that, PIMD can be built as usual using cmake, and will automatically be set up with the link to the DFTB+ library version.
DFTB input ﬁle. Before running the PIMD code, DFTB+ input ﬁles must be prepared. The DFTB+
input ﬁles should correspond to a static calculation of the energy and gradient for the system of interest. The
order of atoms in the DFTB+ input ﬁles must match that of the PIMD input ﬁles. There are some rules forthe DFTB+ input ﬁle:
• The name should be dftb.dat.
• “GenFormat” should be used for the designation of geometry.
• The unit should be in Å.
Here is an example of the dftb.dat ﬁle for a water molecule:86Geometry = GenFormat {
3 C
O H
1
1
0.00000000000E+00
220.00000000000E+00
320.00000000000E+00}-0.10000000000E+01
0.00000000000E+00
0.00000000000E+00

0.00000000000E+00
0.78306400000E+00-0.78306400000E+00

Driver = SteepestDescent{
MaxSteps = 0}
Hamiltonian = DFTB {SCC = Yes
SCCTolerance = 1.0e-5
MaxSCCIterations = 1000
Mixer = Broyden {MixingParameter = 0.2}
SlaterKosterFiles = {O-O = "O-O.skf"
O-H = "O-H.skf"
H-O = "O-H.skf"
H-H = "H-H.skf"}
MaxAngularMomentum = {O = "p"H = "s"}Charge = 0.0
SpinPolarisation = {}Filling = Fermi {Temperature [Kelvin] = 0.0}}
Options = {WriteDetailedOut = No
RestartFrequency = 0}
Analysis = {WriteBandOut = No}
ParserOptions = {ParserVersion = 3}

The Slater-Koster ﬁles (*.skf) required for this calculation, speciﬁcally O-O.skf, O-H.skf, and H-H.skf, should
be present in the execution directory. Alternatively, the directory where the Slater-Koster ﬁles are placed
can be speciﬁed using the Preﬁx keyword in the SlaterKosterFiles block.
To execute the DFTB calculation, use the following command:> dftb+ < dftb.dat

87Note that when using the MPI version of PIMD, it is essential to add the options (WriteDetailedOut = No),
(RestartFrequency = 0), and (WriteBandOut = No) to the DFTB+ input, since all processes will try to write
to the same ﬁles, potentially causing race conditions and a loss of performance.
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat to use DFTB+:<ipotential>
DFTBLIBTo selectively print the output of a given DFTB+ calculation, use the following option:<dftb_lib_output>0This can be set to -1, 0, or 1, where the option -1 suppresses the printing of any output from DFTB+. Bothoptions 0 and 1 cause the non-MPI version of PIMD to print the calculation outputs to the 001 directory.
This is because all the beads in the calculation are using the same instance of DFTB+. In the MPI version
of PIMD, 0 causes only the output of the ﬁrst bead to be printed in the directory 001/, whereas setting it
to 1 causes all beads to print their outputs in the numbered directories found in the main directory of thesimulation. Note that in the MPI version, all MPI processes run separate instances of DFTB+.
Execution of PIMD. The execution is done in the usual way by the pimd.x or pimd.mpi.x command. Notethat it might be necessary to set the system variable OMP NUM THREADS to allow for correct parallelization of the DFTB+ code. If running with the MPI version of the code, for instance, OMP NUM THREADS
times the number of MPI processes should be less than or equal to the amount of hardware threads available
on your system. Secondly, the number of MPI processes should not be greater than the number of beads inthe system. If this is not fulﬁlled, the execution of PIMD will stop. The parallelization of DFTB+ is assumed
to happen on the OMP level, whereas the bead parallelization of PIMD makes each DFTB+ calculation run
on a separate MPI thread.
4.3.5

DFTB - External

IMPORTANT: The user is solely responsible for all issues related to the DFTB license. PIMD does notprovide a DFTB license.
The semiempirical DFTB code [53] is linked in the subroutine force dftb.F via system calls. The DFTB
code must be installed beforehand in order to use this link.
DFTB input ﬁle. Before running the PIMD code, the DFTB+ input ﬁles [53] should be prepared. The
DFTB+ input ﬁles should correspond to a static calculation of the energy and gradient for the system ofinterest. The order of atoms in the DFTB+ input ﬁles must match those in the PIMD input ﬁles. There aresome rules for the format of the DFTB+ input ﬁle:
• The name should be dftb.dat.
• “GenFormat” should be used for the designation of geometry.
• The unit should be in Å.
Here is an example of a dftb.dat ﬁle for a water molecule:

Geometry = GenFormat {
3 C
O H
1
1
0.00000000000E+00-0.10000000000E+01

88

0.00000000000E+00

2
3

2
2

0.00000000000E+00
0.00000000000E+00

0.00000000000E+00
0.00000000000E+00

0.78306400000E+00-0.78306400000E+00}
Driver = SteepestDescent{
MaxSteps = 0}
Hamiltonian = DFTB {SCC = Yes
SCCTolerance = 1.0e-5
MaxSCCIterations = 1000
Mixer = Broyden {MixingParameter = 0.2}
SlaterKosterFiles = {O-O = "O-O.skf"
O-H = "O-H.skf"
H-O = "O-H.skf"
H-H = "H-H.skf"}
MaxAngularMomentum = {O = "p"H = "s"}Charge = 0.0
SpinPolarisation = {}Filling = Fermi {Temperature [Kelvin] = 0.0}}
Options = {}ParserOptions = {ParserVersion = 3}

The Slater-Koster ﬁles (*.skf), in this case O-O.skf, O-H.skf, and H-H.skf, should be present in the execution
directory. Using this input ﬁle, one can test the DFTB execution with the following command:> dftb+ < dftb.dat
Note that the ﬁle ”detailed.out” needs to be printed (which is the default option for DFTB+) in order forthe code to work. Therefore, the setting
Options = {WriteDetailedOut = No}should NOT be used in the DFTB+ input.
PIMD input ﬁle.

The following keyword should be set in the ﬁle input.dat.

<ipotential>
DFTB
89

This keyword declares the usage of the DFTB+ code.
<dftb_command>’dftb+’
This keyword sets the DFTB+ execution command.
Execution of PIMD. The execution is done in the usual way by the command pimd.x or pimd.mpi.x.
When the subroutine force dftb.F is called, the following procedure is undertaken automatically. First, dftb.dat
in the execution directory is read, then the lines where the geometry is written are detected and replaced by
the current geometry. Then, the DFTB calculation is executed using the system calls. Finally, the energy
and gradient values are read from the DFTB output, and the run continues.
4.3.6

GAMESS

IMPORTANT: The user is solely responsible for all the issues of GAMESS license. PIMD does not provide
any GAMESS license.
The ab initio GAMESS code [60] is linked at the subroutine force gamess.F via system calls. The GAMESS
code must be installed beforehand in order to make use of this link.
GAMESS input ﬁle. Before running PIMD code, the GAMESS input ﬁle [60] must be prepared. TheGAMESS input ﬁle should correspond to a static calculation of the energy and gradient for the system ofinterest. The order of atoms in the GAMESS input ﬁles must match the ones of the PIMD input ﬁles. There
are some rules in the form of GAMESS input ﬁle.
• The name should be gamess.dat.
• There should be no symmetry in the molecule: C1.
• The SCF convergence should be tight enough so that the error of the energy/gradient value is small:
NCONV=9.
• The geometry lines should start from the next line after C1.
• Cartesian coordinates should be used: COORD=UNIQUE.
• Atomic units should be chosen: UNITS=BOHR.
• The gradient calculation should be included: RUNTYPE=GRADIENT.
Here is an example for GAMESS input ﬁle for water molecule:$CONTRL SCFTYP=RHF MULT=1 RUNTYP=GRADIENT COORD=UNIQUE UNITS=BOHR $END
$SYSTEM TIMLIM=1 $END$SCFDIRSCF=.TRUE. NCONV=9 $END
$BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=0 $END
$GUESS GUESS=HUCKEL $END
$DATATEST H2O MOLECULE
C1
O
8.0 0.0000000000 0.0000000000 0.0000000000
H
1.0 1.4748637392 1.0778200416 0.0000000000
H
1.0 -1.4748637392 1.0778200416 0.0000000000$END

Using this input ﬁle, one can test the GAMESS execution.
> cp gamess.dat gamess.inp; rungms gamess 00 1
90

PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
GAMESSThis keyword declares the usage of GAMESS code.
<gamess_command>’rungms gamess 00 1’
This keyword sets the GAMESS execution command.
Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command. Whenthe subroutine force gamess.F is called, the following procedure is undertaken automatically. First gamess.dat
in the execution directory is read, then the lines where the geometry is written are detected and they are
replaced by the current geometry. Then, the GAMESS calculation is executed using the system calls. Finally,
the energy and gradient values are read from the GAMESS output, and the run is continued.
4.3.7

GAUSSIAN

IMPORTANT: The user is solely responsible for all the issues of GAUSSIAN license. PIMD does not provide
any GAUSSIAN license.
The ab initio GAUSSIAN 03 (98,09,16) code [56, 57, 58, 59] is linked at the subroutine force g03.F(force g98.F, force g09.F), force g16.F) via the system calls. The GAUSSIAN code must be installed beforehand in order to make use of this link.
GAUSSIAN input ﬁle. Before running the PIMD code, the GAUSSIAN input ﬁle [56, 57, 58, 59] must
be prepared. The GAUSSIAN input ﬁle should correspond to a static calculation of the energy and gradientfor the system of interest. There are some rules in the form of the GAUSSIAN input ﬁle.
• The name should be g03.dat (g98.dat, g09.dat), g16.dat).
• There should be no symmetry in the molecule : Nosymm.
• The SCF convergence should be tight enough so that the error of the energy/gradient value is small:
SCF=Tight.
• The check point ﬁle called chk.g03 (chk.g98, chk.g09, chk.g16)
should be produced: %chk=chk.g03 (%chk=chk.g98, %chk=chk.g09, %chk=chk.g16).
• The geometry lines should start from the second line below the second blank line.
• Cartesian coordinates should be used.
• Atomic units should be chosen: Units=au.
• The memory size should be chosen properly: %mem.
NOTE: This might aﬀect the calculation time.
• The gradient calculation should be included: Force.
• It is of beneﬁt to restart MO coeﬃcients if possible: GUESS=TCHECK.
Here is an example for input ﬁle for water molecule called g03.dat:

91

%mem=20MB%chk=chk.g03#p HF/6-31G* SCF=TIGHT UNITS=AU NOSYMM FORCE GUESS=TCHECK
comment01
8 0.0000000000
1 1.4891196813
1 -1.4891196813

0.0000000000
1.1634278031
1.1634278031

0.0000000000
0.0000000000
0.0000000000

NOTE: Do not forget the last blank line, as a rule of the GAUSSIAN input ﬁle. Using this input ﬁle, one
can test the g03 (g98,g09,g16) execution and formchk execution [56, 57, 58, 59].
> g03 < g03.dat> formchk chk.g03> cat chk.fchk
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
G03<ipotential>
G98<ipotential>
G09<ipotential>
G16
These keywords declare the usage of g03, g98, g09, g16 codes.
<g03_command>’g03’’formchk’<g98_command>’g98’’formchk’<g09_command>’g09’’formchk’<g16_command>’g16’’formchk’
These keywords designate g03, g98, g09, g16 and formchk execution commands.

92

Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command. Whenthe subroutine force g98.F (force g03.F, force g09.F or force g16.F) is called, the following procedure isundertaken automatically. First g98.dat (g03.dat, it g09.dat or it g16.dat) in the execution directory is read,then the lines where the geometry is written are detected and they are replaced by the current geometry.
Then, GAUSSIAN is executed by g98 (g03, g09 or g16) and formchk commands using system calls. Finally,
the energy and gradient values are read from the GAUSSIAN output, and the run is continued.
4.3.8

MOLPROIMPORTANT: The user is solely responsible for all the issues of MOLPRO license. PIMD does not provide
any MOLPRO license.
Ab initio MOLPRO code [62] is linked at the subroutine force molpro.F via the system calls. The MOLPRO code must be installed beforehand in order to make use of this link.
MOLPRO input ﬁle. Before running MOLPRO code, the MOLPRO input ﬁle [62] must be prepared.
The MOLPRO input ﬁle should correspond to a static calculation of the energy and gradient for the system
of interest. There are some rules in the form of the MOLPRO input ﬁle.
• The name should be molpro.dat.
• Cartesian coordinates must be used by setting geomtyp=xyz.
• One must set up such that a table of potential energy is created after the keyword <energy>.
• One must set up such that a table of forces is created after the keyword <grad>.
• One must set up such that a table of dipole moment is created after the keyword <dipole>.
Here is an example for input ﬁle for water molecule called molpro.dat:
geomtyp=xyz
geometry={3O0.0000000000
H
1.4891244004
H -1.4891244004}
hfe(1)=energy
force
varsav

0.0000000000
0.0000000000
0.0000000000-0.1302052882
1.0332262019
1.0332262019

table,esave,table.molpro
title,<energy>
format,(e24.16)!print a table with results!save to file!title for the table!explicit format

table,gradx,grady,gradz
save,table.molpro
title,<grad> 1
format,(3e24.16)!print a table with results!save to file!title for the table!explicit format

table,dmx,dmy,dmz
save,table.molpro
title,<dipole>
format,(3e24.16)!print a table with results!save to file!title for the table!explicit format

93

Using this input ﬁle, one can test the MOLPRO execution.
> molpro < molpro.dat
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
MOLPROThis keyword declares the usage of the MOLPRO code.
<molpro_command>’molpro’This keyword sets the MOLPRO execution command.
Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command.
When the subroutine force molpro.F is called, the wrapper code called run molpro.x is activated (NOTE:
run molpro.x should be placed in the PATH is accessible). There, the following procedure is undertaken automatically. First, molpro.dat in the execution directory is read, then the lines where the geometry is written
are detected and they are replaced by the current geometry. Then, MOLPRO is executed by commands
using system calls. Finally, the energy and gradient values are read from the MOLPRO output, and the run
is continued.
Additional setup is necessary to carry out nonadiabatic dynamics, i.e., surface hopping dynamics andmean ﬁeld dynamics, with the MOLPRO code. See Section 3.19.1 for details.
4.3.9

MOPAC

IMPORTANT: The user is solely responsible for all the issues of MOPAC license. PIMD does not provide
any MOPAC license.
The semi-empirical MOPAC code [52] is linked at the subroutine force mopac.F via the system calls. The
MOPAC code must be installed beforehand in order to make use of this link.
MOPAC input ﬁle. Before running the PIMD code, MOPAC input ﬁle [52] must be prepared. The
MOPAC input ﬁle should correspond to a static calculation of the energy and the gradients (the negative
sign of the forces) for the system of interest. There are some rules in the form of the MOPAC input ﬁle.
• The ﬁle name should be mopac.dat.
• Do one SCF cycle then stop: 1SCF.
• The gradient calculation should be included: GRADIENTS.
• Do not reorient molecule: NOREOR.
• There should be no symmetry in the molecule: NOSYM.
• The SCF convergence should be tight enough so that the error of energy/gradient value is small:
PRECISE.
• Cartesian coordinates should be used: XYZ.
• The geometry lines should start from the fourth line.
Here is an example for the MOPAC input ﬁle for water molecule:94

PM3 1SCF XYZ PRECISE GRADIENTS NOSYM NOREOR GEO-OK
moleculecomment
8 0.0000000000 1 0.0000000000 1 0.0000000000 1
1 0.7804643317 1 0.5703578412 1 0.0000000000 1
1 -0.7804643317 1 0.5703578412 1 0.0000000000 1

Using this input ﬁle, one can test a MOPAC calculation.
> nohup /opt/mopac/mopac/MOPAC2007.out mopac.dat
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
MOPAC
This keyword declares the usage of the MOPAC code.
<mopac_command>’nohup /opt/mopac/mopac/MOPAC2007.out’
This keyword sets the MOPAC execution command.
Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command. Whenthe subroutine force mopac.F is called, the following procedure is taken automatically. First mopac.dat in theexecution directory is read, then the lines where the geometry is written are detected and they are replacedby the current geometry. Then, MOPAC is executed using system calls. Finally, the energy and gradientvalues are read from MOPAC output, and the run is continued.
4.3.10NTCHEM

IMPORTANT: The user is solely responsible for all the issues of NTChem license. PIMD does not provide
any NTChem license.
The MultiNTChem code is linked internally at the subroutine force ntchem MPI.F. To make use of theinternal link, the MultiNTChem code must be installed together with the PIMD code. Note that the user
must legally possess the permission of the usage of MultiNTChem. The directions for the internal link, thesetups and the execution are shown below.
Internal link of NTChem. Follow the directions below (an example for H2 O molecule).
1) Compilation.
NTChem and MNTChem is a binary code. PIMD should be linked to the library of MNTChem, either
without OpenMP (libmntchem mpi.a) or or with OpenMP (libmntchem mpiomp.a).
In makeﬁle, set NTCHEM = -Dntchem for the former case, NTCHEM = -Dntchem -Domp for the lattercase.
For intel computers, sometimes one needs the following on both compilation and execution.
> module unload mpt; module load intel/cur intel-mpi/cur
2) Prepare INPUT - the NTCHEM input ﬁle.
To calculate the dipole moments, one must set

95

&prop
Dipole_TxtOut=T/
3) INPUT.MNTChem - the MNTCHEM input ﬁle.
Be sure to set the following values correctly NCorePerIO = n and NCorePerReplica = n, where n should be
the number of processors (nprocs) divided by number of beads (nbead). Also set DoProp = T.
4) INPUT.xyz - the MNTCHEM/PIMD interface input ﬁle.
3
O 0.000
H 1.489
H -1.489

0.000
1.163
1.163

0.000
0.000
0.000

8.0
1.0
1.0

8.0
1.0
1.0

5) To secure memory space, Sometimes one needs the following on execution.
> ulimit -s unlimited; export OMP_STACKSIZE=1G
Setups of NTCHEM.

In the PIMD input ﬁle, input.dat, set the following keywords.

<ipotential>
NTCHEM
This keywords sets the use of NTChem.
Execution of PIMD.
4.3.11The execution is done in the usual way by pimd.mpi.x command.

ORCA

IMPORTANT: The user is solely responsible for all the issues of ORCA license. PIMD does not provide any
ORCA license.
The ab initio ORCA code [64] is linked at the subroutine force orca.F via system calls. The ORCA code
must be installed beforehand in order to make use of this link.
ORCA input ﬁle. Before running ORCA code, the ORCA input ﬁle [64] must be prepared. The ORCA
input ﬁle should correspond to a static calculation of the energy and gradient for the system of interest. The
order of atoms in the ORCA input ﬁles must match the ones of the PIMD input ﬁles. There are some rulesin the form of ORCA input ﬁle.
• The name should be orca.dat.
• The geometry lines should start from the next line after *xyz.
• Cartesian coordinates should be used.
• Atomic units should be chosen: Bohrs.
• The gradient calculation should be included, ENGRAD.
Here is an example for ORCA input ﬁle for water molecule:96

! HF def2-SV(P) ENGRAD Bohrs%elprop
Dipole trueend
*xyz 0 1
O 0.0 0.0 0.0
H 0.0 1.0 0.2
H 0.0 0.0 1.1*

Using this input ﬁle, one can test the ORCA execution.
> cp orca.dat orca_test.inp; orca orca_test.inp
NOTE: The dipole moment is currently not implemented in the PIMD-ORCA interface.
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
ORCA
This keyword declares the usage of ORCA code.
<orca_command>’orca’
This keyword sets the ORCA execution command.
Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command. Whenthe subroutine force orca.F is called, the following procedure is undertaken automatically. First orca.dat
in the execution directory is read, then the lines where the geometry is written are detected and they are
replaced by the current geometry. Then, the ORCA calculation is executed using the system calls. Finally,
the energy and gradient values are read from the ORCA output, and the run is continued.
4.3.12

PHASE/0

IMPORTANT: The user is solely responsible for any issues related to the PHASE/0 license. PIMD does notprovide any PHASE/0 license.
The electronic structure PHASE/0 code [55] is directly linked to the PIMD code via the subroutine
force phase0 MPI.F by calling the PHASE/0 libraries, libphase.a and libesm.a. The PHASE/0 libraries
must be compiled beforehand to use this link. This can be done by invoking make libphase.a libesm.a in
the directory where PHASE/0 was compiled (src phase or src phase 3d), for example. Please refer to the
PHASE/0 documentation on compilation for further instructions.
Currently, the library version of PHASE/0 does not support stress tensor calculations. Therefore, itcannot be used for BOXOPT calculations and NPT simulations.
Linking the PHASE/0 libraries
around the following lines.

To link to PHASE/0, a few changes are needed in the PIMD makeﬁle97

#----------------------------------------------------------------------#
Usage of PHASE0#----------------------------------------------------------------------#
compile PIMD with PHASE/0
PHASE0 = -Dphase0
ifdef PHASE0
LIBPHASE0 = -L../lib/phase0 -lphase -lesm #-L. -lfftw3
LIBMKL = -L../lib -L$(MKLROOT)/lib/intel64 -L$(HOME)/mkl \-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 \-lmkl_sequential -lmkl_cdft_core -lfftw3x_cdft_lp64 -lmkl_core -lm -ldl
endif

PHASE/0 input ﬁle. Before running the PIMD code, prepare the PHASE/0 input ﬁles [55]. The
PHASE/0 input ﬁles must correspond to a static calculation of the energy and gradient for the system
of interest. The order of atoms in the PHASE/0 input ﬁles must match the order in the PIMD input ﬁles.
Here is an example for ice. The ﬁle ﬁle names.data contains the following&fnames
F_POT(1) = ’../../../../pp/H_ggapbe_paw_nc_01m.pp’
F_POT(1) = ’../../../../pp/O_ggapbe_paw_us_02m.pp’/
The ﬁle nﬁnp.data contains the following:

Control{
cpumax = 5 day
condition=initial}accuracy{
cutoff_wf =25.0 rydberg
cutoff_cd = 225.0 rydberg
ksampling{method = monk ! {mesh|file|directin|gamma}mesh{ nx = 2, ny = 2, nz = 2 }kshift{ k1=0.5, k2=0.5, k3=0.0 }}}structure{
unit_cell{a_vector = 14.36865687014571 0.0 0.0
b_vector = -7.184328435072851 12.443621867807988 0.0
c_vector = 0.0 0.0 13.498240952339659}
atom_list{

98

coordinate_system = cartesian ! {cartesian|internal}
atoms{#units angstrom#tagelement rxryrz
H 2.5154346140648998 0 1.403077739736
H -1.2577173070324492 2.1784302773389084 1.403077739736
H 2.5440658429675516 4.406451297820341 1.403077739736
H 5.0881316859351005 0 4.9745587397360005
H -2.544065842967549 4.406451297820341 4.9745587397360005
H 1.2577173070324505 2.1784302773389084 4.9745587397360005
H 3.4394504051060997 0 0.076043973452
H -1.7197252025530492 2.9786514258785615 0.076043973452
H 2.0820579474469505 3.6062301492806883 0.076043973452
H 4.164115894893899 0 3.647524973452
H -2.0820579474469487 3.6062301492806883 3.647524973452
H 1.7197252025530505 2.9786514258785615 3.647524973452
H 1.710372816004051 5.778529901873124 6.991866924814
H -2.0577569495521484 5.176842932824522 6.991866924814
H 0.3473841335481005 2.2143903156208533 6.991866924814
H 5.51215596600405 0.806351673286126 6.991866924814
H 1.7440262004478506 1.4080386423347273 6.991866924814
H 4.149167283548101 4.3704912595383965 6.991866924814
H 2.09141033399595 0.806351673286126 3.420385924814
H 5.8595400995521505 1.4080386423347273 3.420385924814
H 3.454399016451901 4.3704912595383965 3.420385924814
H -1.7103728160040483 5.778529901873124 3.420385924814
H 2.057756949552151 5.176842932824522 3.420385924814
H -0.3473841335480995 2.2143903156208533 3.420385924814
O 2.4836441033646 0 0.39756297899599996
O -1.2418220516822993 2.1508988874731676 0.39756297899599996
O 2.5599610983177015 4.433982687686083 0.39756297899599996
O 5.1199221966354 0 3.969043978996
O -2.559961098317699 4.433982687686083 3.969043978996
O 1.2418220516823006 2.1508988874731676 3.969043978996
O 5.0229539156115 0 6.63991890115
O -2.5114769578057485 4.350005692958076 6.63991890115
O 1.2903061921942507 2.2348758822011736 6.63991890115
O 2.5806123843885 0 3.06843790115
O -1.2903061921942494 2.2348758822011736 3.06843790115
O 2.511476957805751 4.350005692958076 3.06843790115}}}

The atom arrangement is required by PHASE/0 for allocating arrays, among other purposes, but theactual coordinate values are passed from PIMD. Therefore, the atoms must be aligned, and the atomic
species must be the same, but any coordinate and attribute values are acceptable.
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
PHASE0This keyword declares the use of the PHASE0 code. Another useful option is to selectively print the output
of a given CP2K calculation.

99

<phase0_proc>
ne nk ng
The three integers, ne nk ng, correspond to the number of band parallels, k point parallels, and G point
parallels, respectively. In the case of a two-dimensional version, 1 should be speciﬁed as the number corresponding to ng. Each value should be determined so that the MPI parallel number (np_force) allocated toeach replica by PIMD is equal to the product of ne nk ng.
Execution of PIMD.
4.3.13The execution is done in the usual way using the pimd.mpi.x command.

QUANTUM ESPRESSOIMPORTANT: The user is solely responsible for all issues related to the Quantum Espresso (QE) license.
PIMD does not provide any QE license.
The QE code is internally linked in the subroutine force qe MPI.F. To use the internal link, the QE code
must be installed along with the PIMD code. Note that the user must legally possess the source code of QE
version 6.2.1 or 6.3 and have permission to use and modify it. The instructions for the internal link, setup,and execution are given below.
Setup using cmake. Follow the directions described below. Currently only versions 6.2.1 and 6.3 of QE
are supported.
• Step 0: Obtain the QE code (OPTIONAL). This step is not necessary if you have access to theinternet and the wget command during the compilation process. If you need to download it in advance,then do not unpack the code, just keep the zip ﬁle and add the “-QEFILES=../lib/qe/q-e-qe-6.2.1.zip”
ﬂag to the cmake process in step 1, where the part after the equal sign is the path to the zip ﬁle of thesources.
• Step 1: Setup the compilation with cmake then make the directory where the PIMD code will
be compiled.
> mkdir build> cd build
Then run cmake including at least the following ﬂags
> cmake -DMKLUSE=ON -DQE=ON -DQEVERSION=6.3 ..
Note that even if you have downloaded the QE code in advance you still need to give the correct version
number to the cmake as it is needed to select the correct patch ﬁle. You are of course free to also add
other options, such as compilation with the AENET code through> cmake -DMKLUSE=ON -DQE=ON -DQEVERSION=6.3 -DAENET=ON ..
• Step 2: Run make Run the following command to compile both PIMD and QE.
> make -j 10
here we compile with 10 parallel jobs, note that QE is only compiled with 1 job and the process canbe a little slow as a result. Once this process has ﬁnished the PIMD code will be compiled and readyto run using the binaries in the build directory.

100Setups of QE. In addition to the PIMD input ﬁles (input.dat, input default.dat, structure.dat), the QE
input ﬁle (qe.dat) is also necessary. Refer to the QE manual for the preparation of these input ﬁles athttps://www.quantum-espresso.org/Doc/INPUT_PW.html. In the PIMD input ﬁle, input.dat, set the following keywords:<ipotential>
QE
This keywords sets the use of QE.
<qe_input_file_name>si.md8.in
This keyword sets the input ﬁle name of QE.
<qe_output>
1 10
This keyword sets the print option of QE output. The ﬁrst number should be set to ‘0’ or ‘1’ (integer). The
output of QE is printed for the ﬁrst bead only if ‘1’, for all the beads if ‘0’. The second number is the printinterval, in the present case, every 10 steps.
It is recommended not to use “nosym=.false.” in qe.dat.
Execution of PIMD.

The execution is done in the usual way by running the pimd.mpi.x command.

Internal link with QE (Old method - Expert option).

Follow the directions described below.

• Step 1: Prepare makeﬁle of the PIMD code. Make a copy of the source directory named“compile” where the PIMD code will be compiled.
> cp -r ~/pimd/source ~/pimd/compile
Activate the option “QE = -Dqe” in the PIMD makeﬁle to link it with QE during compilation.
> vi ~/pimd/compile/makefile
Note that the libraries used should be consistent with those used to compile QE (see below).
• Step 2: Prepare PIMD modules for QE In the /̃pimd/compile directory, generate the modules
necessary to compile the modiﬁed QE.
> make common_variables.o• Step 3: Download the QE source code. Go to the QE library directory (/̃pimd/lib/qe). Download
and unzip the source code of QE version 6.2.1, q-e-qe-6.2.1.
> cd ~/pimd/lib/qe> wget https://github.com/QEF/q-e/archive/qe-6.2.1.zip> unzip q-e-qe-6.2.1.zip
Make sure the list of ﬁles is as follows:> ls
README
apply_patch_qe.sh*

make_patch_qe.sh*q-e-qe-6.2.1/
101

qe-6.2.1.zip
qe-6.2.1_to_pimdlib.patch

Also ensure that FFTW library (ﬀtw3 or equivalent) for QE is present (see below).
• Step 4: Apply a patch to the QE code. In the QE library directory, apply the patch ﬁle as follows.
> patch -p0 < qe-6.2.1_to_pimdlib.patch
The QE source will be modiﬁed to link with PIMD.
• Step 5: Prepare makeﬁle of the QE code. Conﬁgure QE in the q-e-qe-6.2.1 directory.
> cd ~/pimd/lib/qe/q-e-qe-6.2.1> ./configure• Step 6: Compile QE Go to the QE directory and compile it.
> cd ~/pimd/lib/qe/q-e-qe-6.2.1> make pw• Step 7: Compile and link PIMD and QE codes. Go to PIMD compile directory and edit the
makeﬁle by running the following command:> vi ~/pimd/compile/makefile
After editing the makeﬁle, compile the code.
4.3.14

TURBOMOLE

IMPORTANT: The user is solely responsible for all the issues of TURBOMOLE license. PIMD does notprovide any TURBOMOLE license.
The ab initio TURBOMOLE code [61] is linked at the subroutine force turbo.F via the system calls. The
TURBOMOLE code must be installed beforehand in order to make use of this link.
TURBOMOLE input ﬁle. Before running PIMD code, the TURBOMOLE input ﬁles [61] should be
prepared. The TURBOMOLE input ﬁles should correspond to a static calculation of the energy and gradientfor the system of interest. The order of atoms in the TURBOMOLE input ﬁles must match the onesof the PIMD input ﬁles. In the TURBOMOLE code, the energy and the gradient are computed by twoconsecutive commands (dscf,grad), (ridft,rdgrad), (dscf,mpgrad), (dscf,rimp2) or (dscf,ricc2) [61].
Prepare properly the control ﬁle as well as all other necessary ﬁles (coord, mos, basis, auxbasis, etc.). All ofthese could be obtained using the deﬁne command of the TURBOMOLE code [61]. Here is an example for
the TURBOMOLE control ﬁle for water molecule:> cat control$titlewater molecule$operating system unix
$symmetry c1$coordfile=coord$user-defined bonds
file=coord$atomso 1basis =o def-SV(P)
h 2-3

\
\

102

basis =h def-SV(P)$basisfile=basis$rundimensions
dim(fock,dens)=211
natoms=3
nshell=10
nbf(CAO)=19
nbf(AO)=18
dim(trafo[SAO<-->AO/CAO])=21
rhfshells=1$scfmofile=mos$closed shells
a
1-5
( 2 )
$scfiterlimit
30$scfconv
8$thize0.10000000E-04$thime5$scfdamp
start=0.300 step=0.050 min=0.100$scfdump$scfintunit
unit=30
size=0file=twoint$scfdiis$scforbitalshift automatic=.1$drvopt
cartesian on
basis
off
globaloffhessianondipoleonnuclear polarizability$interconversion off
qconv=1.d-7
maxiter=25$optimizeinternal
off
cartesian on
global
off
basis
off
logarithm$coordinateupdate
dqmax=0.3
interpolate on
statistics
5$forceupdate
ahlrichs numgeo=0 mingeo=3 maxgeo=4 modus=<g|dq> dynamic fail=0.3
threig=0.005 reseig=0.005 thrbig=3.0 scale=1.00 damping=0.0$forceinit on
diag=default$energy
file=energy$grad
file=gradient$forceapprox
file=forceapprox$lock off
$end

There are some rules in the form of TURBOMOLE control ﬁles.
• There should be no symmetry in the molecule.
103• The SCF convergence should be tight enough so that the error of energy/gradient value is small.
Let us give the example of the (dscf,grad) combination. One can test the TURBOMOLE execution of
dscf command with a control ﬁle as well as all other the input ﬁles.
> dscfIf it works correctly, copy the control ﬁle to control.1 ﬁle. Then test the TURBOMOLE execution of gradcommand using the control ﬁle as well as all other the input ﬁles.
> gradIf it works correctly, copy the control ﬁle to control.2 ﬁle.
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
TURBOMOLE
This keyword declares the usage of the TURBOMOLE code.
<turbo_command>
dscf
control.1
grad
control.2
This keyword sets the TURBOMOLE commands with the control ﬁles. In the present case, the TURBOMOLE command consist of dscf and grad commands, and the name of the control ﬁles are control.1 andcontrol.2, respectively.
<turbo_guess>
PREVIOUS
This keyword gives the option for the initial guess of molecular orbital coeﬃcients. In the present case, thoseof the previous step is reused.
Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command. Whenthe subroutine force turbo.F is called, the following procedure is undertaken automatically. First the TURBOMOLE coord ﬁle is created using the current geometry. Then, the TURBOMOLE calculation is executedusing the system calls. Finally, the energy and the gradient values are read from the TURBOMOLE output,
and the run is continued. NOTE: When the subroutine force turbo.F is called, this keyword is searchedprimarily in input.dat ﬁle, secondarily in turbo.dat ﬁle, and ﬁnally in input default.dat ﬁle.
4.3.15

VASP - General Words of Caution

IMPORTANT NOTE: The PIMD developers can not provide speciﬁc support for VASP calculations. The
advice given here is based on their experience and may not be suﬃcient for all cases.
We recommend as for all large scale calculations that a test run calculating either single point energy or
doing structural relaxation is carried out. Things to watch out for here are in a non exhaustive list:• Ensure that the VASP code is compiled correctly and that the executable is in the path.
• Ensure that the VASP input ﬁles are correctly set up.
• Ensure that the VASP output ﬁles are correctly parsed by the PIMD code.
One problem which can occur is that the order of the ions in the POSCAR ﬁle is not the same as the orderof the ions in the POTCAR ﬁle. VASP might still be able to run the calculation, but the resulting relaxed
structures will deviate signiﬁcantly from the expected.
104

4.3.16

VASP

IMPORTANT: The user is solely responsible for any issues related to the VASP license. PIMD does notprovide any VASP license.
The VASP code is linked externally to the subroutine force vasp5.F of the PIMD code. To make use of
the external link, the VASP code must be installed beforehand.
The VASP code is linked internally to the subroutine force vasp MPI.F. To make use of the internal link,
the VASP code must be installed together with the PIMD code. Note that the user must legally possess thesource code of VASP version 5.3.5 as well as the permission to use and modify it. The directions for theinternal link, the setups, and the execution are shown below.
Internal link of VASP. Follow the directions below:• Step 1: Copy the source code. Copy the source code of VASP version 5.3.5 and its library to thelib directory of PIMD.
> cp -r vasp.5.3.5 lib/vasp> cp -r vasp.5.lib lib/vasp• Step 2: Compile the VASP library. Starting from the main directory, go to vasp.5.lib directory.
> cd lib/vasp/vasp.5.lib
Then, edit the Makeﬁle properly with respect to the Fortran compiler, the compile options for thelapack/blas libraries, etc., depending on the machine.
> cp makefile.*** Makefile> vi Makefile
Start compiling the VASP library.
> makeIf successful, a new ﬁle called libdmy.a will be created. Copy it to the lib directory.
> cp libdmy.a ../../../lib
Return to main directory.
> cd ../../../lib• Step 3: Compile the modiﬁed VASP code. Go to vasp directory.
> cd lib/vasp
Apply the patch to modify the VASP source by:> patch -u -p1 -d vasp.5.3.5/ < vasp.5.3.5_to_pimdlib.patch
If successful, the following output will appear:
patching file acfdt.F
patching file aedens.F...
patching file xml.F
patching file zgemmtest.F
105

without any error message. Go to vasp.5.3.5 directory.
> cd vasp.5.3.5
Then, edit the Makeﬁle properly with respect to the Fortran compiler, the compile options for thelapack/blas libraries, etc., depending on the machine.
> vi Makefile
Here, do not overwrite Makeﬁle by the original makeﬁle.***, because Makeﬁle is created by the patch.
Start compiling the modiﬁed VASP code.
> makeIf successful, a new ﬁle called libvasp.a will be created. Copy it to the lib directory.
> cp libvasp.a ../../../lib
Return to the main directory.
> cd ../../../• Step 4: Compile the PIMD code. In order to compile the PIMD code, edit the ﬁle makeﬁle ﬁle toactivate the -Dvasp option.
> cp -r source compile> cd compile> vi makefile> makeIf successful, this generates pimd.mpi.x, an executable of PIMD internally linked to VASP.
Setups of VASP. In addition to the PIMD input ﬁles (input.dat, input default.dat, structure.dat), the
VASP input ﬁles are necessary (INCAR, POSCAR, POTCAR, KPOINTS). See the VASP manual for the
preparation of these input ﬁles. In the ﬁle INCAR, the following keywords must always be set:
IBRION = 1
NSW = 100
ISIF = 3
ISYM = 0
On the other hand, in the ﬁle input.dat, the following keyword sets the use of VASP:<ipotential>
VASP5
for the external link, and<ipotential>
VASP
for the internal link.
<vasp_output>
0 10
106

This keyword controls the output of VASP. The ﬁrst number should be set to ‘0’ or ‘1’ (integer). The output
of VASP is printed for the ﬁrst bead only if ‘1’, for all the beads if ‘0’. The second number is the printinterval, in the present case, every 10 steps.
<vasp_reuse_wavefunction>
1
This keyword controls the initial guess of Kohn-Sham orbitals. The Kohn-Sham orbitals are built fromscratch if ‘0’, nad taken from of that of the previous step if ‘1’.
Execution of PIMD.
4.3.17

PIMD can be executed by using the command pimd.x or pimd.mpi.x.

VASP6 Interface

IMPORTANT: The user is solely responsible for all the issues of VASP6 license. PIMD does not provide any
VASP license.
Linking the VASP6 code Before compiling PIMD, a patched version of VASP has to be compiled.
Currently the patch we are using supports the version 6.4.0 of VASP. In the directory lib/vasp6 the patch
and a script to apply it, given that one unpacks the VASP6 code in the directory, can be found. We do notprovide support on how to compile VASP, but instead refer to the oﬃcial VASP documentation or online
resources for this process.
Once VASP6 has been compiled we can move on to compile the PIMD program. Using the cmake program
to setup the compilation of the code in a seperate directory one needs to set the following ﬂags to enable thelink between PIMD and VASP.
-DVASP6=ON
The ﬁrst ﬂag simply turns on the VASP interface compilation. We also need to set the directory where VASP
was compiled through-DVASP6_DIR=../lib/vasp6/vasp.6.4.0.modified/build/std/
This ﬂag sets the directory where VASP was compiled, as we need to grab the .mod ﬁles from VASP and thelibraries to link. Here we assumed that cmake is run in the directory build in the main PIMD directory.
VASP6 ﬁles. Please refer to the VASP manual for the details on how to set up each of the ﬁles mentioned
here. The current interface automatically copies the ﬁles INCAR, KPOINTS,POSCAR and POTCAR fromthe main directory of the calculation to a set of numbered directories for each individual bead. The common
VASP output ﬁles for each individual calculation for the beads are also found in these directories. Finally aﬁle named VASPSTDOUT in these individual directories provides the output that VASP generally sends tothe standard output.
PIMD input ﬁle.

The following keywords should be set in the ﬁle input.dat.

<ipotential>
VASP6
This keyword declares the usage of the VASP6 interface code.

4.4

Machine learning potential

The PIMD can be combined also with machine learning potentials.
• AENET [83] (artiﬁcial neural network)• MTP [86, 87] (moment tensor potential)1074.4.1AENET

IMPORTANT: The user is solely responsible for all the issues of AENET license. PIMD does not provide
any AENET license.
The artiﬁcial neural network AENET code [83] is linked at the subroutines force aenet.F andforce aenet MPI.F. The AENET code must be installed properly in order to make use of this link.
Internal link of AENET.

Follow the following directions.

• Step 1: Copy the source code. First, copy the source code of AENET version 2.0.3 and its libraryto the library directory of PIMD.
> cp -r aenet-2.0.3/src lib/aenet> cp -r aenet-2.0.3/lib lib/aenet• Step 2: Compilation of the AENET library. Starting from the main directory, go to Lbfgs library
directory.
> cd lib/aenet/lib
Then, edit properly Makeﬁle with respect to the Fortran compiler.
> vi Makefile
Start compiling the AENET library.
> makeIf successful, a new ﬁle called liblbfgsb.a will be created, so copy it to lib directory.
> cp liblbfgsb.a ../../
Return to the main directory.
> cd ../../../• Step 3: Compilation of the modiﬁed AENET code. Go to AENET directory.
> cd lib/aenet
Apply the patch to modify the AENET source by> cp -r src src_modified> patch -u -p1 -d src_modified < src.patch
Go to modiﬁed AENET source directory.
> cd src_modified
Then, edit properly Makeﬁle with respect to the Fortran compiler, the compile options for the lapack/blas libraries, etc., depending on the machine.
> vi makefiles/Makefile.options
108

Start compiling the modiﬁed AENET code.
> make -f makefiles/Makefile.options lib
If successful, a new ﬁle called libaenet.a will be created, so copy it to lib directory.
> cp libaenet.a ../../
Return to the main directory.
> cd ../../../• Step 4: Compilation of the PIMD code. In compiling the PIMD code, edit the ﬁle makeﬁle toactivate -Daenet2 -Dnlist option.
> cp -r source compile> cd compile> vi makefile> makeIf successful, this generates pimd.mpi.x, an executable of PIMD internally linked to AENET.
PIMD input ﬁle to create xsf ﬁles. Use PIMD, PIHMC or REHMC method to create a set of xsf ﬁles.
The following keyword should be set in the ﬁle input.dat.
<iprint_xsf_aenet>
10
This keyword designates the step interval of printing xsf ﬁles of AENET, in this case, every “10” steps.
If PIHMC or REHMC method is chosen, one can also set<ioption_xsf_aenet>
1
This keyword sets the print option of xsf ﬁles. In this case, “1” means that xsf ﬁles are printed for both theaccepted and rejected structures. The xsf ﬁles will be created under the directory called “structures”.
PIMD input ﬁle to generate/train using xsf ﬁles. Use PIMD, PIHMC or REHMC method to generate
input and train networks using a set of xsf ﬁles. The following keywords should be set in the ﬁle input.dat.
<istep_train_aenet>
100
This keyword designates the step interval of generating and training of AENET. In this case, “100” meansthat generate/train is done every 100 steps.
<lstep_train_aenet>
3000
This keyword sets the last step of generating and training of AENET. In this case, “3000” means thatgenerate/train is ﬁnished at step 3000.
<minxsf_train_aenet>
300

109

This keyword designates the minimum number of xsf ﬁles required to train AENET. In this case, “300”means that generate/train process is skipped until 300 xsf ﬁles are found in “structures” directory.
<generate_aenet>
OUTPUT SiO2.train
TYPES
2
Si -5.420474| eVO-4.939198 | eV
SETUPS
Si Si.fingerprint.stp
O
O.fingerprint.stp
This keyword designates the generate inputs in AENET potential.
<train_aenet>
TRAININGSET SiO2.train
TESTPERCENT 10
ITERATIONS 5000
MAXENERGY 1.0
TIMINGMETHOD
bfgs
NETWORKS! atomnetwork
hidden! types file-namelayers nodes:activation
Si
Si.15-15.ann
2
15:tanh 15:tanhO
O.15-15.ann
2
15:tanh 15:tanhThis keyword designates the train inputs in AENET potential.
<dir_train_aenet>"trained_networks"
This keyword designates the name of scratch directory for trained networks in AENET potential, in thepresent case, “trained networks”. The ﬁnal network ﬁles are copied to the execution directory after the
training is completed.
PIMD input ﬁle to run simulations (predict).
input.dat.

The following keywords should be set in the ﬁle<ipotential>
AENET
This keyword declares the usage of AENET code.
<ntype_aenet>2
Si Si.15-15.ann
O
O.15-15.annThis keyword designates and the number of atomic types and the artiﬁcial neural network potential for eachatomic type.

110

PIMD input ﬁle to run simulations (predict/generate/train). In PIHMC or REHMC method withthe dual potential, with the low-level being the AENET potential, the generate/train could be done on the
ﬂy. For example, use the combination<method>
PIHMC<ipotential>
DUAL<dual_potential>
VASP AENET
The following keywords are useful.
<istep_hmc>8<istep_max_hmc>
128<istep_adjust_hmc>
100<istep_mul_hmc>
2<ratio_min_hmc>
0.05<ratio_max_hmc>
0.20
These keyword sets a variable MD step per Metropolis step. In this case, the MD steps per Metropolis step
could be varied from “8” (initial value) to “128” with a geometric progression by the common ratio “2”.
The following is done at every “100” Metropolis steps: The MD steps per Metropolis step is increased if theacceptance ratio is lower than ‘0.05’. while it is decreased if the acceptance ratio is higher than ‘0.20’.
Execution of PIMD. The execution is done in the usual way by pimd.x or pimd.mpi.x command. Whenthe subroutine force aenet.F is called, the input ﬁle predict.in is automatically generated.
4.4.2

MTP

IMPORTANT: The user is solely responsible for all the issues of the MLIP code [86, 87] on the webpage
https://mlip.skoltech.ru. PIMD does not provide any license of the MLIP code. In PIMD, the subroutines
force mtp.F and force mtp MPI.F were rewritten in Fortran 90 from the original MLIP code written in c++.
The potential data ﬁle pot.mtp in the format of the MLIP code must be present in the execution directory.
The pot.mtp ﬁle should be an output of MTP-training in the MLIP code. A manually modiﬁed pot.mtp ﬁlemay cause an undesirable error when the PIMD code reads its parameters.
The following keywords should be set in the ﬁle input.dat.
<ipotential>
MTP
111

This keyword declares the usage of MTP.
The execution is done in the usual way by pimd.x or pimd.mpi.x command. As an example, the input ﬁlesfor path integral simulation of hydrogen in bcc Fe is provided in the directory examples/FeH/mtp pimd npt.

5

Hybrid potentials

The hybrid potentials based on QM/MM and ONIOM methods can be used in the PIMD code.

5.1

QM/MM

The following QM/MM methods are implemented in the PIMD code.
• The mechanical embedding QM/MM method.
• The electronic embedding QM/MM method with SMASH.
• The multiple time scale method with mechanical embedding QM/MM method.
These methods could be used in combination with the link atom. The following methods are NOT implemented, although they might be future targets.
• The electronic embedding QM/MM method with codes other than SMASH.
• The multiple time scale method with electronic embedding QM/MM method.
The theoretical background of the QM/MM methods is brieﬂy explained in Section 11.19.
IMPORTANT: The user is solely responsible for all the license issues of external softwares used to computehybrid potentials, e.g., SMASH, ABINIT-MP, DFTB, GAMESS, GAUSSIAN, MOLPRO, MOPAC, ORCA,
TURBOMOLE. PIMD does not provide any of these licenses.
5.1.1

QM/MM setup

In the two-layer QM/MM method, the whole system is composed of two layers A and B. The layer A is theprimary region (e.g., the solute), while the layer B is the secondary region (e.g., solvent). If the boundaryof the layers A and B are chosen such that a bonded pair is separated in the layers A and B, the link atom
method should be used. The link atom L caps the bonds broken in the layer A, when the layer A is separated
from the layer B. The following ﬁles are required in the QM/MM method.
• All ﬁles required for QM calculations• mm.dat• structure.dat• input.dat
Prepare all ﬁles required for QM calculations.

The data ﬁles required for QM calculations are• abinit-mp.dat for ABINIT-MP• dftb.dat for DFTB
• gamess.dat for GAMESS• g98.dat for GAUSSIAN 98

112

• g03.dat for GAUSSIAN 03• g09.dat for GAUSSIAN 09• g16.dat for GAUSSIAN 16• molpro.dat for MOLPRO• mopac.dat for MOPAC• orca.dat for ORCA
• turbo.dat, control.1 and control.2 for TURBOMOLE
They should be placed in a subdirectory ./dat, corresponding to the QM calculations of the subsystem (A)or (A+L). The atoms should be exactly in the same order as deﬁned in structure.dat, i.e., the list of atoms
in the primary region followed by the list of the link atoms. Note that the ﬁles is not required for SMASH
calculations since the information is already given by the keyword <smash_input> in the ﬁle input.dat.
Prepare mm.dat. The ﬁle mm.dat must be prepared as in the same manner as the case of classical force
ﬁeld, ipotential = MM. Note that the double counting of QM-QM and QM-MM interactions is avoided
automatically within the PIMD code. It is therefore not necessary to edit mm.dat in order to remove thoseinteractions.
Prepare structure.dat.

The ﬁle structure.dat must be in the following format for water dimer,

6
BOHR
O
-1.13151
H-2.30412
H
0.45453
O-5.29474
H-5.90817
H-6.79303-0.67760-0.45427-0.94620
0.097420.18675
0.37973

1.10684-0.29737
0.27505-1.87202-0.13639-2.84927

1 A
2 A
2 A
1 B
2 B
2 B

where “A” and “B” are the primary and secondary regions, respectively. Otherwise, the region “B” can beabbreviated as
6
BOHR
O-1.13151
H-2.30412
H
0.45453
O-5.29474
H-5.90817
H-6.79303

1.10684-0.29737
0.27505-1.87202-0.13639-2.84927-0.67760-0.45427-0.94620
0.097420.18675
0.37973

1 A
2 A
2 A
1
2
2

The ﬁle structure.dat must be in the following format for ethane,
8
ANGSTROMC
2.14200
H
1.60400
H
1.74500
H
2.04300
C
3.63100

1.39500
0.76000
2.38800
1.02400
1.41600-8.93200-8.26000-8.88000-9.93000-8.53700

1 AL 5 0.70 H
2 A
2 A
2 A
1 B
113

H
H
H

4.16900
3.73100
4.20300

2.05100
1.78800-0.01200-9.21000-7.53900-8.61200

2 B
2 B
2 B

“AL” means the atom in the primary region (C1 ) connected to a link atom (L). “5” means the atom in thesecondary region (C5 ) which is linked to C1 . “0.70” is the equilibrium bond length ratio between C1 –L andC1 –C5 . “H” is the atomic element of the link atom, L=H. The region “B” could be abbreviated in this caseas well. The ﬁle structure.dat must be in the following format for butane,
14
ANGSTROMC
2.14200
H
1.60400
H
1.74500
H
2.04300
C
3.63100
H
4.16900
H
3.73100
C
4.20300
H
3.66500
H
4.10400
C
5.69100
H
6.08800
H
5.79100
H
6.23000

1.39500
0.76000
2.38800
1.02400
1.41600
2.05100
1.78800-0.01200-0.64700-0.38400
0.00900-0.98300
0.38100
0.64400-8.93200-8.26000-8.88000-9.93000-8.53700-9.21000-7.53900-8.61200-7.94000-9.61000-8.21800-8.27000-7.22000-8.89000

1 B
2 B
2 B
2 B
1 AL2 1 0.70 H 8 0.70 H
2 A
2 A
1 B
2 B
2 B
1 B
2 B
2 B
2 B

“AL2” means the atom in the primary region (C4 ) connected to two link atoms (L2).
Prepare input.dat.
5.1.2

The detail is explained in the next sections.

QM/MM with SMASH

The following keywords are important in the QM/MM method using internal link with the SMASH code.
<ipotential>
QM/MMThis keyword speciﬁes to the use of QM/MM method.
<qmmm_potential>
SMASH
This keyword speciﬁes to the use of the SMASH code.
<qmmm_embedding>
EE
This keyword speciﬁes the embedding scheme, in the present case, electronic embedding. The use of mechanical embedding can be speciﬁed in the following way.
<qmmm_embedding>ME114

5.1.3

QM/MM with other codes

The following keywords are important in the QM/MM method using external link with any codes other than
SMASH.
<ipotential>
QM/MMThis keyword speciﬁes to the use of QM/MM method.
<qmmm_potential>
ORCA
This keyword speciﬁes to the use of external code for QM calculations, in the present case, ORCA.
<qmmm_embedding>ME
This keyword speciﬁes to the use of mechanical embedding.
<qmmm_dat_dir>
datThis keyword speciﬁes to the input directory of QM calculations.
<qmmm_scr_dir>
scr
This keyword speciﬁes to the temporary scratch directory of QM calculations.
5.1.4

QM/MM with BEST method

The following keywords are important in the QM/MM method with the Boundary based on Exchange
Symmetry Theory (BEST).
<ioption_best>
1
This keyword speciﬁes the use of BEST.
<iobest>1
This keyword speciﬁes the central atom of BEST, in the present case, the ﬁrst atom.
<ikind_best>
1
This keyword speciﬁes the atomic kind of BEST, in the present case, the ﬁrst kind.
<fc_best>
1.0This keyword speciﬁes the force constant of BEST, in the present case, 1.0 hartree/bohr2 .
<eps_best>
1.e-16This keyword speciﬁes the energy cut of BEST, in the present case, 10−16 hartree.
<iprint_best>
1
This keyword speciﬁes the print interval of BEST in best.out.
115

5.1.5Multiple time scale QM/MM method

The multiple time scale (MTS) molecular dynamics and path integral molecular dynamics methods are
implemented in the PIMD code. The massive Nosé-Hoover chain thermostat is used to generate for the
NVT ensemble. The method can be used either with the ONIOM potential or the QM/MM potential. The
method can be used in the combination with the BEST method to deal with systems under open boundary
conditions. The theoretical background of the MTS method is brieﬂy described in Section 11.20.
To run the MTS simulations, the following keywords needs to be speciﬁed.
<method>
MTS
This keyword sets the simulation method, the MTS method.
<ensemble>
NVT
This keyword sets the statistical ensemble, the NVT ensemble.
<bath_type>
MNHC
This keyword sets the type of thermostats, massive Nosé-Hoover chain thermostat.
<ipotential>
QMMM
This keyword sets the potential, in the present case, QM/MM.
<dt>
0.25d0This keyword sets the step size, in the present case, 0.25 femtoseconds.
<nstep>10This keyword sets the number of steps, in the present case, ten steps.
<nmulti>
100
This keyword controls the time increment and the mass scaling factor for the layer B. In the present case,the time increment for updating the forces with respect to the layer B and the interaction between the layers
A and B. is set to be 1/100 of <dt>, which means 0.0025 fs. In addition, the masses of all atoms in the layer
B are set to be 1/10000 of the physical masses.

5.2

ONIOM

The two-layer ONIOM method is implemented in the PIMD code. It could be used in combination with thelink atom. The three-layer ONIOM method is NOT implemented, although they might be a future target.
The theoretical background of the ONIOM method is brieﬂy explained in Section 11.19.
IMPORTANT: The user is solely responsible for all the license issues of external softwares used to computehybrid potentials, e.g., SMASH, ABINIT-MP, DFTB, GAMESS, GAUSSIAN, MOLPRO, MOPAC, ORCA,
TURBOMOLE. PIMD does not provide any of these licenses.

1165.2.1ONIOM setup

In the two-layer ONIOM method, the whole system is composed of two layers, A and B. The layer A is theprimary region (e.g. the solute), while the layer B is the secondary region (e.g. solvent). If the boundaryof the layers A and B are chosen such that a bonded pair is separated in the layers A and B, the link atom
method is used. The link atom L caps the bonds broken in the layer A when the layer A is separated fromthe layer B.
The following ﬁles are required in the ONIOM method,• All ﬁles required for high and low-level calculations• structure.dat• input.dat
Prepare all ﬁles required for high and low-level calculations.
low-level calculations are

The data ﬁles required for high and• abinit-mp.dat for ABINIT-MP• dftb.dat for DFTB
• eam.dat for EAM• gamess.dat for GAMESS• g98.dat for GAUSSIAN 98• g03.dat for GAUSSIAN 03• g09.dat for GAUSSIAN 09• g16.dat for GAUSSIAN 16• mm.dat for MM• molpro.dat for MOLPRO• mopac.dat for MOPAC• orca.dat for ORCA
• smash.dat for SMASH (external link to PIMD)• turbo.dat, control.1 and control.2 for TURBOMOLE
They should be placed in three subdirectories ./dat 1, ./dat 2 and ./dat 3, corresponding to the calculations,
respectively, as follows.
• The calculation of the subsystem (A) or (A+L) using a high-level potential. The atoms should be
exactly in the same order as deﬁned in structure.dat, i.e., the list of atoms in the primary region
followed by the list of the link atoms.
• The calculation of the subsystem (A) or (A+L) using a low-level potential. The atoms should be exactly
in the same order as deﬁned in structure.dat, i.e., the list of atoms in the primary region followed by
the list of the link atoms.
• The calculation of the system (A+B) using a low-level potential. The atoms should be exactly in thesame order as deﬁned in structure.dat irrelevant of the region.

117

Prepare structure.dat.

The ﬁle structure.dat must be in the following format for water dimer,

6
BOHR
O
-1.13151
H-2.30412
H
0.45453
O-5.29474
H-5.90817
H-6.79303-0.67760-0.45427-0.94620
0.097420.18675
0.37973

1.10684-0.29737
0.27505-1.87202-0.13639-2.84927

1 A
2 A
2 A
1 B
2 B
2 B

where “A” and “B” are the primary and secondary regions, respectively. Otherwise, the region “B” can beabbreviated as
6
BOHR
O-1.13151
H-2.30412
H
0.45453
O-5.29474
H-5.90817
H-6.79303

1.10684-0.29737
0.27505-1.87202-0.13639-2.84927-0.67760-0.45427-0.94620
0.097420.18675
0.37973

1 A
2 A
2 A
1
2
2

The ﬁle structure.dat must be in the following format for ethane,
8
ANGSTROMC
2.14200
H
1.60400
H
1.74500
H
2.04300
C
3.63100
H
4.16900
H
3.73100
H
4.20300

1.39500
0.76000
2.38800
1.02400
1.41600
2.05100
1.78800-0.01200-8.93200-8.26000-8.88000-9.93000-8.53700-9.21000-7.53900-8.61200

1 AL 5 0.70 H
2 A
2 A
2 A
1 B
2 B
2 B
2 B

“AL” means the atom in the primary region (C1 ) connected to a link atom (L). “5” means the atom in thesecondary region (C5 ) which is linked to C1 . “0.70” is the equilibrium bond length ratio between C1 –L andC1 –C5 . “H” is the atomic element of the link atom, L=H. The region “B” could be abbreviated in this caseas well. The ﬁle structure.dat must be in the following format for butane,
14
ANGSTROMC
2.14200
H
1.60400
H
1.74500
H
2.04300
C
3.63100
H
4.16900
H
3.73100
C
4.20300
H
3.66500
H
4.10400
C
5.69100
H
6.08800

1.39500
0.76000
2.38800
1.02400
1.41600
2.05100
1.78800-0.01200-0.64700-0.38400
0.00900-0.98300-8.93200-8.26000-8.88000-9.93000-8.53700-9.21000-7.53900-8.61200-7.94000-9.61000-8.21800-8.27000

1 B
2 B
2 B
2 B
1 AL2 1 0.70 H 8 0.70 H
2 A
2 A
1 B
2 B
2 B
1 B
2 B
118

H
H

5.79100
6.23000

0.38100
0.64400-7.22000-8.89000

2 B
2 B“AL2” means the atom in the primary region (C4 ) connected to two link atoms (L2).
Prepare input.dat.
5.2.2

The detail is explained in the next sections.

ONIOM with any codes

The following keywords are important in the ONIOM method using external link with any codes other than
SMASH.
<ipotential>
ONIOM
This keyword speciﬁes to the use of ONIOM method.
<oniom_hi_potential>
ORCA
This keyword speciﬁes to the use of external code for high-level calculations, in the present case, ORCA.
<oniom_hi_potential>
MM
This keyword speciﬁes to the use of external code for low-level calculations, in the present case, MM.
<oniom_dat_dir>
dat_1 dat_2 dat_3
This keyword speciﬁes to the input directories of the high-level calculation of the subsystem, the low-levelcalculation of the subsystem, and the high-level calculation of the system.
<oniom_scr_dir>
scr_1 scr_2 scr_3
This keyword speciﬁes to the temporary scratch directories of the high-level calculation of the subsystem,
the low-level calculation of the subsystem, and the high-level calculation of the system.
5.2.3

ONIOM with BEST method

The following keywords are important in the ONIOM method with the Boundary based on Exchange Symmetry Theory (BEST).
<ioption_best>
1
This keyword speciﬁes the use of BEST.
<iobest>1
This keyword speciﬁes the central atom of BEST, in the present case, the ﬁrst atom.
<ikind_best>
1
This keyword speciﬁes the atomic kind of BEST, in the present case, the ﬁrst kind.
119<fc_best>
1.0This keyword speciﬁes the force constant of BEST, in the present case, 1.0 hartree/bohr2 .
<eps_best>
1.e-16This keyword speciﬁes the energy cut of of BEST, in the present case, 10−16 hartree.

6

Data analysis

The PIMD code prints the trajectory ﬁle, trj.out. The code calc.x is able to do the following analysis using
the information of trj.out.
• Visualization of trajectory: Transform the data into the xyz format that can be read from a visualizing
software, such as Visual Molecular Dynamics (VMD): http://www.ks.uiuc.edu/Research/vmd.
• Statistical analysis: Create the lists and the distributions of the geometrical variables speciﬁed by theuser. The variables includes the bond lengths (interatomic distances), the bond angles, the dihedral
angles, out-of-plane distances, etc. These variables could be either speciﬁed by the set of speciﬁc atoms
or the set of the speciﬁc atomic species.
The code reads three ﬁles which should be placed in the execution directory; The trajectory ﬁle, trj.out,
the input ﬁle to be edited by the user, calc.dat, and the input ﬁle that contains the list of all the default
parameters, calc default.dat. The ﬁle calc default.dat can be copied from the directory examples.

6.1

Visualization of trajectory

The trajectory ﬁle trj.out can be transformed into xyz format that can be read from a visualizing software.
By the execution of calc.x, the data is printed to a ﬁle named calc.xyz. NOTE: the data of trj.out are inbohrs, while those of calc.xyz are in angstroms.
As an example, a set of input ﬁles for water molecule is available. So, let us copy it to the directory run:> cp -r examples/H2O/calc_xyz run
and enter that directory:> cd run/calc_xyz
Let us look at the keywords present in calc.dat one by one.
<iboundary>0This keyword sets the boundary condition, in the same way as in input.dat. In the present case, “0” means
the free boundary condition.
<nbead>32This keyword sets the number of beads, in the same way as in input.dat. In present case, 32 beads is chosen.
Now comes the keywords peculiar to calc.dat.
<iconf_ini_calc>
1120This keyword sets the ﬁrst conﬁguration to be used for the analysis. In this case, “1” means the ﬁrst
conﬁguration of trj.out.
<iconf_fin_calc>-1This keyword sets the last conﬁguration to be used for the analysis. In this case, “-1” means the last
conﬁguration of trj.out.
<iprint_std_calc>
10This keyword sets the standard output. In this case, the standard output is printed every 10 conﬁgurations.
<jprint_xyz>
1This keyword sets the print interval of xyz data. In this case, “1” means every step.
<jorigin_xyz>
2This keyword sets the origin of the system. In this case, “2” means the origin is ﬁxed in space.
<jformat_xyz>
2This keyword sets the format of the xyz ﬁle. In this case, “2” means that all bead conﬁgurations is printed
together.
To run, type> calc.x
then the xyz trajectory will be printed to the ﬁle calc.xyz.
NOTE: By calc.x command, the ﬁle calc.xyz is always overwritten onto the old one.

6.2

Statistical analysis

For the statistical analysis using calc.x, all the keywords in 6.1 are important. Additionally, the following
keywords are important.
<iprint_calc>
1This keyword sets the print interval of statistical analysis. In the present case, “1” means every step.
<ncalc>5
lin.atom.dens
angl.atom.dens
lin.atom.list
lin.spec.list
angl.atom.list

1
2
1
1
2

2
1
2
2
1

3

3

’calc.12a.dens’’calc.213.dens’’calc.12a.list’’calc.12s.list’’calc.213.list’

This keyword sets the data for the analysis. In this case, the analysis of “5” kinds are speciﬁed.
• The density with respect to the distances between the atoms #1 and #2 is printed to the ﬁlecalc.12a.dens.
121• The density with respect to the angles with respect to the atoms #1, #2 and #3 is printed to the ﬁlecalc.213.dens.
• The list of interatomic distances of the atoms #1 and #2 is printed to the ﬁle calc.12a.list.
• The list of interatomic distances with respect to the atomic species #1 and #2 is printed to the ﬁlecalc.12s.list.
• The list of bond angles with respect to the atoms #1 #2 and #3 is printed to the ﬁle calc.213.list.
To run, type> calc.x
After the run, the ﬁve output ﬁles, calc.12a.dens, calc.213.dens, calc.12a.list, calc.12s.list and calc.213.list,
will be created.
NOTE: By calc.x command, all the output ﬁles speciﬁed in the keyword <ncalc> are always overwritten
onto the old ones.

7

Codes

7.1

main codes

The main codes are• pimd.x: The serial version.
• pimd.mpi.x: The parallel version.
The latter can be used for the following methods using multiple beads.
• static calculations (STATIC), with multiple structures.
• classical molecular dynamics (MD) for NVE and NVT ensembles, with multiple trajectory.
• normal mode analysis (NMA), with multiple geometric shifts.
• phonon calculations (PHONON), with multiple geometric shifts.
• path integral simulations (PIMD, CMD, RPMD, PIHMC), with multiple beads.
• string method (STRING), with multiple images.
• metadynamics (MTD), with multiple walkers.
• replica exchange hybrid Monte Carlo (REHMC), with multiple replica.
The hierarchical parallelization has been implemented, i.e., the force parallel and the bead parallel calculations can be done simultaneously. This can be used for the ﬁrst principles potentials<ipotential> = ABINIT-MP, CP2K, NTCHEM, PHASE0, QE, SMASH, VASP
the semiempirical potentials<ipotential> = DFTB
and the machine learning potentials<ipotential> = AENET, MTP

122

The hierarchical parallelization can be also be used for all empirical potentials<ipotential> = MM, EAM, POL, ADP, PAIR, TERSOFF
On default, the hierarchical parallelization is done by the following rule. When the number of beads P isless than the number of processors C, the P beads are calculated in parallel, each bead treated with C/Pprocessors. When the number of beads P is more than the number of processors C, the C beads are calculated
in parallel, and this is sequentially repeated P/C times. These can be controlled from the ﬁle input.dat, by the
keywords <np_beads> (number of beads computed at the same time) and <np_force> (number of processors
spent for a bead).
Only the “bead parallelization” has been implemented for the ﬁrst principles potentials<ipotential> = GAMESS, G98, G03, G09, G16, MOLPRO, ORCA, TURBOMOLE
and the semiempirical potentials<ipotential> = MOPAC
In this case, the number of processors must not exceed the number of beads, <nbead>.
The MPI command depends on the MPI version. Typically, one has only to type> mpirun -np 4 -machinefile host.list pimd.mpi.x >> monitor.out &where the ﬁle host.list contains list of machine names as:> cat host.list
machine_name_for_process_1
machine_name_for_process_2
machine_name_for_process_3
machine_name_for_process_4>
Please refer to the manual of MPI version installed in your computer.

7.2

Codes for post processes

The codes for post processes• calc.x: Statistical analysis.
See Section 6.2 for details.

7.3

Subsidiary codes

The subsidiary codes are• run molpro.x: Run the MOLPRO code.
• run vasp.x: Run the VASP code.
These codes are called from the main codes only when they are necessary.

7.4

Utility codes

The utility codes are• convert tinker.x: Conversion of TINKER classical force ﬁeld into the PIMD input format.
• convert charmm.x: Conversion of CHARMM classical force ﬁeld into the PIMD input format.
• prep liquid.x: Preparation of random geometry for molecular liquids. Creation of TINKER xyz ﬁle.
See Section 8 for details.
123

7.5

External calls

The PIMD code can be called externally from other programs. For example, external keyword in the GAUSSIAN code is useful when one wants to obtain partially optimized structures or transition state structures.
For this aim, the code gau.x plays a role as an interface between GAUSSIAN and pimd.x (serial version only).
A simple example for a water molecule is found in the directory examples/H2O/gau_static.

8

Classical force ﬁeld

As a convenient way to set up the classical force ﬁeld, it is recommended to prepare an input ﬁle used for
the TINKER code [69], which is referred here as the TINKER xyz format (txyz). The TINKER xyz format(which is diﬀerent from the usual xyz format for visualization) is a simple way to designate the atom types
and the bond topologies, which are necessary to describe the classical force ﬁeld. Once the TINKER xyz ﬁleis prepared, a utility code called convert tinker.x is useful. Together with the parameter ﬁle (prm), the code
is able to convert the ﬁle into the format used in the PIMD code, mm.dat, see Section 9.7. Currently, theparameter ﬁles available are• OPLS-AA (oplsaa.prm) [70].
• AMBER 94 (amber94.prm) and AMBER 99 (amber99.prm) [71].
• CHARMM 19 (charmm19.prm) and CHARMM 22 (charmm22.prm) [72].
• CLAYFF (clayﬀ.prm) [50].
which can be found in the directory ./lib/tinker/.
Currently, it is required that the force ﬁelds has the form of Eq.(10). Thus, the following force ﬁelds are
NOT supported.
• Force ﬁelds including “ghost” atoms, such as TIP4P and TIP5P.
• United atom force ﬁelds.
• Polarizable force ﬁelds.
• Allinger force ﬁelds.
• Force ﬁelds including multipoles.
• Any other force ﬁelds that are NOT in the form of Eq.(10).
In the next section, the instruction of this utility is described with some examples.

8.1

How to convert TINKER ﬁles

IMPORTANT: The user is solely responsible for all the issues of TINKER license. PIMD does not provide
any TINKER license.
As mentioned above, the utility code convert tinker.x helps creating an input ﬁle mm.dat from a TINKER
input ﬁle. As an example, a set of input ﬁles for alanine dipeptide is available. So, let us copy it to thedirectory run:> cp -r examples/dialanine/tinker run
and enter that directory:> cd run/tinker
Two ﬁles should be present in the execution directory:124• An input ﬁle in TINKER xyz format (*.txyz), in the present case, dialanine.txyz.
• A parameter ﬁle in TINKER format (*.prm) in the present case, charmm22.prm.
The former is supposed to be edited by the user, while the latter is supposed to be left as is. Note that theformat of TINKER xyz ﬁle is not in the standard xyz format, and here it is renamed as *.txyz for convenience.
Let us have a look at the input ﬁle.
> cat dialanine.txyz
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

Alanine Dipeptide // CHARMM22 C5 MinimumCT3-2.249880-0.851680-0.058940
C-0.786160-1.071640-0.041920
O-0.312190-2.152570
0.279550
HA-2.764750-1.780850
0.268810
HA-2.586730-0.597290-1.085860
HA-2.521030-0.027170
0.633690NH1-0.025660-0.031640-0.391820
CT11.415230-0.079650-0.382260
C
1.933490
1.322610-0.124130
O
1.170440
2.286690-0.127990
H-0.424700
0.854010-0.611480
HB
1.746460-0.702310
0.439450
CT3
1.958160-0.619200-1.723660
HA
1.627360
0.025240-2.565870
HA
3.066090-0.674020-1.723780
HA
1.559770-1.642940-1.895670
NH1
3.251530
1.467720
0.116150
CT3
3.834060
2.763270
0.377670
H
3.852350
0.6752100.119160
HA
4.9291302.674280
0.551220
HA
3.372750
3.226480
1.279840
HA
3.6701303.449260-0.484700

27
20
74
1
1
1
63
23
20
74
3
4
27
1
1
1
63
61
3
1
1
1

2
1
2
1
1
1
2
7
8
9
7
8
8
13
13
13
9
17
17
18
18
18

4
3

5
7

6

8
9
10

11
12
17

13

14

15

16

18
20

19
21

22

In this ﬁle, the number of atoms n (= “22”, in the present case) and the title (Alanine Dipeptide) appears
in the ﬁrst line. The next n lines are the information on the respective atoms; The atom number (in thepresent case, “1”, in the second line), the atomic symbol (“CT3”), the Cartesian coordinates (x, y, z) = (“-2.249880”, “-0.851680”, “-0.058940”) in angstroms, the atom type (“27”), and the bonded atoms (“2, 3, 5,6”). The atom types deﬁned here should match those given in the parameter ﬁle. Therefore, the input ﬁle is
speciﬁc to the force ﬁeld chosen.
Meanwhile, all the information on the force ﬁeld is included in the parameter ﬁle, in the present case,charmm22.prm. The users are encouraged to look inside the ﬁle for the details.
To run, type
> convert_tinker.x $1 $2 $3 $4 $5 $6 $7 $8
where the eight arguments ($1–$8) are explained as follows.
• $1 is the name of TINKER input ﬁle (INPUT), for example, “dialanine.txyz”.
• $2 is the name of TINKER parameter ﬁle (INPUT), for example, “charmm22.prm”.
• $3 is the inner Lennard-Jones cutoﬀ distance in bohr, for example, “20.0”. This is where the LJ
interaction starts to damp.
• $4 is the outer Lennard-Jones cutoﬀ distance in bohr, for example, “25.0”. This is where the LJ
interaction disappears.
125• $5 is the name of PIMD force ﬁeld ﬁle (OUTPUT), “mm.dat”.
• $6 is the name of PIMD geometry ﬁle (OUTPUT), centroid.dat.
• $7 is the name of the geometry in printed in the xyz format (OUTPUT), for example, “structure.dat.
• $8 is the name of PIMD input ﬁle (OUTPUT), “input.dat.
On the execution, the following will appear on the screen:> convert_tinker.x dialanine.txyz charmm22.prm 20.0 25.0
mm.dat centroid.dat structure.dat input.dat
Input file:dialanine.txyz
Parameter file: charmm22.prm
PIMD MM file:mm.datGeometry file:centroid.dat
xyz file:
structure.dat
PIMD input file: input.dat
Reading tinker file.
Reading input file.
force field: CHARMM22
vdwindex:
CLASS
vdwtype:
LENNARD-JONES
radiusrule:
ARITHMETIC
radiustype:
R-MIN
radiussize:
RADIUS
epsilonrule: GEOMETRIC
bondunit:
1.00
angleunit:
1.00
torsionunit:
1.00
impropunit:
1.00
imptorunit:
1.00
vdw-14-scale: 1.00
chg-14-scale: 1.00
scaling factors:
sigma:
1.78
eps_14:
1.00
q_14:
1.00
torsion:
2.00
imp. torsion: 2.00
improper:2.00
econst (au):econst (mm):ratio:

332.064035
332.071600
1.000023

Looking for linear bond parameters.
Looking for angular bond parameters.
Looking for urey-bradley parameters.
Looking for torsion parameters.
Looking for improper torsion parameters.
Looking for improper dihedral parameters.
Looking for charge parameters.
Looking for bonded charge pairs.
Looking for Lennard-Jones parameters.

126

Summary:
lj inner cutoff (bohr)
lj outer cutoff (bohr)
number of atoms:
bond connections:urey-bradley terms:
number of linear bonds:
number of angles:
number of torsions:torsion terms:
improper torsions:
number of dihedrals:
number of impropers:
number of charges:
bonded charge pairs:
number of lj pairs:
net charge:
hartree to kcal/mol:

20.00
25.00
22
21
15
36
36
41
123
0
123
4
22
98
174
0.00
627.5100

Checking LJ interactions: OK.
PIMD MM created:
mm.dat
PIMD input created: centroid.dat
Type
Bond
Bond

Atom Names

Ideal

ActualEnergyFconst2-C
4-HA

1.49001.11101.4803
1.11170.02380.0002500.0000
644.0000

Atom Names

Ideal

ActualEnergyFconst2.16302.16302.12472.13470.04400.024160.0000
60.0000

Ideal

ActualEnergyFconst121.0000
116.5000

121.1620
116.3917

0.00060.0003160.0000
160.0000

Angle

EnergyBarrier Mu Nu

177.9610
177.9610

0.00100.00633.2000 1
5.0000 -1

1
2

Ideal

ActualEnergyFconst

1-CT3
1-CT3

.....
Type
UreybradUreybrad

2-C
2-C

4-HA
5-HA

.....
Type
Angle
Angle

Atom Names
1-CT3
1-CT3

2-C
2-C

3-O
7-NH1

.....
Type
TorsionTorsionAtom Names
1-CT3
1-CT3

2-C
2-C

7-NH1
7-NH1

8-CT1
8-CT1

.....
Type

Atom Names

127

ImprdihImprdih

2-C
7-NH1

1-CT3
2-C

7-C
8-NH1

3-CT3
11-C

0.00000.00000.05992.41480.00010.0355240.0000
40.0000.....
Type
VDW-LJ
VDW-LJ
52.8449

Atom Names
1-CT3
1-CT3
-0.0016

Ideal

ActualEnergyEpsilon8-CT1
3.80009-C
4.06000.03183.75954.7151-0.0100-0.06090.01000.0938.....
Type

Atom Names

ChargeCharge

1-CT3
1-CT3

2-C
3-O

Distance

Energy1.48032.3583-0.0000
0.0000Charges-0.2700-0.2700

0.5100-0.5100

Scale
0.00000.0000.....

Total Energy:
TE + es correction:

hartree-0.024827-0.024828

kcal/mol-15.5791-15.5796

Energy Decomposition:
Bond Stretching:Angle Bending:
Urey-Bradley:
Improper Dihedral:
Torsional Angle:
Improper Torsion:
Van der Waals:
Charge-Charge:
C-C + es correction:

hartree0.000650
0.001325
0.000191
0.000060
0.005052
0.000000-0.001737-0.030368-0.030369

kcal/mol
0.40790.83150.12010.0375
3.16990.0000-1.0898-19.0562-19.0567

counts
21
36
15
4
41
0
174
174
174

Normal termination.

Thus, the details of all the individual interactions are displayed. At the end of the run, four ﬁles, mm.dat,
input.dat, centroid.dat and structure.dat, will be created. The ﬁles mm.dat, structure.dat and input.dat are
to meant be used for the input for the PIMD code. The ﬁle input.dat works for the static calculation, so theuser needs to modify it appropriately. The ﬁle structure.dat is in the xyz format, and it can be used to checkthe geometry with a visualizing software.
If the TINKER code is installed in your computer, the results can be cross-checked. The details of all
individual interactions can be calculated individually with the “analyze” code implemented in TINKER [69].
This is done in the following way.
> analyze dialanine.txyz charmm22.prm D
One can see that the results are identical.
NOTE: In the convert tinker.x code, the energy calculation is always done in the free boundary condition.
It may happen that the result on the intermolecular interactions (i.e., LJ and charges) is diﬀerent when the
TINKER “analyze” code has been used with the periodic boundary condition.
Now, by running the PIMD code, the following result will appear on the screen.

128

> pimd.x==============================================================================
potential energy values
bead
hartreekcal/molkJ/mol-----------------------------------------------------------------------------1-0.02482693-15.579146-65.183148------------------------------------------------------------------------------

Again, one can check that the energy value is completely the same.

8.2

Preparation of initial structure

The prep liquid.x code is a utility code for the generation of random structure of molecular liquids and the
TINKER xyz ﬁle.
This code creates the geometry ﬁles of the PIMD code in three diﬀerent forms, centroid.dat (for initiations
with <input_style> = OLD), structure.dat (for initiations with <input_style> = NEW), and geometry.ini(for restarts). It also creates the TINKER xyz ﬁle, structure.txyz, to prepare the classical force ﬁeld.
This code reads the keywords from the ﬁle input.dat which should be prepared by the user. The following
is an example of the ﬁle input.dat to prepare the simulation of aqueous hexanediol.
<natom>280
This keyword sets number of atoms, in this case, “280” atoms, with 86 water molecules (3 atoms) and one
hexanediol molecule (22 atoms).
<nspec>8O15.99900 86
H
1.00800 172
H
1.00800
2
O
15.999002C12.011002C
12.011002C
12.011002H
1.00800 12

63
64
97
96
81
100
80
85

2
1
1
2
4
4
4
1

This keyword sets the number of species, followed by the atomic symbol, the atomic mass, the number ofatoms of each species, the atomic type of classical force ﬁeld (in the present case opls aa.prm), and the bondorder. The atomic type and the bond order aﬀects only the tinker input ﬁle (txyz). In this case, there are“8” species.
<iboundary>1
26.5890.000
0.000
26.589
0.000
0.000

0.000
0.000
26.589This keyword sets the boundary condition and the simulation box, in this case, periodic boundary condition
and the cubic box with the side length of 26.589 bohr.
<components>
2
129

MOL
22
GENERAL-0.93099 -4.50041
4.004095.140705.249633.62029-2.29140 -3.36393
3.965543.33204
5.23867
3.695120.36177
1.745512.75309-0.00389 -0.45356
0.96768-2.44787 -1.91602
1.710152.74906
3.32740
1.96319-3.38480 -3.57747 -0.43337
2.370174.79893 -0.48344
0.69625
5.79104 -0.37705
3.89386
6.10662 -0.98025
1.868643.71234 -2.06514
0.89071
1.180864.72407-1.27549
2.943032.68714-0.25390
0.24564 -0.88274
1.53510 -1.80849
1.13095-3.80829 -0.46565
1.98775
4.20755
1.938641.77308-5.47767 -3.92499 -0.29825-3.16181 -2.45213 -2.13450-2.49738 -5.43979 -0.67147
H2O
3
GENERAL
0.00000
0.00000
0.00000
1.489111.163420.00000-1.48911
1.163420.00000
This keyword sets each molecular components. In this case, there are two components in the system, “MOL”
and H2O. “MOL” is a non-linear molecule composed of “22” atom, while “H2O” is a non-linear moleculecomposed of “3” atoms. The atomic coordinates in the molecular frame are given after “MOL” and “H2O”.
<molecules>
87
MOL
259 260
269 270279 280
H2O
1
87
H2O
2
88
H2O
3
89
...
.. ...
...
.. ...
...
.. ...
H2O
84 170H2O
85 171
H2O
86 172

261
271

262
272

263
273

264
274

265
275

266
276

267
277

268
278

173
174
175
...
...
...
256
257
258

This keyword gives the list the atoms in the molecules. The numbering should be consistent with that givenby the keyword <nspec>.
To run, type
> prep_liquid.x-----------------------------------------------130

atom 1 atom 2 bond order
dist/au r1+r2/au-----------------------------------------------187
1
2
1.889713.45000
1173
2
2
1.889713.45000
288
1
2
1.889713.45000.
...
.
.
.......
.......
.
...
.
.
.......
.......
.
...
.
.
.......
.......
Created: structure.dat.
Created: centroid.dat.
Created: geometry.ini.
Created: structure.dat.
Normal of termination of PREP_LIQUID.
Conﬁrm that the ﬁles are created properly. The ﬁle geometry.xyz is in xyz format that can be visualized.
The ﬁle structure.txyz can be used to create mm.dat as shown in the previous section.
NOTE: If one gets the following message, there are ways to ﬁx it.
Warning - Number of bonds do not match:

4 and

3 for atom:

265.

This warns that the number of neighboring atoms of atom 265 (= 3), did not match the bond order of atom
265 (= 4). Therefore, one can• check if the bond order is correct.
• tune the atomic radius in <symbol> in input default.dat, which changes the values of the cutoﬀ radii(r1 + r2) and thus reﬂects the number of neighboring atoms.
• change manually the tinker input ﬁle (txyz).

8.3

How to use CHARMM force ﬁeld

IMPORTANT: Now that the convert tinker.x code can convert CHARMM force ﬁelds as well, the prescription
introduced in this section is becoming obsolete.
The convert charmm.x code helps creating the input ﬁles, especially mm.dat, with CHARMM force ﬁeld.
In order to use this, three ﬁles should be prepared:• CHARMM parameter ﬁle (par *.prm)• CHARMM protein structure ﬁle (*.psf)• Structure ﬁle in protein data base format (*.pdb)
All the parameters for intramolecular bonds and Lennard-Jones interactions as well as atomic charges areread from the par ﬁle. The residue name, the atom name, the atom type, the atomic masses as well as theintramolecular bond topologies are read from the psf ﬁle. The atomic coordinates are read from the pdb ﬁle.
With these data the convert charmm.x code generates• mm.dat• input.dat131• centroid.dat
which can be directly used as the input of the PIMD code. The ﬁles mm.dat, centroid.dat and input.dat are
to meant be used for the input for the PIMD code. The ﬁle input.dat works for the static calculation, so theuser needs to modify it appropriately.
To run, type
> convert_charm.x
Then, the user is asked to provide the following data interactively.
• The name of par ﬁle.
• The name of psf ﬁle.
• The name of pdb ﬁle.
• Cutoﬀ parameters for Lennard-Jones interaction.
NOTES:• The order of atoms in psf and pdb ﬁle must be exactly the same, or else the result will be completely
meaningless.
• In CHARMM force ﬁeld, a special parameter set for 1-4 Lennard-Jones interaction is prepared for some
atoms, and 1-4 electrostatic interaction is assumed to be zero. This is properly considered in this code.
• Not only bonded interaction but also Urey-Bradley interaction is included below <linear_bonds>
keyword in mm.dat. Note that they have the same mathematical form (harmonic oscillator).
• The psf ﬁle can be created from CHARMM topology ﬁle (top *.prm) using, for instance, the VMD code
[4].

9

Keywords

In this section, the keywords used in the PIMD code are explained.
NOTE: The keyword should be written from the ﬁrst column. Do not put any letters or spaces before
the keyword.

9.1

Necessary keywords in input.dat

9.1.1<ensemble>

Used in ALL methods. This keyword sets the type of thermodynamic ensemble. The data should be provided
in the ﬁrst line (character). The options are as follows.
• <ensemble> = NONE: unspeciﬁed.
• <ensemble> = NVE: constant volume and energy.
• <ensemble> = NVT: constant volume and temperature.
• <ensemble> = NPT: constant pressure and temperature.
• <ensemble> = NTT: constant tension and temperature.
• <ensemble> = NPH: constant pressure and enthalpy.
• <ensemble> = NTH: constant tension and enthalpy.
132

The conditions are as follows.
• For <method> = CMD, RPMD, one must choose NVE.
• For <method> = MTD, MTS, REHMC, one must choose NVT.
• For <method> = MD, ROTOR, NVE, one must choose NVT.
• For <method> = PIMD, one must choose among NVT, NPT, NPH, NTH.
• For <method> = PIHMC, one must choose among NVT, NPT.
The default value is “NONE”.
9.1.2<ipotential>

Used in ALL methods. This keyword sets the potential. The data should be provided in the ﬁrst line
(character). Choose one from below for standard potentials.
• <ipotential> =ABINIT-MP: ABINIT-MP.

• <ipotential> =ADP: angular dependent potential.

• <ipotential> =AENET: AENET.

• <ipotential> =CP2KLIB: CP2K (internal link).

• <ipotential> =DFTB: DFTB (external link).

• <ipotential> =DFTBLIB: DFTB (internal link).

• <ipotential> =EAM: embedded atom method.

• <ipotential> =G98: GAUSSIAN 98.

• <ipotential> =G03: GAUSSIAN 03.

• <ipotential> =G09: GAUSSIAN 09.

• <ipotential> =GAMESS: GAMESS.

• <ipotential> =MM: molecular mechanics (non-polarizable).

• <ipotential> =MOLPRO: MOLPRO.

• <ipotential> =MOPAC: MOPAC.

• <ipotential> =MTP: Moment tensor potential.

• <ipotential> =NTCHEM: NTCHEM.

• <ipotential> =ORCA: ORCA.

• <ipotential> =OSS: Ojamae-Shavitt-Singer (OSS2).

• <ipotential> =PHASE0: PHASE/0.

• <ipotential> =POL: molecular mechanics (polarizable).

• <ipotential> =PAIR: tabulated pair potential.

• <ipotential> =QE: QUANTUM ESPRESSO.
133

• <ipotential> =SMASH: SMASH.

• <ipotential> =TERSOFF: Tersoﬀ potential.

• <ipotential> =TURBOMOLE: TURBOMOLE.

• <ipotential> =VASP: VASP (internal link).

• <ipotential> =VASP5: VASP (external link).

• <ipotential> =WATER: water (test).

• <ipotential> =ONIOM: ONIOM (two layer).

• <ipotential> =QMMM: QM/MM (mechanical embedding).

• <ipotential> =USER: user deﬁned.

The default value is not available.
9.1.3<method>

Used in ALL methods. This keyword sets the simulation method. The data should be provided in the ﬁrst
line (character). Choose one from below:• <method> =STATIC: static calculation.

• <method> =TESTFORCE: test forces by numerical diﬀerentiation.

• <method> =TESTVIRIAL: test virial by numerical diﬀerentiation.

• <method> =GEOOPT: geometry optimization using limited memory BFGS method.

• <method> =NMA: normal mode analysis.

• <method> =SD: steepest descent method.

• <method> =BOXOPT: box optimization using limited memory BFGS method.

• <method> =FULLOPT: geometry and box optimization using limited memory BFGS method.

• <method> =ELASTIC: static elastic constants.

• <method> =MD: classical molecular dynamics.

• <method> =PIMD: path integral molecular dynamics.

• <method> =BCMD: Brownian chain molecular dynamics.

• <method> =CMD: centroid molecular dynamics.

• <method> =RPMD: ring polymer molecular dynamics.

• <method> =TRPMD: thermostatted ring polymer molecular dynamics.

• <method> =MTD: metadynamics.

• <method> =MTS: multiple time scale path integral molecular dynamics.

• <method> =PIHMC: path integral hybrid Monte Carlo.

• <method> =REHMC: replica exchange hybrid Monte Carlo.
134• <method> =STRING: string method.

• <method> =PHONON: phonon calculation.

• <method> =TFS: nonadiabatic surface hopping dynamics (Tully’s fewest switches).

• <method> =MFE: nonadiabatic mean ﬁeld dynamics (mean ﬁeld Ehrenfest).

• <method> =ROTOR: molecular dynamics of rigid body molecules.

• <method> =SCAN: consecutive static calculations.

• <method> =GAD: gentlest ascent dynamics.

The default value is “STATIC”.
9.1.4<natom>Used in ALL methods. This keyword sets the number of atoms. The data should be provided in the ﬁrst
line (integer). The default value is 0 (not available).
NOTE: This keyword is only used for <input_style> = OLD (default). For <input_style> = NEW, thiskeyword has become obsolete. See Section 1 for details.
9.1.5<nspec>Used in ALL methods. This keyword sets the atomic species present in the system. In the ﬁrst line, thenumber of species should be given. In the following lines, the parameter set of each atomic species, i.e., theatomic symbol (character), the atomic mass in amu (real number) and the number of atoms (integer) of therespective atomic species, should be given. The default value is 0 (not available). NOTE: The same atomic
symbol can be used more than twice.
NOTE: This keyword is only used for <input_style> = OLD. For <input_style> = NEW (default), thiskeyword has become obsolete. See Section 1 for details.

9.2

Important keywords in input.dat

9.2.1<bath type>

Used in the cases of <method> = MD, PIMD, MTS, CMD, MTD. This keyword sets the type of Nosé-Hooverthermostats. The data should be provided in the ﬁrst line (character).
• <bath_type> =NONE: thermostat is not used.

• <bath_type> =NHC: Nosé-Hoover chain thermostat attached to the whole system.

• <bath_type> =NHCS: Nosé-Hoover chain thermostat attached independently to x, y, z.

• <bath_type> =to each beads.

MNHC: massive Nosé-Hoover chain thermostat attached to each degrees of freedom and

The condition is as follows.
• For <method> = MD with <ensemble> = NVT, one must choose MNHC.
• For <method> = CMD, MTD, MTS, one must choose MNHC.
The default value is “NONE” (no thermostat).

135

9.2.2<dt>

Used in ALL cases except <method> = STATIC, TESTFORCE, TESTVIRIAL, GEOOPT, NMA, PHONON,
BOXOPT, FULLOPT. This keyword sets the step size. The data should be provided in the ﬁrst line (realnumber).
• For <method> = SD, STRING, GAD: the initial step size in hartree0.5 femtoseconds.
• For <method> = MD, PIMD, PIHMC, CMD, RPMD, REHMC, TFS, MFE, MTS, MTD, ROTOR: the step sizein femtoseconds.
The default value is “0.25” (either femtoseconds or hartree0.5 femtoseconds depending on the method
chosen).
NOTE: In <method> = CMD, it is recommended that <dt> value set smaller than usual by <igamma> times,
to ensure the adiabatic separation between the centroid and the non-centroid modes.
9.2.3<iboundary>

Used in the ALL cases. This keyword sets the boundary condition. The data should be provided in the ﬁrst
line (integer). Choose one from below:• <iboundary> = 0: free boundary (isolated system).
• <iboundary> = 1: periodic boundary, trajectory folded within the box; box matrix h in bohr.
• <iboundary> = 2: periodic boundary, trajectory not limited within the box; box matrix h in bohr.
• <iboundary> = BOHR: periodic boundary, trajectory folded within the box; box matrix h in bohr (sameas 1).
• <iboundary> = ANGSTROM: periodic boundary, trajectory folded within the box; box matrix h in
angstrom.
The default value is “0” (free boundary).
For iboundary = 1, the information of box should be speciﬁed. By default, the last step and the box←→
matrix, h , is read from the ﬁle box.ini. The ﬁle box.ini should include three lines
i, h(1, 1), h(1, 2), h(1, 3)i, h(2, 1), h(2, 2), h(2, 3)i, h(3, 1), h(3, 2), h(3, 3)
where the ﬁrst column is the last step (integer), and the second, third, and fourth columns (real numbers) correspond to the box matrix elements in bohrs, (h(1, 1), h(2, 1), h(3, 1)) = (ax , ay , az ), (h(1, 2), h(2, 2), h(3, 2)) =(bx , by , bz ), and (h(1, 3), h(2, 3), h(3, 3)) = (cx , cy , cz ).
If the ﬁle box.ini is not found, the box matrix is read from the three lines after the keyword <iboundary>in the ﬁle input.dat as:<iboundary>1h(1, 1), h(1, 2), h(1, 3)h(2, 1), h(2, 2), h(2, 3)h(3, 1), h(3, 2), h(3, 3)136

9.2.4<iprint rest>

This keyword sets the print interval of generating and overwriting the restart ﬁles, *.ini. The data should be
provided in the ﬁrst line (integer). The default value is “-1” (do not print).
9.2.5<iprint std>

This keyword sets the print interval of the standard output standard.out. The data should be provided in
the ﬁrst line (integer). The default value is “1” (every step). Set to “-1” to switch oﬀ.
9.2.6<iprint trj>

This keyword sets the print interval of the standard trajectory ﬁle trj.out. The data should be provided in
the ﬁrst line (integer). The default value is “-1” (do not print).
9.2.7<iread exit>

This keyword sets the interval of checking the existence of exit.dat ﬁle for soft exit. The data should be
provided in the ﬁrst line (integer). The default value is “1” (every step). Set to “-1” to switch oﬀ.
NOTE: reading the ﬁle exit.dat in the hard disk will slightly slow down the computation. which is visible
when running test calculations with a small molecular system using the MM potential. In such a case, set<iread_exit> either to a larger value so as to check less frequently, or “-1” so as not to check at all.
9.2.8

<nbead>Used in ALL cases except <method> = STATIC, SD, GEOOPT. This keyword sets the number of beads.
• For <method> = PIMD, CMD, RPMD, PIHMC, MTS: the number of beads.
• For <method> = TESTFORCE, TESTVIRIAL: the number of structures.
• For <method> = MTD: the number of walkers.
• For <method> = STRING: the number of images.
• For <method> = REHMC: the number of replicas.
• For <method> = NMA, PHONON; the number of shifted geometries calculated in parallel.
• For <method> = MD with <ncons> = 0, MFE, TFS: the number of independent trajectories.
• For <method> = MD with <ncons> = 1: the number of independent trajectories with diﬀerent constraints.
The data should be provided in the ﬁrst line (integer). The default value is “1”.
9.2.9

<nstep>Used in ALL cases except <method> = STATIC, TESTFORCE, TESTVIRIAL, NMA. This keyword sets the number of steps.
• For <method> = GEOOPT, BOXOPT, FULLOPT: the maximum number of optimization steps.
• For <method> = STRING: the maximum number of updates of the string.
• For <method> = SD: the steps along the steepest descent trajectory.
• For other methods: the number of time steps of the trajectory.
The data should be provided in the ﬁrst line (integer). The default value is “4”.
137

9.2.10<temperature>

Used in ALL cases except <method> = STATIC, TESTFORCE, TESTVIRIAL, GEOOPT, NMA, PHONON,
BOXOPT, FULLOPT, ELASTIC. This keyword sets the temperature of the system in kelvin. The data should
be provided in the ﬁrst line (real number).
• For <method> = MD, PIMD, CMD, RPMD, MTD, MTS, PIHMC, REHMC, TFS, MFE, ROTOR: the temperature of Maxwell-Boltzmann distribution used in the generation of initial random velocity.
• For<method> = MD, PIMD, CMD, MTD, MTS, PIHMC, REHMC, ROTOR,
ensemble=NVT, NPT, NTT: the temperature of Nosé-Hoover thermostats.

with

The default value value is “300” kelvin.

9.3

Frequently used keywords in input.dat

9.3.1<beadspread>

Used in the cases of <method> = PIMD, PIHMC, CMD, RPMD, MD, MTS, REHMC, MTD.
• For <method> = PIMD, PIHMC, MTS, CMD and RPMD, this keyword controls the generation of initial
set of the bead conﬁgurations. After the centroid conﬁguration is read from the ﬁle centroid.dat, theinitial position of each bead is generated randomly around the centroid with the distribution being thatof a free quantum atom. This keyword sets the temperature, in kelvin, by which the bead spread of afree quantum atom is characterized. The data should be provided in the ﬁrst line (real number). As
the temperature becomes high, the bead spread shrinks, and all the beads are generated nearby thecentroid.
• The same idea is inherited for <method> = MD, REHMC, MTD. This keyword sets the temperature, inkelvin, by which the bead spread is characterized, to generate the initial set of conﬁgurations of eachtrajectory in MD, each replica in REHMC, and each walker in MTD.
The default value is “500” kelvin.
NOTE: The temperature in the keyword <beadspread> has nothing to do with the real temperature of
the system designated by the keyword <temperature>. If one prefers the initial conﬁgurations to be more
diﬀerent from one another, a smaller value should be chosen.
9.3.2<corrections>

Used in the cases of <method> = PIMD, PIHMC, MTS, CMD and RPMD. This keyword sets the translationaland rotational corrections applied to path integral simulations. The data should be provided in the ﬁrst line
(two integers).
• The ﬁrst integer: the option of the translational corrections.
– If “0”, the correction is not applied.
– If “1”, the correction is applied at the initial step only.
– If “2”, the correction is applied at every step.
• The second integer: the option of the rotational corrections.
– If “0”, the correction is not applied.
– If “1”, the correction is applied at the initial step only.
– If “2”, the correction is applied at every step.
The default values are “0, 0”, which mean that both the translational and rotational corrections are notapplied.
NOTE: In the PIMD code, there is a limitation using the rotational correction for diatomic systems. In
this speciﬁc case, the atoms must be aligned initially on the x axis.
138

9.3.3<input style>

Used in ALL cases. This keyword sets the input style of initial molecular structure. The data should be
provided in the ﬁrst line (character).
• OLD: Old format using the ﬁle centroid.dat.
• NEW: New format using the ﬁle structure.dat.
The default value is “NEW”.
9.3.4<iprint dcd>

This keyword sets the print interval of several binary ﬁles, *.dcd. The data should be provided in the ﬁrst
line (integer). The default value is “-1” (do not print).
The format of the ﬁles, box.dcd, dipoles.dcd, force.dcd, potential.dcd, trj.dcd, trj unfolded.dcd, vel.dcd, aredescribed in the the output ﬁles section.
The ﬁles box.dcd and trj unfolded.dcd are only printed if periodic boundary conditions are used.
Note that in some cases the ﬁles box.dcd, trj.dcd, trj unfolded.dcd, vel.dcd and force.dcd will be printed
for each bead and will contain the bead number as part of their ﬁlename, e.g. trj.001.dcd.
The ﬁle force.dcd will in the case of dual potentials be replaced by force low.dcd and force high.dcd, whichcontains the forces of the low and high accuracy potentials respectively.
9.3.5<iprint xsf>

This keyword sets the print interval of trajectory ﬁle in xsf format, trj.xsf. The data should be provided in
the ﬁrst line (integer). The default value is “-1” (do not print).
9.3.6<iprint xyz>

This keyword sets the print interval of trajectory ﬁle in xyz format, trj.xyz. The data should be provided in
the ﬁrst line (integer). The default value is “-1” (do not print).
9.3.7<ncolor>

Used in the cases of <method> = MD, PIMD, CMD, MTD. This keyword is only necessary when one wants
to control the temperature very strongly by massive Nosé-Hoover chain thermostats. Nosé-Hoover chain
thermostats are multiply attached with diﬀerent masses, see Section 11.10.3 for details. This keyword sets
the multiplicity M . The data should be provided in the ﬁrst line (integer). The default value is “1” (single).
9.3.8<nnhc>

Used in the cases of <method> = MD, PIMD, CMD, MTD. This keyword sets the chain length of the thermostat.
The data should be provided in the ﬁrst line (integer). The default value is “4”. This keyword is neglected
if thermostat is not used.
9.3.9<np beads>

Number of beads computed at the same time. The default is -1 (automatically deﬁned). The product of
np_beads and np_force should be the total number of cores used in the code pimd.mpi.x.
9.3.10<np force>

Number of processors spent for a bead.
The default is -1 (automatically deﬁned). The product of np_beads and np_force should be the total
number of cores used in the code pimd.mpi.x.
1399.3.11<nref>

Used in the cases of <method> = MD, PIMD, CMD, MTS, MFE, TFS, AFED. This sets the number of updates
for fast varying forces per unit step <dt>.
• For <method> = MD with <ensemble> = NVE or NVT: the number of updates for the harmonic forces of
constraints per step <dt>.
• For <method> = PIMD and CMD: the number of updates for the harmonic forces in path integrals, i.e.,
the forces between the beads, are updated per step <dt>.
• For <method> = MTS: the number of updates for the harmonic forces path integrals, i.e., between thebeads, are updated per step in the multiple time scale method, <dt>/<nmulti>.
• For <method> = MFE and TFS: the number of updates the electronic state coeﬃcients per step <dt>.
• For <method> = AFED with <afed_type> = TAMD or AFED: the number of updates for the harmonic
forces of constraints per step <dt>.
In principle, the accuracy could be improved but the computation is required more, as the <nref> value
becomes larger. The data should be provided in the ﬁrst line (integer). The default value is “1”.
9.3.12<nsymbol>

Used in ALL methods when <input_style> = NEW. Usually, this keyword is not used in the ﬁle input.dat bykeeping the ﬁle input default.dat as is. This keyword sets the atomic species followed by the atomic number,
atomic mass in amu, and atomic radius in au. The atomic radius is not used in the pimd.x and pimd.mpi.x
codes; It is used speciﬁcally in the prep liquid.x code to set the cutoﬀ distance when identifying the bond
topology of classical force ﬁeld.
This keyword is slightly modiﬁed after version 2.1.
9.3.13<nys>

Used in the cases of <method> = MD, PIMD, CMD, MTD. This keyword sets the number of updates of the
NHC, NHCS and MNHC thermostats per unit step <dt>. The accuracy is usually improved by increasing
the number of updates for the thermostats. The data should be provided in the ﬁrst line (integer).
• <nys> = 3 or 5: Suzuki–Yoshida time step decomposition method is employed.
• other values of <nys>: the step size <dt> is divided equally into <dt>/<nys>.
The default value is “5”.
9.3.14<pimd command>

Used for the cases of <ipotential> = ONIOM, QMMM, ALCHEM, DUAL. This is the execution command for
the PIMD code (serial version). This information is only required when the PIMD code is called recursively
via system calls. The default is “pimd.x”.
9.3.15<pressure>

Used for the cases of <ensemble> = NPH, NPT. The external isotropic pressure is read from the ﬁrst line (realvalue) in megapascals. The default value is “0.101325” megapascals, which is equal to 1 atm.

140

9.3.16<time bath>

Used in the cases of <method> = MD, PIMD, CMD, MTD. This keyword controls the masses of thermostats.
The masses of thermostats are related to the characteristic time scale of the system. This keyword sets thistime scale in femtoseconds. The data should be provided in the ﬁrst line (real number). The default value is“10” femtoseconds.

9.4

Speciﬁc keywords in input.dat

9.4.1<abinit mp exe command>

Used in the case of <ipotential> = ABINIT-MP5. This keyword sets the execution command for the ABINITMP5 code when using the system call version. The ﬁrst line speciﬁes the ABINIT-MP5 execution command,with the default being “abinitmp”.
9.4.2<abinit mp input>

Used in the case of <ipotential> = ABINIT-MP, ABINIT-MP5. This keyword speciﬁes the input ﬁle for the
ABINIT-MP code. The name of the input ﬁle should be provided in the ﬁrst line, and the default name is“input.ajf”.
9.4.3<abinit mp output>

Used in the case of <ipotential> = ABINIT-MP, ABINIT-MP5. The ﬁrst line should provide three pieces of
information:• The name of the log ﬁle (a character string).
• The option, either “0” or “1” (an integer).
– If “0”, only the information of the ﬁrst bead is printed.
– If “1”, the information of all the beads is printed.
• The print interval (an integer) for the ABINIT-MP log ﬁle.
The default setting is “output.abi 0 1”, which means that information for only the ﬁrst bead at each stepis printed to the ABINIT-MP log ﬁle named output.abi.
9.4.4<abinit mp reuse mo>

Used in the case of <ipotential> = ABINIT-MP. This keyword controls the initial guess of monomer, dimer,
and trimer molecular orbitals calculated in the ABINIT-MP code. Three integers should be provided in theﬁrst line, representing:• The option, “0” or “1” (integer).
– If “0”, the guess of monomer molecular orbitals is built from scratch at each step.
– If “1”, the monomer molecular orbitals of the last step is reused as the guess for those of the nextstep.
• The option, “0” or “1” (integer).
– If “0”, the guess of dimer molecular orbitals is built from scratch at each step.
– If “1”, the dimer molecular orbitals of the last step is reused as the guess for those of the nextstep.
• The option, “0” or “1” (integer).
141

– If “0”, the guess of trimer molecular orbitals is built from scratch at each step.
– If “1”, the trimer molecular orbitals of the last step is reused as the guess for those of the nextstep.
The default values are “1, 1, 0”, which means that the monomer and dimer molecular orbitals are reused
while the trimer molecular orbitals are built from scratch.
NOTE: When the orbital information is reused (with “1”), the memory space should be suﬃcient topreserve the molecular orbitals. The trimer molecular orbitals require the largest memory size.
9.4.5<alchem dat dir>Used in the case of <method> = PIHMC with <irem_type> = HX. This keyword sets the input directories of alchemical potential, which include input ﬁles for the two potentials speciﬁed by the keyword<alchem_potential>. Two strings should be provided in the ﬁrst line. The default values are “dat 1”
and “dat 2”.
9.4.6<alchem potential>

Used in the case of <method> = PIHMC with <irem_type> = HX. This keyword sets the two potentials ofalchemistry. Two characters should be provided in the ﬁrst line. The default values are “MM” and “MM”.
9.4.7<alchem scr dir>Used in the case of <method> = PIHMC with <irem_type> = HX. This keyword sets the temporary scratch
directories of alchemical potential. Two characters should be provided in the ﬁrst line. The default values
are “scr 1” and “scr 2”.
9.4.8<auto string>

Used in the case of <method> = STRING. This keyword sets the option to control the step size in string
method. When +¡auto string¿=OFF+, the step size is a constant value set by the keyword <dt>. When+¡auto string¿=ON+, the step size, initially set by the keyword <dt>, is controlled during the run. In thiscase the step size decreases or increases automatically at a step interval by monitoring the change of thehighest energy value among the images. The default value is “ON”.
9.4.9<cells phonon>

Used in the case of <method> = PHONON. This keyword sets the unit cell within the box. In the ﬁrst line,
three integers, ni , nj and nk are read, which correspond to the number of unit cells replicated in ⃗a, ⃗b and ⃗cdirections, respectively. In other words, the unit cell is comprised of Bravais lattice vectors ⃗i = ⃗a/ni , ⃗j = ⃗b/nj
and ⃗k = ⃗c/nk . The default value is “1, 1, 1” (the box is the unit cell).
9.4.10<cluster>

Used in the case of <mech_type> = CLUSTER This keyword sets the parameters of the external force applied
to prevent from molecular evaporation under free boundary condition. In the ﬁrst line, two real numbers
should be provided, corresponding to the radius rc (bohr) and the force constant kc (hartree/bohr2 ) of thetrapping barrier. The default values are not available.

1429.4.11<cp2k lib output>

Used in the case of <ipotential> = CP2KLIB. This keyword determines the frequency of generating theoutput ﬁle named “output.cp2k”. When the serial code (pimd.x) is used, setting this to “0” or “1” will
result in a single “output.cp2k” ﬁle being generated in the “001” directory, which contains all the CP2K
output information. When the parallel code (pimd.mpi.x) is used, setting this to “0” will only generate theoutput of the ﬁrst bead in the “001” directory, while setting this to “1” will generate a directory for eachbead containing its corresponding CP2K output. Setting this to any other integer value will discard all thecontents of the “output.cp2k” ﬁle, which means it will not be written to any directory. The default value is“0”.
9.4.12<cut rec 3d>

Used in the case of <method> = MTD. This keyword sets the cutoﬀ parameter, x (real number), for the hillreconstruction in three-dimensional metadynamics. The data is read from the ﬁrst line.
The Gaussian hills are added only to the mesh points where the contributions are larger than exp(−x).
A value larger than “10.0” is recommended to suppress the error. For a value more than “37.0”, the cutoﬀ
is simply neglected. The default value is “100.0” (no cutoﬀ).
9.4.13<dftb exe command>

Used in the case of <ipotential> = DFTB. This keyword sets the execution of DFTB. The DFTB executioncommand should be provided in the ﬁrst line. The default is “dftb+”.
9.4.14<dftb lib output>

Used in the case of <ipotential> = DFTBLIB.
This keyword sets the number of calculations that will generate an output.dftb ﬁle.
If the serial code (pimd.x) is executed, setting this to “0” or “1” will result in a single ﬁle being createdin the “001” directory of the calculation, which keeps track of all the DFTB+ output.
In the case of the parallel code (pimd.mpi.x), setting this to “0” will result in only the results of the ﬁrst
bead being printed to the directory “001”. On the other hand, setting this to “1” will result in the DFTB+
output for each bead being stored in a directory with a number corresponding to the bead index.
Setting this to any other integer in both cases will result in all contents of “output.dftb” from DFTB+
being redirected to /dev/null, i.e., it will never be written.
The default value is “0”.
9.4.15<dftb version>

Used in the case of <ipotential> = DFTB. This keyword sets the version of DFTB. The DFTB version
should be provided in the ﬁrst line, either “18.2” or “19.1”. The default is “19.1”.
9.4.16<dir save aenet>

Used in the case of <ipotential> = AENET. This keyword sets the save directory for the trained networks
which are saved periodically through the setting the <istep\_save\_aenet> keyword. The default value is“saved networks”
9.4.17<dir train aenet>

Used in the case of <ipotential> = AENET. This keyword sets the scratch directory of trained networks
in AENET potential. The data should be provided in the ﬁrst line (character). The default value is“trained networks”.

1439.4.18<dosrange phonon>

Used in the case of <method> = PHONON. This keyword sets the frequency range of the phonon density ofstates to be printed in the output ﬁle phonon dos.out. Three real values should be provided in the ﬁrst line
designating the lower bound, the upper bound, and the increment frequencies in cm−1 . The default values
are “0.0” cm−1 , “5000.0” cm−1 and “5.0” cm−1 , respectively.
9.4.19<dt conv gad>

Used in the case of <method> = GAD. This keyword sets the GAD converged step size in hartree0.5 femtoseconds. The data should be provided in the ﬁrst line (real) in mass femtoseconds.
9.4.20<dt om>Used in the case of <method> = OMOPT, TESTOM. This keyword sets the time increment of Onsager-Machlup
action. The data should be provided in the ﬁrst line (real) in femtoseconds.
9.4.21<dt poly>

Used in the POLYMER code. This keyword sets the displacement of centroid images per update cycle. The
data should be provided in the ﬁrst line (real number). The default value is “0.04d0”.
9.4.22<dtemp meta>

Used in the case of <method> = MTD. This keyword sets the temperature parameter of well tempered metadynamics. A real number should be provided in the ﬁrst line in kelvin. If the value is equal to or less thanzero, well tempered metadynamics is switched oﬀ, and conventional metadynamics is chosen. The default
value is “0.0” (conventional metadynamics).
9.4.23<dual dat dir>Used in the case of <method> = PIHMC with <ipotential> = DUAL. This keyword sets the potential of
the DUAL method. Two characters, corresponding to the high-level potential and the low-level potential,
should be provided. In the second line, two characters, corresponding to the input data directory of highlevel potential and that of the low-level potential, should be provided. The default values are “dat hi” and“dat lo”.
9.4.24<dual potential>

Used in the case of <method> = PIHMC with <ipotential> = DUAL. This keyword sets the potential of the
DUAL method. Two characters, corresponding to the high-level and low-level potentials, should be provided.
The default values are “MM” and ‘MM”.
9.4.25<dual scr dir>Used in the case of <method> = PIHMC with <ipotential> = DUAL. This keyword sets the potential of the
DUAL method. Two characters, corresponding to the high-level potential and the low-level potential, should
be provided. In the second line, two characters, corresponding to the temporary execution directories ofhigh-level potential and that of the low-level potential, should be provided. The default values are “scr hi”
and “scr lo”.

144

9.4.26<efei>

Used in the case of <mech_type> = EFEI. This keyword sets the parameters of the EFEI method. In theﬁrst line, two integer and a real number should be provided, corresponding to the two atoms in which theexternal force is applied, and the strength of the force between those atoms in hartree/bohr. The positive(negative) value of the force means repulsive (attractive). The default values are not available.
9.4.27<ends poly>

Used in the POLYMER code. This keyword sets the option for end centroid images, either “FIXED” or“FREE”. The data should be provided in the ﬁrst line (character). The default value is “FIXED”.
9.4.28<ends string>

Used in the case of <method> = STRING. This keyword sets the boundary condition of the string. The data
should be provided in the ﬁrst line (character).
• For <method> = STRING:– <ends_string> = FIXED: Both ends of the string is ﬁxed.
– <ends_string> = FREE: Both ends of the string is optimized.
– <ends_string> = FREEFIXED: The reactant end is optimized while the product end is ﬁxed.
– <ends_string> = FIXEDFREE: The reactant end is ﬁxed while the product end is optimized.
The default is “FIXED”.
9.4.29<eps best>

Used in the case of <ipotential> = QMMM and <ioption_best> = 1. This keyword sets the cut oﬀ energyof the BEST method in hartree. The data should be provided in the ﬁrst line (real number). The default is“1.0e-16” hartree.
9.4.30<equation om>

Used in the case of <method> = OMOPT, TESTOM. This keyword sets the equation of motion of OnsagerMachlup action. The data should be provided in the ﬁrst line (character).
• OVERDAMPED+: Overdamped Langevin equation.
• UNDERDAMPED+: Underdamped Langevin equation.
The default is “OVERDAMPED”.
9.4.31<fc best>

Used in the case of <ipotential> = QMMM and <ioption_best> = 1. This keyword sets the force constantof the BEST method in hartree/bohr2 . The data should be provided in the ﬁrst line (real number). The
default is “25.0” hartreebohr2 .

145

9.4.32<fdiff>Used in the case of <method> = NMA, PHONON, TESTFORCE, TESTVIRIAL, OMOPT, TESTOM. This keyword
sets the ﬁnite shifts (in bohr) to compute those numerical derivatives. The data should be provided in theﬁrst line (real number).
• For <method> = NMA, PHONON: the Hessian matrix is evaluated as the numerical derivative of forces
with the ﬁnite geometric shifts, <fdiff>.
• For <method> = TESTFORCE: the force is evaluated as the numerical derivative of potential with theﬁnite geometric shifts, <fdiff>.
• For <method> = TESTVIRIAL: the virial is evaluated as the numerical derivative of potential with theﬁnite box shifts, <fdiff>.
• For <method> = OMOPT and TESTOM: the gradient of OM action is evaluated as the numerical derivativeof forces with the maximum geometric shifts, <fdiff>.
The default value is “0.0001” bohr.
9.4.33<g03 command>

Used in the case of <ipotential> = G03. This keyword sets the execution of G03. The ﬁrst line gives theG03 execution command, and the second line gives the formchk execution command. The default is “g03”and “formchk”.
9.4.34<g03 dip>

Used in the case of <ipotential> = G03. This keyword sets the option for G03 calculation of dipole moment.
The data should be provided in the ﬁrst line (integer). The dipole calculation is switched on if “1”, switchedoﬀ if “0”. The default value is “1” (on).
9.4.35<g03 grad>

Used in the case of <ipotential> = G03. This keyword sets the option for G03 calculation of potential
gradient. The data should be provided in the ﬁrst line (integer). The gradient calculation is switched on if“1”, switched oﬀ if “0”. The default value is “1” (on).
9.4.36<g09 command>

Used in the case of <ipotential> = G09. This keyword sets the execution of G09. The ﬁrst line gives theG09 execution command, and the second line gives the formchk execution command. The default is “g09”and “formchk”.
9.4.37<g09 dip>

Used in the case of <ipotential> = G09. This keyword sets the option for G09 calculation of dipole moment.
The data should be provided in the ﬁrst line (integer). The dipole calculation is switched on if “1”, switchedoﬀ if “0”. The default value is “1” (on).
9.4.38<g09 grad>

Used in the case of <ipotential> = G09. This keyword sets the option for G09 calculation of potential
gradient. The data should be provided in the ﬁrst line (integer). The gradient calculation is switched on if“1”, switched oﬀ if “0”. The default value is “1” (on).

146

9.4.39<g09 oniom>

Used in the case of <ipotential> = G09. This keyword sets the option for the use of ONIOM implemented
in G09. The data should be provided in the ﬁrst line (integer). The ONIOM is switched on if “1”, switchedoﬀ if “0”. The default value is “0” (oﬀ).
9.4.40<g16 command>

Used in the case of <ipotential> = G16. This keyword sets the execution of G16. The ﬁrst line gives theG16 execution command, and the second line gives the formchk execution command. The default is “g16”and “formchk”.
9.4.41<g16 dip>

Used in the case of <ipotential> = G16. This keyword sets the option for G16 calculation of dipole moment.
The data should be provided in the ﬁrst line (integer). The dipole calculation is switched on if “1”, switchedoﬀ if “0”. The default value is “1” (on).
9.4.42<g16 grad>

Used in the case of <ipotential> = G16. This keyword sets the option for G16 calculation of potential
gradient. The data should be provided in the ﬁrst line (integer). The gradient calculation is switched on if“1”, switched oﬀ if “0”. The default value is “1” (on).
9.4.43<g16 oniom>

Used in the case of <ipotential> = G16. This keyword sets the option for the use of ONIOM implemented
in G16. The data should be provided in the ﬁrst line (integer). The ONIOM is switched on if “1”, switchedoﬀ if “0”. The default value is “0” (oﬀ).
9.4.44<g98 command>

Used in the case of <ipotential> = G98. This keyword sets the execution of G98. The ﬁrst line gives theG98 execution command, and the second line gives the formchk execution command. The default is “g98”and “formchk”.
9.4.45<g98 dip>

Used in the case of <ipotential> = G98. This keyword sets the option for G98 calculation of dipole moment.
The data should be provided in the ﬁrst line (integer). The dipole calculation is switched on if “1”, switchedoﬀ if “0”. The default value is “1” (on).
9.4.46<g98 grad>

Used in the case of <ipotential> = G98. This keyword sets the option for G98 calculation of potential
gradient. The data should be provided in the ﬁrst line (integer). The gradient calculation is switched on if“1”, switched oﬀ if “0”. The default value is “1” (on).
9.4.47<gamess command>

Used in the case of <ipotential> = GAMESS. This keyword sets the execution of GAMESS. The ﬁrst line
gives the GAMESS execution command. The default is “rungms gamess 00 1”.

147

9.4.48<gamma gad>

Used in the case of <method> = GAD. This keyword sets the gamma value of GAD, in atomic unit. The data
should be provided in the ﬁrst line. The default is “0.1”.
9.4.49<gamma om>

Used in the case of <method> = OMOPT, TESTOM. This keyword sets the friction constant of Onsager-Machlup
action. The data should be provided in the ﬁrst line (real) in femtosecond−1 . The default is “0.00625”
femtosecond−1 .
9.4.50<generate aenet>

Used in the case of <ipotential> = AENET. This keyword sets the generate inputs in AENET potential.
Following this keyword, all the lines of AENET train input should be copied, except the AENET keyword“FILES”, the number of xsf ﬁles, and xsf ﬁle names. The default values are not available.
9.4.51<gh meta>

Used in the case of <method> = MTD. This keyword sets the height of Gaussian hills of metadynamics simulation, in kelvin (energy divided by Boltzmann constant). The data should be provided in the ﬁrst line (realnumber). In principle, this value should not be higher than the value speciﬁed by the keyword <temperature>.
The default value is “150” kelvin.
9.4.52<guess poly>

Used in the POLYMER code. This keyword sets the initial guess of centroid images from the ﬁle structure.dat,
either “LINE” (line interpolation of two ends) or “SPLINE” (spline interpolation of all images). The data
should be provided in the ﬁrst line (character). The default value is “LINE”.
9.4.53<gw meta>

Used in the case of <method> = MTD. This keyword sets the Gaussian width for each type of the collective
variable (CV). Each line gives the CV type (integer) followed by the Gaussian width (real number). The
default values are as follows.
DIST
ANGL
DIH
DIFF
CN
DCN
XYZ
DXYZ

0.100d01.000d01.000d00.100d00.025d00.025d00.100d00.100d0

!
!
!
!
!
!
!
!

width of bond distance [bohr]
width of bond angle [deg]width of dihedral angle [deg]width of bond difference [bohr]
width of coordination number [no unit]
width of difference in coordination number [no unit]
width of center of mass
width of difference in center of masses

Note that the width values are speciﬁed by the CV type, not the CV number. These values are shared for all
the CV’s speciﬁed after the keyword <nmeta>. Therefore, a full set of data with ﬁve lines should be always
given even if some of them are not used.
9.4.54<iformat trj>

This keyword sets the print option of trj.out. It could be chosen from below.
• iformat_trj = 1: trajectory is printed in 16 digits.
• iformat_trj = 2: trajectory is printed in 8 digits.
The default value is “0”.
148

9.4.55<iformat xyz>

This keyword sets the print option of trj.xyz. It could be chosen from below:• iformat_xyz = 1: print each bead conﬁguration separately.
• iformat_xyz = 2: print all beads into one conﬁguration.
• iformat_xyz = 3: print only the centroid conﬁguration.
The data should be provided in the ﬁrst line (integer). The default value is “2”.
9.4.56<igamma>

Used in the case of <method> = CMD. This keyword controls the adiabaticity in centroid molecular dynamics.
The data should be provided in the ﬁrst line (integer). The accuracy of CMD will increase as the value islarger. Note that the adiabaticity parameter, γ, is given by γ = 1/<igamma>2 . The default value is “10”.
9.4.57<ikind best>

Used in the case of <ipotential> = QMMM and <ioption_best> = 1. This keyword designates the atomic
kind in the QM/MM BEST method. The default value is “1”.
9.4.58<ikind xyz>

Used in the case of <iprint_xyz> > 0. This keyword controls the print range of atomic kinds in the output
trajectory ﬁle, trj.xyz. The minimum and maximum values of atomic kinds should be provided in the ﬁrst line
(two integers). For the maximum value of atomic kind, the value “-1” could be used to specify the numberof atomic kinds present in the system. The default values are “1, -1” (all atomic kinds).
9.4.59<iobest>Used in the case of <ipotential> = QMMM and <ioption_best> = 1. This keyword designates the atomic
kind in the QM/MM BEST method. The data should be provided in the ﬁrst line (integer). The default
value is “1”.
9.4.60<ioption best>

Used in the case of <method> > QMMM. This keyword designates the usage of the QM/MM BEST method.
The data should be provided in the ﬁrst line (integer), either 0 (oﬀ: BEST method not used) or 1 (on: BESTmethod used). The default value is “0” (oﬀ).
9.4.61<ioption meta>

Used in the case of <method> = MTD. This keyword sets the option for multiple walker metadynamics. It
could be chosen from below:• ioption_meta = 0: the hills are added for all walkers.
• ioption_meta = 1: the hills are for all walkers that are well separated. One hill is added for a walker
close to another walker.
The data should be provided in the ﬁrst line (integer). The default value is “1”.

149

9.4.62<ioption xsf aenet>

Used in the case of <ipotential> = AENET with <method> = PIHMC or <method> = REHMC. This keyword
sets the option of printing xsf ﬁles for AENET potential. It could be chosen from below:• ioption_xsf_aenet = 0: the xsf ﬁles are printed only for the accepted structures; the last accepted
structure is copied when a trial structure is rejected.
• ioption_xsf_aenet = 1: the xsf ﬁles are printed for all the trial strucutres, both for the accepted andrejected structures.
The data should be provided in the ﬁrst line (integer). The default value is “1”.
9.4.63<iorder hmc>

Used in the case of <method> = PIHMC. This keyword sets the order of Suzuki-Trotter expansion, “2” or “4”.
• iorder_hmc = 2: the second order Suzuki-Trotter expansion.
• iorder_hmc = 4: the fourth order Suzuki-Trotter expansion.
The data should be provided in the ﬁrst line. The default value is “2” (the second order).
9.4.64<iprint alc>

Used in the case of <method> = PIHMC with <irem_type> = HX. This keyword sets the print interval of thealchemical analysis to the output ﬁle alc.out. The data should be provided in the ﬁrst line (integer). The
default value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.65<iprint best>

Used in the case of <ipotential> = QMMM and <ioption_best> = 1. This keyword sets the print interval
to the output ﬁle dipole.out. The data should be provided in the ﬁrst line (integer). The default value is “1”(every step). Set to “-1” to switch oﬀ printing.
9.4.66<iprint bond>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS, REHMC. This keyword sets the print interval of the bond lengths (interatomic distances) to the output ﬁle dipole.out. The
data should be provided in the ﬁrst line (integer). The default value is “-1” (do not print).
NOTE: This analysis is not recommended when the number of atomic species is large, since the amountof computation grows quadratically.
9.4.67<iprint box>

Used in the cases of <method> = PIMD, PIHMC with <ensemble> = NPT, NTT, NPH, NTH. This keyword sets
the print interval of the following data to the output ﬁle box.out.
• For <ensemble> = NPT, NPH, the print interval of the box matrix and the pressure matrix.
• For <ensemble> = NPT, NPH, the print interval of the box matrix, the pressure matrix, the stressmatrix and the strain matrix.
The data should be provided in the ﬁrst line (integer). The default value is “-1” (do not print).

150

9.4.68<iprint cons>

Used in the case of <method> = MD. This keyword sets the print interval of the results of constrained molecular
dynamics to the output ﬁle cons.out. The data should be provided in the ﬁrst line (integer). The default
value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.69<iprint cv meta>

Used in the case of <method> = MTD. This keyword sets the print interval of the trajectory of the collective
variables to the output ﬁle cv.out. The data should be provided in the ﬁrst line (integer). The default valueis “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.70<iprint dip>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS, REHMC. This keyword sets the print interval of the dipole moments to the output ﬁle dipole.out. The data should be provided
in the ﬁrst line (integer). The default value is “-1” (do not print).
9.4.71<iprint dual>

Used in the case of <method> = PIHMC with <ipotential> = DUAL. This keyword sets the print intervalof high and low-level potentials to the output ﬁle dual.out. The data should be provided in the ﬁrst line
(integer). The default value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.72<iprint eavg>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS, REHMC. This keyword print interval of energy averages to the output ﬁle eavg.out. The data should be provided in the ﬁrst
line (integer). The default value is “-1” (do not print).
9.4.73<iprint mech>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS, REHMC. This keyword sets the print interval of energy components in the ﬁle mech.out. The data should be provided in theﬁrst line (integer). The default value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.74<iprint meta>

Used in the case of <method> = MTD. This keyword sets the print interval of energy components to the output
ﬁle meta.out. The data should be provided in the ﬁrst line (integer). The default value is “1” (every step).
Set to “-1” to switch oﬀ printing.
9.4.75<iprint mfe>

Used in the case of <method> = MFE. This keyword sets the print interval of the data of nonadiabatic meanﬁeld dynamics to the output ﬁle mfe.out. The data should be provided in the ﬁrst line (integer). The default
value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.76<iprint mom>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS, REHMC. The keyword sets the print interval of linear momentum and angular momentum to the output ﬁle momentum.out.
The data should be provided in the ﬁrst line (integer). The momentum conservation can be checked for
MD and RPMD methods without thermostats. For the free boundary condition, both linear and angular151momenta are conserved, while for the periodic boundary condition only the linear momentum is conserved.
The default value is “-1” (do not print).
9.4.77<iprint nac>

Used in the case of <method> = MFE and TFS. This keyword sets the print interval of the data of nonadiabatic
dynamics to the output ﬁle nac.out. The data should be provided in the ﬁrst line (integer). The default
value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.78<iprint oniom>

Used in the case of <ipotential> = ONIOM. The keyword sets the print interval of the potential energy
compositions to the output ﬁle oniom.out. The data should be provided in the ﬁrst line (integer). The
default value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.79<iprint poly>

Used in the POLYMER code. This keyword sets the print interval of centroid mean force during the PIMD
runs. The data should be provided in the ﬁrst line (integer). The default value is “10”.
9.4.80<iprint qmmm>

Used in the case of <ipotential> = QMMM. The keyword sets the print interval of the potential energy
compositions to the output ﬁle qmmm.out. The data should be provided in the ﬁrst line (integer). The
default value is “1” (every step). Set to “-1” to switch oﬀ printing.
9.4.81<iprint rdf>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS. This keyword sets
the print interval of the distribution of atomic pairs to the output ﬁle rdf.out. The data should be provided
in the ﬁrst line (integer). The default value is “1” (every step). Set to “-1” to switch oﬀ printing.
NOTE: The meshes is given by the keyword <params_rdf>.
NOTE: This analysis is not recommended when the number of atomic species is large, since the amountof computation grows quadratically.
9.4.82<iprint rdfbead>This keyword sets the print interval of the bead-wise distribution of atomic pairs to the output ﬁle rdfcent.out.
The data should be provided in the ﬁrst line (integer). The default value is “-1” (not printed).
NOTE: The meshes is given by the keyword <params_rdf>.
NOTE: This analysis is not recommended when the number of atomic species is large, since the amountof computation grows quadratically.
9.4.83<iprint rdfcent>This keyword sets the print interval of the centroid-wise distribution of atomic pairs to the output ﬁlerdfbead.out. The data should be provided in the ﬁrst line (integer). The default value is “-1” (not printed).
NOTE: The meshes is given by the keyword <params_rdf>.
NOTE: This analysis is not recommended when the number of atomic species is large, since the amountof computation grows quadratically.

152

9.4.84<iprint rec meta>

Used in the case of <method> = MTD. This keyword sets the print interval of free energy in metadynamics tothe output ﬁle rec.out. The data should be provided in the ﬁrst line (integer). The default value is “100”(every 100 steps). Set to “-1” to switch oﬀ.
NOTE: The accuracy of reconstructed hills in three dimensional metadynamics is controlled by the keyword <cut_rec_3d>.
9.4.85<iprint rgy>

Used in ALL cases except <method> = STATIC, NMA, PHONON, MTD, STRING, MFE, TFS, REHMC. This keyword sets the print interval of the radius of gyration to the output ﬁle rgy.out. The data should be provided
in the ﬁrst line (integer). The default value is “-1” (do not print).
9.4.86<iprint str>

Used in the cases of <method> = STRING, OMOPT. This keyword sets the print intervals of the output ﬁlesstring.xyz and string pot.out. The data should be provided in the ﬁrst line (integer). The default value is “1”(every step). Set to “-1” to switch oﬀ printing.
9.4.87<iprint tfs>

Used in the case of <method> = TFS. This keyword sets the print interval of the data of nonadiabatic surface
hopping dynamics to the output ﬁle tfs.out. The default value is “1” (every step). Set to “-1” to switch oﬀ
printing.
9.4.88<iprint xsf aenet>

Used in the case of <ipotential> = AENET. This keyword sets the print interval of xsf ﬁles which are used
to train and upgrade the AENET potential. The data should be provided in the ﬁrst line (integer). The
default value is “-1” (do not print).
9.4.89<irandom>

Used in the ALL the cases. Sometimes it is convenient to use time-dependent random numbers. This isuseful for the cases in which the initial geometry, the initial velocity, etc. are randomly generated for eachrun. The data in the ﬁrst line (integer) should be chosen from below:• <irandom> = 0: random numbers are time-independent, giving the same series of random numbers.
• <irandom> = 1: random numbers are time-dependent by generating the seed from date command.
The default value is “0”.
9.4.90<irem type>

Used in the case of <method> = REHMC. This keyword speciﬁes the type of replica exchange hybrid Monte
Carlo method. It could be chosen from the following options.
• <irem_type> = T: parallel temperatures without the replica exchange.
• <irem_type> = TX: temperature replica exchange.
• <irem_type> = HX: Hamiltonian replica exchange.
The data (character) should be speciﬁed in the ﬁrst line. The default value is “TX”.

153

9.4.91<istate init>

Used in the cases of <method> = MFE and <method> = TFS. This keyword sets the initial electronic state forthe nonadiabatic dynamics. The default value is “1” (the ground state).
9.4.92<istep adjust hmc>>

Used in the cases of <method> = PIHMC and <method> = REHMC. This keyword sets the step interval ofchanging the MD steps per Metropolis step. When it is “-1” the MD steps per Metropolis step is set
constant. The default value is “-1”.
9.4.93<istep hmc>

Used in the cases of <method> = PIHMC and <method> = REHMC. This keyword sets the number of MD steps
per Metropolis step in hybrid Monte Carlo. When it is set to be varied by istep_adjust_hmc > 0, thiskeyword sets the smallest value. The default value is “2” (every two steps).
9.4.94<istep max hmc>>

Used in the cases of <method> = PIHMC and <method> = REHMC with istep_adjust_hmc > 0. This keyword
sets the largest value of the interval of changing the MD steps per Metropolis step. The default value is “128”.
9.4.95<istep mul hmc>>

Used in the cases of <method> = PIHMC and <method> = REHMC with istep_adjust_hmc > 0. This keyword
sets the common ratio of geometric progression, respectively, for the MD steps per Metropolis step. The
default value is “2”.
9.4.96<istep save aenet>

Used in the case of <ipotential> = AENET. This keyword sets the save frequency for the trained networks. If
set to a positive integer value the trained networks will be saved in the directory set by <dir\_save\_aenet>
keyword. The trained networks will have the suﬃx “ iter XXXXXX”, where XXXXXX will be a number
indicating which iteration the saved network stems from. The default value is “-1” (do not save intermediary
networks).
9.4.97<istep train aenet>

Used in the case of <ipotential> = AENET. This keyword sets the integer i to set the step interval to train
and upgrade the AENET potential. The data should be provided in the ﬁrst line (integer). The default valueis “-1” (do not train).
9.4.98<joption meta>

Used in the case of <method> = MTD. This keyword sets the option for metadynamics. It could be chosenfrom below:• joption_meta = 0: a new hill is added every time the walker has displaced for more than 1.5 times thewidth of the hill. Otherwise a new hill is added when the time limit is reached given by the keyword<time_limit_meta>.
• joption_meta = 1: a new hill is added at constant time interval given by the keyword<time_limit_meta>.
The data should be provided in the ﬁrst line (integer). The default value is “0”.

154

9.4.99<kdisp phonon>

Used in <method> = PHONON. This keyword sets the k-points for the calculation of phonon dispersion curve.
In the ﬁrst line, the number of k-points n should be provided. Then, in each of the following n lines, three real
numbers should be provided specifying the kx , ky and kz values. The default value is “0” (not calculated).
9.4.100<kdos phonon>

Used in <method> = PHONON. This keyword sets the k-point sampling for the calculation of the vibrational
density of states. Three integers should be provided. The default values are “1, 1, 1” (Γ point only).
9.4.101<mech type>This keyword sets the use of external forces. The data in the ﬁrst line (character) should be chosen frombelow:• NONE: no external force.
• EFEI: external force explicitly included.
• CLUSTER: external force explicitly included.
• ZONE: conﬁned to a zone with half harmonic potentials.
If “EFEI” is chosen, the EFEI term
Vmech

=

−F rij ,(4)

is added to the potential. In this case, three parameters, atom i, atom j, and the force amplitude F in au(hartree/bohr), should be provided by the keyword <efei>.
If “CLUSTER” is chosen, external force is applied to prevent from molecular evaporation under freeboundary condition. This option could be used for molecular clusters. A trapping barrier
 2
1X 
kc max 0, ri,g − rc
2 i=1

(5)

ri,g = ri − rg

(6)

n

Vmech

=

is added to the potential, whereis the distance of the i-th atom from the center of mass of the molecular system,
Pn
mi ri
Pj=1
.
n
j=1 mi(7)

In this case, two parameters, the radius rc (bohr) and the force constant kc (hartree/bohr2 ) of the trapping
barrier should be provided by the keyword <cluster>.
If “ZONE” is chosen, external force is applied so as to conﬁne the set of collective variables, {q}, withina given zone. We use the sum of half-harmonic potentials with respect to the outward shift from the zone ofeach collective variable, ∆qα , namely,
Vmech =

1X
k ∆q 22 α α α(8)where kα is the force constant and∆qα = min max (0, qα − qαmax ) , qα − qαmin ) ,
155

(9)

and qαmin and qαmax are the minimum and maximum values, respectively, of the zone without external forces.
In this case, the parameters are provided by the keyword <zone>. In the ﬁrst line, number of collective
variables, n, is speciﬁed. The following n lines should contain the parameters of collective variable, either“DIST” or “CN”, in the following way:
• DIST $1 $2 $3 $4 $5... distance of atoms $1 and $2
is confined in a zone with the lower bound $3
and the upper bound $4 (in bohrs). A half-harmonic
potential with force constant $5 is applied outside
the zone.
• CN $1 $2 $3 $4 $5 $6 $7 $8... coordination number of species $1 and $2 given
as a rational function (nu, mu, req = $3, $4, $5)
is confined in a zone with the lower bound $6
and the upper bound $7. A half-harmonic potential
with force constant $8 is applied outside the zone.
The default value is “NONE’.
9.4.102<mg meta>

Used in the case of <method> = MTD. This keyword sets maximum number of Gaussian hills in metadynamics.
The data should be provided in the ﬁrst line (integer). This is necessary in the code in order to control thememory size. The default value is “50000”.
9.4.103<minxsf train aenet>

Used in the case of <ipotential> = AENET. This keyword sets the minimum number of xsf structure ﬁlesrequired to train the artiﬁcial neural network potential. The data should be provided in the ﬁrst line (integer).
The default value is 100.
9.4.104<model water>

Used in the case of <ipotential> = WATER. This keyword sets the water potential. The data should be
provided in the ﬁrst line (character). Choose one from below:• <model_water> = 1: ﬂexible SPC potential [43].
• <model_water> = 2: Reimers-Watts-Klein potential [44].
The default value is “1” (ﬂexible SPC).
NOTE: When using these water potentials, the atomic order must be “O, H, H, O, H, H, · · · ”.
NOTE: Since the ewald sum has not been implemented for these water potentials, it could be used safely
under the free boundary conditions only.
9.4.105<molpro command>

Used in the case of <ipotential> = MOLPRO. This keyword sets the execution command of MOLPRO. The
data (character) should be provided in the ﬁrst line. The default is “molpro”.
9.4.106<mopac command>

Used in the case of <ipotential> = MOPAC. This keyword sets the execution of MOPAC. The ﬁrst line gives
the MOPAC execution command. The default is “nohup /opt/mopac/mopac/MOPAC2007.out”
156

9.4.107<ncons>Used in the case of <method> = MD, AFED. This keyword sets the number of constraints followed by theparameters of each constraint. In line 1, the number constraints, n (integer), is given. In lines 2-(n + 1), theformat depends on the type of constraints. The format is as follows:• type 1: bond distance of atoms #1–#2.
“1, atom #1, atom #2, minimum distance [bohr], maximum distance [bohr]”.
• type 2: bond angle of atoms #1–#2–#3.
“2, atom #1, atom #2, atom #3, minimum angle [degrees], maximum angle [degrees]”.
• type 3: dihedral angle of atoms #1–#2–#3–#4.
“3, atom #1, atom #2, atom #3, atom #4, minimum angle [degrees], maximum angle [degrees]”.
• type 4: bond diﬀerence of atoms #1–#2 and atoms #2–#3.
“4, atom #1, atom #2, atom #3, minimum value [bohr], maximum value [bohr]”• type 5: coordination number of species #1 surrounded by species #2.
“5, spec #1, spec #2, µ, ν, equilibrium distance [bohr], minimum coordination number, maximum
coordination number”.
• type 6: diﬀerence in coordination numbers for species #1 surrounded by species #2 and #3 surroundedby #4.
“6, spec #1, spec #2, µ, ν, equilibrium distance [bohr], #3, spec #4, µ, ν, equilibrium distance [bohr],
minimum diﬀerence in coordination numbers, maximum diﬀerence in coordination numbers”.
• type 7: center of mass of species #2.
“7, xyz component (1-3), spec #1, minimum value [bohr], maximum value [bohr]”.
• type 8: diﬀerence in center of masses of species #2 and #3.
“8, xyz component (1-3), spec #1, spec #2, minimum value [bohr], maximum value [bohr]”.
The constraint types, 1–8, can be replaced by “DIST”, “ANGL”, “DIH”, “DIFF’, “CN”, “DCN”, “XYZ”
and “DXYZ”, respectively. For the deﬁnition of coordination number, see Section 11.15.1.
9.4.108<ncycle poly>

Used in the POLYMER code. This keyword sets the number of update cycles of centroid images by thestring method. The data should be provided in the ﬁrst line (integer). The default value is “1”.
9.4.109<ngrid string>

Used in the case of <method> = STRING. This keyword sets the number of ﬁne grids to interpolate between
the images of the string. The default value is “11”.
9.4.110<nmeta>Used in the case of <method> = MTD. This keyword sets the dimension of collective variables in metadynamics,
and the parameters necessary for each collective variable.
• line 1: the dimension of collective variables n.
• line 2: the parameter set of 1st collective variable.
• line 3: the parameter set of 2nd collective variable.
• line (n + 1): the parameter set of n-th collective variable.
157

In lines 2-(n + 1), the format depends on the type of collective variables. The format is as follows:• type 1: bond distance of atoms #1–#2.
“1, atom #1, atom #2”.
• type 2: bond angle of atoms #1–#2–#3.
“2, atom #1, atom #2, atom #3”.
• type 3: dihedral angle of atoms #1–#2–#3–#4.
“3, atom #1, atom #2, atom #3, atom #4”.
• type 4: bond diﬀerence of atoms #1–#2 and atoms #2–#3.
“4, atom #1, atom #2, atom #3”• type 5: coordination number of species #1 surrounded by species #2.
“5, spec #1, spec #2, µ, ν, distance [bohr]”• type 6: diﬀerence coordination numbers of species #1 surrounded by species #2 and #3 surroundedby species #4.
“6, spec #1, spec #2, µ, ν, distance [bohr], spec #3, spec #4, µ, ν, distance [bohr]”• type 7: center of mass of species #2.
“7, xyz component (1-3), spec #1”.
• type 8: diﬀerence in center of masses of species #2 and #3.
“8, xyz component (1-3), spec #1, spec #2”.
The collective variable types, 1–8, can be replaced by “DIST”, “ANGL”, “DIH”, “DIFF’, “CN”, “DCN”,“XYZ” and ‘DXYZ”, respectively. For the deﬁnition of coordination number, see Section 11.15.1.
From version 2.1.1, it is possible to set the boundary to each collective variables. Add two numbers, i.e.,the minimum value and the maximum value, at the end of each line. If these values are not set, the freeboundary is assumed.
9.4.111<nmulti>

Used in the case of <method> = MTS. This keyword controls the time increment in the multiple time scale
molecular dynamics and path integral molecular dynamics using the ONIOM or QM/MM potentials. In the
MTS method, the time step for updating the forces with respect to the layer A is given by <dt>. Meanwhile,the time step for updating the forces with respect to the layer B, and the interaction between the layers A
and B, is set to be <dt>/<nmulti>. Thus, the parameter <nmulti> is the number of updates with respect tothe changes in the layer B. In addition, the atomic masses in the layer B are set smaller that the reality, by
the scaled factor of 1/<nmulti>2 . The default value is “100”.
9.4.112<np poly>

Used in the POLYMER code. This keyword sets the parallel number with respect to centroid images. The
data should be provided in the ﬁrst line (integer). The default value is “1”.
9.4.113<nph type>

Used in the case of <ensemble> = NPH. This keyword sets the box shape of the NPH ensemble.
• For <ensemble> = NPH:
– <nph_type> = CUBIC1: Andersen’s isobaric molecular dynamics for a cubic box.
– <nph_type> = CUBIC2: Martyna’s isobaric molecular dynamics for a cubic box.

158

– <nph_type> = PPHEX: Parrinello-Rahman’s isobaric molecular dynamics for a parallel-piped hexahedron box.
The default value is “CUBIC2”.
9.4.114<npoly>Used in the POLYMER code. This keyword sets the the number of centroid images. The data should be
provided in the ﬁrst line (integer). The default value is “16”.
9.4.115<npt type>

Used in the case of <ensemble> = NPT. This keyword sets the box shape of the NPT ensemble.
• For <ensemble> = NPT:
– <npt_type> = CUBIC1: Andersen’s isobaric molecular dynamics for a cubic box.
– <npt_type> = CUBIC2: Martyna’s isobaric molecular dynamics for a cubic box.
– <npt_type> = PPHEX: Parrinello-Rahman’s isobaric molecular dynamics for a parallel-piped hexahedron box.
The default value is “CUBIC2”.
9.4.116<nref meta>

Used in the case of <method> = MTD. This keyword controls the reference step size of harmonic forces between
collective variable and ﬁctitious particle in metadynamics. The data should be provided in the ﬁrst line
(integer). The default value is “100”.
NOTE: The harmonic force is controlled by the keyword <time_fc_meta>.
9.4.117<nstate>Used in the cases of <method> = TFS and <method> = MFE. This keyword sets the number of electronic statesin nonadiabatic dynamics. The default value is “1”.
NOTE: If <nstate> = 1, both TFS and MFE methods are equal to the standard (Born-Oppenheimer)
MD of the NVE ensemble.
9.4.118<nth type>

Used in the case of <ensemble> = NTH. This keyword sets the box type of NtH ensemble.
• For <ensemble> = NTH:
– <nth_type> = CUBIC1: Andersen’s isobaric molecular dynamics for a cubic box.
– <nth_type> = CUBIC2: Martyna’s isobaric molecular dynamics for a cubic box.
– <nth_type> = PPHEX: Parrinello-Rahman’s isobaric molecular dynamics for a parallel-piped hexahedron box.
The default value is “PPHEX”.

159

9.4.119<ntt type>

Used in the case of <ensemble> = NTT. This keyword sets the box type of NtT ensemble.
• For <ensemble> = NTT:
– <ntt_type> = CUBIC1: Andersen’s isobaric molecular dynamics for a cubic box.
– <ntt_type> = CUBIC2: Martyna’s isobaric molecular dynamics for a cubic box.
– <ntt_type> = PPHEX: Parrinello-Rahman’s isobaric molecular dynamics for a parallel-piped hexahedron box.
The default value is “PPHEX”.
9.4.120<ntype aenet>

Used in the case of <ipotential> = AENET. This keyword sets the atomic types used in the artiﬁcial neuralnetwork potential. The data in the ﬁrst line (integer) should be the number of atomic types, n. The next
n lines should be the atomic type, followed by the artiﬁcial neural network potential ﬁle of the atomic type.
The default value is not available.
9.4.121<oniom dat dir>Used in the case of <ipotential> = ONIOM. This keyword sets the input directories of ONIOM method. Three
data (characters) should be provided in the ﬁrst line, corresponding to the directory names which include
the input ﬁles for the high-level calculations of subsystem A, for the low-level calculations of subsystem A,
and for the low-level calculations of the system A+B. The default value is “dat 1, dat 2, dat 3”.
9.4.122<oniom hi potential>

Used in the case of <ipotential> = ONIOM. This keyword sets the high-level potential of ONIOM method.
A data (character) should be provided in the ﬁrst line, corresponding to the the high-level potential. The
default value is “SMASH”.
9.4.123<oniom lo potential>

Used in the case of <ipotential> = ONIOM. This keyword sets the low-level potential of ONIOM method.
A data (character) should be provided in the ﬁrst line, corresponding to the the low-level potential. The
default value is “MM”.
9.4.124<oniom scr dir>Used in the case of <ipotential> = ONIOM. This keyword sets the temporary scratch directories of ONIOM
method. Three data (characters) should be provided in the ﬁrst line, corresponding to the directory names
which include the scratch ﬁles for the high-level calculations of subsystem A, for the low-level calculations ofsubsystem A, and for the low-level calculations of the system A+B. The default value is “scr 1, scr 2, scr 3”.
9.4.125<orca command>

Used in the case of <ipotential> = ORCA. This keyword sets the execution command of ORCA. The data(character) should be provided in the ﬁrst line. The default is “orca”.

160

9.4.126<params cons>

Used in the cases of <method> = MD with ncons=1, and <method> = AFED. This keyword sets the force
constants of the constraints. For each line, the type of constraint is followed by the force constant. The
default values are as follows:
DIST
ANGL
DIH
DIFF
CN
DCN
XYZ
DXYZ

1.d0
4.d-4
1.d-4
1.d0
1.d0
1.d0
1.d0
1.d0

! force constant of bond distance [hartree/bohr**2]! force constant of bond angle [hartree/degree**2]! force constant of bond dihedral [hartree/degree**2]! force constant of bond difference [hartree/bohr**2]! force constant of coordination number [hartree]! force constant of difference in coordination numbers [hartree]! force constant of center of mass [hartree/bohr**2]! force constant of difference in center of masses [hartree/bohr**2]

Note that the values are speciﬁed for the type of constraint, not the constraint itself. These values are shared
for the constraints speciﬁed after the keyword <ncons>. Therefore, the full set of data with ﬁve lines shouldbe always given even if only some of them are used.
9.4.127<params lbfgs>

Used in the cases of <method> = GEOOPT, BOXOPT, FULLOPT. This keyword sets the convergence criteria inthe limited memory BFGS method. The data (four real numbers) should be provided in the ﬁrst line. The
four numbers correspond to the maximum displacement in au (bohr), the root-mean-square displacement in
au (bohr), the maximum force in au (hartree/bohr), and the root-mean-square force in au (hartree/bohr),
respectively.
9.4.128<params rdf>

Used in the cases when <iprint_rdf> is positive. This keyword sets the meshes of the atomic pair distribution. Three real numbers should be provided in the ﬁrst line, i.e., the minimum value, the maximum value,
and the mesh size in au (bohr). The default values are “1.0, 20.0, 0.01”.
9.4.129<params rec meta>

Used in the case of <method> = MTD. This keyword sets the parameters necessary for hills reconstruction in
metadynamics. For each line, the CV type is followed by three real numbers, i.e., minimum, maximum, andmesh size of the reconstructed hills. The default values are as follows:
DIST
ANGL
DIH
DIFF
CN
DCN
XYZ
DXYZ

2.0
0.0
0.0
-3.0
0.0
0.0
2.0
2.0

5.0
180.0
360.0
3.0
3.0
3.0
5.0
5.0

0.1
6.0
12.0
0.2
0.1
0.1
0.1
0.1

!
!
!
!
!
!
!
!

min, max, mesh of bond distance [bohr]min, max, mesh of bond angle [deg]min, max, mesh of dihedral angle [deg]min, max, mesh of bond difference [bohr]min, max, mesh of coordination number [no unit]
min, max, mesh of difference in coordination numbers [no unit]
min, max, mesh of center of mass [bohr]min, max, mesh of difference in center of masses [bohr]

Note that the values are speciﬁed for the CV type, not the CV number. These values are shared for all theCV’s speciﬁed after the keyword <nmeta>. Therefore, the full set of data with ﬁve lines should be always
given even if only some of them are used.

161

9.4.130<phase0 proc>

Used when <ipotential>=PHASE/0. This keyword sets the PHASE/0 settings for parallel computation. The
three integers, ne nk ng, correspond to the number of band parallels, k point parallels, G point parallels,
respectively. 1 should be speciﬁed as the number corresponding to ng when a two-dimensional version isused. Each value should be determined so that the MPI parallel number allocated to each replica by PIMD
(np_force) is equal to the product of ne nk ng. The default is -1, 1, 1, in this case ne is adjusted to
np_force, and +nk=1+ and +ng=1+.
9.4.131<projcmf poly>

Used in the POLYMER code. This keyword sets the projection of mean forces applied to centroid images,
either “ON” (projection applied) or “OFF” (not applied). The data should be provided in the ﬁrst line
(character). The default value is “OFF”.
9.4.132<qe input file name>

Used in the case of <ipotential> = QE. This keyword sets the input ﬁle name of the QE code. The data
should be provided in the ﬁrst line.
The default value is “qe.dat”.
9.4.133<qe output>

Used in the case of <ipotential> = QE. This keyword sets the log ﬁle of the QE code. The following two
data should be provided in the ﬁrst line.
• The option, “0” or “1”. If “0”, the log ﬁle of only the ﬁrst bead is printed. If “1”, the log ﬁles of all
the beads are printed.
• The print interval n (integer). The log ﬁle is printed every n steps.
The default values are “0, 1”, which means that the ﬁrst bead is printed every step.
9.4.134<qmmm embedding>

Used in the case of <ipotential> = QMMM. This keyword sets the embedding type of electrostatic interaction
in QM/MM method. A data (character) should be provided in the ﬁrst line, either “ME” (mechanicalembedding) or “EE” (electronic embedding). The default value is “EE”.
9.4.135<qmmm dat dir>Used in the case of <ipotential> = QMMM and <qmmm_embedding> = ME. This keyword sets the input directory of QMMM method. A data (character) should be provided in the ﬁrst line, corresponding to thedirectory name which includes the input ﬁles for the QM calculations of subsystem A. The default value is“dat”.
9.4.136<qmmm potential>

Used in the case of <ipotential> = QMMM. This keyword sets the QM potential in QM/MM method. A data(character) should be provided in the ﬁrst line. The default value is “SMASH”.
9.4.137<qmmm scr dir>Used in the case of <ipotential> = QMMM and <qmmm_embedding> = ME. This keyword sets the temporary
scratch directory of QMMM method. A data (character) should be provided in the ﬁrst line, corresponding
to the directory name which includes the scratch ﬁles for the QM calculations of subsystem A. The default
value is “scr”.
162

9.4.138<ratio max hmc>>

Used in the cases of <method> = PIHMC and <method> = REHMC with istep_adjust_hmc > 0. This keyword
sets the lower bound of the target acceptance ratio. The MD steps per Metropolis step is increased if theacceptance ratio is higher than this value. The default value is “0.20”.
geometric progression, respectively, for the MD steps per Metropolis step.
9.4.139<ratio min hmc>

Used in the cases of <method> = PIHMC and <method> = REHMC with istep_adjust_hmc > 0. This keyword
sets the lower bound of the target acceptance ratio. The MD steps per Metropolis step is decreased if theacceptance ratio is lower than this value. The default value is “0.05”.
9.4.140<scan exe shell>

Used in the case of <method> = SCAN. This keyword sets the shell command executed for each structure in
the SCAN method. A data (character) should be provided in the ﬁrst line, corresponding to the part of theﬁle name of shell command (name). The ﬁle name is name.integer.sh. The integer is the bead number in three
digits. The default value is “./scan”. By default (<nbead> = 1) the ﬁle “./scan.001.sh” is executed for eachstructure. Otherwise, for instance, <nbead> = 4, the ﬁles “./scan.001.sh” “./scan.002.sh” “./scan.003.sh”
and “./scan.004.sh” are executed for bead 1, 2, 3 and 4, respectively.
9.4.141<smash command>

Used in the case of <ipotential> = SMASH. This keyword sets the execution command of SMASH.
NOTE: This option has an eﬀect only when SMASH is linked externally with PIMD.
9.4.142<smash dip>

Used in the case of <ipotential> = SMASH. This keyword sets the computation of dipole moment for the
SMASH code, either “1” (on) or “0” (oﬀ). The default value is “1” (on).
NOTE: This option has an eﬀect only when the SMASH code is linked externally with the PIMD code.
NOTE: This option is obsolete from version 2.2.0.
9.4.143<smash grad>

Used in the case of <ipotential> = SMASH. This keyword sets the computation of forces for the SMASH
code, either “1” (on) or “0” (oﬀ). The default value is “1” (on).
NOTE: This option has an eﬀect only when the SMASH code is linked externally with the PIMD code.
9.4.144<smash guess>

Used in the case of <ipotential> = SMASH. This keyword gives the option for the initial guess of molecularorbital coeﬃcients.
• <smash_guess> = PREVIOUS: molecular orbital coeﬃcients of the last step is used as the initial guess.
• <smash_guess> = PULAY: extrapolation of the molecular orbital coeﬃcients of the last four steps areused as the initial guess using Pulay’s parameter set [18].
• <smash_guess> = KOLAFA, extrapolation of the molecular orbital coeﬃcients of the last six steps areused as the initial guess using Kolafa’s parameter set [19].
The default value is PREVIOUS.

163

9.4.145<smash options>

Used in the case of <ipotential> = SMASH. This keyword sets the options of SMASH standard input. Thelines starting from ‘job’, ‘control’, etc. should be speciﬁed. The information of basis sets and electron corepotentials could be included when necessary. Exceptionally, the lines ‘geom’ and the nuclear coordinates are
not necessary.
9.4.146<smash threads>

Used in the case of <ipotential> = SMASH. This keyword sets the number of OPENMP threads used for
the SMASH code. The default value is “1”.
NOTE: This option has an eﬀect only when the SMASH code is linked externally with the PIMD code.
9.4.147<temprange phonon>

Used in the case of <method> = PHONON. This keyword sets the temperature range of phonon energy calculation. Three real numbers should be provided in the ﬁrst line, i.e., the minimum value, the maximum value,
and the increment in kelvin. The default values are “0.0, 3000.0, 10.0”.
9.4.148<temprange rem>

Used in the case of <method> = PHONON. This keyword sets the temperature range of replica exchange hybridMonte Carlo. From <nbead> and <temprange_rem>, the temperature Ti of each replica is set automaticallyi−1by the equation Ti = (Tn /T1 ) n−1 T1 , where n is the number of replicas speciﬁed in the keyword <nbead>.
The default values are “300.0, 1000.0”.
9.4.149<tension>

Used in the cases of <ensemble> = NTH, NTT. This keyword sets the tension matrix.
txx , txy , txz
txy , tyy , tyz
txz , tyz , tzz
The default values are nine zeros (zero tension).
NOTE: the tension matrix must be real and symmetric.
9.4.150<time baro>

Used in the cases of <ensemble> = NPT, NTT, NPH, NTH. This keyword controls the mass of barostat. The
mass of barostat is related to the characteristic time scale of the system. This keyword sets this time scalein femtoseconds. The data should be provided in the ﬁrst line (real number). The default value is “1000.0”
femtoseconds.
9.4.151<time cv bath>

Used in the case of <method> = MTD. This keyword sets the characteristic time scale of thermostat attached
to ﬁctitious particle in femtoseconds. The data should be provided in the ﬁrst line (real number). The default
value is “1000.0” femtoseconds.
9.4.152<time cv meta>

Used in the case of <method> = MTD. This keyword sets characteristic time scale, in femtoseconds, for theﬁctitious particle to travel 1.5 times of the Gaussian hill width, It is therefore the characteristic time intervalof adding Gaussian hills. By controlling the mass of the ﬁctitious particle, the adiabatic separation between

164the collective variables (slow) and fast all other degrees of freedom (fast) is controlled. A better adiabaticity
and thus higher accuracy should be accomplished as the <time_cv_meta> value is larger. The data should
be provided in the ﬁrst line (real number). The default value is “75.0” femtoseconds.
9.4.153<time fc meta>

Used in the case of <method> = MTD. This keyword sets time scale of oscillation, in femtoseconds, that controls
the the strength of harmonic force between collective variable and ﬁctitious particle. The value should be large
enough so that harmonic interaction is strong, keeping the collective variable and the position of ﬁctitious
particle close to each other. The data should be provided in the ﬁrst line (real number). The default valueis “30.0” femtoseconds.
NOTE: The time increment of updating of the harmonic force is controlled by the keyword <nref_meta>.
9.4.154<time limit meta>

Used in the case of <method> = MTD. This keyword sets the time limit of adding a new hill in femtoseconds.
It is recommended to set this value at least more than three times as large as the value of <time_cv_meta>.
The data should be provided in the ﬁrst line (real number). The default value is “225.0” femtoseconds, threetimes the default value of <time_cv_meta>.
9.4.155<train aenet>

Used in the case of <ipotential> = AENET. This keyword sets the train inputs in AENET potential. Following this keyword, all the lines of AENET train input should be copied, with all blank lines removed. The
default values are not available.
9.4.156<turbo command>

Used in the case of <ipotential> = TURBOMOLE. This keyword sets the execution of TURBOMOLE. Two
execution commands should be given to compute energy, forces, and dipole moment. The ﬁrst line gives theﬁrst TURBOMOLE execution command followed by the name of the ﬁrst control ﬁle. The second line gives
the second TURBOMOLE execution command followed by the name of the second control ﬁle.
9.4.157<turbo guess>

Used in the case of <ipotential> = TURBOMOLE. This keyword gives the option for the initial guess ofmolecular orbital coeﬃcients.
• <turbo_guess> = PREVIOUS: Molecular orbital coeﬃcients of the last step is used as the initial guess.
• <turbo_guess> = PULAY: Extrapolation of the molecular orbital coeﬃcients of the last four steps areused as the initial guess using Pulay’s parameter set [18].
• <turbo_guess> = KOLAFA, Extrapolation of the molecular orbital coeﬃcients of the last six steps areused as the initial guess using Kolafa’s parameter set [19].
The default value is PREVIOUS.
NOTE: For safe execution of TURBOMOLE, it is recommended to set this value to PREVIOUS.
9.4.158<user command>

Used in the case of <ipotential> = USER. This keyword gives the user execution command to calculatepotential, forces, and optionally, virial, for a given atomic positions. The default value is not available.

1659.4.159<user input file>

Used in the case of <ipotential> = USER. This keyword gives the name of the input ﬁle of user executioncommand. The input ﬁle should be in the following format. For a single bead case,
x1
x2
..
..
xn

y1
y2
..
..
yn

z1
z2
..
..
yz

(Cartesian coordinates of atom 1 in bohr)(Cartesian coordinates of atom 2 in bohr)(Cartesian coordinates of atom n in bohr)

For a multiple bead case,
x1
x2
..
xn
x1
x2
..
xn
..
..
x1
x2
..
xn

y1
y2
..
yn
y1
y2
..
yn
..
..
y1
y2
..
yn

z1
z2
..
yn
z1
z2
..
yn
..
..
z1
z2
..
yn

(Cartesian coordinates of atom 1 of bead 1 in bohr)(Cartesian coordinates of atom 2 of bead 1 in bohr)(Cartesian coordinates of atom n of bead 1 in bohr)(Cartesian coordinates of atom 1 of bead 2 in bohr)(Cartesian coordinates of atom 2 of bead 2 in bohr)(Cartesian coordinates of atom n of bead 2 in bohr)(Cartesian coordinates of atom 1 of bead m in bohr)(Cartesian coordinates of atom 2 of bead m in bohr)(Cartesian coordinates of atom n of bead m in bohr)

The default value is not available.
9.4.160<user output file>

Used in the case of <ipotential> = USER. This keyword gives the name of the output ﬁle of user executioncommand. The output ﬁle should be in the following format. For a single bead case,
pot
fx1
fx2
...
fxn
v11
v21
v31

fy1
fy2
...
fyn
v12
v22
v32

fz1
fz2
...
fyn
v13
v23
v33

(potential)(force of atom 1 in bohr)(force of atom 2 in bohr)(forces of atom n in hartree/bohr)(virial matrix in au, optional)(virial matrix in au, optional)(virial matrix in au, optional)

For a multiple bead case,
pot
fx1
fx2
...
fxn
fx1
fx2
...
fxn

fy1
fy2
...
fyn
fy1
fy2
...
fyn

fz1
fz2
...
fyn
fz1
fz2
...
fyn

(potential of bead 1)(force of atom 1 of bead 1 in bohr)(force of atom 2 of bead 1 in bohr)(force of atom n of bead 1 in hartree/bohr)(force of atom 1 of bead 2 in hartree/bohr)(force of atom 2 of bead 2 in hartree/bohr)(force of atom n of bead 2 in hartree/bohr)
166

...
...
fx1
fx2
...
fxn
v11
v21
v31

...
...
fy1
fy2
...
fyn
v12
v22
v32

...
...
fz1
fz2
...
fyn
v13
v23
v33

(force of atom 1 of bead m in hartree/bohr)(force of atom 2 of bead m in hartree/bohr)(force of atom n of bead m in hartree/bohr)(virial matrix in au, optional)(virial matrix in au, optional)(virial matrix in au, optional)

The default value is not available.
9.4.161<vasp command>

Used in the case of <ipotential> = VASP5. This keyword sets the execution command of the VASP code.
The data should be provided in the ﬁrst line. The default is “mpirun -np 4 vasp > output.vasp”.
9.4.162<vasp keyword energy>

Used in the case of <ipotential> = VASP5. This keyword sets the energy keyword in the output ﬁle of
the VASP code. The data should be provided in the ﬁrst line. The default is “FREE ENERGIE OF THE
ION-ELECTRON SYSTEM (eV)”.
9.4.163<vasp keyword gradient>

Used in the case of <ipotential> = VASP5. This keyword sets the gradient keyword in the output ﬁle of
the VASP code. The data should be provided in the ﬁrst line. The default is “POSITION TOTAL-FORCE(eV/Angst)”.
9.4.164<vasp output>

Used in the case of <ipotential> = VASP. This keyword sets the log ﬁle of the VASP code. The following
two data should be provided in the ﬁrst line.
• The option, “0” or “1”. If “0”, the log ﬁle of only the ﬁrst bead is printed. If “1”, the log ﬁles of all
the beads are printed.
• The print interval n (integer). The log ﬁle is printed every n steps.
The default values are “0, 1”, which means that the ﬁrst bead is printed every step.
9.4.165<vasp reuse wavefunction>

Used in the case of <ipotential> = VASP. This keyword controls the reuse the guess of Kohn-Sham (KS)orbitals of VASP. An integer, “0” or “1”, should be provided in the ﬁrst line. If “0”, the guess of the KS
orbitals is build from scratch at each step. If “1”, the KS molecular orbitals of the last step is reused as theguess for those of the next step. The default value is “1” (reuse).

9.5

Optional keywords in input.dat

9.5.1<components>

Used in the case of <method> = ROTOR. Also used in the prep liquid.x code. This keyword sets the molecularcomponents. The data should be given in the following format.
• The ﬁrst line: the number of molecular components, n (integer).
167

• The next n blocks: data of each molecular component.
Each of the latter block is in the following format.
• The ﬁrst line has three data. The name of the molecule (character), The number of atoms per moleculem (integer), and the molecular type (character). The molecular type is speciﬁed from the following
options.
– GENERAL: the molecule has a nonlinear structure with six degrees of freedom.
– LINEAR: the molecule has a linear structure with ﬁve degrees of freedom.
– MONOATOM: the molecule is monoatomic and it has three degrees of freedom.
• Each of the next m lines has three data, corresponding to the coordinates x, y and z of each atom inthe molecule, in bohr.
9.5.2<molecules>

Used in the case of <method> = ROTOR. Also used in the prep liquid.x code. This keyword sets the atoms ofeach molecule.
• The ﬁrst line: the number of molecules, n (integer).
• The next n lines: the name of the molecule and the atoms that belong to the molecule. The name of
the molecule must be chosen from the ones given by the keyword <component>.

9.6

Keywords in calc.dat

9.6.1<ncalc>This keyword sets the statistical analysis.
• line 1: number of variables, n.
• lines 2-(n+1): information of variables (analysis keywords, followed by integers specifying atoms orspecies and the names of output ﬁles).
The default value is “0” (no variables). The analysis keywords should be chosen from the following:• lin.atom.list, #1, #2, file name
This makes a list of bond length between atoms #1 and #2.
• angl.atom.list, #1, #2, #3, file name
This makes a list of bond angles of atoms #1-#2-#3.
• dih.atom.list, #1, #2, #3, #4, file name
This makes a list of dihedral angles of atoms #1-#2-#3-#4.
• diff.atom.list, #1, #2, #3, file name
This makes a list of bond length diﬀerence between atoms #1-#2 and atoms #2-#3.
• lin.spec.list, #1, #2, file name
This makes a list of bond length of atomic species #1 and #2.
• angl.spec.list, #1, #2, #3, file name
This makes a list of bond angles of atomic species #1-#2-#3.
• dih.spec.list, #1, #2, #3, #4, file name
This makes a list of dihedral angles of atomic species #1-#2-#3-#4.
168• diff.spec.list, #1, #2, #3, file name
This makes a list of bond length diﬀerence between atomic species #1-#2 and #2-#3.
• sdiff.spec.list, #1, #2, #3, file name
This makes a list of absolute bond length diﬀerence between atomic species #1-#2 and #2-#3.
• lin.atom.dens, #1, #2, file name
This makes a density proﬁle of bond length between atoms #1 and #2. The mesh size of the density
proﬁle is set by the keyword <params_lin_dens>.
• angl.atom.dens, #1, #2, #3, file name
This makes a density proﬁle of bond angles of atoms #1-#2-#3. The mesh size of the density proﬁleis set by the keyword <params_angl_dens>.
• dih.atom.dens, #1, #2, #3, #4, file name
This makes a density proﬁle of dihedral angles of atoms #1-#2-#3-#4. The mesh size of the density
proﬁle is set by the keyword <params_dih_dens>.
• diff.atom.dens, #1, #2, #3, file name
This makes a density proﬁle of bond length diﬀerence between atoms #1-#2 and atoms #2-#3. The
mesh size of the density proﬁle is set by the keyword <params_diff_dens>.
• sdiff.atom.dens, #1, #2, #3, file name
This makes a density proﬁle of absolute bond length diﬀerence between atoms #1-#2 and atoms #2-#3.
The mesh size of the density proﬁle is set by the keyword <params_sdiff_dens>.
• lin.spec.dens, #1, #2, file name
This makes a density proﬁle of bond length of atomic species #1 and #2. The mesh size of the density
proﬁle is set by the keyword <params_lin_dens>.
• angl.spec.dens, #1, #2, #3, file name
This makes a density proﬁle of bond angles of atomic species #1-#2-#3. The mesh size of the density
proﬁle is set by the keyword <params_angl_dens>.
• dih.spec.dens, #1, #2, #3, #4, file name
This makes a density proﬁle of dihedral angles of atomic species #1-#2-#3-#4. The mesh size of thedensity proﬁle is set by the keyword <params_dih_dens>.
• diff.spec.dens, #1, #2, #3, file name
This makes a density proﬁle of bond length diﬀerence between atomic species #1-#2 and #2-#3. The
mesh size of the density proﬁle is set by the keyword <params_diff_dens>.
• sdiff.spec.dens, #1, #2, #3, file name
This makes a density proﬁle of absolute bond length diﬀerence between atomic species #1-#2 and#2-#3. The mesh size of the density proﬁle is set by the keyword <params_sdiff_dens>.
• lin.atom.avg, #1, #2, file name
This calculates the average and dispersion values of bond length between atoms #1 and #2.
• angl.atom.avg, #1, #2, #3, file name
This calculates the average and dispersion values of bond angles of atoms #1-#2-#3.
• dih.atom.avg, #1, #2, #3, #4, file name
This calculates the average and dispersion values of dihedral angles of atoms #1-#2-#3-#4.
• diff.atom.avg, #1, #2, #3, #4, file name
This calculates the average and dispersion values of bond length diﬀerence between atoms #1-#2 and#2-#3.
169• lin.spec.avg, #1, #2, file name
This calculates the average and dispersion values of bond length between atomic species #1 and #2.
• angl.spec.avg, #1, #2, #3, file name
This calculates the average and dispersion values of bond angles of atomic species #1-#2-#3.
• dih.spec.avg, #1, #2, #3, #4, file name
This calculates the average and dispersion values of dihedral angles of atomic species #1-#2-#3-#4.
• diff.spec.avg, #1, #2, #3, #4, file name
This calculates the average and dispersion values of bond length diﬀerence between atomic species#1-#2 and #2-#3.
• xla.spec.dens, #1, #2, #3, file name
This makes two-dimensional density proﬁle between bond length of atomic species #1-#2 and bondangles of atomic species #1-#2-#3. The mesh sizes of the density proﬁle is set by the keyword<params_lin_dens> and <params_angl_dens>.
The species numbers are those in the ﬁle structure.dat. NOTE: In the calculation of bond angles and dihedral
angles, Jacobian is not included.
9.6.2<iprint calc>

This keyword sets the print interval of statistical analysis. The data should be provided in the ﬁrst line
(integer). The default value is “1” (every step).
9.6.3<iprint std calc>

This keyword sets the print interval of standard output. The data should be provided in the ﬁrst line (integer).
The default value is “100” (every 100 steps).
9.6.4<istep fin calc>

This keyword sets the ﬁnal step number read from trj.out. The data should be provided in the ﬁrst line
(integer). The default value is “-1” (the last step in trj.out).
9.6.5<istep ini calc>

This keyword sets the initial step number read from trj.out. The data should be provided in the ﬁrst line
(integer). The default is 1 (the ﬁrst step in trj.out).
9.6.6<jformat xyz>

This keyword sets the print option of xyz trajectory. One could be chosen from below:• jformat_xyz = 1: print each bead conﬁguration separately.
• jformat_xyz = 2: print all beads into one conﬁguration.
• jformat_xyz = 3: print only the centroid conﬁguration.
• jformat_xyz = 4: print only the selected bead deﬁned by the keyword <jxyz_bead>.
The data should be provided in the ﬁrst line (integer). The default value is “2”.

170

9.6.7<jorigin xyz>

This keyword sets the option of the origin in xyz trajectory. One could be chosen from below:• jorigin_xyz = 1: origin is (0.0, 0.0, 0.0).
• jorigin_xyz = 2: Cartesian coordinates of origin is deﬁned by the keyword <jxyz_origin>.
• jorigin_xyz = 3: origin is ﬁxed to an atom deﬁned by the keyword <jxyz_atom>.
The data should be provided in the ﬁrst line (integer). The default value is “1”.
9.6.8

<jprint xyz>

This keyword sets the print interval of xyz trajectory. The data should be provided in the ﬁrst line (integer).
The default is -1 (do not print).
9.6.9<jspec xyz>

Used in the cases when <jprint_xyz> is positive. This keyword speciﬁes the species to be printed in the
output ﬁle calc.xyz. Two integers should be provided in the ﬁrst line, which indicate the ﬁrst species to beprinted and the last species to be printed, respectively. Exceptionally, “-1” is the last species in the system.
The default values are “1” (ﬁrst species in the system) and “-1” (last species in the system), which meansthat all the species are printed.
9.6.10<jxyz atom>This keyword sets the central atom of xyz trajectory. This keyword is activated only when jorigin_xyz = 2.
The data should be provided in the ﬁrst line (integer). The default is 1 (the ﬁrst atom).
9.6.11<jxyz bead>This keyword sets the bead number of xyz trajectory. This keyword is activated only when iformat_xyz = 4.
The data should be provided in the ﬁrst line (integer). The default value is “1” (the ﬁrst bead).
9.6.12<jxyz origin>

This keyword sets the origin of xyz trajectory. This keyword is activated only when jorigin_xyz = 3. The
data should be provided in the ﬁrst line (integer). The default values are “0.0, 0.0, 0.0” (the origin).
9.6.13<params lin dens>This keyword sets the mesh for bond length distributions. Three real numbers should be provided in the ﬁrst
line, i.e., the minimum value, the maximum value, and the mesh size in au (bohr).
9.6.14<params angl dens>This keyword sets the mesh for bond angle distributions. Three real numbers should be provided in the ﬁrst
line, i.e., the minimum value, the maximum value, and the mesh size in degrees.
9.6.15<params dih dens>This keyword sets the mesh for dihedral angle distributions. Three real numbers should be provided in theﬁrst line, i.e., the minimum value, the maximum value, and the mesh size in degrees.

171

9.7

Keywords for MM potential in mm.dat

In the PIMD code, the molecular mechanics potential is deﬁned as follows.
Vmm=

Vlin + Vgen + Vangl + Vimpr + Vdih + Vcmap + Vlj + Ves + Vmrs + Vbuck .

(10)

Each term is associated with each keyword in the input ﬁle, mm.dat.
• Vlin : <linear_bonds>.
• Vgen : <genlin_bonds>.
• Vangl : <angular_bonds>.
• Vimpr : <improper_bonds>.
• Vdih : <dihedral_bonds>.
• Vcmap : <ncmap>, <nkind_cmap>.
• Vlj : <lennard-jones>.
• Ves : <charges>, <nbcp>, <ewald> (optionally <ewald_type> and <pme_ewald> for particle-mesh Ewald
method, and <damping> and <ewpol> for polarizable force ﬁeld).
• Vmrs : <morse>.
• Vbuck : <buckingham>.
If the keyword is not present in the ﬁle mm.dat, the corresponding contribution is assumed to be zero. For
instance, if <linear_bonds> is not present, Vlin is zero.
9.7.1<linear bonds>

This keyword sets the harmonic bond distance potential, which has the form
2
X 1 (α)  (α)(α)
klin rij − rlin
2
α=1
Nlin

Vlin

=

(11)

where
(α)

rij

=

(α)

rij

(12)

is the bond length of the α-th pair of atoms, i(α) and j (α) , with
(α)

rij

= ri(α) − rj (α) .

(13)In the ﬁle mm.dat, the parameters are given in the following way.
<linear_bonds>
Nlini(1) ,

j (1) ,

rlin ,

(1)

klin

(1)

i(2) ,···

j (2) ,

rlin ,

(2)

klin

(2)

In the ﬁrst line after the keyword <linear_bonds>, the number of terms Nlin , is given (integer). In thefollowing Nlin lines, the data for each interaction is given. Here, i and j are the interacting atoms (twointegers), rlin is the equilibrium bond distance in bohr (real number), and klin is the force constant in
hartree/bohr2 (real number).
NOTE: Urey-Bradley potentials (1-3 bonded harmonic potentials) could be included in this class.
172

9.7.2<genlin bonds>

This keyword sets the general bond distance potential, which has the form of the Taylor series.
Ngen

Vgen

=

X


m(α)
gen
(α)
(α)
(α)
kgen
rij − rgen

(14)

α=1

In the ﬁle mm.dat, the parameters are given in the following way.
<genlin_bonds>
Ngeni(1) ,

j (1) ,

mgen ,(1)rgen ,

(1)

kgen

(1)

i(2) ,···

j (2) ,

mgen ,(2)rgen ,

(2)

kgen

(2)

In the ﬁrst line after the keyword <genlin_bonds>, the number of terms, Ngen , is given (integer). In thefollowing Ngen lines, the data for each interaction is given. Here, i and j are the interacting atoms (twointegers), mgen is the power (integer), rgen is the equilibrium bond distance in bohr (real number), and kgen
is the force constant in hartree/bohr2 (real number).
9.7.3<angular bonds>

This keyword sets the harmonic bond angle potential, which has the form
2
X 1 (α)  (α)(α)
kangl θijk − θangl
2
α=1

Nangl

Vangl

=

(15)

where the angle θijk is deﬁned as(α)

cos θijk

=

(α)

(α)

(α)

rkj

rij · rkj
rij

(α)

,

(16)

In the ﬁle mm.dat, the parameters are given in the following way.
<angular_bonds>
Nangli(1) ,

j (1) ,

k (1) ,

θangl ,

(1)

kangl

(1)

i(2) ,···

j (2) ,

k (2) ,

θangl ,

(2)

kangl

(2)

In the ﬁrst line after the keyword <angular_bonds>, the number of terms, Nangl , is given (integer). In thefollowing Nangl lines, the data for each interaction is given. Here, i, j, and k are the interacting atoms (three
integers), θangl is the equilibrium bond angle in degrees (real number), and kangl is the force constant in
hartree/degrees2 (real number).

173

9.7.4<improper bonds>

This keyword sets the harmonic improper angle potential, which has the form
2
X 1 (α)  (α)(α)
kimpr χijkl − χimpr .
2
α=1

Nimpr

Vimpr

=

(17)

The improper angle, χijkl , is deﬁned as the angle between the vector normal to the i-j-k plane and the vector
normal to the j-k-l plane,(α)
cos χijkl

=

(α)

(α)

(α)

(α)

(α)

(α)

sijk · sljk

(18)

,

sljk sljk

where
(α)

sijk

= rij × rkj ,

(α)

(α)

(α)

sljk = rlj × rkj ,(19)

Note that the deﬁnition of the improper angle is the same with that of the dihedral angle. In the ﬁle mm.dat,
the parameters are given in the following way.
<improper_bonds>
Nimpri(1) ,

j (1) ,

k (1) ,

l(1) ,

χimpr ,

(1)

kimpr

(1)

i(2) ,···

j (2) ,

k (2) ,

l(2) ,

χimpr ,

(2)

kimpr

(2)

In the ﬁrst line after the keyword <improper_bonds>, the number of terms, Nimpr , is given (integer). In thefollowing Nimpr lines, the data for each interaction is given. Here, i, j, k, and l are the interacting atoms(four integers), χimpr is the equilibrium bond angle in degrees (real number), and kimpr is the force constantin hartree/degrees2 (real number).
9.7.5<dihedral bonds>

This keyword sets the dihedral angle potential, which has the formoX 1 (α) n(α)(α) (α)vdih 1 + µdih cos νdih χijkl .
2
α=1

Ndih

Vdih

=

(20)

The dihedral angle χijkl is deﬁned as the angle between the vector normal to the i-j-k plane and the vector
normal to the j-k-l plane,(α)

cos χijkl

=

(α)

(α)

(α)

(α)

sijk · sljk

.

(21)

sljk sljk

Note that the deﬁnition of the dihedral angle is the same as that of the improper angle. However, the improperand dihedral angle potentials are diﬀerent in the functional form. In the ﬁle mm.dat, the parameters are
given in the following way.

174

<dihedral_bonds>
Ndihi(1) ,

j (1) ,

k (1) ,

l(1) ,

vdih ,(1)νdih ,

(1)

µdih

(1)

i(2) ,···

j (2) ,

k (2) ,

l(2) ,

vdih ,(2)νdih ,

(2)

µdih

(2)

In the ﬁrst line after the keyword <dihedral_bonds>, the number of terms, Ndih , is given (integer). In thefollowing Ndih lines, the data for each interaction is given. Here, i, j, k, and l are the interacting atoms(four integers), χimpr is the equilibrium bond angle in degrees (real number), vdih is the rotational barrier in
hartree (real number), νdih is the degeneracy (integer), and µdih is the phase = ±1 (integer).
9.7.6<ncmap>, <nkind cmap>

This keyword sets the CMAP correction. In the ﬁle mm.dat, the parameters are given in the following way.
<ncmap>Ncmapi(1) ,
j (1) ,
k (1) ,
l(1) ,
m(1) ,
α(1)
(2)
(2)
(2)
(2)
(2)
i ,
j ,
k ,
l ,
m ,
α(2)
···
In the ﬁrst line after the keyword <ncmap>, the number of terms, Ncmap , is given (integer). In the following
Ncmap lines, the data for each interaction is given. Here, i, j, k, l, and m are atoms comprising the twodihedral angles (i − j − k − l and j − k − l − m), and α is the label of the CMAP kind, each of which is
speciﬁed as follows.
<nkind_cmap>
Mcmap
1,
(1)
(1)
(1)
(1)
Vcmap (345◦ , 345◦ )···,Vcmap (330◦ , 345◦ ),Vcmap (15◦ , 0◦ ),Vcmap (0◦ , 0◦ ),
2,
(2)
(2)
(2)
(2)
Vcmap (0◦ , 0◦ ),Vcmap (15◦ , 0◦ ),···,Vcmap (330◦ , 345◦ ),Vcmap (345◦ , 345◦ )···In the ﬁrst line after the keyword <nkind_cmap>, the number of CMAP kinds, Mcmap , is given (integer).
The data of each CMAP kind is given in the following Mcmap blocks; The CMAP kind, α, is followed by(α)

576 = 24 × 24 real numbers corresponding to the values of Vcmap (x, y) at the evenly spaced grid points in theset of dihedral angles x and y (0◦ ≤ x, y ≤ 345◦ with the interval of 15◦ ). The grid data could be separated
by lines with a divisor of 24.
9.7.7<lennard-jones>

This keyword sets Lennard-Jones (LJ) potential, which has the form

!
Nlj
Nlj
 σ (α) 12

 X
X
lj
(α)
(α)
(α)
Vlj =
Vlj
rij =
4ϵlj
−
 r(α)
α=1

α=1

ij

In the ﬁle mm.dat, the parameters are given in the following way.

175

(α)

σlj

(α)

rij

!6 



.

(22)

<lennard-jones>
Nlj
rin , routi(1) ,

j (1) ,

(1)

ϵlj ,
(2)

(1)

σlj

(2)

i(2) ,
j (2) ,
ϵlj ,
σlj
···
In the ﬁrst line after the keyword <lennard-jones>, the number of terms, Nlj , is given (integer). In thesecond line, rin and rout are the inner and the outer Lennard-Jones cutoﬀ distances (two real numbers),
respectively, which are shared by all the atomic pairs. As mentioned below, these values correspond to therange in which LJ interaction is smoothly cut oﬀ. In the following Nlj lines, the data for each interaction
is given. Here, i and j are the interacting atoms (two integers), ϵlj is the LJ energy depth in hartree (realnumber), and σlj is the LJ radius in bohr (real number).
To cutoﬀ Lennard-Jones interaction smoothly, the switching function f (r) is applied:(α)

Ṽlj (r) =(α)

Vlj (r) × f (r).

(23)

The same form of f (r) is shared for all the atomic pairs; f (r) = 1 (r ≤ rin ), f (r) = 0 (r ≥ rout ) andf (r) =

3
X

cn rn

(rin < r < rout )

(24)

n=0

with the coeﬃcients
c0

=

c1

=

c2

=

c3

=

3
2
rout
− 3rin rout,3

(rout − rin )6rin rout3,(rout − rin )−3rin − 3rout(rout − rin )
2

3 ,

3.

(25)

(rout − rin )The function smoothly decreases from f (rin ) = 1 to f (rout ) = 0. Within the inner cutoﬀ distance, r < rin ,f (r) is set to be 1, so that the switching function does not have an eﬀect. Beyond the outer cutoﬀ distance,r > rout , f (r) is set to be zero, and thus the Lennard-Jones interaction is zero.
9.7.8<charges>, <nbcp>, <ewald>

These keywords designates the electrostatic (Coulombic) potential. This potential has the form
Nchrg Nchrg

Vesnon−pol=

X X qi qj
i=1

j>i

rij

−

Nnbcp 

q q
iα jα

α=1

rij

X

1 − s(α)

(α)

.

(26)

The ﬁrst term is the electrostatic interaction between all pairs of charged atoms. The second term subtracts
the electrostatic interaction for the speciﬁc pairs of charged atoms. The second term is needed when theelectrostatic interaction is scaled down or neglected for the speciﬁc atomic pairs that belong to the same
molecule (such as 1-2, 1-3 and 1-4 bonded pairs of charged atoms).
In the ﬁle mm.dat, the parameters are given in the following way. For the ﬁrst term,176<charges>
Nchrg
1,
q1
2,
q2
···
In the ﬁrst line after the keyword <charges>, the number of charges, Nchrg , is given (integer). In the following
Nchrg lines, the data for each charge is given: i is the charged atom (integer), the value of the charge is qi(real number) in au.
For the second term,<nbcp>
Nnbcpi(1) ,
i(2) ,···

j (1) ,
j (2) ,s(1)s(2)

In the ﬁrst line after the keyword <nbcp>, the number of bonded charge pairs, Nnbcp , is given (integer). In
the following Nnbcp lines, the bonded atomic pairs i(α) and j (α) as well as the screening factor s(α) are listed.
If s(α) = 0.0 the electrostatic interaction is neglected for the atomic pairs, if s(α) = 0.5 the interaction isscaled down to 50%, and if s(α) = 1.0 the electrostatic interaction is fully included and thus there is no eﬀect.
When the periodic boundary condition is applied, the electrostatic interactions are calculated by Ewald
method. In this case, the parameters to control the precision and eﬃciency of the Ewald sum are given by
the following keyword:<ewald>1.d-8, 4.d0

0

The ﬁrst value (real number) is the precision of energy. The second value (real number) is the ratio of thecomputational time between the real space Ewald sum and the reciprocal space Ewald sum. The third value(integer) is where to include (=1) or not to include (=0) the dipole contribution of the unit cell.
9.7.9<ewald type>, <pme ewald>

For large systems, the particle mesh Ewald (PME) method can save computational time to compute theelectrostatic interactions under periodic boundary condition. In this case, specify<ewald_type>
PME(The default value for this keyword is “STANDARD”, which means that PME is not used.) The mesh sizeof PME can be controlled by the keyword<pme_ewald>
1.09
The value (real number) is a number related to the meshes per bohr. This is converted to numbers, nx , ny
and nz with which the x, y and z components of the unit cell are divided into 2nx , 2ny and 2nz meshes,
respectively.

177

9.7.10<charges>, <damping>, <ewald>, <ewpol>

These keywords designate the electrostatic potential for polarizable force ﬁeld. This potential has the form
chrg
chrg
chrg
nbcp 
q q
X µ2
X
X
X
X
scc qi qj
iα jα
i
+
+
µi tij qj +µi Tij µj −1 − s(α)
.
(α)
2αi
rij
r
α=1
i=1
i>j
i>j

Nchrg

Vespol = +

N

N

N

i̸=j

N

(27)

ij

The ﬁrst term in the rhs is the same as the non-polarizable force ﬁeld. The second term is the polarizationenergy where αi is the atomic polarizability. The third, fourth, and ﬁfth terms are the electrostatic interactions of charge-charge, charge-dipole and dipole-dipole interactions, respectively, where µi is the induced
dipole moment of atom i. These interactions are scaled by damping functions scc = scc (r), scd = scd (r) and
scd = scd (r) which are dependent on the interatomic distances r = rij at the short range and converge to
1 at the long range. The last term subtracts the electrostatic interaction for the speciﬁc pairs of charged
atoms. The last term is needed when the electrostatic interaction is scaled down or neglected for the speciﬁc
atomic pairs that belong to the same molecule (such as 1-2, 1-3 and 1-4 bonded pairs of charged atoms).
In the ﬁle mm.dat, the parameters are given in the following way. For the ﬁrst term,<charges>
Nchrg
1,
q1 ,
α1 ,
2,
q2 ,
α2 ,
···

n1
n2

In the ﬁrst line after the keyword <charges>, the number of charges, Nchrg , is given (integer). In the following
Nchrg lines, the data for each charge is given: i is the charged atom (integer), the value of the charge is qi (realnumber) in au, the value of the polarizability is αi (real number) in bohr3 , and the atom type ni (integer)
used to specify the damping function in the following manner.
<damping>
Ndampt(1) , n(1) , m(1) , f (1) , a(1) , (b(1) )t(2) , n(2) , m(2) , f (2) , a(2) , (b(2) )···In the ﬁrst line after the keyword <damping>, number of damping functions, Ndamp , is given. In the following
Ndamp lines, the data for the damping function is given: The interaction, t(i) , is either the CC (charge-charge),
CD (charge-dipole) or DD (dipole-dipole). The pair n(i) and m(1) are the atomic types speciﬁed in the keyword<charges>. The functional forme, f (i) , is either EXP (exponential Thole), LIN (linear Thole), GAU (Gaussian)[84], OSS (Ojamae-Shavitt-Singer) [85], or NONE (no damping). a(1) (and optionally b(1) ) are the parameters(real numbers) that is present in the damping functions. See Section 11.23 for the details.
For the last term,<nbcp>
Nnbcpi(1) ,
i(2) ,···

j (1) ,
j (2) ,

s(1)
s(2)

178

In the ﬁrst line after the keyword <nbcp>, the number of bonded charge pairs, Nnbcp , is given (integer). In
the following Nnbcp lines, the bonded atomic pairs i(α) and j (α) as well as the screening factor s(α) are listed.
If s(α) = 0.0 the electrostatic interaction is neglected for the atomic pairs, if s(α) = 0.5 the interaction isscaled down to 50%, and if s(α) = 1.0 the electrostatic interaction is fully included and thus there is no eﬀect.
When the periodic boundary condition is applied, the electrostatic interactions are calculated by Ewald
method. In this case, the parameters to control the precision and eﬃciency of the Ewald sum are given by
the following keyword:<ewald>1.d-8, 4.0d0,0<ewpol>1.d-8, 0.1d0
The keyword <ewald> takes care of the Ewald sum of the charge-charge interactions while <ewpol> takes
care of the Ewald sum of the charge-dipole and dipole-dipole interactions. The ﬁrst value (real number) is
the precision of energy. The second value (real number) is the ratio of the computational time between thereal space Ewald sum and the reciprocal space Ewald sum. The third value in the keyword <ewald> (integer)
is where to include (=1) or not to include (=0) the dipole contribution of the unit cell.
9.7.11<morse>This keyword sets Morse potential. This potential has the form
X

Nmrs

Vmrs

=

d(α)
mrs

h


n

oi2
(α)
(α)
(α)
1 − exp −amrs
rij − rmrs
−1 .

(28)

α=1

In the ﬁle mm.dat, the parameters are given in the following way.
<morse>Nmrs(1)i(1) ,

j (1) ,

rmrs ,(1)dmrs ,(1)amrs

i(2) ,···

j (2) ,

rmrs ,(2)dmrs ,

(2)

amrs

(2)

In the ﬁrst line after the keyword <morse>, Nmrs is the number of interactions (integer). In the following
Nmrs lines, the data for each interaction is given. Here, i and j are the interacting atoms (two integers), rmrs
is the equilibrium bond distance in bohr (real number). dmrs is the energy depth in hartree (real number),and amrs is the exponent in bohr−1 (real number).
When periodic boundary condition is applied, the minimum image convention is used without cutoﬀ.
9.7.12<buckingham>This keyword sets Buckingham potential, which has the form
X

Nbuck

Vbuck

=

α=1

buck

 NX


(α)
(α)
(α)
(α) (α)(α) −6
Vbuck rij =Abuck exp −Bbuck rij Crij.

α=1

In the ﬁle mm.dat, the parameters are given in the following way.

179

(29)

<buckingham>
Nbuck
rin , routi(1) ,

j (1) ,

abuck ,

(1)bbuck ,

(1)cbuck ,

(1)

(1)

(1)

(1)

bbuck ,
cbuck ,
i(2) ,
j (2) ,
abuck ,···In the ﬁrst line after the keyword <buckingham>, the number of terms, Nbuck , is given (integer). In the second
line, rin and rout are the inner and the outer Buckingham cutoﬀ distances (two real numbers), respectively,
which are shared by all the atomic pairs. As mentioned below, these values correspond to the range in which
the interaction is smoothly cut oﬀ. In the following Nbuck lines, the data for each interaction is given. Here,i and j are the interacting atoms (two integers), abuck , bbuck , and cbuck are the parameters in atomic units(three real numbers).
To cutoﬀ Buckingham interaction smoothly, the switching function f (r) is applied:(α)

Ṽbuck (r) =(α)

Vbuck (r) × f (r).

(30)

The same form of f (r) is shared for all the atomic pairs; f (r) = 1 (r ≤ rin ), f (r) = 0 (r ≥ rout ) andf (r) =

3
X

cn rn

(rin < r < rout )

(31)

n=0

with the coeﬃcients
c0

=

c1

=

c2

=

c3

=

3
2
rout
− 3rin rout3

(rout − rin )6rin rout,3,(rout − rin )−3rin − 3rout(rout − rin )
2

3 ,

3.

(32)

(rout − rin )The function smoothly decreases from f (rin ) = 1 to f (rout ) = 0. Within the inner cutoﬀ distance, r < rin ,f (r) is set to be 1, so that the switching function does not have an eﬀect. Beyond the outer cutoﬀ distance,r > rout , f (r) is set to be zero, and thus the Buckingham interaction is zero.

9.8

Keywords for EAM potential in eam.dat

The EAM potential has the form [45, 46]
X

Natom

Veam

=

X X

Natom Natomfsi (ρi ) +

i=1

i=1

ϕsi ,sj (rij ),

(33)

j>i

where si and sj are the atomic species of atoms i and j, respectively. The electron density ρi is a functionof the coordinates of all the surrounding atoms
X

Natom

ρi

=

j̸=i

180

ϱsj (rij ).

(34)

The electron density ϱs (r) for each species, the embedding energy fs (ρ) for each species, and the pairinteraction ϕs,s′ (r) for each pair of species are three functions that constitute the EAM potential. These
functions are given as the interpolation of tables. In the ﬁle eam.dat, the tables for ϱi (r), fs (ρ), and ϕs,s′ (r)should be given following the keywords <rhor_eam>, <frho_eam>, and <phir_eam>, respectively. The numberof reference data points, Ndp , given by the keyword <nref_eam>, should be common for ϱs (r), fs (ρ), andϕs,s′ (r) for all s and s′ . The cutoﬀ distance, rcut , given by the keyword <rcut_eam>, should be common forϱs (r) and ϕs,s′ (r) for all the atomic species.
The ADP potential has the form [49]Vadp

= Veam +

N
N X
N
3
3 X
3
2 1 X
2 1 X
1 XXµi,α +
λi,αβ −
ν2,
2 i=1 α=1
2 i=1 α=1
6 i=1 i

(35)

β=1

where
µi,α =NX

uij rij
rij α ,(36)
rij α rij β ,(37)

j(̸=i)

λi,αβ =NX

wij rijj(̸=i)

νi =

3
X
α=1

λi,αα =3 X
NX

wij rij

α=1 j(̸=i)

rij α rij α =NX2
wij rij,(38)

j(̸=i)

and rij = rij .
In addition to the functions of EAM potential, the dipole function us,s′ (r) and the quadrupole function
ws,s′ (r) for each pair of species constitute the ADP potential. These functions are given as the interpolation oftables. In the ﬁle eam.dat, the tables for us,s′ (r) and ws,s′ (r) following the keywords <ur_adp> and <wr_adp>,
respectively. The number of reference data points, Ndp , given by the keyword <nref_eam>, should be common
for us,s′ (r) and ws,s′ (r) for all s and s′ . The cutoﬀ distance, rcut , given by the keyword <rcut_eam>, should
be common for us,s′ (r) and ws,s′ (r) for all the atomic species.
9.8.1<nref eam>This keyword gives the number of data points for the tables for ϱs (r), fs (ρ), and ϕs,s′ (r). The data should
be provided in the ﬁrst line (integer).
<nref_eam>
Ndp
The number of data points, Ndp , is commonly used for all the tables given by the keyword <rhor>, <frho>and <phir>.
9.8.2<rcut eam>This keyword gives the cutoﬀ distance, rcut in Å. The data should be provided in the ﬁrst line (integer).
<rcut_eam>
rcut
The cutoﬀ distance is commonly used for all the tables given by the keyword <rhor>, <frho> and <phir>.
181

9.8.3<rhor eam>This keyword gives the tables of ϱs (r) as a function of interatomic distance r in Å, for all the atomic species
1 ≤ s ≤ Nspec where the number of atomic species Nspec by the ﬁle structure.dat. The number of data points,
Ndp , is given by the keyword <nref_eam>.
<rhor_eam>
1
Table ofr
2
Table ofr···and ϱ1 (r)(This consists of Ndp lines)and ϱ2 (r)(This consists of Ndp lines)

NOTE: The part with the r values (in Å) larger than the cutoﬀ distance rcut (in Å) is not used.
9.8.4<frho eam>This keyword gives the tables of fs (ρ) in eV, for all the atomic species 1 ≤ s ≤ Nspec where the numberof atomic species Nspec is given by the ﬁle structure.dat. The number of data points, Ndp , is given by the
keyword <nref_eam>.
<frho_eam>
1
Table ofρ
2
Table of
ρ
···

9.8.5

and f1 (ρ)(This consists of Ndp lines)

and f2 (ρ)(This consists of Ndp lines)<phir eam>This keyword gives the tables of ϕs,s′ (r) in eV as a function interatomic distance Å, for all the combinationsof atomic species, i.e., Nspec (Nspec + 1)/2 combinations (1 ≤ s ≤ Nspec and s′ ≥ s), where the number of
atomic species Nspec is given by the ﬁle structure.dat. The number of data points, Ndp , is given by the
keyword <nref_eam>.
<phir_eam>
1
1
Table ofr
1
2
Table ofr
2
2
Table ofr···and ϕ1,1 (r)(This consists of Ndp lines)and ϕ1,2 (r)(This consists of Ndp lines)and ϕ2,2 (r)(This consists of Ndp lines)

NOTE: The part with the r values (in Å) larger than the cutoﬀ distance rcut (in Å) is not used.

182

9.8.6<ur adp>

This keyword gives the tables of us,s′ (r) in eV1/2 Å−1 as a function interatomic distance Å, for all the
combinations of atomic species, i.e., Nspec (Nspec + 1)/2 combinations (1 ≤ s ≤ Nspec and s′ ≥ s), where thenumber of atomic species Nspec is given by the ﬁle structure.dat. The number of data points, Ndp , is givenby the keyword <nref_eam>.
<ur_adp>
1
1
Table of1
2
Table of2
2
Table of···r

and u1,1 (r)(This consists of Ndp lines)r

and u1,2 (r)(This consists of Ndp lines)r

and u2,2 (r)(This consists of Ndp lines)

NOTE: The part with the r values (in Å) larger than the cutoﬀ distance rcut (in Å) is not used.
9.8.7<wr adp>

This keyword gives the tables of ws,s′ (r) in eV1/2 Å−1 as a function interatomic distance Å, for all the
combinations of atomic species, i.e., Nspec (Nspec + 1)/2 combinations (1 ≤ s ≤ Nspec and s′ ≥ s), where thenumber of atomic species Nspec is given by the ﬁle structure.dat. The number of data points, Ndp , is givenby the keyword <nref_eam>.
<wr_adp>
1
1
Table of1
2
Table of2
2
Table of···r

and w1,1 (r)(This consists of Ndp lines)r

and w1,2 (r)(This consists of Ndp lines)r

and w2,2 (r)(This consists of Ndp lines)

NOTE: The part with the r values (in Å) larger than the cutoﬀ distance rcut (in Å) is not used.

9.9

Keywords for Tersoﬀ potential in tersoﬀ.dat

Tersoﬀ potential has the form [48]1 XX
fc rij Aij e−λij rij − bij ({r})Bij e−µij rij
2 i=1
NVtersoﬀ =

N

(39)

j̸=i

where we have deﬁned the functions


1


 1 1r −R
fc rij = 2 + 2 cos π Sij −Rij
ij
ij


0

rij < Rij

Rij < rij < Sijrij > Sij ,− 2n1nnij
bij ({r}) = χij 1 + γijij ζijij
,
183




(40)

(41)

ζij =

NX3

fc (rik ) g θkij ωik e−σij (rij −rik ) ,(42)

k̸=i,jand
c2ij
g θkij = 1 + 2 −
dij

c2ij

2 ,
d2ij + hij − cos θkij

(43)

with
cos θkij =rij · rikrij |rik |

.

(44)

There are 14 parameters for each pair of species:
A = Aij ,B = Bij ,lambda = λij ,n = nij ,c = cij ,d = dij ,S = Sij ,chi = χij ,gamma = γij ,h = hij ,omega = ωij ,mu = µij ,R = Rij ,sigma = σij .

(45)

These parameters are speciﬁed in the input ﬁle tersoﬀ.dat as follows. This is an example for SiC system(Parameters collected by Liu Yuxin at Jilin University).
<tersoff>
2
A
1393.60B
346.740
lambda 3.48790
mu
2.21190
gamma
1.57240e-7n0.72751c
38049.0d4.34840h-0.57058R
1.80000
S
2.10000
chi
1.00000
omega
1.00000
sigma
0.00000

1597.3111 1830.80
395.126
471.180
2.98392.47990
1.97205
1.732200.00000
1.10000e-6
0.00000
0.787340.00000
100390.0
0.00000
16.21700.00000-0.59825
2.204542.70000
2.50998
3.00000
0.97760
1.00000
1.00000
1.00000
0.00000
0.00000! eV! eV! angstrom**-1! angstrom**-1! none! none! none! none! none! angstrom! angstrom! none! none! angstrom**-3

The ﬁrst line after the keyword <tersoff> is the number of species for the parameter set, in this case n = 2.
The next 14 lines are the name of Tersoﬀ parameter followed by the data for each pair of species given inn(n + 1)/2 colomns. They should be ordered as 1-1, 1-2, · · · , 1-n, 2-2, · · · , 2-n, · · · , n-n, and be given in theunits of eV and Å. If one sets n = 0.0 for a given i-j pair (nij = 0), it is assumed that bij ({r}) = χij has aconstant value and thus the i-j pair has only two-body interaction.

9.10

Common keywords shared with constrained MD and metadynamics

9.10.1<ncons>See Section 9.4.107.
9.10.2<nref>

See Section 9.3.11.
184

9.10.3<params cons>See Section 9.4.126.

9.11

Common keywords shared in all types of AFED

9.11.1<afed type>

Used in the cases of <method> = AFED. This keyword sets the type of adiabatic free energy dynamics. The
data should be provided in the ﬁrst line (character). The options are as follows.
• GRAD: calculation of free energy gradient with a constant constraint.
• DESCENT: descent search for free energy minimum points using steepest descent method.
• ASCENT: ascent search for free energy saddle points.
• AUTO: automated search for free energy stationary points by combining DESCENT and ASCENT.
• TAMD: temperature accelerated molecular dynamics.
• LOGMFD: logarithmic mean force dynamics.
The default value is “GRAD”.
9.11.2<fenergy max afed>

Used in the cases of <method> = AFED, with <afed_type> = DESCENT, ASCENT, AUTO, TAMD, LOGMFD. This
keyword sets the upper bound of the free energy to be explored in adiabatic free energy dynamics. The data
should be provided in the ﬁrst line (real number). The default value is “0.16” hartree (about 100 kcal/mol).
9.11.3<mdcycle pro afed>

Used in all the cases of <method> = AFED. This keyword sets the ensemble of productive MD runs to computethe average free energy gradients in adiabatic free energy dynamics. The data should be provided in the ﬁrst
line (character).
• NVT: NVT ensemble.
• NVE: NVE ensemble.
The default value is “NVT”.
9.11.4<niter afed>

Used in all the cases of <method> = AFED and <afed_type> = DESCENT, ASCENT, AUTO, TAMD, LOGMFD.
• For <afed_type> = DESCENT, ASCENT, AUTO: This keyword sets the maximum number of AFED steps(iterations) in adiabatic free energy dynamics.
• For <afed_type> = TAMD, LOGMFD: This keyword sets the number of AFED steps (iterations) in temperature accelerated molecular dynamics and logarithmic mean force dynamics.
The data should be provided in the ﬁrst line (real number). The default value is “200” steps.
9.11.5<nstep pre afed>

Used in all the cases of <method> = AFED. This keyword sets the number of preliminary MD steps in adiabatic
free energy dynamics to equilibrate the system under constraint. The data should be provided in the ﬁrst
line (real number). The default value is “1000” steps.
1859.11.6<nstep pro afed>

Used in all the cases of <method> = AFED, This keyword sets the number of productive MD steps to computethe average free energy gradients in adiabatic free energy dynamics. The data should be provided in the ﬁrst
line (real number). The default value is “2000” steps.
9.11.7<params afed>

Used in all the cases of <method> = AFED. This keyword sets the parameters for the collective variables
in adiabatic free energy dynamics. For each line, the type of collective variable is followed by the fourparameters, the reference shift ∆Rdref , the lower bound Rdmin and the upper bound Rdmax . The default values
are as follows:
DIST
ANGL
DIH
DIFF
CN
DCN
XYZ
DXYZ

0.08d0
1.0d0
3.00d00.0d0
5.00d0 -180.0d0
0.04d0-3.0d00.02d00.0d0
0.02d00.0d0
0.08d01.0d0
0.08d0
1.0d0

10.0d0180.0d0
180.0d0
3.0d0
4.0d0
4.0d0
10.0d010.0d0! bond distance! bond angle! bond dihedral! difference in distances! coordination number! difference in coordination numbers! center of mass
! difference in center of masses

Note that the values are speciﬁed for the type of collective variable, not the collective variable itself. The
type of the collective variable is the same as that speciﬁed after the keyword <ncons> and <params_cons>.
The full set of data with ﬁve lines should be always given even if only some of them are used.
In the case of TADM and LOGMFD, the mass of the ﬁctitious CV particle Md is determined by ∆Rdref from
Eq.(271) or (277) in Sec. 11.17; the resultant mass values are written in logmfd.out.

9.12

Additional keywords in DESCENT, ASCENT and AUTO

9.12.1<algo ascent afed>

Used in the cases of <method> = AFED, with <afed_type> = ASCENT. This keyword sets the numerical algorithm for ascent search in adiabatic free energy dynamics. The data should be provided in the ﬁrst line
(character).
• GAD: Gentlest ascent dynamics.
• EVF: Eigenvector following.
The default value is “GAD”.
9.12.2<ascent sampling afed>

Used in the cases of <method> = AFED, with <afed_type> = ASCENT. This keyword sets the sampling ofhessian term for the ascent search in adiabatic free energy dynamics. The data should be provided in theﬁrst line (character).
• ANALYTICAL: Analytical evaluation of the hessian term.
• NUMERICAL: Numerical evaluation of the hessian term by ﬁnite diﬀerence method.
The default value is “NUMERICAL”. For numerical evaluation, the ﬁnite diﬀerence value can be controlled
by the keyword <fdiff\_sampling\_afed>.

1869.12.3<dt ascent afed>

Used in the cases of <method> = AFED with <afed_type> = ASCENT, AUTO. This keyword sets the initial
step size of ascent search in adiabatic free energy dynamics. The data should be provided in the ﬁrst line
(real number). The default value is “1.0” femtoseconds.
9.12.4<dt conv afed>

Used in the cases of <method> = AFED, with <afed_type> = DESCENT, ASCENT, AUTO. This keyword sets
the AFED step size at the convergence in adiabatic free energy dynamics. The data should be provided in
the ﬁrst line (real number). The default value is “0.05” (dimensionless).
9.12.5<dt damp afed>

Used in the cases of <method> = AFED, with <afed_type> = DESCENT, ASCENT, AUTO. This keyword sets
the damping factor, λafed , of AFED step size as approaching the convergence to a stationary point in adiabatic
free energy dynamics. The data should be provided in the ﬁrst line (real number). The default value is “0.7”(dimensionless).
9.12.6<fdiff sampling afed>

Used
in
the
cases
of
<method> = AFED,
with<afed_type> = ASCENT
and<ascent\_sampling\_afed> = NUMERICAL. This keyword sets the ﬁnite diﬀerence value used to sample numerically the hessian term for the ascent search in adiabatic free energy dynamics. The data should
be provided in the ﬁrst line (real number). The default value is “5.0”.
9.12.7<gamma ascent afed>

Used in the cases of <method> = AFED, with <afed_type> = ASCENT, AUTO. This keyword sets the parameterγ gad in the ascent search of adiabatic free energy dynamics, in hartree. The data should be provided in theﬁrst line (real number). The default value is “1.0” hartree.
9.12.8<hessian ascent afed>

Used in the cases of <method> = AFED with <afed_type> = ASCENT, AUTO. This keyword sets the option
for the evaluation of Hessian term in the ascent search of adiabatic free energy dynamics. The data should
be provided in the ﬁrst line (character), either “ANALYTICAL” or “NUMERICAL”. The default value is “NUMERICAL”.
9.12.9<niter gad2evf afed>

Used
in
the
cases
of
<method> = AFED
with<afed_type> = ASCENT, AUTO
and<algo_ascent_afed> = GAD. This keyword sets the step to switch the algorithm from GAD to EVF
as approaching the saddle point The data should be provided in the ﬁrst line (integer). The default value is“80”.
9.12.10<niter refresh afed>

Used
in
the
cases
of
<method> = AFED
with<afed_type> = ASCENT, AUTO
and<algo_ascent_afed> = GAD, EVF. This keyword sets the step interval of numerical hessian calculations, refreshing the guiding vector to be the lowest eigenvector of the hessian. The data should be provided
in the ﬁrst line (integer). The default value is “20”.

1879.12.11<nmiss auto afed>

Used in the cases of <method> = AFED, with <afed_type> = AUTO. This keyword sets the number of consecutive missed shots from each minimum, Nmiss . Exceeding this number, the new shooting starts from anotherminimum, which is listed in the ﬁle auto.ini with the label “EQ”. The data should be provided in the ﬁrst
line (integer). The default value is “5”.
9.12.12<ioption eigen afed>

Used in the cases of <method> = AFED with <afed_type> = DESCENT, ASCENT, AUTO. This keyword sets
the option for eigenvalue calculations at the free energy stationary points which are found in adiabatic freeenergy dynamics. The data should be provided in the ﬁrst line (integer).
• 1: Eigenvalues are calculated.
• 0: Eigenvalues are not calculated.
The default value is “1”.
9.12.13<nshot auto afed>

Used in the cases of <method> = AFED, with <afed_type> = AUTO. This keyword sets the maximum numberof shots from each minimum, Nshot . Exceeding this number, the new shooting starts from another minimum,
which is listed in the ﬁle auto.ini with the label “EQ”. The data should be provided in the ﬁrst line (integer).
The default value is “10”.
9.12.14<radius auto afed>

Used in the cases of <method> = AFED, with <afed_type> = AUTO. This keyword sets the reference radius in
the automated search in adiabatic free energy dynamics. The data should be provided in the ﬁrst line (realnumber). The default value is “5.0”.
9.12.15<iprint xyz afed>

Used in the cases of <method> = AFED, with <afed_type> = DESCENT, ASCENT, AUTO, TAMD, LOGMFD. This
keyword sets the print interval of molecular snapshots written in the ﬁle afed.xyz. A snapshot is taken at
the ﬁnal step of the MD run per AFED step in adiabatic free energy dynamics, temperature accelerated
molecular dynamics, and logarithmic mean force dynamics. The data should be provided in the ﬁrst line
(integer). The default value is “1” step (every AFED step). Set to “-1” to switch oﬀ.
9.12.16<iprint test afed>

Used in the cases of <method> = AFED, with <afed_type> = DESCENT, ASCENT, AUTO, TAMD, LOGMFD. This
keyword sets the print interval of mean force in the convergence test. The data should be provided in theﬁrst line (integer). The default value is “100” steps.

9.13

Additional keywords in TAMD and LogMFD

9.13.1<alpha logmfd>

Used in the case of <method> = AFED and <afed_type> = LOGMFD. This keyword sets the parameter αlog (=′′α /kB T > 0) for logarithmic mean force dynamics (α is speciﬁed by this keyword). The data should be
provided in the ﬁrst line (dimensionless real number). Note that T is the physical temperature given by the
keyword <temperature>.

188

9.13.2<dt logmfd>

Used in the case of <method> = AFED with <afed_type> = LOGMFD. This keyword sets the step size inlogarithmic mean force dynamics, ∆tcv . The data should be provided in the ﬁrst line (real number). The
default value is “1.0”.
9.13.3<dt tamd>

Used in the case of <method> = AFED with <afed_type> = TAMD. This keyword sets the step size in temperature accelerated molecular dynamics, ∆tcv . The data should be provided in the ﬁrst line (real number).
The default value is 1.0.
9.13.4<fenergy ini logmfd>

Used in the case of <method> = AFED, with <afed_type> = LOGMFD. This keyword sets the initial value ofthe free energy estimated on-the-ﬂy during the LogMFD run. This means that this keyword sets the originof the energy scale. The default value is “0.005” hartree.
9.13.5<fenergy ini tamd>

Used in the case of <method> = AFED, with <afed_type> = TAMD. This keyword sets the initial value of thefree energy estimated on-the-ﬂy during the TAMD run. This means that this keyword sets the origin of theenergy scale. The default value is “0.0” hartree.
9.13.6<gamma logmfd>

Used in the case of <method> = AFED and <afed_type> = LOGMFD. This keyword sets the parameter γlog (=′′γ kB T ) in logarithmic mean force dynamics (γ is speciﬁed by this keyword). The data should be provided′′
in the ﬁrst line (dimensionless real number). The default setting is “γ = 1/α ”, i.e., “γlog = 1/αlog ”. Notethat T is the physical temperature given by the keyword <temperature>.
9.13.7<ioption afed>

Used in the cases of <method> = AFED, with <afed_type> = TAMD, LOGMFD. This keyword sets the weight
Wl in parallel-dynamics discussed in Sec.11.17. With “1”, Wl = 1 for all the beads (replicas), while Wl is set
by Eq.(238) (see Sec.11.17) with “2”. The default value is “1” (Wl = 1 for all the beads).
9.13.8<logmfd type>

Used in the case of <method> = AFED and <afed_type> = LOGMFD. This keyword sets the type of equationof motion of logarithmic mean force dynamics. The data should be provided in the ﬁrst line. Choose one
from below:• <logmfd_type> =NVE: no thermostat is used for ﬁctitious particles.

• <logmfd_type> =NVT: single Nosé-Hoover thermostat is attached to ﬁctitious particles.

• <logmfd_type> =VS: velocity scaling (Gaussian thermostat) applied to ﬁctitious particles.

The default value is “NVE”.

189

9.13.9<mass afed>

Used in the case of <method> = AFED with <afed_type> = TAMD, LOGMFD. This keyword sets the parametersthat re-adjust the mass of the ﬁctitious CV particles. If “AUTOMATIC” is set the mass is given by default
by the keyword <params_afed>, see Sec.9.11.7. If “MANUAL” is set, the mass given by <params_afed> ismultiplied by scaling factors. The scale factor of the mass of the ith particle should be provided in the ithline below “MANUAL”. The mass values used in the LogMFD/TAMD run can be checked in the output ﬁlelogmfd.out.
9.13.10<niter bath afed>

Used in the case of <method> = AFED with <afed_type> = TAMD, LOGMFD and <tamd_type> = NVT or<logmfd_type> = NVT. This keyword sets the number of AFED steps nb which determines the time scale,τcv = nb ∆tcv , of the Nosé-Hoover thermostat attached to ﬁctitious particles in TAMD and LogMFD in the2
NVT ensemble. This sets the mass of the Nosé-Hoover thermostat, Q, from the relation, Q = DkB T τcv,
where D is the number of the ﬁctitious particles. The data should be provided in the ﬁrst line (real number).
The default value is “100” (dimensionless). Note that nb should be appropriately adjusted according to thevalue of ∆Rdref ; nb should be increased when ∆Rdref is decreased, and vice versa.
9.13.11<tamd type>

Used in the case of <method> = AFED and <afed_type> = TAMD. This keyword sets the type of equation of
motion of temperature accelerated molecular dynamics. The data should be provided in the ﬁrst line. Choose
one from below:• <tamd_type> =NVE: no thermostat is used for ﬁctitious particles.

• <tamd_type> =NVT: single Nosé-Hoover thermostat attached to ﬁctitious particles.

• <tamd_type> =VS: velocity scaling (Gaussian thermostat) applied to ﬁctitious particles.

The default value is “NVT”.
9.13.12<temperature tamd>

Used in the case of <method> = AFED with <afed_type> = TAMD. This keyword sets the temperature Ttamd
for temperature accelerated molecular dynamics. The data should be provided in the ﬁrst line (real number)in kelvin. The default value is “3000.0” kelvin.
9.13.13<start afed>

Used in the case of <method> = AFED with <afed_type> = TAMD, LOGMFD. This keyword sets the initial
position and velocity of each of ﬁctitious CV particles (variables). If “MANUAL” is set in the ﬁrst line, theinitial position and velocity of each CV particle should be given for each line (see Sec.3.13.6). If “AUTOMATIC” is instead given (default setting), the initial positions are automatically estimated from the initial
conﬁguration of the MD system, and the initial velocities are set by random numbers corresponding to thephysical temperature given by the keyword <temperature>.
9.13.14<start therm afed>

Used in the case of <method> = AFED with <afed_type> = TAMD, LOGMFD. This keyword sets the initial
position and velocity of the Nosé-Hoover thermostat variable η. If “MANUAL” is speciﬁed, its initial positionand velocity should be given (default setting is “MANUAL” with η(0) = 0 and vη (0) = 0). If “AUTOMATIC”
is instead speciﬁed, η is set to be “0” and vη is automatically set according to the preset physical temperature.

190

10

Files

The ﬁles can be categorized as follows.
• The input ﬁles: They are named as *.dat.
• The output ﬁles: Most of them are named as *.out. The exception are the trajectory ﬁles in xyz format,
trj.xyz and calc.xyz.
• The restart ﬁles: They are named as *.ini. These ﬁles are created at the end of each run. The data torestart the next run are included. In principle, these ﬁles need not be altered by the user.

10.1

Input ﬁles10.1.1

input.dat

Used in ALL calculations. This ﬁle contains the main input data which are necessary to set up the calculation.
The keyword is represented as the brackets <...>. The following line(s) after the keyword is the data to
be read by the code. The remaining parts are comment lines. The order of appearance of the keywords iscompletely arbitrary.
This ﬁle is expected to be edited by the user. However, a full set of keywords need not be contained, since
the keywords that are not present in this ﬁle is complemented by those of input default.dat. The details ofeach keyword is listed in Section 9.
10.1.2

input default.dat

Used in ALL calculations. This ﬁle contains the default values for the keywords. For those unavailable in
input default.dat must be explicitly speciﬁed in input.dat.
It is expected that this ﬁle is copied and kept unchanged. This ﬁle could be useful as a reference when
the user edits input.dat.
10.1.3

centroid.dat

NOTE: This ﬁle is only used for <input_style> = OLD (default). For <input_style> = NEW, structure.dat
is used instead.
Used in ALL calculations for initial start except <method> = STRING. This ﬁle contains a list of Cartesian
coordinates of atoms in au (bohr) as:
x y
x y
...

z
z

(of atom 1)(of atom 2)

The number of lines should be equal to the number of atoms.
10.1.4eam.dat

Used for EAM and ADP potentials, when <ipotential> = EAM, ADP, PAIR. This ﬁle contains all the parameters necessary for EAM and ADP potentials, and the tabulated pair potentials. See Section 9.8.
10.1.5

tersoﬀ.dat

Used for Tersoﬀ potentials, when <ipotential> = TERSOFF. This ﬁle contains all the parameters necessary
for Tersoﬀ potentials. See Section 9.9.

191

10.1.6

gamess.dat

Used for GAMESS potential, when <ipotential> = GAMESS. This ﬁle should be a GAMESS input ﬁle. See
Section 4.3.6.
10.1.7

g03.dat

Used for GAUSSIAN 03 potential, when <ipotential> = G03. This ﬁle should be a G03 input ﬁle. See
Section 4.3.7.
10.1.8g98.dat

Used for GAUSSIAN 98 potential, when <ipotential> = G98. This ﬁle should be a G98 input ﬁle. See
Section 4.3.7.
10.1.9mm.datUsed for MM potential, when <ipotential> = MM. This ﬁle contains all the parameters necessary for MM
potential. See Section 9.7.
10.1.10molpro.dat

Used for MOLPRO potential, when <ipotential> = MOLPRO. This ﬁle should be a MOLPRO input ﬁle. See
Section 4.3.8. See also Section 3.19.1 to perform the nonadiabatic dynamics calculations, i.e., surface hopping
dynamics and mean ﬁeld dynamics, using MOLPRO.
10.1.11mopac.dat

Used for MOPAC potential, when <ipotential> = MOPAC. This ﬁle should be a MOPAC input ﬁle. See
Section 4.3.9.
10.1.12orca.dat

Used for ORCA potential, when <ipotential> = ORCA. This ﬁle should be a ORCA input ﬁle. See Section
4.3.11.
10.1.13structure.dat

Used in ALL calculations for initial start. This ﬁle contains a list of Cartesian coordinates of atoms in thexyz format asN
unit
symbolsymbol......

x y z
x y z.......

In the ﬁrst line, N is the number of atoms (integer). In the second line, unit is an option (character), either’BOHR’ or ’ANGSTROM’. In the 3-(N + 2) lines, symbol is the atomic species, and x, y and z are theCartesian coordinates, for the respective atoms.
In the case <method> = STRING, OMOPT the list of Cartesian coordinates of atoms is duplicated, i.e., thosefor the reactant and the product. Initial guess is generated as a linear path interconnecting the reaction andthe product.

192

Basically, this ﬁle must be prepared to start a new calculation. However, when the restart ﬁle geometry.ini
is present, this ﬁle will no longer be necessary. The PIMD code always looks for the restart ﬁle geometry.ini
before looking for centroid.dat.
NOTE: This ﬁle is only used for <input_style> = NEW. For <input_style> = OLD (default), centroid.dat
is used instead.
10.1.14turbo.dat

Used for TURBOMOLE, when <ipotential> = TURBOMOLE. This ﬁle contains the set of TURBOMOLE
execution commands to perform the calculations of energy and forces, and the corresponding TURBOMOLE
control ﬁle. When this ﬁle is not found in the execution directory, the code alternatively looks for the data inthe ﬁle input.dat, or else in the ﬁle input default.dat, following the keyword <turbo_command>. The following
lines should be written.
• Hartree-Fock calculation:
dscf
grad

control.1
control.2• MP2 calculation:
dscf
mpgradcontrol.1
control.2• DFT calculation:
dscf
grad

control.1
control.2• RI-MP2 calculation:
dscf
rimp2

control.1
control.2• RI-DFT calculation:
ridft
rdgradcontrol.1
control.2• RI-CC2 calculation:
dscf
ricc2
10.1.15

control.1
control.2

TAMD(For the initial run) The following ﬁles are needed;
input.dat, input default.dat, mm.dat, centroid.dat(if <input_style> = NEW, structure.dat should be prepared instead of centroid.dat.)(For restart) The following ﬁles are needed;
input.dat, input default.dat, mm.dat, centroid.dat, geometry.ini, bath.ini, step.ini, afed.ini(if <input_style> = NEW, structure.dat should be prepared instead of centroid.dat.)
Optional ﬁles: average.ini
Note that ***.ini is overwritten at the end of the run.
193

10.1.16

LogMFD(For the initial run) The following ﬁles are needed;
input.dat, input default.dat, mm.dat, centroid.dat(if <input_style> = NEW, structure.dat should be prepared instead of centroid.dat.)(For restart) The following ﬁles are needed;
input.dat, input default.dat, mm.dat, centroid.dat, geometry.ini, bath.ini, step.ini, afed.ini(if <input_style> = NEW, structure.dat should be prepared instead of centroid.dat.)
Optional ﬁles: average.ini
Note that ***.ini is overwritten at the end of the run.

10.2

Output ﬁles10.2.1

afed.out

Used in the case of <method> = AFED. This ﬁle contains the trajectory of the collective variables. In ndimensional dynamics, each of the n lines printed corresponds to the data of each collective variable. Eachline contains the following columns:• <afed_type> = GRAD, TEST:– column 1 (step): AFED step number.
– column 2 (st): AFED status.
∗ GR: mean force calculation.
∗ TE: convergence test calculation.
– column 3 (cv): collective variable number, d.
– column 4 (r-ideal): reference position of ﬁctitious particle, Rdref .
– column 5 (r-mean): mean position of collective variable, Rd .
– column 6 (f-energy): free energy, in hartree.
– column 7 (-df/dr): mean force on ﬁctitious particle, −∂Acv /∂Rdref .
– column 8 (dr/dt): velocity of ﬁctitious particle, dRdref /dt.
– column 9 (dt): AFED step size, ∆tcv .
• <afed_type> = ASCENT, DESCENT, AUTO:– column 1 (step): AFED step number.
– column 2 (st): AFED status.
∗ DE: descent trajectory to free energy minimum point.
∗ D1: descent trajectory started in +n direction from free energy saddle point to free energy
minimum point.
∗ D2: descent trajectory started in −n direction from free energy saddle point to free energy
minimum point.
∗ AS: ascent trajectory to search for free energy saddle point.
∗ EQ: free energy minimum point.
∗ TS: free energy saddle point.
∗ HI: point ended where free energy exceeds limit deﬁned by the keyword <fenergy_max_afed>.
∗ OB: point ended where cv is out of bounds deﬁned by the keyword <params_afed>.
194

– column 3 (cv): collective variable number, d.
– column 4 (r-ideal): reference position of ﬁctitious particle, Rdref .
– column 5 (r-mean): mean position of collective variable, Rd .
– column 6 (f-energy): free energy, in hartree.
– column 7 (-df/dr): mean force on ﬁctitious particle, −∂Acv /∂Rdref .
– column 8 (dr/dt): velocity of ﬁctitious particle, dRdref /dt.
– column 9 (dt): AFED step size, ∆tcv .
– column 10 (n): unit vector, n.
∗ In ascent trajectory, guiding vector n.
∗ In descent trajectory, n is parallel to mean force −∂Acv /∂Qdref .
– column 11 (xi): angle ξ.
• <afed_type> = TAMD, LOGMFD:– column 1 (step): AFED step number.
– column 2 (st): AFED status.
∗ TA: TAMD trajectory.
∗ LO: LogMFD trajectory.
∗ HI: point ended where free energy exceeds limit deﬁned by the keyword <fenergy_max_afed>.
∗ OB: point ended where cv is out of bounds deﬁned by the keyword <params_afed>.
– column 3 (cv): collective variable number, d.
– column 4 (r-ideal): reference position of ﬁctitious particle, Rdref .
– column 5 (r-mean): mean position of collective variable, Rd .
– column 6 (f-energy): free energy, in hartree.
– column 7 (-df/dr): mean force on ﬁctitious particle, −∂Acv /∂Rdref .
– column 8 (dr/dt): velocity of ﬁctitious particle, dRdref /dt.
– column 9 (h-energy): total hamiltonian, H tamd or H log .
– column 10 (temp): instantaneous temperature of ﬁctitious particle.
The ﬁle is appended for restarted runs.
10.2.2

afed.xyz

The molecular snapshots at the end of each AFED iteration in xyz format. The data is printed <nbead>times for multiple beads. The ﬁle is appended for restarted runs.
10.2.3

afed weight.out

Used in the case of <method> = AFED with <afed_type> = LOGMFD. The weight Wl in parallel-dynamics(discussed in Sec.11.17) is written every AFED step in afed weight.out. The ﬁle is appended for restarted
runs.

195

10.2.4

alc.out

Used in the case of <method> = PIHMC with <irem_type> = HX. This ﬁle contains the alchemical analysis.
The print interval can be controlled by the keyword <iprint_alc>.
• For <method> = PIHMC with <irem_type> = HX:– column 1: the step number.
– column 2: the free energy diﬀerence.
– column 3: the potential energy diﬀerence.
– column 4: the entropy diﬀerence.
– column 5: the cumulative average of the free energy diﬀerence.
– column 6: the cumulative average of the potential energy diﬀerence.
– column 7: the cumulative average of the entropy diﬀerence.
10.2.5

best.out

Used in the case of <ipotential> = QMMM and <ioption_best> = 1. This ﬁle contains the data in the
BEST method. The print interval can be controlled by the keyword <iprint_best>. Each line contains thefollowing ﬁve columns:• column 1: the step number.
• column 2: number boundary atoms.
• column 3: number boundary atoms in the QM region.
• column 4: number boundary atoms in the MM region.
• column 5: bias potential in BEST.
For <nbead> = n, the data is repeated n times.
10.2.6bond.out

Used in the cases of <method> = MD, PIMD, PIHMC, REHMC. This ﬁle contains the bond length data. The
print interval can be controlled by the keyword <iprint_bond>.
• For <method> = MD, PIMD and <method> = PIHMC with iorder_hmc = 2:
– column 1: the step number.
– columns 2-3: the atomic species pairs deﬁned in structure.dat.
– columns 4-6: the bond lengths associated with the Kubo, centroid, and bead correlation functions, respectively.
– columns 7-9: the mean square values of bond lengths associated with the Kubo, centroid, andbead correlation functions, respectively.
– columns 10-12: the cumulative averages of bond lengths associated with the Kubo, centroid,and bead correlation functions, respectively.
– columns 13-15: the cumulative averages of mean square of bond lengths associated with the
Kubo, centroid, and bead correlation functions, respectively.
• For <method> = PIHMC with iorder_hmc = 4:
– column 1: the step number.
196

– column 2-3: the atomic species pairs deﬁned in structure.dat.
– column 4: the bond lengths.
– column 5: the 2nd-order contribution to the bond length.
– column 6: the 4th-order contribution to the bond length.
– column 7: the cumulative averages of the bond length.
– column 8: the cumulative averages of the 2nd order contribution to the bond length.
– column 9: the cumulative averages of the 4th order contribution to the bond length.
• For <method> = REHMC:– column 1: the step number.
– column 2: the bead number.
– columns 3-4: the atomic species pairs deﬁned in structure.dat.
– column 5: the bond lengths.
– column 6: the mean square values of bond lengths.
– column 7: the cumulative averages of bond lengths.
– column 8: the cumulative averages of mean square of bond lengths.
NOTE: This analysis is not recommended when the number of atomic species is large, since the amountof computation grows quadratically.
10.2.7

box.dcd

Used when periodic boundary conditions are in eﬀect for the system.
This binary ﬁle contains the periodic boundary box and the virial of the system. The print interval canbe controlled by the keyword <iprint_dcd>.
The ﬁle contains a 276 byte header which is similar to that of trj.dcd, the important parts are as follows• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 17-20: (int) the output interval of the box information.
• byte 269-272: (int) the number of beads.
After the header the box data is organized in the following way• byte 1-4: (int) the size of the next read (144).
• byte 5-76: (doubles [8 bytes]) the box ordered as A(1), B(1), C(1), A(2),...
• byte 77-148: (doubles [8 bytes]) the virial ordered as the box.
This data is repeated the number of beads times if there are more than one bead in the calculation.
10.2.8box.out

Used in the cases of <ensemble> = NPH, NPT, NTH, NTT. This ﬁle contains the trajectory of the box matrix.
The print interval can be controlled by the keyword <iprint_box>.
• For <method> = NPH, NPT:– line 1, column 1: the step number.
– line 1, column 2: the volume.
197

– line 1, column 3: the volume average.
– line 2-4, column 1-3: the box matrix.
– line 2-4, column 4-6: the average of box matrix.
– line 5, column 1: the step number.
– line 5, column 2: the isotropic pressure.
– line 5, column 3: the average of isotropic pressure.
– line 6-8, column 1-3: the pressure matrix.
– line 6-8, column 4-6: the average of pressure matrix.
• For <method> = NTH, NTT:– line 1, column 1: the step number.
– line 1, column 2: the volume.
– line 1, column 3: the volume average.
– line 2-4, column 1-3: the box matrix.
– line 2-4, column 4-6: the average of box matrix.
– line 5, column 1: the step number.
– line 5, column 2: the isotropic pressure.
– line 5, column 3: the average of isotropic pressure.
– line 6-8, column 1-3: the pressure matrix.
– line 6-8, column 4-6: the average of pressure matrix.
– line 9, column 1: the step number.
– line 9, column 2: the isotropic stress.
– line 9, column 3: the average of isotropic stress.
– line 10-12, column 1-3: the stress matrix.
– line 10-12, column 4-6: the average of stress matrix.
– line 13, column 1: the step number.
– line 13, column 2: the isotropic strain.
– line 13, column 3: the average of isotropic strain.
– line 14-16, column 1-3: the strain matrix.
– line 14-16, column 4-6: the average of strain matrix.
10.2.9calc.xyz

Used in the analysis code, calc.x. This ﬁle contains the trajectory in xyz format. The print interval can becontrolled by the keyword <jprint_xyz> in calc.dat. For <nbead> = n, the data is repeated n times. The
output is controlled by the keywords <jformat_xyz> and <jorigin_xyz> in calc.dat.

198

10.2.10

charges.dcd

In this binary ﬁle in currently only output for CP2K calculations. It contains the Mulliken and Hirshfeld
charges of each atom in the frames printed by PIMD in accorance with the iprint dcd keyword.
The ﬁle contains a 276 byte header which is similar to that of trj.dcd, the important parts are as follows• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 17-20: (int) the output interval of the box information.
• byte 269-272: (int) the number of beads.
After the header the box data is organized in the following way, where N is equal to 4 times the number ofatoms.
• byte 1-4: (int) the size of the next read (8 * numatoms * numbeads).
• Next N bytes: (ﬂoats [4 bytes]) the Mulliken charges of the atoms.
• Next N bytes: (ﬂoats [4 bytes]) the Hirshfeld charges of the atoms.
The two data blocks are repeated the number of beads times if there are more than one bead in the calculation.
10.2.11

cons.out

Used in the case of <method> = MD with <cons> = 1. This ﬁle contains the information of constraints. The
print interval can be controlled by the keyword <iprint_cons>. When n constraints are applied, each of then lines printed corresponds to the data of each constraint. Each line contains the following ten columns:• For <method> = MD:– column 1: the step number.
– column 2: the equilibrium value of constraint.
– column 3: the actual value of constraint.
– column 4: the force applied to the constraint.
– column 5: the average value of column 3.
– column 6: the average value of column 4.
– column 7: the potential of mean force with respect to the constraints.
– column 8: the potential of mean force with respect to the constraints plus the correction.
– column 9: the shortest distance between two groups restrained by coordination number (zero if
no coordination restrain is set).
– column 10: the average value of column 9.
For <nbead> = n, the data is repeated n times.
10.2.12

cv.outUsed in the case of <method> = MTD. This ﬁle contains the trajectory of the collective variables. The printinterval can be controlled by the keyword <iprint_cv>. In n-dimensional metadynamics, each of the n lines
printed corresponds to the data of each collective variable. Each line contains the following three columns:• For <method> = MTD:
– column 1: the step number.
– column 2: the coordinate of collective variable.
– column 3: the coordinate of ﬁctitious particle.
For metadynamics with n walkers, the data is repeated n times.
199

10.2.13

dip.dcd

Used in ALL methods. This binary ﬁle contains the dipole moment. The print interval can be controlled
by the keyword <iprint_dcd>. If the method does not calculate the dipole all zeroes are printed using thesame format as described below.
The ﬁle contains a 276 byte header which is similar to that of trj.dcd, the important parts are as follows• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 17-20: (int) the output interval of the dipole information.
• byte 269-272: (int) the number of beads.
After the header the dipole data is organized in the following way• byte 1-4: (int) the size of the next read (24).
• byte 5-28: (doubles [8 bytes]) the X, Y, Z dipole of the moleculeThis is repeated for each bead.
10.2.14dipole.out

Used in ALL methods. This ﬁle contains the dipole moment. The print interval can be controlled by the
keyword <iprint_dip>.
• For all methods used:– column 1: the step number.
– column 2-4: the x, y and z components of the dipole moment, (µx , µy , µz ), in au.
For <nbead> = n, the data is repeated n times.
10.2.15

dipole scan.out

Used in <method> = SCAN. This ﬁle contains the dipole moment.
• The following data is repeated for each static calculations:– column 1: the step number.
– column 2-4: the x, y, and z components of the dipole moment, (µx , µy , µz ), in au.
For multiple beads <nbead> = P , the data is repeated P times.
10.2.16

dual.out

Used in the case of <method> = PIHMC with <ipotential> = DUAL. This contains the energies in the highand low-level methods. The print interval can be controlled by the keyword <iprint_dual>.
• For <method> = PIHMC with <ipotential> = DUAL:– column 1: the step number.
– column 2: high-level potential.
– column 3: low-level potential.
For <nbead> = n, the data is repeated n times.

200

10.2.17

eavg.out

Used in the cases of <method> = MD, PIMD, PIHMC, REHMC. This ﬁle contains the energy components. The
print interval can be controlled by the keyword <iprint_eavg>.
• For <method> = MD:– column 1: step number.
– column 2: potential energy.
– column 3: kinetic energy.
– column 4: total energy = the sum of columns 2 and 3.
– column 5-7: cumulative averages of columns 2-5.
– column 8: speciﬁc heat (NVT) in kB units.
• For <method> = PIMD, PIHMC:– column 1: step number.
– column 2: potential energy.
– column 3: kinetic energy by primitive estimator.
– column 4: kinetic energy by virial estimator.
– column 5: total energy = the sum of columns 2 and 4.
– column 6-9: cumulative averages of columns 2-5.
– column 10: speciﬁc heat (NVT) in kB units.
• For <method> = REHMC:– column 1: step number.
– column 2: bead number.
– column 3: potential energy.
– column 4: cumulative average of potential energy.
10.2.18

forces.out

Used in <method> = STATIC. This ﬁle contains the potential energy and forces.
• For all methods used:– line 1: the potential energy in au (hartree).
– line 2: the x, y, z components of the force (negative sign of the potential gradient) of 1st atom
in au (hartree/bohr).
– line 3: the x, y, z components of the force (negative sign of the potential gradient) of 2nd atom
in au (hartree/bohr).
– line n: the x, y, z components of the force (negative sign of the potential gradient) of (n − 1)-thatom in au (hartree/bohr).
The forces are listed in the order as the initial geometry ﬁle structure.dat. For <nbead> = n, the data isrepeated n times.

201

10.2.19

forces scan.out

Used in <method> = SCAN. This ﬁle contains the forces (negative sign of the potential gradient).
• The following data is repeated for each static calculations:– column 1: the step number.
– column 2-4: the x, y, and z components of the force in au (hartree/bohr). The data consistsof block of n lines, where n is the number of atoms, and they are listed in the order speciﬁed instructure.dat.
For multiple beads, <nbead> = P , the data is repeated P times.
10.2.20

force.dcd

This binary ﬁle contains the calculated forces for the system (negative sign of the potential gradient). The
print interval can be controlled by the keyword <iprint_dcd>.
The ﬁle contains a 276 byte header which is similar to that of trj.dcd, the important parts are as follows• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 17-20: (int) the output interval of the force information.
• byte 269-272: (int) the number of beads times number of atoms.
After the header the force data is organized in the following way. If periodic boundary conditions are present,
the forces are given after the box information which is organized as follows• byte 1-4: (int) the size of the next read (48).
• byte 5-52: (doubles[8 bytes]) the box info of the system given as A, γ, B, β, α C. Where the side
lengths A,B, C are given in angstrom and the angles alpha, β and γ are given in radians.
• byte 53-56: (int) the size of the previous read (48).
The actual force data of the system is given in the following format, where N is equal to 4 times the numberof atoms times the number of beads.
• next 4 bytes: (int) the size of the next read (number of beads times number of atoms).
• next N bytes: (ﬂoats [4 bytes]) the X forces of the system.
• next 4 bytes: the size of the previous read.
This is repeated for the Y and Z forces of the system. The order of the atoms is the same as the template.xyz
ﬁle. All forces are given in atomic units.
10.2.21

force high.dcd

This binary ﬁle contains the calculated forces for the system by the high level potential. Used in the case<ipotential> = DUAL. (negative sign of the potential gradient). The print interval can be controlled by the
keyword <iprint_dcd>. This follows the same layout as the force.dcd ﬁle described above.
10.2.22

force low.dcd

This binary ﬁle contains the calculated forces for the system by the low level potential. Used in the case<ipotential> = DUAL. (negative sign of the potential gradient). The print interval can be controlled by the
keyword <iprint_dcd>. This follows the same layout as the force.dcd ﬁle described above.
202

10.2.23

hessian.out

Used in the cases of <method> = NMA, PHONON. This ﬁle contains the Hessian matrix, i.e., the second deriva2
Vtive of the potential energy, Hij = ∂r∂ ∂r.
ij• For <method> = NMA, PHONON:– column 1: the index i.
– column 2: the index j.
– column 3: Hij .
The data are printed for 1 ≤ i, j ≤ 3N where N is the number of atoms.
10.2.24

logmfd.out

Used in the case of <method> = AFED with <afed_type> = LOGMFD and TAMD. This ﬁle contains the timeseries of the collective variables, ﬁctitious CV particles, mean force, thermostat variables, and free energy.
• For <afed_type> = LOGMFD, TAMD:– column 1: AFED step number.
– column 2: free energy in hartree.
– column 3: temperature of the CV particles in Kelvin.
– column 4: Nosé-Hoover variable η.
– column 5: Nosé-Hoover variable vη .
– column (4d+2): Rd (r) for dth CV averaged over Nm MD steps (<nstep_pro_afed> = Nm ).
– column (4d+3): Rd for dth ﬁctitious CV particle.
– column (4d+4): meanforce on Rd for dth CV.
(1 ≤ d ≤ n).
Note that each line is for each AFED step, in contrast to afed out. The mass values for the CV particles andthe thermostat are presented at the head of the ﬁle. The ﬁle is appended for restarted runs.
10.2.25

mech.out

Used in the case of <method> = MTD. This ﬁle contains energy components when the external force is applied.
The print interval can be controlled by the keyword <iprint_mech>.
• For <method> = MTD:
– column 1: the step number.
– column 2: the potential energy of the system.
– column 3: the potential energy from the external force.
– column 4: the total potential energy = the sum of columns 2 and 3.

203

10.2.26

meta.out

Used in the case of <method> = MTD. This ﬁle contains energy compositions in metadynamics. The printinterval can be controlled by the keyword <iprint_meta>.
• For <method> = MTD:
– row 1: the step number,– row 2: the step number,– row 3: the step number,

P

P sys
sys
, V hills ,+ V hills .
l Vl
l Vl
P cv
P
sys
cor
,
l Vl , Vl Kl .
P cv
syscv
l Kl , Hbath , Hbath .
sys
cv– row 4: the step number, H, T

, T .

See Section 11.14 for the deﬁnitions.
10.2.27

mfe.out

Used in the case of <method> = MFE. This ﬁle contains the data of mean ﬁeld dynamics. The print interval
can be controlled by the keyword <iprint_mfe>.
• For <method> = MFE:
– column 1: the step number.
– column 2: the bead number.
– column 3: the state number.
– column 4: 0. (no meaning)– column 5: the population (state coeﬃcient) of each state.
– column 6: the occupation ratio of each state.
– column 7: the potential energy of each state.
– column 8: the average potential energy of each bead.
10.2.28

nac.out

Used in the case of <method> = TFS, MFE. This ﬁle contains the information of nonadiabatic dynamics
including:• For <method> = TFS, MFE.:– block 1 (with 2 columns): the real and imaginary parts of the state coeﬃcients (m lines).
– block 2 (with 1 column): the adiabatic potentials (m2 lines).
– block 3 (with 3 columns): the x, y, z components of the forces (n × m2 lines).
– block 4 (with 3 columns): the x, y, z components of the dipole moments (m lines).
– block 5 (with 3 columns): the x, y, z components of the nonadiabatic coupling matrix (n×m2lines).
where n is the number of atoms, and m is the number of adiabatic states. The print interval can becontrolled by the keyword <iprint_nac>. See the source ﬁle, either standard tfs.F or standard mfe.F, for thedata format.

20410.2.29

oniom.out

Used in the case of <ipotential> = ONIOM and <ipotential> = HYBRID with <hybrid> = ONIOM. This ﬁlecontains the energy components in the QM/MM calculations. The print interval can be controlled by the
keyword <iprint_oniom>.
• For <ipotential> = ONIOM:– column 1: the step number.
– column 2: the high-level potential energy of the subsystem A (or A+L) in hartrees.
– column 3: the low-level potential energy of the subsystem A (or A+L) in hartrees.
– column 4: the low-level potential energy of the whole system (A+B) in hartrees.
10.2.30

phonon dos.out

Used in the case of <method> = PHONON. This ﬁle contains the data of vibrational density of states.
• For <method> = PHONON:– column 1: the phonon frequency in cm−1 .
– column 2: the density of states.
The frequency range can be controlled by the keyword <dosrange_phonon>.
10.2.31phonon energy.out

Used in the case of <method> = PHONON. This ﬁle contains the data of vibrational energies.
• For <method> = PHONON:– column 1: the temperature in kelvin.
– column 2: the internal energy in classical Boltzmann statistics.
– column 3: the Helmholtz free energy in classical Boltzmann statistics.
– column 4: the entropy in classical Boltzmann statistics.
– column 5: the internal energy in quantum Boltzmann statistics.
– column 6: the Helmholtz free energy in quantum Boltzmann statistics.
– column 7: the entropy in quantum Boltzmann statistics.
The frequency range can be controlled by the keyword <temprange_phonon>.
10.2.32

phonon kdisp.out

Used in the case of <method> = PHONON. This ﬁle contains the data of phonon dispersion.
• For <method> = PHONON:– column 1-3: the values of k vector in bohr−1 .
– column 4: the vibrational branch index.
– column 5: the vibrational frequency in cm−1 .
The k vector is designated by the keyword <kdisp_phonon>.

205

10.2.33

phonon kdos.out

Used in the case of <method> = PHONON. This ﬁle contains the phonon frequencies obtained in the calculationof vibrational density of states.
• For <method> = PHONON:– column 1-3: the values of k vector in bohr−1 .
– column 4: the vibrational branch index.
– column 5: the vibrational frequency in cm−1 .
The k-point sampling is designated by the keyword <kdos_phonon>.
10.2.34

pot.dcdThis binary ﬁle contains the potential energy for each bead, the temperature and the Hamiltonian for thewhole system. The print interval can be controlled by the keyword <iprint_dcd>.
The ﬁle contains a 276 byte header which is similar to that of trj.dcd, the important parts are as follows• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 17-20: (int) the output interval of the potential information.
• byte 269-272: (int) the number of beads.
After the header the data is organized in the following way• byte 1-4: (int) the size of the next read (8 times (2 plus the number of beads).
• byte 5-: (doubles [8 bytes]) the potential energies of each bead, the temperature and the Hamiltonianof the system.
The energies and Hamiltonian are given in atomic units and the temperature is given in kelvin.
10.2.35

potential scan.out

Used in <method> = SCAN. This ﬁle contains the potential.
• The following data is repeated for each static calculations:– column 1: step.
– column 2: potential energy in hartree.
For multiple beads, <nbead> = P , the data is repeated P times.
10.2.36

qmmm.out

Used in the case of <ipotential> = QMMM and <ipotential> = HYBRID with <hybrid> = QMMM. This ﬁlecontains the energy components in the QM/MM calculations. The print interval can be controlled by the
keyword <iprint_qmmm>.
• For <ipotential> = QMMM:– column 1: the step number.
– column 2: the high-level potential energy of the subsystem A (or A+L) in hartrees.
– column 3: the MM potential energy of the subsystem A (or A+L) in hartrees.
– column 4: the MM potential energy of the whole system (A+B) in hartrees.
206

10.2.37

rdf.out

Used in the cases of <method> = MD, PIMD, PIHMC, REHMC. This ﬁle contains the atomic pair distribution.
The print interval can be controlled by the keyword <iprint_rdf>. The mesh point parameters are speciﬁedby the keyword <params_rdf>.
• For <method> = MD, PIMD, PIHMC, REHMC:– column 1: the step number.
– column 2-3: the pair of atomic species deﬁned in structure.dat.
– column 4: the mesh point of interatomic distance.
– column 5: the atomic pair distribution.
– column 6: either the radial distribution (for <iboundary> = 1) or the copy of column 5 (for<iboundary> = 0).
– column 7: coordination number (number of atomic species 2 around atomic species 1).
– column 8: coordination number (number of atomic species 1 around atomic species 2).
In the case of REHMC, the distributions of each bead i is printed in the separate ﬁle, rdf.i.out.
NOTE: This analysis is not recommended when the number of atomic species is large, since the amountof computation grows quadratically.
10.2.38

rgy.out

Used in the cases of <method> = PIMD, PIHMC. This ﬁle contains the atomic radius of gyration. The printinterval can be controlled by the keyword <iprint_rgy>.
• For <method> = PIMD, PIHMC:– column 1: the step number.
– column 2: the atomic species deﬁned in structure.dat.
– column 3: the radius of gyration.
10.2.39standard.out

Used in ALL cases. This ﬁle contains the standard output. The print interval can be controlled by the
keyword <iprint_std>.
• For <method> = MD:– column 1: the step number.
– column 2: the total energy.
– column 3: the potential energy.
– column 4: the instantaneous temperature.
– column 5: the wall clock time.
• For <method> = PIMD, CMD, RPMD, MTD:
– column 1: the step number.
– column 2: the total energy.
– column 3: the bead average potential energy.
– column 4: the instantaneous temperature.
207

– column 5: the wall clock time.
• For <method> = GEOOPT:– column 1: the step number.
– column 2: the potential energy.
– column 3: the maximum displacement.
– column 4: the root-mean-square displacement.
– column 5: the maximum force.
– column 6: the root-mean-square force.
• For <method> = SD:– column 1: the step number.
– column 2: the potential energy.
• For <method> = REHMC:– column 1: the step number.
– column 2: the step size.
– column 3: the acceptance ratio of HMC trial move.
– column 4: the acceptance ratio of REM trial move.
– column 5: the bead average potential energy.
– column 6: the wall clock time.
• For <method> = PIHMC:– column 1: the step number.
– column 2: the step size.
– column 3: the acceptance ratio of HMC trial move.
– column 4: the bead average potential energy.
– column 5: the instantaneous temperature.
– column 6: the wall clock time.
• For <method> = STRING:– column 1: the step number.
– column 2: the image with the maximum potential energy.
– column 3: the maximum potential energy.
– column 4: the image with the minimum potential energy.
– column 5: the minimum potential energy.
– column 6: the wall clock time.
• For <method> = OMOPT:– column 1: the step number.
– column 2: the Onsager-Machlup action.
– column 3: the bead with the maximum potential energy.
– column 4: the maximum potential energy.
– column 5: the wall clock time.
20810.2.40

string.out

Used in the case of <method> = STRING. This ﬁle contains the potential energy values of the images along
the string at each step.
• column 1: the step number.
• column 2: the image number.
• column 3: the mass-weighted reaction coordinate in [au].
• column 4: the potential energy [hartree].
The print interval can be controlled by the keyword <iprint_str>.
10.2.41string.xyz

Used in the case of <method> = STRING. This ﬁle contains the positions of the images along the string at theﬁnal step in the xyz format. The print interval can be controlled by the keyword <iprint_str>.
10.2.42string ﬁnal.out

Used in the case of <method> = STRING. This ﬁle contains the ﬁnal potential energy values of the images
along the string.
• column 1: the step number.
• column 2: the image number.
• column 3: the mass-weighted reaction coordinate in [au].
• column 4: the potential energy [hartree].
The print interval can be controlled by the keyword <iprint_rest>.
10.2.43

template.xyz

Used in ALL cases of EXCEPT <method> = STATIC, NMA, PHONON, if the trajectory is printed in the dcd
format via the <iprint _dcd> keyword. This ﬁle contains n copies of the initial coordinates. It is made toease the reading of the trj.dcd ﬁle, as it gives the atomic information for the coordinates given in that ﬁle.
The ﬁle does NOT contain any information for analysis of the trajectory itself. If analysing results where thisﬁle is used to help read in the dcd data, it is important to remember to remove these data before proceedingwith the analysis.
10.2.44

tfs.out

Used in the case of <method> = TFS. This ﬁle contains the data of surface hopping method. The printinterval can be controlled by the keyword <iprint_tfs>.
• For <method> = TFS:
– column 1: the step number.
– column 2: the bead number.
– column 3: the state number.
– column 4: the occupied state.
– column 5: the population (state coeﬃcient) of each state.
– column 6: the occupation ratio of each state.
– column 7: the potential energy of each state.
– column 8: the potential energy of the occupied state.
20910.2.45

trj.dcd

Used in ALL cases of EXCEPT <method> = STATIC, NMA, PHONON. This ﬁle contains trajectory ﬁle in dcd
format. For the simulations with multiple beads/replicas/images with <nbead> = n, the data is repeated ntimes. The print interval can be controlled by the keyword <iprint _dcd>. To assist in reading in the ﬁlethe ﬁle template.xyz is also produced if a dcd output is produced. This ﬁle contains the coordinates of theinitial structure repeated n times, were n is the number of beads/replicas/images. Since the coordinates intemplate.xyz are NOT part of the simulation trajectory, it is important to either delete or ignore them in any
subsequent analysis of the trajectory. The coordinates are here unwrapped if periodic boundary conditions
are used, so it is possible to follow the diﬀusion of particles without unfolding the trajectory.
The format starts with a 276 byte header which will be described in detail here. This header is alsopresent in all other *.dcd ﬁle outputs, with a few modiﬁcations to the meaning of some of the ﬁelds explainedin the entries of the particular *.dcd ﬁle entry in this manual. The contents of the header is as follows,• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 5-8: (chars [1 byte]) CORD.
• byte 9-12: (int) 0• byte 13-16: (int) the starting step, usually 0.
• byte 17-20: (int) the output interval of the trajectory.
• byte 21-44: (ints [4 bytes]) 0, 0, 0, 0,0,0.
• byte 45-48: (ﬂoat) timestep in AKMA units.
• byte 49-52: (int) 1 if PBC are used, 0 otherwise.
• byte 53-84: (ints [4 bytes]) 0, 0, 0, 0, 0,0, 0, 0.
• byte 85-88: (int) 24.
• byte 89-92: (int) 84.
• byte 93-96: (int) 164.
• byte 97-100: (int) 2.
• byte 101-180: (chars [1 byte]) a string, ’PIMD - TRAJECTORY0’.
• byte 181-260: (chars [1 byte] a string containing the date of the calculation.)• byte 261-264: (int) 164.
• byte 265-268: (int) 4.
• byte 269-272: (int) the number of beads times number of atoms.
• byte 273-276: (int) 4.
After the header the trajectory data is organized in the following way. If periodic boundary conditions arepresent, the forces are given after the box information which is organized as follows• byte 1-4: (int) the size of the next read (48).
• byte 5-52: (doubles[8 bytes]) the box info of the system given as A, γ, B, β, α C. Where the side
lengths A,B, C are given in angstrom and the angles alpha, β and γ are given in radians.
210• byte 53-56: (int) the size of the previous read (48).
The actual trajectory data of the system is given in the following format, where N is equal to 4 times thenumber of atoms times the number of beads.
• next 4 bytes: (int) the size of the next read (number of beads times number of atoms).
• next N bytes: (ﬂoats [4 bytes]) the X coordinates of the system.
• next 4 bytes: the size of the previous read.
This is repeated for the Y and Z coordinates of the system. The trajectory data has been wrapped, so thatthe coordinates ﬁt inside the periodic boundary box if present. All atomic coordinates are given in angstroms.
10.2.46

trj.out

Used in ALL cases of EXCEPT <method> = STATIC, NMA, PHONON. This ﬁle contains the standard trajectory ﬁle. The print interval can be controlled by the keyword <iprint _trj>.
• For all the methods used:– column 1: the step number.
– column 2-4: the position (x, y, z) of each atom in au (bohr).
– column 5-7: the velocity (vx , vy , vz ) of each atom in au (bohr per “au time”, where “au time”= ℏ/hartree ≃ 0.0241888 fs).
– column 8-11: the force (fx , fy , fz ) of each atom in au (hartree/bohr).
– column 12: the potential V in au (hartree).
For the simulations with multiple beads/replicas/images with <nbead> = n, the data is repeated n times.
The block with the same step number corresponds to one conﬁguration.
10.2.47

trj.xyz

Used in ALL cases of EXCEPT <method> = STATIC, NMA, PHONON. This ﬁle contains trajectory ﬁle in xyz
format.
• For all the methods used:– line 1: number of atoms displayed.
– line 2: the step number.
– line 3-(n + 2): the atomic species followed by the atomic coordinates (x, y, z) of each atom. The
atomic coordinates are duplicated to display the folded and unfolded trajectories in the periodic
boundary condition.
For the simulations with multiple beads/replicas/images with <nbead> = n, the data is repeated n times.
The print interval can be controlled by the keyword <iprint _xyz>. The output is controlled by the options<iformat_xyz> and <jorigin_xyz>.
10.2.48

rec.out

Used in the case of <method> = MTD. This ﬁle contains reconstructed free energy surface from the metadynamics simulation. The print interval can be controlled by the keyword <iprint_rec>. In three dimensional
metadynamics, the accuracy and eﬃciency can be controlled by the keyword <cut_rec_3d>. Before version
2.1.1:

211

• For <method> = MTD:
– column 1: the mesh point of the collective variable.
– column 2: the sum of the history-dependent Gaussian hills = the negative sign of reconstructed
free energy.
Version 2.1.1 and after:• For <method> = MTD:
– column 1: the mesh point of the collective variable.
– column 2: reconstructed free energy (with the positive sign).
10.2.49

vel.dcdThis binary ﬁle contains the velocities of the particles in the system. The print interval can be controlled by
the keyword <iprint_dcd>.
The ﬁle contains a 276 byte header which is similar to that of trj.dcd, the important parts are as follows• byte 1-4: (int) 84, used to indicate that the endianess of the ﬁle.
• byte 17-20: (int) the output interval of the velocity information.
• byte 269-272: (int) the number of beads times number of atoms.
After the header the velocity data is organized in the following way. If periodic boundary conditions arepresent, the forces are given after the box information which is organized as follows• byte 1-4: (int) the size of the next read (48).
• byte 5-52: (doubles[8 bytes]) the box info of the system given as A, γ, B, β, α C. Where the side
lengths A,B, C are given in angstrom and the angles alpha, β and γ are given in radians.
• byte 53-56: (int) the size of the previous read (48).
The actual velocity data of the system is given in the following format, where N is equal to 4 times thenumber of atoms times the number of beads.
• next 4 bytes: (int) the size of the next read (number of beads times number of atoms).
• next N bytes: (ﬂoats [4 bytes]) the velocity in the X direction of the system.
• next 4 bytes: the size of the previous read.
This is repeated for the Y and Z velocity of the system. The order of the atoms is the same as the template.xyz
Åﬁle. All velocities are given in ps.

10.3

Restart ﬁles10.3.1

afed.ini

Used in the case of <method> = AFED with <afed_type> = DESCENT, ASCENT, AUTO, TAMD, LOGMFD. Thisﬁle contains the latest values of adiabatic free energy dynamics, temperature accelerated molecular dynamics,
and logarithmic mean force dynamics. Each line contains the following columns where n is the dimension ofcollective variables and m is the length of Nosé-Hoover chain thermostats:• For <afed_type> = DESCENT, ASCENT, AUTO:

212

– column 1: AFED status.
∗ DE: descent trajectory to free energy minimum point.
∗ D1: descent trajectory started in +n direction from free energy saddle point to free energy
minimum point.
∗ D2: descent trajectory started in −n direction from free energy saddle point to free energy
minimum point.
∗ AS: ascent trajectory to search for free energy saddle point.
∗ EQ: free energy minimum point.
∗ TS: free energy saddle point.
∗ HI: point ended where free energy exceeds limit deﬁned by the keyword <fenergy_max_afed>.
∗ OB: point ended where cv is out of bounds deﬁned by the keyword <params_afed>.
– column 2: AFED step number (iteration number).
– column 3: free energy in hartree.
– column 4-(3+n): the position of ﬁctitious particle, the unit vector n.
– column (4+n): root point ID (starting point of the trajectory that leads to this point).
– column (5+n): AFED step size.
• For <afed_type> = TAMD:– column 1: AFED status.
∗ TA: TAMD trajectory.
∗ HI: point ended where free energy exceeds limit deﬁned by the keyword <fenergy_max_afed>.
∗ OB: point ended where cv is out of bounds deﬁned by the keyword <params_afed>.
– column 2: AFED step number (iteration number).
– column 3: free energy in hartree.
– column 4-(3+n): the position and the mass-weighted velocity of ﬁctitious particle.
– column (4+n + m): the position and the mass-weighted velocity of Nosé-Hoover thermostats(only if they exist).
• For <afed_type> = LOGMFD:– column 1: AFED status.
∗ LO: LogMFD trajectory.
∗ HI: point ended where free energy exceeds limit deﬁned by the keyword <fenergy_max_afed>.
∗ OB: point ended where cv is out of bounds deﬁned by the keyword <params_afed>.
– column 2: AFED step number (iteration number).
– column 3: free energy in hartree.
– column 4-(3+n): the position and the mass-weighted velocity of ﬁctitious particle.
– column (4+n): the origin of free energy in hartree.
– column (5+n + m): the position and the mass-weighted velocity of Nosé-Hoover thermostats(only if they exist).
The ﬁle is overwritten for restarted runs.

213

10.3.2

auto.ini

Used in the case of <method> = AFED with <afed_type> = AUTO. This ﬁle contains the list of landmarks in
AFED automated search. Each line contains the following columns where n is the dimension of collective
variables:• column 1: landmark number.
• column 2: AFED status.
– EQ: free energy minimum point.
– TS: free energy saddle point.
– HI: point ended where free energy exceeds limit.
– OB: point ended where cv is out of bounds.
• column 3: landmark label.
– NEW: new point in the list.
– OLD: old point in the list.
• column 4: free energy in hartree.
• column 5: landmark ID.
• column 6: name of restart tar ﬁle.
• column 7: root point ID (starting point of the trajectory that leads to this point).
• column 8-(7+n): position of each collective variables.
• column (8+n)-(7+2n): unit vector n in ascent trajectory, which should be parallel to the imaginary
frequency mode. These columns are present only when AFED status is TS.
The ﬁle is appended for restarted runs.
10.3.3averages.ini

Used in ALL methods. This ﬁle contains the data of statistical averages at the ﬁnal step of the last run. If
this ﬁle is not found at the beginning of the run, the data is initialized.
The data aﬀects the results in the output ﬁles that includes the averages (bond.out, eavg.out, rdf.out,
rgy.out). It also aﬀects the acceptance ratio in PIHMC and REHMC methods (standard.out).
IMPORTANT: Do not change the keywords <iprint_...> in the ﬁles input.dat in the restarted runs, orelse the average data can be broken.
10.3.4bath.ini

Used in the cases of <method> = MD, PIMD, CMD, MTD. This ﬁle contains the thermostat positions and thethermostat velocities at the ﬁnal step of the last run. If this ﬁle is not found at the beginning of the run, thedata is initialized.
NOTE: The data depends on the bath type, the method and the system. Exceptionally, the data is transferable when switching from <method> = PIMD to <method> = CMD when <bath_type> = MNHC is chosen.

21410.3.5

box.ini

Used in ALL calculations with the periodic boundary condition, i.e., when <iboundary> = 1. This ﬁlecontains the step number and the box matrix h(i, j) at the ﬁnal step of the last run.
step number, h(1, 1), h(1, 2), h(1, 3)
step number, h(2, 1), h(2, 2), h(2, 3)
step number, h(3, 1), h(3, 2), h(3, 3)

If this ﬁle is not found at the beginning of the run, the data is read from the ﬁle input.dat in the keyword<iboundary>.
10.3.6

cstate.ini

Used in the cases of <method> = TFS, MFE. This ﬁle contains the state coeﬃcients (complex numbers) at
the ﬁnal step of the last run. If this ﬁle is not found at the beginning of the run, the data is read from theﬁle input.dat in the keyword <istate_init>.
10.3.7

cv.iniUsed in the case of <method> = MTD. This ﬁle contains the positions and velocities of the collective variablesat the ﬁnal step of the last run. If this ﬁle is not found at the beginning of the run, the data is initialized.
10.3.8

gad.ini

Used in the case of <method> = GAD. This ﬁle contains the latest values of gentlest ascent dynamics. Eachline contains the data of the guiding unit vector of each trajectory followed by the convergence ﬂag of eachtrajectory.
10.3.9geometry.ini

Used in ALL methods except <method> = STATIC, NMA, PHONON. This ﬁle contains the latest values of thepositions and velocities of atoms at the ﬁnal step of the last run. If this ﬁle is not found at the beginning of
the run, the data is read from the ﬁle structure.dat.
The data is transferable among <method> = STATIC, GEOOPT, BOXOPT, FULLOPT, ELASTIC, SD, NMA, PHONON,
MD, with the following format for n atoms.
0,
···
0,

x1,1 ,

y1,1 ,

z1,1 ,

vx1,1 ,

vy1,1 ,

vz1,1 ,

n1,1,1 ,n2,1,1 ,xn,1 ,

yn,1 ,

zn,1 ,

vxn,1 ,

vyn,1 ,

vzn,1 ,

n1,n,1 ,n2,n,1 ,n3,1,1n3,n,1

where indices (n1,i,j , n2,i,j , n3,i,j ) are important for the periodic boundary condition only. The indicesindicate the displacement with respect to the box matrix in the folded trajectories.
The data is also transferable among the path integral methods, <method> = PIMD, CMD, RPMD, PIHMC,
where the normal mode positions and velocities are given by the mass-weighted coordinates.
10.3.10hills.ini

Used in the case of <method> = MTD. This ﬁle contains the list of data of the history-dependent Gaussian
hill potential.
• column 1: metadynamics step.
215• column 2: Gaussian height in hartrees.
• column 3: Gaussian width in bohrs, degrees, etc.
• column 4: Gaussian center in bohrs, degrees, etc.
The unit of Gaussian width corresponds to the unit used below the keyword <gw_meta> in input.dat. One
data unit consists of m lines where m is the dimension of collective variables, which is given by the keyword<nmeta> in input.dat. If this ﬁle is not found at the beginning of the run, the data is initialized with no
Gaussian hill.
This ﬁle is read at the beginning of the metadynamics run. The user may simply add “wall potentials”(high Gaussian hills with small width) to the list, so as to limit the exploration of the collective variables. In
this case, the step number could be any integer.
Note that in well tempered metadynamics the Gaussian hills are not the negative of the free energy. Thus
the deposited hills cannot be transferred between conventional and well tempered metadynamics.
10.3.11

step.ini

Used in ALL methods except <method> = STATIC, NMA, PHONON. This ﬁle contains the ﬁnal step numberof the last run. If this ﬁle is not found at the beginning of the run, the data is initialized to zero.
10.3.12string.ini

Used in <method> = STRING, OMOPT. This ﬁle contains the latest values of the positions and velocities ofatoms at the ﬁnal step of the last run. If this ﬁle is not found at the beginning of the run, the data is readfrom the ﬁle structure.dat.
This ﬁle could be edited by the user to start from a guessed path. For a system of n atoms with m images
should be provided in the following format.
0,
···
0,
0,
···
0,
···
···
0,
···
0,

x1,1 ,

y1,1 ,z1,1

xn,1 ,
x1,2 ,

yN,1 ,
y1,2 ,zn,1z1,2xn,2 ,

yN,2 ,zn,2

x1,m ,

y1,m ,z1,mxn,m ,

yn,m ,zn,mwhere (xi,j , yi,j , zi,j ) is the Cartesian coordinates of the i-th atom in the j-th image in bohr. “0” in the ﬁrst
column is the step number.

11

Theoretical backgroundIn this section, we will describe the theoretical background of the methods used in the PIMD code brieﬂy.
The following notation will be used:• Scalars are denoted by regular font (e.g., x), vectors are denoted by bold font (e.g., x), and matrices→
are denoted by bold fond with arrows (e.g., ←x ).
• The number of atoms is denoted by N .

216

• The i-th atomic mass is denoted by mi .
• The set of atomic positions (the nuclear positions) is denoted by{r} = {r1 , r2 , · · · , rN } = r1x , r1y , r1z , · · · , rN x , rN y , rN z .
When P beads are used, the atomic position of the s-th bead is
n
o n
o
o n
(s) (s)(s)(s) (s) (s)
(s)
(s)
(s)
r(s) = r1 , r2 , · · · , rN = r1x , r1y , r1z , · · · , rN x , rN y , rN z

(46)

(47)

for 1 ≤ s ≤ P .
• The potential is described as
V = V ({r})(48)

{p} = {p1 , p2 , · · · , pN } = p1x , p1y , p1z , · · · , pN x , pN y , pN z .

(49)• The set of atomic momenta is denoted by

When P beads are used, the atomic position of the s-th bead is
o n
o
n
o n
(s)
(s)
(s)
(s)
(s)
(s) (s) (s)(s)p(s) = p1 , p2 , · · · , pN = p1x , p1y , p1z , · · · , pN x , pN y , pN z .

(50)

The position of s-th bead in the phase space is described asnoΓ(s) = r(s) , p(s) .

(51)• The atomic masses are given by mi . When the ﬁctitious masses are used, they are given by µi .
• The box matrix is given byh←→  11h = h21
h31

h12
h22
h32

 
ax
h13
h23  = ay
h33
az

bx
by
bz


cz
cz 
cz

(52)

←



→
where a = ax , ay , az , b = bx , by , bz and c = cx , cy , cz are the box vectors, and V = det h isvolume of the box.
• The temperature is given by T, and β = 1/kB T where kB is the Boltzmann constant.
←→• The external pressure is given by P, and the external tension is given by t where


t
t
t
←
→  11 12 13 t = t12 t22 t23
t13 t23 t33(53)

is a real and symmetric matrix.

11.1

Mechanochemistry

To deal with mechanochemistry, external force explicitly included (EFEI) method is employed. A constantrepulsive force, F , is applied to the speciﬁed pair of atoms i and j in the direction of interatomic vector. The
potential
V efei = −F rij
217

(54)

and the force
efei
Fiα
=F

riα − rjα
rij

(55)

is added to the physical potential and the physical force, respectively, wheres X
2riα − rjα
rij =

(56)

α=x,y,zis the distance between atoms i and j.

11.2

Steepest descent

The intrinsic reaction coordinate (IRC) is the steepest descent path starting from the saddle point andending at the minimum point of the potential energy surface in the mass-weighted coordinate space. The
mass-weighted coordinate is deﬁned as√√√
m1 r1 , m2 r2 , · · · , mN rN .
(57)
q = {q1 , q2 , · · · , qN } =The steepest descent path is deﬁned by the trajectory of the equation,
dqi
dt

= −

gi
.
|g|

(58)

where the potential gradient with respect to qi is deﬁned by
gi

dV
1 dV
=√
dqi
mi dri=(59)

and the norm is given by
|g|

2

=

N
X
1
i=1

(

mi

dV
dxi

2


+

dV
dyi

2


+

dV
dzi

2 )
.

(60)

Eq.(58) is equivalent to
mi

dri
dt

= −

1 dV
.
|g| dri(61)

In the PIMD code,by 4th-order Runge-Kutta algorithm with the step size dt. Note dt has√ Eq.(61) is solved √the dimension ( mass × length) or ( energy × time).

11.3

Box optimization

The box matrix, hαβ , can be optimized using the limited-memory BFGS algorithm [3].
11.3.1

Zero pressure condition

At the zero pressure, the bare potential V is minimized. The potential gradient with respect to the box
Gαβ

=

218

∂V
∂hαβ

(62)

is related to the virial,
= −

Aαβ

3
3
X
X
∂V
Gαγ hβγ ,hβγ = −
∂hαγ
γ=1
γ=1

(63)

and thus,
Gαβ

−

=

3
X

Aαγ h−1
βγ .

(64)

γ=1

Note that the virial Aαβ is associated with the internal pressure tensor at zero temperature,
V−1 Aαβ .

Pαβ (0) =11.3.2(65)

Finite pressure condition

In the presence of external pressure, P, the eﬀective potential
Ṽ = V + PV.

(66)

is minimized. Then, the gradient of the eﬀective potential is given byG̃αβ11.3.3∂V∂ Ṽ
=+ PVh−1
βα .
∂hαβ
∂hαβ

=

(67)

Finite tension condition←→
In the presence of external thermodynamic tension, t , the eﬀective potential,
3
XṼ = V − V̄tαβ ϵαβ



(68)

α,β=1

is minimized.



3


1  X  −1h̄µα hλµ hλν h̄−1
ϵαβ =
−
δ
αβ
νβ

2

(69)

µ,ν,λ=1

is the strain tensor, where h̄ and V̄ = det(h̄) are the box matrix and the volume, respectively, in the absenceof external tension. Then, the gradient of the eﬀective potential is given by
G̃αβ

=

3


X
∂ Ṽ
∂V
−1
=
− V̄
hαλ h̄−1th̄
λµ µν βν .
∂hαβ
∂hαβ

(70)

µ,ν,λ=1

11.4

Static elastic constants

The static elastic constant is deﬁned by
Cαβ,γδ =where the strain tensor is given by
ϵαβ

=


1
2

1 ∂2V
,
Ω ∂ϵαβ ∂ϵγδ

(71)


X

−1
.
h̄−1
γα hλγ hλν h̄νβ − δαβ(72)

ν,γ,λ=x,y,z

The elastic constants are invariant under the permutations of indices between α and β, between γ and δ, andbetween (α, β) and (γ, δ). In Voigt notation, the constants are abbreviated as Cij , where 1 ≤ i, j ≤ 6, and1–6 correspond to (x, x), (y, y), (z, z), (y, z), (z, x), and (x, y), respectively.
219

11.5

Normal mode analysis

The mass weighted Hessian matrix is given as the (3N × 3N ) real symmetric matrixH̃iα,jβ

√

=

1
∂2V
.
mi mj ∂riα ∂rjβ

(73)

By diagonalizing H̃ at the stationary points, one obtains the eigenvalues εk and the eigenvectors Uiα,k foreach mode, k (1 ≤ k ≤ 3N ). The vibrational frequencies converted from atomic unit to wavenumber unit
(cm−1 ) are
νk

1
E √
× h εk
100
hc

=

(74)

where c is the speed of light, h is Planck constant, Eh = 4.35974417 ×10−18 J is one hartree in SI unit. The
reduced mass of the k-th mode in atomic mass unit is deﬁned by
µk

=

1
1
× PN P−1 2
1822.88853
i=1
α=x,y,z mi Uiα,k(75)

and the normalized normal mode vector is given by−1/2Ũiα,k

=

qP

N
i=1

mi
P

Uiα,k

−1 2
α=x,y,z mi Uiα,k

.

(76)

In the free boundary systems, there are six (ﬁve) zero-frequency modes, three translations and three (two)rotations, for nonlinear (linear) molecules In the periodic boundary systems. there are three zero-frequency
modes (three translations). In the PIMD code, the numerical error of the Hessian matrix is removed byapplying the projection operator with respect to zero-frequency translational and rotational modes.

11.6

Phonon calculations

Let the vector of three integers, n = (n1 , n2 , n3 ), be the numbering of the respective unit cells in a crystal.
←→
Let N atoms be in the unit cell deﬁned by the matrix of three lattice vectors, h = (a, b, c). Let ri,0 be theposition of i-th atom in the unit cell at the origin, 0 = (0, 0, 0). Then, the atomic positions in the unit cellof n is given byri,n=ri,0 + h−1 n.

(77)

For a given wave vector K in the reciprocal space, the (3N × 3N ) dynamical matrix is deﬁned by
Djα,kβ (K)

=

√

X

1
∂2V
exp iK · rj,0 − rk,n
mj mk n ∂rjα,0 ∂rkβ,n(78)

By diagonalizing this matrix, one obtains the eigenvalues εk (K) where k is the index of vibrational mode.
The phonon frequencies are obtained by converting from atomic unit in cm−1 ,q1Eνk (K) =× h εk (K).
(79)
100
hc
The dynamical matrix is evaluated and diagonalized for each wave vector, K, within the ﬁrst Brillouin zone


3
3
3
X
X
X

π
π
π
l h−1 ,
l h−1 ,
l h−1  .
(80)
Kx , Ky , Kz l ,l ,l = 
1 2 3
Lβ β βxLβ β βyLβ β βz
β=1

β=1

220

β=1

The evenly spaced grid points with −Lβ ≤ lβ ≤ Lβ (1 ≤ β ≤ 3) is used to obtain the phonon density ofstates,X(81)
ρ (ν) =
(ν − νk (K)) .
K

The classical and quantum internal energies per unit cell is= (3N − 3) kB T.

U cl

(82)

and
1 X X ℏωm (K)
coth
NK
2
m=4
3N

U qm

=



K

βℏωm (K)
2


,

(83)

respectively. The classical and quantum Helmholtz free energies per unit cell is
1 XX
kB T log (βℏωm (K)) .
NK
m=4

(84)

1 XX
kB T log (1 − exp (−βℏωm (K))) ,
NK
m=4

(85)

3N

A

cl

=

K

and
3N

A

qm

=

K

respectively. The entropy per unit cell is deﬁned as
S cl =

U cl − Acl
T(86)

S qm =

U qm − Aqm
,
T

(87)

and

respectively. In the PIMD code, the numerical error of the dynamical matrix is removed by applying the
projection operator with respect to zero-frequency translational modes.

11.7

String method

The String Method is an eﬃcient algorithm for obtaining the minimum energy path or intrinsic reaction
coordinate that interconnects the reactant and the product.
The path is described in terms of P discrete images along the path in the mass-weighted coordinates,
denoted as q in Eq. (57).
Starting from an initial guess, the images are optimized by iterating the following two-step procedure:• Step 1: Move the positions of all the images q along the negative gradient direction with an increment
parameter ∆t as follows:
(l)

(l)

(l)

qi ←− qi −
(l)

gi
∆t
|g(l) |

(88)

for all images l and for all atoms i, where gi and |g(l) | are deﬁned in Eqs. (59) and (60), respectively,
for the l-th image.

221

• Step 2: While keeping the positions of the terminal images q(1) and q(P ) ﬁxed, rearrange all the otherimages along the path such that all the neighboring images are equidistant:N
2X
X  (l+1)(l)
qiα − qiα = const.

(89)

i=1 α=x,y,z

If the number of images P is suﬃciently large, the iteration of Steps 1 and 2 will converge to a minimum
energy path that is closest to the initial guess.

11.8

OM action

The path integral formulation of overdamped Langevin dynamics is introduced by Onsager and Machlup(OM). The transition probability from the initial position, r(0) = r(1) , to the ﬁnal position, r(T ) = r(L) , inthe time interval of T is given by Z r(L)(L) (1)
P r
r∝
Dr exp(−βS[r])
(90)
r(1)

where the OM action is deﬁned by
Z T
S[r(t)] =

dt

(N
Xmγ
i

0

i=1

4

∇ V (r(t))
ṙi (t) + i
mi γ

2 )
.

with γ being the friction constant of Langevin dynamics. For a smooth path, one obtains
(

2 )
Z T
N
X
V (r(T )) − V (r(0))
mi γ∇i V (r(t))
2
S≃
+
dt
(ṙi (t)) +
.
2
4
mi γ
0
i=1

(91)

(92)

A path r(t) with the minimum action S is the most probable path. One can compute such a path by
optimizing the S value, with the constraint that the path starts from a reactant minimum, and ends at a
product minimum. The path depends on the parameter T /γ. If T /γ is suﬃciently small, it will be a straight
path. If T /γ is suﬃciently small, it will be the minimum energy path, i.e., the intrinsic reaction coordinate.
In the PIMD code, the OM action with L discrete images,


!

2
L−1
N
(l+1)
(l) 2
X
V (r(L) ) − V (r(1) ) X
mi γ  ri− ri∇i V (r(l) ) 
S=
+
∆t
+
,
(93)

2
4 
∆t
mi γ
i=1

l=1

is optimized using the limited memory BFGS algorithm with respect to the normal mode variables, where√∆t = T /(L − 1). Note that S can be expressed as a function of ∆τ = ∆t/γ and qi = mi ri , since


2
(l+1)
(l)

L−1
N 




q
−
q
(L)
(1)
X
X
2
i
i
Ṽ (q ) − Ṽ (q )
∆τ
(l)
.
(94)
S=
+
+
∇i Ṽ (q )


2
4∆τ
4

l=1 i=1 
where Ṽ (q) = V (r). In the PIMD code, the gradient of S is evaluated numerically by the ﬁnite diﬀerent
technique.

11.9

NVE molecular dynamics

In the NVE molecular dynamics, the microcanonical ensemble is naturally generated by solving Newton’s
equations of motionṙiα =

piα
,
mi
222

ṗiα = −

∂V
∂riα

(95)

for ergotic systems. The total energy given by
H

=

N
X
X

p2i
+V
2mi
i=1 α=x,y,z(96)

is conserved, since
Ḣ

=


N
X
X  ∂H∂H
ṗiα +
ṙiα
∂piα
∂riα
i=1 α=x,y,z

=


N
X
X  p  ∂V 
∂V piα
iα
−
+
= 0.
miα
∂riα
∂riα miα
i=1 α=x,y,z

(97)

J˙

(N
)
X X  ∂ ṙ
∂ ṗiα
iα
−J
+
= 0,
∂riα
∂piα
i=1 α=x,y,z(98)

The Jacobian, J, satisﬁes=

and therefore, J is a constant. This result is called Liouville’s theorem. Since H is a constant (= E), thephase space volume of the trajectory should be
Z
Z
Z
Z
W ∝
dr3N dp3N Jδ(H − E) ∝ dr3N dp3N δ(H − E),(99)assuming the ergodicity. This corresponds to the number of microscopic states in the microcanonical ensemble. The probability density of ﬁnding the system at the point (r1x , · · · , rN z , p1x , · · · , pN z ) is
P (r1x , · · · , rN z , p1x , · · · , pN z ) = R
11.9.1dr3N

δ(H − E)R.
dp3N δ(H − E)(100)

Velocity-Verlet algorithm

The velocity-Verlet algorithm is used to solve Newton’s equations of motion,


∆t
∂V ∆t
piα t +
= piα (t) −2∂riα (t) 2
riα (t + ∆t) =piα (t + ∆t) =p (t + ∆t
2 )∆triα (t) + iα
mi


∆t
∂V
∆t
piα t +−,
2∂riα (t + ∆t) 2(101)

or equivalently,riα (t + ∆t)=piα (t + ∆t)=piα (t)1 ∂V ∆t2∆t −mmi ∂riα (t) 2
 i

∂V
∂V
∆t
piα (t) −+.
∂riα (t) ∂riα (t + ∆t) 2
riα (t) +(102)

Note that this algorithm is time reversible. Liouville theorem is satisﬁed for arbitrary dt value.

11.10

NVT molecular dynamics

In the NVT molecular dynamics, the equation of motion is designed to generate the canonical ensemble
for ergodic systems. In the PIMD code, the temperature is controlled using the family of Nosé-Hooverthermostats. This technique is used in path integral molecular dynamics, centroid molecular dynamics andmetadynamics methods as well.
223

11.10.1

Nosé-Hoover method

In Nosé-Hoover method [8, 10], N atoms interacts with a thermostat. The equation of motion of the system
of N atomspṙiα = iα ,mi∂VPṗiα = −
− piα
(103)
∂riα
Q
is coupled to the equation of motion of the thermostat
Ṙ =
Ṗ =

P
,
Q
N
X
X

p2iα
− 3N kT,mii=1 α=x,y.z(104)

where R and P are the thermostat coordinate and momentum, respectively. The total energy given by
H

=

N
X
X

p2iα
P2
+V +
+ 3N kT R
2miα
2Q
i=1 α=x,y,z(105)

is conserved, since
Ḣ

=


N
X
X  ∂H∂H∂H∂H
ṗiα +ṙiα +
Ṗ +
Ṙ
∂p
∂r
∂P
∂R
iα
iα
i=1 α=x,y,zNX
X  piα  ∂V
∂V piα
P
−
− piα
+
mi
∂riα
Q
∂riα mii=1 α=x,y,z!
N
P X X p2iαP+
− 3N kT + 3N kT = 0.
Q i=1 α=x,y,z mi
Q

=

(106)

It can shown that canonical ensemble is generated assuming the ergodicity. Since H is a constant (= E), thephase space volume of the total system of N atoms and the thermostat can be written as
Z
Z
Z
Z
W ∝
dr3N dp3N dR dPJδ(H − E),(107)
where the Jacobian J satisﬁes
J˙

)
(N

X X  ∂ ṙ
∂ ṗiα∂ Ṙ ∂ Ṗ
iα
= −J
+
+
+
∂riα
∂piα
∂R ∂P
i=1 α=x,y,z
= J

N
X
X

P
= 3N ṘJ,Q
i=1 α=x,y,z(108)

and thus,J=

exp (3N R) .

(109)

Now, Eq.(107) can be rewritten as
Z
Z
Z
Z
W ∝
dr3N dp3N dR dP exp (3N R)
× δ

N
X
X

p2iα
P2
+V +
+ 3N kT R − E
2miα
2Q
i=1 α=x,y,z
224

!
.

(110)

Using the identityδ (s − s0 )/ |h′ (s0 )|δ[h(s)] =whereh (s0 ) = 0,(111)

one obtains
W

∝

eβE
3N kT

Z

Z
∝

Z
dr

3N

dp

dr

dP exp −β

"

Z
3N

"

Z
3N

dp

3N

exp −β

N
X
X

N
X
X

p2iα
P2
+V +
2mi
2Q
i=1 α=x,y,z
!#

p2iα
+V
2mi
i=1 α=x,y,z

∝ Z,

!#

(112)

where β = 1/kT . This shows that W is proportional to the partition function Z of the canonical ensemble
for the system of N atoms. In the same manner, it can be shown that the probability density of ﬁnding thesystem at the point (r1x , · · · , rN z , p1x , · · · , pN z ) is identical to that of the canonical ensemble,
P (r1x , · · · , rN z , p1x , · · · , pN z )
h
P
i
2
piα
N P
exp −βi=1
α=x,y,z 2mi + V
h
P
i .
= R
R
p2iα
N P
dr3N dp3N exp −βi=1
α=x,y,z 2m + V

(113)

i

11.10.2

Nosé-Hoover chain method

In the Nosé-Hoover chain method [11], the system interacts with a chain of Nosé-Hoover thermostats in order
to control the temperature strongly. The system interacts with a thermostat which, in turn, interacts withthe second thermostat, and so on. The equations of motion for the system of N atoms and Nosé-Hooverthermostats with the chain length of L is expressed as follows.
piα
mi
∂V
P
ṗiα = −− piα 1
∂riα
Q1
Pl
Ṙl =
Ql
ṙiα =

N
X
X

p2iα
Ṗ1 =
− 3N kTmii=1 α=x,y,z
 2

Pl−1
P
Ṗl =
− kT − Pl l+1
Ql−1
Ql+1
ṖL =

!
− P1

P2
Q2

(2 ≤ l ≤ L − 1)

2
PL−1
− kT,
QL−1

(114)

where Rl and Pl are the coordinates and momenta of l-th thermostat, respectively, in the chain. The totalenergy given by
H

=

N
X
X

X
p2iα
P2
+ V + 1 + 3N kT R1 +2mi
2Q1
i=1 α=x,y,z
L

l=2

225




Pl2
+ kT Rl .
2Ql

(115)

is conserved, since
 X
N
L
L
X
X  ∂H
X
∂H
∂H
∂H
=
Ṗl +
Ṙl
ṗiα +ṙiα +
∂p
∂r
∂P
∂R
iα
iα
l
l
i=1 α=x,y,z

Ḣ

l=1

=

+

+

+

l=1



N
X
X  p  ∂V
P1
∂V piα
iα
−
− piα
+
mi
∂riα
Q1
∂riα mii=1 α=x,y,z!
NP
P1 X X p2iα
− 3N kT − P1 2
Q1 i=1 α=x,y,z mi
Q2

L−1
X


2
Pl−1
Pl+1
− kT − Pl
Ql−1
Ql+1
l=2
 2

L
X
P
PL PL−1
P− kT + 3N kT 1 +kT l = 0.
QL QL−1
Q1
Ql
Pl
Ql



(116)

l=2

It can shown that canonical ensemble is generated assuming the ergodicity. Since H is a constant (= E), thephase space volume of the total system of N atoms and the thermostat can be written as
Z
Z
Z
Z
3N
3N
L
W ∝
dr
dp
dR
dP L Jδ(H − E),(117)
where the Jacobian J satisﬁes
J˙

(N
!)
 X
L
X X  ∂ ṙ
∂ ṗiα
∂ Ṙl
∂ Ṗl
iα
= −J
+
+
+
∂riα
∂piα
∂Rl
∂Pl
i=1 α=x,y,z
l=1
!
!
N
L
L
X
X P
X
X
Pl
1
= J
+
= 3N Ṙ1 +Ṙl J,Q1
Ql
i=1 α=x,y,z
l=2

(118)

l=2

and thus,J= exp 3N R1 +

L
X

!
Rl

(119)

.

l=2

Now, Eq.(117) can be rewritten as
Z
W ∝

Z
dr

3N

Z
dp

3N

Z
dR

L

dP exp 3N R1 +
L

L
X

!
Rl

×

l=1

δ

N
X
X

X
p2iα
P2
+ V + 1 + 3N kT R1 +2miα
2Q1i=1 α=x,y,z
L

l=2



Pl2
+ kT Rl
2Ql

!


−E

Using the identity of Eq.(111) one obtains
Z
Z
Z
Z
eβE
W ∝
dr3N dp3N dRL−1 dP L
3N kT
!
"
!#
N
L
X
X p2
X
Pl2
iα
+V
exp −βexp −β2miα
2Ql
i=1 α=x,y,z
l=1
"
!#
Z
Z
N
X
X p2
iα
∝
dr3N dp3N exp −β
+V
∝ Z,
2m
iα
i=1 α=x,y,z
226

.

(120)

(121)

where β = 1/kT . This shows that W is proportional to the partition function Z of the canonical ensemble
for the system of N atoms. In the same manner, it can be shown that the probability density of ﬁnding thesystem at the phase point (r1x , · · · , rN z , p1x , · · · , pN z ) is identical to that of the canonical ensemble, Eq.(113).
11.10.3

Massive Nosé-Hoover chain method

In massive Nosé-Hoover chain method, Nosé-Hoover thermostat chain is attached to each of the 3N degrees
of freedom. To control the temperature even stronger, multiple chains can be attached for each degreeof freedom. In the latter case, the masses of thermostats are chosen to control vibrational modes with
diﬀerent frequencies that are present in the system. In the PIMD code, the masses are chosen such thatthe characteristic frequencies of the thermostats constitute a Fourier series. The equations of motion for N
nuclei coupled to massive Nosé-Hoover chain thermostat, in which M chains of length L are attached to each
degree of freedom, areṙiα =piα
mi

ṗiα = −M
X
Piα,1,m
∂V
− piα
∂riα
Qi,1,mm=1

Piα,l,mQi,l,m 2
Piα,2,mpiα
Ṗiα,1,m =− kT − Piα,1,mmi
Qi,2,m!
2
Piα,l+1,mPiα,l−1,m− kT − Piα,l,mṖiα,l,m =Qi,l−1,mQiα,l+1,mṘiα,l,m =Ṗiα,L,m =2
Piα,L−1,m− kT,
Qi,L−1,m(2 ≤ l ≤ L − 1)(122)

where Riα,l,m and Piα,l,m the coordinates and momenta of the L-th thermostats of the M -th chain which is
attached to the α coordinate of the i-th atom. The total energy given by
!
N
L X
M
N
2
X
X X
X
X p2
Piα,l,miα+V ++ kT Riα,l,m
H =
(123)
2miα
2Qiα,l,mm=1
i=1 α=x,y,zi=1 α=x,y,z
l=1

227

is conserved, since
Ḣ

=

+

=

+

+

+

+


N
X
X  ∂H∂H
ṗiα +
ṙiα
∂piα
∂riα
i=1 α=x,y,z
N
L X
M
3N
L X
M
X
X X
X
X X
∂H
∂H
Ṗiα,l +Ṙ
∂Piα,l∂Riα,l iα,l
i=1 α=x,y,z l=1 m=1i=1 α=x,y,z l=1 m=1
(
!
)
N
M
X
X
X
Piα,1,mpiα∂V∂V piα
−
− piα
+
mi
∂riα
Qi,1,m∂riα mim=1
i=1 α=x,y,z
!
N
M
X
X X
Piα,1,m p2iαPiα,2,m− kT − Piα,1
Qi,1,mmi
Qi,2,mi=1 α=x,y,z m=1
(
!)
N
M
2
X
X L−1
XX
Piα,l,m Piα,l−1,mPiα,l+1,m− kT − Piα,l,mQi,l,mQi,l−1,mQi,l+1,mi=1 α=x,y,z l=2 m=1
!
N
M
2
X
X X
Piα,L,m Piα,L−1,m− kT
Qi,L,mQi,L−1,mi=1 α=x,y,z m=1
L X
M
N
X
X X

Piα,l,m= 0.
Qi,l,mkT

i=1 α=x,y,z l=1 m=1(124)

It can shown that canonical ensemble is generated assuming the ergodicity. Since H is a constant (= E), thephase space volume of the total system of N atoms and the thermostat can be written as
Z
Z
Z
Z
3N
3N
3N LM
W ∝
dr
dp
dR
dP 3N LM Jδ(H − E),(125)
where E is a constant value and the Jacobian J satisﬁes
(
!)
 X
L X
M
N
X
X
∂
Ṙ
∂
Ṗ
∂
ṙ
∂
ṗ
iα,l,miα,l,miα+ iα ++J˙ = −J∂r∂piα∂Riα,l,m∂Piα,l,miαα=x,y,zi=1
l=1 m=1
!
!
L X
M
L X
M
N
N
X
X X
X
X X
Piα,l,mṘiα,l J,= J=
Qi,l,mm=1
m=1
i=1 α=x,y,zi=1 α=x,y,z
l=1

(126)

l=1

and thus,
J

= exp

N
L X
M
X
X X

!
Riα,l

.

(127)

i=1 α=x,y,z l=1 m=1

Now, Eq.(125) can be rewritten asZZZZ
W ∝ dr3N dp3N dR3N LM dP 3N LM
!
N
L X
M
X
X X
exp
Riα,l,m ×
i=1 α=x,y,z l=1 m=1

"N
(
L X
M
X X
X
p2iα
δ
+
2mi
m=1
i=1 α=x,y,zl=12
Piα,l,m2Qi,l,m228)!
+ kT Riα,l,m#+V −E .

(128)

Using the identity of Eq.(111) one obtains
Z
Z
Z
Z
eβE
W ∝
dr3N dp3N dR3N LM −1 dP 3N LM
kT
!#
"
N
N
L X
M
2
X
X p2
X
X X
Piα,l,miα× exp −β+V +2mi
2Qi,l,mi=1 α=x,y,zi=1 α=x,y,z l=1 m=1
!#
"
Z
Z
N
X
X p2
iα
+V
∝ Z,
∝
dr3N dp3N exp −β2mi
i=1 α=x,y,z(129)

where β = 1/kT . This shows that W is proportional to the partition function Z of the canonical ensemble
for the system of N atoms. In the same manner, it can be shown that the probability density of ﬁnding thesystem at the point (r1x , · · · , rN z , p1x , · · · , pN z ) is identical to that of the canonical ensemble, Eq.(113).

11.11

Path integral methods

In PI methods, each atom is represented by P replicas in the imaginary time slices. The parameter P is
known as the number of beads. The equation of motion of 3N P -dimensional system is designed such thatthe distribution is proportional to exp −βV eﬀ , where the eﬀective potential V eﬀ is given by:
V eﬀ= V harm + V phys + V cor .

(130)

where the ﬁrst and the second term are the contributions of harmonic and physical potentials, respectively:
N
P X
2 
X  m ω 2  (l)
X
(l+1)
i P
harm
V
≡
(131)
riα − riα2α=x,y,zl=1 I=1
1 X  (l)(l)
V r1x , · · · , rN z ,PP≡V phys

(132)

l=1

√
(P +1)(1)
The periodicity riα= riα is assumed, and the constant ωP = P /βℏ is deﬁned. The third term is thecorrection for the fourth order Trotter expansion:

!2
!2
!2 
P 
N

2 2 X
X
β
ℏ
∂V
∂V
∂V
1
+
+
,
V cor ≡
(133)
(l)
(l)
 ∂r(l)

24P 3
mi
∂r
∂r
i=1

l=1

ix

iy

iz

which is neglected within the second order Trotter expansion:
V cor = 0(134)

Note that the ﬁrst term in the rhs of Eq.(130) connects replicas into a cyclic chain by harmonic interaction.
(l)
It is useful to introduce a linear transformation from Cartesian coordinates riα to so-called normal mode(k)coordinates qiα :
1 X
(l)
√
Ukl riα .
P l=1
P

(k)

qiα

=

(135)

←
→
The
 unitary matrix Ukl corresponds to the eigenvector of the matrix A where Akl =P 2δkl − δk,l+1 − δk,l−1 with periodicity 0 → P and P + 1 → 1. The ﬁrst mode with k = 1, known
as the centroid variable, is given by
1 X (l)
riα .
P
P

(1)

qiα

(cent)

= qiα

=

l=1

229

(136)

After this transformation, we obtain
V eﬀ

P X
N
P
X
X  m λ(k) ω 2 (k) 2  1 X
(l)
(l)
i
P
V (r1x , · · · , rN z ),
qiα
+
2
P
i=1 α=x,y,z

=

k=1

(137)

l=1

←
→
(l)
(k)
where λ(k) is the k-th eigenvalue of the matrix A , and riα is given as a function of qiα by the backward
transformation
(l)

riα

P
√ X
† (k)
P
Ulk
qiα .

=

(138)

k=1

The force is given by
(k)

Fiα

= −

1 X † ∂V(k) 2 (k)
√
=
−m
λ
ω
q
−
Ulk (l) .
i
P
iα
(k)
P l=1
∂qiα
∂riα
P

∂V eﬀ

(139)

We can construct the eﬀective Hamiltonian as
H

eﬀ

(k) 2

P X
N
X
X

=

piα

(k)

+ V eﬀ + H bath + H baro ,(140)

k=1 i=1 α=x,y,z 2µi
(k)

(k)

(k)

where piα is the momentum conjugate to qiα , µi is the ﬁctitious mass, H bath and H bath are the energy
contributions of the thermostats and barostats, respectively.
In PIMD, BCMD, CMD and (T)RPMD methods, the equations of motion are integrated with a ﬁnite time
step ∆t. In PIHMC, after the equations of motion are integrated for a few steps, and the last move is either accepted or rejected according to Metropolis algorithm with the acceptance probability of min(exp(−∆H eﬀ ), 1).
When rejected, all the positions (atomic positions in the NVT ensemble, the atomic positions and the box
vectors in NPT and NtT ensembles) are placed back, and all the velocities (the atomic velocities in the
NVT ensemble, the atomic velocities and the box velocities in the NPT and NtT ensembles) are regenerated
randomly according to Maxwell-Boltzmann distribution. The step size ∆t in PIHMC is usually taken to belarger than that of PIMD.
In BCMD and TRPMD, the deterministic equation of motion for the centroid variable is combined withthe stochastic equation of motion for the non-centroid variables.
PIMD, PIHMC, BCMD, CMD and (T)RPMD methods are diﬀerent in the the settings of the ﬁctitious
mass and the way of using the thermostats and the barostats, which are mentioned below.
11.11.1

Fictitious mass

The ﬁctitious mass is set diﬀerently between the centroid modes (k = 1) and the non-centroid modes (k ̸= 1).
PIMD and PIHMC.
(1)µi(cent)=µi(k)= mi ,µi= λ(k) mi (2 ≤ k ≤ P ).

(141)

P (∆t) (k)λ mi (2 ≤ k ≤ P ).
2τ

(142)

BCMD.
(1)

µi

(cent)= µi= mi ,(k)µi=where ∆t is the step size and τ = βℏ is the decoherence time.

230

CMD.
(1)

µi

(cent)= µi(k)= mi ,µi= γ 2 λ(k) mi (2 ≤ k ≤ P ).

(143)

Theoretically, adiabaticity parameter γ should be taken suﬃciently small, 0 < γ ≪ 1, in CMD. However,the step size should be set smaller as γ is small, so a good compromise in the choice of γ is needed.
RPMD and TRPMD.
(k)µi
11.11.2=(1 ≤ k ≤ P ).

mi

(144)

Thermostats

PIMD for NVT ensemble. In the present implementation of PIMD, the massive Nosé-Hoover chain
thermostats are attached to both the centroid modes (3N ) and the non-centroid modes (3N P − 3N ). Theenergy of the thermostats is given by(cent) 2
N
L X
M
X
X X
Piα,l,m(cent)

Hbath =+ kT Riα,l,m (cent)
2Q
α=x,y,zi=1
l=1 m=1iα,l,m


2
(k)
P X
L
N
X
X X
Piα,l
(k)

+
(145)
+ kT Riα,l  .
(k)2Q
α=x,y,zi=1
k=2 l=1iα,lThe M thermostat chains with the length L are multiply attached for each centroid degree of freedom. A
thermostat chain with the length L is attached for each non-centroid degree of freedom. The mass of thecentroid thermostats are chosen to beτbath 2(cent)
Qiα,l,m = kT M m−1
,
(146)
2π
where τbath is typically chosen to be the period of (the highest) vibrational frequency present in the system.
The mass of the non-centroid thermostats are chosen to be
(k)

Qiα,l

=

kT
.
ωP2

(147)

PIMD for NPT and NtT ensembles with a cubic box. The energy of the thermostats is given by(cent) 2
N
L X
M
X
X X
Piα,l,m(cent)

Hbath =+ kT Riα,l,m (cent)2Q
i=1 α=x,y,z l=1 m=1iα,l,m


2
(k)
P X
L
N
X
X X
Piα,l
(k)

+
+ kT Riα,l (k)2Q
i=1 α=x,y,z k=2 l=1
iα,l
!
2
L
M
b
X X Pl,mb++ kT Rl,m .
(148)
2Qbl,m
l=1 m=1
The mass of the centroid thermostats are chosen to beτbath 2(cent)
Qiα,l,m = kT M m−1
,
2π

231

(149)

where τbath is typically chosen to be the period of (the highest) vibrational frequency present in the system.
The mass of non-centroid thermostats are chosen to be
kT
(k)
(150)
Qiα,l =.
ωP2
The mass of box thermostats are chosen to be
Qbl,m

=


2
τ
kT M m−1 baro .
2π

(151)

PIMD for NPT and NtT ensembles with a hexahedron box. The energy of the thermostats is givenby
(cent) 2
N
L X
M
X
X X
Piα,l,m(cent)

Hbath =+ kT Riα,l,m (cent)
2Qiα,l,mi=1 α=x,y,z l=1 m=1


(k) 2
N
P X
L
X
X X
Piα,l
(k)

+
+ kT Riα,l (k)2Qiα,li=1 α=x,y,z k=2 l=1
!
2
L X
M
b
X
X X
Pαβ,l,mb++ kT Rαβ,l,m .
(152)
2Qbαβ,l,m
α=x,y,z β=x,y,z l=1 m=1
The mass of the centroid thermostats are chosen to beτbath 2(cent)
Qiα,l,m = kT M m−1
(153)
,
2π
where τbath is typically chosen to be the period of (the highest) vibrational frequency present in the system.
The mass of non-centroid thermostats are chosen to bekT(k)
Qiα,l =.
(154)
ωP2
The mass of box thermostats are chosen to be
Qbαβ,1,mτbaro 2= kT 6M m−1
2π

(155)

Qbαβ,l,mτbaro 2= kT M m−1
2π

(156)

and

for l ̸= 1.
BCMD. Non-centroid velocities are randomized at each step (i.e., Andersen thermostat is attached to thenon-centroid modes). The energy is conserved by keeping track of the jumps due to the randomization.
CMD. In the present implementation of CMD, the massive Nosé-Hoover chain thermostats are attachedonly to the non-centroid modes (3N P − 3N ). The energy of the thermostats is given by


(k) 2
N
P X
L
X
X X
Piα,l
(k)

Hbath =+ kT Riα,l  .
(157)
(k)
2Qiα,li=1 α=x,y,z k=2 l=1
A thermostat chain with length L is attached for each non-centroid degree of freedom. The mass of noncentroid thermostats are chosen to bekT 2(k)
Qiα,l =
γ .
(158)
ωP2
232

RPMD and TRPMD.
is zero,Thermostat is not used in the RPMD method. Thus, the energy of the thermostats
Hbath

= 0.

(159)

In TRPMD, Langevin thermostat is attached to the non-centroid modes, and thus the energy is notconserved.
11.11.3

Barostats

PIMD and PIHMC for NVT ensemble. The barostat is not used in the PIMD and PIHMC methods
for NVT ensemble since the volume is ﬁxed. Thus, the energy of the barostats is zero,
Hbaro

= 0.

(160)

PIMD and PIHMC for NPT ensemble with a cubic box. The energy of the barostat is given by
2

Hbaro

Pb
+ PV,
2Qb

=

(161)

where P b is the box velocity conjugate to the volume V. The box mass is chosen to be
τ
2
baro
Qb = 3(N + 1)kT
.
2π

(162)

PIMD and PIHMC for NPT ensemble with a hexahedron box. The energy of the barostats isgiven by
Hbaro

X

b
Pαβ

α,β=x,y,z

2Qbαβ

=

2

+ PV.

(163)

b
where Pαβis the box velocity conjugate to the box matrix hαβ . The box masses are chosen to be
τ
2
baro
Qbαβ = (N + 1)kT.
2π

PIMD and PIHMC for NtT ensemble with a hexahedron box.
by
Hbaro
The strain tensor is deﬁned by

=


ϵαβ

=

1
2

X

b
Pαβ

α,β=x,y,z

2Qbαβ

2

The energy of the barostats is given!

− tαβ ϵαβ V̄ ,

(165)


X

−1

h̄−1
γα hλγ hλν h̄νβ − δαβ(166)ν,γ,λ=x,y,z←→
where h̄ is the box matrix under zero tension. The box masses are chosen to be
2
τ
baro
Qbαβ = (N + 1)kT.
2π
Meanwhile, the stress tensor is given by
σαβwhere the pressure tensor is deﬁned as
Pαβ

(164)

= −

=

V̄
P
V αβ

(168)

−1
hαγ h̄−1γµ tµλ h̄νλ hβν .

(169)

X
γ,ν,µ,λ=x,y,z

233

(167)

CMD and RPMD. Barostat is not used in the CMD and RPMD methods since the volume is ﬁxed.
Thus, the energy of the barostat is zero,
Hbaro
11.11.4

= 0.

(170)

How to set up RPMD and CMD

In the RPMD and CMD calculations, the initial positions and the initial velocities, could be taken from theprevious PIMD calculation [31]. In such cases, since the ﬁctitious masses of RPMD and CMD are diﬀerent
from that of PIMD, the initial velocities must be scaled appropriately such that the temperature is kept thesame. This can be done by simply scaling the normal mode velocities for all the modes k,
s
µPIMD
k
q̇kX =(171)
q̇kPIMD .
µX
kwhere X is either RPMD or CMD. In CMD, the initial positions and the initial velocities of the massive
thermostats attached to the non-centroid modes can be also taken from the previous PIMD calculation. As
the masses of these thermostats in CMD are diﬀerent from those of PIMD by the factor 1/γ 2 , all the initial
velocities of the thermostats must be scaled by 1/γ in CMD. All the above velocity scaling is automaticallydone in the code.
11.11.5

Dual-level hybrid Monte CarloIn the dual-level HMC method, the low-level force, −∇V lo , is used for the trial move.
Meanwhilethe highlevel potential, V hi , is used for Metropolis acceptance probability, i.e., P = min 1, exp −βH hi . In thisway, the computation of high-level force, −∇V hi , can be avoided. This method works well if the diﬀerence
between ∆V hi and ∆V lo in each trial move is marginal compared to the thermal energy, kB T.
11.11.6

Fourth order path integral hybrid Monte Carlo

11.11.7

Translational and rotational correctionsIn the fourth order PIHMC method, the force without the correction, −∇ V harm + V phys , is used for theeﬀ
trial move.
probability, i.e., Meanwhile,eﬀthe full eﬀective potential, V , is used for Metropolis acceptanceP = min 1, exp −βH. In this way, the computation of Hessian matrix, ∇2 V , can be avoided. Thismethod works well if the change of fourth order correction, ∆V cor , in each trial move is marginal comparedto the thermal energy, kB T.

In order to obtain the vibrational spectra of isolated molecules from RPMD and CMD calculations, it would
be better to eliminate the overall translation and the overall rotation of the system [31]. To do this, thecorrection to the centroid velocity should be applied at the initial step. In addition, the correction to thecentroid force should be applied at every step during the run. Note, however, that as a trade-oﬀ of applying
these translational and the rotational corrections, the energy of the extended system will not be strictlyconserved. For convenience, the origin of coordinates is chosen to be the center of mass of the whole system.
correction of centroid velocity. First, the centroid velocity vector of i-th atom is
1 X (k)
ṙi .
P

(172)

− ∆q̇′ .

(173)

P(cent)

q̇i

=

k=1

The translational correction is applied using(cent)

q̇i(cent)←− q̇i234

The correction term is calculated as the center-of-mass velocity of the whole system,
P3N (cent) (cent)q̇j
j=1 µj′∆q̇ =.
P3N (cent)
j=1 µj(174)

Next, the rotational correction is applied using(cent)

q̇i(cent)←− q̇i− ∆q̇′′i .

(175)

The correction term is calculated as the contribution of velocity to the angular momentum of the wholesystem,∆q̇′′i(cent)= θ × qi,

(176)

where the centroid angular velocity vector is deﬁned as−1←→
θ = I (cent) L(cent) ,(177)

the centroid angular momentum vector as
L(cent)=N X(cent)(cent) (cent)
,
qi
× µi
q̇i

(178)

i=1

and the centroid moment of inertia tensor as(cent)Ixx=

N
X(cent)µi(cent) (cent)(cent) (cent)qiy+ qiz qiz ),(cent)
Ixy
=−

(qiy

i=1

correction of centroid force.

N
X(cent) (cent) (cent)qix qiy ,µietc. (179)i=1

The centroid force of i-th atom is
1 X (k)
Ḟi .
P

(180)

− ∆F′i .

(181)

P(cent)

Ḟi

=

k=1

The translational correction is applied using(cent)(cent)←− FiFi

The correction term is calculated as the force applied to the whole system,
1 X (cent)F.
N i=1 i(182)

− ∆F′′i .

(183)

N

∆F′i

=

Next, the rotational correction is applied using(cent)

Fi(cent)←− Fi

The correction term is calculated as the contribution of force to torque applied to the whole system,∆F′′i(cent)= µi(cent)

ω̇ × ri.

Here the time derivative of centroid angular momentum,−1←→ω̇ = I (cent) N(cent) ,

(184)

(185)

has been introduced using the centroid torqueN(cent)=N
X(cent)(cent)
ri
× Fi
.

(186)

i=1

For the special case of diatomic molecules, the component parallel to the bond in the ω̇ vector is eliminatedto avoid the redundant rotation.
235

11.12

Replica exchange hybrid Monte Carlo11.12.1

Temperature replica exchange

Consider P replicas for the system of N atoms with diﬀerent temperatures. If the replicas do not interact
each other, s-th replica constitute the canonical ensemble at temperature T (s) . The whole system of all
replicas combined together will then constitute the ensemble relevant to the probability density
( P
)








X
(1)
(P )
(1)
(P )
(s)
(s)
(187)
ρ Γ ,··· ,Γ=ρ Γ
× ··· × ρ Γ∝ exp −β H Γ
s=1where β(s)= k T1 (s)Band the temperature of the s-th replica is set to be

T

(s)

=T

(1)

T (P )T (1) Ps−1−1.

(188)

This probability density is the following symmetry on the exchange between the replicas s and t,




n
 


o
ρ · · · , Γ(t) , · · · , Γ(s) , · · · = ρ · · · , Γ(s) , · · · , Γ(t) , · · · exp β (s) − β (t) H Γ(s) − H Γ(t). (189)Therefore, according to the detailed balance condition, this ensemble would not be changed if the conﬁguration
is exchanged at random, with Metropolis acceptance probability being
P · · · , Γ(s) , · · · , Γ(t) , · · · → · · · , Γ(t) , · · · , Γ(s) , · · · = min(1, exp(−∆))
(190)
where


 



∆ = − β (s) − β (t) H Γ(s) − H Γ(t) .

(191)

In the REHMC method, this exchange attempt is done at the Monte Carlo stage that comes every few stepsof the integration of the equations of motion.
11.12.2

Hamiltonian replica exchange

Consider P replicas for the system of N atoms with diﬀerent potentials, each describing the intermediatealchemical stage between the physical systems, A and B, with the energies HA and HB , respectively. In thiscase, the energy of the s-th intermediate alchemical stage for the t-th replica is given by




P −s
s−1
H̃ (s) (Γ(t) ) =HA (Γ(t) ) +HB (Γ(t) ).
(192)
P −1
P −1
If the replicas do not interact each other, s-th replica constitute the canonical ensemble of the respective
systems. The whole system of all replicas combined together will then constitute the ensemble relevant to
the probability density
(
)
P






X
ρ Γ(1) , · · · , Γ(P ) = ρ Γ(1) × · · · × ρ Γ(P ) ∝ exp −β(193)H̃s (Γs )s=1where β = k 1T .
B

On the exchange of replicas s and t, Metropolis acceptance probability that preserves this

distribution is
P · · · , Γ(s) , · · · , Γ(t) , · · · → · · · , Γ(t) , · · · , Γ(s) , · · ·

where
∆

=

=

min(1, exp(−∆))

noβ H̃ (t) (Γ(s) ) + H̃ (s) (Γ(t) ) − H̃ (s) (Γ(s) ) − H̃ (t) (Γ(t) ) .

(194)

(195)

In the REHMC method, this exchange attempt is done at the Monte Carlo stage that comes every few stepsof the integration of the equations of motion.
236

11.13

Constrained MD

The total energy is given by
H

=

P h
X

(l)
Hsys

n

r(l) , p(l)

o

(l)
+ Vcv

n

Rc(l) , r(l)

oi
(196)

l=1

where {r(l) } and {p(l) } are the set of 3N -dimensional Cartesian coordinates and momenta of the system with(l)
the l-th constraint, while Rc is the coordinate of the l-th constraint. The energy of the system with thel-th constraint is described as
(l)
Hsys

 
piα
+ V r(l) .
2mii=1 α=x,y,z

(197)

 o2
Kc n (l)Rc − Rc(l) r(l)
,
2

(198)

(l) 2

N
X
X

=

The potential due to the constraint is
(l)
Vcv

=

(l)

where Kc is the force constant and Rc is the l-th constraint.

11.14

Metadynamics

The metadynamics method has been proposed by Laio and Parrinello [36]. In the PIMD code, the implementation has been done close to the version of reference [38]. The total energy is given by
H

=

P h
X

(l)
Hsys

l=1

+ V hills

nr(l) , p(l)

o

(l)
+ Tcv

n
o
n
oi
(l)
P (l)
+ Vcv
R (l) , r(l)noR (1) , · · · , R (P ) , r(1) , · · · , r(P )+ V cor + H bath .

(199)

where {r(l) } and {p(l) } are theCartesian set of 3N -dimensional coordinates and momenta of the system of the


(l)
(l)
(l)
(l)
l-th walker, while R (l) = R1 , · · · , RD and P (l) = P1 , · · · , PD are the set of D-dimensional
coordinate and momenta of ﬁctitious particle, respectively, of the l-th walker. The energy of the l-th walker
is described as
(l)
Hsys

=

 
piα
+ V r(l) .
2mii=1 α=x,y,z

N
X
X

(l) 2

(200)

The kinetic energy of ﬁctitious particle is
(l)
Tcv

=

D
(l)
X
P

2

d

d=1

2Md

,

(201)

where Md is the mass of d-th component of ﬁctitious particle. The sum of harmonic potentials acting between(l)(l)
the ﬁctitious particle Rd and the collective variable Rd is
(l)
Vcv

=

D
 o2
X
Kd n (l)(l)
Rd − Rd r(l)
,
2
d=1

237

(202)

(l)

where Kd is the force constant and Rd is the d-th collective variable of the l-th walker. The sum of Gaussian
hill potential is given by
 
2 

D
P N
hills
 Rd(l) (t) − Rd(l) (ta ) 

Y
X
X
exp −
V hills (t) =H (ta )Θ(t − ta )
,
(203)


2Wd (ta )
d=1
l=1 a=1
where H (ta ) and Wd (ta ) are the height and the width of each Gaussian hill, respectively, which has been
added at time ta , and Θ(t) is Heaviside step function. As the hills are added to the place where ﬁctitious
particle have passed, this term is history-dependent. The correction term,
V cor (t) =

−

P N
hills
X
X

H (ta )Θ(t − ta ),(204)

l=1 a=1

is necessary in order for the total energy to be conserved. Note that V hills (t) cancels with V cor (t) at t = ta ,making the potential continuous where the ﬁctitious particle is evolving. This correction term has not been
included in the original metadynamics paper. However, the correction does not aﬀect the trajectory of(l)metadynamics at all, since the derivative of V cor (t) with respect to Rd (t) is always zero. Therefore, thisterm is only needed when one wants to monitor the accuracy of the trajectory from the energy conservation.
Finally, H bath is the energy contribution of massive Nosé–Hoover chain thermostats. There are thermostat
chains attached to the respective degrees of freedom of the system, and a thermostat chain attached toﬁctitious particle. See the argument below to set thermostat masses.
The RESPA integrator is useful when the forces can be decomposed into slow and fast elements. In the
PIMD code, this technique is employed in metadynamics. The forces arising from Vcv and V hills are updatedwith a smaller increment than those arising from the physical potential, V .
There are several parameters to control metadynamics. The dimension of collective variables D, the hillheight H , and the hill width Wd (1 ≤ d ≤ D) are the parameters to be determined ﬁrst. During the run,
new hill is added every time when the collective variables move away from the last hill by 1.5 times the hillwidth, or exceeding the time limit after the last hill is added. The latter time is given by the parameter τlim .
The motion of ﬁctitious particle is related to the parameter τcv giving the characteristic time it takes for theparticle to move 1.5 times the hill width by thermal diﬀusion at temperature T . This determines the massof collective variables by2
τcv
Md = kT
.
(205)
1.5Wd
The parameter τfc is the oscillation period for V cv . This determines the force constant by 2
2π
K d = Md
.
τfc

(206)

Here is a recipe to start metadynamics simulations.
1. Decide the dimension of collective variables, D. Then, for each collective variable 1 ≤ d ≤ D, choose
the type which properly describes the chemical reaction. So far, there are 6 types implemented, i.e.,(1) bond distance of atoms A–B,
(2) bond angle associated with atoms A–B–C,(3) dihedral angle associated with atoms A–B–C–D,(4) diﬀerence between A–B and B–C distances,(5) coordination number between A and B species.
(6) diﬀerence in coordination number between A and B species and C and D species.
Set the collective variables by the keyword <nmeta>.
238

2. Set the hill height, H by the keyword <gh_meta>.
3. Set the hill width, Wd , for each kind of collective variable by the keyword <gw_meta>.
4. Set characteristic time, τcv , for ﬁctitious particle to move 1.5 times the hill width, which is given by
the keyword <time_cv_meta>.
5. Set the time limit of adding hills, τlim , by the keyword <time_limit_meta>.
6. Set the oscillation period of harmonic potential, τfc , by the keyword <time_fc_meta>.
7. Set the step size dt to update the physical potential V is by the keyword <dt>. Also set the number of
updates of the quickly varying hills potential V hills and the harmonic potential V cv per step <dt> by
the keyword <nref_meta>.
8. (optional) Set the maximum number of Gaussian hills by the keyword <mg_meta>.
9. (optional) Set the print interval of energy components by the keyword <iprint_meta>.
10. (optional) Set the print interval of hills reconstruction by the keyword <iprint_rec_meta>. Set theparameters for hills reconstruction by the keywords <params_rec_meta> and <ndim_rec_meta>.
11. (optional) Set print the interval of trajectory of collective variables by the keyword <iprint_cv_meta>.
12. Set characteristic time scale to determine the mass of thermostat attached to ﬁctitious particle by the
keyword <time_cv_bath>.
In some cases, it might be convenient to change the Gaussian hill height and hill width in the middle of
the run. To do so, ﬁrst interrupt the run by soft exit, and then restart it again with diﬀerent settings of<gh_meta> and <gw_meta>. During the restarted run, Gaussian hill functions speciﬁed in input.dat will be
simply added to the list hills.ini.

11.15

Conventional and well tempered metadynamics

In conventional metadynamics, the bias potential is V hills is equal to the deposited hills U hills , i.e.,
V hills = U hills ,(207)

Ahills = −U hills .

(208)

and the free energy is estimated by

Meanwhile in well tempered metadynamics, the bias potential is
U hillshills
V= kB ∆T log 1 +
kB ∆T

(209)

and the free energy landscape is estimated by
U hills
Ahills = −kB (T + ∆T ) log 1 +
kB ∆T

(210)

Ahills = −γV hills(211)

and therefore

where γ = T +∆T∆T . Well tempered metadynamics with ∆T = ∞ corresponds to conventional metadynamics.
The deposited hills U hills are given in the ﬁle hills.ini. The free energy landscape Ahills is given in the ﬁlerec.out.
239

The relation between the unbiased probability
e−βA (R)dRe−βAhills (R)(212)

e−β(A (R)+V (R),t)dRe−β(Ahills (R)+V hills (R),t)

(213)

hills

Punbiased (R) = R
and the unbiased probablity

hills

Pbiased (R, t) = R

hills

is
Punbiased (R) = Pbiased (R, t)eβ(Vhills(R,t)−c(t))

(214)

where
R
c(t) = β

−1

log R

dRe

dRe−βA

hills

R

(R)

=β
−β(Ahills (R)+V hills (R,t))

−1

log R

hills

dReβγV (R,t)
dReβ(γ−1)V hills (R,t)) .

Assuming local equilibrium approximation and ergodicity, the unbiased average of A is given by
D
E
hills
RT
hills
Aeβ(V (R,t)−c(t))A(t)eβ(V (R,t)−c(t)) dt
biased0⟨A⟩unbiased ≈= RT,eβ(V hills (R,t)−c(t)) biasedeβ(V hills (R,t)−c(t)) dt

(215)

(216)

0

where the last expression describes the time average of the biased metadynamics trajectory.
11.15.1

Coordination number

The coordination number between the species A and the species B using the rational function is given by νijrij
X X 1 − dij r µij .
Rd =
(217)
ij
i∈A j∈B 1 − dijwhere µij , νij and dij are three parameters that determine the functional form. The coordination number
within species A is given by νijrij
X X 1 − dij r µij .
Rd =
(218)
ij
i∈A j>i∈A 1 − d
ij

11.16

Well sliced metadynamics

The total Hamiltonian is [80, 81]
H = H cons + H meta + H afed + H bath ,

(219)

where
H cons

=

P h
X

(l)
Hsys

n

r(l) , p(l)

l=1

240

o

(l)
+ Vcv

n

Rc(l) , r(l)

oi
(220)

is the contribution from constrained MD,
H meta

=

P h
X

(l)
Hsys

l=1

+ V hills

n
o
n
o
n
oi
(l)
(l)
(l)
r(l) , p(l)
+ Tcv
P (l)
+ Vcv
R (l)
m
m ,r

n
o
(P ) (1)R (1), · · · , r(P )+ V corm , · · · ,Rm , r(221)

is the contribution from metadynamics,
H afed

=

P h
X

(l)
Hsys

n

r(l) , p(l)

o

(l)
+ Tcv

n
o
n
oi
(l)
(l)
P (l)
+ Vcv
R (l)
a
a ,r

(222)

l=1

is the contribution from adiabatic free energy dynamics, and H bath is the contributions of thermostats.
Note that in the implementation in the PIMD code, the temperature is always set equal to the physicaltemperature. The free energy respect to the constrained MD collective variable, Rc , and the metadynamics
collective variable, Rm , is deﬁned as
Z−1
A(Rc , Rm ) = −β log dr exp(−βVsys (r))(223)
The reweighting scheme employed in the PIMD code is diﬀerent from that of the original method. We
use the equivalence for the free energy with
A(Rc , Rm ) = A′c (Rc ) + ∆ARc (Rm )where we have deﬁned the free energy in the reduced spaceZ
A′c (Rc ) = −β −1 log dRm exp(−βA(Rc , Rm ))

(224)

(225)

and the shift from it∆ARc (Rm ) = −β −1 log R

exp(−βA(Rc , Rm )).
dRm exp(−βA(Rc , Rm ))(226)

The ﬁrst term is evaluated by thermodynamic integration along the set of diﬀerent constraints(P )(1)(Rc , · · · , Rc ),!
Z ∇A′ (R (l+1) ) + ∇A′ (R (l) )
X
c
c
c
c
A′c (Rc ) = dRc ∇A′c (Rc ) =Rc(l+1) − Rc(l)
(227)
2
l

where

R
dr exp(−βVsys (r))∇δ(Rc − Rc (r))
dRm exp(−βA(Rc , Rm ))= R
dRm exp(−βA(Rc , Rm ))dr exp(−βVsys (r))δ(Rc − Rc (r))

R∇∇A′c (Rc ) = R
RR

dr exp(−β(Vsys (r) + Vcv (r, Rc )))[−βKc (Rc − Rc (r))]
R
RdRc dr exp(−β(Vsys (r)) + Vcv (r, Rc )))R
RR
dRm dRc dr exp(−βV )[−βKc (Rc − Rc (r))] exp(β(V hills (Rm ) + V cor ))R
RR=
dRm dRc dr exp(−βV ) exp(β(V hills (Rm ) + V cor ))
≈

=

dRc

⟨[−βKc (Rc − Rc (r))] exp(β(V hills (Rm ) + V cor ))]⟩
⟨exp(β(V hills (Rm ) + V cor ))⟩

(228)

with
V = Vsys (r) + Vcv (r, Rc ) + V hills (Rm ) + V cor .
241

(229)

Note that the second term does not change upon addition of any constant function of Rc . Explicitly,∆ARc (Rm ) = −β −1 log R

exp(−βA′′Rc (Rm ))(230)

dRm exp(−βA′′R (Rm ))cforA′′Rc (Rm ) = A(Rc , Rm ) + c(Rc ).

(231)

Thus, A′′Rc (Rm ) is taken as the metadynamics free energy surface at each constraint, Rc .

11.17

Mean force dynamics (AFED)The Helmholtz free energy of the l-th bead (replica) is given as
A(l)cv (R1 , · · · , RD ) =−β −1 log

Z
(l)

) D
(
Y
(l)
(l)
−βV (l) r1x ,··· ,rN z(l)dr1x · · · drN z e


 
(l)
(l)
δ Rd − Rd r(l)

(232)

d=1

where {r(l) } and {p(l) } are theCartesian coordinates and momenta of the system of set of 3N -dimensional
 (l)
 (l)
(l)
(l)
(l)
(l)
= P1 , · · · , PD are the set of D-dimensional= R1 , · · · , RD and P
the l-th bead, while R(l)coordinate and momenta of the ﬁctitious CV particles, respectively, of the l-th bead. Rd is the d-th collective
variable of the l-th bead.
In driven AFED [76], the free energy can be approximated by
Z
(l)
(l)
(l)
−1
Acv ≈ −β log dr1x · · · drN z e−β (V +Vcv ) + const.
(233)
where
(l)
Vcv

=

D
 o2
X
Kd n (l)(l)
Rd − Rd r(l)
2

(234)

d=1

(l)

(l)

is the sum of harmonic potentials acting between the ﬁctitious particle Rd and the collective variable Rd
with the force constant Kd . The free energy gradient is given by
n
o
R
(l)
(l)
(l)
(l)
(l)
 oE
D
n
dr1x · · · drN z Kd Rd − Rd r(l) e−β (V +Vcv )
∂Acv
(l)
(l)
(
)
=
r(l)
.
(235)
=
K
R
−
R
d
d
d
(l)
(l)
R
−β V (l) +Vcv
md
∂Rd
dr1x · · · drN z e
Except the case of ﬁnite diﬀerence version of gentlest ascent dynamics, the coordinates and momenta arecommon for all the beads 1 ≤ l ≤ P , i.e.,(l)

Rd = Rd ,(l)

Pd = Pd(236)

In this case, the mean force in Eq.(235) can be estimated using parallel-dynamics [74] as
D
n
 oE
X
∂Acv
(l)
=
Wl Kd Rd − Rd r(l)
,
∂Rd
md

(237)

e−βw
Wl = P −βwl ,
le

(238)

P

l=1

where
l

242

and
l

w =

X Z Rd (t)*Rd (0)

d

(l)

∂Vcv
∂Rd

+
dRd .

(239)

md

Wl in Eq.(238) is invoked when <ioption_afed> = 2, while Wl is taken as “1” for any replica with
<ioption_afed> = 1 (default setting). See ref.[74] for the details of the parallel-dynamics.
11.17.1

Steepest descent

Theory. The minimum point of free energy is searched by steepest descent. The mass-weighted coordinateof collective variable is deﬁned asp
Qd =Md Rd .
(240)
The steepest descent path is deﬁned by the trajectory of the equation,∇d Acv|∇Acv |

(241)

∂Acv
1 ∂Acv=p,∂Qd
Md ∂Rd

(242)


2
D
X
∂Acv
1
.
=
Md ∂Rd

(243)

dQd
dt

−

=

where the free gradient with respect to Qd is deﬁned by∇d Acv=and the norm is given by|∇Acv |

2

d=1

Then Eq.(241) is equivalent to
Md

dRd
dt

=

−

1 ∂Acv.
|∇Acv | ∂Rd(244)

In the PIMD code, the mass of ﬁctitious particle is set as
Md =1∆Rdref(245)

2

where is the reference shift ∆Rdref is a parameter with the same dimension as that of the corresponding
collective variable. Then ∆tcv becomes dimensionless.
Implementation.
• The Euler method
Qd (t + dt) = Qd (t) −∇d Acvdt|∇Acv |

(246)

is employed.
• The PIMD code makes sure if the position of ﬁctitious particle are inside the designated range
Rdmin < Rd < Rdmax(247)

Acv < Amax
cv .

(248)

and the free energy range

The calculation stops if they go out of bounds. The parameters Rdmin and Rdmax are given by the
keyword <params_afed>, while the parameters Amax
is given by the keyword <fenergy_max_afed>.
cv
243• The AFED step size is initially given by ∆tcv = (the value given by the keyword <dt_descent_afed>),but it is diminished when it is judged to be close the minimum. The judgement is done from the angle
between free energy gradients of the current AFED step (t) and the previous AFED step (t − ∆tcv ),∇Acv (t) · ∇Acv (t − ∆tcv )(249)
ξ = arccos.
|∇Acv (t)| |∇Acv (t − ∆tcv )|If ξ > 90◦ , it is judged to be converging to a stationary point (a minimum point, in this case). Then
∆tcv is descreased by multipling a damping factor λafed , i.e., ∆tcv → λafed ∆tcv , where λafed is a value
given by the keyword <dt_damp_afed>. On the other hand, if ξ ≤ 90◦ continues for more than ﬁve
consecutive AFED steps, it is rejudged to be far from a stationary point. Then ∆tcv is increased again
by dividing by the damping factor, ∆tcv → ∆tcv /λafed . The latter happens only as long as ∆tcv issmaller than the initial value given by the keyword <dt_descent_afed>. When ∆tcv becomes smaller
than a converged AFED step size, ∆tcv < (the value given by the keyword <dt_conv_afed>), thecalculation stops.
Simulation setup.

Here is a recipe to start steepest descent simulations.

1. Decide the dimension of collective variables, D. Then, for each collective variable 1 ≤ d ≤ D, choose
the type which properly describes the chemical reaction. So far, there are 5 types implemented, i.e.,(1) bond distance of atoms A–B,
(2) bond angle associated with atoms A–B–C,(3) dihedral angle associated with atoms A–B–C–D,(4) diﬀerence between A–B and B–C distances,(5) coordination number between A and B species.
Set the collective variables by the keyword <ncons>.
2. Set the force constant of harmonic potential, Kd , by the keyword <params_cons>.
3. Set the initial AFED step size, the damping factor, and the converged AFED step size by the keywords<dt_descent_afed>, <dt_damp_afed>, and <dt_conv_afed>, respectively.
4. Set the reference shift, ∆Rdref , as well as the lower bound Rdmin and the upper bound Rdmax , for eachkind of collective variable by the keyword <params_afed>.
5. Set the upper bound of the free energy to be explored, Amax
cv , by the keyword <fenergy_max_afed>.
6. Set the number of preliminary and productive MD steps by the keyword <nstep_pre_afed> and<nstep_pro_afed>, respectively.
11.17.2

Gentlest ascent dynamics

Theory. The saddle point of free energy is searched by gentlest ascent dynamics. The position of ﬁctitious
particle is described in terms of the mass weighted coordinates Qd . The gentlest ascent dynamics is deﬁned
by the trajectory of the equation,
dQd
dt

=

F̃
qP d

with
F̃d = −∇d Acv +

(250)

D
2
d=1 F̃d2

DX!
∇d′ Acv · nd′

d′ =1

244

nd ,

(251)

where nd is a vector that is subject to the equation
" D
X
dnd
1
= gad −
∇2dd′ Acv · nd′ +
dt
γ
′

D
X
d′ =1

d =1

!

D
X

nd′

∇2d′ d′′ Acv · nd′′

#
nd

(252)

d′′ =1

with the hessian∇2dd′ Acv =∂ 2 Acv∂Qd ∂Qd′(253)

and the parameter γ gad .
Implementation.
• The Euler method is used to update the position of ﬁctitious particle.
Qd (t + dt) =F̃
Qd + q P dwithF̃d = −ad +

2

dt

(254)

D
2
d=1 F̃dDX!
ad′ · nd′

nd .

(255)

d′ =1

The vector ad is computed either analytically or numerically (see below).
• The following equation is used to update the unit vector.
nd (t + dt) = qPnd (t) − bd (t)dt/γ gad

(256)

D
gad ]2d′ =1 [nd′ (t) − bd′ (t)dt/γ

where
bd (t) =D
X∇2dd′ Acv (t) · nd′ (t).

(257)

d′ =1

The vector bd is computed either analytically or numerically (see below).
• The PIMD code makes sure if the position of ﬁctitious particle are inside the designated range
Rdmin < Rd < Rdmax .

(258)

The calculation stops if they go out of bounds. The parameters Rdmin and Rdmax are given by theis given by the keyword <fenergy_max_afed>.
keyword <params_afed>, while the parameters Amax
cv
• The AFED step size is initially given by ∆tcv = (the value given by the keyword <dt_ascent_afed>),but it is diminished when it is judged to be close the saddle. The judgement is done from the angle
free energy gradients of the current AFED step (t) and the previous AFED step (t − ∆tcv ),∇Acv (t) · ∇Acv (t − ∆tcv )ξ = arccos.
(259)|∇Acv (t)| |∇Acv (t − ∆tcv )|If ξ > 90◦ , it is judged to be converging to a stationary point (a saddle point, in this case). Then ∆tcv isdescreased by multipling a damping factor λafed , i.e., ∆tcv → λafed ∆tcv , where λafed is a value given by
the keyword <dt_damp_afed>. On the other hand, if ξ ≤ 90◦ continues for more than ﬁve consecutive
AFED steps, it is rejudged to be far from a stationary point. Then ∆tcv is increased again by dividing
by the damping factor, ∆tcv → ∆tcv /λafed . The latter happens only as long as ∆tcv is smaller than theinitial value given by the keyword <dt_descent_afed>. When ∆tcv becomes smaller than a converged
AFED step size, ∆tcv < (the value given by the keyword <dt_conv_afed>), the calculation stops.
245• In the case of <hessian_ascent_afed> = ANALITICAL, the hessian is calculated analytically.
(l)
D
E D
hD
E
E i
∂ 2 Acv
(l)
(l)
(l)
(l)
=
δ
−
F
F
F
F
′ Kd − β
′
′
dd
d
d
d
d
(l)
(l)
md
md
md
∂Rd ∂Rd′
where

n
 o
(l)
(l)
(l)
Fd = −Kd Rd − Rd r(l) .

(260)

(261)

• In the case of <hessian_ascent_afed> = NUMERICAL, the ﬁnite diﬀerence method is employed. Thisis done in the following
way. Theo free energy gradient, ∇d′ Acv , is evaluated at each bead s, at the
n
(s)

(s)

position Q (s) = Q1 , · · · , QD

with 1 ≤ s ≤ P . The P beads are centered at Q = {Q1 , · · · , QD }and they are spread along the unit vector n = {n1 , · · · , nD } with equal space from −ϵgad to +ϵgad , i.e.,(s)

Qd = Qd + nd ϵgad
s
where


ϵgad
= ϵgads(262)

2s − P − 1
P −1


(263)

and ϵgad is a constant value given by the keyword <fdiff_sampling_afed>.
From the ﬁrst order Taylor
expansion of the gradient of each bead ∇d′ Acv Q (s) around the center Q , one obtains

2∇d′ Acv Q (s) = ad′ + bd′ ϵgad
+ cd′ ϵgad
+ ···
(264)
s
s
where
Q ) = ∇d′ Acv
ad′ = ∇d′ Acv (Q

(265)

and
bd′ =

D
X

Q ) · nd =∇2dd′ Acv (QDX∇2dd′ Acv · nd .

(266)

d=1

d=1


Thus, ad′ and bd′ can be obtained by the least-square ﬁtting of the function ∇d′ Acv Q (s) with respect
to ϵgads . In the PIMD code, the least-square ﬁtting to a quadratic function is employed.
The implementation is modiﬁed from version 2.3 as follows, with respect to the guiding vector n.
• When restarted with the status “EQ”, a random displacement is invoked in the ﬁrst AFED step, andn is generated along the vector of the displacement.
• When restarted with the status “AS”, a calculation of full hessian H (which requires the computationaltime equal to D AFED steps where D is the CV dimension) is invoked at the ﬁrst AFED step, and n
is set as the lowest eigenvector in the ﬁrst AFED step.
• A calculation of H is invoked at every 20 AFED steps, and n is reset as the lowest eigenvector.
• n is not updated at any AFED step while the value of ω 2 = n† · Hn is positive (which means that theconvex is downward along the direction n).
The AFED step size is controlled in the following manner.
• The AFED step size is varied after the ﬁfth AFED step.
• The AFED step is accepted as long as the angle between the last two moves do not exceed 90 degrees.
• If the last AFED step is rejected the AFED step size is diminished by 70 percent.
• However, if the last ﬁve moves are accepted the AFED step size is increased again by 30 percent.
• The run is terminated once the AFED step size becomes less than a threshold value.
246

Simulation setup.

Here is a recipe to start gentlest ascent dynamics simulations.

1. Decide the dimension of collective variables, D. Then, for each collective variable 1 ≤ d ≤ D, choose
the type which properly describes the chemical reaction. So far, there are 5 types implemented, i.e.,(1) bond distance of atoms A–B,
(2) bond angle associated with atoms A–B–C,(3) dihedral angle associated with atoms A–B–C–D,(4) diﬀerence between A–B and B–C distances,(5) coordination number between A and B species.
(6) diﬀerence in coordination numbers between A–B and C–D species.
(7) center of mass of A and B species.
(8) diﬀerence of center of masses of A and B species.
Set the collective variables by the keyword <ncons>.
2. Set the force constant of harmonic potential, Kd , by the keyword <params_cons>.
3. Set the parameter of gentlest ascent dynamics, γ gad , by the keyword <gamma_ascent_afed>.
4. Set the initial AFED step sizes of descent and ascent trajectories, the damping factor, and the converged AFED step size by the keywords <dt_descent_afed> <dt_ascent_afed>, <dt_damp_afed>,and <dt_conv_afed>, respectively.
5. Set the reference shift, ∆Rdref , as well as the lower bound Rdmin and the upper bound Rdmax , for eachkind of collective variable by the keyword <params_afed>.
6. Set the keyword <hessian_ascent_afed>, either “NUMERICAL” or “ANALYTICAL”. For the numerical case, set the ﬁnite diﬀerence parameter, ϵgad , by the keyword <fdiff_sampling_afed>.
7. Set the upper bound of the free energy to be explored, Amax
cv , by the keyword <fenergy_max_afed>.
8. Set the number of preliminary and productive MD steps by the keyword <nstep_pre_afed> and<nstep_pro_afed>, respectively.
11.17.3

Automated search

Implementation. The calculation of automated search proceeds as follows.
1. The calculation starts with an initial descent search (DE) for a free energy minimum point (EQ). The
data is written to the list ﬁle auto.ini.
2. Ascent search (AS) is shot from this EQ in a random direction.
3. If a free energy saddle point (TS) is found, check the list ﬁle whether this is a new one. If this is an
old one (previously found TS), go back to 2.
4. Once a new TS is found, the data is added to the list ﬁle. Then start two descent searches in forward
and backward directions from the TS. These trajectories, referred to as D1 and D2, should lead to two
minima. The minima are checked. If they are new, the data are added to the list ﬁle.
5. Ascent search is failed either when it ﬁnds an old TS, it goes to regions with free energy too high, or
it falls out of bounds.

247

6. If the ascent search is done Nshot times from the same EQ, or it does not ﬁnd a new TS for Nmiss
consecutive times from the same EQ, the ascent search from that EQ is abandoned. When this happens,
another EQ in the list ﬁle will be investigated. Jumping to the new EQ, it goes back to 2.
7. The calculation stops when all EQ has experienced the ascent search.
The output ﬁles are• auto.ini: The list of EQ and TS experienced.
• afed.ini: The AFED restart ﬁle.
• EQ.*.tar and TS.*.tar: The tape archive of the geometry ﬁle geometry.ini and the restart ﬁle afed.ini
of EQ and TS, respectively, where * is the ID number.
The point in the mass-weighted CV space, Qd , is identiﬁed as a new point when it is away from all otherpoints in the list, Qdlist , i.e.,
v
uD
uX
2
t
Qd − Qdlist > Q rad .
(267)
d=1

Otherwise Qd is identiﬁed as an old point.
Simulation setup.

Here is a recipe to start gentlest ascent dynamics simulations.

1. Decide the dimension of collective variables, D. Then, for each collective variable 1 ≤ d ≤ D, choose
the type which properly describes the chemical reaction. So far, there are 5 types implemented, i.e.,(1) bond distance of atoms A–B,
(2) bond angle associated with atoms A–B–C,(3) dihedral angle associated with atoms A–B–C–D,(4) diﬀerence between A–B and B–C distances,(5) coordination number between A and B species.
Set the collective variables by the keyword <ncons>.
2. Set the force constant of harmonic potential, Kd , by the keyword <params_cons>.
3. Set the parameter of gentlest ascent dynamics, γ gad , by the keyword <gamma_ascent_afed>.
4. Set the initial AFED step size, the damping factor, and the converged AFED step size by the keywords<dt_ascent_afed>, <dt_damp_afed>, and <dt_conv_afed>, respectively.
5. Set the reference shift, ∆Rdref , as well as the lower bound Rdmin and the upper bound Rdmax , for eachkind of collective variable by the keyword <params_afed>.
6. Set the keyword <hessian_ascent_afed>, either “NUMERICAL” or “ANALYTICAL”. For the numerical case, set the ﬁnite diﬀerence parameter, ϵgad , by the keyword <fdiff_sampling_afed>.
7. Set the upper bound of the free energy to be explored, Amax
cv , by the keyword <fenergy_max_afed>.
8. Set the number of preliminary and productive MD steps by the keyword <nstep_pre_afed> and<nstep_pro_afed>, respectively.
9. Set the reference radius, Q rad , by the keyword <radius_auto_afed>.
10. Set the maximum number of shots from a minimum, Nshot , by the keyword <nshot_auto_afed>.
11. Set the number of consecutive missed shots from a minimum, Nmiss , the keyword <nmiss_auto_afed>.
248

11.17.4

Temperature accelerated molecular dynamics

Theory. In temperature accelerated molecular dynamics (TAMD) with the Nosé-Hoover thermostat [76],the pseudo Hamiltonian is deﬁned as
tamd
bath
H tamd = Tcv + Vcv
+ Hcv

(268)

where
Tcv

=

D
X
P 2
d

2Md

d=1

,

(269)

bath
is the kinetic energy of ﬁctitious particles and Hcv
is the energy of the thermostat attached to the ﬁctitious
particles. The eﬀective potential is deﬁned as


T
tamd
Vcv
=
Acv
(270)
Ttamd

where the temperature Ttamd is an input parameter.
The mass of the collective variables is determined by
Md =kB T ∆t2cv∆Rdref2(271)

where the parameter ∆Rdref is the reference displacement of the ﬁctitious particle given by <params_afed>(see Sec.3.13.1).
When the AFED time step ∆tcv is set to be dimensionless, Md has the dimension of (energy)/(collective
variable) (default is “∆tcv = 1.0”).
bath= 0. For NVTImplementation. For NVE-type TAMD, the thermostats are not applied, and thus Hcv
and VS-type TAMD, the temperature is maintained to be the physical temperature, T , by the Nosé-Hooverthermostat or the velocity scaling (Gaussian thermostat), respectively, which are attached to the whole setof ﬁctitious variables (global thermostatting). The energy of the Nosé-Hoover thermostat is given by
bath
Hcv
=

P12
+ DkB T R1 .
2Q1

(272)

2
, where τcv is the typical time scale of ﬁctitious
where the thermostat mass is chosen to be Q1 = DkB T τcvvariables.
The parameters Rdmin and Rdmax are the lower and upper bounds, respectively, in the collective variable
space to be explored. If the component d of the collective variables goes out of bounds, Rd > Rdmax or
Rd < Rdmin , then the velocity of the component d is reﬂected, i.e., Vd → −Vd .
sets the upper limit of the free energy. If Acv exceeds Amax
The parameter Amax
cv
cv , then the velocity isreversed, i.e., Vd → −Vd for all d.

Simulation setup.

Here is a recipe to start TAMD simulations.

1. Decide the dimension of collective variables, D. Then, for each collective variable 1 ≤ d ≤ D, choose
the type which properly describes the chemical reaction. So far, there are 5 types implemented, i.e.,(1) bond distance of atoms A–B,
(2) bond angle associated with atoms A–B–C,(3) dihedral angle associated with atoms A–B–C–D,(4) diﬀerence between A–B and B–C distances,(5) coordination number between A and B species.
Set the collective variables by the keyword <ncons>.
249

2. Set the TAMD type, <tamd_type> = NVE, NVT, VS.
3. Set the TAMD parameter Ttamd , by the keyword <temperature_tamd>.
4. Set the reference displacement, ∆Rdref , as well as the lower bound Rdmin and the upper bound Rdmax , foreach kind of collective variable by the keyword <params_afed>. Note that ∆Rdref is used to determine
Md using Eq.(271). Additionally, one can use <mass_afed> to furthermore tune the Md .
5. Set the force constant of harmonic potential, Kd , by the keyword <params_cons>.
6. Optionally, the maximum free energy value (Amax
cv ) to be sampled and the AFED step size ∆tcv can be
manually set by <fenergy_max_afed> and <dt_tamd>, respectively. Also, the mass of the thermostat
should be set by <niter_bath_afed> for <tamd_type> = NVT.
11.17.5

Logarithmic mean force dynamics

Theory. In logarithmic mean force dynamics (LogMFD) with the Nosé-Hoover thermostat, the pseudo
Hamiltonian is deﬁned aslog
bath
H log = Tcv + Vcv
+ Hcv

(273)

where
Tcv

D
X
P 2
d

=

d=1

2Md

,

(274)

bath
is the kinetic energy of ﬁctitious particles and Hcv
is the energy of the thermostat attached to the ﬁctitious
particles. The eﬀective potential is deﬁned as

log
(275)
Vcv
= sgn (Acv ) γlog log αlog |Acv | + 1

where αlog and γlog are positive input parameters. In the case that the largest free-energy barrier in the CVspace, ∆F , can be roughly estimated, αlog is given as αlog ∼ 1.5log k∆FT /kB T (see ref. [74]). Note thatB
αlog can take any positive value as long as the ﬁctitious variables suﬃciently explore the CV space. Also,
γlog is normally set as γlog = 1/αlog (default setting).
The free energy is calculated on-the-ﬂy as
bath
sgn H − Tcv − Hcv
Acv =
αlog

(
exp

bath
H log − Tcv − Hcv
γlog

!

)
−1

(276)

from the conservation of H log . The origin of the free energy is set by speciﬁng the value of Acv (0) (default is“0.003”). When restarted, Acv (0) is automatically set by afed.ini, which contains the ﬁnal value of Acv in theprevious LogMFD run. In the same way as Eq. (276), Acv is calculated at each AFED step in NVE and VS
LogMFD calculations (for the latter, more details will be discussed in the forthcoming paper by Morishita etal.).
The mass of the collective variables is determined by
Md =kB T ∆t2cv∆Rdref2(277)

where the parameter ∆Rdref is the reference displacement of the ﬁctitious particle given by <params_afed>(see Sec.3.13.1). When the AFED time step ∆tcv is set to be dimensionless, Md has the dimension of(energy)/(collective variable) (default is “∆tcv = 1.0”).
250

bath
Implementation. For NVE-type LogMFD, the thermostat is not applied, and thus Hcv= 0. For NVTand VS-type LogMFD, the temperature is maintained to be the physical temperature, T , by the Nosé-Hooverthermostat or the velocity scaling (Gaussian thermostat), respectively, which are attached to the whole setof ﬁctitious variables (global thermostatting). The energy of the Nosé-Hoover thermostat is given by
bath
Hcv
=

P12
+ DkB T R1 .
2Q1

(278)

2
where the thermostat mass is chosen to be Q1 = DkB T τcv, where τcv is the typical time scale of ﬁctitious
variables.
The parameters Rdmin and Rdmax are the lower and upper bounds, respectively, in the collective variable
space to be explored. If the component d of the collective variables goes out of bounds, Rd > Rdmax or
Rd < Rdmin , then the velocity of the component d is reﬂected, i.e., Vd → −Vd .
The parameter Amax
sets the upper limit of the free energy. If Acv exceeds Amax
cv
cv , then the velocity isreversed, i.e., Vd → −Vd for all d.

Simulation setup.

Here is a recipe to start LogMFD simulations.

1. Decide the dimension of collective variables, D. Then, for each collective variable 1 ≤ d ≤ D, choose
the type which properly describes the chemical reaction. So far, there are 5 types implemented, i.e.,(1) bond distance of atoms A–B,
(2) bond angle associated with atoms A–B–C,(3) dihedral angle associated with atoms A–B–C–D,(4) diﬀerence between A–B and B–C distances,(5) coordination number between A and B species.
Set the collective variables by the keyword <ncons>.
2. Set the LogMFD type, <logmfd_type> = NVE, NVT, VS.
′′

3. Set the LogMFD parameter α (αlog = α /kB T ) by the keywords <alpha_logmfd> (γlog can be independently set by <gamma_logmfd>, but normally the default setting, γlog = 1/αlog , is suﬃcient).
4. Set the reference displacement, ∆Rdref , as well as the lower bound Rdmin and the upper bound Rdmax , foreach kind of collective variable by the keyword <params_afed>. Note that ∆Rdref is used to determine
Md using Eq.(277). Additionally, one can use <mass_afed> to furthermore tune the Md .
5. Set the force constant of harmonic potential, Kd , by the keyword <params_cons>.
6. Optionally, the origin of the free energy [Acv (0)], the maximum free energy value (Amax
cv ) to be sampled,
and the AFED step size ∆tcv can be manually set by <fenergy_ini_logmfd>, <fenergy_max_afed>,and <dt_logmfd>, respectively. Also, the mass of the thermostat should be set by <niter_bath_afed>
for <logmfd_type> = NVT.

11.18

Nonadiabatic dynamics

In nonadiabatic dynamics, the time-dependent coeﬃcient of adiabatic electronic state, Ck (t), is introduced.
|Ψk (t)⟩ =

state
X

Ck (t) |Φk (r(t))⟩

(279)

k

where Ψk (t) is the total electronic wave function and Φk (r(t)) is the adiabatic wave function at time t,
implicitly depending t through the instantaneous nuclear conﬁguration r(t). The latter is the deﬁned as the251eigenvector of Born-Oppenheimer Hamiltonian
ĤBO |Φk (r(t))⟩ = Vk (r) |Φk (r(t))⟩(280)

Vk (r(t)) = ⟨Φk (r(t))|ĤBO (r(t))|Φk (r(t))⟩(281)

where the eigenvalue

corresponds to the adiabatic potential energy of k-th state. The density matrix is given byρkl (t) = Ck∗ (t)Cl (t)(282)

and the diagonal element, ρkk (t), denotes the state density.
Now, the electronic equations of motion are given byiℏĊl (t) = Cl (t)Vl (r(t)) − iℏ

state
X

Ck (t)N
X
X

ṙjα (t) · djα,kl (r(t)).

(283)

j=1 α=x,y,zk̸=lwhere is the potential energy of the k-th state where
djα,kl (r(t)) = ⟨Φk (r(t))|∂|Φ (r(t))⟩∂rjα l(284)

is the nonadiabatic coupling vector.
Mean ﬁeld dynamics In Ehrenfest mean ﬁeld dynamics, the nuclei move according to the average force
weighted by the state density. The nuclear equation of motion is expressed asṗjα (t) = −

state
X
k

X X
∂
Cl∗ (t)Ck (t) [Vl (r(t)) − Vk (r(t))] · dlk,jα (r(t)).
Vk (r(t)) −∂rjαstate state|Ck2 (t)|

k

(285)

l

Surface hopping dynamics. In Tully surface hopping dynamics, the nuclei move on the potential energy
surface of the occupied state, k(t). The nuclear equation of motion is expressed asṗjα (t) = −∂V (r(t)).
∂rjα k(t)(286)

However, k(t) is a stochastic variable that changes in time. According to the fewest switches algorithm, theprobability that the state hops from l to k in the time step ∆t is given by
fkl (t)l→kP(t) = max
, 0 ∆t(287)
ρll (t)
where





fkl (t) = −2 · Re ρkl (t) 

N
X
X


rjα (t) · djα,kl (r(t)) .

(288)

j=1 α=x,y,z

11.19

Hybrid potentials: ONIOM and QM/MMIn the ONIOM method, the total potential is composed of three parts
V ONIOM (rA , rB ) =

hi
lo
lo
VAL
(rA , rL ) − VAL(rA , rL ) + VAB(rA , rB ).

252

(289)

The ﬁrst two terms describe the energy diﬀerence of the subsystem of the layer A and the link atoms L
calculated at high- and low-level methods. The last term is the energy of the system of the layers A andB (the whole system) calculated at a low-level method. As shown below, the positions of link atoms are
determined once the positions of the bridging atoms are determined. The ONIOM energy has the correct
limit in the high- and low-level methods are identical,
lim V ONIOM (rA , rB )

=

lo
VAB
(rA , rB )(290)

lim V ONIOM (rA , rB ) =hi
VAB(rA , rB ).

(291)

hi→lo

and
lo→hi

In the absence of the link atoms, it can be shown that the interaction between the layer A and the layer B
is given by the low-level energy. Formally, the A–B interaction can be expressed aslo
Vint(rA , rB )lo
VAB(rA , rB ) − VAlo (rA ) − VBlo (rB ),

=

(292)

and thus, the total potential energy can be rewritten as
V ONIOM (rA , rB ) =lo
VAhi (rA ) + VBlo (rB ) + Vint
(rA , rB ).

(293)

This clearly indicates that the ONIOM energy is composed of the high-level energy of the layer A, thelow-level energy of layer B, and the low-level energy of interaction between A and B.
The mechanical embedding version of the QM/MM energy is the special case of the ONIOM energy where
the high-level method corresponds to QM and the low-level calculation corresponds to MM:
QM
MM
MM
VAL
(rA , rL ) − VAL(rA , rL ) + VAB(rA , rB ).

V QM/MM (rA , rB ) =(294)

Let the link atom, l, be placed at the bond i–j, in between the atom i in the layer A and the atom j in
the layer B. Let the ratio of i–l and i–j interatomic distances be given by a constant,α=|ri − rl |.
ri − rj(295)

Then, the position of link atom is determined to berl = ri + α(rj − ri )(296)

once the positions of i and j atoms, rj and ri , is determined. In this case, the forces acting on the atoms iand j areFi = −

lo
hi
)
− VAL
∂V ONIOM∂(VAL− (1 − α)
∂ri
∂rl

(297)

lo
hi
− VAL
)
∂(VAL
∂V ONIOM
−α
,
∂rj
∂rl

(298)

and
Fj = −
respectively. Note that the sum of forces
−


N 
X
∂V ONIOM
i=1

∂ri

=0

(299)

and the total torque
−

N 
X
i=1

ri ×

∂V ONIOM∂ri

are preserved.
253


=0

(300)

11.20Multiple time scale method

The multiple time scale (MTS) method is implemented in the PIMD code. This technique enables theeﬃcient sampling in molecular dynamics and path integral molecular dynamics methods when a hybrid
potential, either QM/MM or ONIOM, is used.
In general, the MTS method is an algorithm to integrate the equation of motion with diﬀerent step sizes
dealing with the forces varying in diﬀerent time scales. For the two-layer systems, the MTS method can only
be applied in the following situation.
• The properties in the thermal equilibrium are of the only interest. The nonequilibrium properties, suchas the time correlations, are not of interest.
• The layer A is much smaller that the layer B. Thus, the sampling phase space of A is much smaller
than that of B.
• The force calculation of the layer A is much more expensive than that of layer B.
In this case, the MTS algorithm would be suitable.
• Mass scaling: The phase space sampling of the layer B can be accelerated by scaling the mass. For
classical MD, the masses of all the atoms in layer B, are scaled by a parameter n−2
ref . Although themass scaling destroys the dynamical information, it has no eﬀect on the thermodynamic properties.
This is because the distribution of the classical NVT ensemble, ∝ exp(−βV ), is unchanged. For PIMD,
the ﬁctitious masses in layer B is scaled without aﬀecting the distribution of quantum NVT ensemble,∝ exp(−βV eﬀ ).
• Force decomposition: in the two-layer ONIOM method and the mechanical embedding QM/MM
method, the force can be decomposed as−∇VONIOM (rA , rB )=−∇Vhigh (rA , rL ) + ∇Vlow (rB )(rA , rL ) − ∇Vlow (rA , rB ).

(301)

To make use of the MTS algorithm, the ﬁrst term in the rhs is updated by the step size, ∆t, while thesecond and the third terms by ∆t/nref . The forces rapidly changing in layer B requires more frequent
updates compared those in layer A.
Then, the basic molecular dynamics cycle is constructed in the following way.
[1] force of system A at high level[2] force of system A at low level[3] force of system B at low level
do i = 1, nstep
update velocity due to forces [2] by -dt/2
update velocity due to forces [3] by +dt/2
do j = 1, nref
update velocity due to force [1] by dt/nref/2
update position by dt/nref[1] force of system A at high level
update velocity due to force [1] by dt/nref/2
254

end do[2] force of system A at low level[3] force of system B at low level
update velocity due to forces [2] by -dt/2
update velocity due to forces [3] by +dt/2
end doHere, the updates of thermostats, the harmonic forces in PIMD, etc., have been omitted due to simplicity.
The parameter nref can be increased until the computational times of the inner and the outer cycles arewell balanced. NOTE: The MTS method can be use in the combination with the BEST method.

11.21

BEST method

The BEST (Boundary based on Exchange Symmetry Theory) method is a treatment of hybrid potentials foropen boundary systems [51]. A bias potential is imposed to make a natural phase separation of the layers
introduced in hybrid potentials. The form of bias potential has been determined according to the exchange
symmetry between the atoms in diﬀerent layers. The bias potential is designed to have no inﬂuence on thethermodynamics of the system, if the atoms were identical. (Of course, the atoms in diﬀerent layers are
not identical in any hybrid potentials, but at least the bias potential keeps the correct limit when they wereidentical.) The details will be described elsewhere [51].

11.22

Ewald sum

Let us consider the electrostatic interaction of N particles with charges qi in the positions ri for 1 ≤ i ≤ N
conﬁned in a parallel piped hexahedron box under periodic boundary condition. For a vector of three integers,n = (n1 , n2 , n3 ), the lattice vectors are deﬁned by(Rn )α =3X

hαβ nβ(302)

β=1where α = (x, y, z), β = (1, 2, 3) and h is the box matrix. Then, the electrostatic interaction is
V es =N
N X
XX
n j=1 k=1′

qj qk
rj − rk + Rn

.

(303)

P′
Here,
indicates that the contribution of k = j for the special case of n = 0 has been eliminated fromthe sum to avoid self interactions. Meanwhile, for a vector of three integers, k = (k1 , k2 , k3 ), the reciprocallattice vector is deﬁned by(Gk )β = 2π3Xkα h−1
αβ .

(304)

α=1

Then, the Ewald sum can be expressed as
V es = V short + V long + V self + V charge (+V dipole )

255

(305)

where the short range, real space contribution isVN N
1 X X X ′ qj qk erfc η rj − rk + Rn=,
2 n j=1
rj − rk + Rn

short

(306)

k̸=j

the long range, reciprocal space contribution is

V

long



|Gk |2
N
exp
−
X
X
2
4η
2π

=

V

|Gk |2k̸=0

2i(Gk ·rj )

qj e

,

(307)

j=1

the correction of self interaction in the reciprocal space contribution is
η X 2
q ,
V self = − √π i=1 iN

(308)

and the correction for the charged system isNXπ
V charge = − 2
2η V

!2
qi

,

(309)

i=1

The parameter η can be determined so that the calculation is both accurate and eﬃcient by balancing thecomputational ratio between the real and reciprocal contributions. The elimination of k = 0 contribution
from the long range term corresponds to an introduction of uniform background charge that maintains the
charge neutrality of the system. The dipole correction is
2π X
=
qr
3V i=1 i iNVdipole2(310)

In the PIMD code, this term can be either be included or neglected by option.

11.23

Polarizable force ﬁeld

The polarizable force ﬁeld is described as
Vpol = Vmm + Vind + Vcd + Vdd ,(311)

where Vmm is the non-polarizable molecular mechanics force ﬁeld given by Equation (10). With the dipole
moment µi and the polarizability αi of each atom i, the polarization energy is given byVind =

N
X
µ2
i

2αi
i=1

.

(312)

In the free boundary condition, the charge-dipole interaction is described as
Vcd =

N X
N
X

qi tij µj =i=1 j̸=i

N X
N
X


qi tij µj − qj tij µi ,(313)

i=1 j>iand the dipole-dipole interaction as
Vdd = −

N N
N X
N
X
1 XX
µi Tij µj = −µi Tij µj .
2 i=1i=1 j>i
j̸=i

256

(314)

Here we have deﬁned a vector


scd
rij
3
tij α =
3rij
and a matrixrij α ,





sdd
rij
rij
3sdd
3
5
Tij αβ = −δαβ +rij α rij β .
3
5
rij
rij


(315)

(316)

which are functions of interatomic separation rij = ri − rj and interatomic distance rij = |rij |. The dampingdd
ddfunctions scd
3 (r) s3 (r) and s3 (r) monotonically increase from 0 to 1 with r. The dipole moments are
determined by the variational condition,∂V pol
= 0.
∂µi

(317)

and thus,µi = αiNX−tij qj + Tij µj .

(318)

j̸=i

In the periodic boundary condition, the polarizable force ﬁeld is described as
long
long
short
short
self
net
Vpol = Vmm + Vind + Vcd
+ Vcd
+ Vdd
+ Vdd
+ Vdd
+ Vdd
.

(319)

The real space contributions of charge-dipole and dipole-dipole interaction are given by
short
Vcd
=

N X
N
XX
n

′

qi tshort
µj ,
ij

(320)

i=1 j=1and
1 XXX′µ Tshort µj ,2 n i=1 j=1 i ij
N

short
Vdd
=

N

respectively, where we have deﬁned a vector



2 2
2ηr
scd
rij − erf(ηrij ) + √πij e−η rij3 rij ,
tshort
=
ij
3
α
α
rij

(321)

(322)

and a matrix,



2 2
2ηr
sdd
rij − erf(ηrij ) + √πij e−η rij

3
 δαβ
= −
Tshort
ij
3
αβ
rij



 ij −η2 r2 
2 2ηr
ij
√ e
3 sdd
rij − erf ηrij + 3 + 2η 2 rij


5
π
 rij
+
rij β .
5αrij
The reciprocal space contributions of the charge-dipole and dipole-dipole interaction are given by


|G |2
N
N
exp − 4ηk2 X
X
X

4π
long
Vcd
=
q
(µj · Gk ) sin Gk · rij ,
i
2
V
|Gk |
i=1
j=1
k̸=0

257

(323)

(324)

and
long
Vdd
=



|Gk |2
N
exp
−
X
X
2
4η
2π
V

|Gk |2k̸=0

2(µj · Gk )eiGk ·rj

,

(325)

j=1

respectively. The dipole self-interaction correction in the reciprocal space contribution is2η 3 X 2
self
Vdd
=− √
µ .
3 π i=1 i
N(326)

The correction with respect to the net dipole moment is
N
X

2π
net
Vdd
=

3V i=1

2

(327)

µi .

The dipole moments, µi , are obtained by the variational condition,∂V pol
= 0,
∂µi

(328)

and thus,µi = αi −NXtshortqj − Tshort
µj
ij
ij

j̸=i




N
long
long
∂Vdd
∂Vcd
4η 3
4π X −+ √ µi −
µ ,
−
∂µi
∂µi
3V j=1 j
3 π

(329)

which leads to 3N -dimensional linear equations of a kind Aµ = b. This could be taken care by the LAPACK
dgesv routine.
The damping functions are optional among linear Thole (LIN), exponential Thole (EXP), Gaussian (GAU)[84] and Ojamae-Shavitt-Singer (OSS) types [85]. The OSS-type damping function is deﬁned with twoparameters, denoted by ayx and byx , as
scc
1 =

r2
,
−bcc
1 r
r2 + acc
1 e

cd/dd

s3

=

r2
cd/dd

r2 + a3

e

cd/dd
−b3
r

,

sdd
3 =

r2
−b3 r
r2 + add
3 e
dd

.

(330)

Other types use one parameter a, and the functions are described in terms of z = r/a. The linear Thole-type
damping functions are given by(((2z − 2z 3 + z 4 (0 ≤ z ≤ 1)
4z 3 − 3z 4 (0 ≤ z ≤ 1)z 4 (0 ≤ z ≤ 1)
cd/dd
cc
dd
s1 =
s3
=
s5 =
(331)
1(z > 1)
1(z > 1)
1(z > 1).
The exponential Thole-type damping functions are given by


3
2 3
cd/dd
−z 3
scc
=
1
−
e
+
zΓ
,
z
,
s3
= 1 − e−z ,
1
3

3 −z
sdd
,
5 = 1 − (1 + z )e
3

(332)

using the incomplete gamma function,Z ∞Γ(a, x) =e−t ta−1 dt.

(333)

x

The Gaussian-type damping functions are given byscc
1 = erf(z),

cc/dd

s3

2
2z
= erf(z) − √ e−z ,
π

258



2z 2 2z −z2
√ e .
scc
=
erf(z)
−
1
+
5
3
π

(334)

11.24

Dihedral bond potential

As mentioned in Section 9.7.5, the dihedral angle potential takes the form
V =v
{1 + µ cos(νχ)}
2

(335)

where v is the rotational barrier height, µ = ±1 is phase, and χ is the dihedral angle with respect to theatoms i, j, k and l, which can be expressed as





r
·
r
ijk
jkl 
χ = sgn rijk × rjkl · rjk cos−1 (336)
rijk rjkl
with the vectors normal to i − j − k and j − k − l planes given by
rijk = rij × rkj ,rjkl = rlj × rkj .

The gradients of V with respect to each atom can be expressed as


(337)


rkj × rijk
∂Vvµνsν  rkj × rjkl
−cos χ ,
=

2
∂ri
2
rijk rjkl
rijk




(338)



rki × rijk 
rkl × rijk + rik × rjkl ∂Vvµνsν  rkl × rjkl+=
 cos χ −

,
2
2
∂rj
2
r
r
rjkl
rijk
ijk
jkl






rlj × rjkl 
rij × rjkl + rlj × rijk vµνsν  rij × rijk∂V+= cos χ −
,

2
2
∂rk
2
rijk rjkl
rijk
rjkl
and

(339)



(340)



rkj × rjkl
∂Vvµνsν  rkj × rijk=−cos χ ,2∂rl
2
rijk rjkl
rjkl

(341)

where the function
1 d cos(νχ)
1 d cos(νχ)
sν ==ν d cos χνdχ

d cos χdχ

−1=sin(νχ)
sin χ

(342)

can be calculated using the recursive relationsν = sν−2 − sin((ν − 2)χ) sin χ + cos((ν − 2)χ) cos χ + cos((ν − 1)χ)(343)

with s1 = 1 and s2 = 2 cos χ.

12Publications

The following is the list of publications in which the PIMD code or its primitive version has been used.
259

• H. Wang, P. T. Salzbrenner, I. Errea, F. Peng, Z. Lu, H. Liu, L. Zhu, C. J. Pickard, Y. Yao, Nature
Commun. 14, 1674 (2023). ”Quantum structural ﬂuxion in superconducting lanthanum polyhydride”• H. Kwon, M. Shiga, H. Kimizuka, T. Oda, Acta Mater, 247, 118739 (2023). ”Accurate Descriptionof Hydrogen Diﬀusivity in bcc Metals Using Machine-Learning Moment Tensor Potentials and PathIntegral Methods”• K. Ogino, Y. Hashimoto, T. Takayanagi, ChemPhysChem, in press (2023). Ring-polymer Molecular
Dynamics Simulation for the Adsorption of H2 on Ice Clusters (H2 O)n (n = 8, 10, and 12)”
• T. Murakami, R. Iida, Y. Hashimoto, Y. Takahashi, S. Takahashi, T. Takayanagi, J. Phys. Chem. A
126, 9244 (2022). ”Ring-Polymer Molecular Dynamics and Kinetics for the H− + C2 H2 → H2 + C2 H−
Reaction Using the Full-Dimensional Potential Energy Surface”• H. Suzuki, T. Otomo, K. Ogino, Y. Hashimoto, T. Takayanagi, ACS Earth Space Chem. 6, 1390
(2022). ”Nuclear Quantum Eﬀects in H2 Adsorption Dynamics on a Small Water Cluster Studied with
Ring-Polymer Molecular Dynamics Simulations”• M. Shiga, J. Comput. Chem., 43, 1864 (2022). ”Path Integral Brownian Chain Molecular Dynamics:
A Simple Approximation of Quantum Vibrational Dynamics”• H. Kimizuka, B. Thomsen, M. Shiga, J. Phys. Energy 4, 034334 (2022) (13 pages). ”Artiﬁcial neuralnetwork-based path integral simulations of hydrogen isotope diﬀusion in palladium”• B. Thomsen, M. Shiga, Phys. Chem. Chem. Phys., 24, 10851-10859 (2022). ”Structure of Liquid andAqueous Water Isotopologues at Ambient Temperature from ab initio Path Integral Simulations”• D. Akazawa, T. Sasaki, M. Nagasaka, M. Shiga, J. Chem. Phys., 56, 044202 (2022) (7 pages). ”X-ray
Absorption Spectra of Aqueous Cellobiose: Experiment and Theory”• Y. Watanabe, T. Nomoto, R. Arita, Phys. Rev. B, 105, 174111 (2022). ¡br¿ ”Quantum and temperatureeﬀects on the crystal structure of superhydride LaH10 : A path integral molecular dynamics study”• K. Yeo, K. Park, S. Jeong, Curr. Appl. Phys., 39, 62-69 (2022). ¡br¿ ”Neural network approach to
diﬀusion of B and N adatoms on the Pt (111) surface”• K. Saito, Y. Sugiura, T. Miyazaki, Y. Takahashi, T. Takayanagi, Phys. Chem. Chem. Phys., 23, 69506958 (2021). ”Quantum calculations of the photoelectron spectra of the OH− NH3 anion: implications
for OH+ NH3 → H2 O+NH2 reaction dynamics”• Y. Hashimoto, K. Saito, T. Takayanagi, H. Tachikawa, Phys. Chem. Chem. Phys., 23, 16958 (2021).
”Theoretical study of the dissociative photodetachment dynamics of the hydrated superoxide anion
cluster”• K. Saito, Y. Hashimoto, T. Takayanagi, J. Phys. Chem. A, 125, 10750-10756 (2021). ”Ring-Polymer
Molecular Dynamics Calculations of Thermal Rate Coeﬃcients and Branching Ratios for the Interstellar+++
H+
3 + CO -¿ H2 + HCO /HOC Reaction and Its Deuterated Analogue.”• Y. Takahashi, Y. Hashimoto, K. Saito, T. Takayanagi, Molecules, 26, 7250 (2021). ¡br¿ ”On-the-Fly
Ring-Polymer Molecular Dynamics Calculations of the Dissociative Photodetachment Process of theOxalate Anion.”• B. Thomsen, M. Shiga, J. Chem. Phys., 155, 194107 (2021) (11 pages). ”Ab Initio Study of Nuclear
Quantum Eﬀects on Sub- and Supercritical Water”• A. Pal, S. Pal, S. Verma, M. Shiga, N. N. Nair, J. Comput. Chem., 42, 1996-2003 (2021). ”Mean Force
Based Temperature Accelerated Sliced Sampling: Eﬃcient Reconstruction of High Dimensional Free
Energy Landscapes”
260

• K. Kobayashi, Y. Nagai, M. Itakura, M. Shiga, J. Chem. Phys., 155, 034106 (2021) (9 pages). ”Selflearning hybrid Monte Carlo for isothermal-isobaric ensemble: Application to liquid silica”• T. Kondo, T. Sasaki, M. Shiga, J. Comput. Chem., 42, 1783-1791 (2021). The Mechanism of Sorbitol
Dehydration in Hot Acidic Solutions”• H. Wang, Y. Yao, F. Peng, H. Liu, R. J. Hemley, Phys. Rev. Lett., 126, 117002 (2021). ”Quantum
and Classical Proton Diﬀusion in Superconducting Clathrate Hydrides”• B. Thomsen, M. Shiga, J. Chem. Phys., 154, 084117 (2021). ”Nuclear Quantum Eﬀects on Autoionization of Water Isotopologues Studied by Ab Initio Path Integral Molecular Dynamics”• T. Kondo, T. Sasaki, S. Ruiz Barragan, J. Ribas, M. Shiga, J. Comput. Chem., 42, 156-165 (2021).
”Reﬁned metadynamics through canonical sampling using time‐invariant bias potential: A study ofpolyalcohol dehydration in hot acidic solutions”• L. Yan, Y. Yamamoto, M. Shiga, O. Sugino, Phys. Rev. B, 101, 165414 (2020). ¡br¿ ”Nuclear quantum
eﬀect for hydrogen adsorption on Pt(111)”• Y. Nagai, M. Okumura, K. Kobayashi, M. Shiga, Phys. Rev. B (Rapid Commun.), 102, 041124 (2020).
”Self-learning hybrid Monte Carlo: A ﬁrst principles approach”• T. Ishiyama, A. Morita, J. Phys. Chem. Lett. 10, 5070-5075 (2019). ”Nuclear Quantum Eﬀect on thechi(2) Band Shape of Vibrational Sum Frequency Generation Spectra of Normal and Deuterated Water
Surfaces”• Y. Kawashima, K. Ishimura, M. Shiga, J. Chem. Phys., 150, 124103 (2019). ”Ab initio Quantum Mechanics/Molecular Mechanics Method with Periodic Boundaries Employing Ewald Summation Technique to Electron-Charge Interaction: Treatment of the Surface-Dipole Term”• Y. L. Chang, T. Sasaki, J. Ribas Arino, M. Machida, M. Shiga, J. Phys. Chem. B, 23, 1662-1671(2019). ”Understanding Competition of Polyalcohol Dehydration Reactions in Hot Water”• M. Shiga, M. E. Tuckerman, J. Phys. Chem. Lett., 9, 6207–6214 (2018). ”Finding Free Energy
Landmarks of Chemical Reactions”• Y. Watabe, T. Miyazaki, E. Ozama, T. Takayanagi, Y. Suzuki, Comp. Theo. Chem., 1140, 56-62(2018). ”Theoretical interpretation of photoelectron spectrum of (Au-CO2)- anion”• E. Ozama, S. Adachi, T. Takayanagi, M. Shiga, Chem. Eur. J., 24, 12716-12721 (2018). ”Quantum
simulation veriﬁes the stability of an 18 coordinated actinium-helium complex”• M. Machida, K. Kato, M. Shiga. J. Chem. Phys., 148, 102324 (2018). ”Nuclear quantum eﬀects oflight and heavy water studied by all-electron ﬁrst principles path integral simulations.”• Y. Seki, T. Takayanagi, M. Shiga, Phys. Chem. Chem. Phys., 19, 13798-13806, (2017). ”Photoexcited
Ag ejection from a low-temperature He cluster: A simulation study by nonadiabatic Ehrenfest ringpolymer molecular dynamics”• S. Ruiz-Barragan, J. Ribas-Arino, M. Shiga, Phys. Chem. Chem. Phys., 18, 32438-32447 (2016). ”Thereaction mechanism of polyalcohol dehydration in hot pressurized water”• Y. Minoshima, Y. Seki, T. Takayanagi, M. Shiga, Chem. Phys., 472, 1-8 (2016). ”Eﬀects of temperatureand isotopic substitution on electron attachment dynamics of guanine-cytosine base pair: Ring-polymer
and classical molecular dynamics simulations”• S. Ruiz-Barragan, K. Ishimura, M. Shiga, Chem. Phys. Lett., 646, 130-135 (2016). ”On the hierarchicalparallelization of ab initio simulations”
261

• T. Honda, Y. Minoshima, Y. Yokoi, T. Takayanagi and M. Shiga, Chem. Phys. Lett., 625, 174-178(2015). “Semiclassical dynamics of electron attachment to guanine-cytosine base pair”• M. Shiga, M. Masia, J. Chem. Phys., 139, 144103 (2013) (14 pages). “Boundary based on Exchange
Symmetry Theory for Multilevel Simulations II. Multiple Time Scale Approach”• M. Shiga, M. Masia, J. Chem. Phys., 139, 044120 (2013) (8 pages); (E) J. Chem. Phys., 139, 119901(2013). “Boundary based on Exchange Symmetry Theory for Multilevel Simulations I. Basic Theory”• K. Suzuki, M. Tachikawa, M. Shiga, J. Chem. Phys., 138, 184307 (2013) (7 pages). “Temperaturedependence on the structure of Zundel cation and its isotopomers”• A. Koizumi, M. Tachikawa, M. Shiga, Chem. Phys., 419, 44-49 (2013). “Quantum ﬂuctuation andvibrational dynamics of aqueous Cu+ and Ag+ clusters”• T. Yoshikawa, T. Takayanagi, H. Kimizuka, M. Shiga, J. Phys. Chem. C, 116, 23113-23119 (2012).
“Quantum-Thermal Crossover of Hydrogen and Tritium Diﬀusion in α-Iron”• M. Shiga, H. Fujisaki, J. Chem. Phys., 136, 184103 (2012) (11 pages). “A quantum generalization of
intrinsic reaction coordinate using path integral centroid coordinates”• K. Suzuki, H. Ishibashi, K. Yagi, M.Shiga, M. Tachikawa, Progress in Theoretical Chemistry andPhysics B 26: Quantum Systems in Chemistry and Physics: Progress in Methods and Applicationsedited by K. Nishikawa et al., Chapter 10, 207-216 (2012). “Ab initio path integral molecular dynamics
simulations of F2 H− and F2 H+
3”• T. Yoshikawa, S. Sugawara, T. Takayanagi, M. Shiga, M. Tachikawa, Chem. Phys., 394, 46-51 (2012).
“Quantum tautomerization in porphycene and its isotopomers: Path-integral molecular dynamics simulations”• A. Koizumi, K. Suzuki, M. Shiga, M. Tachikawa, Int. J. Quant. Chem., 112, 136-139 (2012). “Abinitio path integral simulation of AgOH(H2 O)”• S. Sugawara, T. Yoshikawa, T. Takayanagi, M. Shiga, M. Tachikawa, J. Phys. Chem. A, 115,
11486–11494 (2011). “Quantum Proton Transfer in Hydrated Sulfuric Acid Clusters: A Perspectivefrom Semiempirical Path Integral Simulations”• M. Daido, A. Koizumi, M. Shiga, M. Tachikawa, Theoret. Chem. Acc., 130, 385-391 (2011). “Nuclear
quantum eﬀect on the structure of guanine cytosine pair”• P. Dopieralski, P. Anjukandi, M. Rueckert, M. Shiga, J. Ribas-Arino, D. Marx, J. Mater. Chem.,
21, 8309-8316 (2011). “On the role of polymer chains in transducing external mechanical forces tobenzocyclobutene mechanophores”• A. Koizumi, K. Suzuki, M. Shiga, M. Tachikawa, J. Chem. Phys., (communication), 134, 031101 (2011);(E) J. Chem. Phys. 134, 169901 (2011). “A concerted mechanism between protron transfer of Zundelanion and displacement of counter cation”• M. Sugimoto, M. Shiga, M. Tachikawa, Comp. Theor. Chem., 975, 31-37 (2011). “Nuclear quantum
eﬀect on the dissociation energies of cationic hydrogen clusters”• J. Ribas-Arino, M. Shiga, D. Marx, J. Am. Chem. Soc., 132, 10609-10614 (2010). “Mechanochemical
Transduction of Externally Applied Forces to Mechanophores”• T. Yoshikawa, S. Sugawara, T. Takayanagi, M. Shiga, M. Tachikawa, Chem. Phys. Lett., 496, 14-19(2010). “Theoretical study on the mechanism of double proton transfer in porphycene by path-integral
molecular dynamics simulations”

262

• M. Shiga, K. Suzuki, M. Tachikawa, J. Chem. Phys., 132, 114104 (2010) (7 pages). “The chemical shiftof deprotonated water dimer: Ab initio path integral simulation”• K. Suzuki, M. Tachikawa, M. Shiga, J. Chem. Phys., 132, 144108 (2010) (7 pages). “Eﬃcient ab initio
path integral hybrid Monte Carlo based on the fourth-order Trotter expansion – Application to ﬂuoride
ion-water cluster”• S. D. Ivanov, A. Witt, M. Shiga, D. Marx, J. Chem. Phys., (communication), 132, 031101 (2010) (4pages). “On Artiﬁcial Frequency Shifts in Infrared Spectra obtained from Centroid Molecular Dynamics:
Quantum Liquid Water”• A. Kakizaki, H. Motegi, T. Yoshikawa, T. Takayanagi, M. Shiga, M. Tachikawa, J. Molec. Struct.
(THEOCHEM), 901, 1-8 (2009). “Path-integral molecular dynamics simulations of small hydrated
sulfuric acid clusters H2 SO4 (H2 O)n (n = 1-6) on semiempirical PM6 potential surfaces”• T. Takayanagi, K. Takahashi, A. Kakizaki, M. Shiga, M. Tachikawa, Chem. Phys., 358, 196-202 (2009).
“Path-integral molecular dynamics simulations of hydrated hydrogen chloride cluster HCl(H2 O)4 on asemiempirical potential energy surface”• A. Kaczmarek, M. Shiga, D. Marx, J. Phys. Chem. A, 113, 1985-1994 (2009). “Quantum eﬀects on
vibrational and electronic spectra of hydrazine studied by on the ﬂy ab initio ring polymer molecular
dynamics”• J. Ribas-Arino, M. Shiga, D. Marx, Angew. Chem. Int. Ed. (communication), 48, 4190-4193 (2009).
“Understanding Covalent Mechanochemistry”• A. Witt, S. D. Ivanov, M. Shiga, H. Forbert, D. Marx, J. Chem. Phys., 130, 194510 (2009) (15 pages).
“On the applicability of centroid and ring polymer path integral molecular dynamics for vibrational
spectroscopy”• A. Nakayama, T. Taketsugu, M. Shiga, Chem. Lett., 38, 976-977 (2009). “Speed-up of ab initio hybridMonte Carlo and ab initio path integral hybrid Monte Carlo simulations using an auxiliary potential
energy surface”• J. Ribas-Arino, M. Shiga, D. Marx, Chem. Eur. J. (communication), 15, 13331-13335 (2009). “Unravelling the mechanism of force-induced ring-opening of benzocyclobutenes”• T. Takayanagi, T. Yoshikawa, H. Motegi, M. Shiga, Chem. Phys. Lett., 482, 195-200 (2009). “Path−
integral molecular dynamics simulations for water anion clusters (H2 O)−
5 and (D2 O)5 ”• T. Yoshikawa, H. Motegi, A. Kakizaki, T. Takayanagi, M. Shiga, M. Tachikawa, Chem. Phys., 365,
60-68 (2009). “Path-integral molecular dynamics simulations of glycine-(H2 O)n (n = 1-7) clusters onsemiempirical PM6 potential energy surfaces”• T. Takayanagi, T. Yoshikawa, A. Kakizaki, M. Shiga, M. Tachikawa, J. Molec. Struct. (THEOCHEM),
869, 29-36 (2008). “Molecular dynamics simulations of small glycine-(H2 O)n (n = 2-7) clusters onsemiempirical PM6 potential energy surfaces”• H. Ishibashi, A. Hayashi, M. Shiga, M. Tachikawa, ChemPhysChem (communication), 9, 383-387 (2008).
−“Geometric isotope eﬀect on N2 H+
7 cation and N2 H5 anion by ab initio path integral molecular dynamics simulation”• M. Shiga, A. Nakayama, Chem. Phys. Lett., 451, 175-181 (2008). “ab initio path integral ring polymer
molecular dynamics: vibrational spectra of molecules”• H. Motegi, A. Kakizaki, T. Takayanagi, Y. Taketsugu, T. Takatsugu, M. Shiga, Chem. Phys., 454, 1-6(2008). “Path-integral molecular dynamics simulations of BeO embedded in helium clusters: Formationof the stable HeBeO complex”
263• K. Suzuki, M. Shiga, M. Tachikawa, J. Chem. Phys., 129, 144310 (8 pages) (2008); (E) J. Chem.
Phys., 131, 039903 (2009). “Temperature and isotope eﬀects on water cluster ions with path integral
molecular dynamics based on 4th order Trotter expansion”• A. Hayashi, M. Shiga, M. Tachikawa, Mol. Simul., 33, 185-188 (2007). “H/D isotope eﬀect on thedihydrogen bond by ab initio path integral molecular dynamics simulation”• M. Shiga, M. Tachikawa, Mol. Simul., 33, 171-184 (2007). “Ab initio quantum mechanical/molecularmechanical molecular dynamics using multiple-time-scale approach and perturbation theory”• T. Kobayashi, M. Shiga, A. Murakami, S. Nakamura, J. Am. Chem. Soc., 129, 6405-6424 (2007). “Abinitio Study of Ultrafast Photochemical Reaction Dynamics of Phenol Blue”• A. Kakizaki, T. Takayanagi, M. Shiga, Chem. Phys. Lett., 449, 28-32 (2007). “Path integral molecular+
dynamics calculations of the H+
6 and D6 clusters on an ab initio potential energy surface”• A. Hayashi, M. Shiga, M. Tachikawa, J. Chem. Phys., 125, 204310 (7 pages) (2006). “H/D isotope
eﬀect on the dihydrogen bond of NH+
4 BeH2 by ab initio path integral molecular dynamics simulation”• M. Shiga, W. Shinoda, J. Chem. Phys., 123, 134502 (8 pages) (2005). “Calculation of heat capacities
of light and heavy water by path integral molecular dynamics”• M. Tachikawa, M. Shiga, J. Am. Chem. Soc., (communication) 127, 11906-11909 (2005). “Geometrical
Isotope Eﬀect on Hydrogen Bond in Charged Water Clusters”• M. Tachikawa, M. Shiga, J. Theor. Comput. Chem., 4, 175-181 (2005). “Ab initio path integral study
on isotope eﬀect of ammonia molecule”• T. Takayanagi, M. Shiga, T. Taketsugu, J. Theor. Comput. Chem., 4, 197-207 (2005). “Developmentof a three-dimensional ab initio potential energy surface for the He-Cl2 (X) system and its application
to solvation structures in the Hen Cl2 cluster”• W. Shinoda, M. Shiga, Phys. Rev. E, 71, 041204 (4 pages) (2005). “Quantum simulation of the heat
capacity of water”• M. Tachikawa, M. Shiga, Chem. Phys. Lett., 407 135-138 (2005). “Ab initio path integral simulation
study on 16 O/18 O isotope eﬀect in water and hydronium ion”
• A. Hayashi, M. Shiga, M. Tachikawa, Chem. Phys. Lett., 407 135-138 (2005). “Ab initio path integral
simulation study on the dihydrogen bond of NH+
4 BH2 ”• M. Tachikawa, M. Shiga, J. Chem. Phys. 121, 5985-5991 (2004). “Theoretical study on isotope andtemperature eﬀect in hydronium ion using ab initio path integral simulation”• T. Takayanagi, M. Shiga, Phys. Chem. Chem. Phys., 6, 3241-3247 (2004). “Theoretical study on
photoabsorption dynamics of the K atom attached to helium clusters and the solvation structures ofK∗ Hen exciplexes”• M. Shiga, M. Tachikawa, Chem. Phys. Lett., 374, 229-234 (2003). “Ab initio path integral study ofhydronium ion”
• A. Wada, T. Takayanagi, M. Shiga, J. Chem. Phys., 119, 5478-5486 (2003). “Theoretical simulations
on photoexcitation dyamics of the silver atoms embedded in helium clusters”• T. Takayanagi, M. Shiga, Chem. Phys. Lett., 372, 90-96 (2003). “Photodissociation of Cl2 in helium
clusters: an application of hybrid method of quantum wavepacket dynamics and path integral centroid
molecular dynamics”

264• M. Shiga, T. Takayanagi, Chem. Phys. Lett., 378, 539-547 (2003). “Quantum path-integral molecular
dynamics calculations of the dipole-bound state of the water dimer anion”• M. Shiga, M. Yamaguchi, H. Kaburaki, Phys. Rev. B, 68, 245402 (8 pages) (2003). “Structure andenergetics of clean and hydrogenated Ni surfaces and symmetric tilt grain boundaries using embeddedatom method”• T. Takayanagi, M. Shiga, Chem. Phys. Lett., 362, 504-510 (2002). “Path integral molecular dynamics combined with discrete-variable-representation approach: the eﬀect of solvation structures onvibrational spectra of Cl2 in helium clusters”• M. Shiga, M. Tachikawa, S. Miura, J. Chem. Phys., 115, 9149-9159 (2001). “A uniﬁed scheme for abinitio molecular orbital theory and path integral molecular dynamics”• M. Shiga, M. Tachikawa, S. Miura, Chem. Phys. Lett., 332, 396-402 (2000). “Ab initio molecular orbital
calculation considering the quantum mechanical eﬀect of nuclei by path integral molecular dynamics”

References[1] PIMD code, version 2.0, M. Shiga, 2016; PIMD code, version 2.1, M. Shiga, 2017; PIMD code, version
2.2, M. Shiga, 2018; PIMD code, version 2.3, M. Shiga, 2019; PIMD code, version 2.4, M. Shiga, 2020;
PIMD code, version 2.5, M. Shiga, 2022; PIMD code, version 2.6, M. Shiga, 2023.
[2] C. G. Broyden, Journal of the Institute of Mathematics and Its Applications 6, 76 (1970); R. Fletcher,Computer Journal 13, 317 (1970); D. Goldfarb, Mathematics of Computation 24, 23 (1970); D. F.
Shanno, Mathematics of Computation 24, 647 (1970).
[3] Limited memory BFGS: J. Nocedal, “Updating Quasi-Newton Matrices with Limited Storage”, Mathematics of Computation, 35, 773-782 (1980); D. C. Liu and J. Nocedal, “On the Limited Memory
Method for Large Scale Optimization”, Mathematical Programming B, 45, 3, 503-528 (1989), available
from website.
[4] W. Humphrey, A. Dalke and K. Schulten, “VMD - Visual Molecular Dynamics”, J. Molec. Graphics,
14, 33-38 (1996); available from website.
[5] K. Fukui, Acc. Chem. Res., 14, 363 (1981).
[6] M. P. Allen and D. J. Tidesley, Computer Simulation of Liquids, Oxford University Press, Oxford,
1987.
[7] D. Frenkel and B. Smit, Understanding molecular simulation Academic Press, San Diego, 2001.
[8] S. Nosé, J. Chem. Phys. 81, 511 (1984); Mol. Phys. 52, 255-268 (1984).
[9] S. Nosé and M. L. Klein, Mol. Phys. 50, 1055 (1983).
[10] W. Hoover, Phys. Rev. A 31, 1695 (1985).
[11] G. J. Martyna, M. L. Klein and M. E. Tuckerman, J. Chem. Phys. 97, 2635 (1992).
[12] M. E. Tuckerman, B. J. Berne and G. J. Martyna, J. Chem. Phys. 97, 1990 (1992).
[13] G. J. Martyna, M. E. Tuckerman, D. J. Tobias and M. L. Klein, Mol. Phys. 87, 1117 (1996).
[14] G. J. Martyna, A. Hughes and M. E. Tuckerman, J. Chem. Phys. 110, 3275 (1999).
[15] W. Shinoda, M. Shiga and M. Mikami, Phys. Rev. B 69, 134103 (2004).

265[16] H. C. Andersen, J. Chem. Phys. 72, 2384 (1980).
[17] M. Parrinello and A. Rahman, Phys. Rev. Lett. 45, 1196 (1980); J. Appl. Phys. 52, 7182 (1981); J.
Chem. Phys. 76, 2662 (1982).
[18] P. Pulay and G. Fogarasi, Chem. Phys. Lett., 386, 272 (2004).
[19] J. Kolafa, J Comput Chem. 25:335-42 (2004).
[20] J. C. Tully, J. Chem. Phys. 93, 1061 (1990).
[21] D. Marx and J. Hutter, Ab Initio Molecular Dynamics, Basic Theory and Advanced Methods, Cambridge, 2009.
[22] M. Tuckerman, Statistical Mechanics: Theory and Molecular Simulation, Oxford, 2010.
[23] M. E. Tuckerman, B. J. Berne, G. J. Martyna and M. L. Klein, J. Chem. Phys. 99, 2796 (1993).
[24] I. R. Craig and D. E. Manolopoulos, J. Chem. Phys. 121, 3368 (2004); J. Chem. Phys. 122, 084106(2005); J. Chem. Phys. 123, 034102 (2005).
[25] B. J. Braams and D. E. Manolopoulos, J. Chem. Phys. 125, 124105 (2006).
[26] J. Cao and G. A. Voth, J. Chem. Phys. 99, 10070 (1993); J. Chem. Phys. 100, 5093 (1994); J. Chem.
Phys. 100, 5106 (1994); J. Chem. Phys. 101, 6157 (1994); J. Chem. Phys. 101, 6168 (1994); J. Chem.
Phys. 101, 6184 (1994).
[27] S. Jang and G. A. Voth, J. Chem. Phys. 111, 2357 (1999); J. Chem. Phys. 111, 2371 (1999).
[28] M. Shiga, M. Tachikawa and S. Miura, Chem. Phys. Lett. 332, 396 (2000); J. Chem. Phys. 115, 9149
(2001).
[29] M. Shiga and A. Nakayama, Chem. Phys. Lett. 451, 175 (2008).
[30] A. Kaczmarek, M. Shiga and D. Marx, J. Phys. Chem. A 113, 1985 (2009).
[31] A. Witt, S. Ivanov, M. Shiga, H. Forbert and D. Marx, J. Chem. Phys. 130, 194510 (2009).
[32] K. Suzuki, M. Tachikawa, M. Shiga J. Chem. Phys. 132, 144108 (2010).
[33] M. Shiga and H. Fujisaki, J. Chem. Phys. 136, 184103 (2012).
[34] M. Rossi, M. Ceriotti, D. E. Manolopoulos, J. Chem. Phys. 140, 234116 (2014).
[35] M. Shiga, J. Comput. Chem. 43, 1864 (2022).
[36] A. Laio and M. Parrinello, Proc. Natl. Acad. Sci. USA, 99, 12562 (2002).
[37] A. Raiteri, A. Laio, F. L. Gervasio, C. Micheletti and M. Parrinello, J. Phys. Chem. B, 110, 3533
(2006).
[38] B. Ensing, A. Laio, M. Parrinello, and M. Klein, J. Phys. Chem. B, 109, 6676 (2004);[39] W. E, W. Ren, and E. Vanden-Eijnden, Phys. Rev. B 66, 052301 (2002); J. Chem. Phys. 126, 164103(2007).
[40] J. Ribas-Ariño, M. Shiga and D. Marx, Angew. Chem. Int. Ed., 48, 4190 (2009); J. Am. Chem. Soc.
132, 10609-10614 (2010).
[41] W. L. Jorgensen, J. Chandrasekhar, J. D. Madura, R. W. Impey and M. L. Klein, J. Chem. Phys. 79,
926 (1983).
266

[42] E. Neria, S. Fischer and M. Karplus, J. Chem. Phys. 105, 1902 (1996).
[43] J. Lobaugh and G. A. Voth, J. Chem. Phys. 106, 2400 (1997).
[44] J. R. Reimers, R. O. Watts and M. L. Klein, Chem. Phys. 64, 95 (1982).
[45] M. S. Daw and M. I. Baskes. Phys. Rev. Lett. 50, 1285 (1983); Phys. Rev. B 29, 6443 (1984).
[46] S. M. Foiles, M. I. Baskes and M. S. Daw, Phys. Rev. B 33, 7983 (1986).
[47] J. E. Angelo, N. R. Moody, and M. I. Baskes, Modelling Simul. Mater. Sci. Engr. 3, 289-307 (1995);
M. I. Baskes, X. W. Sha, J. E. Angelo, and N. R. Moody, Modelling Simul. Mater. Sci. Eng. 5, 651-652(1997).
[48] J. Tersoﬀ, Phys. Rev. Lett 61, 2879 (1988); J. Tersoﬀ, Phys. Rev. B 37, 6991 (1988); J. Tersoﬀ, Phys.
Rev. B 39, 5566 (1989); J. Tersoﬀ, Phys. Rev. B 41, 3248 (1990).
[49] Y. Mishin, M. J. Mehl, D. A. Papaconstantopoulos, Acta Mater. 53, 4029 (2005).
[50] R. T. Cygan, J.-J. Liang, A. G. Kalinichev, J. Phys. Chem. B 108, 1255 (2004).
[51] M. Shiga, M. Masia, J. Chem. Phys. 139, 144103 (2013); J. Chem. Phys. 139, 044120 (2013); J. Chem.
Phys. 139, 119901 (2013).
[52] J. J. P. Stewart, “MOPAC: A General Molecular Orbital Package.” Quant. Chem. Prog. Exch., 10, 86(1990); MOPAC2009, MOPAC2012, James J. P. Stewart, Stewart Computational Chemistry, Colorado
Springs, CO, USA.
Available from website http://openmopac.net.
[53] Density Functional based Tight Binding (DFTB): D. Porezag, T. Frauenheim, T. Köhler, G. Seifert, and
R. Kaschner, “Construction of tight-binding-like potentials on the basis of density-functional theory:
Application to carbon”, Phys. Rev. B 51, 12947 (1995); G. Seifert, D. Porezag, and T. Frauenheim,“Calculations of molecules, clusters, and solids with a simpliﬁed LCAO-DFT-LDA scheme”, Int. J.
Quantum Chemistry 58, 185 (1996); M. Elstner, D. Porezag, G. Jungnickel, J. Elsner, M. Haugk, T.
Frauenheim, S. Suhai, and G. Seifert, “Self-consistent-charge density-functional tight-binding method
for simulations of complex materials properties”, Phys. Rev. B 58, 7260 (1998).
Available from website http://www.dftb.org/home.
[54] The CP2K developers group, 2020. CP2K is freely available from website https://www.cp2k.org. Please
see the end of your PIMD output for the list of citations recommended for your particular type of CP2K
calculation.
J. Hutter, M. Iannuzzi, F. Schiﬀmann, J. VandeVondele, “CP2K: Atomistic simulations of condensed
matter systems”, Wiley Interdisciplinary Reviews: Computational Molecular Science, 4, 15 (2014).
T. D. Kühne, M. Iannuzzi, M. Del Ben, V. V. Rybkin, P. Seewald, F. Stein, T. Laino, R. Z. Khaliullin,
O. Schütt, F. Schiﬀmann, D. Golze, J. Wilhelm, S. Chulkov, M. H. Bani-Hashemian, V. Weber, U.
Borštnik1, M. Taillefumier, A. S. Jakobovits, A. Lazzaro, H. Pabst, T. Müller, R. Schade, M. Guidon,
S. Andermatt, N. Holmberg, G. K. Schenter, A. Hehn, A. Bussy, F. Belleﬂamme, G. Tabacchi, A.
Glöß, M. Lass, I. Bethune, C. J. Mundy, C. Plessl, M. Watkins, J. VandeVondele, M. Krack, and J.
Hutter, “CP2K: An electronic structure and molecular dynamics software package-Quickstep: Eﬃcientand accurate electronic structure calculations”, J. Chem. Phys. 152, 194103 (2020).
[55] T. Yamasaki, A. Kuroda, T. Kato, J. Nara, J. Koga, T. Uda, K. Minami, and T. Ohno, “Multiaxis Decomposition of Density Functional Program for Strong Scaling up to 82,944 Nodes on the
K Computer: Compactly Folded 3D-FFT Communicators in the 6D Torus Network”, Comp. Phys.
Commun. 244, 264 (2019).
267

T. Hamada and T. Ohno, “First-Principles Broadband Dielectric Spectroscopy”, J. Aust. Ceram. Soc.,
47, 61 (2011).
PHASE/0 is available from website https://azuma.nims.go.jp.
[56] GAUSSIAN 98, Revision A.6, M. J. Frisch, G. W. Trucks, H. B. Schlegel, G. E. Scuseria, M. A. Robb, J.
R. Cheeseman, V. G. Zakrzewski, J. A. Montgomery, Jr., R. E. Stratmann, J. C. Burant, S. Dapprich,J. M. Millam, A. D. Daniels, K. N. Kudin, M. C. Strain, Ö. Farkas, J. Tomasi, V. Barone, M. Cossi, R.
Cammi, B. Mennucci, C. Pomelli, C. Adamo, S. Cliﬀord, J. Ochterski, G. A. Petersson, P. Y. Ayala,
Q. Cui, K. Morokuma, D. K. Malick, A. D. Rabuck, K. Raghavachari, J. B. Foresman, J. Cioslowski, J.
V. Ortiz, B. B. Stefanov, G. Liu, A. Liashenko, P. Piskorz, I. Komaromi, R. Gomperts, R. L. Martin,
D. J. Fox, T. Keith, M. A. Al-Laham, C. Y. Peng, A. Nanayakkara, C. Gonzalez, M. Challacombe, P.
M. W. Gill, B. Johnson, W. Chen, M. W. Wong, J. L. Andres, C. Gonzalez, M. Head-Gordon, E. S.
Replogle, and J. A. Pople, GAUSSIAN, Inc., Pittsburgh PA, 1998.
available from website http://www.gaussian.com/index.htm.
[57] GAUSSIAN 03, Revision C.02, M. J. Frisch, G. W. Trucks, H. B. Schlegel, G. E. Scuseria, M. A. Robb,
J. R. Cheeseman, J. A. Montgomery, Jr., T. Vreven, K. N. Kudin, J. C. Burant, J. M. Millam, S.
S. Iyengar, J. Tomasi, V. Barone, B. Mennucci, M. Cossi, G. Scalmani, N. Rega, G. A. Petersson, H.
Nakatsuji, M. Hada, M. Ehara, K. Toyota, R. Fukuda, J. Hasegawa, M. Ishida, T. Nakajima, Y. Honda,
O. Kitao, H. Nakai, M. Klene, X. Li, J. E. Knox, H. P. Hratchian, J. B. Cross, V. Bakken, C. Adamo,
J. Jaramillo, R. Gomperts, R. E. Stratmann, O. Yazyev, A. J. Austin, R. Cammi, C. Pomelli, J. W.
Ochterski, P. Y. Ayala, K. Morokuma, G. A. Voth, P. Salvador, J. J. Dannenberg, V. G. Zakrzewski,
S. Dapprich, A. D. Daniels, M. C. Strain, Ö. Farkas, D. K. Malick, A. D. Rabuck, K. Raghavachari, J.
B. Foresman, J. V. Ortiz, Q. Cui, A. G. Baboul, S. Cliﬀord, J. Cioslowski, B. B. Stefanov, G. Liu, A.
Liashenko, P. Piskorz, I. Komaromi, R. L. Martin, D. J. Fox, T. Keith, M. A. Al-Laham, C. Y. Peng,
A. Nanayakkara, M. Challacombe, P. M. W. Gill, B. Johnson, W. Chen, M. W. Wong, C. Gonzalez,
and J. A. Pople, GAUSSIAN, Inc., Wallingford CT, 2004.
Available from website http://www.gaussian.com/index.htm.
[58] GAUSSIAN 09, Revision D.01, M. J. Frisch, G. W. Trucks, H. B. Schlegel, G. E. Scuseria, M. A. Robb,
J. R. Cheeseman, G. Scalmani, V. Barone, B. Mennucci, G. A. Petersson, H. Nakatsuji, M. Caricato,
X. Li, H. P. Hratchian, A. F. Izmaylov, J. Bloino, G. Zheng, J. L. Sonnenberg, M. Hada, M. Ehara, K.
Toyota, R. Fukuda, J. Hasegawa, M. Ishida, T. Nakajima, Y. Honda, O. Kitao, H. Nakai, T. Vreven, J.
A. Montgomery, Jr., J. E. Peralta, F. Ogliaro, M. Bearpark, J. J. Heyd, E. Brothers, K. N. Kudin, V.
N. Staroverov, R. Kobayashi, J. Normand, K. Raghavachari, A. Rendell, J. C. Burant, S. S. Iyengar,
J. Tomasi, M. Cossi, N. Rega, J. M. Millam, M. Klene, J. E. Knox, J. B. Cross, V. Bakken, C. Adamo,
J. Jaramillo, R. Gomperts, R. E. Stratmann, O. Yazyev, A. J. Austin, R. Cammi, C. Pomelli, J. W.
Ochterski, R. L. Martin, K. Morokuma, V. G. Zakrzewski, G. A. Voth, P. Salvador, J. J. Dannenberg,
S. Dapprich, A. D. Daniels, Ö. Farkas, J. B. Foresman, J. V. Ortiz, J. Cioslowski, and D. J. Fox,
Gaussian, Inc., Wallingford CT, 2009.
Available from website http://www.gaussian.com/index.htm.
[59] GAUSSIAN 16, Revision B.01, M. J. Frisch, G. W. Trucks, H. B. Schlegel, G. E. Scuseria, M. A. Robb,
J. R. Cheeseman, G. Scalmani, V. Barone, G. A. Petersson, H. Nakatsuji, X. Li, M. Caricato, A. V.
Marenich, J. Bloino, B. G. Janesko, R. Gomperts, B. Mennucci, H. P. Hratchian, J. V. Ortiz, A. F.
Izmaylov, J. L. Sonnenberg, D. Williams-Young, F. Ding, F. Lipparini, F. Egidi, J. Goings, B. Peng,
A. Petrone, T. Henderson, D. Ranasinghe, V. G. Zakrzewski, J. Gao, N. Rega, G. Zheng, W. Liang,
M. Hada, M. Ehara, K. Toyota, R. Fukuda, J. Hasegawa, M. Ishida, T. Nakajima, Y. Honda, O. Kitao,
H. Nakai, T. Vreven, K. Throssell, J. A. Montgomery, Jr., J. E. Peralta, F. Ogliaro, M. J. Bearpark, J.
J. Heyd, E. N. Brothers, K. N. Kudin, V. N. Staroverov, T. A. Keith, R. Kobayashi, J. Normand, K.
Raghavachari, A. P. Rendell, J. C. Burant, S. S. Iyengar, J. Tomasi, M. Cossi, J. M. Millam, M. Klene,

268

C. Adamo, R. Cammi, J. W. Ochterski, R. L. Martin, K. Morokuma, O. Farkas, J. B. Foresman, and
D. J. Fox, Gaussian, Inc., Wallingford CT, 2016.
Available from website http://www.gaussian.com/index.htm.
[60] GAMESS: General atomic and molecular electronic structure system, M. W. Schmidt, K. K. Baldridge,
J. A. Boatz, S. T. Elbert, M. S. Gordon, J. H. Jensen, S. Koseki, N. Matsunaga, K. A. Nguyen, S. J.
Su, T. L. Windus, M. Dupuis, J. A. Montgomery, J. Comput. Chem., 14, 1347 (1993); “Advances inelectronic structure theory: GAMESS a decade later”, M. S. Gordon, M. W. Schmidt pp. 1167-1189,
in “Theory and Applications of Computational Chemistry: the ﬁrst forty years”, C. E. Dykstra, G.
Frenking, K. S. Kim, G. E. Scuseria (editors), Elsevier, Amsterdam, 2005.
Available from website http://www.msg.chem.iastate.edu/gamess.
[61] TURBOMOLE V6.2 2010, a developmet of University of Kahlsruhe and Forschungszentrum KahlsruheGmbH, 1989-2007, TURBOMOLE GmbH, since 2007; R. Ahlrichs, M. Br̈, M. Häser, H. Horn, C.
Kölmel, “Electronic structure calculations on workstation computers: The program system turbomole.”
Chem. Phys. Lett. 162, 165–169 (1989).
Available from website http://www.turbomole.com.
[62] MOLPRO quantum chemistry package: H.-J. Werner, P. J. Knowles, G. Knizia, F. R. Manby, M.
Schütz, “Molpro: a general purpose quantum chemistry program package”, WIREs Comput. Mol. Sci.,
2, 242-253 (2012); MOLPRO, version 2012.1, H.-J. Werner, P. J. Knowles, G. Knizia, F. R. Manby,
M. Schütz, P. Celani, T. Korona, R. Lindh, A. Mitrushenkov, G. Rauhut, K. R. Shamasundar, T. B.
Adler, R. D. Amos, A. Bernhardsson, A. Berning, D. L. Cooper, M. J. O. Deegan, A. J. Dobbyn, F.
Eckert, E. Goll, C. Hampel, A. Hesselmann, G. Hetzer, T. Hrenar, G. Jansen, C. Köppl, Y. Liu, A. W.
Lloyd, R. A. Mata, A. J. May, S. J. McNicholas, W. Meyer, M. E. Mura, A. Nicklass, D. P. O’Neill, P.
Palmieri, D. Peng, K. Pﬂüger, R. Pitzer, M. Reiher, T. Shiozaki, H. Stoll, A. J. Stone, R. Tarroni, T.
Thorsteinsson, M. Wang.
Available from website http://www.molpro.net.
[63] NTChem: T. Nakajima, M. Katouda, M. Kamiya, and Y. Nakatsuka, Int. J. Quantum Chem. 115,
349–359 (2015).
Available from website http://labs.aics.riken.jp/nakajimat top/ntchem j.html.
[64] ORCA - An ab initio, DFT and semiempirical SCF-MO package - version 3.0: F. Neese, F. Wennmohs,
U. Becker, D. Bykov, D. Ganyushin, A. Hansen, R. Izsák, D. G. Liakos, C. Kollmar, S. Kossmann,
D. A. Pantazis, T. Petrenko, C. Reimann, C. Riplinger, M. Roemelt, B. Sandhoefer, I. Schapiro, K.
Sivalingam, B. Wezisla, M. Kállay, S. Grimme, E. Valeev, G. Chan.
Available from website https://orcaforum.cec.mpg.de.
[65] Quantum Espresso: P. Giannozzi, S. Baroni, N. Bonini, M. Calandra, R. Car, C. Cavazzoni, D. Ceresoli,
G. L. Chiarotti, M. Cococcioni, I. Dabo, A. Dal Corso, S. Fabris, G. Fratesi, S. de Gironcoli, R. Gebauer,
U. Gerstmann, C. Gougoussis, A. Kokalj, M. Lazzeri, L. Martin-Samos, N. Marzari, F. Mauri, R.
Mazzarello, S. Paolini, A. Pasquarello, L. Paulatto, C. Sbraccia, S. Scandolo, G. Sclauzero, A. P.
Seitsonen, A. Smogunov, P. Umari, R. M. Wentzcovitch, J. Phys.: Condens. Matter 21, 395502 (2009).
Available from website https://www.quantum-espresso.org.
[66] The Vienna Ab initio Simulation Package (VASP): G. Kresse and J. Hafner. “Ab initio molecular dynamics for liquid metals”, Phys. Rev. B, 47, 558 (1993); G. Kresse and J. Hafner, “Ab initio moleculardynamics simulation of the liquid-metal-amorphous-semiconductor transition in germanium”, Phys.
Rev. B, 49, 14251 (1994). G. Kresse and J. Furthmüller, “Eﬃciency of ab-initio total energy calculations for metals and semiconductors using a plane-wave basis set”, Comput. Mat. Sci., 6, 15 (1996).

269

G. Kresse and J. Furthmüller, “Eﬃcient iterative schemes for ab initio total-energy calculations usinga plane-wave basis set”, Phys. Rev. B, 54, 11169 (1996).
Available from website http://www.vasp.at.
[67] Scalable Molecular Analysis Solver for High-performance computing systems (SMASH), K. Ishimura.
Available from website http://smash-qc.sourceforge.net.
[68] ABINIT-MP.
Available from website http://moldb.nihs.go.jp/abinitmp.
[69] J. W. Ponder, TINKER: Software tools for molecular design, Washington University School of Medicine,Saint Louis, MO.
Available from website http://dasher.wustl.edu/tinker.
[70] W. L. Jorgensen, “BOSS - Biochemical and Organic Simulation System”, The Encyclopedia of Computational Chemistry, P. v. R. Schleyer (editor-in-chief), John Wiley & Sons Ltd, Athens, USA, 5,
3281-3285 (1998); W. L. Jorgensen, D. S. Maxwell, and J. Tirado-Rives, J. Am. Chem. Soc. 118,
11225-11236 (1996); W. Damm, A. Frontera, J. Tirado-Rives, and W. L. Jorgensen, J. Comput. Chem.
18, 1955-1970 (1997); W. L. Jorgensen and N. A. McDonald, Theochem 424, 145-155 (1998); W. L.
Jorgensen and N. A. McDonald, J. Phys. Chem. B 102, 8049-8059 (1998); R. C. Rizzo and W. L.
Jorgensen, J. Am. Chem. Soc. 121, 4827-4836 (1999); E. K. Watkins and W. L. Jorgensen, J. Phys.
Chem. A 105, 4118-4125 (2001); M. L. P. Price, D. Ostrovsky, and W. L. Jorgensen, J. Comput. Chem.,
22, 1340-1352 (2001); W. L. Jorgensen, J. P. Ulmschneider, J. Tirado-Rives, J. Phys. Chem. B 108,
16264-70 (2004); W. L. Jorgensen, J. Tirado-Rives, J. Comput. Chem. 26, 1689-1700 (2005); K. P.
Jensen and W. L. Jorgensen, J. Chem. Theory Comput. 2, 1499-1509 (2006).
[71] D. A. Pearlman, D. A. Case, J. W. Caldwell, W. S. Ross, T. E. Cheatham III, S. DeBolt, D. Ferguson, G.
Seibel and P. Kollman, AMBER, a Package of Computer Programs for Applying Molecular Mechanics,
Normal Mode Analysis, Molecular Dynamics and Free Energy Calculations to Simulate the Structuraland Energetic Properties of Molecules, Comp. Phys. Commun. 91, 1-41 (1995); J. Wang, P. Cieplak
and P. A. Kollman, J. Comput. Chem., 21, 1049-1074 (2000) W. D. Cornell, P. Cieplak, C. I. Bayly,
I. R. Gould, K. M. Merz, Jr., D. M. Ferguson, D. C. Spellmeyer, T. Fox, J. W. Caldwell and P. A.
Kollman, J. Am. Chem. Soc., 117, 5179-5197 (1995); G. Moyna, H. J. Williams, R. J. Nachman and
A. I. Scott, Biopolymers, 49, 403-413 (1999); W. S. Ross and C. C. Hardin, J. Am. Chem. Soc., 116,
6070-6080 (1994); J. Aqvist, J. Phys. Chem., 94, 8021-8024 (1990).
[72] B. R. Brooks, R. E. Bruccoleri, B. D. Olafson, D. J. States, S. Swaminathan and M. Karplus,
CHARMM: A Program for Macromolecular Energy, Minimization, and Dynamics Calculations, J.
Comput. Chem. 4, 187-217 (1983). W. E. Reiher III, “Theoretical Studies of Hydrogen Bonding”,
Ph.D. Thesis, Department of Chemistry, Harvard University, Cambridge, MA, 1985. L. Nilsson and M.
Karplus, “Empirical Energy Functions for Energy Minimizations and Dynamics of Nucleic Acids”, J.
Comput. Chem., 7, 591-616 (1986). E. Neria, S. Fischer and M. Karplus, “Simulation of Activation Free
Energies in Molecular Systems”, J. Chem. Phys., 105, 1902-1921 (1996). A. D. MacKerrell, Jr., et al.,“All-Atom Empirical Potential for Molecular Modeling and Dynamics Studies of Proteins”, J. Phys.
Chem. B, 102, 3586-3616 (1998); N. Foloppe and A. D. MacKerell, Jr., “All-Atom Empirical Force
Field for Nucleic Acids: I. Parameter Optimization Based on Small Molecule and Condensed Phase
Macromolecular Target Data”, J. Comput. Chem., 21, 86-104 (2000); Current parameter values areavailable from the CHARMM website, http://mackerell.umaryland.edu/CHARMM ﬀ params.html.
[73] T. Morishita, S. G. Itoh, H. Okumura, M. Mikami, Phys. Rev. E 85, 066702 (2012); J. Comp. Chem.
34, 1375 (2013).
[74] T. Morishita, Y. Yonezawa, A. M. Ito, J. Chem. Theory Comput. 13, 3106 (2017).

270

[75] L. Rosso, P. Mináry, Z. Zhu, M. E. Tuckerman, J. Chem. Phys. 116, 4389 (2002).
[76] J. B. Abrams, M. E. Tuckerman, J. Phys. Chem. B 112, 15742 (2008).
[77] L. Maragliano, E. Vanden-Eijnden, Chem. Phys. Lett. 426, 168 (2006).
[78] W. E, X. Zhou, Nonlinearity 24, 1831 (2011); A. Samanta, W. E, J. Chem. Phys. 136, 124104 (2012).
[79] C. Ming, T.-Q. Yu, M. E. Tuckerman, Proc. Nat. Acad. Sci. 112, 3235 (2015).
[80] S. Awasthi, V. Kapil, N. N. Nair, J. Comput. Chem. 37, 1413-1424 (2016).
[81] S. Awasthi, N. N. Nair, J. Chem. Phys. 146, 094108 (2016).
[82] FFTPACK: P. N. Swarztrauber, Vectorizing the FFT’s, in Parallel Computations, edited by G. Rodrigue, Academic Press, 1982, pages 51-83.
[83] N. Artrith, The Atomic Energy Neural Network (AENET) version 2.0.0: N. Artrith and A. Urban,
Comput. Mater. Sci. 114, 135-150 (2016); N. Artrith, A. Urban, and G. Ceder, Phys. Rev. B 96, 014112(2017); available from AENET website.
[84] J. Sala, E. Guárdia, M. Masia, J. Chem. Phys. 133, 234101 (2010).
[85] L. Ojamäe, I. Shavitt, S. J. Singer, J. Chem. Phys. 109, 5547 (1998).
[86] I. S. Novikov, K. Gubaev, E. V. Podryabinkin, A. V. Shapeev, Machine Learning: Science and Technology, 2 025002 (2020).
[87] A. V. Shapeev, Multiscale Modeling and Simululation, 14, 1153 (2016).

271