In [10]:

from crysfipy.reion import re, neutronint, susceptibility as susc
import crysfipy.const as C
import numpy as np

np.set_printoptions(linewidth=130)
np.set_printoptions(precision=2)


# 1) const.py¶

In [13]:

template = """Information about {0.name} ion:
*************************
{0.J2p1:.0f} energy levels, J = {0.J}, gJ = {0.gJ}
alpha = {0.Alpha}, beta = {0.Beta}, gamma = {0.Gamma}
"""
print(template.format(C.ion("Ce")))

Information about ce ion:
*************************
6 energy levels, J = 2.5, gJ = 0.857142857143
alpha = -0.0571428571429, beta = 0.00634920634921, gamma = 0.0



# 2) CF hamiltonian diagonalization¶

In [16]:

# create reion object:
ce = re("Ce", [1,0,0],
["t", -0.173477508,
0.001084591,
-0.012701252,
-3.34835E-06,
0.0000097,
])
ce.calculate()
ce.getlevels()
print(ce)

Energy levels:
E(0) =  0.0000   1fold-degenerated
E(1) =  0.4180   1fold-degenerated
E(2) =  2.0374   1fold-degenerated
E(3) =  2.0787   1fold-degenerated
E(4) =  3.5225   1fold-degenerated
E(5) =  4.7905   1fold-degenerated



# 3) Calculation of susceptibility¶

In [17]:

temps = [5,10,50,100,300]
for T in temps:
print("T = {0} K \tchi_CF = {1} uB/T".format(T, susc(ce, T)))

T = 5 K         chi_CF = 0.0288552475141 uB/T
T = 10 K        chi_CF = 0.00716223624106 uB/T
T = 50 K        chi_CF = 0.000224584463989 uB/T
T = 100 K       chi_CF = 3.65918038894e-05 uB/T
T = 300 K       chi_CF = -4.60660668533e-06 uB/T


# 4) Neutron intensities¶

In [20]:

# tbd