Skip to content

Commit

Permalink
Add a page on the history of the HEOM implementation.
Browse files Browse the repository at this point in the history
  • Loading branch information
hodgestar committed Dec 6, 2021
1 parent dee01f9 commit a9f69e4
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/guide/guide-heom.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ Hierarchical Equations of Motion
heom/intro.rst
heom/bosonic.rst
heom/fermionic.rst
heom/history.rst
heom/references.rst
55 changes: 55 additions & 0 deletions doc/guide/heom/history.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
########################
Previous implementations
########################

The current HEOM implementation in QuTiP is the latest in a succession of HEOM
implementations by various contributors:


HSolverDL
---------

The original HEOM solver was implemented by Neill Lambert, Anubhav Vardhan,
and Alexander Pitchford and is still available as
:class:`qutip.nonmarkov.dlheom_solver.HSolverDL` and only directly provided
support for the Drude-Lorentz bath although there was the possibility of
sub-classing the solver to implement other baths.

A compatible interface using the current implementation is available under the
same name in :class:`qutip.nonmarkov.heom.HSolverDL`.


BoFiN-HEOM
----------

BoFiN-HEOM (the bosonic and fermionic HEOM solver) was a much more
flexible re-write of the original QuTiP ``HSolverDL`` that added support for
both bosonic and fermionic baths and for baths to be specified directly via
their correlation function expansion coefficients. Its authors were
Neill Lambert, Tarun Raheja, Shahnawaz Ahmed, and Alexander Pitchford.

BoFiN was written outside of QuTiP and is can still be found in its original
repository at https://github.com/tehruhn/bofin.

The construction of the right-hand side matrix for BoFiN was slow, so
BoFiN-fast, a hybrid C++ and Python implementation, was written that performed
the right-hand side construction in C++. It was otherwise identical to the
pure Python version. BoFiN-fast can be found at
https://github.com/tehruhn/bofin_fast.

BoFiN also came with an extensive set of example notebooks that are available
at https://github.com/tehruhn/bofin/tree/main/examples.


Current implementation
----------------------

The current implementation is a rewrite of BoFiN in pure Python. It's
right-hand side construction has similar speed to BoFiN-fast, but is written
in pure Python. Built-in implementations of a variety of different baths
are provided, and a single solver is used for both fermionic and bosonic baths.
Multiple baths of the same kind (either fermionic or bosonic) may be
specified in a single problem, and there is good support for working with
the auxiliary density operator (ADO) state and extracting information from it.

The code was written by Neill Lambert and Simon Cross.

0 comments on commit a9f69e4

Please sign in to comment.