iData_vDOS: multi_phonons: compute the integrated multi-phonon generalised density of states (gDOS) from an initial vibrational density of states (vDOS) Gw = multi_phonons(gw, Ki, T, m, n) compute: Density of States -> multi-phonon gDOS terms The input argument 'gw' should be a vibrational density of states (vDOS) as obtained from an experiment (e.g. Bedov/Oskotskii estimate), molecular dynamics, or lattice dynamics. In the so-called incoherent approximation, the vDOS obtained from incoherent and coherent scattering laws are equal. This method is equivalent to the 'incoherent' one, but provides the density-of-states gDOS instead of a scattering law Sinc(q,w). The result is the 'neutron weighted' (generalised) density of states (gDOS), which should be compared with: Gw -> \int q. I(q,w) /Ki/Kf dq ~ \int I(theta, w) sin(theta) d(theta) where I(q,w) and I(theta,w) are the measured scattering intensity as a function of the momentum q or scattering angle theta. In practice, the measured I(q,w) contains both the single phonon and multi-phonon terms (and potentially multiple scattering). These should be e.g. multiplied by the neutron scattering bound cross section 'sigma' [barns]. This calculation includes the Debye-Waller factor. The 1st element of the result 'Gw' is the generalised density of states, as computed in the Oskotskii formalism. The following terms are the multi-phonon contributions. The generalised density of states (gDOS) is the sum of the terms in this expansion. This implementation is in principle exact for an isotropic monoatomic material, e.g. a liquid, powder, or cubic crystal. This methodology is equivalent to an iteration of the MUPHOCOR code. For a poly-atomic material with a set of non-equivalent atoms with relative concentration Ci, mass Mi and bound scattering cross section sigma_i, one should use: sigma = sum_i Ci sigma_i weighted cross section m = [sum_i Ci sigma_i]/[sum_i Ci sigma_i/Mi] weighted mass Reference: H. Schober, Journal of Neutron Research 17 (2014) 109–357 DOI 10.3233/JNR-140016 (see esp. pages 328-331) V.S. Oskotskii, Sov. Phys. Solid State 9 (1967), 420. A. Sjolander, Arkiv for Fysik 14 (1958), 315. W. Reichardt, MUPHOCOR Karlsruhe Report 13.03.01p06L (1984) syntax: Gw = multi_phonons(gw, Ki, T, m, n) Gw = multi_phonons(gw, 'Ki',Ki, 'T',T, 'm',m, 'n',n) Gw = multi_phonons(gw, 'lambda', lambda) Missing arguments (or given as [] empty), are searched within the initial density of states object. Input arguments can be given in order, or with name-value pairs, or as a structure with named fields. input: gw: the vibrational density of states per [meV] [iData] Ki: incident wavevector [Angs-1]. Ki=2*pi/lambda=0.695*sqrt(Ei) T: temperature [K] m: mass [g/mol] phi: detector angles, min and max [deg] n: number of iterations in the series expansion, e.g. 5 DW: Debye-Waller coefficient gamma=<u^2> [Angs^2] e.g. 0.005 The Debye-Waller function is 2W(q)=gamma*q^2 The Debye-Waller factor is exp(-2W(q)) 'lambda','Ei': additional named arguments to specify the incident energy output: Gw: neutron weighted gDOS terms, to be summed [iData_vDOS array] Tp: p-phonon terms [iData array] Example: s=sqw_cubic_monoatomic; gw=dos(s); mp=multi_phonons(gw); gdos=plus(mp); plot( [gw mp ]); See also: iData_Sqw2D/dos, iData_vDOS/incoherent (c) E.Farhi, ILL. License: EUPL.