This lesson is still being designed and assembled (Pre-Alpha version)

Ab Initio Multiple Spawning: Electronic Structure and Nonadiabatic Dynamics

Overview

Teaching: min
Exercises: min
Questions
  • What electronic-structure methods describe excited states and conical intersections?

  • How does Ab Initio Multiple Spawning (AIMS) propagate nuclear wavepackets through them?

  • How do we run these calculations in practice with OpenMolcas and PySpawn?

Objectives
  • Understand the multiconfigurational methods (CASSCF, CASPT2, RASSI) used for excited states.

  • Run the full set of OpenMolcas excited-state examples hands on.

  • Understand the AIMS/spawning algorithm and its spawning criterion.

  • Run and analyze a full PySpawn AIMS simulation, from initial conditions to populations.

Ab Initio Multiple Spawning: Electronic Structure and Nonadiabatic Dynamics

Overview

Teaching: 120 min (two 60 min lectures) Exercises: 300 min (two hands-on sessions)

Questions

  • What electronic-structure methods describe excited states and conical intersections?
  • How does Ab Initio Multiple Spawning propagate nuclear wavepackets through them?
  • How do we run these calculations in practice?

Objectives

  • Understand the multiconfigurational methods behind excited-state calculations.
  • Run the OpenMolcas excited-state examples hands on.
  • Understand the AIMS spawning algorithm.
  • Run and analyze a full PySpawn AIMS simulation.

This session pairs the electronic structure of excited states with the nonadiabatic dynamics that unfolds on them. We first cover the multiconfigurational methods used to compute excited-state energies, couplings, and spectra, and practice them in OpenMolcas. We then turn to Ab Initio Multiple Spawning (AIMS), the method that propagates nuclear wavepackets through conical intersections, and run it end to end in PySpawn.

Two repositories are used throughout. Clone both into your working directory before starting:

git clone https://github.com/compchem-cybertraining/Tutorials_OpenMolcas.git
git clone https://github.com/compchem-cybertraining/Tutorials_PySpawn.git

Everything referenced below (inputs, reference outputs, analysis scripts, and per-example READMEs) lives in those two repositories.


Table of Contents

  1. Lecture: Electronic-Structure Methods for Excited States (60 min)
  2. Hands On: OpenMolcas Excited-State Tutorials
  3. Lecture: Spawning and Ab Initio Multiple Spawning with PySpawn (60 min)
  4. Hands On: PySpawn AIMS Dynamics

1. Lecture: Electronic-Structure Methods for Excited States (60 min)

Back to TOC

A 60 minute lecture on the multiconfigurational electronic-structure methods used throughout the OpenMolcas tutorial. The goal is to understand what each method computes, when it is needed, and how to read its output, before running them in the hands-on session.

Topics covered:

These methods map directly onto the hands-on examples in the next section.

1.1. Slides

(to be added)

1.2. Videorecording of the session

(to be added)

1.3. Reference reading


2. Hands On: OpenMolcas Excited-State Tutorials

Back to TOC

Work through the numbered examples in the Tutorials_OpenMolcas repository. Each example is a self-contained folder with an input file, a *.job, a reference output, and a README explaining what the calculation does and how to read the result. Run each with:

cd <example_folder>
sbatch *.job

The examples build from ground-state structure to excited-state spectroscopy and couplings:

# Example What you compute
1 Geometry + Hessian (DFT) Optimized geometry and Hessian, the input to Wigner sampling in PySpawn.
2 S0 optimization (CASSCF) Ground-state minimum at the multiconfigurational level.
3 S1 optimization (XMS-CASPT2) Excited-state minimum and transition moments.
4 Oscillator strengths + NTOs Which states are bright, and the hole/particle orbitals of each transition.
5 Spin-orbit coupling Singlet-triplet coupling in thioformaldehyde (RASSI-SO), reproducing a benchmark.
6 Photoelectron spectrum Valence Dyson-orbital spectrum of uracil, ground and excited state.
7 Conical intersection (MECI) The S1/S0 minimum-energy crossing, optimized at CASPT2.
8 Nonadiabatic coupling The derivative-coupling vector, the AIMS spawning trigger.
9 Core-hole XPS O 1s core-level spectrum of uracil (RAS + HEXS + Dyson).

Examples 1, 7, and 8 connect directly to the dynamics: the Hessian seeds the initial conditions, the MECI is the funnel the trajectories spawn around, and the derivative coupling is the quantity the spawning criterion monitors.

2.1. Demonstrations

Follow each folder’s README in Tutorials_OpenMolcas. Reference outputs are provided so you can follow the analysis even if a long job has not finished.

2.2. Homeworks


3. Lecture: Spawning and Ab Initio Multiple Spawning with PySpawn (60 min)

Back to TOC

A 60 minute lecture on the theory of Ab Initio Multiple Spawning and its implementation in PySpawn. The aim is to understand the algorithm well enough to run, restart, and analyze a simulation, and to interpret what the trajectories and populations mean.

Topics covered:

3.1. Slides

(to be added)

3.2. Videorecording of the session

(to be added)

3.3. Reference reading


4. Hands On: PySpawn AIMS Dynamics

Back to TOC

Work through the Tutorials_PySpawn repository, which runs a complete AIMS simulation of the photodynamics of ethylene, launched from the S1 state, using OpenMolcas for on-the-fly electronic structure.

Install PySpawn (Python 2.7 environment plus the code):

bash setup_pyspawn.sh
conda activate $HOME/pyspawn

The workflow, each step documented in the repository README:

  1. Prepare the Hessian. Convert a Hessian from OpenMolcas, ORCA, or Gaussian into PySpawn’s hessian.hdf5 format (this uses the geometry and Hessian from OpenMolcas Example 1).
  2. Generate initial conditions. Generate_ICs.sh clones the template folder 1/, assigns each IC a unique random seed for Wigner sampling, and submits the jobs.
  3. Run and restart. Each IC is an independent AIMS trajectory; restart.py resumes a run from its checkpoint after any interruption.
  4. Analyze. analysis.py turns sim.hdf5 into electronic populations, energies, nuclear basis populations, and geometric observables, and can be run while a simulation is still in progress.
  5. Ensemble result. The provided post-processing scripts collect and plot the ensemble S1 population decay; reference AIMS data is included in case your trajectories have not finished.

Start with the model potential. Before the full ethylene run, the model_potential example provides an analytic two-state conical intersection with zero electronic-structure cost. It is the fastest way to see spawning and population transfer, and every number can be checked against the closed-form surfaces. See its README for the derivation.

4.1. Demonstrations

Follow the repository README and each folder’s instructions in Tutorials_PySpawn.

4.2. Homeworks


Key Points

  • Conical intersections are the funnels of nonadiabatic dynamics; describing them needs multireference methods (CASSCF, CASPT2, RASSI).
  • AIMS represents the nuclear wavepacket with traveling Gaussians that spawn new basis functions near strong nonadiabatic coupling.
  • The spawning criterion is set by the time-derivative coupling, the same quantity computed as the derivative coupling in OpenMolcas.
  • OpenMolcas supplies the on-the-fly electronic structure; PySpawn drives the spawning dynamics.
  • Both repositories, Tutorials_OpenMolcas and Tutorials_PySpawn, contain all inputs, outputs, and analysis scripts.

Key Points

  • Conical intersections are the funnels of nonadiabatic dynamics; describing them needs multireference methods.

  • AIMS represents the nuclear wavepacket with traveling Gaussians that spawn near strong coupling.

  • OpenMolcas supplies the on-the-fly electronic structure; PySpawn drives the spawning dynamics.