Home > Applications > Horace > @sqw > dispersion.m

iFit/dispersion

PURPOSE ^

Calculate dispersion relation for dataset or array of datasets.

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

 Calculate dispersion relation for dataset or array of datasets. 

   >> wdisp = dispersion (win, dispreln, p)            % dispersion only
   >> [wdisp,weight] = dispersion (win, dispreln, p)   % dispersion and spectral weight

 The output dataset (or array of data sets), wdisp, will retain only the Q axes, and
 the signal array(s) will contain the values of energy along the Q axes. If the
 dispersion relation returns the spectral weight, this will be placed in the error
 array (actually the square of the spectral weight is put in the error array). In the
 case when the dispersion has been calculated on a plane in momentum (i.e. wdisp
 is IX_datset_2d) then the plot function ps2 (for plot_surface2)
   >> ps2(wdisp)
 will plot a surface with the z axis as energy and coloured according to the spectral
 weight.

 The dispersion relation is calculated at the bin centres (that is, the individual pixel
 information in a sqw input object is not used).

 If the function that calculates dispersion relations produces more than one
 branch, then in the case of a single input dataset the output will be an array
 of datasets, one for each branch. If the input is an array of datasets, then only
 the first dispersion branch will be returned, so there is one output dataset per
 input dataset.

 Input:
 ======
   win          Dataset that provides the axes and points for the calculation
                If one of the plot axes is energy transfer, then the output dataset
               will have dimensionality one less than the input dataset

   dispreln     Handle to function that calculates the dispersion relation w(Q)
               Must have form:
                   w = dispreln (qh,qk,ql,p)
                where
                   qh,qk,ql    Arrays containing the coordinates of a set of points
                              in reciprocal lattice units
                   p           Vector of parameters needed by dispersion function 
                              e.g. [A,js,gam] as intensity, exchange, lifetime
                   w           Array of corresponding energies, or, if more than
                              one dispersion relation, a cell array of arrays.

               More general form is:
                   w = dispreln (qh,qk,ql,p,c1,c2,..)
                 where
                   p           Typically a vector of parameters that we might want 
                              to fit in a least-squares algorithm
                   c1,c2,...   Other constant parameters e.g. file name for look-up
                              table

   p           Arguments needed by the function. Most commonly, a vector of parameter
              values e.g. [A,js,gam] as intensity, exchange, lifetime. If a more general
              set of parameters is required by the function, then
              package these into a cell array and pass that as pars. In the example
              above then pars = {p, c1, c2, ...}


 Output:
 =======
   wdisp       Output dataset or array of datasets. Output is always dnd-type.
               The output dataset (or array of data sets) will retain only the Q axes, the
              the signal array(s) will contain the values of energy along the Q axes, and
              the error array will contain the square of the spectral weight.
               If the function that calculates dispersion relations produces more than one
              branch, then in the case of a single input dataset the output will be an array
              of datasets, one for each branch. If the input is an array of datasets, then only
              the first dispersion branch will be returned, so there is one output dataset per
              input dataset.

   weight      Mirror output: the signal is the spectral weight, and the error array
               contains the square of the frequency.

   e.g.        If win is a 2D dataset with Q and E axes, then wdisp is a 1D dataset
              with just the Q axis
%   Overloaded methods:
      sqw/dispersion
      sqw/dispersion
      d4d/dispersion
      d3d/dispersion
      d2d/dispersion
      d1d/dispersion
      d0d/dispersion

CROSS-REFERENCE INFORMATION ^

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