Welcome to UNDI’s documentation!

mUon Nuclear Dipolar Interaction is a small package to obtain the time evolution of the muon spin polarization originating from its interaction with nuclear magnetic dipoles in standard experimental conditions (i.e. when thermal energy is much larger that nuclear interactions).

Muon-nuclei interaction

The interaction of the muon spin \(\mathbf{I}_{\mu}\) and the \(N\) nuclear spin \(\mathbf{I}_{i}\), with the effect Electric Field Gradient (EFG) is described by the Hamiltonian

(1)\[\mathcal{H} = \mathcal{H}_{Z,\mu} + \sum_{i}^{N} \mathcal{H}_{Z,i} + \mathcal{H}_{dip,i} + \mathcal{H}_{Q,i} + \sum_{i,j>i}^N \mathcal{H}_{dip,ij}\]

where

(2)\[\mathcal{H}_{Z,\mu} = -\hbar \gamma_{\mu} \mathbf{I}_{\mu}\cdot\mathbf{B}_{ext}\]
(3)\[\mathcal{H}_{Z,i} = -\hbar \gamma_{i} \mathbf{I}_{i}\cdot\mathbf{B}_{ext}\]
(4)\[\mathcal{H}_{dip,i} = \frac{\mu_0 \hbar^2 }{4\pi}\gamma_{i}\gamma_{\mu} \left( \frac{\mathbf{I}_{i}\cdot\mathbf{I}_{\mu}}{r^3} - \frac{3(\mathbf{I}_{i}\cdot\mathbf{r})(\mathbf{I}_{\mu}\cdot\mathbf{r})}{r^5} \right)\]
(5)\[\mathcal{H}_{Q,i} = \frac{eQ_{i}}{6I_{i}(2I_{i}-1)} \sum_{{\alpha},{\beta}{\in}\{{x,y,z}\}} V_{i}^{{\alpha}{\beta}} \left[ \frac{3}{2}\left( I_{i}^{\alpha}I_{i}^{\beta} - I_{i}^{\beta} I_{i}^{\alpha} \right) - \delta_{{\alpha}{\beta}}I_{i}^{2} \right]\]
(6)\[\mathcal{H}_{dip,ij} = \frac{\mu_0 \hbar^2 }{4\pi} \gamma_{i} \gamma_{j} \left(\frac{\mathbf{I}_{i}\cdot\mathbf{I}_{j}}{r_{ij}^3} - \frac{3(\mathbf{I}_{i}\cdot\mathbf{r}_{ij})(\mathbf{I}_{j}\cdot\mathbf{r}_{ij})}{r_{ij}^5} \right)\]

\(\mathcal{H}_{Z,j} ~ j \in \{i,\mu\}\) is the Zeeman interaction for each nucleus \(i\) or the muon \(\mu\) subject to the external field \(\mathbf{B}_{ext}\). \(\mathcal{H}_{dip,i}\) is the dipolar interaction between the muon and the nuclei and \(\mathcal{H}_{Q,i}\) is the quadrupolar interaction, with \(V_i\) being the EFG at nuclear site i.

Installalation

UNDI requires NumPy, QuTip and Mendelev Python packages. At the moment you can install the first version using

pip install undi

or using the repository with

git clone https://github.com/bonfus/undi.git undi
cd undi
python setup.py --user install

Input

The input is defined by a list of dictionaries. The details for the muon and the nuclei can be set with the following keys:

  • Position : 3D vector position of the nuclei, muon expressed in Cartesian Coordinates.

  • Label : A string defining the nucleus or the muon. Can be either the element or the isotope name. The label ‘mu’ must always be introduced to define the muon details.

  • Spin : Nuclear spin (optional), the mendelev package is used to obtain the spin value using the information in Label,

  • Gamma : Gyromagnetic ratio (optional). Same as above,

  • ElectricQuadrupoleMoment : Nuclear quadrupole moment for the nucleus (optional for \(\mathbf{I} > 1/2\)),

  • EFGTensor : 3D array with the EFG tensor expressed in Cartesian coordinates (optional).

