This module defines the type 'spin', representing 2×2 complex matrices in
spin space. The module overloads common arithmetic operators to work with
the new data type, and defines and exports the Pauli matrices as constants.
To make it easier to interact with common differential equation solvers,
which often operate on real state vectors, the assignment operator is
overloaded to make 'spin' easily importable/exportable to real vectors.
Variables
| Type |
Visibility | Attributes |
|
Name |
| Initial | |
|
type(spin),
|
public, |
parameter
|
:: |
pauli0 |
= |
spin(reshape([(1, 0), (0, 0), (0, 0), (1, 0)], [2, 2], order=[2, 1])) |
|
|
type(spin),
|
public, |
parameter
|
:: |
pauli1 |
= |
spin(reshape([(0, 0), (1, 0), (1, 0), (0, 0)], [2, 2], order=[2, 1])) |
|
|
type(spin),
|
public, |
parameter
|
:: |
pauli2 |
= |
spin(reshape([(0, 0), (0, -1), (0, 1), (0, 0)], [2, 2], order=[2, 1])) |
|
|
type(spin),
|
public, |
parameter
|
:: |
pauli3 |
= |
spin(reshape([(1, 0), (0, 0), (0, 0), (-1, 0)], [2, 2], order=[2, 1])) |
|
|
type(spin),
|
public, |
parameter, dimension(0:3)
|
:: |
pauli |
= |
[pauli0, pauli1, pauli2, pauli3] |
|
Derived Types
Components
| Type |
Visibility | Attributes |
|
Name |
| Initial | |
|
complex(kind=wp),
|
public |
|
:: |
matrix(2,2) |
= |
0.0_wp |
|
Type-Bound Procedures
| generic, public ::
spin => cons_rscalar, cons_cscalar, cons_cmatrix, cons_rvector, cons_spin |
|
| generic, public ::
assignment(=) => assr_rscalar, assr_cscalar, assr_cmatrix, assr_rvector, assl_cmatrix, assl_rvector |
|
| generic, public ::
operator(+) => addl_rscalar, addr_rscalar, addl_cscalar, addr_cscalar, addl_cmatrix, addr_cmatrix, add_spin |
|
| generic, public ::
operator(-) => subl_rscalar, subr_rscalar, subl_cscalar, subr_cscalar, subl_cmatrix, subr_cmatrix, sub_spin |
|
| generic, public ::
operator(*) => mull_rscalar, mulr_rscalar, mull_cscalar, mulr_cscalar, mull_cmatrix, mulr_cmatrix, mul_spin |
|
| generic, public ::
operator(/) => divr_rscalar, divr_cscalar |
|
| generic, public ::
operator(**) => expr_iscalar |
|