2D and 4D multipole expansion code (using Legendre polynomials and Spherical Harmonics respectively) for fitting Potential Energy Surface (PES) into radial coefficients (
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 codes are useful while studying collisional 💥 dynamics of one or both species at cold ❄️ and ultracold ⛄ temperatures.
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 🧐
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 prompt
- run
chmod +x install_peslearn_quick.sh
(recommended) orchmod +x install_peslearn.sh
{See manual for more information} - run
./install_peslearn_quick.sh
- run
chmod +x install_pes2mp_quick.sh
(recommended) orchmod +x install_pes2mp.sh
{See manual for more information} - run
./install_pes2mp_quick.sh
Running PES2MP:
Since the ML model generating library PES-Learn
uses python 3.6 separate environments are created to aviod clashes and error.
After installing both files (quick or non-quick versions as it suits).
- run
conda activate peslearn_quick
orpeslearn
for the conda installed version - run
jupyter-notebook
- run
conda activate pes2mp_quick
orpes2mp
for the conda installed version - run
jupyter-notebook
peslearn_quick environment
for CODE 0-1 and pes2mp_quick environment
for the rest of the codes.
Update History:
### Update 2023.1.0 - ! Upcoming !- Code 0-1 are for augmenting PES data using ML package PESLearn,
- Code 2 and 3 are for fitting PES to radial coefficients and vice-versa (to calculate fitting error),
- Code 4 is a template to fit radial coefficients into molscat readable functions.
-
The original code has been broken into 5 parts (Code_0-4),
-
The old codes published in Supplementary Information (links to articles are provided below) can be accessed via following link.
2D PES (Atom - Rigid Rotor collision):
File 2: CODE_2_PES2MP_2D.ipynb
Uses [scipy.special] for Legendre coefficient
Link: [Link to paper: See Supplementary Information]
# Bibtex citation for 2D code: multipole expansion of 2D Potential Energy Surface
@article{Kushwaha2023Jan,
author = {Kushwaha, Apoorv and Kumar, Thogluva Janardhanan Dhilip},
title = {{Benchmarking PES-Learn's machine learning models predicting accurate potential energy surface for quantum scattering}},
journal = {Int. J. Quantum Chem.},
volume = {123},
number = {1},
pages = {e27007},
year = {2023},
month = jan,
issn = {0020-7608},
publisher = {John Wiley {\&} Sons, Ltd},
doi = {10.1002/qua.27007}
}
4D PES (Rigid Rotor - Rigid Rotor collision):
Uses [pyshtools] for calculating spherical harmonics
(need separate installation: Instructions are provided in jupyter-notebook file)
File 2: CODE_2_PES2MP_4D.ipynb
Link: [Link to paper: See Supplementary Information]
# Article citation for 4D code: multipole expansion of 4D Potential Energy Surface
@article{Kushwaha2023Aug,
author = {Kushwaha, Apoorv and Dhilip Kumar, T. J.},
title = {{4D potential energy surface of NCCN{\textendash}H2 collision: Rotational dynamics by p-H2 and o-H2 at interstellar temperatures}},
journal = {J. Chem. Phys.},
volume = {159},
number = {7},
year = {2023},
month = aug,
issn = {0021-9606},
publisher = {AIP Publishing},
doi = {10.1063/5.0161335}
}
Manual: 📖 Upcoming !
- Under Preparation