This module defines the data type 'nambu', which represents 4×4 complex matrices in spin and Nambu space. The module overloads arithmetic operators to work with the new type, and defines and exports the Pauli matrices as constants.
Matrix inverse
Matrix trace
Calculate the trace of the nambu matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nambu), | intent(in) | :: | this |
Matrix sum
Complex conjugation
Construct basis matrices
Constructs basis matrix number n in spin-nambu space.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n |
Constructs a matrix representation of a vector.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in), | dimension(1:3) | :: | v |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
complex(kind=wp), | public | :: | matrix(4,4) | = | 0.0_wp | Encapsulate a spin and Nambu space matrix |
generic, public :: nambu => cons_rscalar, cons_cscalar, cons_cmatrix, cons_nambu | |
generic, public :: assignment(=) => assr_rscalar, assr_cscalar, assr_cmatrix, assl_cmatrix | |
generic, public :: operator(+) => addl_rscalar, addr_rscalar, addl_cscalar, addr_cscalar, addl_cmatrix, addr_cmatrix, add_nambu | |
generic, public :: operator(-) => subl_rscalar, subr_rscalar, subl_cscalar, subr_cscalar, subl_cmatrix, subr_cmatrix, sub_nambu | |
generic, public :: operator(*) => mull_rscalar, mulr_rscalar, mull_cscalar, mulr_cscalar, mull_cmatrix, mulr_cmatrix, mul_nambu | |
generic, public :: operator(/) => divr_rscalar, divr_cscalar | |
generic, public :: operator(**) => expr_iscalar |