PyQCAMS: Python Quasi-Classical Atom–Molecule Scattering
Abstract
:1. Introduction
2. Materials and Methods
2.1. Theoretical Approach
2.1.1. Initial Conditions
2.1.2. Final Products
- Inelastic collision (quenching): AB() + C → AB() + C;
- Molecular formation (reaction): AB + C → AC + B or BC + A;
- Dissociation: AB + C → A + B + C.
2.1.3. Analysis
2.2. The Program
2.2.1. Input
Listing 1. Python script for a full QCT calculation of the reaction H + Ca. This example uses the Morse function from the potentials module, with appropriate parameters set. v12 always refers to the initial bound molecule. v123 is the three-body potential function, with associated derivatives. This example uses the Axilrod#–Teller model potential but with a coefficient of 0; so, it includes no three-body effects. |
import numpy as np from pyqcams import qct, constants, potentials # Atomic masses (amu converted to atomic units) m1 = 1.008∗constants.u2me # H m2 = 1.008∗constants.u2me # H m3 = 40.078∗constants.u2me # Ca # Collision parameters E0 = 40000 # collision energy (K) b0 = 0 # Impact parameter (Bohr) R0 = 50 # Initial distance (Bohr) # Potential parameters in atomic units v12, dv12 = potentials.morse(de = 0.16456603489, re = 1.40104284795, alpha = 1.059493476908482) v23, dv23 = potentials.morse(de = 0.06529228457, re = 3.79079033313, alpha = 0.6906412379896358) v31, dv31 = potentials.morse(de = 0.06529228457, re = 3.79079033313, alpha = 0.6906412379896358) # Three-body interaction v123, dv123dr12, dv123dr23, dv123dr31 = potentials.axilrod(C=0) # Initiate molecules mol12 = qct.Molecule(mi = m1, mj = m2, Vij = v12, dVij = dv12, xmin = .5, xmax = 30, vi = 1, ji = 0, npts=1000) mol23 = qct.Molecule(mi = m2, mj = m3, Vij = v23, dVij = dv23, xmin = 1, xmax = 40) mol31 = qct.Molecule(mi = m3, mj = m1, Vij = v31, dVij = dv31, xmin = 1, xmax = 40) input_dict = {’m1’:m1, ’m2’:m2, ’m3’:m3, ’E0’: E0, ’b0’: b0, ’R0’: R0, ’seed’: None, ’mol_12’: mol12, ’mol_23’: mol23, ’mol_31’: mol31, ’vt’: v123, ’dvtdr12’: dv123dr12, ’dvtdr23’: dv123dr23, ’dvtdr31’: dv123dr31, ’integ’:{ ’t_stop’: 2, ’r_stop’: 2, ’r_tol’: 1e-10, ’a_tol’:1e-8, ’econs’:1e-5, ’lcons’:1e-5}} if __name__ == ’__main__ ’: bs = np.arange(0,5,0.25) # Range of impact parameters (Bohr) nTraj = 10000 # Number of trajectories short_out = ’short.txt’ # Short output long_output = ’long.txt’ # Long output # Run over a range of impact parameters for b in bs: input_dict [’b0’] = b qct.runN (nTraj, input_dict, short_out = ’short.txt’, long_out = ’long.txt’) # Analysis mu = m3∗m1∗m2/(m1 + m2 + m3) analysis.opacity (’samplelong.txt’,GB = True, vib = True, rot = False, output = ’opacity.txt’) analysis.crossSection (’samplelong.txt’, GB = True, vib = True, rot = False, output = ’sigma.txt’) analysis.rate (’samplelong.txt’, mu = mu, GB = True, vib = True, rot = False, output = ’rate.txt’) |
- Two-Body Terms
- (a)
- Morse:User defines: ;
- (b)
- Generalized Lennard–Jones:User defines: ;
- (c)
- Buckingham:User defines: ;
- (d)
- poly2: ,User defines: .
- Three-Body Terms
- (a)
- Axilrod–Teller [29]:User defines: C;
- (b)
- poly3: ,User defines:
2.2.2. Main Code
2.2.3. Output
- Initial state (vi, ji, , b).
- Product count = (), where n is either 0 or 1. represents a bound molecule between atoms i and j, represents dissociation, and represents a three-atom intermediate complex at the end of the calculation.
- Final state = (), where is the Gaussian weight given in Equation (11). For trajectories yielding or , the final state outputs = (0, 0, 0, 0).
- Long output: Prints a single line per trajectory containing the default outputs. If any of the attributes provided in Table 3 are desired, place them as a list of strings in the ‘attrs’ argument of qct.runN method. This file is required as an input to the analysis functions provided by PyQCAMS.
- Short output: Sums over the product count of all trajectories for a given initial state (). This can be useful for studies that do not involve state-specific results or GB.
2.2.4. Analysis Functions
2.2.5. Parallel Implementation and Performance
2.2.6. Visualization
3. Results
3.1. RbBa+ + Rb
3.2. H2 + Ca
4. Discussion
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Abbreviations
PyQCAMS | Python Quasi-Classical Atom–Molecule Scattering |
QCT | Quasi-classical trajectory |
DVR | Discrete variable representation |
HB | Histogram binning |
GB | Gaussian binning |
API | Application programming interface |
References
- Karplus, M.; Porter, R.N.; Sharma, R.D. Exchange Reactions with Activation Energy. I. Simple Barrier Potential for (H, H2). J. Chem. Phys. 1965, 43, 3259–3287. [Google Scholar] [CrossRef]
- Truhlar, D.G.; Muckerman, J.T. Reactive scattering Cross sections III: Quasiclassical and semiclassical methods. In Atom-Molecule Collision Theory: A Guide for the Experimentalist; Plenum Press: New York, NY, USA, 1979; pp. 505–561. [Google Scholar]
- Ríos, J. Cold Chemical Reactions Between Molecular Ions and Neutral Atoms. In An Introduction to Cold and Ultracold Chemistry: Atoms, Molecules, Ions and Rydbergs; Springer International Publishing: Berlin/Heidelberg, Germany, 2020; pp. 215–234. [Google Scholar]
- Aoiz, F.J.; Herrero, V.J.; Sáez Rábanos, V. Quasiclassical state to state reaction cross sections for D+H2(v = 0, j = 0)→HD(v′,j′) + H. Formation and characteristics of short-lived collision complexes. J. Chem. Phys. 1992, 97, 7423–7436. [Google Scholar] [CrossRef]
- Aoiz, F.J.; Bañares, L.; Herrero, V.J. Recent results from quasiclassical trajectory computations of elementary chemical reactions. J. Chem. Soc. Faraday Trans. 1998, 94, 2483–2500. [Google Scholar] [CrossRef]
- De Oliveira-Filho, A.G.S.; Ornellas, F.R.; Bowman, J.M. Quasiclassical Trajectory Calculations of the Rate Constant of the OH + HBr →Br + H2O Reaction Using a Full-Dimensional Ab Initio Potential Energy Surface Over the Temperature Range 5 to 500 K. J. Phys. Chem. Lett. 2014, 5, 706–712. [Google Scholar] [CrossRef] [PubMed]
- Nagy, T.; Vikár, A.; Lendvay, G. A general formulation of the quasiclassical trajectory method for reduced-dimensionality reaction dynamics calculations. Phys. Chem. Chem. Phys. 2018, 20, 13224–13240. [Google Scholar] [CrossRef]
- Patra, S.; San Vicente Veliz, J.C.; Koner, D.; Bieske, E.J.; Meuwly, M. Photodissociation dynamics of N3+. J. Chem. Phys. 2022, 156, 124307. [Google Scholar] [CrossRef]
- Töpfer, K.; Upadhyay, M.; Meuwly, M. Quantitative molecular simulations. Phys. Chem. Chem. Phys. 2022, 24, 12767–12786. [Google Scholar] [CrossRef] [PubMed]
- Goswami, S.; San Vicente Veliz, J.C.; Upadhyay, M.; Bemish, R.J.; Meuwly, M. Quantum and quasi-classical dynamics of the C(3P) + O2(3σ-g) → CO(1σ+) + O(1D) reaction on its electronic ground state. Phys. Chem. Chem. Phys. 2022, 24, 23309–23322. [Google Scholar] [CrossRef]
- Hirzler, H.; Pérez-Ríos, J. Rydberg atom-ion collisions in cold environments. Phys. Rev. A 2021, 103, 043323. [Google Scholar] [CrossRef]
- Pérez-Ríos, J. Vibrational quenching and reactive processes of weakly bound molecular ions colliding with atoms at cold temperatures. Phys. Rev. A 2019, 99, 022707. [Google Scholar] [CrossRef]
- Hirzler, H.; Trimby, E.; Lous, R.S.; Groenenboom, G.C.; Gerritsma, R.; Pérez-Ríos, J. Controlling the nature of a charged impurity in a bath of Feshbach dimers. Phys. Rev. Res. 2020, 2, 033232. [Google Scholar] [CrossRef]
- Mota, V.C.; Caridade, P.J.S.B.; Varandas, A.J.C.; Galvão, B.R.L. Quasiclassical Trajectory Study of the Si + SH Reaction on an Accurate Double Many-Body Expansion Potential Energy Surface. J. Phys. Chem. A 2022, 126, 3555–3568. [Google Scholar] [CrossRef] [PubMed]
- Frisch, M.J.; Trucks, G.W.; Schlegel, H.B.; Scuseria, G.E.; Robb, M.A.; Cheeseman, J.R.; Scalmani, G.; Barone, V.; Petersson, G.A.; Nakatsuji, H.; et al. Gaussian 16; Revision C.01; Gaussian Inc.: Wallingford, CT, USA, 2016. [Google Scholar]
- Hase, W.L.; Duchovic, R.J.; Hu, X.; Komornicki, A.; Lim, K.F.; Lu, D.h.; Peslherbe, G.H.; Swamy, K.N.; Linde, S.; Varandas, A.; et al. A general chemical dynamics computer program. Quantum Chem. Program Exch. Bull. 1996, 16, 671. [Google Scholar]
- Harris, C.R.; Millman, K.J.; van der Walt, S.J.; Gommers, R.; Virtanen, P.; Cournapeau, D.; Wieser, E.; Taylor, J.; Berg, S.; Smith, N.J.; et al. Array programming with NumPy. Nature 2020, 585, 357–362. [Google Scholar] [CrossRef] [PubMed]
- Virtanen, P.; Gommers, R.; Oliphant, T.E.; Haberland, M.; Reddy, T.; Cournapeau, D.; Burovski, E.; Peterson, P.; Weckesser, W.; Bright, J.; et al. SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nat. Methods 2020, 17, 261–272. [Google Scholar] [CrossRef] [PubMed]
- Hunter, J.D. Matplotlib: A 2D graphics environment. Comput. Sci. Eng. 2007, 9, 90–95. [Google Scholar] [CrossRef]
- The Pandas Development Team. pandas-dev/pandas: Pandas. 2020. Available online: https://doi.org/10.5281/zenodo.3509134 (accessed on 21 January 2024).
- McKerns, M.M.; Strand, L.; Sullivan, T.; Fang, A.; Aivazis, M.A.G. Building a Framework for Predictive Science. arXiv 2012, arXiv:1202.1056. [Google Scholar]
- McKerns, M.; Aivazis, M. Pathos: A Framework for Heterogeneous Computing. 2010. Available online: http://trac.mystic.cacr.caltech.edu/project/pathos (accessed on 21 January 2024).
- Colbert, D.T.; Miller, W.H. A novel discrete variable representation for quantum mechanical reactive scattering via the S-matrix Kohn method. J. Chem. Phys. 1992, 96, 1982–1991. [Google Scholar] [CrossRef]
- Bonnet, L.; Rayez, J. Quasiclassical trajectory method for molecular scattering processes: Necessity of a weighted binning approach. Chem. Phys. Lett. 1997, 277, 183–190. [Google Scholar] [CrossRef]
- Bonnet, L.; Espinosa-García, J. The method of Gaussian weighted trajectories. V. On the 1GB procedure for polyatomic processes. J. Chem. Phys. 2010, 133, 164108. [Google Scholar] [CrossRef]
- Bonnet, L. The method of Gaussian weighted trajectories. III. An adiabaticity correction proposal. J. Chem. Phys. 2008, 128, 044109. [Google Scholar] [CrossRef] [PubMed]
- Aguado, A.; Paniagua, M. A new functional form to obtain analytical potentials of triatomic molecules. J. Chem. Phys. 1992, 96, 1265–1275. [Google Scholar] [CrossRef]
- Aguado, A.; Tablero, C.; Paniagua, M. Global fit of ab initio potential energy surfaces I. Triatomic systems. Comput. Phys. Commun. 1998, 108, 259–266. [Google Scholar] [CrossRef]
- Axilrod, B.M.; Teller, E. Interaction of the van der Waals Type Between Three Atoms. J. Chem. Phys. 2004, 11, 299–300. [Google Scholar] [CrossRef]
- Dormand, J.; Prince, P. A family of embedded Runge-Kutta formulae. J. Comput. Appl. Math. 1980, 6, 19–26. [Google Scholar] [CrossRef]
- Strauss, C.; Takekoshi, T.; Lang, F.; Winkler, K.; Grimm, R.; Hecker Denschlag, J.; Tiemann, E. Hyperfine, rotational, and vibrational structure of the a3Σ state of 87Rb2. Phys. Rev. A 2010, 82, 052514. [Google Scholar] [CrossRef]
- Yan, Z.C.; Babb, J.F.; Dalgarno, A.; Drake, G.W.F. Variational calculations of dispersion coefficients for interactions among H, He, and Li atoms. Phys. Rev. A 1996, 54, 2824–2833. [Google Scholar] [CrossRef] [PubMed]
- Liu, J.; Salumbides, E.J.; Hollenstein, U.; Koelemeij, J.C.J.; Eikema, K.S.E.; Ubachs, W.; Merkt, F. Determination of the ionization and dissociation energies of the hydrogen molecule. J. Chem. Phys. 2009, 130, 174306. [Google Scholar] [CrossRef]
- Shayesteh, A.; Alavi, S.F.; Rahman, M.; Gharib-Nezhad, E. Ab initio transition dipole moments and potential energy curves for the low-lying electronic states of CaH. Chem. Phys. Lett. 2017, 667, 345–350. [Google Scholar] [CrossRef]
- Mitroy, J.; Zhang, J.Y. Properties and long range interactions of the calcium atom. J. Chem. Phys. 2008, 128, 134305. [Google Scholar] [CrossRef]
- Hase, W.L.; Duchovic, R.J.; Hu, X.Y.; Komornicki, A.; Lim, K.F.; Lu, D.H.; Peslherbe, G.H.; Swamy, K.N.; Linde, S.R.V.; Varandas, A.J.C.; et al. VENUS96: A General Chemical Dynamics Computer Program; Wayne State University: Detroit, MI, USA, 1996. [Google Scholar]
- Barbatti, M.; Ruckenbauer, M.; Plasser, F.; Pittner, J.; Granucci, G.; Persico, M.; Lischka, H. Newton-X: A surface-hopping program for nonadiabatic molecular dynamics. WIREs Comput. Mol. Sci. 2014, 4, 26–33. [Google Scholar] [CrossRef]
- Mai, S.; Avagliano, D.; Heindl, M.; Marquetand, P.; Menger, M.F.S.J.; Oppel, M.; Plasser, F.; Polonius, S.; Ruckenbauer, M.; Shu, Y.; et al. SHARC3.0: Surface Hopping Including Arbitrary Couplings—Program Package for Non-Adiabatic Dynamics. 2023. Available online: https://sharc-md.org/ (accessed on 9 May 2024).
Keyword | Description (Unit) |
---|---|
m1, m2, m3 | Atomic masses (a.u.) |
E0 | Collision energy (Kelvin) |
b0 | Impact parameter (Bohr) |
R0 | Initial distance (Bohr) |
seed | Random number generator seed |
mol_12 | Molecule class object: of atoms one and two (initially bound) |
mol_23 | Molecule class object: of atoms two and three |
mol_31 | Molecule class object: of atoms three and one |
Vt | Three-body interaction term (Hartree) |
dVtdr12 | Partial derivative (Hartree) |
dVtdr23 | Partial derivative (Hartree) |
dVtdr31 | Partial derivative (Hartree) |
integ[t_stop] | Stopping condition: multiple of collision timescale |
integ[r_stop] | Stopping condition: multiple of R0 |
integ[r_tol] | Relative error tolerance for equation of motion |
integ[a_tol] | Absolute error tolerance for equation of motion |
integ[econs] | Conserved energy requirement (Hartree) |
integ[lcons] | Conserved momentum requirement (a.u.) |
Keyword | Description |
---|---|
Ei | Initial binding energy (for molecule 12) |
E | Final relative energy |
Veff | Effective potential |
re | Equilibrium distance |
rp | Classical outer turning point |
rm | Classical inner turning point |
tau | Vibrational period |
bdry | Local maximum of effective potential |
bdx | Interparticle distance of effective potential local maximum |
vPrime | Final vibrational number (not binned) |
vt | Final vibrational number (rounded) |
vw | Gaussian weight associated with vPrime |
jPrime | Final rotational number (rounded) |
jw | Gaussian weight associated with jPrime |
Attribute | Description |
---|---|
count | count vector of reaction products |
fstate | state vector of reaction products |
R | initial atom–diatom distance |
ang | initial configuration of angles |
w0 | initial Jacobi vectors |
wn | set of Jacobi vectors , , , throughout the trajectory |
t | trajectory time steps |
delta_e | energy conservation |
delta_l | momentum conservation |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Koots, R.; Pérez-Ríos, J. PyQCAMS: Python Quasi-Classical Atom–Molecule Scattering. Atoms 2024, 12, 29. https://doi.org/10.3390/atoms12050029
Koots R, Pérez-Ríos J. PyQCAMS: Python Quasi-Classical Atom–Molecule Scattering. Atoms. 2024; 12(5):29. https://doi.org/10.3390/atoms12050029
Chicago/Turabian StyleKoots, Rian, and Jesús Pérez-Ríos. 2024. "PyQCAMS: Python Quasi-Classical Atom–Molecule Scattering" Atoms 12, no. 5: 29. https://doi.org/10.3390/atoms12050029
APA StyleKoots, R., & Pérez-Ríos, J. (2024). PyQCAMS: Python Quasi-Classical Atom–Molecule Scattering. Atoms, 12(5), 29. https://doi.org/10.3390/atoms12050029