Polarization#

formula.polarization module#

Collection of calculations of relative changes in polarization.

mrfmsim.formula.polarization.rel_dpol_arp(B_offset, B1, df_fm, Gamma)[source]#

Relative change in polarization for adiabatic rapid passage.

Compute the resonance offset at each point in the sample and compute the change in the polarization at each point in the sample following the adiabatic rapid passage. The experiment here is a swept-field experiment or a swept-tip experiment, where

\[\Delta B_\text{offset} = B_0 + B_\text{tip} - 2 \pi f_\text{rf}/\gamma\]

and

\[\Omega_\text{initial} = B_0 + B_\text{tip} - (2 \pi f_\text{rf}/\gamma - 2 \pi \Delta f_\text{FM}/\gamma) = \Delta B_\text{offset} + 2 \pi \Delta f_\text{FM} / \gamma\]
Parameters:
  • Gamma (float) – the gyromagnetic ratio [rad/s.mT]

  • B_offset (float) – resonance offset field \(\Delta B_{\text{offset}}\) [mT]

  • B_1 (float) – amplitude \(B_1\) of the applied transverse field [mT]

  • df_fm (float) – the peak-to-peak frequency modulation \(\Delta f_{\text{FM}}\) of the applied transverse radio frequency magnetic field [Hz]

Returns:

relative change in polarization

Return type:

np.array, the same shape as B_offset

mrfmsim.formula.polarization.rel_dpol_ibm_cyclic(B_offset, df_fm, Gamma)[source]#

Relative change in polarization for IBM adiabatic rapid passage.

\[\begin{split}\eta \, (\Delta B_{\text{offset}}) = \begin{cases} \cos^2 \left(\dfrac{\gamma \Delta B_{\text{offset}}} {2 \: \Delta f_{\text{FM}}} \right) & \text{for } \Delta B_{\text{offset}} \leq \pi \Delta f_{\text{FM}} / \gamma, \\ 0 & \text{otherwise.} \end{cases}\end{split}\]

with

\[\Delta B_{\text{offset}} = B_0 - 2 \pi f_{\text{rf}} / \, \gamma [\mathrm{mT}]\]

The result added in pol_arp the negative sign for it is the signal of final - initial.

Parameters:
  • Gamma (float) – the gyromagnetic ratio [rad/s.mT]

  • B_offset (float) – resonant offset \(\Delta B_{\text{offset}}\) [mT]

  • df_fm (float) – the peak-to-peak frequency modulation \(\Delta df_{\text{FM}}\) of the applied transverse radio frequency magnetic field [Hz]

Returns:

relative change in polarization

Return type:

np.array, the same shape as B_offset

mrfmsim.formula.polarization.rel_dpol_multipulse(rel_dpol, T1, dt_pulse)[source]#

Calculate the average relative change in polarization after multiple pulses.

The formula ignores relaxation during pulses. :param float dt_pulse: time between pulses

mrfmsim.formula.polarization.rel_dpol_nut(B_offset, B1, Gamma, t_p)[source]#

Relative change in polarization under the evolution of irradiation.

Equations:

\[\rho_{\mathrm{rel}} = \frac{\Delta M_{z}}{M_{z}(0)} = \frac{1}{\Omega^2+1} (1 + \cos{(\Omega_1 t_p \sqrt{\Omega^2+1})})\]

with

\[\Delta B_{\mathrm{offset}} = B_z(\vec{r}) - \omega/\gamma\]

the resonance offset field and

\[\Omega_1 = \gamma B_1\]
\[\Omega = \frac{\Delta B_{\mathrm{offset}}}{B_1}\]

the unitless resonance offset.

Parameters:
  • Gamma (float) – the gyromagnetic ratio. [rad/s.mT]

  • B_offset (float) – resonance offset field \(\Delta B_{\text{offset}}\) [mT]

  • B_1 (float) – amplitude of the applied transverse field \(B_{\text{1}}\) [mT]

  • t_p (float) – pulse time \(t_{\mathrm{p}}\) [s]

Returns:

relative polarization

Return type:

np.array, the same shape as B_offset

mrfmsim.formula.polarization.rel_dpol_nut_multi_freq_pulse(B_tot, B1, f_rf_array, Gamma, t_p)[source]#

Nutation experiments where different frequencies are applied in steps.

The polarization is aggregated as a product.

mrfmsim.formula.polarization.rel_dpol_periodic_irrad(B_offset, B1, dB_sat, dB_hom, T1, t_on, t_off)[source]#

Relative change in polarization for intermittent irradiation.

\[\langle \Delta M_z \rangle = - \frac{S^2 \, M_0}{1 + S^2 + \Omega^2} \left(\frac{1}{r_1} \frac{1}{\tau_\text{on}+\tau_\text{off}} \frac{(1 - E_\text{on})(1 - E_\text{off})} {1 - E_\text{on} \, E_\text{off}} \frac{S^2}{1 + S^2 + \Omega^2} + \frac{\tau_\text{on}} {\tau_\text{on}+\tau_\text{off}}\right)\]
Parameters:
  • dB_hom (float) – the homogeneous linewidth [mT]

  • dB_sat (float) – the saturation linewidth [mT]

  • B_offset (float) – resonant offset \(\Delta B_{\text{offset}}\) [mT]

  • B_1 (float) – the amplitude \(B_1\) of the applied transverse field [mT]

  • t_1 (float) – spin-lattice relaxation [s]

  • t_on (float) – time with the microwaves on [s]

  • t_off (float) – time with the microwaves off [s]

Returns:

relative change in polarization

Return type:

np.array, the same shape as B_offset

mrfmsim.formula.polarization.rel_dpol_sat_steadystate(B_offset, B1, dB_sat, dB_hom)[source]#

Relative change in polarization for steady-state.

Compute and return the sample’s relative steady-state spin polarization. As given by the Bloch equations,

\[\Delta\rho_{\text{rel}} = \dfrac{\Delta {\cal M}_z} {{\cal M}_{z}^{\text{eq}}} = - \dfrac{(B_1 / \Delta B_{\text{sat}})^2} {1 + (\Delta B_{\text{offset}} / \Delta B_{\text{homog}})^2 + (B_1 / \Delta B_{\text{sat}})^2}\]

At resonance,

\[\rho_{\text{rel}} = \dfrac{S}{1+S}\]

and the change in polarization is governed by the saturation factor

\[S = (B_1 / \Delta B_{\text{sat}})^2\]

\(\rho_{\text{rel}}\) under irradiation.

Parameters:
  • dB_hom (float) – the homogeneous linewidth \(\Delta B_{\text{homog}}\) [mT]

  • dB_sat (float) – the saturation linewidth \(\Delta B_{\text{sat}}\) [mT]

  • B_offset (float) – resonant offset \(\Delta B_{\text{offset}}\) [mT]

  • B_1 (float) – the amplitude of the applied transverse field \(B_1\) [mT]

Returns:

relative polarization

Return type:

np.array, the same shape as B_offset

mrfmsim.formula.polarization.rel_dpol_sat_td(Bzx, B1, ext_B_offset, ext_pts, Gamma, T2, tip_v)[source]#

Relative change in polarization for time-dependent saturation.

The result is not a steady-state solution because it ignores T1 relaxation.

mrfmsim.formula.polarization.rel_dpol_sat_td_smallsteps(B1, ext_Bzx, ext_B_offset, ext_pts, Gamma, T2, tip_v)[source]#

Small step approximation of the time-dependent relative change in polarization.