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

iFit/dispersion

PURPOSE ^

Calculate dispersion relation for dataset or array of datasets.

SYNOPSIS ^

function [wdisp,weight]=dispersion(win,varargin)

DESCRIPTION ^

 Calculate dispersion relation for dataset or array of datasets. 

 The output dataset (or array of data sets) will retain only the Q axes, and
 the signal array(s) will contain the values of energy along the Q axes.

 The dispersion relation is calculated at the bin centres. 

 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.

   >> wout=dispersion(win,dispreln,p)

 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.

   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

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