-
Notifications
You must be signed in to change notification settings - Fork 0
Code to calculate polarisation-dependent Raman intensities
License
jbuckeridge/pol-raman
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
************************************************************** PPP L RRR P P L R R PP P L RR R PPPP OOOOO LL RRRR AAAAA MM MM AAAAA NNNNN PP O O LL RR R AA M M M M AA N N PP OO O LL RR R AA A MM M M AA A NN N PP OOOOO LLLL RR R AAAAA MM M AAAAA NN N j.buckeridge@ucl.ac.uk 2018 ************************************************************** This program reads in the Raman tensors from the file 'Raman-Tensors.yaml', which is output from Jonathan Skelton's python code Phonopy-Spectroscopy used to calculate Raman intensities (among other stuff!). For each Raman active mode, the intensity vs angle theta (t) is calculated for incident and reflected light polarised parallel to a user- defined plane. That is, we model a back-scattering Raman experiment where the plane defined by the user is the reflection plane. The intensities are calculated for the polarisation direction varied through 360 degrees I proportional | [a,b,c] R(omega) [a] |^2 | [b] | | [c] | where [a,b,c] is a vector parallel to the plane (hkl) i.e. perpendicular to [h,k,l]. [a,b,c] is normalised. We can then work out values for a,b,c and set an angle that is varied (I won't go through the algebra here). If h^2 + l^2 = 0, then we set b=0 and a=cos(t), c=sin(t) etc Otherwise, c = cos(t) h / sqrt(h^2 + l^2); b = (-2hklcos(t) - sqrt( 4h^2k^2l^2cos^2(t)/(l^2+h^2) - 4(k^2+h^2)h^2(cos^2(t)-1)) ) / 2(k^2+h^2); a = sqrt(1 - b^2 - c^2) The sign of a must be chosen to make sure the vector is parallel to (hkl). Note that the minus sign has been chosen preceding the sqrt in the denominator of b. We also need to take care if h = 0. In that case, b is defin- ed in terms of a rather than c, and we have a = cos(t) l / sqrt(h^2 + l^2); b = (-2hklcos(t)/sqrt(h^2+l^2) - sqrt( 4h^2k^2l^2cos^2(t)/(l^2+h^2) - 4(k^2+l^2)l^2(cos^2(t)-1)) ) / 2(k^2+l^2); c = sqrt(1 - b^2 - a^2) ************************************************************** Installation: compile with any fortran compiler. No libraries necessary. The input is the file "Raman-Tensors.yaml", produced by the Phonopy-Spectrum suite of python scripts by Jonathan Skelton (available on github). The user then defines the plane at which the backscattering occurs, and the Raman intensities are calculated for the plane-polarised incident and reflected beams, where the polarisation direction (which is parallel to the plane) is varied through 360 degrees. The code tells you which direction theta=0 and theta=pi/2 corresponds to, so that appropriate shifts can be applied to the results if necessary (the user needs to do this for now!). The results consist of a set of files modeXX.dat, where XX is the mode index. The files contain the intensities versus theta, where theta is varied between 0 and 360 degrees. Any questions etc please email me. J. Buckeridge Dec. 2018 ****** MIT Open Source Licence ******
About
Code to calculate polarisation-dependent Raman intensities
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published