crystal-field

The crystal field Hamiltonian for a single atomic site is defined as

\[\mathcal{H} = \sum_{l=2,4,6} A_l(J) \sum_{m=-l\dots l} B_{l,-m} (-1)^m d_{l}^{0m}(\theta)e^{-i m \phi}\]

with the definition

\[d_{l}^{0m}(\theta) = \sqrt{\frac{(l-m)!}{(l+m)!}}P_{l}^{m}(\cos\theta) = (-1)^m d_l^{0-m}(\theta)\]

and

\[\begin{split}A_2(J) &= J (J - 1/2) \alpha_J \\ A_4(J) &= J (J - 1/2) (J - 1) (J - 3/2) \beta_J\\ A_6(J) &= J (J - 1/2) (J - 1) (J - 3/2) (J - 2) (J - 5/2) \gamma_J\end{split}\]

with Stevens factors \(\alpha_J\), \(\beta_J\), \(\gamma_J\) and \(J\) from Hund’s rules. \(B_{l,m}\) is a complex crystal field coefficient.

The Hamiltonian is only implemented for \(l=2,4,6\).

Note

This Hamiltonian can be equivalently written in terms of spherical harmonics as

\[\mathcal{H} = \sum_{l=2,4,6} A_l(J) \sum_{m=-l\dots l} B_{l,-m} \sqrt{\frac{4\pi}{2l+1}}Y_{l,-m}(\theta, \phi).\]

or tesseral harmonics as

\[\mathcal{H} = \sum_{l=2,4,6} A_l(J) \sum_{m=-l\dots l} C_{l,m} Z_{l-m}(\theta, \phi)\]

where the tesseral harmonics are defined as

\[\begin{split}Z_{l,m}(\theta,\phi) = \begin{cases} \sqrt{2}\Re(Y_{l,m}) & m > 0 \\ Y_{l,0} & m = 0\\ \sqrt{2}\Im(Y_{l,m}) & m < 0. \end{cases}\end{split}\]

and the coefficients \(C_{l,m}\) are

\[\begin{split}C_{l,m} = \begin{cases} \sqrt{\frac{2\pi}{2l + 1}}B_{l,-m} & m \neq 0 \\ \sqrt{\frac{4\pi}{2l + 1}}B_{l,0} & m = 0\\ \end{cases}\end{split}\]

The input for JAMS is \(J\), \(\alpha_J\), \(\beta_J\), \(\gamma_J\) and \(B_{l,m}\) for each material or unit cell position.

Settings

energy_units (optional | string)

Energy units of the crystal field coefficients in one of the JAMS supported units

energy_cutoff (required | float)

Coefficients with an absolute value less than this (technically tesseral coefficient \(|C_{l,m}| < E_{\mathrm{cutoff}}\)) will be set to zero. This setting is also used to check that the imaginary part of the energy is less than \(E_{\mathrm{cutoff}}\) after conversion from complex crystal field coefficients \(B{l,m}\) to tesseral coefficients \(C{l,m}\). If this check fails then JAMS will error and the input should be checked. Units for the cutoff are the same as energy_units so the cutoff and the interpretation of a negligible energy should be with respect to these units.

crystal_field_spin_type (required | "up" or "down")

The crystal field input file contains data for both spin up and spin down. This setting selects which data to use. The choice should be made based on the physics of the local moment and the filling of the f-shell.

crystal_field_coefficients (required | list)

A list of the crystal field parameters for each material or unit cell position. Each list element is another list with the format: (material, J, alphaJ, betaJ, gammaJ, cf_param_filename), where material can be a material name or unit cell position, and cf_param_filename is a filename for the file which contains the crystal field coefficients \(B_{l,m}\) for that material.

Crystal Field File Format

The crystal field input file should have columns of data in the format l m upRe upIm dnRe dnIm which are \(l\), \(m\), \(\Re(B_{l,m}^{\uparrow})\), \(\Im(B_{l,m}^{\uparrow})\), \(\Re(B_{l,m}^{\downarrow})\), \(\Im(B_{l,m}^{\downarrow})\) with the units given in the energy_units setting. Coefficients should only be given for \(l=0,2,4,6\) and \(m = -l \dots l\). Any missing coefficients will be set to zero.

Example

hamiltonians = (
  {
    module = "crystal-field";
    debug = false;
    energy_units = "Kelvin"
    energy_cutoff = 1e-1;
    crystal_field_spin_type = "down";
    crystal_field_coefficients = (
      ("Tb", 6, -0.01010101, 0.00012244, -0.00000112, "Tb.CFparameters.dat"));
  }
);