Celio’s approximated approach

The description provided below follows the discussion originally presented by Celio. In general the muon depolarization is given by:

(7)\[\boldsymbol{\mathcal{P}}_{\mu}(t) = \textrm{Tr}\left[ \rho e^{(i\mathcal{H}t/\hbar)} \boldsymbol{{\sigma}}_{\mu} e^{(-i\mathcal{H}t/\hbar)} \right]\]

where \(\boldsymbol{{\sigma}}_{\mu} = 2\mathbf{I}_{\mu}\) are the Pauli operators and \(\rho\) is the density matrix.

In the Hamiltonian \(\mathcal{H}\) of Eq. (1) the operators \(\mathcal{H}_{dip,i}\) do not commute with each other and an analytical solution for \(\boldsymbol{\mathcal{P}}_{\mu}(t)\) is, in general, not possible.

However, one can expand the exponentials in Eq. (7) in to sums of simple block diagonal terms by using Trotter formula for bounded operators. For example, for a set of two operators \(\mathcal{H}_1\) and \(\mathcal{H}_2\) a Trotter expansion can be written as

(8)\[e^{ \mathcal{H}_1 + \mathcal{H}_2 } = \lim_{n \to \infty}\left( e^{\frac{\mathcal{H}_1}{n}} e^{\frac{\mathcal{H}_2}{n}} \right)^n\]

Eq. (7) can be rewritten as:

(9)\[\boldsymbol{\mathcal{P}}_{\mu}(t) = \textrm{Tr}\left[ \rho\boldsymbol{{\sigma}}_{\mu}(t)\right]\]

where

(10)\[\boldsymbol{{\sigma}}_{\mu}(t) = e^{(i\mathcal{H}t/\hbar)} \boldsymbol{{\sigma}}_{\mu}e^{(-i\mathcal{H}t/\hbar)}\]

Choosing a representation where \(\sigma_{\mu}^z\) is diagonal, Eq. (9) can be written in Schrodinger picture as:

(11)\[\boldsymbol{\mathcal{P}}(t) = \sum_{n}^{d_{\mathcal{H}}} w_{n} \left\langle \psi_{n}(t)|\boldsymbol{{\sigma}}_{\mu}|\psi_{n}(t)\right\rangle\]

where

(12)\[| {\psi_{n}(t)} \rangle= e^{-i\mathcal{H}t/\hbar} | {\psi_{n}(0)} \rangle\]

The coefficient \(w_n\) can be described as the probability of finding the spin system, in the pure state \(| {\psi_{n}(0)} \rangle\) at time \(t=0\) and, for a fully spin polarized muon in standard experimental conditions (nuclear magnetic moments not ordered), they are

(13)\[\begin{split} w_n = \frac{2}{d_{\mathcal{H}}} & \quad \textrm{if} \quad \boldsymbol{{\sigma}}_{\mu}^{z} | {\psi_{n}(0)} \rangle = + | {\psi_{n}(0)} \rangle \\ w_n = 0 & \quad \textrm{if} \quad \boldsymbol{{\sigma}}_{\mu}^{z} | {\psi_{n}(0)} \rangle = - | {\psi_{n}(0)} \rangle \\\end{split}\]

Eq. (1) can also be rewritten as

(14)\[ \mathcal{H} = \sum _{i} ^{N} \frac{\mathcal {H}_{\mathrm Z, \mu}}{N} + \mathcal {H}_{\mathrm Z, i} + \mathcal {H}_{\mathrm dip, i} + \mathcal {H}_{\mathrm Q, i} = \sum _{i} ^{N} \mathcal {H}_{i} \label{eq:HCelio}\]

if the dipolar interaction between the nuclei can be neglected.

\(\mathcal{H}_i\) acts in a small subspace of dimension \(2(2I+1)\) thus the problem of diagonalizing a huge \(d_{\mathcal{H}}\times d_{\mathcal{H}}\) matrix has been circumvented. The Trotter expansion of the evolution operator is

