The program can generate Pis4 based Potential energy surface internally (with capabilities to create input files for Gaussian, Molpro and Psi4 for external calculations) for atom-atom (1D), rigid rotor(RR)-atom (2D) and RR-RR (4D) collision. A TensorFlow (keras) based neural networks model can be created to augment the surface with a high degree of accuracy (at both minima and high energy regions) OR (if angular augmentation is not necessary) radial terms for each angle(s) can be analytically fitted to get missing R values. Finally, the PES is fitted into Legendre (2D) and Bispherical Harmonics (4D) to get radial terms which can be used to study rotational transitions induced by the collider. The codes are useful while studying collisional 💥 dynamics of one or both species at cold ❄️ and ultracold ⛄ temperatures.
To be updated:
- (a) Full programmer's guide
- (b) Example files
- 📬 [email protected]
The Python-based program automatically creates PES for various collisional pairs e.g. atom-atom (1D), rigid rotor-atom (2D) and rigid rotor-rigid rotor (4D). The program calculates and moves respective Rigid Rotor(s) (RR) to COM and generates PES using Psi4 (for rough estimation). The program also generates input files for external calculations using Molpro/Gaussian/Psi4 along with publication-ready plots with customization (title, axis, etc.) in pdf/eps formats. Simple templates (input_files.py) are provided for Psi4, Gaussian and Molpro which automatically creates required input files (for each individual coordinate in XYZ format) for respective ab initio software packages. Sample input files are provided for Single point, BSSE-corrected and CBS-extrapolation schemes for Molpro. Gaussian template defaults to BSSE corrected PES, while Psi4 can be used both internally (using pes2mp) or externally (recommended for large calculations).
The program can be utilized to separately fit minima and high energy region for a good fit. The underlying package for the NN model is TensorFlow, which can learn multiple outputs simultaneously and is not restricted by dimensionality (i.e. data can have N inputs and M output columns). The program also keeps boundary elements (of input features) in the training dataset to prevent boundary errors. There are two models: PES-specific (default) and Generic. The PES-specific model uses Gaussian activation functions (custom-made) and a modified Slater function for high-energy and long-range extrapolation. In the generic model, GELU is the default activation function. For finding the most suitable model (layers/nodes/activation function), keras-tuner’s (package) Bayesian Optimization tuning is used which utilises the Gaussian process to find optimum parameters within a reasonably defined search space.
The radial terms (
Both codes (2D/4D) use least squares fit, achieved by taking the pseudo-inverse of Legendre/Spherical-Harmonics coefficients, which are saved as a 2D numpy matrix for future use.
The code is currently limited to rigid rotor - atom (2D) and rigid rotor - rigid rotor (4D) collision. For theoretical details please follow the paper N. Sathyamurthy, “Computational fitting of ab initio potential energy surfaces,” _Comput. Phys. Rep._ 3, 1–69 (1985).
link 🧐
The radial terms (
The curve fit produces an output which is MOLSCAT readable for direct utilization in &potl block. The feature is available in a general-purpose version of the subroutine POTENL of MOLSCAT 2020. The same can be utilized to calculate cross- sections for rotational (de-)excitation of two colliding species at cold and ultracold temperatures.
PES plots are available as 1D (R vs E) and polar (R,
For any queries ✉️ Dr. T. J. Dhilip Kumar cc: Apoorv Kushwaha
Installation Instructions:
The makefiles (inside make_scripts folder
) are tested on Linux and MacOS. The quick install files do not use conda install
(where solving environments can take hours), instead, it uses python -m pip
. However, all 4 files create separate environments and can be run without clashing with each other. To understand more read 🐍
- Install anaconda
- Open conda promot
The command prompt will show `base' meaning base conda environment.
- run
chmod +x install_pes2mp.sh
- run
./install_pes2mp.sh
- run
chmod +x install_pes2mp_quick.sh
(recommended) orchmod +x install_pes2mp_quick.sh
{See manual for more information} - run
./install_pes2mp_quick.sh
Running PES2MP:
The program can be run by keeping the input file (e.g. pesgen1D.py)
- run
conda activate pes2mp
orconda activate pes2mp_quick
depending on installation - run
python3 pes2mp.py pesgen1D
- open bashrc in Ubuntu (or bash_profile in MacOS) and add
pes2mp () {python3 pes2mp.py $1 }
at end of file. Save and exit. - The command for running PES2MP will now be
pes2mp pesgen1D