


Sqw_Bosify: apply the 'Bose' factor (detailed balance) to a classical data set.
The initial data set should obey S(q,w) = S(q,-w), i.e. be 'classical'.
The S(q,w) is a dynamic structure factor aka scattering function.
Sqw_Bosify(Sqw, 0) makes a check of the input data set and returns.
input:
s: Sqw data set (classical, symmetric in energy, no T Bose factor)
e.g. 2D data set with w as 1st axis (rows, meV), q as 2nd axis (Angs-1).
T: when given, Temperature to use for Bose. When not given, the Temperature
is searched in the object. The temperature is in [K]. 1 meV=11.605 K.
type: 'Schofield' or 'harmonic' or 'standard' (default)
conventions:
omega = Ei-Ef = energy lost by the neutron, given in [meV]
omega > 0, neutron looses energy, can not be higher than Ei (Stokes)
omega < 0, neutron gains energy, anti-Stokes
Egelstaff, Eq (9.25) p189
S(q,-w) = exp(-hw/kT) S(q,w)
S(q,w) = exp( hw/kT) S(q,-w)
S(q,w) = Q(w) S*(q,w) with S*=classical limit
for omega > 0, S(q,w) > S(q,-w)
The semi-classical correction, Q, aka 'quantum' correction factor,
can be selected from the optional 'type' argument:
Q = exp(hw_kT/2) 'Schofield' or 'Boltzmann'
Q = hw_kT./(1-exp(-hw_kT)) 'harmonic' or 'Bader'
Q = 2./(1+exp(-hw_kT)) 'standard' or 'Frommhold' (default)
The 'Boltzmann' correction leads to a divergence of the S(q,w) for e.g. w above
few 100 meV. The 'harmonic' correction provides a reasonable correction but does
not fully avoid the divergence at large energies.
Bose factor: n(w) = 1./(exp(w*11.605/T) -1) ~ exp(-w*11.605/T)
w in [meV], T in [K]
References:
B. Hehr, http://www.lib.ncsu.edu/resolver/1840.16/7422 PhD manuscript (2010).
S. A. Egorov, K. F. Everitt and J. L. Skinner. J. Phys. Chem., 103, 9494 (1999).
P. Schofield. Phys. Rev. Lett., 4, 239 (1960).
J. S. Bader and B. J. Berne. J. Chem. Phys., 100, 8359 (1994).
T. D. Hone and G. A. Voth. J. Chem. Phys., 121, 6412 (2004).
L. Frommhold. Collision-induced absorption in gases, 1 st ed., Cambridge
Monographs on Atomic, Molecular, and Chemical Physics, Vol. 2,
Cambridge Univ. Press: London (1993).
Example: s = Sqw_Bosify(s, 300);
See also: Sqw_deBosify, Sqw_symmetrize, Sqw_dynamic_range, Sqw_scatt_xs
(c) E.Farhi, ILL. License: EUPL.