\(\text{FCCH Model}\)

[1]:
import numpy as np
import matplotlib.pyplot as plt
import pickle
import pyvcham
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:19:14.041936: 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:19:17,504 [INFO] root: Logging configuration successfully loaded.
[2]:
NUMBER_STATES = 9
NUMBER_NORMAL_MODES = 7

# Load data
gs_min = -np.genfromtxt('fcch_abinitio/gs_v1.dat').min()
all_q = []
all_data = []

for normal_mode in range(1, NUMBER_NORMAL_MODES + 1):
    if normal_mode in [2, 4]:
        normal_mode -= 1

    foo = []
    fooq = []

    for root in range(NUMBER_STATES):
        if root == 0:
            filename = f'fcch_abinitio/gs_v{normal_mode}.dat'
            data = np.genfromtxt(filename)
            q_int, energy = data[:, 0], data[:, 1] + gs_min

            if normal_mode > 4:
                filename = f'fcch_abinitio/gs_v{normal_mode}.dat_int'
                data = np.genfromtxt(filename)
                energy = data[:, 1] + gs_min

            energy *= pyvcham.constants.AU_TO_EV
            q_int /= 10

            if normal_mode > 4:
                q_int *= 10

        elif 0 < root < 10:
            filename = f'fcch_abinitio/ce{root}_v{normal_mode}.dat'
            gs_file = f'fcch_abinitio/gs_v{normal_mode}.dat'

            if normal_mode > 4:
                gs_file = f'fcch_abinitio/gs_v{normal_mode}.dat_int'
                filename = f'fcch_abinitio/ce{root}_v{normal_mode}.dat_int'

            data = np.genfromtxt(filename)
            datags = np.genfromtxt(gs_file)
            q_int_gs, energy_gs = datags[:, 0], datags[:, 1]
            q_int, energy = data[:, 0], (data[:, 1] + datags[:, 1])

            q_int /= 10

            if normal_mode > 4:
                energy = data[:, 1]
                q_int *= 10

            energy += gs_min
            energy *= pyvcham.constants.AU_TO_EV

        idx = 5
        if normal_mode < 4:
            idx = 22
        elif normal_mode == 7:
            idx = 15

        foo.append(energy[idx:-idx])

    all_q.append(q_int[idx:-idx])
    all_data.append(foo)

[3]:
# Plot ab initio data for each normal mode.
for mode_idx in range(NUMBER_NORMAL_MODES):
    plt.figure(figsize=(8, 5))

    # Plot only excited states (i.e., states with index > 0)
    for state_idx in range(1, NUMBER_STATES):
        energies = np.array(all_data[mode_idx][state_idx])
        plt.scatter(all_q[mode_idx], energies, s=10.0, label=f"State {state_idx}")

    plt.xlabel(f"Q_{mode_idx}")
    plt.ylabel("Energy [eV]")
    plt.title(f"Normal Mode {mode_idx} Ab initio Data")
    plt.legend(fontsize=8)
    plt.grid(True)
    plt.show()
../_images/Examples_fcch_model_3_0.png
../_images/Examples_fcch_model_3_1.png
../_images/Examples_fcch_model_3_2.png
../_images/Examples_fcch_model_3_3.png
../_images/Examples_fcch_model_3_4.png
../_images/Examples_fcch_model_3_5.png
../_images/Examples_fcch_model_3_6.png
[4]:
# Define vibrational frequencies (in cm⁻¹)
vib_freq = np.array([
    368.88149373, 368.88149388, 588.54489822, 588.54489823,
    1071.70323932, 2280.7863525, 3481.33324747
])*pyvcham.constants.CM1_TO_AU* pyvcham.constants.AU_TO_EV  # Convert to eV

# Create the VCSystem object for HCCF
system = pyvcham.VCSystem(
    vc_type="linear",
    units="eV",
    number_normal_modes=7,   # 3N-5 vibrational modes
    number_states=9,         # Ground state + 8 core-excited states
    coupling_with_gs=False,  # For core-excitation, GS-CE couplings are not considered (they are far apart in energy)
    symmetry_point_group="C2v",
    symmetry_states=["A1", "B2", "B1", "A1", "B2", "B1", "A1", "A1", "A1"],
    symmetry_modes=["B1", "B2", "B1", "B2", "A1", "A1", "A1"],
    vib_freq=vib_freq,
    displacement_vector=all_q,
    database_abinitio=all_data
)
2026-02-03 21:19:18,746 [INFO] pyvcham.vcham_system: Computed vertical energy shifts: [  0.         288.40749632 288.40749632 289.67064887 290.27800701
 290.27800701 290.59991771 291.10060721 291.49898191]
[5]:
# Specify the diabatic function type for each normal mode
mode_types = ["quartic", "quartic","quartic", "quartic","antimorse", "morse","morse"]

# For each normal mode, replicate the chosen function for all electronic states
diabatic_functions_per_mode = [
    [mode_type] * system.number_states for mode_type in mode_types
]

# Add the diabatic functions to the system
system.diab_funct = diabatic_functions_per_mode
[6]:
# Load a precomputed list of initial guesses for optimization parameters
with open('fcch_abinitio/list_opt_params.pkl', 'rb') as f:
    list_opt_params = pickle.load(f)
[7]:
nepochs = 10000
for mode in range(system.number_normal_modes):
    model = pyvcham.LVCHam(normal_mode=mode,VCSystem=system,nepochs=nepochs,funct_guess=list_opt_params[mode])
    model.initialize_params(lambda_guess=0.1, kappa_guess=0.1)
    model.initialize_loss_function()
    model.optimize()
