\(\renewcommand\AA{\unicode{x212B}}\)
CrystalFieldMultiSpectrum¶
Description¶
This function calculates multiple spectra of a crystal electric field acting upon a rare earth ion. It is a part of crystal field computation in Mantid and under active development. More documentation will follow as the development progresses.
Here is an example of how to fit function’s parameters to a spectrum. All parameters disallowed by symmetry are fixed automatically. Any other parameters that need fixing has to be tied explicitly. Peak centres (in meV) and intensities (in mb/sr) are also fixed and computed from the field parameters with the CrystalFieldPeaks function. Any other peak parameter can be set using the “f-index-dot-name” syntax (see CompositeFunction for more details).
import numpy as np
# Build a reference data set
fun = 'name=CrystalFieldMultiSpectrum,Ion=Ce,Temperatures=(44, 150),ToleranceIntensity=0.1,B20=0.37737,B22=3.9770,B40=-0.031787,B42=-0.11611,B44=-0.12544'
fun += ',f0.f1.FWHM=1.6,f0.f2.FWHM=2.0,f0.f3.FWHM=2.3,f1.f1.FWHM=1.6,f1.f2.FWHM=2.5,f1.f3.FWHM=3,f1.f4.FWHM=1'
# This creates a (empty) workspace to use with EvaluateFunction
x = np.linspace(0, 55, 200)
y = x * 0
e = y + 1
ws = CreateWorkspace(x, y, e)
# The calculated data will be in 'data', WorkspaceIndex=1
EvaluateFunction(fun, InputWorkspace=ws, InputWorkspace_1=ws, OutputWorkspace='data')
# Change parameters slightly and fit to the reference data
fun = 'name=CrystalFieldMultiSpectrum,Ion=Ce,Temperatures=(44, 150),ToleranceIntensity=0.1,Symmetry=C2v,B20=0.37,B22=3.9,B40=-0.03,B42=-0.11,B44=-0.12'
fun += ',f0.f1.FWHM=2,f0.f2.FWHM=2,f0.f3.FWHM=2,f1.f1.FWHM=2,f1.f2.FWHM=2,f1.f3.FWHM=2,f1.f4.FWHM=2'
fun += ',ties=(B60=0,B62=0,B64=0,B66=0,BmolX=0,BmolY=0,BmolZ=0,BextX=0,BextY=0,BextZ=0)'
# (set MaxIterations=0 to see the starting point)
Fit(fun, InputWorkspace='Workspace_0', WorkspaceIndex=1,
                   InputWorkspace_1='Workspace_1', WorkspaceIndex_1=1,
                   Output='fit',MaxIterations=100, CostFunction='Unweighted least squares')
# Using Unweighted least squares fit because the data has no errors.
Attributes (non-fitting parameters)¶
| Name | Type | Default | Description | 
|---|---|---|---|
| Ion | String | Mandatory | An element name for a rare earth ion. Possible values are: Ce, Pr, Nd, Pm, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb. | 
| Symmetry | String | C1 | A symbol for a symmetry group. Setting Symmetry automatically zeros and fixes all forbidden parameters. Possible values are: C1, Ci, C2, Cs, C2h, C2v, D2, D2h, C4, S4, C4h, D4, C4v, D2d, D4h, C3, S6, D3, C3v, D3d, C6, C3h, C6h, D6, C6v, D3h, D6h, T, Td, Th, O, Oh | 
| ToleranceEnergy | Double | \(10^{-10}\) | Tolerance in energy in meV. If difference between two or more energy levels is smaller than this value they are considered degenerate. | 
| ToleranceIntensity | Double | \(10^{-1}\) | Tolerance in intensity (in mb/sr). If difference between intensities of two or more transitions is smaller than this value the transitions are considered degenerate. | 
| Background | String | FlatBackground | A name of a function to describe the background. | 
| PeakShape | String | Lorentzian | A name of a function (peak type) to describe the shape of each peak. Currently Lorentzian (default) and Gaussian sre supported. | 
| Temperatures | List of doubles | [1.0] | Temperatures of each spectrum in Kelvin. | 
| FWHMs | List of double | [0.0] | The default full peak widths at half maximum for each spectrum. If not set explicitly via function parameters the peaks will have this width (not fixed). | 
| FixAllPeakParameters | Bool | False | If True fix all parameters of the peak functions. The only parameters that will vary will be the field parameters. | 
If the peak functions have any own attributes they can be accessed using the “f-index-dot-name” syntax (see CompositeFunction for more details).
Properties (fitting parameters)¶
| Name | Default | Description | 
|---|---|---|
| BmolX | 0.0 | The x-component of the molecular field. | 
| BmolY | 0.0 | The y-component of the molecular field. | 
| BmolZ | 0.0 | The z-component of the molecular field. | 
| BextX | 0.0 | The x-component of the external field. | 
| BextY | 0.0 | The y-component of the external field. | 
| BextZ | 0.0 | The z-component of the external field. | 
| B20 | 0.0 | Real part of the B20 field parameter. | 
| B21 | 0.0 | Real part of the B21 field parameter. | 
| B22 | 0.0 | Real part of the B22 field parameter. | 
| B40 | 0.0 | Real part of the B40 field parameter. | 
| B41 | 0.0 | Real part of the B41 field parameter. | 
| B42 | 0.0 | Real part of the B42 field parameter. | 
| B43 | 0.0 | Real part of the B43 field parameter. | 
| B44 | 0.0 | Real part of the B44 field parameter. | 
| B60 | 0.0 | Real part of the B60 field parameter. | 
| B61 | 0.0 | Real part of the B61 field parameter. | 
| B62 | 0.0 | Real part of the B62 field parameter. | 
| B63 | 0.0 | Real part of the B63 field parameter. | 
| B64 | 0.0 | Real part of the B64 field parameter. | 
| B65 | 0.0 | Real part of the B65 field parameter. | 
| B66 | 0.0 | Real part of the B66 field parameter. | 
| IB21 | 0.0 | Imaginary part of the B21 field parameter. | 
| IB22 | 0.0 | Imaginary part of the B22 field parameter. | 
| IB41 | 0.0 | Imaginary part of the B41 field parameter. | 
| IB42 | 0.0 | Imaginary part of the B42 field parameter. | 
| IB43 | 0.0 | Imaginary part of the B43 field parameter. | 
| IB44 | 0.0 | Imaginary part of the B44 field parameter. | 
| IB61 | 0.0 | Imaginary part of the B61 field parameter. | 
| IB62 | 0.0 | Imaginary part of the B62 field parameter. | 
| IB63 | 0.0 | Imaginary part of the B63 field parameter. | 
| IB64 | 0.0 | Imaginary part of the B64 field parameter. | 
| IB65 | 0.0 | Imaginary part of the B65 field parameter. | 
| IB66 | 0.0 | Imaginary part of the B66 field parameter. | 
| f0.f0.A0 | 0.0 | coefficient for linear term | 
| f0.f1.Amplitude | 0.0 | Intensity scaling | 
| f0.f1.PeakCentre | 0.0 | Centre of peak | 
| f0.f1.FWHM | 0.0 | Full-width at half-maximum | 
| f0.f2.Amplitude | 0.0 | Intensity scaling | 
| f0.f2.PeakCentre | 0.0 | Centre of peak | 
| f0.f2.FWHM | 0.0 | Full-width at half-maximum | 
Categories: FitFunctions | General
Source¶
C++ header: CrystalFieldMultiSpectrum.h
C++ source: CrystalFieldMultiSpectrum.cpp