User and Programmers Guide to the Neutron Ray-Tracing Package McStas, version 3.8.6

5.1  The Polarization Vector

The spin of the neutron is represented by an operator \(\so \) for which only a single component can be measured at one time. Each single measurement will give a value \(\pm 1/2\), but if we could make a large number of measurements on the same neutron state, in each of the three axis directions, and then make the average we get \(\langle \so \rangle \). The polarization vector, \(\PB \), is then defined as: \begin {equation} \label {eq:pol_single} \PB = \frac {\langle \so \rangle }{s}, \end {equation} so that \(-1 \leq |\PB | \leq +1\)

For a neutron beam which contains \(N\) neutrons, each with a polarization \(\PB _i\), the beam polarization is defined as: \begin {equation} \label {eq:pol_beam} \PB = \frac {\sum _i \PB _i}{N}. \end {equation}

If we have one common quantization direction (e.g. a magnetic field direction) each neutron will either be spin up, \(\uparrow \), or spin down, \(\downarrow \), and the polarization can be expressed as:

\begin {equation} \label {eq:pol} P = \frac {\nup -\nd }{\nup +\nd }, \end {equation}

where \(\nu \) (\(\nd \)) is the number of neutrons with spin up (down).

For a given neutron the probability of the neutron being spin up, \(\Pu \), is:

\begin {equation} \label {eq:prob_spinup} \Pu = \frac {\nup }{\nup +\nd } = \frac {\nup + (\nd -\nd )/2}{\nup +\nd } = \frac {1+P}{2}, \end {equation}

and \(\Pd = 1-\Pu = (1-P)/2\).

The expectation value of the ’spin’ operator, \(\sigmao \), which can be expressed by the Pauli matrices, is the polarization vector \(\PB \), \(\PB = \langle \sigmao \rangle \equiv \langle \chi | \sigmao | \chi \rangle \). The most general form of the spin wave-function \(\chi \) for a neutron (spin 1/2) is:

\begin {equation} \label {eq:neutron_wave} \chi = a\chi _\uparrow + b\chi _\downarrow , \end {equation}

where \(\chi _\uparrow \) and \(\chi _\downarrow \) are eigenfunction of \(\hat {\sigma }^z\), and the complex coefficients \(a\) and \(b\) satisfy \(|a|^2 + |b|^2 = 1\).

By calculation we find:

\begin {eqnarray} P_x & = & \langle \chi | \sigmaH _x | \chi \rangle = 2 \text {Re}(a^\ast b) \\ P_y & = & \langle \chi | \sigmaH _y | \chi \rangle = 2 \text {Im}(a^\ast b) \\ P_z & = & \langle \chi | \sigmaH _z | \chi \rangle = |a|^2-|b|^2 \end {eqnarray}

This shows the relation of the polarization vector to the neutron wave function.

The neutron magnetic moment operator can be expressed in terms of \(\sigmao \), as: \begin {equation} \label {eq:magnetic} \muno = \mu _n \sigmao , \end {equation} which, as shown above, is related to the polarization vector.

In our simulation we represent the polarization by the vector \(\SB = (s_x, s_y, s_z)\) which is propagated through the different components so it has the correct relative orientation in each component. The probability for the spin to be parallel a given direction \(\mathbf {n}\) is then:

\begin {equation} \label {eq:probmcstas} P(\uparrow |\nB ) = \frac {1+\nB \cdot \SB }{2}. \end {equation}

This equation (from [SD01]) is easy to understand. The average spin along \(\nB \) is \(\nB \cdot \SB \) and the probability then follows from Eq. 5.4.

For an unpolarized beam, \(\mathbf {S} = \mathbf {0}\) and all directions are equally probable (50 %).

Note that in our approach we do not decide if the neutron is up or down after a given component, but instead keep track of as much information for as long as possible.

In the following we will use \(\PB \) to denote the polarization vector. The most important variables used are:

