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 the transition angular frequency ωf and dependent on a HWHM 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 = 3
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.569243894986 a.u. Time: 6.05 sec.
Iter. | Kohn-Sham Energy | Energy Change | Gradient Norm | Max. Gradient | Density Change
--------------------------------------------------------------------------------------------
1 -491.466830451877 0.0000000000 0.44818642 0.03253439 0.00000000
2 -491.467030360575 -0.0001999087 0.47878758 0.02894780 0.28466474
3 -491.488003730124 -0.0209733695 0.12797786 0.00869975 0.14515181
4 -491.489393601235 -0.0013898711 0.04064647 0.00378323 0.04532813
5 -491.489526881095 -0.0001332799 0.02412497 0.00165159 0.01672685
6 -491.489587735602 -0.0000608545 0.00462732 0.00021876 0.00786242
7 -491.489591467406 -0.0000037318 0.00300436 0.00019584 0.00317190
8 -491.489592717029 -0.0000012496 0.00086635 0.00003620 0.00138467
9 -491.489592840547 -0.0000001235 0.00032582 0.00001823 0.00062889
10 -491.489592854310 -0.0000000138 0.00008203 0.00000336 0.00014903
11 -491.489592855408 -0.0000000011 0.00003539 0.00000199 0.00006470
12 -491.489592855564 -0.0000000002 0.00000767 0.00000043 0.00001630
13 -491.489592855574 -0.0000000000 0.00000372 0.00000016 0.00000575
14 -491.489592855576 -0.0000000000 0.00000123 0.00000007 0.00000256
15 -491.489592855576 -0.0000000000 0.00000040 0.00000003 0.00000074
*** SCF converged in 15 iterations. Time: 126.87 sec.
Spin-Restricted Kohn-Sham:
--------------------------
Total Energy : -491.4895928556 a.u.
Electronic Energy : -977.4903995943 a.u.
Nuclear Repulsion Energy : 486.0008067387 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 : 3
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 * 9 gerade trial vectors in reduced space
* Info * 9 ungerade trial vectors in reduced space
*** Iteration: 1 * Residuals (Max,Min): 3.41e-01 and 1.13e-01
* Info * 12 gerade trial vectors in reduced space
* Info * 12 ungerade trial vectors in reduced space
*** Iteration: 2 * Residuals (Max,Min): 1.03e-01 and 3.14e-02
* Info * 15 gerade trial vectors in reduced space
* Info * 15 ungerade trial vectors in reduced space
*** Iteration: 3 * Residuals (Max,Min): 4.41e-02 and 7.19e-03
* Info * 18 gerade trial vectors in reduced space
* Info * 18 ungerade trial vectors in reduced space
*** Iteration: 4 * Residuals (Max,Min): 1.70e-02 and 1.29e-03
* Info * 21 gerade trial vectors in reduced space
* Info * 21 ungerade trial vectors in reduced space
*** Iteration: 5 * Residuals (Max,Min): 8.85e-03 and 2.30e-04
* Info * 24 gerade trial vectors in reduced space
* Info * 24 ungerade trial vectors in reduced space
*** Iteration: 6 * Residuals (Max,Min): 3.31e-03 and 6.60e-05
* Info * 26 gerade trial vectors in reduced space
* Info * 26 ungerade trial vectors in reduced space
*** Iteration: 7 * Residuals (Max,Min): 1.39e-03 and 6.57e-05
* Info * 27 gerade trial vectors in reduced space
* Info * 27 ungerade trial vectors in reduced space
*** Iteration: 8 * Residuals (Max,Min): 4.70e-04 and 6.57e-05
* Info * 28 gerade trial vectors in reduced space
* Info * 28 ungerade trial vectors in reduced space
*** Iteration: 9 * Residuals (Max,Min): 1.47e-04 and 6.57e-05
* Info * 29 gerade trial vectors in reduced space
* Info * 29 ungerade trial vectors in reduced space
*** Iteration: 10 * Residuals (Max,Min): 6.77e-05 and 4.94e-05
*** Linear response converged in 10 iterations. Time: 258.64 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.01e+00 and 5.94e-01
* Info * 17 gerade trial vectors in reduced space
* Info * 18 ungerade trial vectors in reduced space
*** Iteration: 2 * Residuals (Max,Min): 1.29e-01 and 9.74e-02
* Info * 26 gerade trial vectors in reduced space
* Info * 29 ungerade trial vectors in reduced space
*** Iteration: 3 * Residuals (Max,Min): 4.05e-02 and 3.07e-02
* Info * 35 gerade trial vectors in reduced space
* Info * 40 ungerade trial vectors in reduced space
*** Iteration: 4 * Residuals (Max,Min): 8.76e-03 and 6.27e-03
* Info * 44 gerade trial vectors in reduced space
* Info * 50 ungerade trial vectors in reduced space
*** Iteration: 5 * Residuals (Max,Min): 2.26e-03 and 1.46e-03
* Info * 53 gerade trial vectors in reduced space
* Info * 61 ungerade trial vectors in reduced space
*** Iteration: 6 * Residuals (Max,Min): 5.10e-04 and 2.70e-04
* Info * 61 gerade trial vectors in reduced space
* Info * 71 ungerade trial vectors in reduced space
*** Iteration: 7 * Residuals (Max,Min): 8.96e-05 and 4.69e-05
*** Complex response converged in 7 iterations. Time: 611.36 sec
Fock Matrix Computation
=========================
* Info * Processing 12 Fock builds...
* Info * Time spent in Fock matrices: 98.81 sec
Summary of Two-photon Absorption
==================================
Components of TPA Transition Moments (a.u.)
--------------------------------------------------------------------------------------------
Ex. State Ex. Energy Sxx Syy Szz Sxy Sxz Syz
--------------------------------------------------------------------------------------------
1 1.472776 eV 0.1083 -0.1087 0.0004 0.0776 -0.1268 0.0651
2 1.923272 eV -0.1530 -0.4620 0.6150 -0.2676 0.0478 0.0219
3 2.091274 eV 3.0890 -52.7191 -45.8262 -14.0091 -10.4961 -50.1525
TPA Strength and Cross-Section (Linear Polarization)
--------------------------------------------------------------------------------------------
Ex. State Ex. Energy TPA strength TPA cross-section
--------------------------------------------------------------------------------------------
1 1.472776 eV 0.010166 a.u. 0.000065 GM
2 1.923272 eV 0.101842 a.u. 0.001104 GM
3 2.091274 eV 2011.763701 a.u. 25.786261 GM
TPA Strength and Cross-Section (Circular Polarization)
--------------------------------------------------------------------------------------------
Ex. State Ex. Energy TPA strength TPA cross-section
--------------------------------------------------------------------------------------------
1 1.472776 eV 0.015249 a.u. 0.000097 GM
2 1.923272 eV 0.152763 a.u. 0.001656 GM
3 2.091274 eV 1498.994892 a.u. 19.213724 GM
*** Time spent in quadratic response calculation: 1000.84 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.76 a.u.
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¶
- 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