


 iFunc_Sqw4D: dos: compute the density of states (vDOS)
  The routine can be used with 4D models to compute the vibrational density of 
   states (vDOS), aka phonon spectrum.
    DOS = dos(s)    returns the vibrational density of states (vDOS)
      the vDOS and the partials per mode are also stored in the model UserData.
    DOS = dos(s, n) 
      does the same with n-bins on the vDOS (n=100). 
      'n' can also be a vector of energy values.
    DOS = dos(s, n, nQ) 
      does the same with nQ-bins for the HKL average (n=21)
    DOS = dos(s, n, nQ, method) 
      specifies the method among '4d', 'powder' and 'fast' estimate.
    To smooth the resulting distribution, use:
      sDOS = smooth(DOS); plot(sDOS);
    If the DOS has already been calculated, it is re-used. To force calculation
    use a non-0 value or 'force' for 'n'.
 input:
   s:      S(q,w) 4D model (iFunc_Sqw4D)
   n:      number/vector of energy values (scalar/vector). Optional. Default is nmodes*10
   nQ:     number of Q-grid binning (integer). Optional. Default is 21
   method: optional, can be '4D' (default) or 'powder' or 'fast'
 output:
   DOS:          DOS(w)   (1D iData versus energy)
   DOS_partials: DOS(w) per mode (1D iData array, versus energy)
 See also: iFunc_Sqw4D/max
 Example: Sqw=sqw_cubic_monoatomic; D=dos(Sqw);
 (c) E.Farhi, ILL. License: EUPL.