\(\text{C}_2\text{H}_2\text{F}_2 \text{ Model}\)
[1]:
# Import necessary libraries
import pyvcham
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
import tensorflow as tf
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
Intel MKL WARNING: Support of Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled only processors has been deprecated. Intel oneAPI Math Kernel Library 2025.0 will require Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.
Intel MKL WARNING: Support of Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled only processors has been deprecated. Intel oneAPI Math Kernel Library 2025.0 will require Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.
2026-02-03 21:25:00.024274: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2026-02-03 21:25:03,872 [INFO] root: Logging configuration successfully loaded.
[2]:
"""
This is an example of a Linear Vibronic Coupling (LVC) calculation using the vcham package.
The molecular system studied is C2H2F2, which is a simple molecule with a linear structure.
We aim at calculating the LVC of the core-excited states of C2H2F2 using the ab initio data.
We will build the database from the abinitio data. Both the database and the displacement
data will be saved in a list of numpy arrays. This is because it might be that the
range of the displacement data is not the same for all coordinates.
Calculations were performed using ADC method, this gives us transition energies. Then to perform
the calculations we need to convert the transition energies to relative energies with respect to the
ground state. This is done by subtracting the ground state energy from the transition energies.
"""
[2]:
'\nThis is an example of a Linear Vibronic Coupling (LVC) calculation using the vcham package.\nThe molecular system studied is C2H2F2, which is a simple molecule with a linear structure.\nWe aim at calculating the LVC of the core-excited states of C2H2F2 using the ab initio data.\n\nWe will build the database from the abinitio data. Both the database and the displacement\ndata will be saved in a list of numpy arrays. This is because it might be that the\nrange of the displacement data is not the same for all coordinates.\n\nCalculations were performed using ADC method, this gives us transition energies. Then to perform\nthe calculations we need to convert the transition energies to relative energies with respect to the\nground state. This is done by subtracting the ground state energy from the transition energies.\n'
[3]:
# Constants
NUMBER_STATES = 9
NUMBER_NORMAL_MODES = 12
THRESHOLD = -266.4 # Threshold for core-excited state energies in eV (there are some not converged)
# Loading the data
all_q = []
all_data = []
for normal_mode in range(1, NUMBER_NORMAL_MODES + 1):
gs_data = np.genfromtxt(f'c2h2f2_abinitio/gs_v{normal_mode}.dat') # The GS data is calculated via the MP3 method.
min_gs = gs_data.min()
data_root = []
x_gs, y_gs = gs_data[:, 0], gs_data[:, 1] # Extract displacements and absolute energy.
for root in range(1, 9): # Note: Ground state has 1 root, core-excited states have 8 roots.
data = np.genfromtxt(f'c2h2f2_abinitio/ce{root}_v{normal_mode}.dat')
x, y = data[:, 0], data[:, 1] # Extract displacement and relative energy in eV
y /= pyvcham.constants.AU_TO_EV # eV to au
displacements = x / 10 # Final displacements
gsdata = y_gs # Ground state data
cedata = y + y_gs # CE data
df = pd.DataFrame({'disp': displacements, 'gs': gsdata, 'ce': cedata})
filtered_df = df[df['ce'] >= THRESHOLD]
if normal_mode in [11, 12]:
filtered_df = filtered_df[filtered_df['disp'] <= 7]
filtered_df = filtered_df[filtered_df['disp'] >= -7]
if root == 1:
data_root.append((filtered_df["gs"].to_numpy() - min_gs) * pyvcham.constants.AU_TO_EV)
data_root.append((filtered_df["ce"].to_numpy() - min_gs) * pyvcham.constants.AU_TO_EV)
data_root = np.array(data_root)
all_q.append(filtered_df["disp"].to_numpy())
all_data.append(data_root)
# The dimensions of the all_q and all_data lists are:
# all_q: (NUMBER_NORMAL_MODES, number of displacements)
# all_data: (NUMBER_NORMAL_MODES, NUMBER_STATES, number of displacements)
[4]:
# Plotting the abinitio data
for mode in range(NUMBER_NORMAL_MODES):
plt.figure(figsize=(8, 5))
for i in range(NUMBER_STATES):
if i > 0:
plt.scatter(all_q[mode], all_data[mode][i], s=0.5)
plt.xlabel(f"$Q_{{{mode}}}$")
plt.ylabel("Energy [eV]")
plt.show() # Ensure the plot is displayed
[5]:
# Creating the VC system object
# Vibrational frequencies
vib_freq = np.array([
437.65, 554.94, 624.51, 723.68, 815.49, 942.41,
972.66, 1354.07, 1422.52, 1778.08, 3210.23, 3316.54
])
vib_freq = vib_freq * pyvcham.constants.CM1_TO_AU * pyvcham.constants.AU_TO_EV # Convert to eV
# Guess diabatic function for each mode (this is done based on the nature of the modes)
# This can be seen from the plotting of the abinitio data above.
diab_f_each_mode = [
"quartic", "antimorse", "quartic", "quartic",
"quartic", "morse", "quartic", "quartic",
"quartic", "morse", "antimorse", "quartic"
]
# Create the diabatic functions for each mode. The dimension of the diabatic functions is (number_modes, number_states).
diab_funct_mode = [[mode] * NUMBER_STATES for mode in diab_f_each_mode]
# Create the VCSystem object with the provided parameters
system = pyvcham.VCSystem(
vc_type= "linear",
units="eV",
number_normal_modes=NUMBER_NORMAL_MODES, # C2H2F2 3N-6 modes
number_states=NUMBER_STATES, # GS + 8 core-excited
coupling_with_gs=False, # In core-excitation we do not account for coupling with the ground state.
symmetry_point_group="C2v",
symmetry_states = ["A1", "B2", "A1", "B1", "B2", "A1","B2","B1","A1"], # Symmetry states for C2H2F2 (Taken from QChem)
symmetry_modes = ['B2', 'A1', 'B1', 'A2', 'B1', 'A1', 'B2', 'B2', 'A1', 'A1', 'A1', 'B2'], # Symmetry modes for C2H2F2 (Taken from CFOUR)
vib_freq= vib_freq, # to eV
displacement_vector= all_q,
database_abinitio=all_data,
diab_funct = diab_funct_mode,
)
2026-02-03 21:25:05,259 [INFO] pyvcham.vcham_system: Computed vertical energy shifts: [ 0. 287.309 289.6914 290.3805 290.9194 291.0533 291.1681 291.6091
291.8231]
[6]:
# Load the initial guess for the diabatic functions
# This is a precomputed initial guess for the diabatic functions.
import pickle
with open("initial_guess_c2h2f2.pkl", 'rb') as f:
initial_guess = pickle.load(f)
[7]:
# Optimization of the diabatic functions
# Set the number of epochs for optimization
# The number of epochs is the number of iterations for the optimization algorithm.
# The optimization will be done for each normal mode separately.
nepochs = 5000
for mode in range(system.number_normal_modes):
model = pyvcham.LVCHam(normal_mode=mode,VCSystem=system,nepochs=nepochs,funct_guess=initial_guess[mode]) # Initialize the model
if mode in [0,6,7,11]:
guess = [1e-2, 0.0, 0.0, 1e-2, 1e-6, 1e-2, 1e-6,1e-2,1e-2]
elif mode == 2:
guess = [1e-2, 0.0, 1e-2, 0.0, 1e-3, 1e-3]
elif mode == 4:
guess = [1e-2, 0.0, 1e-2, 0.0, 1e-4, 1e-4]
else:
guess = [1e-2, 0.0, 1e-2, 1e-4, 1e-5, 1e-3]
model.initialize_params(lambda_guess=guess, kappa_guess=0.1) # Initialize parameters
model.initialize_loss_function() # Initialize loss function
model.optimize() # Optimize the model
2026-02-03 21:25:05,289 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:05,290 [INFO] pyvcham.lvc: Normal mode: 0
2026-02-03 21:25:05,299 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:05,300 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:05,303 [INFO] pyvcham.lvc: Total parameters to optimize: 27
2026-02-03 21:25:05,303 [INFO] pyvcham.lvc: Optimizing mode 0...
<unknown>:3: SyntaxWarning: invalid escape sequence '\c'
2026-02-03 21:25:06,671 [INFO] pyvcham.lvc: Step 0, Loss: 0.002262
2026-02-03 21:25:06,816 [INFO] pyvcham.lvc: Step 100, Loss: 0.001901
2026-02-03 21:25:07,089 [INFO] pyvcham.lvc: Step 200, Loss: 0.001891
2026-02-03 21:25:07,235 [INFO] pyvcham.lvc: Step 300, Loss: 0.001887
2026-02-03 21:25:07,369 [INFO] pyvcham.lvc: Step 400, Loss: 0.001906
2026-02-03 21:25:07,492 [INFO] pyvcham.lvc: Step 500, Loss: 0.001892
2026-02-03 21:25:07,533 [INFO] pyvcham.lvc: Early stopping triggered at step 532 (no improvement for 150 steps). Best loss: 0.001884
2026-02-03 21:25:08,070 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.001884
2026-02-03 21:25:08,070 [INFO] pyvcham.lvc: Optimization completed in 2.23 seconds.
2026-02-03 21:25:08,074 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:08,074 [INFO] pyvcham.lvc: Normal mode: 1
2026-02-03 21:25:08,079 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:08,080 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:25:08,082 [INFO] pyvcham.lvc: Total parameters to optimize: 34
2026-02-03 21:25:08,082 [INFO] pyvcham.lvc: Optimizing mode 1...
2026-02-03 21:25:08,991 [INFO] pyvcham.lvc: Step 0, Loss: 0.003788
2026-02-03 21:25:09,137 [INFO] pyvcham.lvc: Step 100, Loss: 0.002924
2026-02-03 21:25:09,270 [INFO] pyvcham.lvc: Step 200, Loss: 0.002906
2026-02-03 21:25:09,401 [INFO] pyvcham.lvc: Step 300, Loss: 0.002893
2026-02-03 21:25:09,531 [INFO] pyvcham.lvc: Step 400, Loss: 0.002881
2026-02-03 21:25:09,662 [INFO] pyvcham.lvc: Step 500, Loss: 0.002869
2026-02-03 21:25:09,797 [INFO] pyvcham.lvc: Step 600, Loss: 0.002854
2026-02-03 21:25:09,931 [INFO] pyvcham.lvc: Step 700, Loss: 0.002828
2026-02-03 21:25:10,063 [INFO] pyvcham.lvc: Step 800, Loss: 0.002780
2026-02-03 21:25:10,194 [INFO] pyvcham.lvc: Step 900, Loss: 0.002754
2026-02-03 21:25:10,324 [INFO] pyvcham.lvc: Step 1000, Loss: 0.002741
2026-02-03 21:25:10,467 [INFO] pyvcham.lvc: Step 1100, Loss: 0.002732
2026-02-03 21:25:10,607 [INFO] pyvcham.lvc: Step 1200, Loss: 0.002769
2026-02-03 21:25:10,744 [INFO] pyvcham.lvc: Step 1300, Loss: 0.002709
2026-02-03 21:25:10,883 [INFO] pyvcham.lvc: Step 1400, Loss: 0.002700
2026-02-03 21:25:11,021 [INFO] pyvcham.lvc: Step 1500, Loss: 0.002692
2026-02-03 21:25:11,157 [INFO] pyvcham.lvc: Step 1600, Loss: 0.002689
2026-02-03 21:25:11,289 [INFO] pyvcham.lvc: Step 1700, Loss: 0.002685
2026-02-03 21:25:11,421 [INFO] pyvcham.lvc: Step 1800, Loss: 0.002673
2026-02-03 21:25:11,551 [INFO] pyvcham.lvc: Step 1900, Loss: 0.002667
2026-02-03 21:25:11,680 [INFO] pyvcham.lvc: Step 2000, Loss: 0.002658
2026-02-03 21:25:11,810 [INFO] pyvcham.lvc: Step 2100, Loss: 0.002651
2026-02-03 21:25:11,941 [INFO] pyvcham.lvc: Step 2200, Loss: 0.002638
2026-02-03 21:25:12,073 [INFO] pyvcham.lvc: Step 2300, Loss: 0.002632
2026-02-03 21:25:12,208 [INFO] pyvcham.lvc: Step 2400, Loss: 0.002626
2026-02-03 21:25:12,346 [INFO] pyvcham.lvc: Step 2500, Loss: 0.002625
2026-02-03 21:25:12,484 [INFO] pyvcham.lvc: Step 2600, Loss: 0.002611
2026-02-03 21:25:12,619 [INFO] pyvcham.lvc: Step 2700, Loss: 0.002616
2026-02-03 21:25:12,755 [INFO] pyvcham.lvc: Step 2800, Loss: 0.002603
2026-02-03 21:25:12,892 [INFO] pyvcham.lvc: Step 2900, Loss: 0.002598
2026-02-03 21:25:13,029 [INFO] pyvcham.lvc: Step 3000, Loss: 0.002606
2026-02-03 21:25:13,162 [INFO] pyvcham.lvc: Step 3100, Loss: 0.002585
2026-02-03 21:25:13,302 [INFO] pyvcham.lvc: Step 3200, Loss: 0.002582
2026-02-03 21:25:13,438 [INFO] pyvcham.lvc: Step 3300, Loss: 0.002579
2026-02-03 21:25:13,575 [INFO] pyvcham.lvc: Step 3400, Loss: 0.002575
2026-02-03 21:25:13,715 [INFO] pyvcham.lvc: Step 3500, Loss: 0.002577
2026-02-03 21:25:13,850 [INFO] pyvcham.lvc: Step 3600, Loss: 0.002569
2026-02-03 21:25:13,988 [INFO] pyvcham.lvc: Step 3700, Loss: 0.002563
2026-02-03 21:25:14,121 [INFO] pyvcham.lvc: Step 3800, Loss: 0.002558
2026-02-03 21:25:14,251 [INFO] pyvcham.lvc: Step 3900, Loss: 0.002559
2026-02-03 21:25:14,385 [INFO] pyvcham.lvc: Step 4000, Loss: 0.002557
2026-02-03 21:25:14,522 [INFO] pyvcham.lvc: Step 4100, Loss: 0.002550
2026-02-03 21:25:14,657 [INFO] pyvcham.lvc: Step 4200, Loss: 0.002553
2026-02-03 21:25:14,792 [INFO] pyvcham.lvc: Step 4300, Loss: 0.002545
2026-02-03 21:25:14,927 [INFO] pyvcham.lvc: Step 4400, Loss: 0.002545
2026-02-03 21:25:15,094 [INFO] pyvcham.lvc: Step 4500, Loss: 0.002550
2026-02-03 21:25:15,280 [INFO] pyvcham.lvc: Step 4600, Loss: 0.002536
2026-02-03 21:25:15,416 [INFO] pyvcham.lvc: Step 4700, Loss: 0.002549
2026-02-03 21:25:15,555 [INFO] pyvcham.lvc: Step 4800, Loss: 0.002538
2026-02-03 21:25:15,728 [INFO] pyvcham.lvc: Step 4900, Loss: 0.002530
2026-02-03 21:25:16,411 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.002527
2026-02-03 21:25:16,411 [INFO] pyvcham.lvc: Optimization completed in 7.79 seconds.
2026-02-03 21:25:16,414 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:16,415 [INFO] pyvcham.lvc: Normal mode: 2
2026-02-03 21:25:16,421 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:16,421 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:16,422 [INFO] pyvcham.lvc: Total parameters to optimize: 24
2026-02-03 21:25:16,423 [INFO] pyvcham.lvc: Optimizing mode 2...
2026-02-03 21:25:17,266 [INFO] pyvcham.lvc: Step 0, Loss: 0.040792
2026-02-03 21:25:17,407 [INFO] pyvcham.lvc: Step 100, Loss: 0.007592
2026-02-03 21:25:17,536 [INFO] pyvcham.lvc: Step 200, Loss: 0.007318
2026-02-03 21:25:17,664 [INFO] pyvcham.lvc: Step 300, Loss: 0.006754
2026-02-03 21:25:17,795 [INFO] pyvcham.lvc: Step 400, Loss: 0.006456
2026-02-03 21:25:17,931 [INFO] pyvcham.lvc: Step 500, Loss: 0.006446
2026-02-03 21:25:18,052 [INFO] pyvcham.lvc: Step 600, Loss: 0.006443
2026-02-03 21:25:18,173 [INFO] pyvcham.lvc: Step 700, Loss: 0.006441
2026-02-03 21:25:18,294 [INFO] pyvcham.lvc: Step 800, Loss: 0.006449
2026-02-03 21:25:18,413 [INFO] pyvcham.lvc: Step 900, Loss: 0.006440
2026-02-03 21:25:18,446 [INFO] pyvcham.lvc: Early stopping triggered at step 928 (no improvement for 150 steps). Best loss: 0.006439
2026-02-03 21:25:19,024 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.006439
2026-02-03 21:25:19,024 [INFO] pyvcham.lvc: Optimization completed in 2.02 seconds.
2026-02-03 21:25:19,027 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:19,028 [INFO] pyvcham.lvc: Normal mode: 3
2026-02-03 21:25:19,032 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:19,032 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:19,033 [INFO] pyvcham.lvc: Total parameters to optimize: 24
2026-02-03 21:25:19,033 [INFO] pyvcham.lvc: Optimizing mode 3...
2026-02-03 21:25:19,787 [INFO] pyvcham.lvc: Step 0, Loss: 0.084513
2026-02-03 21:25:19,914 [INFO] pyvcham.lvc: Step 100, Loss: 0.018710
2026-02-03 21:25:20,029 [INFO] pyvcham.lvc: Step 200, Loss: 0.018710
2026-02-03 21:25:20,142 [INFO] pyvcham.lvc: Step 300, Loss: 0.018711
2026-02-03 21:25:20,262 [INFO] pyvcham.lvc: Step 400, Loss: 0.018712
2026-02-03 21:25:20,376 [INFO] pyvcham.lvc: Step 500, Loss: 0.018686
2026-02-03 21:25:20,487 [INFO] pyvcham.lvc: Step 600, Loss: 0.018486
2026-02-03 21:25:20,596 [INFO] pyvcham.lvc: Step 700, Loss: 0.018475
2026-02-03 21:25:20,654 [INFO] pyvcham.lvc: Early stopping triggered at step 753 (no improvement for 150 steps). Best loss: 0.018473
2026-02-03 21:25:21,234 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.018473
2026-02-03 21:25:21,234 [INFO] pyvcham.lvc: Optimization completed in 1.62 seconds.
2026-02-03 21:25:21,237 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:21,237 [INFO] pyvcham.lvc: Normal mode: 4
2026-02-03 21:25:21,241 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:21,242 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:21,242 [INFO] pyvcham.lvc: Total parameters to optimize: 24
2026-02-03 21:25:21,243 [INFO] pyvcham.lvc: Optimizing mode 4...
2026-02-03 21:25:22,014 [INFO] pyvcham.lvc: Step 0, Loss: 0.192604
2026-02-03 21:25:22,146 [INFO] pyvcham.lvc: Step 100, Loss: 0.015262
2026-02-03 21:25:22,263 [INFO] pyvcham.lvc: Step 200, Loss: 0.013169
2026-02-03 21:25:22,371 [INFO] pyvcham.lvc: Step 300, Loss: 0.013173
2026-02-03 21:25:22,437 [INFO] pyvcham.lvc: Early stopping triggered at step 361 (no improvement for 150 steps). Best loss: 0.013168
2026-02-03 21:25:22,966 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.013168
2026-02-03 21:25:22,967 [INFO] pyvcham.lvc: Optimization completed in 1.19 seconds.
2026-02-03 21:25:22,969 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:22,969 [INFO] pyvcham.lvc: Normal mode: 5
2026-02-03 21:25:22,973 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:22,974 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:25:22,974 [INFO] pyvcham.lvc: Total parameters to optimize: 34
2026-02-03 21:25:22,975 [INFO] pyvcham.lvc: Optimizing mode 5...
2026-02-03 21:25:23,945 [INFO] pyvcham.lvc: Step 0, Loss: 0.067890
2026-02-03 21:25:24,089 [INFO] pyvcham.lvc: Step 100, Loss: 0.023780
2026-02-03 21:25:24,230 [INFO] pyvcham.lvc: Step 200, Loss: 0.020025
2026-02-03 21:25:24,364 [INFO] pyvcham.lvc: Step 300, Loss: 0.018386
2026-02-03 21:25:24,491 [INFO] pyvcham.lvc: Step 400, Loss: 0.017515
2026-02-03 21:25:24,617 [INFO] pyvcham.lvc: Step 500, Loss: 0.016975
2026-02-03 21:25:24,741 [INFO] pyvcham.lvc: Step 600, Loss: 0.016485
2026-02-03 21:25:24,861 [INFO] pyvcham.lvc: Step 700, Loss: 0.016136
2026-02-03 21:25:24,981 [INFO] pyvcham.lvc: Step 800, Loss: 0.015819
2026-02-03 21:25:25,102 [INFO] pyvcham.lvc: Step 900, Loss: 0.015516
2026-02-03 21:25:25,222 [INFO] pyvcham.lvc: Step 1000, Loss: 0.015230
2026-02-03 21:25:25,352 [INFO] pyvcham.lvc: Step 1100, Loss: 0.014958
2026-02-03 21:25:25,479 [INFO] pyvcham.lvc: Step 1200, Loss: 0.014701
2026-02-03 21:25:25,601 [INFO] pyvcham.lvc: Step 1300, Loss: 0.014452
2026-02-03 21:25:25,720 [INFO] pyvcham.lvc: Step 1400, Loss: 0.014218
2026-02-03 21:25:25,839 [INFO] pyvcham.lvc: Step 1500, Loss: 0.013995
2026-02-03 21:25:25,960 [INFO] pyvcham.lvc: Step 1600, Loss: 0.013784
2026-02-03 21:25:26,079 [INFO] pyvcham.lvc: Step 1700, Loss: 0.013584
2026-02-03 21:25:26,200 [INFO] pyvcham.lvc: Step 1800, Loss: 0.013394
2026-02-03 21:25:26,319 [INFO] pyvcham.lvc: Step 1900, Loss: 0.013214
2026-02-03 21:25:26,438 [INFO] pyvcham.lvc: Step 2000, Loss: 0.013047
2026-02-03 21:25:26,557 [INFO] pyvcham.lvc: Step 2100, Loss: 0.012885
2026-02-03 21:25:26,674 [INFO] pyvcham.lvc: Step 2200, Loss: 0.012734
2026-02-03 21:25:26,793 [INFO] pyvcham.lvc: Step 2300, Loss: 0.012590
2026-02-03 21:25:26,912 [INFO] pyvcham.lvc: Step 2400, Loss: 0.012456
2026-02-03 21:25:27,031 [INFO] pyvcham.lvc: Step 2500, Loss: 0.012329
2026-02-03 21:25:27,150 [INFO] pyvcham.lvc: Step 2600, Loss: 0.012212
2026-02-03 21:25:27,266 [INFO] pyvcham.lvc: Step 2700, Loss: 0.012095
2026-02-03 21:25:27,385 [INFO] pyvcham.lvc: Step 2800, Loss: 0.011998
2026-02-03 21:25:27,504 [INFO] pyvcham.lvc: Step 2900, Loss: 0.011884
2026-02-03 21:25:27,623 [INFO] pyvcham.lvc: Step 3000, Loss: 0.011789
2026-02-03 21:25:27,741 [INFO] pyvcham.lvc: Step 3100, Loss: 0.011699
2026-02-03 21:25:27,861 [INFO] pyvcham.lvc: Step 3200, Loss: 0.011615
2026-02-03 21:25:27,980 [INFO] pyvcham.lvc: Step 3300, Loss: 0.011534
2026-02-03 21:25:28,098 [INFO] pyvcham.lvc: Step 3400, Loss: 0.011459
2026-02-03 21:25:28,216 [INFO] pyvcham.lvc: Step 3500, Loss: 0.011397
2026-02-03 21:25:28,334 [INFO] pyvcham.lvc: Step 3600, Loss: 0.011323
2026-02-03 21:25:28,450 [INFO] pyvcham.lvc: Step 3700, Loss: 0.011259
2026-02-03 21:25:28,566 [INFO] pyvcham.lvc: Step 3800, Loss: 0.011183
2026-02-03 21:25:28,684 [INFO] pyvcham.lvc: Step 3900, Loss: 0.011090
2026-02-03 21:25:28,800 [INFO] pyvcham.lvc: Step 4000, Loss: 0.011020
2026-02-03 21:25:28,919 [INFO] pyvcham.lvc: Step 4100, Loss: 0.010950
2026-02-03 21:25:29,037 [INFO] pyvcham.lvc: Step 4200, Loss: 0.010890
2026-02-03 21:25:29,154 [INFO] pyvcham.lvc: Step 4300, Loss: 0.010827
2026-02-03 21:25:29,272 [INFO] pyvcham.lvc: Step 4400, Loss: 0.010775
2026-02-03 21:25:29,389 [INFO] pyvcham.lvc: Step 4500, Loss: 0.010723
2026-02-03 21:25:29,511 [INFO] pyvcham.lvc: Step 4600, Loss: 0.010666
2026-02-03 21:25:29,635 [INFO] pyvcham.lvc: Step 4700, Loss: 0.010631
2026-02-03 21:25:29,757 [INFO] pyvcham.lvc: Step 4800, Loss: 0.010550
2026-02-03 21:25:29,879 [INFO] pyvcham.lvc: Step 4900, Loss: 0.010499
2026-02-03 21:25:30,568 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.010453
2026-02-03 21:25:30,569 [INFO] pyvcham.lvc: Optimization completed in 7.03 seconds.
2026-02-03 21:25:30,571 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:30,571 [INFO] pyvcham.lvc: Normal mode: 6
2026-02-03 21:25:30,576 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:30,576 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:30,577 [INFO] pyvcham.lvc: Total parameters to optimize: 27
2026-02-03 21:25:30,577 [INFO] pyvcham.lvc: Optimizing mode 6...
2026-02-03 21:25:31,446 [INFO] pyvcham.lvc: Step 0, Loss: 0.006832
2026-02-03 21:25:31,598 [INFO] pyvcham.lvc: Step 100, Loss: 0.002451
2026-02-03 21:25:31,726 [INFO] pyvcham.lvc: Step 200, Loss: 0.002447
2026-02-03 21:25:31,864 [INFO] pyvcham.lvc: Step 300, Loss: 0.002447
2026-02-03 21:25:31,994 [INFO] pyvcham.lvc: Step 400, Loss: 0.002455
2026-02-03 21:25:32,120 [INFO] pyvcham.lvc: Step 500, Loss: 0.002451
2026-02-03 21:25:32,245 [INFO] pyvcham.lvc: Step 600, Loss: 0.002446
2026-02-03 21:25:32,376 [INFO] pyvcham.lvc: Step 700, Loss: 0.002450
2026-02-03 21:25:32,468 [INFO] pyvcham.lvc: Early stopping triggered at step 770 (no improvement for 150 steps). Best loss: 0.002442
2026-02-03 21:25:33,055 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.002442
2026-02-03 21:25:33,055 [INFO] pyvcham.lvc: Optimization completed in 1.89 seconds.
2026-02-03 21:25:33,057 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:33,058 [INFO] pyvcham.lvc: Normal mode: 7
2026-02-03 21:25:33,061 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:33,062 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:33,062 [INFO] pyvcham.lvc: Total parameters to optimize: 27
2026-02-03 21:25:33,063 [INFO] pyvcham.lvc: Optimizing mode 7...
2026-02-03 21:25:33,869 [INFO] pyvcham.lvc: Step 0, Loss: 0.000917
2026-02-03 21:25:34,011 [INFO] pyvcham.lvc: Step 100, Loss: 0.000758
2026-02-03 21:25:34,134 [INFO] pyvcham.lvc: Step 200, Loss: 0.000753
2026-02-03 21:25:34,256 [INFO] pyvcham.lvc: Step 300, Loss: 0.000667
2026-02-03 21:25:34,378 [INFO] pyvcham.lvc: Step 400, Loss: 0.000621
2026-02-03 21:25:34,505 [INFO] pyvcham.lvc: Step 500, Loss: 0.000613
2026-02-03 21:25:34,626 [INFO] pyvcham.lvc: Step 600, Loss: 0.000615
2026-02-03 21:25:34,744 [INFO] pyvcham.lvc: Step 700, Loss: 0.000631
2026-02-03 21:25:34,862 [INFO] pyvcham.lvc: Step 800, Loss: 0.000681
2026-02-03 21:25:34,985 [INFO] pyvcham.lvc: Step 900, Loss: 0.000595
2026-02-03 21:25:35,110 [INFO] pyvcham.lvc: Step 1000, Loss: 0.000595
2026-02-03 21:25:35,140 [INFO] pyvcham.lvc: Early stopping triggered at step 1025 (no improvement for 150 steps). Best loss: 0.000594
2026-02-03 21:25:35,714 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.000594
2026-02-03 21:25:35,715 [INFO] pyvcham.lvc: Optimization completed in 2.08 seconds.
2026-02-03 21:25:35,718 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:35,718 [INFO] pyvcham.lvc: Normal mode: 8
2026-02-03 21:25:35,723 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:35,724 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:35,725 [INFO] pyvcham.lvc: Total parameters to optimize: 42
2026-02-03 21:25:35,725 [INFO] pyvcham.lvc: Optimizing mode 8...
2026-02-03 21:25:36,597 [INFO] pyvcham.lvc: Step 0, Loss: 1.967803
2026-02-03 21:25:36,748 [INFO] pyvcham.lvc: Step 100, Loss: 0.061647
2026-02-03 21:25:36,877 [INFO] pyvcham.lvc: Step 200, Loss: 0.033948
2026-02-03 21:25:37,005 [INFO] pyvcham.lvc: Step 300, Loss: 0.033499
2026-02-03 21:25:37,132 [INFO] pyvcham.lvc: Step 400, Loss: 0.033456
2026-02-03 21:25:37,258 [INFO] pyvcham.lvc: Step 500, Loss: 0.033411
2026-02-03 21:25:37,385 [INFO] pyvcham.lvc: Step 600, Loss: 0.033419
2026-02-03 21:25:37,511 [INFO] pyvcham.lvc: Step 700, Loss: 0.033335
2026-02-03 21:25:37,635 [INFO] pyvcham.lvc: Step 800, Loss: 0.033309
2026-02-03 21:25:37,761 [INFO] pyvcham.lvc: Step 900, Loss: 0.033282
2026-02-03 21:25:37,894 [INFO] pyvcham.lvc: Step 1000, Loss: 0.033268
2026-02-03 21:25:38,025 [INFO] pyvcham.lvc: Step 1100, Loss: 0.033256
2026-02-03 21:25:38,151 [INFO] pyvcham.lvc: Step 1200, Loss: 0.033240
2026-02-03 21:25:38,275 [INFO] pyvcham.lvc: Step 1300, Loss: 0.033229
2026-02-03 21:25:38,406 [INFO] pyvcham.lvc: Step 1400, Loss: 0.033231
2026-02-03 21:25:38,539 [INFO] pyvcham.lvc: Step 1500, Loss: 0.033216
2026-02-03 21:25:38,666 [INFO] pyvcham.lvc: Step 1600, Loss: 0.033213
2026-02-03 21:25:38,789 [INFO] pyvcham.lvc: Step 1700, Loss: 0.033214
2026-02-03 21:25:38,919 [INFO] pyvcham.lvc: Step 1800, Loss: 0.033212
2026-02-03 21:25:39,050 [INFO] pyvcham.lvc: Step 1900, Loss: 0.033207
2026-02-03 21:25:39,177 [INFO] pyvcham.lvc: Step 2000, Loss: 0.033203
2026-02-03 21:25:39,300 [INFO] pyvcham.lvc: Step 2100, Loss: 0.033209
2026-02-03 21:25:39,424 [INFO] pyvcham.lvc: Step 2200, Loss: 0.033250
2026-02-03 21:25:39,550 [INFO] pyvcham.lvc: Step 2300, Loss: 0.033207
2026-02-03 21:25:39,681 [INFO] pyvcham.lvc: Step 2400, Loss: 0.033198
2026-02-03 21:25:39,754 [INFO] pyvcham.lvc: Early stopping triggered at step 2458 (no improvement for 150 steps). Best loss: 0.033180
2026-02-03 21:25:40,477 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.033180
2026-02-03 21:25:40,477 [INFO] pyvcham.lvc: Optimization completed in 4.03 seconds.
2026-02-03 21:25:40,480 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:40,480 [INFO] pyvcham.lvc: Normal mode: 9
2026-02-03 21:25:40,485 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:40,485 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:25:40,486 [INFO] pyvcham.lvc: Total parameters to optimize: 34
2026-02-03 21:25:40,486 [INFO] pyvcham.lvc: Optimizing mode 9...
2026-02-03 21:25:41,355 [INFO] pyvcham.lvc: Step 0, Loss: 0.078279
2026-02-03 21:25:41,492 [INFO] pyvcham.lvc: Step 100, Loss: 0.041125
2026-02-03 21:25:41,625 [INFO] pyvcham.lvc: Step 200, Loss: 0.040216
2026-02-03 21:25:41,758 [INFO] pyvcham.lvc: Step 300, Loss: 0.039841
2026-02-03 21:25:41,889 [INFO] pyvcham.lvc: Step 400, Loss: 0.039640
2026-02-03 21:25:42,014 [INFO] pyvcham.lvc: Step 500, Loss: 0.039422
2026-02-03 21:25:42,140 [INFO] pyvcham.lvc: Step 600, Loss: 0.039215
2026-02-03 21:25:42,273 [INFO] pyvcham.lvc: Step 700, Loss: 0.039029
2026-02-03 21:25:42,406 [INFO] pyvcham.lvc: Step 800, Loss: 0.038861
2026-02-03 21:25:42,531 [INFO] pyvcham.lvc: Step 900, Loss: 0.038688
2026-02-03 21:25:42,657 [INFO] pyvcham.lvc: Step 1000, Loss: 0.038520
2026-02-03 21:25:42,781 [INFO] pyvcham.lvc: Step 1100, Loss: 0.038348
2026-02-03 21:25:42,908 [INFO] pyvcham.lvc: Step 1200, Loss: 0.038198
2026-02-03 21:25:43,034 [INFO] pyvcham.lvc: Step 1300, Loss: 0.038102
2026-02-03 21:25:43,162 [INFO] pyvcham.lvc: Step 1400, Loss: 0.037093
2026-02-03 21:25:43,290 [INFO] pyvcham.lvc: Step 1500, Loss: 0.036903
2026-02-03 21:25:43,420 [INFO] pyvcham.lvc: Step 1600, Loss: 0.036767
2026-02-03 21:25:43,551 [INFO] pyvcham.lvc: Step 1700, Loss: 0.036857
2026-02-03 21:25:43,684 [INFO] pyvcham.lvc: Step 1800, Loss: 0.036636
2026-02-03 21:25:43,811 [INFO] pyvcham.lvc: Step 1900, Loss: 0.036697
2026-02-03 21:25:43,937 [INFO] pyvcham.lvc: Step 2000, Loss: 0.036453
2026-02-03 21:25:44,062 [INFO] pyvcham.lvc: Step 2100, Loss: 0.036323
2026-02-03 21:25:44,188 [INFO] pyvcham.lvc: Step 2200, Loss: 0.036199
2026-02-03 21:25:44,322 [INFO] pyvcham.lvc: Step 2300, Loss: 0.035953
2026-02-03 21:25:44,454 [INFO] pyvcham.lvc: Step 2400, Loss: 0.035836
2026-02-03 21:25:44,581 [INFO] pyvcham.lvc: Step 2500, Loss: 0.035724
2026-02-03 21:25:44,710 [INFO] pyvcham.lvc: Step 2600, Loss: 0.035620
2026-02-03 21:25:44,835 [INFO] pyvcham.lvc: Step 2700, Loss: 0.035516
2026-02-03 21:25:44,969 [INFO] pyvcham.lvc: Step 2800, Loss: 0.035416
2026-02-03 21:25:45,104 [INFO] pyvcham.lvc: Step 2900, Loss: 0.035322
2026-02-03 21:25:45,231 [INFO] pyvcham.lvc: Step 3000, Loss: 0.035233
2026-02-03 21:25:45,358 [INFO] pyvcham.lvc: Step 3100, Loss: 0.035156
2026-02-03 21:25:45,484 [INFO] pyvcham.lvc: Step 3200, Loss: 0.035065
2026-02-03 21:25:45,611 [INFO] pyvcham.lvc: Step 3300, Loss: 0.035013
2026-02-03 21:25:45,743 [INFO] pyvcham.lvc: Step 3400, Loss: 0.035074
2026-02-03 21:25:45,870 [INFO] pyvcham.lvc: Step 3500, Loss: 0.034974
2026-02-03 21:25:45,996 [INFO] pyvcham.lvc: Step 3600, Loss: 0.034820
2026-02-03 21:25:46,119 [INFO] pyvcham.lvc: Step 3700, Loss: 0.035264
2026-02-03 21:25:46,243 [INFO] pyvcham.lvc: Step 3800, Loss: 0.034688
2026-02-03 21:25:46,370 [INFO] pyvcham.lvc: Step 3900, Loss: 0.034613
2026-02-03 21:25:46,497 [INFO] pyvcham.lvc: Step 4000, Loss: 0.034549
2026-02-03 21:25:46,621 [INFO] pyvcham.lvc: Step 4100, Loss: 0.034494
2026-02-03 21:25:46,753 [INFO] pyvcham.lvc: Step 4200, Loss: 0.034431
2026-02-03 21:25:46,884 [INFO] pyvcham.lvc: Step 4300, Loss: 0.034447
2026-02-03 21:25:47,010 [INFO] pyvcham.lvc: Step 4400, Loss: 0.034330
2026-02-03 21:25:47,135 [INFO] pyvcham.lvc: Step 4500, Loss: 0.034273
2026-02-03 21:25:47,264 [INFO] pyvcham.lvc: Step 4600, Loss: 0.034257
2026-02-03 21:25:47,398 [INFO] pyvcham.lvc: Step 4700, Loss: 0.034172
2026-02-03 21:25:47,523 [INFO] pyvcham.lvc: Step 4800, Loss: 0.034141
2026-02-03 21:25:47,646 [INFO] pyvcham.lvc: Step 4900, Loss: 0.034077
2026-02-03 21:25:48,352 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.034033
2026-02-03 21:25:48,353 [INFO] pyvcham.lvc: Optimization completed in 7.28 seconds.
2026-02-03 21:25:48,355 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:48,355 [INFO] pyvcham.lvc: Normal mode: 10
2026-02-03 21:25:48,360 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:48,361 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:25:48,362 [INFO] pyvcham.lvc: Total parameters to optimize: 34
2026-02-03 21:25:48,362 [INFO] pyvcham.lvc: Optimizing mode 10...
2026-02-03 21:25:49,251 [INFO] pyvcham.lvc: Step 0, Loss: 0.058298
2026-02-03 21:25:49,387 [INFO] pyvcham.lvc: Step 100, Loss: 0.016706
2026-02-03 21:25:49,509 [INFO] pyvcham.lvc: Step 200, Loss: 0.016222
2026-02-03 21:25:49,626 [INFO] pyvcham.lvc: Step 300, Loss: 0.015836
2026-02-03 21:25:49,743 [INFO] pyvcham.lvc: Step 400, Loss: 0.015534
2026-02-03 21:25:49,862 [INFO] pyvcham.lvc: Step 500, Loss: 0.015287
2026-02-03 21:25:49,984 [INFO] pyvcham.lvc: Step 600, Loss: 0.015088
2026-02-03 21:25:50,103 [INFO] pyvcham.lvc: Step 700, Loss: 0.014910
2026-02-03 21:25:50,218 [INFO] pyvcham.lvc: Step 800, Loss: 0.014784
2026-02-03 21:25:50,334 [INFO] pyvcham.lvc: Step 900, Loss: 0.014657
2026-02-03 21:25:50,452 [INFO] pyvcham.lvc: Step 1000, Loss: 0.014543
2026-02-03 21:25:50,575 [INFO] pyvcham.lvc: Step 1100, Loss: 0.014437
2026-02-03 21:25:50,690 [INFO] pyvcham.lvc: Step 1200, Loss: 0.014360
2026-02-03 21:25:50,803 [INFO] pyvcham.lvc: Step 1300, Loss: 0.014294
2026-02-03 21:25:50,918 [INFO] pyvcham.lvc: Step 1400, Loss: 0.014264
2026-02-03 21:25:51,039 [INFO] pyvcham.lvc: Step 1500, Loss: 0.014192
2026-02-03 21:25:51,161 [INFO] pyvcham.lvc: Step 1600, Loss: 0.014159
2026-02-03 21:25:51,277 [INFO] pyvcham.lvc: Step 1700, Loss: 0.014119
2026-02-03 21:25:51,391 [INFO] pyvcham.lvc: Step 1800, Loss: 0.014072
2026-02-03 21:25:51,506 [INFO] pyvcham.lvc: Step 1900, Loss: 0.014032
2026-02-03 21:25:51,621 [INFO] pyvcham.lvc: Step 2000, Loss: 0.013998
2026-02-03 21:25:51,742 [INFO] pyvcham.lvc: Step 2100, Loss: 0.013960
2026-02-03 21:25:51,863 [INFO] pyvcham.lvc: Step 2200, Loss: 0.013932
2026-02-03 21:25:51,979 [INFO] pyvcham.lvc: Step 2300, Loss: 0.013905
2026-02-03 21:25:52,092 [INFO] pyvcham.lvc: Step 2400, Loss: 0.013868
2026-02-03 21:25:52,206 [INFO] pyvcham.lvc: Step 2500, Loss: 0.013802
2026-02-03 21:25:52,324 [INFO] pyvcham.lvc: Step 2600, Loss: 0.013782
2026-02-03 21:25:52,445 [INFO] pyvcham.lvc: Step 2700, Loss: 0.013733
2026-02-03 21:25:52,562 [INFO] pyvcham.lvc: Step 2800, Loss: 0.013703
2026-02-03 21:25:52,675 [INFO] pyvcham.lvc: Step 2900, Loss: 0.013640
2026-02-03 21:25:52,788 [INFO] pyvcham.lvc: Step 3000, Loss: 0.013602
2026-02-03 21:25:52,899 [INFO] pyvcham.lvc: Step 3100, Loss: 0.013640
2026-02-03 21:25:53,012 [INFO] pyvcham.lvc: Step 3200, Loss: 0.013466
2026-02-03 21:25:53,125 [INFO] pyvcham.lvc: Step 3300, Loss: 0.013440
2026-02-03 21:25:53,238 [INFO] pyvcham.lvc: Step 3400, Loss: 0.013403
2026-02-03 21:25:53,352 [INFO] pyvcham.lvc: Step 3500, Loss: 0.013374
2026-02-03 21:25:53,464 [INFO] pyvcham.lvc: Step 3600, Loss: 0.013348
2026-02-03 21:25:53,577 [INFO] pyvcham.lvc: Step 3700, Loss: 0.013313
2026-02-03 21:25:53,689 [INFO] pyvcham.lvc: Step 3800, Loss: 0.013306
2026-02-03 21:25:53,802 [INFO] pyvcham.lvc: Step 3900, Loss: 0.013249
2026-02-03 21:25:53,914 [INFO] pyvcham.lvc: Step 4000, Loss: 0.013241
2026-02-03 21:25:54,027 [INFO] pyvcham.lvc: Step 4100, Loss: 0.013209
2026-02-03 21:25:54,144 [INFO] pyvcham.lvc: Step 4200, Loss: 0.013164
2026-02-03 21:25:54,265 [INFO] pyvcham.lvc: Step 4300, Loss: 0.013160
2026-02-03 21:25:54,381 [INFO] pyvcham.lvc: Step 4400, Loss: 0.013126
2026-02-03 21:25:54,506 [INFO] pyvcham.lvc: Step 4500, Loss: 0.013092
2026-02-03 21:25:54,619 [INFO] pyvcham.lvc: Step 4600, Loss: 0.013063
2026-02-03 21:25:54,730 [INFO] pyvcham.lvc: Step 4700, Loss: 0.013043
2026-02-03 21:25:54,845 [INFO] pyvcham.lvc: Step 4800, Loss: 0.013011
2026-02-03 21:25:54,960 [INFO] pyvcham.lvc: Step 4900, Loss: 0.012982
2026-02-03 21:25:55,636 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.012957
2026-02-03 21:25:55,636 [INFO] pyvcham.lvc: Optimization completed in 6.71 seconds.
2026-02-03 21:25:55,638 [INFO] pyvcham.lvc:
----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:25:55,639 [INFO] pyvcham.lvc: Normal mode: 11
2026-02-03 21:25:55,643 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:25:55,644 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:25:55,644 [INFO] pyvcham.lvc: Total parameters to optimize: 27
2026-02-03 21:25:55,645 [INFO] pyvcham.lvc: Optimizing mode 11...
2026-02-03 21:25:56,453 [INFO] pyvcham.lvc: Step 0, Loss: 0.004573
2026-02-03 21:25:56,575 [INFO] pyvcham.lvc: Step 100, Loss: 0.004435
2026-02-03 21:25:56,683 [INFO] pyvcham.lvc: Step 200, Loss: 0.004311
2026-02-03 21:25:56,791 [INFO] pyvcham.lvc: Step 300, Loss: 0.004229
2026-02-03 21:25:56,903 [INFO] pyvcham.lvc: Step 400, Loss: 0.004164
2026-02-03 21:25:57,044 [INFO] pyvcham.lvc: Step 500, Loss: 0.004160
2026-02-03 21:25:57,147 [INFO] pyvcham.lvc: Step 600, Loss: 0.004157
2026-02-03 21:25:57,251 [INFO] pyvcham.lvc: Step 700, Loss: 0.004154
2026-02-03 21:25:57,353 [INFO] pyvcham.lvc: Step 800, Loss: 0.004151
2026-02-03 21:25:57,459 [INFO] pyvcham.lvc: Step 900, Loss: 0.004144
2026-02-03 21:25:57,569 [INFO] pyvcham.lvc: Step 1000, Loss: 0.004139
2026-02-03 21:25:57,673 [INFO] pyvcham.lvc: Step 1100, Loss: 0.004138
2026-02-03 21:25:57,776 [INFO] pyvcham.lvc: Step 1200, Loss: 0.004138
2026-02-03 21:25:57,878 [INFO] pyvcham.lvc: Step 1300, Loss: 0.004138
2026-02-03 21:25:57,983 [INFO] pyvcham.lvc: Step 1400, Loss: 0.004138
2026-02-03 21:25:58,026 [INFO] pyvcham.lvc: Early stopping triggered at step 1439 (no improvement for 150 steps). Best loss: 0.004136
2026-02-03 21:25:58,591 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.004136
2026-02-03 21:25:58,592 [INFO] pyvcham.lvc: Optimization completed in 2.38 seconds.
[8]:
# Adding the geometry of the system
# The geometry is provided in XYZ format. The file "test.xyz" contains the coordinates of the C2H2F2 molecule.
system.add_geometry("test.xyz")
2026-02-03 21:25:58,601 [INFO] pyvcham.vcham_system: Geometry is not centered. Centering...
2026-02-03 21:25:58,601 [INFO] pyvcham.vcham_system: Reference geometry updated.
[9]:
#
def generate_dipole_matrix(n_states):
matrix = []
for i in range(n_states):
row = []
for j in range(n_states):
value = np.array([(i+1)*.1, (i+1)*.01, (i+1)*.001])
row.append(value)
matrix.append(row)
return matrix
# Create dipole matrix
dipole_matrix = generate_dipole_matrix(system.number_states)
dipole_matrix = np.array(dipole_matrix)
system.add_dipole_matrix(dipole_matrix)
system.add_geometry("c2h2f2_abinitio/c2h2f2_ref_geo.xyz")
2026-02-03 21:25:58,608 [INFO] pyvcham.vcham_system: Dipole matrix updated.
2026-02-03 21:25:58,609 [INFO] pyvcham.vcham_system: Geometry is not centered. Centering...
2026-02-03 21:25:58,610 [INFO] pyvcham.vcham_system: Reference geometry updated.
[11]:
# General data of the system with the calculation information
general_data = {
"molecule": "fluoroacetylene (FCCH)",
"calculation_info": "core-excited states at carbon K-edge",
"method": "CVS-ADC(3)",
"basis": "cc-pcvtz + rydberg(8s,8p,8d)",
"software": "adc-connect",
"additional_info": "No coupling among GS and other states"
}
# Save the system to a JSON file
filename_json = "results/c2h2f2.json"
pyvcham.utils.VCSystem_to_json(system, general_data, filename_json,rewrite=True)
# Convert the JSON file to MCTDH operator file
outfile = "results/c2h2f2.op"
pyvcham.utils.json_to_mctdh(filename_json, outfile)
2026-02-03 21:26:22,573 [INFO] pyvcham.utils: Warning: Overwriting existing file results/c2h2f2.json
2026-02-03 21:26:22,577 [INFO] pyvcham.utils: Data successfully saved to results/c2h2f2.json
2026-02-03 21:26:22,580 [INFO] pyvcham.utils: No interactions found.
2026-02-03 21:26:22,580 [INFO] pyvcham.utils: MCTDH operator file successfully written to: results/c2h2f2.op