magnopy.span_local_rf#

magnopy.span_local_rf(direction_vector, hybridize=False)[source]#

Spans local right-handed reference frame from the direction vector.

Parameters:
direction_vector(3, ) array-like

Direction of the z axis of the local reference frame.

hybridizebool, default False
  • If hybridize == True, then returns p_alpha, z_alpha.

  • If hybridize == False, then returns x_alpha, y_alpha, z_alpha.

Returns:
x_alpha(3, ) numpy.ndarray
y_alpha(3, ) numpy.ndarray
p_alpha(3, ) numpy.ndarray

p_alpha = x_alpha + 1j * y_alpha.

z_alpha(3, ) numpy.ndarray

See also

span_local_rfs

Examples

Two special cases are handled as

>>> import magnopy
>>> x, y, z = magnopy.span_local_rf([0, 0, 1])
>>> x
array([1., 0., 0.])
>>> y
array([0., 1., 0.])
>>> z
array([0., 0., 1.])
>>> p, z = magnopy.span_local_rf([0, 0, 1], hybridize=True)
>>> p
array([1.+0.j, 0.+1.j, 0.+0.j])
>>> z
array([0., 0., 1.])
>>> import magnopy
>>> x, y, z = magnopy.span_local_rf([0, 0, -1])
>>> x
array([ 0., -1.,  0.])
>>> y
array([-1.,  0.,  0.])
>>> z
array([ 0.,  0., -1.])
>>> p, z = magnopy.span_local_rf([0, 0, -1], hybridize=True)
>>> p
array([ 0.-1.j, -1.+0.j,  0.+0.j])
>>> z
array([ 0.,  0., -1.])

For the arbitrary direction the global reference frame is rotated as a whole

>>> import magnopy
>>> x, y, z = magnopy.span_local_rf([1, 1, 1])
>>> x
array([ 0.78867513, -0.21132487, -0.57735027])
>>> y
array([-0.21132487,  0.78867513, -0.57735027])
>>> z
array([0.57735027, 0.57735027, 0.57735027])
>>> p, z = magnopy.span_local_rf([1, 1, 1], hybridize=True)
>>> p
array([ 0.78867513-0.21132487j, -0.21132487+0.78867513j,
       -0.57735027-0.57735027j])
>>> z
array([0.57735027, 0.57735027, 0.57735027])