Analysis Tools

PyOpenCAP provides user friendly tools for analysis of eigenvalue trajectories in the form of CAPHamiltonian and EigenvalueTrajectory objects.

Basic usage

The CAPHamiltonian contains functions aimed at diagonalization of the CAP Hamiltonian over a range of eta values. Assuming one has already obtained H0 and W in the state basis as numpy matrices:

from pyopencap.analysis.CAPTrajectory import CAPHamiltonian
eta_list = np.linspace(0,2000,101)
eta_list = eta_list * 1E-5
CAPH = CAPHamiltonian(H0=h0,W=mat)
CAPH.run_trajectory(eta_list,cap_lambda=0.0)
# track the 4th state
traj = CAPH.track_state(4,tracking="overlap")

Alternatively, one can read in H0 and W from OpenCAP/Q-Chem output files:

from pyopencap.analysis.CAPTrajectory import CAPHamiltonian
eta_list = np.linspace(0,2000,101)
eta_list = eta_list * 1E-5
CAPH = CAPHamiltonian(output_file="path/to/output.out")
CAPH.run_trajectory(eta_list,cap_lambda=0.0)
# track the 4th state
traj = CAPH.track_state(4,tracking="overlap")

In both snippets, traj is now a EigenvalueTrajectory object, which contains helpful functions for analysis. For example, one can find the optimal value of the CAP strength parameter for uncorrected/corrected trajectories:

uc_energy,uc_eta_opt = traj.find_eta_opt()
corr_energy,corr_eta_opt = traj.find_eta_opt(corrected=True)

For more information, please see the documentation for the CAPHamiltonian and EigenvalueTrajectory classes.