Example 2: Computation of Gradients and Non-adiabatic Couplings

In this tutorial it is shown, how to use the SA-OO-VQE solver in a simple step-by-step manner on a molecule of formaldimine (methylene imine). It is shown, how to compute energies, gradients and non-adiabatic couplings in several different settings w.r.t. a different number of optimized orbitals.

First of all, we’ll specify geometry of the system.

[1]:
symbols = ['N', 'C', 'H', 'H', 'H']
coords = [
    [0.000000000000, 0.000000000000, 0.000000000000],
    [0.000000000000, 0.000000000000, 1.498047000000],
    [0.000000000000, -0.938765985000, 2.004775984000],
    [0.000000000000, 0.938765985000, 2.004775984000],
    [-0.744681452, -0.131307432, -0.634501434]
]

Now we’ll specify its properties, active space and the basis for Psi4 chemistry backend.

[2]:
n_orbs_active = 2
n_elec_active = 2
charge = 0
multiplicity = 1
basis = 'sto-3g'

The next step is construction of ProblemSet instance - object containing all the information and necessary method for our electronic structure problem.

[3]:
import saoovqe

problem = saoovqe.problem.ProblemSet(
    symbols=symbols,
    coords=coords,
    charge=charge,
    multiplicity=multiplicity,
    n_electrons_active=n_elec_active,
    n_orbitals_active=n_orbs_active,
    basis_name=basis
)
2024-09-18 01:18:42,039 - SAOOVQE.logger - INFO - SecondQuantizedProblem was created.

Now we need to create a set of circuits representing orthogonal states to construct the whole circuits representing state vectors later.

[4]:
initial_circuits = saoovqe.OrthogonalCircuitSet.from_problem_set(n_states=2, problem=problem)
2024-09-18 01:18:42,047 - SAOOVQE.logger - INFO - Circuits representing an orthogonal basis were created.

The next necessary part is to define an ansatz - it’ll be also used to construct the state vector circuits later.

[5]:
ansatz = saoovqe.Ansatz.from_problem_set(ansatz=saoovqe.AnsatzType.GUCCSD,
                                         problem=problem,
                                         repetitions=1,
                                         qubit_mapper=problem.fermionic_mapper)
2024-09-18 01:18:42,205 - SAOOVQE.logger - INFO - Ansatz was created.

And finally, now we can create an instance of our SA-OO-VQE solver. One of the main points is, orbital-optimization can, but doesn’t have to be used, or it can be used only on some molecular orbitals. We’ll show all three cases here. For no orbital-optimization it’s enough to pass None to orbital_optimization_settings (it’s also a default value).

[6]:
from qiskit.primitives import Estimator, Sampler

estimator = Estimator()
sampler = Sampler()

solver_no_oo = saoovqe.SAOOVQE(estimator=estimator,
                               initial_circuits=initial_circuits,
                               ansatz=ansatz,
                               problem=problem,
                               orbital_optimization_settings=None)
2024-09-18 01:18:42,211 - SAOOVQE.logger - INFO - SAOOVQE was created.

To specify number of optimized orbitals we can pass a dictionary to the parameter.

[7]:
solver_oo_8 = saoovqe.SAOOVQE(estimator=estimator,
                              initial_circuits=initial_circuits,
                              ansatz=ansatz,
                              problem=problem,
                              orbital_optimization_settings={'n_mo_optim': 8})
2024-09-18 01:18:42,217 - SAOOVQE.logger - INFO - SAOOVQE was created.

And for all the orbitals to be optimized we can simply use its default behavior by passing an empty dictionary.

[8]:
solver_oo_full = saoovqe.SAOOVQE(estimator=estimator,
                                 initial_circuits=initial_circuits,
                                 ansatz=ansatz,
                                 problem=problem,
                                 orbital_optimization_settings={})
2024-09-18 01:18:42,221 - SAOOVQE.logger - INFO - SAOOVQE was created.

Let’s compare the energies now! To make the numerical optimizations, we’ll use SLSQP optimizer provided by SciPy. It may take a few minutes time now…