2026-02-03 21:19:18,780 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:18,780 [INFO] pyvcham.lvc: Normal mode: 0
2026-02-03 21:19:18,788 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:18,789 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:19:18,791 [INFO] pyvcham.lvc: Total parameters to optimize: 26
2026-02-03 21:19:18,792 [INFO] pyvcham.lvc: Optimizing mode 0...
<unknown>:3: SyntaxWarning: invalid escape sequence '\c'
2026-02-03 21:19:20,133 [INFO] pyvcham.lvc: Step 0, Loss: 0.035733
2026-02-03 21:19:20,249 [INFO] pyvcham.lvc: Step 100, Loss: 0.007170
2026-02-03 21:19:20,350 [INFO] pyvcham.lvc: Step 200, Loss: 0.006663
2026-02-03 21:19:20,451 [INFO] pyvcham.lvc: Step 300, Loss: 0.006560
2026-02-03 21:19:20,548 [INFO] pyvcham.lvc: Step 400, Loss: 0.006523
2026-02-03 21:19:20,645 [INFO] pyvcham.lvc: Step 500, Loss: 0.006510
2026-02-03 21:19:20,740 [INFO] pyvcham.lvc: Step 600, Loss: 0.006507
2026-02-03 21:19:20,835 [INFO] pyvcham.lvc: Step 700, Loss: 0.006504
2026-02-03 21:19:20,930 [INFO] pyvcham.lvc: Step 800, Loss: 0.006501
2026-02-03 21:19:21,026 [INFO] pyvcham.lvc: Step 900, Loss: 0.006499
2026-02-03 21:19:21,122 [INFO] pyvcham.lvc: Step 1000, Loss: 0.006495
2026-02-03 21:19:21,219 [INFO] pyvcham.lvc: Step 1100, Loss: 0.006489
2026-02-03 21:19:21,314 [INFO] pyvcham.lvc: Step 1200, Loss: 0.006480
2026-02-03 21:19:21,409 [INFO] pyvcham.lvc: Step 1300, Loss: 0.006470
2026-02-03 21:19:21,505 [INFO] pyvcham.lvc: Step 1400, Loss: 0.006461
2026-02-03 21:19:21,600 [INFO] pyvcham.lvc: Step 1500, Loss: 0.006455
2026-02-03 21:19:21,694 [INFO] pyvcham.lvc: Step 1600, Loss: 0.006456
2026-02-03 21:19:21,787 [INFO] pyvcham.lvc: Step 1700, Loss: 0.006456
2026-02-03 21:19:21,868 [INFO] pyvcham.lvc: Early stopping triggered at step 1787 (no improvement for 150 steps). Best loss: 0.006454
../_images/Examples_fcch_model_7_1.png
../_images/Examples_fcch_model_7_2.png
../_images/Examples_fcch_model_7_3.png
../_images/Examples_fcch_model_7_4.png
../_images/Examples_fcch_model_7_5.png
2026-02-03 21:19:22,400 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.006454
2026-02-03 21:19:22,401 [INFO] pyvcham.lvc: Optimization completed in 3.08 seconds.
2026-02-03 21:19:22,404 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:22,405 [INFO] pyvcham.lvc: Normal mode: 1
2026-02-03 21:19:22,408 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:22,409 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:19:22,409 [INFO] pyvcham.lvc: Total parameters to optimize: 26
2026-02-03 21:19:22,410 [INFO] pyvcham.lvc: Optimizing mode 1...
2026-02-03 21:19:23,150 [INFO] pyvcham.lvc: Step 0, Loss: 0.033077
2026-02-03 21:19:23,267 [INFO] pyvcham.lvc: Step 100, Loss: 0.005592
2026-02-03 21:19:23,372 [INFO] pyvcham.lvc: Step 200, Loss: 0.005101
2026-02-03 21:19:23,475 [INFO] pyvcham.lvc: Step 300, Loss: 0.004953
2026-02-03 21:19:23,577 [INFO] pyvcham.lvc: Step 400, Loss: 0.004681
2026-02-03 21:19:23,680 [INFO] pyvcham.lvc: Step 500, Loss: 0.004162
2026-02-03 21:19:23,784 [INFO] pyvcham.lvc: Step 600, Loss: 0.003896
2026-02-03 21:19:23,887 [INFO] pyvcham.lvc: Step 700, Loss: 0.003760
2026-02-03 21:19:23,988 [INFO] pyvcham.lvc: Step 800, Loss: 0.003738
2026-02-03 21:19:24,089 [INFO] pyvcham.lvc: Step 900, Loss: 0.003704
2026-02-03 21:19:24,191 [INFO] pyvcham.lvc: Step 1000, Loss: 0.003642
2026-02-03 21:19:24,293 [INFO] pyvcham.lvc: Step 1100, Loss: 0.003578
2026-02-03 21:19:24,393 [INFO] pyvcham.lvc: Step 1200, Loss: 0.003554
2026-02-03 21:19:24,492 [INFO] pyvcham.lvc: Step 1300, Loss: 0.003548
2026-02-03 21:19:24,590 [INFO] pyvcham.lvc: Step 1400, Loss: 0.003544
2026-02-03 21:19:24,689 [INFO] pyvcham.lvc: Step 1500, Loss: 0.003544
2026-02-03 21:19:24,787 [INFO] pyvcham.lvc: Step 1600, Loss: 0.003543
2026-02-03 21:19:24,884 [INFO] pyvcham.lvc: Step 1700, Loss: 0.003542
2026-02-03 21:19:24,950 [INFO] pyvcham.lvc: Early stopping triggered at step 1767 (no improvement for 150 steps). Best loss: 0.003541
../_images/Examples_fcch_model_7_7.png
../_images/Examples_fcch_model_7_8.png
../_images/Examples_fcch_model_7_9.png
../_images/Examples_fcch_model_7_10.png
../_images/Examples_fcch_model_7_11.png
2026-02-03 21:19:25,463 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.003541
2026-02-03 21:19:25,463 [INFO] pyvcham.lvc: Optimization completed in 2.54 seconds.
2026-02-03 21:19:25,465 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:25,466 [INFO] pyvcham.lvc: Normal mode: 2
2026-02-03 21:19:25,470 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:25,471 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:19:25,472 [INFO] pyvcham.lvc: Total parameters to optimize: 26
2026-02-03 21:19:25,472 [INFO] pyvcham.lvc: Optimizing mode 2...
2026-02-03 21:19:26,228 [INFO] pyvcham.lvc: Step 0, Loss: 0.028475
2026-02-03 21:19:26,346 [INFO] pyvcham.lvc: Step 100, Loss: 0.005885
2026-02-03 21:19:26,447 [INFO] pyvcham.lvc: Step 200, Loss: 0.004357
2026-02-03 21:19:26,548 [INFO] pyvcham.lvc: Step 300, Loss: 0.003656
2026-02-03 21:19:26,649 [INFO] pyvcham.lvc: Step 400, Loss: 0.003407
2026-02-03 21:19:26,750 [INFO] pyvcham.lvc: Step 500, Loss: 0.003334
2026-02-03 21:19:26,847 [INFO] pyvcham.lvc: Step 600, Loss: 0.003320
2026-02-03 21:19:26,942 [INFO] pyvcham.lvc: Step 700, Loss: 0.003317
2026-02-03 21:19:27,038 [INFO] pyvcham.lvc: Step 800, Loss: 0.003317
2026-02-03 21:19:27,132 [INFO] pyvcham.lvc: Step 900, Loss: 0.003317
2026-02-03 21:19:27,227 [INFO] pyvcham.lvc: Step 1000, Loss: 0.003315
2026-02-03 21:19:27,323 [INFO] pyvcham.lvc: Step 1100, Loss: 0.003316
2026-02-03 21:19:27,326 [INFO] pyvcham.lvc: Early stopping triggered at step 1103 (no improvement for 150 steps). Best loss: 0.003315
../_images/Examples_fcch_model_7_13.png
../_images/Examples_fcch_model_7_14.png
../_images/Examples_fcch_model_7_15.png
../_images/Examples_fcch_model_7_16.png
../_images/Examples_fcch_model_7_17.png
2026-02-03 21:19:27,937 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.003315
2026-02-03 21:19:27,937 [INFO] pyvcham.lvc: Optimization completed in 1.85 seconds.
2026-02-03 21:19:27,939 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:27,940 [INFO] pyvcham.lvc: Normal mode: 3
2026-02-03 21:19:27,943 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:27,944 [INFO] pyvcham.lvc: n_var_list (non-JT): [2, 2, 2, 2, 2, 2, 2, 2, 2]
2026-02-03 21:19:27,944 [INFO] pyvcham.lvc: Total parameters to optimize: 26
2026-02-03 21:19:27,945 [INFO] pyvcham.lvc: Optimizing mode 3...
2026-02-03 21:19:28,683 [INFO] pyvcham.lvc: Step 0, Loss: 0.514786
2026-02-03 21:19:28,805 [INFO] pyvcham.lvc: Step 100, Loss: 0.020042
2026-02-03 21:19:28,909 [INFO] pyvcham.lvc: Step 200, Loss: 0.012371
2026-02-03 21:19:29,048 [INFO] pyvcham.lvc: Step 300, Loss: 0.007689
2026-02-03 21:19:29,151 [INFO] pyvcham.lvc: Step 400, Loss: 0.005314
2026-02-03 21:19:29,254 [INFO] pyvcham.lvc: Step 500, Loss: 0.004310
2026-02-03 21:19:29,356 [INFO] pyvcham.lvc: Step 600, Loss: 0.003859
2026-02-03 21:19:29,458 [INFO] pyvcham.lvc: Step 700, Loss: 0.003679
2026-02-03 21:19:29,558 [INFO] pyvcham.lvc: Step 800, Loss: 0.003606
2026-02-03 21:19:29,657 [INFO] pyvcham.lvc: Step 900, Loss: 0.003576
2026-02-03 21:19:29,756 [INFO] pyvcham.lvc: Step 1000, Loss: 0.003559
2026-02-03 21:19:29,854 [INFO] pyvcham.lvc: Step 1100, Loss: 0.003552
2026-02-03 21:19:29,952 [INFO] pyvcham.lvc: Step 1200, Loss: 0.003544
2026-02-03 21:19:30,049 [INFO] pyvcham.lvc: Step 1300, Loss: 0.003540
2026-02-03 21:19:30,146 [INFO] pyvcham.lvc: Step 1400, Loss: 0.003534
2026-02-03 21:19:30,243 [INFO] pyvcham.lvc: Step 1500, Loss: 0.003530
2026-02-03 21:19:30,341 [INFO] pyvcham.lvc: Step 1600, Loss: 0.003525
2026-02-03 21:19:30,438 [INFO] pyvcham.lvc: Step 1700, Loss: 0.003522
2026-02-03 21:19:30,536 [INFO] pyvcham.lvc: Step 1800, Loss: 0.003519
2026-02-03 21:19:30,632 [INFO] pyvcham.lvc: Step 1900, Loss: 0.003515
2026-02-03 21:19:30,728 [INFO] pyvcham.lvc: Step 2000, Loss: 0.003512
2026-02-03 21:19:30,825 [INFO] pyvcham.lvc: Step 2100, Loss: 0.003510
2026-02-03 21:19:30,922 [INFO] pyvcham.lvc: Step 2200, Loss: 0.003507
2026-02-03 21:19:31,019 [INFO] pyvcham.lvc: Step 2300, Loss: 0.003504
2026-02-03 21:19:31,117 [INFO] pyvcham.lvc: Step 2400, Loss: 0.003502
2026-02-03 21:19:31,214 [INFO] pyvcham.lvc: Step 2500, Loss: 0.003500
2026-02-03 21:19:31,310 [INFO] pyvcham.lvc: Step 2600, Loss: 0.003499
2026-02-03 21:19:31,406 [INFO] pyvcham.lvc: Step 2700, Loss: 0.003499
2026-02-03 21:19:31,502 [INFO] pyvcham.lvc: Step 2800, Loss: 0.003497
2026-02-03 21:19:31,598 [INFO] pyvcham.lvc: Step 2900, Loss: 0.003495
2026-02-03 21:19:31,695 [INFO] pyvcham.lvc: Step 3000, Loss: 0.003495
2026-02-03 21:19:31,792 [INFO] pyvcham.lvc: Step 3100, Loss: 0.003494
2026-02-03 21:19:31,888 [INFO] pyvcham.lvc: Step 3200, Loss: 0.003494
2026-02-03 21:19:31,986 [INFO] pyvcham.lvc: Step 3300, Loss: 0.003492
2026-02-03 21:19:32,083 [INFO] pyvcham.lvc: Step 3400, Loss: 0.003493
2026-02-03 21:19:32,086 [INFO] pyvcham.lvc: Early stopping triggered at step 3403 (no improvement for 150 steps). Best loss: 0.003491
../_images/Examples_fcch_model_7_19.png
../_images/Examples_fcch_model_7_20.png
../_images/Examples_fcch_model_7_21.png
../_images/Examples_fcch_model_7_22.png
../_images/Examples_fcch_model_7_23.png
2026-02-03 21:19:32,599 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.003491
2026-02-03 21:19:32,600 [INFO] pyvcham.lvc: Optimization completed in 4.14 seconds.
2026-02-03 21:19:32,602 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:32,602 [INFO] pyvcham.lvc: Normal mode: 4
2026-02-03 21:19:32,606 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:32,606 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:19:32,608 [INFO] pyvcham.lvc: Total parameters to optimize: 35
2026-02-03 21:19:32,609 [INFO] pyvcham.lvc: Optimizing mode 4...
2026-02-03 21:19:33,505 [INFO] pyvcham.lvc: Step 0, Loss: 0.125460
2026-02-03 21:19:33,657 [INFO] pyvcham.lvc: Step 100, Loss: 0.018662
2026-02-03 21:19:33,795 [INFO] pyvcham.lvc: Step 200, Loss: 0.016610
2026-02-03 21:19:33,932 [INFO] pyvcham.lvc: Step 300, Loss: 0.015577
2026-02-03 21:19:34,068 [INFO] pyvcham.lvc: Step 400, Loss: 0.014900
2026-02-03 21:19:34,205 [INFO] pyvcham.lvc: Step 500, Loss: 0.014454
2026-02-03 21:19:34,342 [INFO] pyvcham.lvc: Step 600, Loss: 0.014146
2026-02-03 21:19:34,477 [INFO] pyvcham.lvc: Step 700, Loss: 0.013908
2026-02-03 21:19:34,613 [INFO] pyvcham.lvc: Step 800, Loss: 0.013700
2026-02-03 21:19:34,748 [INFO] pyvcham.lvc: Step 900, Loss: 0.013523
2026-02-03 21:19:34,885 [INFO] pyvcham.lvc: Step 1000, Loss: 0.013331
2026-02-03 21:19:35,023 [INFO] pyvcham.lvc: Step 1100, Loss: 0.013159
2026-02-03 21:19:35,158 [INFO] pyvcham.lvc: Step 1200, Loss: 0.013012
2026-02-03 21:19:35,294 [INFO] pyvcham.lvc: Step 1300, Loss: 0.012853
2026-02-03 21:19:35,427 [INFO] pyvcham.lvc: Step 1400, Loss: 0.012697
2026-02-03 21:19:35,562 [INFO] pyvcham.lvc: Step 1500, Loss: 0.012541
2026-02-03 21:19:35,698 [INFO] pyvcham.lvc: Step 1600, Loss: 0.012397
2026-02-03 21:19:35,831 [INFO] pyvcham.lvc: Step 1700, Loss: 0.012261
2026-02-03 21:19:35,966 [INFO] pyvcham.lvc: Step 1800, Loss: 0.012129
2026-02-03 21:19:36,099 [INFO] pyvcham.lvc: Step 1900, Loss: 0.012012
2026-02-03 21:19:36,236 [INFO] pyvcham.lvc: Step 2000, Loss: 0.011879
2026-02-03 21:19:36,371 [INFO] pyvcham.lvc: Step 2100, Loss: 0.011768
2026-02-03 21:19:36,504 [INFO] pyvcham.lvc: Step 2200, Loss: 0.011647
2026-02-03 21:19:36,638 [INFO] pyvcham.lvc: Step 2300, Loss: 0.011535
2026-02-03 21:19:36,771 [INFO] pyvcham.lvc: Step 2400, Loss: 0.011426
2026-02-03 21:19:36,904 [INFO] pyvcham.lvc: Step 2500, Loss: 0.011322
2026-02-03 21:19:37,038 [INFO] pyvcham.lvc: Step 2600, Loss: 0.011211
2026-02-03 21:19:37,170 [INFO] pyvcham.lvc: Step 2700, Loss: 0.011138
2026-02-03 21:19:37,301 [INFO] pyvcham.lvc: Step 2800, Loss: 0.011005
2026-02-03 21:19:37,433 [INFO] pyvcham.lvc: Step 2900, Loss: 0.010907
2026-02-03 21:19:37,568 [INFO] pyvcham.lvc: Step 3000, Loss: 0.010813
2026-02-03 21:19:37,699 [INFO] pyvcham.lvc: Step 3100, Loss: 0.010728
2026-02-03 21:19:37,834 [INFO] pyvcham.lvc: Step 3200, Loss: 0.010641
2026-02-03 21:19:37,969 [INFO] pyvcham.lvc: Step 3300, Loss: 0.010562
2026-02-03 21:19:38,102 [INFO] pyvcham.lvc: Step 3400, Loss: 0.010484
2026-02-03 21:19:38,234 [INFO] pyvcham.lvc: Step 3500, Loss: 0.010409
2026-02-03 21:19:38,368 [INFO] pyvcham.lvc: Step 3600, Loss: 0.010336
2026-02-03 21:19:38,500 [INFO] pyvcham.lvc: Step 3700, Loss: 0.010268
2026-02-03 21:19:38,632 [INFO] pyvcham.lvc: Step 3800, Loss: 0.010187
2026-02-03 21:19:38,762 [INFO] pyvcham.lvc: Step 3900, Loss: 0.010132
2026-02-03 21:19:38,895 [INFO] pyvcham.lvc: Step 4000, Loss: 0.010042
2026-02-03 21:19:39,029 [INFO] pyvcham.lvc: Step 4100, Loss: 0.009979
2026-02-03 21:19:39,161 [INFO] pyvcham.lvc: Step 4200, Loss: 0.009921
2026-02-03 21:19:39,294 [INFO] pyvcham.lvc: Step 4300, Loss: 0.009867
2026-02-03 21:19:39,427 [INFO] pyvcham.lvc: Step 4400, Loss: 0.009820
2026-02-03 21:19:39,558 [INFO] pyvcham.lvc: Step 4500, Loss: 0.009778
2026-02-03 21:19:39,689 [INFO] pyvcham.lvc: Step 4600, Loss: 0.009754
2026-02-03 21:19:39,818 [INFO] pyvcham.lvc: Step 4700, Loss: 0.009722
2026-02-03 21:19:39,948 [INFO] pyvcham.lvc: Step 4800, Loss: 0.009656
2026-02-03 21:19:40,079 [INFO] pyvcham.lvc: Step 4900, Loss: 0.009629
2026-02-03 21:19:40,210 [INFO] pyvcham.lvc: Step 5000, Loss: 0.009592
2026-02-03 21:19:40,340 [INFO] pyvcham.lvc: Step 5100, Loss: 0.009569
2026-02-03 21:19:40,470 [INFO] pyvcham.lvc: Step 5200, Loss: 0.009548
2026-02-03 21:19:40,601 [INFO] pyvcham.lvc: Step 5300, Loss: 0.009529
2026-02-03 21:19:40,731 [INFO] pyvcham.lvc: Step 5400, Loss: 0.009500
2026-02-03 21:19:40,861 [INFO] pyvcham.lvc: Step 5500, Loss: 0.009490
2026-02-03 21:19:40,988 [INFO] pyvcham.lvc: Step 5600, Loss: 0.009465
2026-02-03 21:19:41,118 [INFO] pyvcham.lvc: Step 5700, Loss: 0.009445
2026-02-03 21:19:41,249 [INFO] pyvcham.lvc: Step 5800, Loss: 0.009432
2026-02-03 21:19:41,378 [INFO] pyvcham.lvc: Step 5900, Loss: 0.009420
2026-02-03 21:19:41,507 [INFO] pyvcham.lvc: Step 6000, Loss: 0.009472
2026-02-03 21:19:41,636 [INFO] pyvcham.lvc: Step 6100, Loss: 0.009401
2026-02-03 21:19:41,768 [INFO] pyvcham.lvc: Step 6200, Loss: 0.009392
2026-02-03 21:19:41,900 [INFO] pyvcham.lvc: Step 6300, Loss: 0.009388
2026-02-03 21:19:42,031 [INFO] pyvcham.lvc: Step 6400, Loss: 0.009375
2026-02-03 21:19:42,162 [INFO] pyvcham.lvc: Step 6500, Loss: 0.009367
2026-02-03 21:19:42,292 [INFO] pyvcham.lvc: Step 6600, Loss: 0.009360
2026-02-03 21:19:42,422 [INFO] pyvcham.lvc: Step 6700, Loss: 0.009353
2026-02-03 21:19:42,552 [INFO] pyvcham.lvc: Step 6800, Loss: 0.009346
2026-02-03 21:19:42,681 [INFO] pyvcham.lvc: Step 6900, Loss: 0.009342
2026-02-03 21:19:42,812 [INFO] pyvcham.lvc: Step 7000, Loss: 0.009332
2026-02-03 21:19:42,944 [INFO] pyvcham.lvc: Step 7100, Loss: 0.009326
2026-02-03 21:19:43,074 [INFO] pyvcham.lvc: Step 7200, Loss: 0.009454
2026-02-03 21:19:43,205 [INFO] pyvcham.lvc: Step 7300, Loss: 0.009313
2026-02-03 21:19:43,336 [INFO] pyvcham.lvc: Step 7400, Loss: 0.009306
2026-02-03 21:19:43,467 [INFO] pyvcham.lvc: Step 7500, Loss: 0.009301
2026-02-03 21:19:43,598 [INFO] pyvcham.lvc: Step 7600, Loss: 0.009296
2026-02-03 21:19:43,729 [INFO] pyvcham.lvc: Step 7700, Loss: 0.009297
2026-02-03 21:19:43,860 [INFO] pyvcham.lvc: Step 7800, Loss: 0.009290
2026-02-03 21:19:43,992 [INFO] pyvcham.lvc: Step 7900, Loss: 0.009283
2026-02-03 21:19:44,123 [INFO] pyvcham.lvc: Step 8000, Loss: 0.009273
2026-02-03 21:19:44,254 [INFO] pyvcham.lvc: Step 8100, Loss: 0.009273
2026-02-03 21:19:44,385 [INFO] pyvcham.lvc: Step 8200, Loss: 0.009296
2026-02-03 21:19:44,516 [INFO] pyvcham.lvc: Step 8300, Loss: 0.009257
2026-02-03 21:19:44,647 [INFO] pyvcham.lvc: Step 8400, Loss: 0.009252
2026-02-03 21:19:44,778 [INFO] pyvcham.lvc: Step 8500, Loss: 0.009247
2026-02-03 21:19:44,909 [INFO] pyvcham.lvc: Step 8600, Loss: 0.009242
2026-02-03 21:19:45,040 [INFO] pyvcham.lvc: Step 8700, Loss: 0.009238
2026-02-03 21:19:45,172 [INFO] pyvcham.lvc: Step 8800, Loss: 0.009232
2026-02-03 21:19:45,303 [INFO] pyvcham.lvc: Step 8900, Loss: 0.009230
2026-02-03 21:19:45,434 [INFO] pyvcham.lvc: Step 9000, Loss: 0.009223
2026-02-03 21:19:45,564 [INFO] pyvcham.lvc: Step 9100, Loss: 0.009221
2026-02-03 21:19:45,695 [INFO] pyvcham.lvc: Step 9200, Loss: 0.009224
2026-02-03 21:19:45,826 [INFO] pyvcham.lvc: Step 9300, Loss: 0.009218
2026-02-03 21:19:45,956 [INFO] pyvcham.lvc: Step 9400, Loss: 0.009210
2026-02-03 21:19:46,088 [INFO] pyvcham.lvc: Step 9500, Loss: 0.009200
2026-02-03 21:19:46,218 [INFO] pyvcham.lvc: Step 9600, Loss: 0.009221
2026-02-03 21:19:46,348 [INFO] pyvcham.lvc: Step 9700, Loss: 0.009190
2026-02-03 21:19:46,481 [INFO] pyvcham.lvc: Step 9800, Loss: 0.009185
2026-02-03 21:19:46,611 [INFO] pyvcham.lvc: Step 9900, Loss: 0.009180
../_images/Examples_fcch_model_7_25.png
../_images/Examples_fcch_model_7_26.png
../_images/Examples_fcch_model_7_27.png
../_images/Examples_fcch_model_7_28.png
../_images/Examples_fcch_model_7_29.png
2026-02-03 21:19:47,250 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.009176
2026-02-03 21:19:47,250 [INFO] pyvcham.lvc: Optimization completed in 14.13 seconds.
2026-02-03 21:19:47,252 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:47,253 [INFO] pyvcham.lvc: Normal mode: 5
2026-02-03 21:19:47,257 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:47,258 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:19:47,258 [INFO] pyvcham.lvc: Total parameters to optimize: 35
2026-02-03 21:19:47,259 [INFO] pyvcham.lvc: Optimizing mode 5...
2026-02-03 21:19:48,046 [INFO] pyvcham.lvc: Step 0, Loss: 0.199748
2026-02-03 21:19:48,194 [INFO] pyvcham.lvc: Step 100, Loss: 0.061166
2026-02-03 21:19:48,327 [INFO] pyvcham.lvc: Step 200, Loss: 0.057678
2026-02-03 21:19:48,459 [INFO] pyvcham.lvc: Step 300, Loss: 0.055308
2026-02-03 21:19:48,590 [INFO] pyvcham.lvc: Step 400, Loss: 0.053632
2026-02-03 21:19:48,720 [INFO] pyvcham.lvc: Step 500, Loss: 0.052496
2026-02-03 21:19:48,849 [INFO] pyvcham.lvc: Step 600, Loss: 0.051676
2026-02-03 21:19:48,978 [INFO] pyvcham.lvc: Step 700, Loss: 0.051600
2026-02-03 21:19:49,106 [INFO] pyvcham.lvc: Step 800, Loss: 0.051552
2026-02-03 21:19:49,234 [INFO] pyvcham.lvc: Step 900, Loss: 0.051373
2026-02-03 21:19:49,361 [INFO] pyvcham.lvc: Step 1000, Loss: 0.051141
2026-02-03 21:19:49,492 [INFO] pyvcham.lvc: Step 1100, Loss: 0.050994
2026-02-03 21:19:49,623 [INFO] pyvcham.lvc: Step 1200, Loss: 0.050866
2026-02-03 21:19:49,753 [INFO] pyvcham.lvc: Step 1300, Loss: 0.050763
2026-02-03 21:19:49,883 [INFO] pyvcham.lvc: Step 1400, Loss: 0.050621
2026-02-03 21:19:50,013 [INFO] pyvcham.lvc: Step 1500, Loss: 0.050562
2026-02-03 21:19:50,143 [INFO] pyvcham.lvc: Step 1600, Loss: 0.050662
2026-02-03 21:19:50,273 [INFO] pyvcham.lvc: Step 1700, Loss: 0.050475
2026-02-03 21:19:50,402 [INFO] pyvcham.lvc: Step 1800, Loss: 0.050333
2026-02-03 21:19:50,533 [INFO] pyvcham.lvc: Step 1900, Loss: 0.050309
2026-02-03 21:19:50,662 [INFO] pyvcham.lvc: Step 2000, Loss: 0.050143
2026-02-03 21:19:50,795 [INFO] pyvcham.lvc: Step 2100, Loss: 0.050042
2026-02-03 21:19:50,927 [INFO] pyvcham.lvc: Step 2200, Loss: 0.049966
2026-02-03 21:19:51,058 [INFO] pyvcham.lvc: Step 2300, Loss: 0.049867
2026-02-03 21:19:51,224 [INFO] pyvcham.lvc: Step 2400, Loss: 0.049788
2026-02-03 21:19:51,354 [INFO] pyvcham.lvc: Step 2500, Loss: 0.049764
2026-02-03 21:19:51,486 [INFO] pyvcham.lvc: Step 2600, Loss: 0.050112
2026-02-03 21:19:51,614 [INFO] pyvcham.lvc: Step 2700, Loss: 0.049653
2026-02-03 21:19:51,744 [INFO] pyvcham.lvc: Step 2800, Loss: 0.049614
2026-02-03 21:19:51,873 [INFO] pyvcham.lvc: Step 2900, Loss: 0.049474
2026-02-03 21:19:52,005 [INFO] pyvcham.lvc: Step 3000, Loss: 0.049399
2026-02-03 21:19:52,136 [INFO] pyvcham.lvc: Step 3100, Loss: 0.049270
2026-02-03 21:19:52,266 [INFO] pyvcham.lvc: Step 3200, Loss: 0.049336
2026-02-03 21:19:52,395 [INFO] pyvcham.lvc: Step 3300, Loss: 0.049203
2026-02-03 21:19:52,526 [INFO] pyvcham.lvc: Step 3400, Loss: 0.049161
2026-02-03 21:19:52,657 [INFO] pyvcham.lvc: Step 3500, Loss: 0.049074
2026-02-03 21:19:52,788 [INFO] pyvcham.lvc: Step 3600, Loss: 0.048884
2026-02-03 21:19:52,921 [INFO] pyvcham.lvc: Step 3700, Loss: 0.048782
2026-02-03 21:19:53,052 [INFO] pyvcham.lvc: Step 3800, Loss: 0.048699
2026-02-03 21:19:53,185 [INFO] pyvcham.lvc: Step 3900, Loss: 0.048620
2026-02-03 21:19:53,317 [INFO] pyvcham.lvc: Step 4000, Loss: 0.048574
2026-02-03 21:19:53,447 [INFO] pyvcham.lvc: Step 4100, Loss: 0.048476
2026-02-03 21:19:53,578 [INFO] pyvcham.lvc: Step 4200, Loss: 0.048404
2026-02-03 21:19:53,709 [INFO] pyvcham.lvc: Step 4300, Loss: 0.048441
2026-02-03 21:19:53,840 [INFO] pyvcham.lvc: Step 4400, Loss: 0.048387
2026-02-03 21:19:53,969 [INFO] pyvcham.lvc: Step 4500, Loss: 0.048328
2026-02-03 21:19:54,099 [INFO] pyvcham.lvc: Step 4600, Loss: 0.048268
2026-02-03 21:19:54,231 [INFO] pyvcham.lvc: Step 4700, Loss: 0.048194
2026-02-03 21:19:54,362 [INFO] pyvcham.lvc: Step 4800, Loss: 0.048146
2026-02-03 21:19:54,493 [INFO] pyvcham.lvc: Step 4900, Loss: 0.048103
2026-02-03 21:19:54,624 [INFO] pyvcham.lvc: Step 5000, Loss: 0.048305
2026-02-03 21:19:54,754 [INFO] pyvcham.lvc: Step 5100, Loss: 0.048221
2026-02-03 21:19:54,884 [INFO] pyvcham.lvc: Step 5200, Loss: 0.048033
2026-02-03 21:19:54,911 [INFO] pyvcham.lvc: Early stopping triggered at step 5220 (no improvement for 150 steps). Best loss: 0.047942
../_images/Examples_fcch_model_7_31.png
../_images/Examples_fcch_model_7_32.png
../_images/Examples_fcch_model_7_33.png
../_images/Examples_fcch_model_7_34.png
../_images/Examples_fcch_model_7_35.png
2026-02-03 21:19:55,394 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.047942
2026-02-03 21:19:55,394 [INFO] pyvcham.lvc: Optimization completed in 7.65 seconds.
2026-02-03 21:19:55,396 [INFO] pyvcham.lvc:

