Tip
All input files can be downloaded: Files.
pifep
The option controls the PI-FEP simulation options.
Options
- temp
Value
A real number
Default
298.15
Simulation temperature in Kelvin.
- sampling
Value
bisectionBisection beads sampling algorithm.Default
bisection (must be provided)Define the beads sampling method. Chin approximation scheme,
ca, does not support bisection sampling algorithm.
- bisection_level
Value
An integer
Default
6The number of PI beads under bisection algorithm which is defined as \(2^N\), where \(N\) denotes bisection level. This keyword must be used in conjunction with
bisectionsampling algorithm.
- classical_coord_file
Value
A filename
Default
None
Filename of an
.xyzfile which stores classical nuclear coordinates.
- checkpoint_fn
Value
A filename
Default
chkCheckpoint filename.
- restart
Value
A filename
Default
None
The checkpoint filename from which the simulation resumes.
- num_pifep_samples
Value
An integer
Default
100The number of PI beads samplings to perform for each classical nuclear coordinate.
- quantised_atoms_list
Value
List of integers or range of integers
Default
None (meaning all atoms are quantised)
The indices of atoms which are quantised to PI beads.
- isotope_indices
Value
List of integers or range of integers
Default
None
The indices of atoms which are specified for isotope exchange.
- isotope_num
Value
List of integers
Default
None
The isotope number based on table below (the atomic masses are hardcoded for now)
Isotopes table Isotope Name
isotope_num
\(^1\mathrm{H}\)
1
\(^2\mathrm{H}\)
2
\(^3\mathrm{H}\)
3
\(^{12}\mathrm{C}\)
1
\(^{13}\mathrm{C}\)
2
\(^{14}\mathrm{C}\)
3
\(^{14}\mathrm{N}\)
1
\(^{15}\mathrm{N}\)
2
\(^{16}\mathrm{O}\)
1
\(^{17}\mathrm{O}\)
2
\(^{18}\mathrm{O}\)
3
- write_log
Value
A file name
Default
log.datLog filename which stores summarised simulation output.
- random_seed
Value
An integers
Default
None
A seed value used to initialize the pseudo-random number generator (PRNG).
- rc
Value
Three positive integers
Default
None
The reaction coordinate defined using 3 atoms, i.e. Bondlength difference between 1-2 and 2-3 (currently only 1D CV in bondlength differences is supported)
- temp
Value
A real number
Default
298.15Simulation temperature in Kelvin.
- bin_width
Value
A real number
Default
0.0Bin width for the reaction coordinate in Å.
- anchor
Value
A real number
Default
0.0An optional parameter which sets bin-grid anchor in Å, by default it assumes the transition state is centered at 0.0 Å.
- pifep_analysis_files
Value
Two coulumns of filenames
Default
None
The first column specifies the classical reaction coordinate filenames in
.xyz, the second column is the corresponding PI-FEP log file.1./qbics-linux-cpu pifep-analysis.inp
Note that MPI feature is not available for the analysis program.
Theoretical Background
XXXX
Checkpoint and restart
A text-based checkpoint file (named chk by default) is written as the simulation runs, if the simulation terminates due to any unexpected reasons, it can be restarted by restart option with the appropriate checkpoint filename.
Code Execution in Parallel
The PI-FEP module supports both serial and MPI parallel computation, and can be used in conjunction with OpenMP. In the MPI parallel approach, each PI bead is assigned to a dedicated MPI worker process, while OpenMP enables further parallelization within each process by distributing computational tasks across multiple threads. Note that the number of MPI processes should not exceed the number of PI beads + 1. Assuming MPI is properly installed and configured, one can execute the program using the following:
1 # 8 beads PI-FEP simulation executed using 9 MPI processes, 1 master thread is used to distribute tasks
2 mpirun -np 9 qbics-linux-cpu-mpi pifep-rs.inp
3
4 # 8 beads PI-FEP simulations executed using 5 MPI processes, each MPI process utilises 4 OpenMP threads
5 mpirun -np 5 qbics-linux-cpu-mpi pifep-rs.inp -n 4
6
7 # PI-FEP simulation executed using 24 threads via OpenMP
8 qbics-linux-cpu pifep-rs.inp -n 24
For PI-FEP simulations of any kinds of systems, parallel execution via MPI is strongly recommended for optimal performance.