Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Multi-photon interactions

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

Sαβf0=1n[0μ^αnnμ^βfωn0ωf0/2+0μ^βnnμ^αfωn0ωf0/2]S^{f\leftarrow 0}_{\alpha\beta} = \frac{1}{\hbar} \sum_{n} \Bigg[ \frac{ \langle 0 | \hat{\mu}_\alpha| n \rangle \langle n |\hat{\mu}_\beta | f \rangle }{ \omega_{n0}-\omega_{f0}/2 } + \frac{ \langle 0 | \hat{\mu}_\beta| n \rangle \langle n |\hat{\mu}_\alpha | f \rangle }{ \omega_{n0}-\omega_{f0}/2 } \Bigg]

where ωn0\hbar \omega_{n0} is the excitation energy for state n|n\rangle, μ^α\hat{\mu}_\alpha is the electric dipole moment operator along the Cartesian axis α\alpha , and the summation includes the ground state, n=0| n \rangle = | 0 \rangle.

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.

δfTPA=115α,β(2Sαβf0[Sαβf0]+Sααf0[Sββf0])\delta_f^\mathrm{TPA} = \frac{1}{15} \sum_{\alpha, \beta} \left( 2 S^{f\leftarrow 0}_{\alpha\beta} \big[S^{f\leftarrow 0}_{\alpha\beta}\big]^* + S^{f\leftarrow 0}_{\alpha\alpha} \big[S^{f\leftarrow 0}_{\beta\beta}\big]^* \right)

We have here assumed an experimental single-beam, monochromatic, setup with linear polarization.

The TPA strength for a given state f|f\rangle contributes to the spectrum observable cross section, σ(ω)\sigma(\omega), according to

σ(ω)=4π3αa05ω2c  δfTPA  g(2ω,ωf0,γ)\sigma(\omega) = \frac{4 \pi^3 \alpha a_0^5 \omega^2}{c} \; \delta_f^\mathrm{TPA} \; g(2\omega, \omega_{f0}, \gamma)

where α\alpha is the fine structure constant, a0a_0 is the Bohr radius, cc is the speed of light, and gg is a line broadening function centered at half the transition angular frequency ωf0/2\omega_{f0}/2 and dependent on the dampening parameter γ\gamma.

The unit of the cross section will be GM (after Maria Göppert-Mayer) given that atomic units is used for ω\omega, δfTPA\delta_f^\mathrm{TPA}, and gg 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 cm4^4s photon1^{-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)
                                                                                                                          
                                                  TPA Transition Summary                                                  
              ----------------------------------------------------------------------------------------------              
              State        Photon Energy          Linear TPA        Circular TPA     Osc. Strength                        
              ----------------------------------------------------------------------------------------------              
              1          1.472774 eV      0.010167            0.015251          0.000000                                  
              2          1.923271 eV      0.101851            0.152777          0.000138                                  
              3          2.091274 eV   2011.763815         1498.996500          0.413475                                  
              4          2.355365 eV      7.050736            6.721244          0.000357                                  
              5          2.615234 eV    125.361018           93.169726          0.005598                                  
                                                                                                                          
<Figure size 800x500 with 2 Axes>
Loading...

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:
...
@end

TPA 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.TpaDriver()

tpa_drv.frequencies = np.arange(0.05, 0.11, 0.0025) 

tpa_results = tpa_drv.compute(molecule, basis, scf_results)
                                                                                                                          
                                                   Reduced TPA Summary                                                    
      --------------------------------------------------------------------------------------------------------------      
      Photon Energy[a.u.] Photon Energy[eV]         Re(gamma)         Im(gamma)   TPA cross-section[GM]                   
      --------------------------------------------------------------------------------------------------------------      
      0.0500                       1.36057    31675.73519989     3239.01167689              0.03228959                    
      0.0525                       1.42860    35530.36111436     3961.68618474              0.04354203                    
      0.0550                       1.49663    40265.59950941     4932.71867318              0.05950066                    
      0.0575                       1.56465    46199.56489707     6282.40354781              0.08282693                    
      0.0600                       1.63268    53816.20849307     8245.11110324              0.11836111                    
      0.0625                       1.70071    63900.10962467    11260.17420491              0.17539418                    
      0.0650                       1.76874    77800.08028820    16245.09142930              0.27368998                    
      0.0675                       1.83677    97989.68075294    25370.44090672              0.46094126                    
      0.0700                       1.90480   129218.81835487    44727.65985714              0.87394134                    
      0.0725                       1.97283   179045.68230616    95809.35826812              2.00813993                    
      0.0750                       2.04085   214424.82121703   266278.85061289              5.97267975                    
      0.0775                       2.10888  -115441.07834716   408164.49522082              9.77571783                    
      0.0800                       2.17691  -206443.98695682   152581.25454947              3.89395729                    
      0.0825                       2.24494  -147657.67147849    63694.84582410              1.72871029                    
      0.0850                       2.31297  -106308.48515077    35479.70191129              1.02218109                    
      0.0875                       2.38100   -79905.86370439    24266.50888045              0.74085537                    
      0.0900                       2.44902   -59153.35676832    19139.49076664              0.61819491                    
      0.0925                       2.51705   -40846.09154879    20457.43294729              0.69798265                    
      0.0950                       2.58508   -29528.00802823    33640.06855673              1.21063747                    
      0.0975                       2.65311   -40123.48459741    32179.49984695              1.21982786                    
      0.1000                       2.72114   -27588.25815059    23900.75662569              0.95306315                    
      0.1025                       2.78917   -21844.37168338    29031.39104514              1.21625771                    
      0.1050                       2.85720   -14988.94754784    20337.97759042              0.89412120                    
      0.1075                       2.92522     2262.56710842    17978.22834079              0.82846440                    
                                                                                                                          
                                                                                                                          
<Figure size 800x500 with 1 Axes>
@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
References
  1. Norman, P., Ruud, K., & Saue, T. (2018). Principles and practices of molecular properties. John Wiley & Sons, Ltd.
  2. 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