(spinw-horace-sqw)= # spinw.horace_sqw method as the back-end function to calculate the convolution. >> weight = swobj.horace_sqw(qh,qk,ql,en,pars,swobj,pars,kwpars) Input: ------ qh,qk,ql,en Arrays containing points at which to evaluate sqw from the broadened dispersion pars Arguments needed by the function. - pars = [model_pars scale_factor resolution_pars] - Should be a vector of parameters - The first N parameters relate to the spin wave dispersion and correspond to spinW matrices in the order defined by the 'mat' option [N=numel(mat)] - The next M parameters relate to the convolution parameters corresponding to the convolution function defined by the 'resfun' option (either one or two parameters depending on function type. - The last parameter is a scale factor for the intensity If this is omitted, a scale factor of 1 is used; kwpars - A series of 'keywords' and parameters. Specific to this function is: - 'resfun' - determines the convolution / resolution function to get S(q,w). It can be either a string: 'gauss' - gaussian with single fixed (fittable) FWHM 'lor' - lorentzian with single fixed (fittable) FWHM 'voigt' - pseudo-voigt with single fixed (fittable) FWHM @fun - a function handle satisfying the requirements of the 'fwhm' parameter of disp2sqw. NB. For 'gauss' and 'lor' only one fwhm parameter may be specified. For 'voigt', fwhm = [width lorz_frac] contains two parameters - the fwhm and lorentzian fraction [default: 'gauss'] - 'partrans' - a function to transform the fit parameters This transformation will be applied before each iteration and the transformed input parameter vector passed to spinW and the convolution function. [default: @(y)y % identity operation] - 'coordtrans' - a matrix to transform the input coordinates (qh,qk,ql,en) before being sent to SpinW. [default: eye(4) % identity] In addition, the following parameters are used by this function and will also be passed on to spinw.matparser which will do the actual modification of spinW model parameters: - 'mat' - A cell array of labels of spinW named 'matrix' or matrix elements. E.g. {'J1', 'J2', 'D(3,3)'}. These will be the model parameters to be varied in a fit, their order in this cell array will be the same as in the fit parameters vector. [default: [] % empty matrix - no model parameters] All other parameters will be passed to spinW. See the help for spinw/spinwave, spinw/matparser and spinw/sw_neutron for more information. swobj The spinwave object which defines the magnetic system to be calculated. Output: ------- weight Array with spectral weight at the q,e points If q and en given: weight is an nq x ne array, where nq is the number of q points, and ne the number of energy points If qw given together: weight has the same size and dimensions as q{1} i.e. qh Example: -------- tri = sw_model('triAF',[5 1]); % J1=5, J2=1 (AFM) spinw_pars = {'mat', {'J1', 'J2'}, 'hermit', true, ... 'useMex', true, 'optmem', 100}; [wf,fp] = fit_sqw(w1, @tri.horace_sqw, {[J1 J2 fwhm] spinw_pars});