MagneticField

MagneticField#

class MagneticField(options)#

MagneticField defines static or spatially varying magnetic fields.

Supports uniform bias, gradients, and quadratic terms, or a fully custom spatial distribution via spaceFunc(). Provides derived-unit views and the field zero FieldZero (for diagonal gradient).

Example:

B = MagneticField(bias=[0;0;5e-4], gradient=diag([10,10,30])*1e-2);
Bz = B.spaceFunc();
B0 = B.FieldZero;
Constructor Summary
MagneticField(options)#

Construct a MagneticField.

Parameters:
  • bias (double(3,1), optional) – Uniform bias \(\mathbf{B}_0=(B_x,B_y,B_z)\) in [T]

  • gradient (double(3,3), optional) – Gradient matrix \(\partial B_i/\partial x_j\) in [T/m]

  • quadratic (double(3,3,3), optional) – Quadratic tensor (not yet implemented)

  • distribution (function_handle, optional) – Custom spatial distribution \(\mathbf{B}(\mathbf{r})\)

If distribution is provided, sets ArbitraryDistribution and bypasses Bias, Gradient, and Quadratic.

Property Summary
ArbitraryDistribution function_handle#

Custom \(\mathbf{B}(\mathbf{r})\) overriding components

Bias (3,1) double = zeros(3,1)#

Uniform bias field \(\mathbf{B}_0=(B_x,B_y,B_z)\) in [T]

BiasLu#

Bias in [G]

FieldZero#

Field-zero position \(\mathbf{r}_0\) in [m] (diagonal gradient)

Gradient (3,3) double = zeros(3,3)#

Gradient matrix \(\partial B_i/\partial x_j\) in [T/m]

GradientLu#

Gradient in [G/cm]

Quadratic (3,3,3) double = zeros(3,3,3)#

Quadratic tensor (not implemented)

Method Summary
spaceFunc()#

Build spatial magnetic field function \(\mathbf{B}(\mathbf{r})\).

Returns:

function handle mapping \(\mathbf{r}\) to \(\mathbf{B}(\mathbf{r})\)

Return type:

function_handle