[9]:
from qiskit_algorithms.optimizers import SciPyOptimizer
import numpy as np

optimizer = SciPyOptimizer('SLSQP', options={'maxiter': 500, 'ftol': 1e-8})
energies_no_oo = solver_no_oo.get_energy(optimizer)
energies_oo_8 = solver_oo_8.get_energy(optimizer)
energies_oo_full = solver_oo_full.get_energy(optimizer)

print('\n============== State-Averaged Energies ==============')
print(np.mean(energies_no_oo))
print(np.mean(energies_oo_8))
print(np.mean(energies_oo_full))
2024-09-18 01:18:42,226 - SAOOVQE.logger - INFO - Computing energies...
2024-09-18 01:18:43,440 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.2726154   0.27261305 -0.01552257]
2024-09-18 01:18:43,876 - SAOOVQE.logger - INFO - Optimal phi angle for state-resolution was obtained (phi* = 3.806878207655641).
2024-09-18 01:18:44,359 - SAOOVQE.logger - INFO - Computing energies...
2024-09-18 01:18:45,631 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.2726154   0.27261305 -0.01552257]
2024-09-18 01:18:45,632 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:18:46,096 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:18:46,341 - SAOOVQE.logger - INFO - Gradient norm: 0.0356412262738926
2024-09-18 01:18:46,342 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64374463947547
2024-09-18 01:18:46,343 - SAOOVQE.logger - INFO - Best energy achieved: -92.64374463947547
2024-09-18 01:18:46,343 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:18:46,578 - SAOOVQE.logger - INFO - Gradient norm: 0.0004824248766604606
2024-09-18 01:18:46,579 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64374488494992
2024-09-18 01:18:46,579 - SAOOVQE.logger - INFO - Best energy achieved: -92.64374488494992
2024-09-18 01:18:46,580 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:18:46,815 - SAOOVQE.logger - INFO - Gradient norm: 3.616829119338748e-07
2024-09-18 01:18:46,815 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64374488495008
2024-09-18 01:18:46,816 - SAOOVQE.logger - INFO - Best energy achieved: -92.64374488495008
2024-09-18 01:18:46,816 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:18:48,177 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.25186668  0.25186714 -0.01441356]
2024-09-18 01:18:48,178 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:18:48,597 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:18:48,859 - SAOOVQE.logger - INFO - Gradient norm: 0.008459384885276146
2024-09-18 01:18:48,859 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64401817168883
2024-09-18 01:18:48,860 - SAOOVQE.logger - INFO - Best energy achieved: -92.64401817168883
2024-09-18 01:18:48,860 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:18:49,103 - SAOOVQE.logger - INFO - Gradient norm: 3.9606221369357896e-05
2024-09-18 01:18:49,103 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6440181732249
2024-09-18 01:18:49,104 - SAOOVQE.logger - INFO - Best energy achieved: -92.6440181732249
2024-09-18 01:18:49,104 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:18:49,353 - SAOOVQE.logger - INFO - Gradient norm: 3.787330087829817e-09
2024-09-18 01:18:49,353 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64401817322491
2024-09-18 01:18:49,354 - SAOOVQE.logger - INFO - Best energy achieved: -92.64401817322491
2024-09-18 01:18:49,355 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:18:50,773 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.23985142  0.23985754 -0.01432295]
2024-09-18 01:18:50,774 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:18:51,155 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:18:51,401 - SAOOVQE.logger - INFO - Gradient norm: 0.004764918873386008
2024-09-18 01:18:51,402 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64410093425964
2024-09-18 01:18:51,402 - SAOOVQE.logger - INFO - Best energy achieved: -92.64410093425964
2024-09-18 01:18:51,403 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:18:51,643 - SAOOVQE.logger - INFO - Gradient norm: 1.2313790739092093e-05
2024-09-18 01:18:51,643 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64410093442127
2024-09-18 01:18:51,644 - SAOOVQE.logger - INFO - Best energy achieved: -92.64410093442127
2024-09-18 01:18:51,644 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:18:51,882 - SAOOVQE.logger - INFO - Gradient norm: 3.919192512190662e-10
2024-09-18 01:18:51,882 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6441009344213
2024-09-18 01:18:51,882 - SAOOVQE.logger - INFO - Best energy achieved: -92.6441009344213
2024-09-18 01:18:51,883 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:18:53,095 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.23290728  0.23290007 -0.01427401]
2024-09-18 01:18:53,096 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:18:53,504 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:18:53,749 - SAOOVQE.logger - INFO - Gradient norm: 0.0027905353470474127
2024-09-18 01:18:53,749 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64412888332546
2024-09-18 01:18:53,750 - SAOOVQE.logger - INFO - Best energy achieved: -92.64412888332546
2024-09-18 01:18:53,751 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:18:54,008 - SAOOVQE.logger - INFO - Gradient norm: 4.1872893409807926e-06
2024-09-18 01:18:54,008 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64412888334513
2024-09-18 01:18:54,009 - SAOOVQE.logger - INFO - Best energy achieved: -92.64412888334513
2024-09-18 01:18:54,009 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:18:54,253 - SAOOVQE.logger - INFO - Gradient norm: 4.695175223803019e-11
2024-09-18 01:18:54,254 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64412888334532
2024-09-18 01:18:54,254 - SAOOVQE.logger - INFO - Best energy achieved: -92.64412888334532
2024-09-18 01:18:54,255 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:18:55,506 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22876145  0.22876055 -0.0142465 ]
2024-09-18 01:18:55,507 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:18:55,892 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:18:56,140 - SAOOVQE.logger - INFO - Gradient norm: 0.0016742269055733871
2024-09-18 01:18:56,140 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6441388734234
2024-09-18 01:18:56,141 - SAOOVQE.logger - INFO - Best energy achieved: -92.6441388734234
2024-09-18 01:18:56,141 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:18:56,383 - SAOOVQE.logger - INFO - Gradient norm: 1.5010467572453226e-06
2024-09-18 01:18:56,384 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64413887342594
2024-09-18 01:18:56,384 - SAOOVQE.logger - INFO - Best energy achieved: -92.64413887342594
2024-09-18 01:18:56,385 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:18:56,627 - SAOOVQE.logger - INFO - Gradient norm: 6.150293621920699e-12
2024-09-18 01:18:56,628 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64413887342589
2024-09-18 01:18:56,628 - SAOOVQE.logger - INFO - Best energy achieved: -92.64413887342594
2024-09-18 01:18:56,629 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:18:57,864 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.2262469   0.22624386 -0.0142298 ]
2024-09-18 01:18:57,865 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:18:58,285 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:18:58,524 - SAOOVQE.logger - INFO - Gradient norm: 0.0010208657595853624
2024-09-18 01:18:58,524 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414257241562
2024-09-18 01:18:58,525 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414257241562
2024-09-18 01:18:58,525 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:18:58,772 - SAOOVQE.logger - INFO - Gradient norm: 5.568609212117491e-07
2024-09-18 01:18:58,772 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414257241589
2024-09-18 01:18:58,773 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414257241589
2024-09-18 01:18:58,773 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:18:59,968 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22471219  0.22470008 -0.0142189 ]
2024-09-18 01:18:59,969 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:00,400 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:00,671 - SAOOVQE.logger - INFO - Gradient norm: 0.0006264852206248998
2024-09-18 01:19:00,672 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414396740143
2024-09-18 01:19:00,672 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414396740143
2024-09-18 01:19:00,672 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:00,914 - SAOOVQE.logger - INFO - Gradient norm: 2.0945745914274214e-07
2024-09-18 01:19:00,914 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6441439674016
2024-09-18 01:19:00,915 - SAOOVQE.logger - INFO - Best energy achieved: -92.6441439674016
2024-09-18 01:19:00,915 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:01,881 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22374079  0.22373842 -0.01421607]
2024-09-18 01:19:01,882 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:02,253 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:02,500 - SAOOVQE.logger - INFO - Gradient norm: 0.0003922629325873093
2024-09-18 01:19:02,501 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414450723334
2024-09-18 01:19:02,502 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414450723334
2024-09-18 01:19:02,502 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:02,743 - SAOOVQE.logger - INFO - Gradient norm: 8.205057471811758e-08
2024-09-18 01:19:02,743 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414450723322
2024-09-18 01:19:02,744 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414450723334
2024-09-18 01:19:02,744 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:03,991 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22313553  0.22314368 -0.0142133 ]
2024-09-18 01:19:03,991 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:04,424 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:04,696 - SAOOVQE.logger - INFO - Gradient norm: 0.00024417127084856304
2024-09-18 01:19:04,697 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414471479326
2024-09-18 01:19:04,697 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414471479326
2024-09-18 01:19:04,698 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:04,963 - SAOOVQE.logger - INFO - Gradient norm: 3.1794546157843e-08
2024-09-18 01:19:04,963 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414471479338
2024-09-18 01:19:04,964 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414471479338
2024-09-18 01:19:04,964 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:06,268 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22277659  0.22277885 -0.01420963]
2024-09-18 01:19:06,269 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:06,654 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:06,910 - SAOOVQE.logger - INFO - Gradient norm: 0.00014820901816313967
2024-09-18 01:19:06,911 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6441447930075
2024-09-18 01:19:06,912 - SAOOVQE.logger - INFO - Best energy achieved: -92.6441447930075
2024-09-18 01:19:06,912 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:07,167 - SAOOVQE.logger - INFO - Gradient norm: 1.1706044070020314e-08
2024-09-18 01:19:07,167 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414479300737
2024-09-18 01:19:07,167 - SAOOVQE.logger - INFO - Best energy achieved: -92.6441447930075
2024-09-18 01:19:07,168 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:08,302 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22254991  0.22253902 -0.01420896]
2024-09-18 01:19:08,303 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:08,696 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:08,949 - SAOOVQE.logger - INFO - Gradient norm: 9.483949402451554e-05
2024-09-18 01:19:08,950 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414482416797
2024-09-18 01:19:08,950 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414482416797
2024-09-18 01:19:08,951 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:09,197 - SAOOVQE.logger - INFO - Gradient norm: 4.792993029008664e-09
2024-09-18 01:19:09,197 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414482416785
2024-09-18 01:19:09,198 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414482416797
2024-09-18 01:19:09,198 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:10,414 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22239785  0.22240009 -0.01420908]
2024-09-18 01:19:10,415 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:10,764 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:11,008 - SAOOVQE.logger - INFO - Gradient norm: 5.893924463570058e-05
2024-09-18 01:19:11,009 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414483612194
2024-09-18 01:19:11,009 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414483612194
2024-09-18 01:19:11,010 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:11,248 - SAOOVQE.logger - INFO - Gradient norm: 1.8507502927732172e-09
2024-09-18 01:19:11,249 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414483612204
2024-09-18 01:19:11,249 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414483612204
2024-09-18 01:19:11,250 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:12,558 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.22231134  0.22231539 -0.01420653]
2024-09-18 01:19:12,559 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:12,989 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:13,251 - SAOOVQE.logger - INFO - Gradient norm: 3.579778075372374e-05
2024-09-18 01:19:13,252 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414484063515
2024-09-18 01:19:13,252 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414484063515
2024-09-18 01:19:13,252 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:13,497 - SAOOVQE.logger - INFO - Gradient norm: 6.828460683849087e-10
2024-09-18 01:19:13,498 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.64414484063516
2024-09-18 01:19:13,498 - SAOOVQE.logger - INFO - Best energy achieved: -92.64414484063516
2024-09-18 01:19:13,498 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:13,718 - SAOOVQE.logger - INFO - Optimal phi angle for state-resolution was obtained (phi* = 3.6830626598457856).
2024-09-18 01:19:14,156 - SAOOVQE.logger - INFO - Computing energies...
2024-09-18 01:19:15,383 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.2726154   0.27261305 -0.01552257]
2024-09-18 01:19:15,384 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:15,784 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:17,844 - SAOOVQE.logger - INFO - Gradient norm: 0.29694480323093647
2024-09-18 01:19:17,845 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65245294867475
2024-09-18 01:19:17,845 - SAOOVQE.logger - INFO - Best energy achieved: -92.65245294867475
2024-09-18 01:19:17,846 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:19,972 - SAOOVQE.logger - INFO - Gradient norm: 0.13895304128561875
2024-09-18 01:19:19,973 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65504349486355
2024-09-18 01:19:19,974 - SAOOVQE.logger - INFO - Best energy achieved: -92.65504349486355
2024-09-18 01:19:19,974 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:19:22,100 - SAOOVQE.logger - INFO - Gradient norm: 0.0028120300630649873
2024-09-18 01:19:22,101 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65503747239902
2024-09-18 01:19:22,101 - SAOOVQE.logger - INFO - Best energy achieved: -92.65504349486355
2024-09-18 01:19:22,101 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 3)
2024-09-18 01:19:24,085 - SAOOVQE.logger - INFO - Gradient norm: 0.000255135932416337
2024-09-18 01:19:24,086 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65503773853982
2024-09-18 01:19:24,086 - SAOOVQE.logger - INFO - Best energy achieved: -92.65504349486355
2024-09-18 01:19:24,086 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 4)
2024-09-18 01:19:25,966 - SAOOVQE.logger - INFO - Gradient norm: 1.5003419432627417e-05
2024-09-18 01:19:25,967 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6550377679412
2024-09-18 01:19:25,967 - SAOOVQE.logger - INFO - Best energy achieved: -92.65504349486355
2024-09-18 01:19:25,967 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 5)
2024-09-18 01:19:28,085 - SAOOVQE.logger - INFO - Gradient norm: 9.093938000591639e-07
2024-09-18 01:19:28,086 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65503776609789
2024-09-18 01:19:28,086 - SAOOVQE.logger - INFO - Best energy achieved: -92.65504349486355
2024-09-18 01:19:28,087 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:29,269 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.19395977  0.19395452 -0.0135911 ]
2024-09-18 01:19:29,270 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:29,663 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:31,537 - SAOOVQE.logger - INFO - Gradient norm: 0.031631903995003784
2024-09-18 01:19:31,538 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65834712065156
2024-09-18 01:19:31,538 - SAOOVQE.logger - INFO - Best energy achieved: -92.65834712065156
2024-09-18 01:19:31,538 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:33,408 - SAOOVQE.logger - INFO - Gradient norm: 0.012732740298288537
2024-09-18 01:19:33,409 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65854384877949
2024-09-18 01:19:33,409 - SAOOVQE.logger - INFO - Best energy achieved: -92.65854384877949
2024-09-18 01:19:33,409 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:19:35,264 - SAOOVQE.logger - INFO - Gradient norm: 0.0006045898748735541
2024-09-18 01:19:35,264 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65854320737813
2024-09-18 01:19:35,265 - SAOOVQE.logger - INFO - Best energy achieved: -92.65854384877949
2024-09-18 01:19:35,265 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 3)
2024-09-18 01:19:37,126 - SAOOVQE.logger - INFO - Gradient norm: 2.1411357913178697e-05
2024-09-18 01:19:37,126 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65854320733486
2024-09-18 01:19:37,127 - SAOOVQE.logger - INFO - Best energy achieved: -92.65854384877949
2024-09-18 01:19:37,127 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 4)
2024-09-18 01:19:39,023 - SAOOVQE.logger - INFO - Gradient norm: 9.78956402323037e-07
2024-09-18 01:19:39,023 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65854320892423
2024-09-18 01:19:39,024 - SAOOVQE.logger - INFO - Best energy achieved: -92.65854384877949
2024-09-18 01:19:39,024 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:40,141 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.15289748  0.15289628 -0.01269188]
2024-09-18 01:19:40,141 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:40,548 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:42,504 - SAOOVQE.logger - INFO - Gradient norm: 0.016330109186665536
2024-09-18 01:19:42,505 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65947844716646
2024-09-18 01:19:42,506 - SAOOVQE.logger - INFO - Best energy achieved: -92.65947844716646
2024-09-18 01:19:42,506 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:44,736 - SAOOVQE.logger - INFO - Gradient norm: 0.0005722728331531362
2024-09-18 01:19:44,737 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65947843950576
2024-09-18 01:19:44,737 - SAOOVQE.logger - INFO - Best energy achieved: -92.65947844716646
2024-09-18 01:19:44,738 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:19:46,671 - SAOOVQE.logger - INFO - Gradient norm: 6.967092112574032e-06
2024-09-18 01:19:46,672 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65947843951392
2024-09-18 01:19:46,673 - SAOOVQE.logger - INFO - Best energy achieved: -92.65947844716646
2024-09-18 01:19:46,673 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 3)
2024-09-18 01:19:48,597 - SAOOVQE.logger - INFO - Gradient norm: 2.255874099730818e-07
2024-09-18 01:19:48,598 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65947843957986
2024-09-18 01:19:48,598 - SAOOVQE.logger - INFO - Best energy achieved: -92.65947844716646
2024-09-18 01:19:48,599 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:49,870 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.13162275  0.1316409  -0.01241618]
2024-09-18 01:19:49,870 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:50,228 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:19:52,379 - SAOOVQE.logger - INFO - Gradient norm: 0.00837562804777169
2024-09-18 01:19:52,380 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65972388704614
2024-09-18 01:19:52,380 - SAOOVQE.logger - INFO - Best energy achieved: -92.65972388704614
2024-09-18 01:19:52,381 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:19:54,504 - SAOOVQE.logger - INFO - Gradient norm: 0.00014904099584180547
2024-09-18 01:19:54,504 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65972388648308
2024-09-18 01:19:54,505 - SAOOVQE.logger - INFO - Best energy achieved: -92.65972388704614
2024-09-18 01:19:54,505 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:19:56,703 - SAOOVQE.logger - INFO - Gradient norm: 9.501015197066951e-07
2024-09-18 01:19:56,704 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6597238864765
2024-09-18 01:19:56,704 - SAOOVQE.logger - INFO - Best energy achieved: -92.65972388704614
2024-09-18 01:19:56,705 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:19:57,808 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.12073164  0.12073453 -0.0123196 ]
2024-09-18 01:19:57,809 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:19:58,213 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:00,212 - SAOOVQE.logger - INFO - Gradient norm: 0.004300002506100118
2024-09-18 01:20:00,212 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65978792370687
2024-09-18 01:20:00,213 - SAOOVQE.logger - INFO - Best energy achieved: -92.65978792370687
2024-09-18 01:20:00,213 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:02,298 - SAOOVQE.logger - INFO - Gradient norm: 3.897836719169733e-05
2024-09-18 01:20:02,299 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65978792366813
2024-09-18 01:20:02,299 - SAOOVQE.logger - INFO - Best energy achieved: -92.65978792370687
2024-09-18 01:20:02,300 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:20:04,128 - SAOOVQE.logger - INFO - Gradient norm: 1.2792589549982892e-07
2024-09-18 01:20:04,129 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65978792366792
2024-09-18 01:20:04,130 - SAOOVQE.logger - INFO - Best energy achieved: -92.65978792370687
2024-09-18 01:20:04,130 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:05,300 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.11515478  0.1151537  -0.01227707]
2024-09-18 01:20:05,300 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:05,720 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:07,574 - SAOOVQE.logger - INFO - Gradient norm: 0.002205238445364896
2024-09-18 01:20:07,574 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65980467164489
2024-09-18 01:20:07,575 - SAOOVQE.logger - INFO - Best energy achieved: -92.65980467164489
2024-09-18 01:20:07,576 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:09,447 - SAOOVQE.logger - INFO - Gradient norm: 1.0193309164676546e-05
2024-09-18 01:20:09,448 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65980467164225
2024-09-18 01:20:09,448 - SAOOVQE.logger - INFO - Best energy achieved: -92.65980467164489
2024-09-18 01:20:09,448 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:20:11,281 - SAOOVQE.logger - INFO - Gradient norm: 1.718567509066968e-08
2024-09-18 01:20:11,282 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65980467164218
2024-09-18 01:20:11,282 - SAOOVQE.logger - INFO - Best energy achieved: -92.65980467164489
2024-09-18 01:20:11,283 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:12,371 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.11229454  0.11229832 -0.01225804]
2024-09-18 01:20:12,372 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:12,772 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:14,645 - SAOOVQE.logger - INFO - Gradient norm: 0.0011308152324300505
2024-09-18 01:20:14,646 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65980905885262
2024-09-18 01:20:14,646 - SAOOVQE.logger - INFO - Best energy achieved: -92.65980905885262
2024-09-18 01:20:14,646 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:16,515 - SAOOVQE.logger - INFO - Gradient norm: 2.6713153530458103e-06
2024-09-18 01:20:16,516 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65980905885228
2024-09-18 01:20:16,517 - SAOOVQE.logger - INFO - Best energy achieved: -92.65980905885262
2024-09-18 01:20:16,517 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 2)
2024-09-18 01:20:18,338 - SAOOVQE.logger - INFO - Gradient norm: 2.3098146164320224e-09
2024-09-18 01:20:18,339 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65980905885213
2024-09-18 01:20:18,339 - SAOOVQE.logger - INFO - Best energy achieved: -92.65980905885262
2024-09-18 01:20:18,340 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:19,647 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.11083605  0.11084041 -0.01224947]
2024-09-18 01:20:19,648 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:20,070 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:21,995 - SAOOVQE.logger - INFO - Gradient norm: 0.000577257082979541
2024-09-18 01:20:21,995 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981020516338
2024-09-18 01:20:21,996 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981020516338
2024-09-18 01:20:21,996 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:23,867 - SAOOVQE.logger - INFO - Gradient norm: 6.967648565108827e-07
2024-09-18 01:20:23,867 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981020516334
2024-09-18 01:20:23,868 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981020516338
2024-09-18 01:20:23,868 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:24,950 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.11008714  0.11008391 -0.01224601]
2024-09-18 01:20:24,951 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:25,343 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:27,186 - SAOOVQE.logger - INFO - Gradient norm: 0.0002979298641657651
2024-09-18 01:20:27,187 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6598105083414
2024-09-18 01:20:27,187 - SAOOVQE.logger - INFO - Best energy achieved: -92.6598105083414
2024-09-18 01:20:27,188 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:29,072 - SAOOVQE.logger - INFO - Gradient norm: 1.8474679617441897e-07
2024-09-18 01:20:29,073 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.6598105083414
2024-09-18 01:20:29,073 - SAOOVQE.logger - INFO - Best energy achieved: -92.6598105083414
2024-09-18 01:20:29,074 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:30,162 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.10971198  0.10970799 -0.01224215]
2024-09-18 01:20:30,163 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:30,601 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:32,470 - SAOOVQE.logger - INFO - Gradient norm: 0.00014905761028550355
2024-09-18 01:20:32,470 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981058645801
2024-09-18 01:20:32,470 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981058645801
2024-09-18 01:20:32,471 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:34,327 - SAOOVQE.logger - INFO - Gradient norm: 4.707776154861749e-08
2024-09-18 01:20:34,328 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981058645818
2024-09-18 01:20:34,328 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981058645818
2024-09-18 01:20:34,329 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:35,587 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.1095071   0.10950899 -0.01224187]
2024-09-18 01:20:35,588 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:35,989 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:37,836 - SAOOVQE.logger - INFO - Gradient norm: 7.98480668525546e-05
2024-09-18 01:20:37,837 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981060809371
2024-09-18 01:20:37,838 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981060809371
2024-09-18 01:20:37,838 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:39,758 - SAOOVQE.logger - INFO - Gradient norm: 1.320941193624699e-08
2024-09-18 01:20:39,759 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981060809347
2024-09-18 01:20:39,759 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981060809371
2024-09-18 01:20:39,759 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:40,925 - SAOOVQE.logger - INFO - SA-optimized ansatz parameters: [ 0.10941218  0.10941082 -0.01224131]
2024-09-18 01:20:40,926 - SAOOVQE.logger - INFO - Starting Orbital-Optimization process...
2024-09-18 01:20:41,395 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 0)
2024-09-18 01:20:43,250 - SAOOVQE.logger - INFO - Gradient norm: 3.8248827222461615e-05
2024-09-18 01:20:43,251 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981061347746
2024-09-18 01:20:43,252 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981061347746
2024-09-18 01:20:43,252 - SAOOVQE.logger - INFO - Starting orbital optimization (iteration 1)
2024-09-18 01:20:45,131 - SAOOVQE.logger - INFO - Gradient norm: 3.1844509163913837e-09
2024-09-18 01:20:45,131 - SAOOVQE.logger - INFO - Energy after this OO iteration: -92.65981061347759
2024-09-18 01:20:45,132 - SAOOVQE.logger - INFO - Best energy achieved: -92.65981061347759
2024-09-18 01:20:45,132 - SAOOVQE.logger - INFO - Orbital optimization was finished.
2024-09-18 01:20:45,417 - SAOOVQE.logger - INFO - Optimal phi angle for state-resolution was obtained (phi* = 4.471847506669543).

