Multi-photon interactions describe the nonlinear responses of a molecular system to the simultaneous absorption or emission of two or more photons. These processes arise from higher‑order terms in the light–matter interaction and are governed by electronic transition pathways that do not appear in linear spectroscopy. Within the Born–Oppenheimer and electric‑dipole approximations, multi-photon effects are characterized by frequency‑dependent response functions—such as second‑ and third‑order polarizabilities—that encode resonant enhancements and selection rules beyond those of one‑photon transitions.
VeloxChem provides efficient tools for computing these nonlinear response properties at the levels of time‑dependent density functional theory (TDDFT) and the complex polarization propagator (CPP) aproach. By solving perturbation‑dependent response equations for multiple field frequencies, the program enables the evaluation of two‑photon absorption amplitudes, hyperpolarizabilities, and other nonlinear optical indicators relevant to multi-photon spectroscopies.
Two-photon absorption¶
TPA strengths¶
In the quadratic response theory framework, two‑photon absorption (TPA) spectra are determined from residues of the second‑order response function at half the excitation energy. TPA strengths factorize into products of transition moments, which quantify the effective coupling of the ground state to an excited state via the simultaneous interaction with two photons. The two-photon transition moment is given by the sum-over-states expression
where ℏωn0 is the excitation energy for state ∣n⟩, μ^α is the electric dipole moment operator along the Cartesian axis α , and the summation includes the ground state, ∣n⟩=∣0⟩.
For an isotropic sample, the experimentally relevant TPA strengths are obtained from the orientational average of the squared magnitudes of the Cartesian transition moments. This averaging yields a scalar measure that captures the laser field polarization, and it provides the quantity directly comparable to measured TPA cross sections, see Norman et al. (2018) for further details.
We have here assumed an experimental single-beam, monochromatic, setup with linear polarization.
The TPA strength for a given state ∣f⟩ contributes to the spectrum observable cross section, σ(ω), according to
where α is the fine structure constant, a0 is the Bohr radius, c is the speed of light, and g is a line broadening function centered at half the transition angular frequency ωf0/2 and dependent on the dampening parameter γ.
The unit of the cross section will be GM (after Maria Göppert-Mayer) given that atomic units is used for ω, δfTPA, and g and SI units is used for the rest, and that a multiplication by a factor of 1058 is made to account for the fact that 1 GM corresponds to 10-50 cm4s photon−1.
TPA simulations are sensitive toward the choice of basis set and exchange-correlation functional. The inclusion of diffuse functions in the basis set is typically required, and in regard with functionals, it has been demonstrated that the range-separated hybrid CAM-B3LYP and the hybrid meta-GGA MN15 functionals are good choices, see Ahmadzadeh et al. (2024).
Python script
import veloxchem as vlx
molecule = vlx.Molecule.read_name("para-nitroaniline")
basis = vlx.MolecularBasis.read(molecule, "def2-svp")
scf_drv = vlx.ScfRestrictedDriver()
scf_drv.xcfun = "cam-b3lyp"
scf_results = scf_drv.compute(molecule, basis)
tpa_drv = vlx.TpaTransitionDriver()
tpa_drv.nstates = 5
tpa_results = tpa_drv.compute(molecule, basis, scf_results)Reading para-nitroaniline from PubChem...
Reference: S. Kim, J. Chen, T. Cheng, A. Gindulyte, J. He, S. He, Q. Li, B. A. Shoemaker, P. A. Thiessen, B. Yu, L. Zaslavsky, J. Zhang, E. E. Bolton, Nucleic Acids Res., 2025, 53, D1516-D1525.
Please double-check the compound since names may refer to more than one record.
Self Consistent Field Driver Setup
====================================
Wave Function Model : Spin-Restricted Kohn-Sham
Initial Guess Model : Superposition of Atomic Densities
Convergence Accelerator : Two Level Direct Inversion of Iterative Subspace
Max. Number of Iterations : 50
Max. Number of Error Vectors : 10
Convergence Threshold : 1.0e-06
ERI Screening Threshold : 1.0e-12
Linear Dependence Threshold : 1.0e-06
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
* Info * Using the CAM-B3LYP functional.
T. Yanai, D. P. Tew, and N. C. Handy., Chem. Phys. Lett. 393, 51 (2004)
* Info * Using the Libxc library (v7.0.0).
S. Lehtola, C. Steigemann, M. J.T. Oliveira, and M. A.L. Marques., SoftwareX 7, 1–5 (2018)
* Info * Using the following algorithm for XC numerical integration.
J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
* Info * Starting Reduced Basis SCF calculation...
* Info * ...done. SCF energy in reduced basis set: -488.569243835147 a.u. Time: 0.37 sec.
Iter. | Kohn-Sham Energy | Energy Change | Gradient Norm | Max. Gradient | Density Change
--------------------------------------------------------------------------------------------
1 -491.466826537780 0.0000000000 0.44818669 0.03253417 0.00000000
2 -491.467026360217 -0.0001998224 0.47878857 0.02894764 0.28466487
3 -491.487999814694 -0.0209734545 0.12797872 0.00869975 0.14515262
4 -491.489389701521 -0.0013898868 0.04064741 0.00378327 0.04532888
5 -491.489522989832 -0.0001332883 0.02412458 0.00165154 0.01672696
6 -491.489583842666 -0.0000608528 0.00462733 0.00021875 0.00786229
7 -491.489587574484 -0.0000037318 0.00300434 0.00019584 0.00317189
8 -491.489588824096 -0.0000012496 0.00086635 0.00003620 0.00138467
9 -491.489588947612 -0.0000001235 0.00032582 0.00001823 0.00062889
10 -491.489588961376 -0.0000000138 0.00008203 0.00000336 0.00014903
11 -491.489588962473 -0.0000000011 0.00003539 0.00000199 0.00006470
12 -491.489588962630 -0.0000000002 0.00000767 0.00000043 0.00001630
13 -491.489588962639 -0.0000000000 0.00000372 0.00000016 0.00000575
14 -491.489588962641 -0.0000000000 0.00000123 0.00000007 0.00000256
15 -491.489588962642 -0.0000000000 0.00000040 0.00000003 0.00000074
*** SCF converged in 15 iterations. Time: 8.71 sec.
Spin-Restricted Kohn-Sham:
--------------------------
Total Energy : -491.4895889626 a.u.
Electronic Energy : -977.4903880492 a.u.
Nuclear Repulsion Energy : 486.0007990865 a.u.
------------------------------------
Gradient Norm : 0.0000004024 a.u.
Ground State Information
------------------------
Charge of Molecule : 0.0
Multiplicity (2S+1) : 1
Magnetic Quantum Number (M_S) : 0.0
Quadratic Response Driver Setup
=================================
ERI Screening Threshold : 1.0e-12
Convergance Threshold : 1.0e-04
Max. Number of Iterations : 150
Max. Number of Iterations : 150
Linear Response EigenSolver Setup
===================================
Number of States : 5
Max. Number of Iterations : 150
Convergence Threshold : 1.0e-04
ERI Screening Threshold : 1.0e-12
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
* Info * Using the CAM-B3LYP functional.
T. Yanai, D. P. Tew, and N. C. Handy., Chem. Phys. Lett. 393, 51 (2004)
* Info * Using the Libxc library (v7.0.0).
S. Lehtola, C. Steigemann, M. J.T. Oliveira, and M. A.L. Marques., SoftwareX 7, 1–5 (2018)
* Info * Using the following algorithm for XC numerical integration.
J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
* Info * 15 gerade trial vectors in reduced space
* Info * 15 ungerade trial vectors in reduced space
*** Iteration: 1 * Residuals (Max,Min): 4.04e-01 and 9.04e-02
* Info * 20 gerade trial vectors in reduced space
* Info * 20 ungerade trial vectors in reduced space
*** Iteration: 2 * Residuals (Max,Min): 8.73e-02 and 1.39e-02
* Info * 25 gerade trial vectors in reduced space
* Info * 25 ungerade trial vectors in reduced space
*** Iteration: 3 * Residuals (Max,Min): 7.43e-02 and 3.10e-03
* Info * 30 gerade trial vectors in reduced space
* Info * 30 ungerade trial vectors in reduced space
*** Iteration: 4 * Residuals (Max,Min): 5.00e-02 and 5.51e-04
* Info * 35 gerade trial vectors in reduced space
* Info * 35 ungerade trial vectors in reduced space
*** Iteration: 5 * Residuals (Max,Min): 1.32e-02 and 1.31e-04
* Info * 40 gerade trial vectors in reduced space
* Info * 40 ungerade trial vectors in reduced space
*** Iteration: 6 * Residuals (Max,Min): 4.32e-03 and 2.74e-05
* Info * 44 gerade trial vectors in reduced space
* Info * 44 ungerade trial vectors in reduced space
*** Iteration: 7 * Residuals (Max,Min): 1.06e-03 and 2.58e-05
* Info * 46 gerade trial vectors in reduced space
* Info * 46 ungerade trial vectors in reduced space
*** Iteration: 8 * Residuals (Max,Min): 2.16e-04 and 2.58e-05
* Info * 48 gerade trial vectors in reduced space
* Info * 48 ungerade trial vectors in reduced space
*** Iteration: 9 * Residuals (Max,Min): 7.27e-05 and 2.58e-05
*** Linear response converged in 9 iterations. Time: 34.56 sec
Complex Response Solver Setup
===============================
Number of Frequencies : 1
Max. Number of Iterations : 150
Convergence Threshold : 1.0e-04
ERI Screening Threshold : 1.0e-12
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
* Info * Using the CAM-B3LYP functional.
T. Yanai, D. P. Tew, and N. C. Handy., Chem. Phys. Lett. 393, 51 (2004)
* Info * Using the Libxc library (v7.0.0).
S. Lehtola, C. Steigemann, M. J.T. Oliveira, and M. A.L. Marques., SoftwareX 7, 1–5 (2018)
* Info * Using the following algorithm for XC numerical integration.
J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
* Info * 8 gerade trial vectors in reduced space
* Info * 9 ungerade trial vectors in reduced space
*** Iteration: 1 * Residuals (Max,Min): 1.00e+00 and 5.50e-01
* Info * 17 gerade trial vectors in reduced space
* Info * 20 ungerade trial vectors in reduced space
*** Iteration: 2 * Residuals (Max,Min): 1.24e-01 and 9.02e-02
* Info * 28 gerade trial vectors in reduced space
* Info * 32 ungerade trial vectors in reduced space
*** Iteration: 3 * Residuals (Max,Min): 3.96e-02 and 2.83e-02
* Info * 39 gerade trial vectors in reduced space
* Info * 44 ungerade trial vectors in reduced space
*** Iteration: 4 * Residuals (Max,Min): 8.99e-03 and 5.52e-03
* Info * 49 gerade trial vectors in reduced space
* Info * 57 ungerade trial vectors in reduced space
*** Iteration: 5 * Residuals (Max,Min): 2.05e-03 and 1.13e-03
* Info * 60 gerade trial vectors in reduced space
* Info * 70 ungerade trial vectors in reduced space
*** Iteration: 6 * Residuals (Max,Min): 4.42e-04 and 1.79e-04
* Info * 70 gerade trial vectors in reduced space
* Info * 83 ungerade trial vectors in reduced space
*** Iteration: 7 * Residuals (Max,Min): 7.32e-05 and 2.80e-05
*** Complex response converged in 7 iterations. Time: 64.75 sec
Fock Matrix Computation
=========================
* Info * Processing 20 Fock builds...
* Info * Time spent in Fock matrices: 16.56 sec
Summary of Two-photon Absorption
==================================
Components of TPA Transition Moments (a.u.)
--------------------------------------------------------------------------------------------
State Photon Energy Sxx Syy Szz Sxy Sxz Syz
--------------------------------------------------------------------------------------------
1 1.472785 eV 0.1297 -0.1126 -0.0170 0.0629 -0.1165 0.0755
2 1.923277 eV 0.1772 0.4405 -0.6179 0.2795 -0.0001 -0.0141
3 2.091277 eV 3.3338 -52.7127 -46.0774 -12.9605 -9.0737 -50.5906
4 2.355368 eV -1.2161 -0.7018 -2.8916 -2.3493 -2.5768 -1.8258
5 2.615236 eV 0.9893 10.4332 12.4368 5.7887 5.2399 11.6016
TPA Strength (Linear Polarization)
--------------------------------------------------------------------------------------------
State Photon Energy TPA strength
--------------------------------------------------------------------------------------------
1 1.472785 eV 0.010168 a.u.
2 1.923277 eV 0.101852 a.u.
3 2.091277 eV 2011.766079 a.u.
4 2.355368 eV 7.051092 a.u.
5 2.615236 eV 125.368577 a.u.
TPA Strength (Circular Polarization)
--------------------------------------------------------------------------------------------
State Photon Energy TPA strength
--------------------------------------------------------------------------------------------
1 1.472785 eV 0.015251 a.u.
2 1.923277 eV 0.152778 a.u.
3 2.091277 eV 1498.998272 a.u.
4 2.355368 eV 6.721473 a.u.
5 2.615236 eV 93.175095 a.u.
*** Time spent in quadratic response calculation: 116.45 sec ***
photon_energies = tpa_results["photon_energies"]
delta_tpa_values = tpa_results["tpa_strengths"]["linear"]
print("State Photon energy TPA strength")
print(38 * "=")
idx = 0
for key, delta_tpa in delta_tpa_values.items():
print(f"{idx+1:>3} {photon_energies[idx] * 27.2114:12.4f} eV {delta_tpa:12.2f} a.u.")
idx += 1State Photon energy TPA strength
======================================
1 1.4728 eV 0.01 a.u.
2 1.9233 eV 0.10 a.u.
3 2.0913 eV 2011.77 a.u.
4 2.3554 eV 7.05 a.u.
5 2.6152 eV 125.37 a.u.
import numpy as np
# conversion factors
au2ev = vlx.hartree_in_ev()
alpha = vlx.fine_structure_constant()
a0 = vlx.bohr_in_angstrom() * 1.0e-8
c = vlx.veloxchemlib.speed_of_light_in_vacuum_in_SI() * 100.0
au2gm = (4.0 * np.pi**2 * alpha * a0**5) / c * 1.0e+50 # NOT including the broadening parameter# retrieve TPA transition results
# note that tpa_trans_results['tpa_strengths']['linear'] is a dictionary and we want tpa_trans_str as a list
tpa_trans_results = tpa_results
tpa_trans_str = [
tpa_trans_results['tpa_strengths']['linear'][s]
for s in tpa_trans_results['tpa_strengths']['linear']
]
tpa_trans_ene_au = tpa_trans_results['photon_energies']
tpa_trans_ene_ev = [e * au2ev for e in tpa_trans_ene_au]
# broadening of TPA strengths from TPA transition driver
# using Lorentzian profile and broadening parameter of 0.123984 eV
x_i = np.arange(0.03, 0.15, 0.0001)
y_i = np.zeros_like(x_i)
broad = 4.556335e-03
for i in range(x_i.size):
for s in range(len(tpa_trans_str)):
y_i[i] += au2gm * broad / ((2 * tpa_trans_ene_au[s] - 2 * x_i[i])**2 + broad**2) * (tpa_trans_str[s] * x_i[i]**2)
x_i *= au2ev
broadened_tpa_trans_ene_ev = x_i
broadened_tpa_trans_in_gm = y_i# plot figure
import matplotlib.pyplot as plt
fig, ax1 = plt.subplots(figsize=(8, 4))
ax1.set_xlim(1.2, 3.2)
ax1.set_xlabel('Photon energy (eV)')
ax2 = ax1.twinx()
ax1.set_ylim(0, 11)
ax1.set_ylabel('TPA cross-section (GM)')
#ax1.plot(tpa_ene_ev, tpa_in_gm, linestyle='none', marker='o', markersize=5, markerfacecolor='none')
ax1.plot(broadened_tpa_trans_ene_ev, broadened_tpa_trans_in_gm, linewidth=1)
ax2.set_ylim(0, 2200)
ax2.set_ylabel('TPA strengths (a.u.)')
ax2.bar(tpa_trans_ene_ev, tpa_trans_str, width=0.02, alpha=0.45)
plt.show()
molecule.show()Text file
@jobs
task: response
@end
@method settings
xcfun: MN15
basis: def2-svpd
@end
@response
property: tpa transition
nstates: 10
@end
@molecule
charge: 0
multiplicity: 1
xyz:
...
@endTPA cross section¶
import veloxchem as vlx
import numpy as np
molecule = vlx.Molecule.read_name("para-nitroaniline")
basis = vlx.MolecularBasis.read(molecule, "def2-svp")
scf_drv = vlx.ScfRestrictedDriver()
scf_drv.xcfun = "cam-b3lyp"
scf_results = scf_drv.compute(molecule, basis)
tpa_drv = vlx.TpaReducedDriver()
tpa_drv.frequencies = np.arange(0.05, 0.11, 0.0025)
tpa_results = tpa_drv.compute(molecule, basis, scf_results)Reading para-nitroaniline from PubChem...
Reference: S. Kim, J. Chen, T. Cheng, A. Gindulyte, J. He, S. He, Q. Li, B. A. Shoemaker, P. A. Thiessen, B. Yu, L. Zaslavsky, J. Zhang, E. E. Bolton, Nucleic Acids Res., 2025, 53, D1516-D1525.
Please double-check the compound since names may refer to more than one record.
Self Consistent Field Driver Setup
====================================
Wave Function Model : Spin-Restricted Kohn-Sham
Initial Guess Model : Superposition of Atomic Densities
Convergence Accelerator : Two Level Direct Inversion of Iterative Subspace
Max. Number of Iterations : 50
Max. Number of Error Vectors : 10
Convergence Threshold : 1.0e-06
ERI Screening Threshold : 1.0e-12
Linear Dependence Threshold : 1.0e-06
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
* Info * Using the CAM-B3LYP functional.
T. Yanai, D. P. Tew, and N. C. Handy., Chem. Phys. Lett. 393, 51 (2004)
* Info * Using the Libxc library (v7.0.0).
S. Lehtola, C. Steigemann, M. J.T. Oliveira, and M. A.L. Marques., SoftwareX 7, 1–5 (2018)
* Info * Using the following algorithm for XC numerical integration.
J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
* Info * Starting Reduced Basis SCF calculation...
* Info * ...done. SCF energy in reduced basis set: -488.569243805873 a.u. Time: 0.42 sec.
Iter. | Kohn-Sham Energy | Energy Change | Gradient Norm | Max. Gradient | Density Change
--------------------------------------------------------------------------------------------
1 -491.466824981244 0.0000000000 0.44818694 0.03253434 0.00000000
2 -491.467024627689 -0.0001996464 0.47879072 0.02894783 0.28466512
3 -491.487998278827 -0.0209736511 0.12797810 0.00869972 0.14515309
4 -491.489388150599 -0.0013898718 0.04064741 0.00378328 0.04532813
5 -491.489521438588 -0.0001332880 0.02412462 0.00165155 0.01672704
6 -491.489582291392 -0.0000608528 0.00462728 0.00021875 0.00786233
7 -491.489586023093 -0.0000037317 0.00300433 0.00019584 0.00317185
8 -491.489587272686 -0.0000012496 0.00086634 0.00003620 0.00138465
9 -491.489587396200 -0.0000001235 0.00032582 0.00001823 0.00062887
10 -491.489587409963 -0.0000000138 0.00008203 0.00000336 0.00014903
11 -491.489587411061 -0.0000000011 0.00003539 0.00000199 0.00006470
12 -491.489587411217 -0.0000000002 0.00000767 0.00000043 0.00001630
13 -491.489587411227 -0.0000000000 0.00000372 0.00000016 0.00000575
14 -491.489587411229 -0.0000000000 0.00000123 0.00000007 0.00000256
15 -491.489587411229 -0.0000000000 0.00000040 0.00000003 0.00000074
*** SCF converged in 15 iterations. Time: 9.53 sec.
Spin-Restricted Kohn-Sham:
--------------------------
Total Energy : -491.4895874112 a.u.
Electronic Energy : -977.4903600900 a.u.
Nuclear Repulsion Energy : 486.0007726788 a.u.
------------------------------------
Gradient Norm : 0.0000004024 a.u.
Ground State Information
------------------------
Charge of Molecule : 0.0
Multiplicity (2S+1) : 1
Magnetic Quantum Number (M_S) : 0.0
Two-Photon Absorbtion Driver Setup
====================================
ERI Screening Threshold : 1.0e-12
Convergance Threshold : 1.0e-04
Max. Number of Iterations : 150
Damping Parameter : 4.556335e-03
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
Complex Response Solver Setup
===============================
Number of Frequencies : 24
Max. Number of Iterations : 150
Convergence Threshold : 1.0e-04
ERI Screening Threshold : 1.0e-12
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
* Info * Using the CAM-B3LYP functional.
T. Yanai, D. P. Tew, and N. C. Handy., Chem. Phys. Lett. 393, 51 (2004)
* Info * Using the Libxc library (v7.0.0).
S. Lehtola, C. Steigemann, M. J.T. Oliveira, and M. A.L. Marques., SoftwareX 7, 1–5 (2018)
* Info * Using the following algorithm for XC numerical integration.
J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
* Info * 10 gerade trial vectors in reduced space
* Info * 11 ungerade trial vectors in reduced space
*** Iteration: 1 * Residuals (Max,Min): 7.46e-01 and 5.64e-01
* Info * 21 gerade trial vectors in reduced space
* Info * 24 ungerade trial vectors in reduced space
*** Iteration: 2 * Residuals (Max,Min): 1.08e-01 and 8.68e-02
* Info * 34 gerade trial vectors in reduced space
* Info * 37 ungerade trial vectors in reduced space
*** Iteration: 3 * Residuals (Max,Min): 3.57e-02 and 2.45e-02
* Info * 47 gerade trial vectors in reduced space
* Info * 51 ungerade trial vectors in reduced space
*** Iteration: 4 * Residuals (Max,Min): 6.12e-03 and 3.98e-03
* Info * 60 gerade trial vectors in reduced space
* Info * 66 ungerade trial vectors in reduced space
*** Iteration: 5 * Residuals (Max,Min): 1.36e-03 and 6.87e-04
* Info * 73 gerade trial vectors in reduced space
* Info * 79 ungerade trial vectors in reduced space
*** Iteration: 6 * Residuals (Max,Min): 2.61e-04 and 1.15e-04
* Info * 87 gerade trial vectors in reduced space
* Info * 94 ungerade trial vectors in reduced space
*** Iteration: 7 * Residuals (Max,Min): 3.69e-05 and 1.54e-05
*** Complex response converged in 7 iterations. Time: 81.18 sec
Fock Matrix Computation
=========================
* Info * Processing 144 Fock builds...
* Info * Time spent in Fock matrices: 129.02 sec
Complex Response Solver Setup
===============================
Number of Frequencies : 24
Max. Number of Iterations : 150
Convergence Threshold : 1.0e-04
ERI Screening Threshold : 1.0e-12
Exchange-Correlation Functional : CAM-B3LYP
Molecular Grid Level : 4
* Info * Using the CAM-B3LYP functional.
T. Yanai, D. P. Tew, and N. C. Handy., Chem. Phys. Lett. 393, 51 (2004)
* Info * Using the Libxc library (v7.0.0).
S. Lehtola, C. Steigemann, M. J.T. Oliveira, and M. A.L. Marques., SoftwareX 7, 1–5 (2018)
* Info * Using the following algorithm for XC numerical integration.
J. Kussmann, H. Laqua and C. Ochsenfeld, J. Chem. Theory Comput. 2021, 17, 1512-1521
* Info * 66 gerade trial vectors in reduced space
* Info * 65 ungerade trial vectors in reduced space
*** Iteration: 1 * Residuals (Max,Min): 1.74e-01 and 1.05e-01
* Info * 132 gerade trial vectors in reduced space
* Info * 131 ungerade trial vectors in reduced space
*** Iteration: 2 * Residuals (Max,Min): 3.21e-02 and 1.40e-02
* Info * 198 gerade trial vectors in reduced space
* Info * 197 ungerade trial vectors in reduced space
*** Iteration: 3 * Residuals (Max,Min): 4.89e-03 and 1.41e-03
* Info * 264 gerade trial vectors in reduced space
* Info * 263 ungerade trial vectors in reduced space
*** Iteration: 4 * Residuals (Max,Min): 5.15e-04 and 1.30e-04
* Info * 331 gerade trial vectors in reduced space
* Info * 329 ungerade trial vectors in reduced space
*** Iteration: 5 * Residuals (Max,Min): 6.05e-05 and 9.23e-06
*** Complex response converged in 5 iterations. Time: 298.79 sec
Fock Matrix Computation
=========================
* Info * Processing 144 Fock builds...
* Info * Time spent in Fock matrices: 139.80 sec
Isotropic Average gamma Tensor at Given Frequencies
=====================================================
*** Note: The reduced expression is an approximation to the
second-order nonlinear hyperpolarizability (gamma) and is
intended for use in one-photon off-resonance regions.
Photon Energy Real Imaginary
-----------------------------------------------------------------
gamma 0.0500 31675.70696118 3239.00127786j
gamma 0.0525 35530.32015970 3961.67091895j
gamma 0.0550 40265.53953796 4932.69577492j
gamma 0.0575 46199.47570101 6282.36705312j
gamma 0.0600 53816.07297869 8245.05037779j
gamma 0.0625 63899.89667158 11260.06683100j
gamma 0.0650 77799.73060446 16244.88524403j
gamma 0.0675 97989.07514624 25369.99685196j
gamma 0.0700 129217.72154772 44726.53197592j
gamma 0.0725 179043.94010176 95805.73088256j
gamma 0.0750 214429.61537747 266266.35309236j
gamma 0.0775 -115422.64029215 408180.70983932j
gamma 0.0800 -206449.12767560 152590.93785772j
gamma 0.0825 -147662.12689481 63697.85714298j
gamma 0.0850 -106311.60959260 35480.92491115j
gamma 0.0875 -79908.27428116 24267.16260017j
gamma 0.0900 -59155.38792062 19139.80346016j
gamma 0.0925 -40847.84414187 20457.46586576j
gamma 0.0950 -29528.88308970 33639.87832912j
gamma 0.0975 -40125.14246865 32180.80883549j
gamma 0.1000 -27590.47736236 23900.95898367j
gamma 0.1025 -21846.00858415 29031.38687265j
gamma 0.1050 -14990.88992294 20338.07601644j
gamma 0.1075 2260.54185152 17978.17906961j
Reference: K. Ahmadzadeh, M. Scott, M. Brand, O. Vahtras, X. Li,
Z. Rinkevicius, and P. Norman, J. Chem. Phys. 154, 024111 (2021)
Two-Photon Absorption Spectrum
================================
Photon Energy[a.u.] Photon Energy[eV] TPA cross-section[GM]
-----------------------------------------------------------------
0.0500 1.36057 0.03228949
0.0525 1.42860 0.04354187
0.0550 1.49663 0.05950038
0.0575 1.56465 0.08282645
0.0600 1.63268 0.11836024
0.0625 1.70071 0.17539251
0.0650 1.76874 0.27368651
0.0675 1.83677 0.46093320
0.0700 1.90480 0.87391931
0.0725 1.97283 2.00806390
0.0750 2.04085 5.97239942
0.0775 2.10888 9.77610618
0.0800 2.17691 3.89420441
0.0825 2.24494 1.72879201
0.0850 2.31297 1.02221632
0.0875 2.38100 0.74087533
0.0900 2.44902 0.61820501
0.0925 2.51705 0.69798378
0.0950 2.58508 1.21063062
0.0975 2.65311 1.21987748
0.1000 2.72114 0.95307122
0.1025 2.78917 1.21625753
0.1050 2.85720 0.89412552
0.1075 2.92522 0.82846213
*** Time spent in TPA calculation: 653.19 sec ***
from scipy.interpolate import CubicSpline
sigma = tpa_results["cross_sections"]
photon_energies = np.arange(0.05, 0.10, 0.0025) * 27.211
cs = CubicSpline(photon_energies, sigma)
x_dense = np.linspace(photon_energies.min(), photon_energies.max(), 500)
plt.plot(x_dense, cs(x_dense), '-', label="Cubic spline")
plt.plot(photon_energies, sigma, 'o')
plt.grid(True)
plt.xlabel("Photon energy (eV)")
plt.ylabel("TPA cross section (GM)")
plt.show()
@jobs
task: response
@end
@method settings
xcfun: MN15
basis: def2-svpd
@end
@response
property: tpa
frequencies: 0.3-0.5 (0.1)
@end
@molecule
charge: 0
multiplicity: 1
xyz:
...
@end- Norman, P., Ruud, K., & Saue, T. (2018). Principles and practices of molecular properties. John Wiley & Sons, Ltd.
- Ahmadzadeh, K., Li, X., Rinkevicius, Z., Norman, P., & Zalesny, R. (2024). Toward Accurate Two-Photon Absorption Spectrum Simulations: Exploring the Landscape beyond the Generalized Gradient Approximation. J. Phys. Chem. Lett., 15(4), 969–974. 10.1021/acs.jpclett.3c03513