----- Initializing LVC Hamiltonian Builder -----
2026-02-03 21:19:55,397 [INFO] pyvcham.lvc: Normal mode: 6
2026-02-03 21:19:55,401 [INFO] pyvcham.lvc: JT off-diagonal pairs: []
2026-02-03 21:19:55,402 [INFO] pyvcham.lvc: n_var_list (non-JT): [3, 3, 3, 3, 3, 3, 3, 3, 3]
2026-02-03 21:19:55,402 [INFO] pyvcham.lvc: Total parameters to optimize: 35
2026-02-03 21:19:55,403 [INFO] pyvcham.lvc: Optimizing mode 6...
2026-02-03 21:19:56,355 [INFO] pyvcham.lvc: Step 0, Loss: 0.387931
2026-02-03 21:19:56,489 [INFO] pyvcham.lvc: Step 100, Loss: 0.096866
2026-02-03 21:19:56,613 [INFO] pyvcham.lvc: Step 200, Loss: 0.093889
2026-02-03 21:19:56,736 [INFO] pyvcham.lvc: Step 300, Loss: 0.092096
2026-02-03 21:19:56,858 [INFO] pyvcham.lvc: Step 400, Loss: 0.090558
2026-02-03 21:19:56,981 [INFO] pyvcham.lvc: Step 500, Loss: 0.089613
2026-02-03 21:19:57,104 [INFO] pyvcham.lvc: Step 600, Loss: 0.088883
2026-02-03 21:19:57,224 [INFO] pyvcham.lvc: Step 700, Loss: 0.088333
2026-02-03 21:19:57,346 [INFO] pyvcham.lvc: Step 800, Loss: 0.087895
2026-02-03 21:19:57,466 [INFO] pyvcham.lvc: Step 900, Loss: 0.087532
2026-02-03 21:19:57,585 [INFO] pyvcham.lvc: Step 1000, Loss: 0.087311
2026-02-03 21:19:57,706 [INFO] pyvcham.lvc: Step 1100, Loss: 0.087120
2026-02-03 21:19:57,826 [INFO] pyvcham.lvc: Step 1200, Loss: 0.086875
2026-02-03 21:19:57,947 [INFO] pyvcham.lvc: Step 1300, Loss: 0.086747
2026-02-03 21:19:58,067 [INFO] pyvcham.lvc: Step 1400, Loss: 0.086623
2026-02-03 21:19:58,187 [INFO] pyvcham.lvc: Step 1500, Loss: 0.086582
2026-02-03 21:19:58,307 [INFO] pyvcham.lvc: Step 1600, Loss: 0.086528
2026-02-03 21:19:58,425 [INFO] pyvcham.lvc: Step 1700, Loss: 0.086431
2026-02-03 21:19:58,544 [INFO] pyvcham.lvc: Step 1800, Loss: 0.086371
2026-02-03 21:19:58,663 [INFO] pyvcham.lvc: Step 1900, Loss: 0.086360
2026-02-03 21:19:58,781 [INFO] pyvcham.lvc: Step 2000, Loss: 0.086310
2026-02-03 21:19:58,899 [INFO] pyvcham.lvc: Step 2100, Loss: 0.086290
2026-02-03 21:19:59,017 [INFO] pyvcham.lvc: Step 2200, Loss: 0.086274
2026-02-03 21:19:59,134 [INFO] pyvcham.lvc: Step 2300, Loss: 0.086265
2026-02-03 21:19:59,253 [INFO] pyvcham.lvc: Step 2400, Loss: 0.086319
2026-02-03 21:19:59,371 [INFO] pyvcham.lvc: Step 2500, Loss: 0.086270
2026-02-03 21:19:59,490 [INFO] pyvcham.lvc: Step 2600, Loss: 0.086256
2026-02-03 21:19:59,608 [INFO] pyvcham.lvc: Step 2700, Loss: 0.086252
2026-02-03 21:19:59,727 [INFO] pyvcham.lvc: Step 2800, Loss: 0.086242
2026-02-03 21:19:59,845 [INFO] pyvcham.lvc: Step 2900, Loss: 0.086260
2026-02-03 21:19:59,928 [INFO] pyvcham.lvc: Early stopping triggered at step 2970 (no improvement for 150 steps). Best loss: 0.086238
../_images/Examples_fcch_model_7_37.png
../_images/Examples_fcch_model_7_38.png
../_images/Examples_fcch_model_7_39.png
../_images/Examples_fcch_model_7_40.png
../_images/Examples_fcch_model_7_41.png
2026-02-03 21:20:00,438 [INFO] pyvcham.lvc: Optimization finished – Final reported loss: 0.086238
2026-02-03 21:20:00,439 [INFO] pyvcham.lvc: Optimization completed in 4.53 seconds.
[9]:
# Save the optimized parameters to a JSON file
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"
}

# Define the JSON output filename
filename_json = "results/lvc_fcch.json"
output_op = "results/fcch.op"

# Convert the VCSystem object to JSON and save it
pyvcham.utils.VCSystem_to_json(system, general_data, filename_json, rewrite=True)

# Generate the MCTDH operator file from the JSON data
pyvcham.utils.json_to_mctdh(filename_json, outfile=output_op)
2026-02-03 21:23:48,521 [INFO] pyvcham.utils: Warning: Overwriting existing file results/lvc_fcch.json
2026-02-03 21:23:48,524 [INFO] pyvcham.utils: Data successfully saved to results/lvc_fcch.json
2026-02-03 21:23:48,526 [INFO] pyvcham.utils: No interactions found.
2026-02-03 21:23:48,527 [INFO] pyvcham.utils: MCTDH operator file successfully written to: results/fcch.op