Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]#

Improved#

  • Further reduced the number of matrix products by around 30% for high orders and down to a guaranteed minimum for 3rd order.

  • Improved the efficiency of the MUMPS solver on real Hamiltonians.

Fixed#

  • Fix incorrect shape of BlockSeries blocks if \(H_0\) has a zero block (#127).

[2.0.0] - 2024-02-03#

Improved#

  • Switched to the python-mumps wrapper for the direct solver, which is available on all platforms and is more feature-complete.

  • The implicit KPM solver now guarantees reaching a requested accuracy.

  • A new algorithm that has optimal scaling while avoiding multiplication by \(H_0\), and supports implicit data. This combines advantages of all previous algorithms, and therefore supersedes them.

  • Sped up cauchy_dot_product when there are more than 3 series by reusing intermediate results.

  • Optimized memory usage of ~pymablock.block_diagonalize by deleting intermediate results when they are no longer needed.

Added#

  • A complete description of the algorithm to the documentation, see documentation.

  • String representation of BlockSeries for readability.

Removed#

  • expanded, symbolic, implicit, and general functions and algorithms (functionality taken over by the new general algorithm, with block_diagonalize the main interface).

  • the algorithm argument from block_diagonalize (there is only one algorithm now).

  • exclude_last argument of cauchy_dot_product (instead we check whtether other terms lack 0th order).

[1.0.0] - 2023-06-05#

  • First release of Pymablock.