Spin

class sisl.physics.Spin(kind='', dtype=<class 'numpy.float64'>)[source]

Spin class to determine configurations and spin components.

The basic class Spin implements a generic method to determine a spin configuration.

Its usage can be summarized in these few examples:

>>> Spin(Spin.UNPOLARIZED) == Spin('unpolarized') == Spin()
True
>>> Spin(Spin.POLARIZED) == Spin('polarized') == Spin('p')
True
>>> Spin(Spin.NONCOLINEAR, dtype=np.complex128) == Spin('non-collinear') == Spin('nc')
True
>>> Spin(Spin.SPINORBIT, dtype=np.complex128) == Spin('spin-orbit') == Spin('so')
True

Note that a data-type may be associated with a spin-object. This is not to say that the data-type is used in the configuration, but merely that it helps any sub-classed or classes who use the spin-object to determine the usage of the different spin-components.

Parameters:
kind : str or int, Spin, optional

specify the spin kind

dtype : numpy.dtype, optional

the data-type used for the spin-component.

Attributes

NONCOLINEAR Constant for a non-collinear spin configuration
POLARIZED Constant for a polarized spin configuration
SPINORBIT Constant for a spin-orbit spin configuration
UNPOLARIZED Constant for an un-polarized spin configuration
X The \(\boldsymbol\sigma_x\) Pauli matrix
Y The \(\boldsymbol\sigma_y\) Pauli matrix
Z The \(\boldsymbol\sigma_z\) Pauli matrix
dkind Data-type kind
dtype Data-type of the spin configuration
is_colinear True if the configuration is polarized
is_noncolinear True if the configuration non-collinear
is_polarized True if the configuration is polarized
is_spinorbit True if the configuration is spin-orbit
is_unpolarized True if the configuration is not polarized
kind A unique ID for the kind of spin configuration
spins Number of spin-components

Methods

__init__([kind, dtype]) Initialize self.
copy() Create a copy of the spin-object
NONCOLINEAR = 2

Constant for a non-collinear spin configuration

POLARIZED = 1

Constant for a polarized spin configuration

SPINORBIT = 3

Constant for a spin-orbit spin configuration

UNPOLARIZED = 0

Constant for an un-polarized spin configuration

X = array([[0.+0.j, 1.+0.j], [1.+0.j, 0.+0.j]])

The \(\boldsymbol\sigma_x\) Pauli matrix

Y = array([[ 0.+0.j, -0.-1.j], [ 0.+1.j, 0.+0.j]])

The \(\boldsymbol\sigma_y\) Pauli matrix

Z = array([[ 1.+0.j, 0.+0.j], [ 0.+0.j, -1.+0.j]])

The \(\boldsymbol\sigma_z\) Pauli matrix

copy()[source]

Create a copy of the spin-object

dkind

Data-type kind

dtype

Data-type of the spin configuration

is_colinear

True if the configuration is polarized

is_noncolinear

True if the configuration non-collinear

is_polarized

True if the configuration is polarized

is_spinorbit

True if the configuration is spin-orbit

is_unpolarized

True if the configuration is not polarized

kind

A unique ID for the kind of spin configuration

spins

Number of spin-components