quantax.sites.Sites#
- class quantax.sites.Sites#
A collection of multiple spins or fermions that make up the quantum system.
- __init__(Nsites: int, particle_type: PARTICLE_TYPE | str = PARTICLE_TYPE.spin, Nparticles: int | tuple[int, int] | None = None, double_occ: bool | None = None, coord: NDArray | None = None)#
- Parameters:
Nsites – The number of sites in the system.
particle_type – The particle type of the system: spin, spinful fermion, or spinless fermion. Specify it with a
PARTICLE_TYPEmember, or equivalently its name as a string (e.g."spinful_fermion").Nparticles – The number of particles in the system. If unspecified, the particle number is non-conserved, except spin systems which default to
Nsites(i.e. no magnetization conservation, since the total spin count is alwaysNsites). If specified, use an int for the total particle number, or a tuple(n_up, n_dn)for the number of spin-up and spin-down particles. For spin systems the total is alwaysNsites, so a magnetization sector must be fixed with a tuple(n_up, n_dn)summing toNsitesrather than an int.double_occ – Whether double occupancy is allowed. Default to True for spinful fermions and False otherwise.
coord – The coordinates of sites, which doesn’t have to be specified if the spatial information is not used.
- property Nmodes: int#
The length of a configuration array, i.e. the number of local degrees of freedom stored per sample. This is
Nsitesfor spins or spinless fermions and2 * Nsitesfor spinful fermions (one entry per spin-up and spin-down mode).
- property Nfmodes: int#
The number of fermionic modes, which should be
Nsitesfor spinless fermions and2 * Nsitesfor spin and spinful fermions. This is used when a system is mapped to a fermionic representation (e.g. mean-field or backflow states), where a spin maps to two fermionic modes (spin-up and spin-down) per site.
- property particle_type: PARTICLE_TYPE#
The type of particle in the system. See
PARTICLE_TYPE.
- property coord: NDArray[float64]#
Real space coordinates of all sites.
- property dist: NDArray[float64]#
Matrix of the real space distance between all site pairs.
Tip
dist[2, 3]is the distance between site 2 and 3.
- property sign: NDArray[int64]#
Matrix of the sign between all site pairs. For example, in a fermionic system with anti-periodic boundary conditions, the sign of bonds crossing the boundary is -1, while other bonds have sign +1.
Tip
sign[2, 3]is the sign of the bond connecting site 2 and 3.
- get_neighbor(n_neighbor: int = 1, return_sign: Literal[False] = False) NDArray[int64]#
- get_neighbor(n_neighbor: int, return_sign: Literal[True]) tuple[NDArray[int64], NDArray[int64]]
- get_neighbor(n_neighbor: Sequence[int], return_sign: Literal[False] = False) list[NDArray[int64]]
- get_neighbor(n_neighbor: Sequence[int], return_sign: Literal[True]) tuple[list[NDArray[int64]], list[NDArray[int64]]]
Gets n’th-nearest neighbor site pairs.
- Parameters:
n_neighbor – The n’th-nearest neighbor to obtain. The nearest neighbor is given by 1. If it’s a sequence, then multiple neighbors will be returned in the same order.
return_sign – Whether this function should also return the sign of neighbor bonds. The sign is non-trivial only for fermionic systems with anti-periodic boundary conditions.
- Returns:
- neighbor
If
n_neighboris int, then a 2D numpy array with each row a pair of neighbor site indices. Ifn_neighboris sequence, then a list with each item a 2D numpy array corresponding ton_neighboritems. If the requested n’th-nearest neighbor doesn’t exist in the system, the corresponding array is empty.- sign
The sign of neighbor bonds. Only provided if
return_signis True.
- plot(figsize: ArrayLike = (10, 10), markersize: int | float | None = None, color: str | tuple[str, ...] = 'C0', show_index: bool = True, index_fontsize: int | float | None = None, neighbor_bonds: int | Sequence[int] = 1) Figure#
Plot the sites and neighbor bonds in the real space.
- Parameters:
figsize – Figure size.
markersize – Size of markers that represent the sites.
color – Color of sites in the figure.
show_index – Whether to show index number at each site.
index_fontsize – Fontsize if the index number is shown.
neighbor_bonds – The n’th-nearest neighbor bonds to show. Set this value to 0 to hide all bonds.
- Returns:
A matplotlib figure containing the geometrical plot of sites.