Functions#

SpinWaveToolkit.bls.susceptibilities.mo_linear(m, Q=1.0)#

The magneto-optic Kerr (or Faraday) susceptibility tensor (linear in magnetization) for a given magnetization vector.

The dynamic magnetization vector m is typically constructed from the Bloch functions of the corresponding spin-wave modes.

The laboratory coordinate frame of reference is z || to film normal and x || to in-plane wavevector with phi=0.

Parameters:
mtuple[ndarray]

() dynamic magnetization vector (mx, my, mz). Each sub-array should have shape (Nf, Nkx, Nky) to be casted correctly to the BLS signal functions.

Qfloat or complex, optional

() Voigt (or Faraday) magneto-optic constant. Default is 1.0.

Returns:
chindarray

() magneto-optic Kerr susceptibility tensor with shape (3, 3, ...), where ... is the shape of arrays in m, usually Nf, Nkx, Nky.

SpinWaveToolkit.bls.susceptibilities.mo_quadratic(m, Bii=1.0, Bij=1.0, linearize_along=None)#

The magneto-optic Cotton-Mouton (or Voigt) susceptibility tensor (quadratic in magnetization) for a given magnetization vector.

The dynamic magnetization vector m is typically constructed from the Bloch functions of the corresponding spin-wave modes.

The laboratory coordinate frame of reference is z || to film normal and x || to in-plane wavevector with phi=0.

Linearization can be performed only when the static magnetization is along one of the principal axes (xyz). It is crucial to use linearization for dynamic effects, such as BLS.

Parameters:
mtuple[ndarray]

() dynamic magnetization vector (mx, my, mz). Each sub-array should have the same shape, e.g. (Nf, Nkx, Nky) to be casted correctly to the BLS signal functions.

Biifloat or complex or list[float] or list[complex], optional

() First Cotton-Mouton magneto-optic constant. Default is 1.0. If given as a list/array of length 3, it is interpreted as the diagonal constants for the xx, yy, and zz components of the susceptibility, respectively (see Notes below). This constant is not used in the linearized susceptibility.

Bijfloat or complex or list[float] or list[complex], optional

() Second Cotton-Mouton magneto-optic constant. Default is 1.0. If given as a list/array of length 3, it is interpreted as the off-diagonal constants for the yz, xz, and xy components of the susceptibility, respectively (see Notes below).

linearize_along{“x”, “y”, “z”, None}, optional

If not None, linearizes the susceptibility with magnetization assumed along given axis. Default is None.

Returns:
chindarray

() magneto-optic Cotton-Mouton susceptibility tensor with shape (3, 3, ...), where ... is the shape of arrays in m, usually Nf, Nkx, Nky.

Notes

The full quadratic susceptibility tensor has the form:

[[Bii*mx^2,    Bij*2*mx*my, Bij*2*mx*mz],
 [Bij*2*my*mx, Bii*my^2,    Bij*2*my*mz],
 [Bij*2*mz*mx, Bij*2*mz*my, Bii*mz^2]]

where Bii and Bij are the diagonal and off-diagonal Cotton-Mouton constants, respectively. However, when given as 3-element lists/arrays, the constants can differ for each component, resulting in:

[[Bii[0]*mx^2,    Bij[2]*2*mx*my, Bij[1]*2*mx*mz],
 [Bij[2]*2*my*mx, Bii[1]*my^2,    Bij[0]*2*my*mz],
 [Bij[1]*2*mz*mx, Bij[0]*2*mz*my, Bii[2]*mz^2]]

When linearization is applied along a given axis, the susceptibility is simplified by assuming the static magnetization is along that axis, and only the dynamic components of the magnetization (to first order) contribute to the susceptibility. For example, if linearizing along “x”, we set mx**2 = 0 for the static part, and only my and mz which stand alone or multiply mx contribute linearly. Multiplied dynamic terms are neglected. This results in a susceptibility that is linear in my and mz, which is appropriate for calculating dynamic effects such as BLS when the static magnetization is along the x-axis.

SpinWaveToolkit.bls.susceptibilities.mo_quadratic_yig111(m, g11, g12, g44, linearize_along=None)#

The magneto-optic Cotton-Mouton (or Voigt) susceptibility tensor (quadratic in magnetization) for a given magnetization vector, specifically for a YIG(111) film, using the constants g11, g12, g44.

The dynamic magnetization vector m is typically constructed from the Bloch functions of the corresponding spin-wave modes.

Linearization can be performed only when the static magnetization is along one of the principal axes (xyz). It is crucial to use linearization for dynamic effects, such as BLS.

The laboratory coordinate frame of reference is z || to film normal and x || to in-plane wavevector with phi=0. It relates to the cubic axes of YIG as follows: x || [11-2], y || [-110], z || [111].

For more information on the coordinate system and constants used, see: D. D. Stancil & A. Prabhakar. Spin waves: theory and applications. Springer, 2009. or A. M. Prokhorov, G. A. Smolenskii, and A. N. Ageev, Sov. Phys. Usp., vol. 27, p. 339, 1984. https://doi.org/10.1070/PU1984v027n05ABEH004292 (Note that the tensor in eq. (20) therein had to be transformed to our lab frame.)

Parameters:
mtuple[ndarray]

() dynamic magnetization vector (mx, my, mz). Each sub-array should have the same shape, e.g. (Nf, Nkx, Nky) to be casted correctly to the BLS signal functions.

g11, g12, g44float or complex

() Phenomenological Cotton-Mouton magneto-optical constants.

linearize_along{“x”, “y”, “z”, None}, optional

If not None, linearizes the susceptibility with magnetization assumed along given axis. Default is None.

Returns:
chindarray

() magneto-optic Cotton-Mouton susceptibility tensor with shape (3, 3, ...), where ... is the shape of arrays in m, usually Nf, Nkx, Nky.

Notes

When linearization is applied along a given axis, the susceptibility is simplified by assuming the static magnetization is along that axis, and only the dynamic components of the magnetization (to first order) contribute to the susceptibility. For example, if linearizing along “x”, we set mx**2 = 0 for the static part, and only my and mz which stand alone or multiply mx contribute linearly. Multiplied dynamic terms are neglected. This results in a susceptibility that is linear in my and mz, which is appropriate for calculating dynamic effects such as BLS when the static magnetization is along the x-axis.