Paramagnetic magnetization

Brillouin functions,
ion by ion

Every isolated magnetic ion saturates along the same curve — only the quantum numbers change. The hard part is knowing which quantum numbers: quenched spin for the 3d shell, full J for the 4f shell, and a short list of ions that obey neither.

M=N gJ J μB BJ(y), y=gJ J μB BkBT
BJ(y)=2J+12Jcoth(2J+12Jy)−12Jcoth(y2J)

In practical units μB/kB = 0.67171 K T−1, so y = 0.67171 gJJ · B[T]/T[K], and the magnetization in Bohr magnetons per ion is simply gJJ BJ(y). Multiply by NAμB = 5585 emu G mol−1 for cgs molar units.

Interactive

Magnetization curves

Pick ions from either family. Curves are computed from the Hund's-rule ground state; for 3d ions you can switch between the quenched (spin-only) and free-ion descriptions and watch the saturation moment move.

Horizontal axis
Max B/T5.0 T/K
Vertical axis
3d ions use

Spin-only is the physically right choice for almost all 3d ions. 4f ions always use J and gJ.

C is the molar Curie constant in emu K mol−1 Oe−1, equal to μeff2/8; inverting, μeff = 2.828 √C. Msat = gJJ is the fully polarized moment the curve approaches.

Which quantum numbers

Two shells, two answers

The choice between S and J is decided by one competition: crystal-field splitting against spin–orbit coupling. The 3d and 4f shells sit on opposite sides of it, which is why the same formula needs different inputs.

3d transition metals

Crystal field wins · orbital moment quenched

The 3d orbitals are the outermost occupied shell. They point directly at the ligands, so the crystal field (Δ ≈ 104 cm−1) dwarfs spin–orbit coupling (λ ≈ 102–103 cm−1).

A crystal field of cubic or lower symmetry leaves a ground state that can be written as a real orbital wavefunction, and a real function carries ⟨Lz⟩ = 0. The orbital moment is quenched: J → S, gJ → 2, and μeff = 2√(S(S+1)).

Free-ion J is the wrong input here, and badly so for the second half of the series: it predicts 6.63 μB for Co2+ against ~4.8 observed, and 5.59 for Ni2+ against ~3.2.

Residual orbital contributions survive where the ground term is orbitally degenerate — octahedral Co2+ (4T1g) and Fe2+ (5T2g) both run above spin-only, and Co2+ in particular is strongly anisotropic and temperature-dependent. Low-spin configurations change S outright.

Use S with g ≈ 2. Fit g, don't assume it.

4f rare earths

Spin–orbit wins · J is a good quantum number

The 4f orbitals lie inside the filled 5s25p6 shells. Ligands barely reach them, so the crystal field is only ~102 cm−1 while spin–orbit coupling is ~103 cm−1 — the ordering is reversed.

L and S stay coupled into a well-isolated Hund's-rule multiplet, so the free-ion answer is the right one: μeff = gJ√(J(J+1)) with the Landé g-factor. Agreement across the series is excellent, typically within a few percent.

Two ions break it. Sm3+ and Eu3+ have small spin–orbit splittings, so excited J multiplets are thermally populated at room temperature and van Vleck terms contribute. Eu3+ has a J = 0 ground state — the free-ion prediction is exactly zero, yet ~3.4 μB is measured, almost all of it from the 7F1 level ~370 cm−1 above.

The catch is at low temperature. Once kBT drops below the crystal-field splitting of the 2J+1 manifold, the free-ion BJ stops applying: a Kramers ion is left with a doublet ground state that behaves as an effective S = 1/2 with a strongly anisotropic g.

Use J and gJ — above ~50 K.

Evidence

Calculated against measured

The same two predictions — spin-only and free-ion — plotted against representative room-temperature values for hydrated salts. The measurement is the black ring; whichever prediction sits on top of it is the correct description of that shell.

Observed values are representative room-temperature μeff for hydrated salts (the standard Kittel / Van Vleck compilation). Real compounds scatter around these — Co2+ spans roughly 4.3–5.2 μB depending on symmetry and temperature — so treat them as a guide to which model applies, not as reference data.

Reference

Ground states and moments

Hund's-rule ground terms, Landé factors and both μeff predictions. Click any row to put that ion on the plot above.

3d transition metal ions
IonConfigTermSLJgJ μ free-ionμ spin-onlyμ observed

μeff in Bohr magnetons. Free-ion = gJ√(J(J+1)); spin-only = 2√(S(S+1)). The column that tracks the observed values is spin-only — the free-ion column is shown to make the size of the quenching visible, not because it should be used. d4 is the extreme case: J = 0 predicts no moment at all for an ion carrying S = 2.

4f rare earth ions (trivalent)
IonConfigTermSLJgJ μ free-ionμ spin-onlyμ observed

Here the free-ion column is the one that works, and it works nearly everywhere. Sm3+ and Eu3+ are the exceptions, both from low-lying excited J multiplets. Gd3+ agrees with both models for the trivial reason that L = 0, which is also why it is the workhorse ion for testing BJ experimentally.

Numerics

The one trap in the implementation

At small y both coth terms diverge, and you are subtracting two nearly equal large numbers — catastrophic cancellation, sitting exactly in the low-field, high-temperature regime where most susceptibility data live. Evaluated naïvely, J = 7/2 at y = 10−6 is already wrong in the fifth digit, and it degrades as y falls.

Switch to the series expansion below y ≈ 10−3. Its leading term (J+1)/3J is exactly what reproduces Curie's law, so the crossover is also the natural place to check that the two branches agree.

import numpy as np

def brillouin(J, y):
    y = np.atleast_1d(np.asarray(y, float))
    a, b = (2*J+1)/(2*J), 1/(2*J)
    out = np.empty_like(y)
    s = np.abs(y) < 1e-3                       # series branch
    out[s]  = (J+1)/(3*J)*y[s] - (J+1)*((J+1)**2+J**2)/(90*J**3)*y[s]**3
    out[~s] = a/np.tanh(a*y[~s]) - b/np.tanh(b*y[~s])
    return out

def M_muB(J, g, B_T, T_K):                     # magnetization in mu_B per ion
    return g*J*brillouin(J, 0.67171*g*J*B_T/T_K)

Checks it should pass: B1/2(y) = tanh y to machine precision; J → ∞ recovers the Langevin function coth y − 1/y; the y → 0 slope is (J+1)/3J, which gives χ = NμB2g2J(J+1)/3kBT.

Limits

When a BJ fit stops meaning anything

A returned "J" from a least-squares fit is only physical if the assumptions behind the function hold. These are the situations where it does not.