


model=rietveld(sample, instrument, ....) Rietveld refinement of powder/single crystal
This function builds a fit model from:
* a sample structure
* a McCode instrument model (usually a diffractometer)
The model can then be used for refinement as a usual fit model:
fits(model, data_set, parameters, options, constraints)
MODEL CREATION
Any powder structure can be entered, and there is no limitation on the number
of parameters/atoms in the cell. The powder/crystal model takes into account
Biso (thermal motions), charge, occupancy, spin
Equally, the instrument model can be of any complexity, including sample
environments, other sample phases (incl. amorphous), multi-dimensional PSD
detectors, ... It is possible to specify which monitor file to use from
the McCode instrument. The instrument resolution function is not computed
using the legacy Caglioti formalism, but is fully convoluted with the
sample component from the McStas instrument description.
The default, and recommended, instrument is templateDIFF, but others are possible
including TOF-diffractometers, PSD-diffractometers, and even Laue.
Once set, the fit parameters may be constraint with either the usual 'constraints'
argument to 'fits', or by setting the model constraints such as:
model.Sample_a = 'fix'; % fix 'a' lattice parameter
model.Sample_alpha = [80 110]; % restrict alpha lattice angle in degrees
Parameters of the model can be entered as any of:
* a structure with one field 'structure.<atom>' per atom in the cell, named from the atom, e.g.
p.structure.Al1=[x y z {Biso occ spin charge}] where {Biso occ spin charge} are optional
p.Al1 =[...] can also be used for a compact specification (see exemple below).
plus additional fields
p.cell=[a b c alpha beta gamma] lattice cell parameters (Angs and deg)
p.Spgr='space group' as Number, Hall or Hermman-Mauguin
In addition, the 'CFML_write' field allows to set the name of the intermediate
reflection file written by the CrysFML routines, and usable by the PowderN
and Isotropic_Sqw McStas components. The default intermediate file is
'reflections.laz'.
The optional 'mode' argument to the sample description can be 'p' for powders
(default) or 'x' for single crystal.
* a vector array where Z is the atomic number
p=[ a b c alpha beta gamma (Z x y z Biso occ spin charge) (...) ... ]
* a CIF/CFL/PCR/shellX file name from which structure is extracted.
* a McCode instrument description file name (.instr extension) to specify
the instrument model to use. The default instrument is 'templateDIFF.instr'
* a char with label/value pairs separated by ';' to build a structure.
* the string 'defaults' or 'gui' to use a default model, or pop-up dialogue box.
* All additional arguments are sent to the instrument model.
MODEL EVALUATION
The dimensionality and axes of the model is that of the monitor in the instrument,
and its parameters are that from the sample with that of the instrument.
Example: refine a NaCaAlF powder structure with the templateDIFF McStas instrument
Sample.title = 'Na2Ca3Al2F14';
Sample.cell = [10.242696 10.242696 10.242696 90.000 90.000 90.000];
Sample.Spgr = 'I 21 3';
Sample.Ca1 = [0.46737 0.00000 0.25000 0.60046 0.50000 0.0 2.0];
Sample.Al1 = [0.24994 0.24994 0.24994 0.18277 0.33333 0.0 3.0];
Sample.Na1 = [0.08468 0.08468 0.08468 2.25442 0.33330 0.0 1.0];
Sample.F1 = [0.13782 0.30639 0.12023 0.56669 1.00000 0.0 -1.0];
Sample.F2 = [0.36209 0.36363 0.18726 1.42140 1.00000 0.0 -1.0];
Sample.F3 = [0.46123 0.46123 0.46123 0.88899 0.33333 0.0 -1.0];
The resulting hklF2 file 'reflections.laz' will be used by the instrument Powder
parameter and the model is computed at constant wavelength lambda=2.36 (given as char)
f = rietveld(Sample, 'templateDIFF.instr',' Powder=reflections.laz; lambda="2.36"');
you may plot the model (using McStas) in the [10 170] angular range:
plot(f, f.Guess, linspace(-.2,.2,50),linspace(10,170,300));
Then 'f' is an iFunc Rietveld model. Then perform the Rietveld refinement:
p = fits(measurement, f); % where measurement holds a measured powder diffractogram
See also: mccode, iFunc, iData, iFunc/fits
(c) E.Farhi, ILL. License: EUPL.