Reference¶

class crysfipy.reion.cfpars(*args, **kwargs)

Class representing set of crystal field parameters.

It simplifies the creation of the CF parameter sets considering symmetry of the environment. Other modules expect that CF parameters are in meV (SI units). But if you just want to diagonalize Hamiltonian, it is possible to use K (and results will be in K).

Initialization can be done with named arguments or without. If arguments are not named, symmetry is considered from the first string argument. Stevens parameters are considered differently for different symmetries in following order:

cubic: B40, B60
hexagonal: B20, B40, B44, B66
tetragonal: B20, B40, B44, B60, B64
orthorombic: B20, B22, B40, B42, B44, B60, B62, B64, B66
BXY

float, optional – Attribute corresponding to $$B_X^Y$$ Stevens Parameters. See Hutchings. If at least one CF parameter is specified as a named argument, non-named numerical parameters are ignored.

sym

str, optional – Symmetry of the crystal field

c - cubix
h - hexagonal
t - tetragonal
o - orthorombic (default)

Examples

Create set of CF parameters by named parameters:

>>> print(cfpars(sym = "c", B40 = 10))
Set of CF parameters for cubic symmetry:
B40 = 10.0000
B60 = 0.0000
B44 = 50.0000
B64 = 0.0000

Use of non-named parameters:

>>> print(cfpars("c", 10, 1))
Set of CF parameters for cubic symmetry:
B40 = 10.0000
B60 = 1.0000
B44 = 50.0000
B64 = -21.0000
crysfipy.reion.neutronint(ion, T, direction='t')

Returns matrix of energy and transition intensity at given temperature

Parameters: ion (crysfipy.reion.re) – Rare-earth ion object T (float) – temperature in K direction (str) – Direction of the Q in which to calculate t - powder (default) x - using $$J_x$$ y - using $$J_y$$ z - using $$J_z$$
class crysfipy.reion.re(name, field, cfp, calculate=True)

Object representing rare-earth ion in CF potential

name

str – Name of the ion.

field

1D array of floats – external magnetic field applied in T.

cfp

crysfipy.reion.cfpars – Crystal field parameters

calculate

bool, optional – If true (default) then it automatically diagonalizes Hamiltonian and calculates energy levels.

Examples

>>> ce = re("Ce", [0,0,0], ["c", 10])
>>> print(ce)
Energy levels:
E(0) =  0.0000   2fold-degenerated
E(1) =  3600.0000        4fold-degenerated
getlevels()

Calculate degeneracy of the levels and sort the matrix

crysfipy.reion.susceptibility(ion, T)

Returns susceptibility calculated for given ion at given temperature