10.7. The Raman spectrum and non-linear optical susceptibility
Within DFPT framework, 3rd order non-linear response functions can be calculated from the 1st order perturbation wavefunctions using “2n+1” theorem [VGG05, BGCG01]. In this section, we present how to compute the non-linear optical susceptibility and the Raman tensor based on “2n+1” theorem. The former is related to 3rd order derivatives of total energy with respect to three electric field directions, and the latter is calculated from 3rd order derivatives of total energy with respect to two atomic displacements and an electric field direction. By combining this two non-linear response functions we can compute the Raman susceptibilities including the non-analytical correction due to LO-TO effect. At last, these susceptibilities are used to generate the Raman intensities and spectra.
Note
Raman related properties are only well-defined for non-metallic systems.
RESCU currently requires three types of wavefunctions to perform a raman calculations:
Unperturbed wavefunctions which are computed and stored at Preparing the ground state data
Perturbed wavefunctions with respect to electric field perturbation. Although the response of the system to electric field perturbation is calculated in Ion-clamped dielectric tensor, saving the perturbed wavefunctions was left as an option
Perturbed wavefunctions with respect to atomic displacements. Although the response of the system to atomic displacements is calculated in Dynamical matrix and Born effective charges, saving the perturbed wavefunctions was left as an option
In addition, currently RESCU only support time-reversal symmetry for calculating the perturbed wavefunctions and self-consistent potentials. Therefor, to prepare the input data for a Raman calculation, it is necessary to run Ion-clamped dielectric tensor and Dynamical matrix and Born effective charges examples with following modifications to the input files:
option.saveWavefunction = 1
symmetry.timereversal = 1
symmetry.spacesymmetry = 0
symmetry.pointsymmetry = 0
Warning
Saving unperturbed as well as perturbed wavefunctions may require a large disk space.
The Raman spectroscopy depends on following properties of the used light, which are determined as the input of calculations:
Direction of incoming photon which is set by either
dfpt.qpointKdirect
in direct coordinates or bydfpt.qpointCartesian
in cartesian coordinates.Polarization of incoming photon that is determined by
dfpt.ramanIncPhotonPol
Polarization of outgoing photon that is determined by
dfpt.ramanOutPhotonPol
RESCU assumes that measurement is performed with a 90 degree setup regarding the direction of outgoing photon [PWLM]. Therefore, these keywords work together to define the incoming and outgoing photons in Raman spectroscopy measurements. They accept a \(N_{directions}\times 3\) matrix where each row corresponds to a spectroscopy measurement. By default, RESCU assumes three Raman measurements with (\(\hat{z},\hat{x},\hat{y}\)) for incoming photon and (\(\hat{z},\hat{x},\hat{y}\)) for outgoing photon polarization values.
Note
Use dfpt.qpointCartesian
(or dfpt.qpointKdirect
), dfpt.ramanIncPhotonPol
and dfpt.ramanOutPhotonPol
to specify the properties of photons used in the Raman
spectroscopy measurement.
Important
Currently only LDA exchange-correlation functional can be used with “2n+1” theorem. Although previous steps of DFPT calculations can still be performed with another XC-functional type, it should be directly set to LDA for the Raman calculation. Final results should be checked carefully for possible inconsistencies.
Following input file can be used for DFPT Raman simulation:
info.calculationType = 'dfpt-raman'
info.savepath = './results/bn_real_raman'
rho.in = './results/bn_real_scf.mat'
psi.in = './results/bn_real_scf.h5'
dfpt.phononData = './results/bn_real_phonon.mat'
dfpt.dielectricData = './results/bn_real_dielectric.mat'
dfpt.asr = [1,1,1]
dfpt.qpointCartesian = [1 0 0;1 0 0] % Two measurements both having incoming photon in x-direction
dfpt.ramanIncPhotonPol = [0,1,0;0,0,1] % Incoming polarizations for 1st and 2nd measurements in y and z directions
dfpt.ramanOutPhotonPol = [0,1,0;0,1,0] % Outgoing polarizations for 1st and 2nd measurements in y and y directions
units.length = 'Angstrom'
dfpt.ramanIncPhotonWav = 2660 % Wavelength of incoming photon used for the Raman spectroscopy
dfpt.ramanTemperature = 300 % Temperature of the Raman spectroscopy in Kelvin
dfpt.opticDamping = 1e-4
The keywords are explained as
info.calculationType
is a string determining type of the calculation;info.savepath
points to the file where the output data of calculation is stored;rho.in
this DFPT calculation loads the ground state electronic density at the beginning of the computation, and this keyword points to the file which contains the output of the ground state calculation, so that RESCU can load corresponding electronic density data;psi
this DFPT calculation also loads the ground state wavefunctions at the beginning of the computation, and this keyword points to the file which contains the stored ground state wavefunctions;dfpt.dielectricData
points to the path of the file containing the first-order perturbed wavefunctions with respect to external electric fields and the ion-clamped dielectric tensor;dfpt.phononData
points to the path of the file containing the first-order perturbed wavefunctions with respect to atomic displacements and the dynamical matrix and Born effective charges;dfpt.asr
it is a \(1\times 3\) vector where the first and third entries determines if acoustic sum rule will be applied to the dynamical matrix and the Raman tensor, respectively. The second entry determines if charge neutrality will be enforced on Born effective charges. RESCU assumes that all sum rules are active by default;dfpt.qpointCartesian
each row determines a direction of incident electric field for which the Raman related properties are calculated. By default, RESCU uses the three Cartesian directions;dfpt.ramanIncPhotonPol
polarization of incoming photon in the Raman measurement in Cartesian coordinates. It is a \(N_{direction}\times 3\) matrix where each row corresponds to a direction given by a row ofdfpt.qpointCartesian
. RESCU assumes (\(\hat{z},\hat{x},\hat{y}\)) as default values.dfpt.ramanOutPhotonPol
polarization of outgoing photon in the Raman measurement in Cartesian coordinates. It is a \(N_{direction}\times 3\) matrix where each row corresponds to a direction given by a row ofdfpt.qpointCartesian
. RESCU assumes (\(\hat{z},\hat{x},\hat{y}\)) as default values.dfpt.ramanIncPhotonWav
wavelength if incoming photon used in the Raman measurement. It can be set in Angstrom if used withunits.length
keyword. RESCU assumes a wavelength of 4500 Angstrom (450 nm) as the default value.dfpt.ramanTemperature
temperature of the Raman measurement in Kelvin which is used for evaluating phonon distributions according to Bose-Einstein statistics. The default value is 300 Kelvin.dfpt.opticDamping
damping factor for Lorentzian broadening of the Raman spectrum in Hartree unit (1 Hartree \(\simeq 6579.7\) THz).
RESCU is executed as follows
rescu -i bn_real_raman
The output data will be stored in ./results/bn_real_raman.mat
where
dfpt
and raman
fields hold the main variables of the simulation.
>> load results/bn_real_raman.mat
>> dfpt
dfpt =
struct with fields:
BornEC: [3x3x2 double]
asr: [1 1 1]
dTensor: [3x3x3 double]
desc: [1x1 struct]
dielectricTensor: [3x3 double]
dynMat: [6x6x2 double]
nonlinOpticSus: [3x3x3 double]
opticDamping: 1.0000e-04
phononFreq: [6x2 double]
phononMode: {2x1 cell}
qpointDirect: [2x3 double]
ramanIncPhotonPol: [2x3 double]
ramanIncPhotonWav: 2660
ramanOutPhotonPol: [2x3 double]
ramanTemperature: 300
ramanTensor: [3x3x6 double]
type: 'raman'
>> raman
raman =
struct with fields:
Suscep: {2x1 cell}
Tensor: {2x1 cell}
depolRatio: {[6x1 double] [6x1 double]}
desc: [1x1 struct]
freqShift: [1x1000 double]
intensity: {[6x1 double] [6x1 double]}
intensityAvgDpl: {[6x1 double] [6x1 double]}
intensityAvgPol: {[6x1 double] [6x1 double]}
intensityAvgTot: {[6x1 double] [6x1 double]}
spectrum: {[1x1000 double] [1x1000 double]}
spectrumAvgDpl: {[1x1000 double] [1x1000 double]}
spectrumAvgPol: {[1x1000 double] [1x1000 double]}
spectrumAvgTot: {[1x1000 double] [1x1000 double]}
Description of important outputs follows:
Suscep
it is a \(N_{direction}\times 1\) cell-array where each cell entry stores the (\(3\times 3\times 3N_{atom}\)) Raman susceptibility for corresponding direction calculated from the Raman tensor and phonons modes in atomic units.
>> raman.Suscep{1}(:,:,1)
ans =
1.0e-07 *
-0.0000 + 0.0000i -0.5275 - 0.0000i -0.5266 - 0.0000i
-0.5275 - 0.0000i -0.0000 - 0.0000i -0.4732 + 0.0000i
-0.5266 - 0.0000i -0.4732 + 0.0000i -0.0000 - 0.0000i
Tensor
is a \(N_{direction}\times 1\) cell-array where each cell entry stores the (\(3\times 3\times 3N_{atom}\)) Raman tensor for corresponding direction including non-analytical effect of LO phonons in atomic units. Sum rule is applied if set bydfpt.asr
.
>> raman.Tensor{1}(:,:,1)
ans =
-0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 - 0.0000i -0.0000 - 0.0000i -0.0878 + 0.0000i
0.0000 - 0.0000i -0.0878 + 0.0000i -0.0000 - 0.0000i
intensity
polarization dependent Raman intensities for all available phonon modes. It is a \(N_{direction}\times 1\) cell-array where each entry stores a \(3N_{atom}\times 1\) column vector corresponds to intensities of available modes.
>> raman.intensity{1}
ans =
1.0e-22 *
0
0
0
0.1461
0.0408
0.0122
intensityAvgPol
polarizated averaged Raman intensities (\(I_{\parallel}\)) for phonon modes where it is assumed that the incoming and scattered photons have the same polarizations. It is a \(N_{direction}\times 1\) cell-array where each entry stores a \(3N_{atom}\times 1\) column vector corresponds to intensities of available modes.
>> raman.intensityAvgPol{1}
ans =
1.0e-14 *
0
0
0
0.4077
0.4078
0.3471
intensityAvgDpl
depolarized averaged Raman intensities (\(I_{\perp}\)) for phonon modes where the incoming and scattered photons have perpendicular polarizations. It is a \(N_{direction}\times 1\) cell-array where each entry stores a \(3N_{atom}\times 1\) column vector corresponds to intensities of available modes.
>> raman.intensityAvgDpl{1}
ans =
1.0e-14 *
0
0
0
0.3058
0.3058
0.2603
intensityAvgTot
total (sum of polarized and depolarized) averaged Raman intensities for phonon modes. It is a \(N_{direction}\times 1\) cell-array where each entry stores a \(3N_{atom}\times 1\) column vector corresponds to intensities of available modes.
>> raman.intensityAvgTot{1}
ans =
1.0e-14 *
0
0
0
0.7135
0.7136
0.6074
depolRatio
depolarization ratio of averaged intensities, i.e. \(I_{\parallel}/I_{\perp}\). It is a \(N_{direction}\times 1\) cell-array where each entry stores a \(3N_{atom}\times 1\) column vector corresponds to depolarization ratio of available modes.freqShift
frequencies of Raman measurement in cm-1 (x-axis) at which the Raman spectrum is calculated.spectrum
\(N_{direction}\times 1\) cell-array where each entry stores polarization dependent Raman spectrum, and can be plotted againstfreqShift
.spectrumAvgPol
\(N_{direction}\times 1\) cell-array where each entry stores polarized averaged Raman spectrum. It can be plotted againstfreqShift
.spectrumAvgDpl
\(N_{direction}\times 1\) cell-array where each entry stores depolarized averaged Raman spectrum. It can be plotted againstfreqShift
.spectrumAvgTot
\(N_{direction}\times 1\) cell-array where each entry stores total averaged Raman spectrum. It can be plotted againstfreqShift
.
Also dfpt
field holds following important information:
BornEC
Born effective charges.dynMat
updated dynamical matrix for each incoming direction with acoustic sum rule applied if set in the input.phononFreq
phonons frequencies in Hartree.phononMode
phonons eigenvectors stored as a \(N_{directions}\times 1\) cell-array.ramanTensor
\(3\times 3\times 3N_{atom}\) array which stores the raw Raman tensor before adding the non-analytical LO phonons contribution and sum rule (if applicable).nonlinOpticSus
non-linear optical susceptibility. It is a \(3\times 3\times 3\) array referring to three Cartesian coordinates [VGG05].dTensor
it is defined as half on the non-linear optical susceptibility and given in pmV-1 [VGG05].
RESCU’s plotting utility can be used to visualize the Raman spectrum:
rescu -p ./results/bn_real_raman.mat
For 3 first given photon directions in dfpt.qpointCartesian
(or dfpt.qpointKdirect
)
polarization dependent and averaged Raman spectra are plotted and
saved to corresponding files.
Fig. 10.7.1 shows polarization dependent Raman spectrum which can also
be found in bn_real_raman_plot_polarized.fig
.
Fig. 10.7.2 shows averaged Raman spectra which can also
be found in bn_real_raman_plot_averaged.fig
.
M Veithen, Xavier Gonze, and Ph Ghosez. Nonlinear optical susceptibilities, Raman efficiencies, and electro-optic tensors from first-principles density functional perturbation theory. Physical Review B 71.12 (2005), p. 125107.
S. A. Prosandeev, U. Waghmare, I. Levin, and J. Maslar First-order Raman spectra of $mathrm{A}{mathrm{B}}_{1∕2}^{ensuremath{‘}}{mathrm{B}}_{1∕2}^{ensuremath{‘’}}{mathrm{O}}_{3}$ double perovskites Physical Review B 71, 214307 (2005)
Stefano Baroni, Stefano De Gironcoli, Andrea Dal Corso, and Paolo Giannozzi. Phonons and related crystal properties from density-functional perturbation theory. Reviews of Modern Physics 73.2 (2001), p. 515.