Skip to content

Integrationtcd#2

Draft
paulreastham wants to merge 132 commits into
mainfrom
integrationtcd
Draft

Integrationtcd#2
paulreastham wants to merge 132 commits into
mainfrom
integrationtcd

Conversation

@paulreastham

Copy link
Copy Markdown
Owner

Draft pull request so we can have local discussions of the integrationtcd branch.

paulreastham and others added 30 commits August 21, 2024 15:19
…of time dependent Hamiltonian to iTEBD-example
Modified example to use this capability.
paulreastham and others added 25 commits May 4, 2026 17:54
This change was needed to enable the tests to pass, which they now do.
Bug fix so gradient.py works with multi environments.
Carlos's fixed code for using analytical power law SD
Code now works, just tidying
@paulreastham

paulreastham commented May 20, 2026

Copy link
Copy Markdown
Owner Author

Hi @carlosTaberner @eoin-dp-oneill and cc @gefux @emile-cochin should they wish to comment,

I thought we should have a place for the various extensions to OQuPy we've started in TCD, to bring them all together, and as a starting point for pulling out those which might be useful to make PR's to OQuPy. To that end I've made a branch in this fork, integrationtcd, which combines (I think) all the TCD codes. I've also made this draft PR so we can discuss it.

The features which are now in (please add if I've missed anything):

  • Time-translation-invariant process tensors, as in the current PR to main from @emile-cochin.
  • Heat markers based on Maria's original implementation, https://arxiv.org/abs/2008.06491, improved and made to work with TTI-TEMPO, TEMPO, and PT-TEMPO.
  • Time-dependent system-environment coupling, put in by @carlosTaberner and used in https://arxiv.org/abs/2603.09913, now in TEMPO and PT TEMPO (and works with heat markers).
  • Analytical calculations of eta-functions for Ohmic spectral density with exponential cutoff ...
  • ... and for the heat-marker eta-functions (by @carlosTaberner).
  • Some additional codes in gradient.py from Eoin.
  • Eoin's parameterizedsystem2ls class with analytical forms for the Liouvillian and its gradient for a two-level system.

Things which I think could usefully be tidied up:

  • Remove non-functional code (e.g. functions named _old), or work on individual projects.
  • Remove non-functional changes relative to main (e.g. moves of function definitions).
  • Clean up the CustomCountingSD class in bath_correlations.py to align with current implementation of CustomSD. It's currently adapted from an older version which has since been streamlined.
  • I think the heat markers classes in bath_correlations.py should be pulled into a separate file, say annotated_bath_correlations.py. The naming is also confusing, and possibly there should be a new class hierarchy, mirroring BaseCorrelations,CustomSD,PowerLawSD, e.g. CountingCorrelations, CountingCustomSD, CountingPowerLawSD. The analytical heat markers result should be in CountingPowerLawSD.
  • Eoin, can you comment on what the additional routines you've added to gradient.py do? Perhaps update the description of these functions and we can see if they're general enough to keep.
  • Eoin, can you look at the new TTI implementation and see if the occupationTTI function is needed any more?
  • We need some tests and documentation. Some of these could perhaps be adapted from work on individual projects?

Things which don't work and could be fixed :

  • The heat markers code only gives the correct heat at the end of a PT constructed with PT-TEMPO. This is a known issue related to the construction of the caps. It can be fixed relatively easily, using the approach Link invented of extending the system leg's dimensions by one, such that the tensors in the TEMPO network become factors of 1 for the corresponding value of the index. This would ideally be done by extending the Liouville space of the system, but an alternative, which may be easier to implement, would be to expand the Hilbert space dimension by one, introducing a pseudostate which has zero eigenvalue of the coupling operator.

That approach leads to a possibility for the future, which would be to construct PT's which allow us to choose among different environment's for each timestep - for example, to get a single PT which can encode arbitrary time-dependences of the coupling. The trick would be to add new legs to the tensors in the TEMPO network, to index the different possible influence-functional blocks, which can be combined with the usual ones. In effect this means that if we wanted to, say, choose from n=5 values of the coupling at each timestep, we would use an expanded Liouville space with dimension n times bigger than the original one. This may or may not be manageable but might be cool.

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.

5 participants