Skip to content

Conversation

@alexiahartzell
Copy link
Collaborator

MesoHOPS 1.6.1

This commit upgrades MesoHOPS, adding a new trajectory checkpointing system, options for increased HopsStorage efficiency, overhauled initialization of Noise 2, quality-of-life improvements, and various fixes.

Key improvements and features:

  1. Trajectory Checkpointing: Checkpointing allows the user to save and load a trajectory as a .npz file with options to alter the noise going forward, greatly simplifying advanced sampling techniques. In a similar vein, the HopsSystem object may now be saved and loaded to hasten initialization.
  2. HopsStorage Step: HopsStorage may now be set to save data from only selected time points, reducing the RAM costs of storing data. This is distinct from the save_slices method of HopsTrajectory, which conveniently saves the data of HopsStorage to disk and has options for slicing and compressing data to reduce hard disk costs.
  3. Noise2 Input Management: Noise 2 (typically used for thermal noise and the time-dependent portion of the Hamiltonian) is now initialized with its own parameter dictionary and the user may choose whether to make it purely real. Noise 2 is no longer automatically multiplied by two and converted to its real portion by the equation-of-motion: scripts that used noise 2 in the past must be updated to account for this!
  4. Efficient Zero Noise: When noise model “ZERO” is used, HopsNoise RAM usage no longer scales with system size or simulation time.
  5. DyadicSpectra Static Filter Input Structure: Updated static filter input structure in DyadicSpectra to properly feed into HopsHierarchy. Checks were added in HopsHierarchy to ensure filters are properly defined for all modes.
  6. Pytest.Raises Standardization: Unit tests checking for correct error messages no longer use try/except clauses and are now tested using pytest.raises
  7. Spectral Density Streamlining: bcf_convert_sdl_to_exp has been deprecated, and bcf_convert_dl_to_exp_with_Matsubara has been renamed to bcf_convert_dl_to_exp. For treatment of underdamped modes, we recommend using bcf_convert_dl_ud_to_exp.
  8. Version Hash Metadata: Current git commit hash can now be accessed and saved from HopsStorage, allowing users to store the commit hash at runtime.
  9. HopsDyadic Complex Handling: Fixed an issue where the _M2_dyad_conversion method was restricting the matrix elements to be real in the case where the provided matrix is a dense array.

These enhancements collectively improve the computational efficiency, maintainability, and convenience of MesoHOPS for current and future applications.

# MesoHOPS 1.6.1
This commit upgrades MesoHOPS, adding a new trajectory checkpointing system, options for increased HopsStorage efficiency, overhauled initialization of Noise 2, quality-of-life improvements, and various fixes.
### Key improvements and features:
1. **Trajectory Checkpointing**: Checkpointing allows the user to save and load a trajectory as a .npz file with options to alter the noise going forward, greatly simplifying advanced sampling techniques. In a similar vein, the HopsSystem object may now be saved and loaded to hasten initialization.
2. **HopsStorage Step**: HopsStorage may now be set to save data from only selected time points, reducing the RAM costs of storing data. This is distinct from the save_slices method of HopsTrajectory, which conveniently saves the data of HopsStorage to disk and has options for slicing and compressing data to reduce hard disk costs.
3. **Noise2 Input Management**: Noise 2 (typically used for thermal noise and the time-dependent portion of the Hamiltonian) is now initialized with its own parameter dictionary and the user may choose whether to make it purely real. <ins>Noise 2 is no longer automatically multiplied by two and converted to its real portion by the equation-of-motion: scripts that used noise 2 in the past must be updated to account for this!</ins>
4. **Efficient Zero Noise**: When noise model “ZERO” is used, HopsNoise RAM usage no longer scales with system size or simulation time.
5. **DyadicSpectra Static Filter Input Structure**: Updated static filter input structure in DyadicSpectra to properly feed into HopsHierarchy. Checks were added in HopsHierarchy to ensure filters are properly defined for all modes.
6. **Pytest.Raises Standardization**: Unit tests checking for correct error messages no longer use try/except clauses and are now tested using pytest.raises
7. **Spectral Density Streamlining**: <ins>bcf_convert_sdl_to_exp has been deprecated</ins>, and bcf_convert_dl_to_exp_with_Matsubara has been renamed to bcf_convert_dl_to_exp. For treatment of underdamped modes, we recommend using bcf_convert_dl_ud_to_exp.
8. **Version Hash Metadata**: Current git commit hash can now be accessed and saved from HopsStorage, allowing users to store the commit hash at runtime.
9. **HopsDyadic Complex Handling**: Fixed an issue where the _M2_dyad_conversion method was restricting the matrix elements to be real in the case where the provided matrix is a dense array.
These enhancements collectively improve the computational efficiency, maintainability, and convenience of MesoHOPS for current and future applications.
@digbennett digbennett merged commit a1d1820 into master Oct 29, 2025
@digbennett digbennett deleted the update_1pt6pt1 branch October 29, 2025 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants