Reference
TwistedBoundaryConditions.TwistedBoundaryConditions — Module
Optimal twisted boundary conditions for exact diagonalization of quantum many-body systems.
TwistedBoundaryConditions.calculate_optimal_tbc — Method
calculate_optimal_tbc(Ns::Int, basis_vectors::AbstractVector{<:AbstractVector{T}}; search_range::Int=3, identity_weight::Float64=1e-4) where {T<:Real}Generalized optimal TBC calculator for arbitrary dimension D.
Arguments
Ns: Total number of sites.basis_vectors: List of D basis vectors (e.g., [[1.0, 0.0], [-0.5, 0.866]]).search_range: Range for integers in the twist matrix.
TwistedBoundaryConditions.generate_unimodular_matrices — Method
generate_unimodular_matrices(dim::Int, limit::Int)Generates DxD integer matrices with determinant 1. Entries are within range [-limit, limit]. WARNING: The number of matrices grows as (2*limit+1)^(D^2). Keep limit small (1 or 2).
TwistedBoundaryConditions.get_factors_recursive — Method
get_factors_recursive(Ns, dim)Recursively finds all factorizations of Ns into dim integers. Returns a list of vectors, e.g., [[2, 2, 3], [1, 4, 3], ...] for Ns=12, dim=3.
TwistedBoundaryConditions.lll_reduction — Method
lll_reduction(basis::AbstractVector{AbstractVector{T}}; delta=0.75) where {T<:Real}Performs LLL lattice reduction to find a basis with short, nearly orthogonal vectors. Essential for defining a meaningful aspect ratio in D > 2.