{ "cells": [ { "cell_type": "markdown", "id": "a333c08e", "metadata": {}, "source": [ "# 11. Ro-vibrational Spectra of Methane\n", "\n", "**To run this tutorial, install the optional dependency by `uv sync --extra pyscf`.**\n", "\n", "So far, we have mainly used local coordinates such as bonds, angles and dihedrals, each of which is defined by a few atoms. However, it is often desirable to move many atoms collectively in a certain direction. Such collective coordinates can reduce the number of essential DOFs, and are natural for vibrational analysis.\n", "\n", "PySCIVR provides the displacement along a normal mode measured in the body frame. Since this coordinate is invariant under translations and rotations, it can be combined with the rotational DOFs to describe ro-vibrational motion. Only the mode vector needs to be specified: the dynamics is propagated in the Cartesian coordinates, and **no construction of the complicated rovibrational Hamiltonian (Coriolis coupling, coordinate-dependent inertia tensor, etc.) is required.**\n", "\n", "In this tutorial, the rovibrational spectrum of methane is computed with the symmetric stretching mode and the overall rotation.\n", "\n", "| Redundant space | Potential | Integrator | Physical space |\n", "|---|---|---|---|\n", "| Cartesian (15 DOFs) with 11 constraints (3 translations, 8 other normal modes) | 1D spline along the symmetric stretching mode (B3LYP/def2-TZVP) | `ShakeRattle` | Euler angles (3 DOFs) and normal coordinate (1 DOF) |\n", "\n", "- **Normal mode coordinate**: The symmetric stretching mode ($A_1$, harmonic frequency of 3032 $\\textrm{cm}^{-1}$) is active, and the other eight normal modes are fixed by the constraints. The rotation is not constrained.\n", "\n", "- **Potential**: The potential could be computed by *ab initio* calculations on the fly. To accelerate the calculation, however, we construct a rotationally invariant Cartesian potential from a one-dimensional scan along the mode.\n", "\n", "- **Initial states**: Coherent states centered at the equilibrium structure with the rotational kinetic energies of 50, 200 and 500 $\\textrm{cm}^{-1}$.\n", "\n", "- **Sampling**: The initial positions are fixed at the equilibrium structure, only the momenta are sampled, including the vibrational momenta (see below).\n", "\n", "- **Reference**: The levels are not compared with exact quantum results. Instead, we check that the rotational levels ride on each vibrational level, and that their spacings agree with those of the rigid rotor, since the rovibrational coupling is small at low energies." ] }, { "cell_type": "code", "execution_count": 1, "id": "967380bd", "metadata": {}, "outputs": [], "source": [ "# import necessary libraries\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.interpolate import CubicSpline\n", "from scipy.optimize import brentq\n", "import time\n", "\n", "from pyscf import gto, dft\n", "from pyscf.geomopt import berny_solver\n", "from pyscf.hessian import thermo\n", "\n", "from pyscivr.basis import get_overlap\n", "from pyscivr.coordinates import InternalCoordinates\n", "from pyscivr.hessian import eval_hess_active, interpolate_hessian, projected_hessian\n", "from pyscivr.integrators import ShakeRattle\n", "from pyscivr.potentials import DFTPotential, Calculator\n", "from pyscivr.scivr import get_action, get_lagrangian, get_prefactor, get_ta_spectrum_fft\n", "from pyscivr.units import CmInv, FemtoSec, HBar\n", "from pyscivr.utils import get_geom, get_inertia, get_mass_center\n", "from pyscivr.variations import make_vari_propagator, propagate_variation, make_jacobi_func, to_internal" ] }, { "cell_type": "markdown", "id": "c8c32fa2", "metadata": {}, "source": [ "## Setup\n", "\n", "The equilibrium structure used in this notebook was obtained by the geometry optimization with PySCF at the B3LYP/def2-TZVP level." ] }, { "cell_type": "code", "execution_count": 2, "id": "6be9ccdb", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning: must be initialized before calling SCF.\n", "Initialize in \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "C 0.00000000 -0.00000000 -0.00000000\n", "H 0.62886702 0.62886702 0.62886702\n", "H -0.62886702 -0.62886702 0.62886702\n", "H 0.62886702 -0.62886702 -0.62886702\n", "H -0.62886702 0.62886702 -0.62886702\n", "wavenumbers: [1340.714 1340.714 1340.714 1556.308 1556.308 3031.904 3134.33 3134.33 3134.334]\n" ] } ], "source": [ "basis = \"def2-tzvp\"\n", "xc = \"b3lyp\"\n", "\n", "xyzstr_init = \"\"\"\n", "C -0.000000000000 0.000000000000 -0.000000000000\n", "H 0.627615334142 0.627615334142 0.627615334142\n", "H -0.627615334142 -0.627615334142 0.627615334142\n", "H 0.627615334142 -0.627615334142 -0.627615334142\n", "H -0.627615334142 0.627615334142 -0.627615334142\n", "\"\"\"\n", "\n", "conv_params = {\n", " 'gradientmax': 0.45e-5,\n", " 'gradientrms': 0.15e-5,\n", " 'stepmax': 1.8e-5,\n", " 'steprms': 1.2e-5,\n", "}\n", "\n", "symbols, posi, mass = get_geom(xyzstr_init)\n", "mol = gto.Mole(verbose=1)\n", "mol.atom = [[s, p] for s, p in zip(symbols, posi)]\n", "mol.basis = basis\n", "mf = dft.RKS(mol, xc=xc)\n", "mol_eq = berny_solver.optimize(mf, maxsteps=100, **conv_params)\n", "XYZSTR = mol_eq.tostring()\n", "\n", "assert np.allclose(mol_eq.atom_mass_list(isotope_avg=True), mass)\n", "\n", "print(XYZSTR)\n", "\n", "mf_eq = dft.RKS(mol_eq, xc=xc)\n", "mf_eq.conv_tol = 1e-12\n", "mf_eq.grids.level = 5\n", "mf_eq.kernel()\n", "\n", "hess = mf_eq.Hessian().kernel() # (natm, natm, 3, 3) in Hartree/Bohr^2\n", "natm = mol_eq.natm\n", "hess_cart = hess.transpose(0, 2, 1, 3).reshape(3 * natm, 3 * natm)\n", "\n", "# harmonic analysis (frequencies in cm^-1, normal modes)\n", "res = thermo.harmonic_analysis(mol_eq, hess)\n", "print('wavenumbers:', res[\"freq_wavenumber\"])\n", "omegas = res[\"freq_wavenumber\"] * CmInv / HBar\n", "\n", "norm_mode = res[\"norm_mode\"].reshape(-1, 3 * natm) # (nmode, 3*natm)\n", "mode_vectors = norm_mode * np.repeat(np.sqrt(mass), 3).reshape(-1, 3 * natm)\n", "\n", "# check orthonormality of mode vectors\n", "assert np.allclose(np.dot(mode_vectors, mode_vectors.T), np.eye(len(mode_vectors)))" ] }, { "cell_type": "markdown", "id": "174b803d", "metadata": {}, "source": [ "## Normal mode coordinates\n", "\n", "The normal coordinate is defined in the body frame obtained by Horn's method,\n", "\n", "\\begin{align*}\n", "z(x) = v \\cdot \\left[ \\sqrt{m} \\left( x_c C(x) - x_{\\textrm{ref},c} \\right) \\right],\n", "\\end{align*}\n", "\n", "where $x_c$ and $x_{\\textrm{ref},c}$ are the mass-centered current and reference structures, and $C(x)$ is the rotation matrix that best superimposes the reference structure onto the current one. Since the current structure is rotated back to the orientation of the reference structure before the projection, $z$ is invariant under translations and rotations.\n", "\n", "The mode vector $v$ is added by `add_normal_mode`. Note that $v$ must be the normalized eigenvector of the mass-weighted Hessian." ] }, { "cell_type": "code", "execution_count": 3, "id": "081a2d37", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reference energy: -1103.0823521843631\n", "Build complete: 15 coordinates\n", "InternalCoordinates:\n", " 0: translation_x value_ref=0.000000\n", " 1: translation_y value_ref=0.000000\n", " 2: translation_z value_ref=0.000000\n", " 3: euler_yaw value_ref=0.000000\n", " 4: euler_pitch value_ref=1.570796\n", " 5: euler_roll value_ref=0.000000\n", " 6: mode_0 value_ref=0.000000\n", " 7: mode_1 value_ref=0.000000\n", " 8: mode_2 value_ref=0.000000\n", " 9: mode_3 value_ref=0.000000\n", " 10: mode_4 value_ref=0.000000\n", " 11: mode_5 value_ref=0.000000\n", " 12: mode_6 value_ref=0.000000\n", " 13: mode_7 value_ref=0.000000\n", " 14: mode_8 value_ref=0.000000\n", "Build complete: 11 coordinates\n", "InternalCoordinates:\n", " 0: translation_x value_ref=0.000000\n", " 1: translation_y value_ref=0.000000\n", " 2: translation_z value_ref=0.000000\n", " 3: mode_0 value_ref=0.000000\n", " 4: mode_1 value_ref=0.000000\n", " 5: mode_2 value_ref=0.000000\n", " 6: mode_3 value_ref=0.000000\n", " 7: mode_4 value_ref=0.000000\n", " 8: mode_6 value_ref=0.000000\n", " 9: mode_7 value_ref=0.000000\n", " 10: mode_8 value_ref=0.000000\n" ] } ], "source": [ "SYMBOLS, POSI_REF, MASS = get_geom(XYZSTR)\n", "\n", "assert np.allclose(get_mass_center(POSI_REF, MASS), 0.0) # centered at the origin\n", "INERTIA_TENSOR = get_inertia(POSI_REF, MASS)\n", "assert np.allclose(INERTIA_TENSOR, np.diag(np.diag(INERTIA_TENSOR))) # principal axis frame\n", "INERTIA = np.diag(INERTIA_TENSOR)\n", "\n", "CALC = DFTPotential(symbols, basis=\"def2-tzvp\", xc=\"b3lyp\")\n", "ENER_REF = CALC.energy(POSI_REF)\n", "print(\"Reference energy:\", ENER_REF)\n", "\n", "COORD_ALL = InternalCoordinates(POSI_REF, MASS)\n", "\n", "COORD_ALL.add_translation()\n", "COORD_ALL.add_euler()\n", "for i in range(len(mode_vectors)):\n", " COORD_ALL.add_normal_mode(mode_vectors[i], name=f\"mode_{i}\")\n", "COORD_ALL.build()\n", "\n", "print(COORD_ALL)\n", "\n", "MODE_IDX = 5 # mode 5 : symmetric stretch mode of methane (3032 cm^-1)\n", "MODE_VECTOR = mode_vectors[MODE_IDX]\n", "OMEGA = omegas[MODE_IDX]\n", "\n", "COORD_CONST = InternalCoordinates(POSI_REF, MASS)\n", "\n", "COORD_CONST.add_translation()\n", "for i in range(len(mode_vectors)):\n", " if i != MODE_IDX:\n", " COORD_CONST.add_normal_mode(mode_vectors[i], name=f\"mode_{i}\")\n", "COORD_CONST.build()\n", "\n", "print(COORD_CONST)\n", "\n", "ACTIVE_IDX = np.array([3,4,5, COORD_ALL.index[f\"mode_{MODE_IDX}\"]]) # 3 euler angles + 1 selected normal mode\n", "TOPOLOGIES = [COORD_ALL.topology[i] for i in ACTIVE_IDX]\n", "\n", "JACOBI_FUNC, JACOBI_REV_FUNC, INTERNAL_FUNC, MONODROMY_FUNC = make_jacobi_func(COORD_ALL, ACTIVE_IDX)" ] }, { "cell_type": "markdown", "id": "ef7c5ec6", "metadata": {}, "source": [ "## Potential\n", "\n", "Since the displacement along the mode is explicitly given by $x(z) = x_{\\textrm{ref}} + z v / \\sqrt{m}$, no Newton iteration is needed for the scan. The range of $z$ is determined from the classical turning points at 10000 $\\textrm{cm}^{-1}$, which are found by the root finding along the mode.\n", "\n", "The potential is constructed as $V(z(x))$, which is invariant under translations and rotations. On the configurations displaced along the mode up to rotations, which are the only configurations reached under the constraints, the gradient is exactly obtained by rotating $V'(z) \\sqrt{m_i} v_i$ with $C(x)$. The Hessian is not implemented, since `eval_hess_active` requires only the gradient." ] }, { "cell_type": "code", "execution_count": 4, "id": "e0fa8584", "metadata": {}, "outputs": [], "source": [ "def find_turning_points(mode_vector, omega, ener_target, factor=1.5):\n", " \"\"\"Find the turning points along a normal mode vector for a given target energy.\n", "\n", " Args:\n", " mode_vector: ``(3N,)`` normalized eigenvector of the mass-weighted Hessian.\n", " omega: Harmonic angular frequency of the mode (internal units), used for the initial guess.\n", " ener_target: Target energy above the reference energy (in cm^-1).\n", " factor: Initial bracket relative to the harmonic turning point.\n", " Returns:\n", " Tuple of the positive and negative turning points.\n", " \"\"\"\n", " disp = (mode_vector / np.repeat(np.sqrt(MASS), 3)).reshape(-1, 3)\n", " z_harm = np.sqrt(2 * ener_target * CmInv) / omega # harmonic turning point\n", "\n", " def f(z):\n", " return float(CALC.energy(POSI_REF + z * disp)) - ENER_REF - ener_target * CmInv\n", "\n", " def _find_turning_point(sign):\n", " z_hi = sign * factor * z_harm\n", " while f(z_hi) < 0: # expand until the bracket contains the root\n", " z_hi *= 1.2\n", " return brentq(f, min(0.0, z_hi), max(0.0, z_hi), xtol=0.01 * z_harm)\n", "\n", " return _find_turning_point(+1), _find_turning_point(-1)\n", "\n", "z_plus, z_minus = find_turning_points(MODE_VECTOR, OMEGA, ener_target=10000)\n", "\n", "grid = np.linspace(z_minus, z_plus, 20)\n", "posi_scan = POSI_REF + grid[:, None, None] * (MODE_VECTOR / np.repeat(np.sqrt(MASS), 3)).reshape(-1, 3)" ] }, { "cell_type": "code", "execution_count": 5, "id": "d04ba6ed", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "pot = CALC.energy(posi_scan)\n", "pot_spline = CubicSpline(grid, pot)\n", "x = np.linspace(z_minus, z_plus, 10000)\n", "\n", "plt.plot(grid, (pot - ENER_REF) / CmInv, 'o', label='data')\n", "plt.plot(x, (pot_spline(x) - ENER_REF) / CmInv, '-', label='spline')\n", "plt.xlabel('Displacement (a.u.)')\n", "plt.ylabel('Potential Energy (cm^-1)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "id": "214e7314", "metadata": {}, "outputs": [], "source": [ "class NormalModeSplinePotential(Calculator):\n", " r\"\"\"Potential depending only on one normal coordinate, interpolated by a cubic spline.\n", "\n", " The normal coordinate is evaluated in the body frame obtained by Horn's method,\n", "\n", " .. math::\n", "\n", " z(x) = v \\cdot \\left[ \\sqrt{m} \\left( x_c C(x) - x_{\\text{ref},c} \\right) \\right],\n", "\n", " so that the potential :math:`V(z(x))` is invariant under translations and rotations.\n", " The potential is intended for the configurations displaced along the mode\n", " up to translations and rotations, where the other normal coordinates are fixed\n", " by the constraints. In this case, the gradient is obtained by rotating\n", " :math:`V'(z) \\sqrt{m_i} v_i` with :math:`C`.\n", "\n", " Warning:\n", " The spline is not reliable outside the scanned range of :math:`z`.\n", " \"\"\"\n", "\n", " def __init__(self, pot_spline, posi_ref, mass, mode_vector) -> None:\n", " mass = np.asarray(mass, dtype=float)\n", " posi_ref = np.asarray(posi_ref, dtype=float)\n", " ref_c = posi_ref - (mass @ posi_ref) / mass.sum()\n", " n_atoms = len(mass)\n", " sv = np.sqrt(mass)[:, None] * np.asarray(mode_vector, dtype=float).reshape(n_atoms, 3) # (N, 3)\n", "\n", " def mass_centered(x): # (B, N, 3)\n", " return x - np.einsum(\"i,bij->bj\", mass, x)[:, None, :] / mass.sum()\n", "\n", " def quat_to_rotmat(q): # (B, 4) -> (B, 3, 3)\n", " q0, q1, q2, q3 = q[:, 0], q[:, 1], q[:, 2], q[:, 3]\n", " C = np.stack(\n", " [\n", " np.stack([1.0 - 2.0 * (q2**2 + q3**2), 2.0 * (q1 * q2 - q0 * q3), 2.0 * (q1 * q3 + q0 * q2)], axis=-1),\n", " np.stack([2.0 * (q1 * q2 + q0 * q3), 1.0 - 2.0 * (q1**2 + q3**2), 2.0 * (q2 * q3 - q0 * q1)], axis=-1),\n", " np.stack([2.0 * (q1 * q3 - q0 * q2), 2.0 * (q2 * q3 + q0 * q1), 1.0 - 2.0 * (q1**2 + q2**2)], axis=-1),\n", " ],\n", " axis=1,\n", " )\n", " return C\n", "\n", " def get_rotation_matrix(x_c): # (B, N, 3) -> (B, 3, 3)\n", " A = np.einsum(\"i,ij,bik->bjk\", mass, ref_c, x_c)\n", " tr = np.trace(A, axis1=1, axis2=2)\n", " D = A - np.transpose(A, (0, 2, 1))\n", " delta = np.stack([D[:, 1, 2], D[:, 2, 0], D[:, 0, 1]], axis=-1)\n", " K = np.zeros((len(x_c), 4, 4))\n", " K[:, 0, 0] = tr\n", " K[:, 0, 1:] = delta\n", " K[:, 1:, 0] = delta\n", " K[:, 1:, 1:] = A + np.transpose(A, (0, 2, 1)) - tr[:, None, None] * np.eye(3)\n", " return quat_to_rotmat(np.linalg.eigh(K)[1][:, :, -1])\n", "\n", " def get_normal_coord(x): # (B, N, 3) -> (B,), (B, 3, 3)\n", " x_c = mass_centered(x)\n", " C = get_rotation_matrix(x_c)\n", " z = np.einsum(\"ij,bij->b\", sv, x_c @ C - ref_c)\n", " return z, C\n", "\n", " self.pot_spline = pot_spline # scipy CubicSpline (derivatives by pot_spline(z, 1))\n", " self.sv = sv\n", " self.get_normal_coord = get_normal_coord\n", "\n", " def _energy_forces_batch(self, x):\n", " z, C = self.get_normal_coord(x)\n", " ener = self.pot_spline(z)\n", " grad = self.pot_spline(z, 1)[:, None, None] * (self.sv[None] @ np.transpose(C, (0, 2, 1)))\n", " return ener, -grad\n", "\n", "CALC_SPLINE = NormalModeSplinePotential(pot_spline, POSI_REF, MASS, MODE_VECTOR)\n", "\n", "def test_spline():\n", " x = posi_scan # (S, N, 3), on the scanned line\n", " R = np.linalg.qr(np.random.randn(3, 3))[0] # random rotation matrix\n", " if np.linalg.det(R) < 0:\n", " R[:, 0] *= -1 # make it a proper rotation\n", " xr = np.einsum(\"ij,bkj->bki\", R, x) + np.random.randn(3) # rotated and translated\n", " e, f = CALC_SPLINE.energy_forces(x)\n", " er, fr = CALC_SPLINE.energy_forces(xr)\n", "\n", " # 1. z reproduces the scan grid (normalization and sign of mode_vector, Horn frame)\n", " z, _ = CALC_SPLINE.get_normal_coord(x)\n", "\n", " assert np.allclose(z, grid)\n", "\n", " # 2. invariance of energy and covariance of forces: F(Rx + t) = R F(x)\n", " assert np.allclose(e, er)\n", " assert np.allclose(fr, np.einsum(\"ij,bkj->bki\", R, f))\n", "\n", " # 3. forces match the finite difference of the energy along the mode\n", " disp = (MODE_VECTOR.reshape(-1, 3) / np.sqrt(MASS)[:, None]) # dx/dz\n", " h = 1e-5\n", " ep, _ = CALC_SPLINE.energy_forces(x + h * disp)\n", " em, _ = CALC_SPLINE.energy_forces(x - h * disp)\n", " assert np.allclose((ep - em) / (2 * h), -np.einsum(\"bij,ij->b\", f, disp))\n", "\n", "test_spline()" ] }, { "cell_type": "markdown", "id": "2518c079", "metadata": {}, "source": [ "## Calculation of spectra\n", "\n", "`run` computes the spectra for all the initial states by the following steps for each trajectory:\n", "\n", "1. Propagate the trajectory by `ShakeRattle`.\n", "2. Propagate the variation and compute the monodromy matrix in the physical space.\n", " The projected Hessian is evaluated with `eval_hess_active`.\n", "3. Exclude the steps where the symplectic condition is not satisfied.\n", "4. Compute the action, the prefactor and the overlap with each initial state, and the spectrum\n", " by the FFT.\n", "\n", "The spectra are averaged over the trajectories and saved for each initial state.\n", "Note that each trajectory is used for all the initial states, so that the cost of the dynamics\n", "and the monodromy matrix is shared." ] }, { "cell_type": "code", "execution_count": 7, "id": "2ac96c01", "metadata": {}, "outputs": [], "source": [ "def get_rot_momenta(K_rot, L_dir):\n", " L_dir /= np.linalg.norm(L_dir, axis=1, keepdims=True)\n", " scale = np.sqrt(2.0 * K_rot * CmInv / np.sum(L_dir**2 / INERTIA, axis=1))\n", " omega = scale[:, None] * L_dir / INERTIA # (S, 3)\n", " return MASS[None, :, None] * np.cross(omega[:, None, :], POSI_REF[None]) # (S, N, 3)\n", "\n", "def sample_momenta(n_sample, K_rot_range, K_vib_range, seed=10202):\n", " rng = np.random.default_rng(seed)\n", "\n", " # rotation: uniform direction, |L| from K_rot = L^T I^{-1} L / 2\n", " L_dir = rng.normal(size=(n_sample, 3))\n", " \n", " K_rot = rng.uniform(*K_rot_range, size=n_sample)\n", " p_rot = get_rot_momenta(K_rot, L_dir)\n", "\n", " # vibration: along the normal mode with random sign\n", " K_vib = rng.uniform(*K_vib_range, size=n_sample)\n", " P_vib = rng.choice([-1.0, 1.0], size=n_sample) * np.sqrt(2.0 * K_vib * CmInv)\n", " sv = np.sqrt(MASS)[:, None] * MODE_VECTOR.reshape(-1, 3) # (N, 3)\n", " p_vib = P_vib[:, None, None] * sv[None]\n", "\n", " return p_rot + p_vib, K_rot, K_vib\n", "\n", "def run(posi_sample_list, mome_sample_list, K_rot_list, K_vib_list,\n", " posi_ref_list, mome_ref_list, gamma_ref_list, fpath_list,\n", " dt, n_step, n_fft, symp_err_tol=1e-4, B_cond_thresh=1e3):\n", "\n", " # Judge function to check if the point is singular or not\n", " judge_func= lambda symp_err : np.isfinite(symp_err) & (symp_err < symp_err_tol)\n", "\n", " # Reference positions and momenta in the internal coordinates\n", " posi_ref_int, mome_ref_int = zip(*[INTERNAL_FUNC(p, q) for p, q in zip(posi_ref_list, mome_ref_list)])\n", "\n", " n_sample = len(posi_sample_list)\n", " n_ref = len(posi_ref_list)\n", " spectra = [0.0] * n_ref\n", " vari_propagator = make_vari_propagator(COORD_CONST, dt)\n", "\n", " t_start = time.perf_counter()\n", " for i in range(n_sample):\n", " # Get trajectory\n", " dyn = ShakeRattle(CALC_SPLINE, posi_sample_list[i], mome_sample_list[i], MASS, dt, COORD_CONST)\n", " traj = dyn.run(n_step)\n", " traj_posi, traj_mome = traj[\"posi\"], traj[\"mome\"]\n", "\n", " # get variation\n", " cond_B = np.linalg.cond(np.asarray(COORD_ALL.get_const_grad_batch(traj_posi)))\n", " valid_steps = np.arange(len(traj_posi))[cond_B < B_cond_thresh][::10]\n", " \n", " HA, AA, BA = eval_hess_active(CALC_SPLINE, COORD_ALL, ACTIVE_IDX, traj_posi, valid_steps, chunk_size=len(traj_posi))\n", " hess = interpolate_hessian(valid_steps, projected_hessian(HA, AA, BA), len(traj_posi))\n", " J_rev_init = JACOBI_REV_FUNC(traj_posi[0], traj_mome[0])\n", "\n", " vari = propagate_variation(vari_propagator, traj_posi, traj_mome, traj[\"lam\"], traj[\"mu\"], hess, vari_init=J_rev_init)\n", " posi_int, mome_int, mono_int, symplectic_error = to_internal(MONODROMY_FUNC, traj_posi, traj_mome, vari)\n", "\n", " # points with large symplectic error are treated as singularities\n", " valid = judge_func(symplectic_error)\n", "\n", " ener_grid = 2.0 * np.pi * HBar * np.arange(n_fft) / (dt * n_fft)\n", " lag = get_lagrangian(traj[\"total_energy\"], traj[\"potential_energy\"], ener_ref=ENER_REF)\n", " action = get_action(lag, dt)\n", "\n", " for j in range(n_ref):\n", " posi_center, mome_center = posi_ref_int[j], mome_ref_int[j]\n", " gamma = gamma_ref_list[j]\n", " prefactor = get_prefactor(mono_int, gamma, valid=valid)\n", " overlap = get_overlap(TOPOLOGIES, posi_center, mome_center, posi_int, mome_int, gamma)\n", " _, spec = get_ta_spectrum_fft(prefactor, overlap, action, dt, n_fft, valid=valid)\n", " spectra[j] += spec\n", "\n", " if i % 10 == 0:\n", " print(f\"{i+1:6d} / {n_sample}, K_rot = {K_rot_list[i]:.1f}, K_vib = {K_vib_list[i]:.1f}, \"\n", " f\"max symp error = {np.max(np.abs(symplectic_error)):.3e}, ({time.perf_counter() - t_start:.1f} sec)\", flush=True)\n", "\n", " for j in range(n_ref):\n", " spectra[j] /= n_sample\n", "\n", " for j in range(n_ref):\n", " np.savez(fpath_list[j], ener_grid=ener_grid, spectrum=spectra[j])" ] }, { "cell_type": "markdown", "id": "3f1b9034", "metadata": {}, "source": [ "## Execute calculation\n", "\n", "The total propagation time is 1200 fs." ] }, { "cell_type": "code", "execution_count": 8, "id": "f2e945ec", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 1 / 1000, K_rot = 153.9, K_vib = 2801.1, max symp error = 1.077e-06, (3.5 sec)\n", " 11 / 1000, K_rot = 266.9, K_vib = 1224.2, max symp error = 2.777e-09, (16.1 sec)\n", " 21 / 1000, K_rot = 22.6, K_vib = 1735.3, max symp error = 1.265e-08, (29.0 sec)\n", " 31 / 1000, K_rot = 188.3, K_vib = 760.7, max symp error = 1.930e-09, (41.7 sec)\n", " 41 / 1000, K_rot = 19.3, K_vib = 11.7, max symp error = 1.848e-10, (54.9 sec)\n", " 51 / 1000, K_rot = 697.2, K_vib = 309.6, max symp error = 3.119e-10, (67.8 sec)\n", " 61 / 1000, K_rot = 227.3, K_vib = 183.8, max symp error = 1.747e-10, (80.8 sec)\n", " 71 / 1000, K_rot = 391.9, K_vib = 1812.1, max symp error = 2.647e-08, (93.5 sec)\n", " 81 / 1000, K_rot = 89.4, K_vib = 784.3, max symp error = 1.270e-09, (105.9 sec)\n", " 91 / 1000, K_rot = 956.7, K_vib = 2187.9, max symp error = 1.229e-06, (118.7 sec)\n", " 101 / 1000, K_rot = 730.5, K_vib = 1520.3, max symp error = 1.362e-08, (131.5 sec)\n", " 111 / 1000, K_rot = 838.0, K_vib = 461.3, max symp error = 6.278e-10, (144.1 sec)\n", " 121 / 1000, K_rot = 599.4, K_vib = 1751.6, max symp error = 2.194e-08, (156.7 sec)\n", " 131 / 1000, K_rot = 674.9, K_vib = 641.4, max symp error = 8.945e-10, (169.4 sec)\n", " 141 / 1000, K_rot = 743.0, K_vib = 1242.1, max symp error = 5.213e-09, (182.3 sec)\n", " 151 / 1000, K_rot = 848.7, K_vib = 1511.9, max symp error = 2.455e-08, (195.0 sec)\n", " 161 / 1000, K_rot = 134.2, K_vib = 2143.2, max symp error = 4.494e-08, (208.0 sec)\n", " 171 / 1000, K_rot = 873.0, K_vib = 3028.3, max symp error = 7.703e-06, (220.6 sec)\n", " 181 / 1000, K_rot = 462.9, K_vib = 2206.9, max symp error = 2.890e-07, (232.9 sec)\n", " 191 / 1000, K_rot = 930.4, K_vib = 3019.2, max symp error = 7.278e-06, (245.5 sec)\n", " 201 / 1000, K_rot = 746.6, K_vib = 2736.7, max symp error = 4.220e-06, (258.3 sec)\n", " 211 / 1000, K_rot = 340.9, K_vib = 2797.7, max symp error = 1.738e-06, (271.1 sec)\n", " 221 / 1000, K_rot = 236.4, K_vib = 229.9, max symp error = 3.006e-10, (283.9 sec)\n", " 231 / 1000, K_rot = 97.1, K_vib = 2685.5, max symp error = 3.968e-07, (296.7 sec)\n", " 241 / 1000, K_rot = 766.7, K_vib = 2652.3, max symp error = 2.076e-06, (309.8 sec)\n", " 251 / 1000, K_rot = 881.7, K_vib = 2660.7, max symp error = 4.149e-06, (322.7 sec)\n", " 261 / 1000, K_rot = 783.6, K_vib = 1702.8, max symp error = 1.217e-08, (335.6 sec)\n", " 271 / 1000, K_rot = 425.1, K_vib = 618.9, max symp error = 8.167e-10, (348.5 sec)\n", " 281 / 1000, K_rot = 579.9, K_vib = 1826.9, max symp error = 5.449e-08, (361.3 sec)\n", " 291 / 1000, K_rot = 904.0, K_vib = 1586.8, max symp error = 2.194e-08, (373.8 sec)\n", " 301 / 1000, K_rot = 643.7, K_vib = 2002.1, max symp error = 8.421e-08, (386.4 sec)\n", " 311 / 1000, K_rot = 199.4, K_vib = 1756.4, max symp error = 1.235e-08, (398.9 sec)\n", " 321 / 1000, K_rot = 844.4, K_vib = 2544.2, max symp error = 2.186e-06, (411.6 sec)\n", " 331 / 1000, K_rot = 141.3, K_vib = 983.2, max symp error = 2.128e-09, (424.1 sec)\n", " 341 / 1000, K_rot = 329.7, K_vib = 155.7, max symp error = 1.414e-10, (436.6 sec)\n", " 351 / 1000, K_rot = 366.1, K_vib = 2927.1, max symp error = 5.508e-06, (449.2 sec)\n", " 361 / 1000, K_rot = 671.4, K_vib = 22.1, max symp error = 1.457e-10, (461.8 sec)\n", " 371 / 1000, K_rot = 993.3, K_vib = 2624.2, max symp error = 2.771e-06, (474.3 sec)\n", " 381 / 1000, K_rot = 960.1, K_vib = 1853.0, max symp error = 1.258e-07, (486.7 sec)\n", " 391 / 1000, K_rot = 202.7, K_vib = 963.7, max symp error = 1.750e-09, (499.2 sec)\n", " 401 / 1000, K_rot = 917.0, K_vib = 2431.6, max symp error = 2.519e-06, (512.2 sec)\n", " 411 / 1000, K_rot = 507.1, K_vib = 1933.2, max symp error = 5.582e-08, (525.3 sec)\n", " 421 / 1000, K_rot = 637.4, K_vib = 1985.6, max symp error = 9.803e-08, (538.0 sec)\n", " 431 / 1000, K_rot = 821.5, K_vib = 2658.3, max symp error = 2.125e-06, (550.6 sec)\n", " 441 / 1000, K_rot = 585.1, K_vib = 1357.8, max symp error = 1.938e-07, (562.6 sec)\n", " 451 / 1000, K_rot = 856.7, K_vib = 1512.7, max symp error = 1.301e-08, (575.3 sec)\n", " 461 / 1000, K_rot = 846.7, K_vib = 1718.8, max symp error = 1.365e-07, (587.9 sec)\n", " 471 / 1000, K_rot = 882.2, K_vib = 2697.1, max symp error = 2.580e-06, (600.7 sec)\n", " 481 / 1000, K_rot = 445.1, K_vib = 2087.6, max symp error = 6.003e-08, (613.2 sec)\n", " 491 / 1000, K_rot = 524.6, K_vib = 95.8, max symp error = 2.612e-10, (625.0 sec)\n", " 501 / 1000, K_rot = 950.1, K_vib = 1944.0, max symp error = 3.712e-07, (636.9 sec)\n", " 511 / 1000, K_rot = 780.5, K_vib = 2153.4, max symp error = 6.011e-07, (648.7 sec)\n", " 521 / 1000, K_rot = 788.7, K_vib = 1166.3, max symp error = 2.564e-09, (660.6 sec)\n", " 531 / 1000, K_rot = 438.7, K_vib = 2296.4, max symp error = 4.067e-07, (673.2 sec)\n", " 541 / 1000, K_rot = 750.2, K_vib = 2654.7, max symp error = 3.318e-06, (685.4 sec)\n", " 551 / 1000, K_rot = 759.6, K_vib = 2364.1, max symp error = 8.376e-07, (697.4 sec)\n", " 561 / 1000, K_rot = 586.3, K_vib = 633.9, max symp error = 1.413e-09, (709.3 sec)\n", " 571 / 1000, K_rot = 384.6, K_vib = 1066.1, max symp error = 1.244e-09, (721.6 sec)\n", " 581 / 1000, K_rot = 1000.0, K_vib = 2773.2, max symp error = 4.394e-06, (733.5 sec)\n", " 591 / 1000, K_rot = 546.2, K_vib = 1562.4, max symp error = 7.499e-09, (745.4 sec)\n", " 601 / 1000, K_rot = 451.1, K_vib = 473.9, max symp error = 6.164e-10, (757.2 sec)\n", " 611 / 1000, K_rot = 872.9, K_vib = 884.1, max symp error = 4.320e-09, (769.4 sec)\n", " 621 / 1000, K_rot = 472.7, K_vib = 1305.2, max symp error = 2.382e-09, (781.1 sec)\n", " 631 / 1000, K_rot = 919.2, K_vib = 535.4, max symp error = 4.438e-10, (792.9 sec)\n", " 641 / 1000, K_rot = 575.7, K_vib = 1695.8, max symp error = 2.010e-08, (804.7 sec)\n", " 651 / 1000, K_rot = 472.6, K_vib = 1143.6, max symp error = 1.990e-09, (816.6 sec)\n", " 661 / 1000, K_rot = 386.9, K_vib = 562.1, max symp error = 1.094e-09, (829.3 sec)\n", " 671 / 1000, K_rot = 113.8, K_vib = 897.8, max symp error = 1.103e-09, (841.4 sec)\n", " 681 / 1000, K_rot = 966.1, K_vib = 2802.2, max symp error = 3.039e-06, (854.2 sec)\n", " 691 / 1000, K_rot = 821.1, K_vib = 1955.2, max symp error = 3.133e-07, (866.3 sec)\n", " 701 / 1000, K_rot = 878.9, K_vib = 1831.7, max symp error = 9.151e-08, (878.3 sec)\n", " 711 / 1000, K_rot = 151.1, K_vib = 621.1, max symp error = 8.095e-10, (890.2 sec)\n", " 721 / 1000, K_rot = 649.7, K_vib = 1038.5, max symp error = 1.306e-09, (902.1 sec)\n", " 731 / 1000, K_rot = 644.3, K_vib = 620.9, max symp error = 6.622e-10, (914.1 sec)\n", " 741 / 1000, K_rot = 926.5, K_vib = 454.1, max symp error = 8.813e-10, (926.6 sec)\n", " 751 / 1000, K_rot = 754.2, K_vib = 701.7, max symp error = 2.816e-10, (938.7 sec)\n", " 761 / 1000, K_rot = 49.1, K_vib = 2753.2, max symp error = 3.938e-07, (950.7 sec)\n", " 771 / 1000, K_rot = 795.0, K_vib = 2872.0, max symp error = 6.948e-06, (962.7 sec)\n", " 781 / 1000, K_rot = 284.9, K_vib = 3012.9, max symp error = 8.338e-06, (974.9 sec)\n", " 791 / 1000, K_rot = 980.8, K_vib = 542.2, max symp error = 5.153e-10, (987.8 sec)\n", " 801 / 1000, K_rot = 928.5, K_vib = 304.1, max symp error = 5.042e-10, (999.7 sec)\n", " 811 / 1000, K_rot = 148.8, K_vib = 1576.8, max symp error = 6.607e-09, (1011.6 sec)\n", " 821 / 1000, K_rot = 247.3, K_vib = 2867.6, max symp error = 1.703e-06, (1023.8 sec)\n", " 831 / 1000, K_rot = 662.3, K_vib = 1778.9, max symp error = 4.240e-08, (1036.5 sec)\n", " 841 / 1000, K_rot = 685.5, K_vib = 422.7, max symp error = 3.557e-10, (1049.3 sec)\n", " 851 / 1000, K_rot = 336.1, K_vib = 1308.1, max symp error = 1.294e-09, (1061.4 sec)\n", " 861 / 1000, K_rot = 461.2, K_vib = 408.3, max symp error = 5.737e-10, (1073.5 sec)\n", " 871 / 1000, K_rot = 981.6, K_vib = 1194.0, max symp error = 3.128e-09, (1085.5 sec)\n", " 881 / 1000, K_rot = 935.2, K_vib = 672.0, max symp error = 7.755e-10, (1097.6 sec)\n", " 891 / 1000, K_rot = 20.1, K_vib = 1102.3, max symp error = 2.925e-09, (1109.7 sec)\n", " 901 / 1000, K_rot = 417.4, K_vib = 1794.0, max symp error = 2.476e-08, (1122.3 sec)\n", " 911 / 1000, K_rot = 700.6, K_vib = 1500.1, max symp error = 1.293e-08, (1134.7 sec)\n", " 921 / 1000, K_rot = 555.3, K_vib = 423.7, max symp error = 8.365e-10, (1146.4 sec)\n", " 931 / 1000, K_rot = 843.6, K_vib = 2910.0, max symp error = 2.015e-06, (1158.2 sec)\n", " 941 / 1000, K_rot = 407.0, K_vib = 2962.5, max symp error = 1.112e-04, (1170.0 sec)\n", " 951 / 1000, K_rot = 22.2, K_vib = 1343.5, max symp error = 3.624e-08, (1181.8 sec)\n", " 961 / 1000, K_rot = 533.0, K_vib = 426.4, max symp error = 5.777e-10, (1193.6 sec)\n", " 971 / 1000, K_rot = 347.8, K_vib = 62.2, max symp error = 2.182e-10, (1205.4 sec)\n", " 981 / 1000, K_rot = 396.2, K_vib = 2013.6, max symp error = 7.903e-08, (1217.2 sec)\n", " 991 / 1000, K_rot = 262.8, K_vib = 1398.7, max symp error = 4.277e-09, (1230.0 sec)\n" ] } ], "source": [ "if __name__ == \"__main__\":\n", " # set parameters\n", " n_sample = 1000\n", " dt = 0.3 * FemtoSec\n", " n_step = 4000\n", " n_fft = 2**19\n", "\n", " # set reference state\n", " K_rot_ref_list = [50.0, 200.0, 500.0]\n", " L_dir_ref = np.array([1.0, -1.0, -1.0])\n", " K_vib_ref = OMEGA * HBar / CmInv\n", "\n", " # no vibrational kinetic energy for the reference state to target the vibrational ground state (v=0)\n", " mome_ref_list = np.array([get_rot_momenta(k_rot, [L_dir_ref]) for k_rot in K_rot_ref_list])\n", " mome_vib_ref = np.sqrt(2.0 * K_vib_ref * CmInv) * np.sqrt(MASS)[:, None] * MODE_VECTOR.reshape(-1, 3)\n", " mome_ref_list += mome_vib_ref[None, :, :]\n", " posi_ref_list = np.asarray([POSI_REF] * len(K_rot_ref_list))\n", "\n", " # [gamma_rot, gamma_rot, gamma_rot, gamma_vib]\n", " gamma_ref = [1.0 / (2 * 0.2**2)] * 3 + [OMEGA / (2.0 * HBar)] \n", " gamma_ref_list = np.asarray([gamma_ref] * len(K_rot_ref_list))\n", " fpath_list = [f\"methane_rovib_{k_rot:.0f}_n_{n_sample}_spectra.npz\" for k_rot in K_rot_ref_list]\n", "\n", " K_rot_range = (10.0, 1000.0)\n", " K_vib_range = (0.0, OMEGA * HBar / CmInv)\n", " mome_sample_list, K_rot_list, K_vib_list = sample_momenta(n_sample, K_rot_range, K_vib_range)\n", " posi_sample_list = np.asarray([POSI_REF] * n_sample)\n", "\n", " run(posi_sample_list, mome_sample_list, K_rot_list, K_vib_list,\n", " posi_ref_list, mome_ref_list, gamma_ref_list, fpath_list,\n", " dt, n_step, n_fft)" ] }, { "cell_type": "code", "execution_count": 9, "id": "102c68ce", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Peaks (cm^-1) for K = 50: [1510.8 1544.1 1574.9 1611.8 1669.4 1732.9 1809.2 1896.6 4560.2 4593.3 4630.9 4687.5 4750.3]\n", "Peaks (cm^-1) for K = 200: [1573. 1610.3 1668. 1730.5 1807.5 1894.7 1986.5 2090.8 4591.6 4629.8 4686.6 4749.6 4824.7 4911.6 5004.5 5107.2]\n", "Peaks (cm^-1) for K = 500: [1666.5 1728.4 1805.8 1893.2 1985. 2089.4 2209.4 2336.6 2472.8 4749. 4823.4 4910.6 5002.8 5105.9 5222.5 5348.1 5485.5]\n" ] }, { "data": { "image/png": "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fvc/fPiwvPnmm7JgwQJJSkqSU045RYYMGSKJiYklds6EEEIIISSGndRJkyZJ//795ejRo/LJJ5/Ijh07/O6fk5Mjbdq0kYULF0r37t2lffv2cu+998r5558vubm5JXbehBBCCCGkeCmVG0Z1t2HDBqlfv75s3rxZGjZsKHPmzJFevXq57o9T3bZtm9SpU8ezDYK1W7du8tNPP8lJJ51UQmdOCCGEEEJiNtwPYRoKpUqV8hGoACIX7N27t0jPjRBCCCGExHFOamF5/PHHpWrVqtK5c2fXfTIzM9XNTBvYtWuXVK9eXQlfQgghhBAifqPZ+/btk3r16klCQslki0a1SH377beVSJ02bZpUqlTJdb/09HQZP358iZ4bIYQQQkissWHDBmnQoEHs56RqNm7cGFROqsmHH34ol156qTz99NMyfPhwv/vanVSkBjRq1Eh9o/2JW0IIIYQQIpKRkaG02p49e6Ry5col8i2JSif1448/VgL1ySefDChQQUpKirrZgUClSCWEEEIICY6STJOM+Gb+cEpvueUWz/NPP/1UBg8erATqtddeG9ZzI4QQQgghMeikzp49WyZPnqwa9IP77rtPatSooUQobuDXX39Vbaa01Txw4EBlM3/xxRfqprnpppvktNNOC9NXQgghhBBCYiYndf369fLLL7/k2966dWt1A7/99puqxO/Tp49kZWX5CFOTjh07SuPGjYP6XIhdCF3kpjLcTwghhBASedopIgqnShqKVEIIISQ8ZGdny5EjR/jtjzBKly7td8R8OLRTVBZOEUIIISS6gCe2detWVR1OIpMqVaqooUmR0kOeIpUQQgghxY4WqLVq1ZJy5cpFjBAioi4gDh48KP/++6/6dtStWzcivi0UqYQQQggp9hC/FqiY9kgij7Jly6p7CFX8nPyF/kuKiG9BRQghhJDoRuegwkElkUu5vJ9PpOQMU6QSQgghpERgiD+yKRVhKRgUqYQQQgghJOJgTiohhBBCiANot/Tss8/KkCFDpFGjRp7tixcvlm+++UbOPfdcadOmTZF/7xBunz17tqxcuVLq1asnZ5xxhpQvXz7ffitWrJCZM2dKUlKS2sepX3ww+0QqdFIJIYQQQhzYvXu3jB49WtasWePZBnHaq1cv2b59uxx77LFF/n1bsGCBEr6PP/64Eqn/+9//pHnz5mq4kckrr7wiHTp0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GzaUW265RQYOHCi5ubkldt6EEEIIIaR4KZUbRnW3du1aadSokWzZskUJzjlz5kivXr1c98epwnnFvprvv/9eCd2ff/5ZOnXqVEJnTgghhBBCYjbc37Rp05D2R0jfFKigcePG6n7Xrl1Fem6EEEIIISSOc1ILy1NPPSWVK1eWzp07u+6TmZmpbmbaAERt9erVmctKCCGEEBIARLP37dsn9erVk4SEkskWjWqR+sEHH8j//vc/eeONN5RQdSM9PV3Gjx9foudGCCGEEBJrbNiwQRo0aFAinxW1IvXzzz+Xyy67TJ544gm59NJL/e47evRoGTVqlOf53r17VS4svtGVKlUqgbMlhBBCCIleMjIyVMplxYoVS+wzo1KkfvHFF3LRRRcpF/Wmm24KuH9KSoq62YFApUglhBBCCAmOkmz5GfHN/F944QW54447PM/RfkoL1JEjR4b13AghhBBCSAy2oJo7d648++yzcujQIfn000+ld+/eUqtWLdWcHzcwfPhwWbhwoSxdulQl7OJ1WM19+vTxea/rrrtOHR+sZY0cVoT96aQSQgghhESedgpruB95oeeff756bOaVtm7d2kd8asGKkP0rr7zi+F66FRUhhBBCCIl+wuqkhgs6qYQQQkh4yM7OViPOSWRRunRpSUxMdH097pxUQgghhMQH8MS2bt0qe/bsCfepEBeqVKkiderUiZge8hSphBBCCCl2tEBFbUm5cuUiRggRURcQBw8elH///Vd9O+rWrRsR3xaKVEIIIYQUe4hfC1RMeySRR9myZdU9hCp+Tv5C/yVFxLegIoQQQkh0o3NQ4aCSyKVc3s8nUnKGKVIJIYQQUiIwxB/ZlIqwFAyKVEIIIYQQEnEwJ5UQQgghxAEMEXr11VflggsukPr163u2//nnnzJnzhw57bTTfHq7FxXPPPOM5OTk+Gzr0aOHHH/88T7b1q9fr84jKSlJnUvt2rXzvVcw+0QqdFIJIYQQQhzYuXOnGsG+atUqz7b58+fLKaecoiZhtmrVqli+bzfffLN8/fXXsnz5cs9t9+7dPvu88847SiC///77MnXqVGnRooV88803Ie8TydBJJYQQQggJgs8//1wGDhwot912m9x///3F+j274YYb5IwzznB8DZ0SMJFz7Nixctddd3mE7bBhw2TdunXKNQ1mn0gn8s+QEEIIISTMvPHGG3L1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if __name__ == \"__main__\":\n", " import matplotlib.pyplot as plt\n", " from scipy.signal import find_peaks\n", " \n", " fig, ax = plt.subplots(3, 1, figsize=(7, 7), sharex=True)\n", " colors = [\"red\", \"green\", \"blue\"]\n", "\n", " for i, fpath in enumerate(fpath_list):\n", " data = np.load(fpath)\n", " ener_grid = data[\"ener_grid\"] / CmInv\n", " spectrum = data[\"spectrum\"]\n", " spectrum /= np.max(spectrum[ener_grid <= 6000])\n", " peaks, _ = find_peaks(spectrum, height=0.1, prominence=0.1)\n", " peaks = peaks[ener_grid[peaks] <= 6000]\n", " print(f\"Peaks (cm^-1) for K = {K_rot_ref_list[i]:.0f}: {np.round(ener_grid[peaks], 1)}\")\n", " \n", " ax[i].plot(ener_grid, spectrum, label=f\"K = {K_rot_ref_list[i]:.0f}\", color=colors[i])\n", " ax[i].plot(ener_grid[peaks], spectrum[peaks], \"x\", color=\"black\")\n", " ax[i].set_ylim(0, 1.2)\n", " ax[i].legend()\n", " \n", " ax[-1].set_xlim(1000, 6000)\n", " ax[-1].set_xlabel(\"Energy (cm$^{-1}$)\")\n", " ax[0].set_ylabel(\"Intensity (arb. unit)\")\n", " plt.tight_layout()\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "12457523", "metadata": {}, "source": [ "The spectra consist of two bands: the vibrational ground state (around 1500-2500 $\\textrm{cm}^{-1}$) and the fundamental of the symmetric stretching (around 4500-5500 $\\textrm{cm}^{-1}$), on each of which the rotational levels ride. The energies are measured from the potential minimum. The peak positions are averaged over the initial states, and the band origin $E_0$ is determined by fitting $E_J = E_0 + B J(J+1)$ to each band.\n", "\n", "$v$ = 0 ($E_0$ = 1509.7 $\\text{cm}^{-1}$)\n", "\n", "| $J$ | Computed | $B J(J+1)$ | Deviation |\n", "|---|---|---|---|\n", "| 2 | 34.4 | 31.8 | +2.6 |\n", "| 3 | 64.3 | 63.7 | +0.6 |\n", "| 4 | 101.4 | 106.1 | −4.7 |\n", "| 5 | 158.3 | 159.2 | −0.9 |\n", "| 6 | 220.9 | 222.9 | −2.0 |\n", "| 7 | 297.8 | 297.2 | +0.6 |\n", "| 8 | 385.1 | 382.1 | +3.0 |\n", "| 9 | 476.1 | 477.6 | −1.5 |\n", "| 10 | 580.4 | 583.8 | −3.4 |\n", "| 11 | 699.7 | 700.5 | −0.8 |\n", "| 12 | 826.9 | 827.9 | −1.0 |\n", "| 13 | 963.1 | 965.9 | −2.8 |\n", "\n", "$v$ = 1 ($E_1$ = 4528.9 $\\text{cm}^{-1}$)\n", "\n", "| $J$ | Computed | $B J(J+1)$ | Deviation |\n", "|---|---|---|---|\n", "| 2 | 31.3 | 31.8 | −0.5 |\n", "| 3 | 63.6 | 63.7 | −0.1 |\n", "| 4 | 101.5 | 106.1 | −4.6 |\n", "| 5 | 158.2 | 159.2 | −1.0 |\n", "| 6 | 220.7 | 222.9 | −2.2 |\n", "| 7 | 295.2 | 297.2 | −2.0 |\n", "| 8 | 382.2 | 382.1 | +0.1 |\n", "| 9 | 474.8 | 477.6 | −2.8 |\n", "| 10 | 577.7 | 583.8 | −6.1 |\n", "| 11 | 693.6 | 700.5 | −6.9 |\n", "| 12 | 819.2 | 827.9 | −8.7 |\n", "| 13 | 956.6 | 965.9 | −9.3 |\n", "\n", "- **Rotational levels**: In the ground state, the computed levels agree with those of the rigid rotor ($B = 5.307$ $\\textrm{cm}^{-1}$) within a few $\\textrm{cm}^{-1}$ up to $J = 13$. The levels of $J = 0$ and $1$ (about 10 $\\textrm{cm}^{-1}$ apart) are not resolved with the present propagation time. In the excited state, the deviation increases with $J$, giving a smaller rotational constant.\n", "\n", "- **Zero-point energy and fundamental**: The band origins give the zero-point energy of 1510 $\\textrm{cm}^{-1}$ and the fundamental of 3019 $\\textrm{cm}^{-1}$, slightly lower than the harmonic values (1516 and 3032 $\\textrm{cm}^{-1}$), consistent with the weak anharmonicity of the symmetric stretching.\n", "\n", "- **Intensities**: As the rotational kinetic energy of the initial state increases, the intensity shifts to higher $J$." ] } ], "metadata": { "kernelspec": { "display_name": "pyscivr (3.13.11)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.11" } }, "nbformat": 4, "nbformat_minor": 5 }