============== State-Averaged Energies ==============
-92.64256593070509
-92.64414484063462
-92.65981061347676

And now, let’s have a look at the gradients of the potential energy surface for all the particles at both relevant states.

[10]:
print('\n============== Gradients ==============')
for state_idx in range(2):
    for atom_idx in range(len(symbols)):
        print(state_idx, atom_idx, solver_oo_full.eval_eng_gradient(state_idx, atom_idx))
2024-09-18 01:20:45,833 - SAOOVQE.logger - INFO - Constructing gradient evaluators...

============== Gradients ==============
0 0 [-0.22492213 -0.0490333  -0.20123791]
0 1 [0.07455834 0.01793913 0.23635008]
0 2 [-0.0030157   0.02465403 -0.02605519]
0 3 [-0.00637749 -0.02588277 -0.02037206]
0 4 [0.15975698 0.03232291 0.01131508]
1 0 [-0.04098252 -0.02451307 -0.54292557]
1 1 [0.064886  0.0010373 0.5165189]
1 2 [-0.02694857  0.03139608 -0.02809479]
1 3 [-0.03869227 -0.0301688  -0.02735175]
1 4 [0.04173736 0.0222485  0.08185321]

And the non-adiabatic couplings.

[11]:
print('\n============== Total non-adiabatic couplings ==============')
for atom_idx in range(len(symbols)):
    print(atom_idx, solver_oo_full.eval_nac(atom_idx))

