The absorption cross-section for light polarized in the direction () can be obtained from the imaginary part () of the frequency-dependent polarizability, :1292, Zhu:2021
(7.36) |
A rotationally-averaged absorption spectrum is then simply
(7.37) |
within the electric dipole approximation. Components of the frequency-dependent polarizability tensor are obtained from the Fourier transform () of the time-dependent dipole moment component , for a perturbing field in the direction:1292
(7.38) |
To compute the spectrum in Eq. (7.37), three separate perturbations in the , , and directions are required, else some excitations may be missing if their transition moment is strictly perpendicular to the applied field, causing the matrix element to vanish. However, these three perturbations , , and can be applied all at once in a single calculation, in order to generate a superposition consisting of all possible excitations out of the ground state.
Two different scripts are provided to obtain the spectrum after the TDKS simulation is completed:
$QC/bin/tools/tdks_fft.py
$QC/bin/tools/tdks_pade.py
The first of these uses the Fourier transform method in Eq. (7.38) directly while the second makes use of Padé approximants to obtain comparable spectra with shorter propagation times.Zhu:2021 The scripts can be run as follows:
$QC/bin/tools/tdks_fft.py output spectrum.txt $QC/bin/tools/tdks_pade.py output spectrum.txt
The file spectrum.txt produced by the processing script will contain two columns: frequency (eV) and strength (arbitrary units). This data can be visualized as an plot to view the spectrum.
$molecule 0 1 H 0.000000 0.000000 0.000000 H 0.000000 0.000000 0.750000 $end $rem BASIS 6-31G EXCHANGE gen SYMMETRY false TDKS true UNRESTRICTED true LRC_DFT true OMEGA 300 INCFOCK 0 PURECART 2222 SCF_CONVERGENCE 9 PRINT_GENERAL_BASIS true $end $xc_functional C PBE 1.00 X wPBE 1.00 X HF 0.00 $end $tdks DT 0.05 MAXITER 5 PROPAGATOR MMUT FIELD_VECTOR 1 1 1 FIELD_TYPE cw FIELD_FREQUENCY 1.55 FIELD_AMP 0.0001 DO_CAP true CAP_TYPE atom_centered_spherical CAP_R0 12.0 ! should be in bohr/a.u. CAP_ETA 8.0 $end