Translational Symmetry

Translation-orbit and momentum-basis utilities, plus momentum-projected sparse operator kernels used by symmetry-reduced Hamiltonian builders.

Translation symmetry and momentum-basis construction utilities.

This module builds translation orbits and sparse momentum-basis projectors for symmetry-sector configuration tables, and provides momentum-projected sparse operator kernels for generic factorized n-body operators.

edlgt.symmetries.translational_sym.check_normalization(basis)[source]

Check whether all columns of a basis matrix are normalized.

Parameters:

basis (numpy.ndarray) – Basis matrix with basis vectors stored as columns.

Returns:

True if every column has unit norm.

Return type:

bool

edlgt.symmetries.translational_sym.check_orthogonality(basis)[source]

Check whether the columns of a basis matrix are mutually orthogonal.

Parameters:

basis (numpy.ndarray) – Basis matrix with basis vectors stored as columns.

Returns:

True if all distinct column pairs are orthogonal.

Return type:

bool

edlgt.symmetries.translational_sym.get_translated_state_indices(config, sector_configs, logical_unit_size=1)[source]

Generate all 1D translations of a configuration in a sorted sector basis.

edlgt.symmetries.translational_sym.get_reference_indices(sector_configs)[source]

Select translation-inequivalent reference configurations in 1D.

edlgt.symmetries.translational_sym.get_momentum_basis(sector_configs, lvals, unit_cell_size, k_vals, TC_symmetry=False)[source]

Construct a sparse momentum-basis projector representation.

Parameters:
  • sector_configs (numpy.ndarray) – Symmetry-sector configurations, one row per basis state.

  • lvals (list) – Lattice lengths along each spatial direction.

  • unit_cell_size (numpy.ndarray) – Translation step (logical unit-cell size) per spatial direction.

  • k_vals (numpy.ndarray) – Momentum quantum numbers (one per spatial direction, or the effective translation-combined symmetry momentum in TC_symmetry mode).

  • TC_symmetry (bool, optional) – If True, use the translation-combined (TC) symmetry construction.

Returns:

Sparse left/right representations of the momentum-basis projector B: (L_col_ptr, L_row_idx, L_data, R_row_ptr, R_col_idx, R_data), where the first three arrays encode the CSC representation of B and the last three arrays encode the CSR representation of B.

Return type:

tuple

edlgt.symmetries.translational_sym.nbody_data_momentum(op_list, op_sites_list, sector_configs, L_col_ptr, L_row_idx, L_data, R_row_ptr, R_col_idx, R_data)[source]

Build sparse triplets for a generic n-body operator in momentum basis.

Parameters:
  • op_list (numpy.ndarray) – Site-resolved factorized operator data of shape (n_ops, n_sites, d_loc, d_loc).

  • op_sites_list (numpy.ndarray) – Sites where each operator factor acts (shape (n_ops,)).

  • sector_configs (numpy.ndarray) – Symmetry-sector configurations, one row per basis state.

  • L_col_ptr (numpy.ndarray) – CSC representation of momentum projector B.

  • L_row_idx (numpy.ndarray) – CSC representation of momentum projector B.

  • L_data (numpy.ndarray) – CSC representation of momentum projector B.

  • R_row_ptr (numpy.ndarray) – CSR representation of momentum projector B.

  • R_col_idx (numpy.ndarray) – CSR representation of momentum projector B.

  • R_data (numpy.ndarray) – CSR representation of momentum projector B.

Returns:

(row_list, col_list, value_list) triplets for the projected operator B^H H B.

Return type:

tuple

edlgt.symmetries.translational_sym.nbody_data_momentum_4sites(op_list, op_sites_list, sector_configs, L_col_ptr, L_row_idx, L_data, R_row_ptr, R_col_idx, R_data)[source]

Build sparse triplets for a four-site operator in the momentum basis.

Parameters:
  • op_list (numpy.ndarray) – Four-site factorized operator data (shape (4, n_sites, d_loc, d_loc)).

  • op_sites_list (numpy.ndarray) – Four site indices where the operator acts.

  • sector_configs (numpy.ndarray) – Symmetry-sector configurations, one row per basis state.

  • L_col_ptr (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • L_row_idx (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • L_data (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • R_row_ptr (numpy.ndarray) – CSR representation of the same projector B.

  • R_col_idx (numpy.ndarray) – CSR representation of the same projector B.

  • R_data (numpy.ndarray) – CSR representation of the same projector B.

Returns:

(row_list, col_list, value_list) triplets for the projected operator B^H H B.

Return type:

tuple

edlgt.symmetries.translational_sym.nbody_data_momentum_2sites(op_list, op_sites_list, sector_configs, L_col_ptr, L_row_idx, L_data, R_row_ptr, R_col_idx, R_data)[source]

Build sparse triplets for a two-site operator in the momentum basis.

Parameters:
  • op_list (numpy.ndarray) – Two-site factorized operator data (shape (2, n_sites, d_loc, d_loc)).

  • op_sites_list (numpy.ndarray) – Two site indices where the operator acts.

  • sector_configs (numpy.ndarray) – Symmetry-sector configurations, one row per basis state.

  • L_col_ptr (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • L_row_idx (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • L_data (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • R_row_ptr (numpy.ndarray) – CSR representation of the same projector B.

  • R_col_idx (numpy.ndarray) – CSR representation of the same projector B.

  • R_data (numpy.ndarray) – CSR representation of the same projector B.

Returns:

(row_list, col_list, value_list) triplets for the projected operator B^H H B.

Return type:

tuple

edlgt.symmetries.translational_sym.nbody_data_momentum_1site(op_list, op_sites_list, sector_configs, L_col_ptr, L_row_idx, L_data, R_row_ptr, R_col_idx, R_data)[source]

Build sparse triplets for a one-site operator in the momentum basis.

Parameters:
  • op_list (numpy.ndarray) – One-site factorized operator data (shape (1, n_sites, d_loc, d_loc)).

  • op_sites_list (numpy.ndarray) – Site index of the operator action (shape (1,)).

  • sector_configs (numpy.ndarray) – Symmetry-sector configurations, one row per basis state.

  • L_col_ptr (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • L_row_idx (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • L_data (numpy.ndarray) – CSC representation of the momentum-basis projector B.

  • R_row_ptr (numpy.ndarray) – CSR representation of the same projector B.

  • R_col_idx (numpy.ndarray) – CSR representation of the same projector B.

  • R_data (numpy.ndarray) – CSR representation of the same projector B.

Returns:

(row_list, col_list, value_list) triplets for the projected operator B^† H B.

Return type:

tuple