Vector and Matrix Types
4-Momenta
QEDcore.SFourMomentum
— Typestruct SFourMomentum{T<:Real} <: AbstractFourMomentum{T<:Real}
Builds a static LorentzVectorLike with real components used to statically model the four-momentum of a particle or field.
Fields
E::Real
: energy componentpx::Real
:x
componentpy::Real
:y
componentpz::Real
:z
component
Spinors
QEDcore.BiSpinor
— Typestruct BiSpinor{T<:Number} <: AbstractDiracVector{T<:Number}
Concrete type to model a Dirac four-spinor. These are the elements of an actual spinor space. By default, a constructed BiSpinor
will have complex-valued components, using ComplexF64
, but any other Number
type can be used by explicitly calling BiSpinor{T}(el1, el2, el3, el4)
, which converts all given elements to T
.
QEDcore.AdjointBiSpinor
— Typestruct AdjointBiSpinor{T<:Number} <: AbstractDiracVector{T<:Number}
Concrete type to model an adjoint Dirac four-spinor. These are the elements of the dual spinor space. By default, a constructed AdjointBiSpinor
will have complex-valued components, using ComplexF64
, but any other Number
type can be used by explicitly calling AdjointBiSpinor{T}(el1, el2, el3, el4)
, which converts all given elements to T
.
Lorentz Vectors
QEDcore.SLorentzVector
— Typestruct SLorentzVector{T} <: AbstractLorentzVector{T}
Concrete implementation of a generic static Lorentz vector. Each manipulation of an concrete implementation which is not self-contained (i.e. produces the same Lorentz vector type) will result in this type.
Fields
t::Any
:t
componentx::Any
:x
componenty::Any
:y
componentz::Any
:z
component
Dirac Matrix
QEDcore.DiracMatrix
— Typestruct DiracMatrix{T<:Number} <: AbstractDiracMatrix{T<:Number}
Concrete type to model Dirac matrices, i.e. matrix representations of linear mappings between two spinor spaces.
Multiplications
QEDcore._mul
— Function_mul(abs::AdjointBiSpinor, bs::BiSpinor) -> Any
Tensor product of an adjoint with a standard bi-spinor resulting in a scalar.
This also overloads the *
operator for this types.
_mul(bs::BiSpinor, abs::AdjointBiSpinor) -> DiracMatrix
Tensor product of a standard with an adjoint bi-spinor resulting in a Dirac matrix.
This also overloads the *
operator for this types.
_mul(dm::DiracMatrix, bs::BiSpinor) -> Any
Tensor product of an Dirac matrix with a standard bi-spinor resulting in another standard bi-spinor.
This also overloads the *
operator for this types.
_mul(abs::AdjointBiSpinor, dm::DiracMatrix) -> Any
Tensor product of an adjoint bi-spinor with a Dirac matrix resulting in another adjoint bi-spinor.
This also overloads the *
operator for this types.
_mul(dm1::DiracMatrix, dm2::DiracMatrix) -> DiracMatrix
Tensor product two Dirac matrices resulting in another Dirac matrix.
This also overloads the *
operator for this types.
_mul(d::DiracMatrix, a::AdjointBiSpinor)
The product of a Dirac matrix with an adjoint bi-spinor from the right is not defined. Therefore, this throws a method error.
We must throw this error explicitly, because otherwise the multiplication is dispatched to methods from StaticArrays.jl.
_mul(b::BiSpinor, d::DiracMatrix)
The product of a Dirac matrix with a bi-spinor from the left is not defined. Therefore, this throws a method error.
We must throw this error explicitly, because otherwise the multiplication is dispatched to methods from StaticArrays.jl.