Aleph - 0.31.1
๐ Highlightsโ
โจ New Featuresโ
- Introduced the Plotting module to create figures in Aleph for data analysis, including bar, line, scatter, and heatmap plots.
- Supports legends, multiple series, multiple plots in the same figure, and a ton of customization options.
- Functions for the computation of matrix elements and expectation values with MPS and MPO.
matrix_element(bra,operator,ket)to compute the matrix element of an operator.expval(operator,ket)to compute the expected value of the operator.
- Added accumulators for binning analysis of time series and markov chain data. Currently support
accumulator("no_binning")andaccumulator("binning"). The bin size can be set viaaccumulator("binning" ["bin_size" : 1024 ]). - Added a
FourBodysymbolic fermionic operator: . An operator can be created viaFourBody(i,j,k,l)wherei,j,k,lare the sites where the operator acts. - Added a
DoubleExcitationfermionic operator: . An operator can be created viaDoubleExcitation(i,j,k,l)wherei,j,k,lare the sites where the operator acts. - The
arrayandmatrixfactories now accept array and matrix objects together with a type tag. For example:array(my_matrix, as_complex)will create a complex array frommy_matrixeven if it is of real type. - MPS compression routine.
mps.compress(tol)to compress a MPS to specified error tolerance. operator_functionnow supports both Hermitian and non-Hermitian matrices and operators. The appropriate Krylov method (Lanczos or Arnoldi) is automatically selected based on the input. The API can be summarized as:operator_function(H, dim, fun(real){real}, ["is_real":true])for real-valued functions and Hermitian operators. Note that the["is_real":true]option is required to indicate that the function is real-valued.operator_function(H, dim, fun(complex){complex})for other Hermitian operators.operator_function(H, dim, fun(complex, integer){complex})for non-Hermitian operators. The integer argument stands for the order of the derivative of the function, which is required for non-Hermitian operators.- Any of the above can also be called with a matrix
Hmatinstead of an operatorHand a dimensiondim. - Any of the above also accepts an optional dictionary of options as last argument, e.g.
["krylov_dimension": 32].
- The
PhaseHop(angle,i,j)factory function has been added to create fermionic hopping operators with an associated phase factor: .
๐ Fixesโ
- Assigning complex arrays or matrices to real arrays or matrices used to silently fail, it now raises an error.
โ๏ธ Internal / Technical Changesโ
-
Adds internal support for handling sparse matrix operations with free fermion objects.
-
Real arrays and matrices are not implicitly convertible to complex arrays and matrices anymore. An explicit conversion is now required using
as_complex. -
Cmake presets to help manage compilation with IDE/VScode.
- Presets for qbitpp
- Presets for chaiqpp
-
VScode devcontainer mount the user's .ssh for syncing with gitlab.
- no further setup required for syncing git, if the user already has set his ssh keys in
$HOME/.ssh
- no further setup required for syncing git, if the user already has set his ssh keys in
โ ๏ธ Breaking Changesโ
operator_functionAPI has changed to support both Hermitian and non-Hermitian operators; it now accepts an option map similar to that ofiterative_eigensolver. See the New Features section for details.