\(\Q \) Scattering vector.
\(\PB \) Polarization before a component (ingoing).
\(\PB _\perp \) Polarization perpendicular to scattering vector, \(\PB _\perp = \tQ \times (\PB \times \tQ \)).
\(\PB '\) Polarization after a component (outgoing).
\(\tN \) Unit vector in direction of atomic spin (\(\tN \cdot \tilde {\BB } = -1\) for a ferromagnet).
\(\FN \) Unit cell nuclear structure factor.
\(\FM \) Unit cell magnetic structure factor.

The unit cell nuclear structure factor is defined as:

\begin {equation} \FN = \sum _\dB \exp (i\Q \cdot \dB )\overline {b}_d, \end {equation}

where the \(\dB \) is the position of the d’th atom within the unit cell, and \(\overline {b}_d\) is the average of \(b_d\). In the simple case of a single atom Bravais crystal one finds \(\FN = \overline {b}\).

The unit cell magnetic structure factor is useful when the atoms in the crystal only have spin orbital angular momentum, and simple when the magnet is saturated (all spins are parallel or anti-parallel to one direction, \(\sigma _d=\pm 1\)). It is then given as:

\begin {equation} \FM = \gamma _n r_0 \sum _\dB \exp (i\Q \cdot \dB )\frac {1}{2}g_d F_d(\Q )\langle \hat {S}_d\rangle \sigma _d, \end {equation}

where \(r_0=\frac {\mu _0}{4\pi }\frac {e^2}{m_e} = 2.818 \times 10^{-15}\)m, \(g=2\) is the Landé splitting factor, and \(F_d(\Q )\) is the magnetic form factor, which is the Fourier transform of the magnetization density (normalized so that \(F_d(0) = 1\)), and \(\langle \hat {S}_d\rangle \) is the thermal average of the ordered atomic spin.

In the following the Debye-Weller factor (\(\exp (-W_d)\)) have been ignored in all cross sections.

5.1.1  Example: Magnetic fields

The magnetic moment operator of the neutron is \(\muno = \gamma _n \so \), where \(\gamma _n = 2 \mu _n = -3.826\) is the gyromagnetic ratio (spin and magnetic moment is anti-parallel as for an electron) 1

A magnetic field, \(\BB \), will exert a torque, \(\tauB = d\sB /dt = (1/\gamma _n)d\muB /dt\), on the neutron magnetic moment:

\begin {equation} \label {eq:torque} \frac {1}{\gamma _n} \frac {d\muB }{dt} = \muB \times \BB \end {equation}

The magnetic moment \(\mu \) can be related to the polarization as \(\muB = \gamma _n \PB /2\), and inserting in Eq. 5.10 we find:

\begin {equation} \label {eq:pol_magnetic} \frac {d\PB }{dt} = \gamma _n \PB \times \BB \end {equation}

In the simple case where \(\BB = (0, 0, B)\), we find the solution ([Wil88] p. 18) :

\begin {eqnarray} \nonumber P_X(t) & = & \cos (\omega _L t) P_X(0) - \sin (\omega _L t) P_Y(0) \\ \label {eq:precession} P_Y(t) & = & \sin (\omega _L t) P_X(0) + \cos (\omega _L t) P_Y(0) \\ \nonumber P_Z(t) & = & P_Z(0), \end {eqnarray}

where \(\omega _L = -\gamma _n B/\hbar \) is the Larmor frequency.

The equations above were checked against the equations in the “polarimetrie neutronique” notes by Francis Tasset and found to be consistent. There can be sign differences between different publications depending on whether they use a right-handed (like e.g. McStas) or a left-handed (like e.g. NISP) coordinate system.

This closed-form solution is exactly what the Pol_constBfield and Pol_FieldBox components (section 5.4) evaluate directly in one step for a spatially uniform field. For the general case of a spatially varying, rotating, or otherwise non-uniform field, McStas instead integrates the precession numerically – this general algorithm is described in section 5.3, and is exactly the same physics applied piecewise over short enough intervals that the field can be treated as locally uniform.