Releases: MesoscienceLab/mesohops
MesoHOPS v1.4
This commit presents a major upgrade from the previous version of MesoHops, with improvements including:
- Correction of a bug in the calculation of boundary error bounds.
- Reduced memory and CPU time when calculating the adaptive basis via Numba implementation and array optimization.
- A small flux boundary filter that further improves performance when the basis is large.
- Reduced memory and CPU time when calculating the time-derivative operator.
- Reduced memory during noise generation.
- A low-temperature correction to capture the effects of ultrafast correlation function modes.
- An effective integration of the noise to allow accurate calculations with larger time steps.
- Improved internal consistency, documentation, and testing.
As a result of these improvements:
- MesoHops now depends on Numba.
- Maximum hierarchy depth is 255.
MesoHOPS v1.3.0
This commit is a major update over the previous version of MesoHOPS including:
- The implementation of an adaptive algorithm that works for arbitrary diagonal L-operators. In practice, this means the adHOPS can now be used for multi-particle dynamics!
- A substantial speed improvement (3-8x faster for large systems)
- A modest further improvement in memory when managing a large number of auxiliary wave functions
- Some behind the scenes simplifications in the code design that will allow enable future generalizations
- The noise class has been condensed and now has some additional options for how the uncorrelated noise is initially generated
Starting with this commit, we are implementing levels of testing. For most purposes, pytest -level 1 is sufficient to ensure the code is behaving as expected. pytest -level 2 invokes a much slower set of tests that ensures the random number generators are performing within expected tolerances.
V1.2.1
- Corrected a bug in flux filters used for stable hierarchy and stable state errors
- Corrected a bug in error_flux_down
- Update filters to provide a stiffer error bound by providing an exact calculation of the boundary auxiliary error
- Introduced a HopsFluxFilter class to provide easier access to flux filters.
- Introduce HopsMode class and updated HopsSystem and HopsHierarchy to provide easier indexing
- Introduce a new method to compare auxiliaries with a string hash that provides a speed-up to managing connections between auxiliaries
- Improved implementation of eom_hops_ksuper for faster execution
v1.2.0
This is large update to the MesoHOPS code that includes a variety of cosmetic updates as well as:
- More efficient memory management, particularly for large systems
- Faster execution, particularly when there are a large number of auxiliaries
- An adaptive linear absorption equation-of-motion
- An improved algorithm for constructing hierarchies when using both a large hierarchy depth and aggressive static filters
- Improved efficiency of Markovian filtration during adaptive basis updates
- A noise indexing scheme that ensures two trajectories of different lengths with the same seed will have the same raw noise in the time region where they overlap
- A larger variety of options for inputing noise trajectories
- Improved random number seeding for noise trajectories of large aggregates
- A generalized class for saving data during a trajectory
- A helper function for defining Matsubara modes of Drude-Lorentz spectral density
- Generalized auxiliary indexing to manage arbitrary size of absolute hierarchy
This update also includes the following bug fixes:
- _determine_error_thresh: removed an error for the edge case when, if all error was below error threshold, all basis elements were included in basis
- _error_sflux_state: removed a bug that resulted in overestimating error terms
- _error_flux_down: removed a bug that could result in underestimated error terms
Version 1.1.0
This version includes an update to the adaptive algorithm which improves numerical performance for large aggregates. The bug that caused negative elements in the Hamiltonian to be incorrectly treated when constructing the adaptive basis has been squashed.