Skip to main content

Aleph - 0.34.0

šŸš€ Highlights​

  • Expanded the library of symbolic Fermionic operators in Aleph with new multi-site and parameterized interactions. See the New Features section for details.
  • Forge scripts can now declare arguments.

✨ New Features​

  • Significant expansion of symbolic Fermionic operators in Aleph, adding standardized factory functions for several interactions:
    • NumberNumber(i, j): Two-site density-density interaction ninj=fi†fifj†fjn_{i} n_{j} = f_{i}^\dagger f_{i} f_{j}^\dagger f_{j}.
    • TransferNumber(i, j, k): fi†fjnkf_{i}^\dagger f_{j} n_{k} interaction.
    • HopNumber(i, j, k): (fi†fj+fj†fi)nk(f_{i}^\dagger f_{j} + f_{j}^\dagger f_{i}) n_{k} interaction.
    • NumberSum(sites): Total occupancy on a set of sites āˆ‘i∈sitesni\sum_{i \in \mathrm{sites}} n_{i}.
    • NearestNumberSum(sites): Nearest-neighbor density interaction āˆ‘inini+1\sum_{i} n_{i} n_{i+1}.
    • NextNearestNumberSum(sites): Next-nearest-neighbor density interaction āˆ‘inini+2\sum_{i} n_{i} n_{i+2}.
    • PairTransfer(i, j, k, l): Directed pair transfer operator fi†fj†fkflf_{i}^\dagger f_{j}^\dagger f_{k} f_{l}.
    • PairHop(i, j, k, l): Pair hopping operator fi†fj†fkfl+h.c.f_{i}^\dagger f_{j}^\dagger f_{k} f_{l} + \mathrm{h.c.}.
    • PhaseHop(angle, i, j): Complex phase-hop operator eiĻ•fi†fj+eāˆ’iĻ•fj†fie^{i \phi} f_{i}^\dagger f_{j} + e^{-i \phi} f_{j}^\dagger f_{i}.
    • NumberPhase(angle, i): Site-specific phase operator exp⁔(iĻ•ni)\exp(i \phi n_i).
    • NumberNumberPhase(angle, i, j): Two-site phase operator exp⁔(iĻ•ninj)\exp(i \phi n_{i} n_{j}).
    • ModeRotation(angle, i, j): Givens rotation operator exp⁔(iĪø(fi†fj+fj†fi))\exp(i \theta (f_{i}^\dagger f_{j} + f_{j}^\dagger f_{i})).
    • PairRotation(angle, i, j): Bogoliubov rotation operator exp⁔(iĪø(fi†fj†+fjfi))\exp(i \theta (f_{i}^\dagger f_{j}^\dagger + f_{j} f_{i})).
    • NumberPotential(coefficients [, sites]): Efficient representation of weighted density sums āˆ‘i∈sitesαini\sum_{i \in \mathrm{sites}} \alpha_i n_i.
    • CoulombSum(tensor): General Coulomb interaction āˆ‘i,j,k,l,σ,Ļƒā€²VijklaiĻƒā€ ajĻƒā€²ā€ akĻƒā€²alσ\sum_{i,j,k,l,\sigma,\sigma'} V_{ijkl} a_{i\sigma}^\dagger a_{j\sigma'}^\dagger a_{k\sigma'} a_{l\sigma} on interleaved spin-orbitals.
  • Unified Fermionic operator naming conventions and added legacy aliases (FourBody, DoubleExcitation, NumberN, NumberNumberNN, NumberNumberNNN) for backward compatibility.
  • Added Discrete Cosine Transform (DCT) and Discrete Sine Transform (DST) functions with support for types I-IV, custom normalization, and orthonormal scaling. Both transforms support 1D and 2D operations on Matrix and Array types.
  • Forge scripts can now declare arguments and retrieve them with get_arg(name, type[, default]), enabling typed inputs to be provided when launching executions or scheduling jobs.
  • Added function to compute the specific heat from the order estimator sse_specific_heat(order).
  • The history of an SSE simulation can now be recorded and read/written from/to an HDF5 file allowing for checkpointing of simulations and for post processing.

šŸ› Fixes​

  • Added string parsing support for complex conversion in Aleph, so expressions like complex("2 + 1i") and "2 + 1i".complex() now work.
  • Fixed LSP semantic token locations for interpolated member access (for example ${ab.first}), avoiding invalid and overlapping semantic tokens in editors.
  • Mixed-complexity operator expressions that previously caused errors now work correctly. For example, 2.0 * X(0) + 3.0i * Y(1) is now a valid expression.
  • Fbit and Qbit can faithfully represent BasisStates with up to 64 sites, and will throw an error if an attempt is made to create a BasisState with more than 64 sites. This prevents silent truncation of states that was previously occurring.

āš ļø Breaking Changes​

  • Failed string-to-number conversions now throw an error instead of defaulting to 0. This affects conversions like real("abc") and integer("abc"). Loss-of-precision conversions still behave as before, e.g. integer("5.3") -> 5.