\(\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