fastdla.generators.z2lgt_hva.z2lgt_dense_u1_projection

fastdla.generators.z2lgt_hva.z2lgt_dense_u1_projection(total_charge, num_fermions, npmod=np)

Return a function that projects out the eigensubspace of the total U(1) charge for the given eigenvalue.

If \(P_{\lambda}\) is the projector to the eigensubspace for eigenvalue \(\lambda\), \(P_{\lambda} - I\) is the (negative) anti-projector. It also is a singular operator used in the SVD eigenspace extraction algorithm (for the eigenspace of \(P_{\lambda}\) with eigenvalue 1).

Parameters:
  • total_charge (int) – Unnormalized total charge (an eigenvalue of \(\sum_{n=0}^{N_s-1} Z_n\)).

  • num_fermions (int) – \(N_f\).

Return type:

Callable[[numpy.ndarray], numpy.ndarray]

Returns:

A function that takes a basis matrix \(B\) as an argument and projects out the eigensubspace corresponding to eigenvalue \(q / N_s\), where \(q\) is the given total charge.