Home > Objects > iData_subclasses > @iData_vDOS > multi_phonons.m



iData_vDOS: multi_phonons: compute the integrated multi-phonon generalised density of states (gDOS) from an initial vibrational density of states (vDOS)


function [Gw, Tsym] = multi_phonons(gw, varargin)


 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

   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)

   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.

   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

   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.


This function calls: This function is called by:
Generated on Mon 26-Nov-2018 15:08:42 by m2html © 2005. iFit (c) E.Farhi/ILL EUPL 1.1