(15)\[e^{-i\mathcal{H}t/\hbar} = \lim_{k \to \infty} \left[ \prod_{i=1}^{N}e^{\left(-i\frac{\mathcal{H}_i}{k}\frac{t}{\hbar}\right)} \right]^{k}\]

and Eq. (12) becomes

(16)\[ \begin{align}\begin{aligned}\begin{split}| {\psi_{n}(t)} \rangle & = e^{-i\mathcal{H}t/\hbar} | {\psi_{n}(0)} \rangle \\\end{split}\\\begin{split} & = \lim_{k \to \infty} \left[ \prod_{i=1}^{N}e^{\left(-i\frac{\mathcal{H}_i}{k}\frac{t}{\hbar}\right)} \right]^{k} | {\psi_{n}(0)} \rangle \\\end{split}\end{aligned}\end{align} \]

Where the value of \(k\) is chosen to make the depolarization independent of the expansion parameter in the experimental time window.

The matrix elements \(\left\langle \psi_{n}(t)|\boldsymbol{{\sigma}}_{\mu}|\psi_{n}(t)\right\rangle\) in Eq. (11) can be calculated, but this would be a time consuming operation.

Let’s consider instead the random superposition of states at \(t=0\) given by

(17)\[| {\phi(0)} \rangle = \sum_{l=1}^{d_{\mathcal{H}}/2} \sqrt{\frac{2}{d_{\mathcal{H}}}} e^{\lambda_l} | {\psi_{l}(0)} \rangle\]

where \(\lambda_l\) is taken at random in the interval \([0, 2 \pi)\).

At a later time \(t\) , \(|\phi(t)\rangle\) is:

(18)\[ | {\phi(t)} \rangle = \sum_{l=1}^{d_{\mathcal{H}}/2} \sqrt{\frac{2}{d_{\mathcal{H}}}} e^{i\lambda_{l}} | {\psi_{l}(t)} \rangle\]

and the expactation value of \(\boldsymbol{{\sigma}}_{\mu}\) is:

(19)\[\langle {\phi(t)} | \boldsymbol{{\sigma}}_{\mu} | {\phi(t)} \rangle = \sum_{l=1}^{d_{\mathcal{H}}/2} \left( \frac{2}{d_{\mathcal{H}}} \right) \langle {\psi_{l}(t)} | \boldsymbol{{\sigma}}_{\mu} | {\psi_{l}(t)} \rangle +\sum_{l,n=1, l \ne n}^{d_{\mathcal{H}}/2} \left( \frac{2}{d_{\mathcal{H}}} \right) e^{i(\lambda_{l}-\lambda_{n})} \langle {\psi_{l}(t)} | \boldsymbol{{\sigma}}_{\mu} | {\psi_{n}(t)} \rangle\]

The first term on the right-hand side of Eq. (19) is the exact solution of Eq. (11) while second term tends to zero in a limit of large \(d_{\mathcal{H}}\). In order to obtain an exact signal \(\boldsymbol{\mathcal{P}}(t)\) , one has to calculate the above matrix element over various random initials states and average out the unwanted additional contribution.

The function MuonNuclearInteraction.celio() implements the method described above and its usage is explained with a number of examples discussed below.

Some important conventions

Before you start playing with UNDI through examples, a few important information:

  • UNDI uses SI units, which might seem an unfortunate choice (you end up writing tiny numbers) but does not hurt too much.

  • UNDI assumes that the spin polarization is along \(z\) and that observation is done along the same direction. You must rotate the sample definition accordingly (there is a function to do that). Initial polarization along arbitrary directions is presently implemented only in Celio’s method.

  • As a consequence, in general, an external field applied along \(z\) is a Longitudinal Field (LF) while external fields in the plane perpendicular to \(z\) are Transverse Fields (TF).

Using UNDI

The best way to start with UNDI is to explore some illustrative examples that reproduce some results already published in literature. Alternatively you can check the detailed function documentation.