parity¶
Module: luescher_nd.operators.parity
Implements operators to project onto parity components
-
get_90_rotation_operator(n1d, axis=0)[source]¶ Implements the z-rotation operator
Rz(90) |psi(p)> = |psi(Rz(90)p)>Rotation is implemented in relative coords.
This operator is explicitly implemented for 3D.
The operator sends the coordinate
|Rz(90)p> -> |Rz(90)(p_x, p_y, p_z)> = |Rz(90)(p_y, -p_x, p_z)>modulo boundaries.- Arguments
- n1d: int
Number of lattice sites in one dimension.
- ndim: int
Number of dimensions.
- Return type
csr_matrix
-
operator(n1d, ndim)[source]¶ Implements the parity operator
P |psi+/-> = +/- |psi+/->for relative coords.The operator sends the coordinate
|p> -> |-p>(or|r>) modulo the box boundary.- Arguments
- n1d: int
Number of lattice sites in one dimension.
- ndim: int
Number of dimensions.
- Return type
csr_matrix
-
projector(n1d, ndim, positive=True)[source]¶ Operator which shifts parity eigenvalues of the wrong parity to large numbers.
For example if
positive=True:P+ |psi+> = |psi+>andP+ |psi-> = 0 |psi->, whereP |psi+/-> = +/- |psi+/->are partiy eigenstates of opposite parity.- Arguments
- n1d: int
Number of lattice sites in one dimension.
- ndim: int
Number of dimensions.
- positive: bool = True
Parity component which does not change under operator application.