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+> and P+ |psi-> = 0 |psi->, where P |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.