============== Total non-adiabatic couplings ==============
0 [-0.5565272   2.35403065  1.28518241]
1 [-0.12877282 -1.09821038 -1.32250679]
2 [0.03282151 0.01785465 0.22158791]
3 [ 0.25561399  0.08504591 -0.10507403]
4 [ 0.36228558 -1.25132444 -0.07593426]

And finally, considering NACs, we can also have a look at CI and CSF NACs separately.

[12]:
print('\n============== CI non-adiabatic couplings ==============')
for atom_idx in range(len(symbols)):
    print(atom_idx, solver_oo_full.ci_nacs[atom_idx])

print('\n============== CSF non-adiabatic couplings ==============')
for atom_idx in range(len(symbols)):
    print(atom_idx, solver_oo_full.csf_nacs[atom_idx])

============== CI non-adiabatic couplings ==============
0 [-0.51517591  2.1407781   1.28505707]
1 [-0.12202162 -1.06704725 -1.32160249]
2 [-0.01316415  0.0193005   0.2256887 ]
3 [ 0.29604036  0.08643814 -0.10915325]
4 [ 0.35432132 -1.17946949 -0.07999003]

============== CSF non-adiabatic couplings ==============
0 [-4.13512940e-02  2.13252546e-01  1.25340222e-04]
1 [-0.00675121 -0.03116313 -0.00090429]
2 [ 0.04598567 -0.00144585 -0.00410079]
3 [-0.04042637 -0.00139223  0.00407921]
4 [ 0.00796426 -0.07185495  0.00405577]