CrystalFieldSpectrum

Description

This function calculates a spectrum 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 and intensities 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).

The x-axis is given in meV, and the intensity (y-axis) is in milibarn per steradian per meV.

import numpy as np

# Build a reference data set
fun = 'name=CrystalFieldSpectrum,Ion=Ce,Temperature=44,ToleranceIntensity=0.001,B20=0.37737,B22=3.9770,B40=-0.031787,B42=-0.11611,B44=-0.12544,'
fun += 'f0.FWHM=1.6,f1.FWHM=2.0,f2.FWHM=2.3'

# 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, ws, OutputWorkspace='data')

 # Change parameters slightly and fit to the reference data
fun = 'name=CrystalFieldSpectrum,Ion=Ce,Symmetry=C2v,Temperature=44,ToleranceIntensity=0.002,B20=0.37,B22=3.9,B40=-0.03,B42=-0.1,B44=-0.12,'
fun += 'f0.FWHM=2.2,f1.FWHM=1.8,f2.FWHM=2.1,'
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, 'data', WorkspaceIndex=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
Temperature Double 1.0 A temperature in Kelvin.
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^{-3} Tolerance in intensity. If difference between intensities of two or more transitions is smaller than this value the transitions are considered degenerate.
PeakShape String Lorentzian A name of a function (peak type) to describe the shape of each peak. Currently Lorentzian (default) and Gaussian sre supported.
FWHM Double 0.0 The default full peak width at half maximum. If not set explicitly via function parameters the peaks will have this width (not fixed).

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.
IntensityScaling 1.0 A scaling factor for peak intensities.
f0.Amplitude 310.379996869 Intensity scaling
f0.PeakCentre 0.0 Centre of peak
f0.FWHM 0.0 Full-width at half-maximum
f1.Amplitude 0.0 Intensity scaling
f1.PeakCentre 0.0 Centre of peak
f1.FWHM 0.0 Full-width at half-maximum

Categories: FitFunctions | General

Source

C++ source: CrystalFieldSpectrum.cpp (last modified: 2019-07-17)

C++ header: CrystalFieldSpectrum.h (last modified: 2018-10-05)