CFLevels class - asche1/PyCrystalField GitHub Wiki

CFLevels

class CELevels(self, StevensOperators, Parameters)

Creates a crystal field Hamiltonian and calculates observable quantities from it. Assumes the weak-coupling scheme, and only works for rare-earth ions.

Parameters

  • Stevens Operators: list of Stevens Operator matrices (generated by the StevensOp function)
  • Parameters: list of CEF parameters. This list is multiplied element-wise by the Stevens operators to generate the Hamiltonian.

Note that the __init__ method described above is more suited for fit functions than user-provided Hamiltonians. The preferred class method is the Bdict method below:

Bdict class method:

CFLevels.bdict(ion, Bdict)

Creates a CFLevels object where the user provides only the labels for Stevens Operators, not the operators themselves.

Parameters

  • ion: string, giving the RE ion to be calculated ("Yb3+", "Ho3+", etc.).
  • Bdict: dictionary, giving the CEF parameters Bnm and values. Example: {'B20':-0.42, 'B40': 0.02, 'B44':0.13}.

Hamiltonian class method:

CFLevels.Hamiltonian(Hamil)

This is where the user provides a square matrix Hamiltonian to the object. This is most useful for fitting routines, because it saves the step of looking up and multiplying the Stevens Operators.

Attributes

  • H: CEF Hamiltonian in matrix form
  • B: list of CEF parameters
  • J: Total angular momentum quantum number of the central ion
  • eigenvalues: numpy array giving the energy eigenvalues of H
  • eigenvectors: numpy array giving the energy eigenvectors of H

Functions

Function Description
diagonalize ?
diagonalize_banded
neutronSpectrum
neutronSpectrum_customLineshape
normalizedNeutronSpectrum
normalizedNeutronSpectrum_customLineshape
neutronSpectrum2D
printEigenvectors
printLaTexEigenvectors
gsExpectation
magnetization
susceptibility
gtensor
fitdata