-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ITensorTDVP.jl v0.4 #74
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mtfishman
commented
May 13, 2024
mtfishman
commented
May 13, 2024
mtfishman
commented
May 13, 2024
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #74 +/- ##
==========================================
+ Coverage 85.99% 87.56% +1.57%
==========================================
Files 19 18 -1
Lines 621 571 -50
==========================================
- Hits 534 500 -34
+ Misses 87 71 -16 ☔ View full report in Codecov by Sentry. |
mtfishman
commented
May 14, 2024
mtfishman
commented
May 14, 2024
mtfishman
commented
May 14, 2024
mtfishman
commented
May 14, 2024
mtfishman
commented
May 14, 2024
mtfishman
commented
May 14, 2024
mtfishman
commented
May 14, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #14 and closes #35.
Some breaking changes and new features:
tdvp(t, operator, state; kwargs...)
andtdvp(operator, state, t; kwargs...)
.tdvp(operator, t, state; kwargs...)
now interpretst
as the total time, i.e. outputs the approximation ofapply(exp(t * operator), state)
. Before, it was interpretingt
as the time step, which was confusing and also inconsistent with the docstring fortdvp
. It also brings the API forITensorTDVP.tdvp
/ITensorMPS.tdvp
closer to that ofKrylovKit.exponentiate
, and my plan would be to renametdvp
toexponentiate
in the future. To set thetdvp
time step, the recommended API will now be eithertdvp(operator, t, state; nsteps, kwargs...)
to set a time step oft / nsteps
ortdvp(operator, t, state; time_step, kwargs...)
which will setnsteps = Int(t / time_step)
.nsweeps
is kept as an alias fornsteps
for backwards compatibility and consistency with other solvers likedmrg
,linsolve
, etc.time_step
.psi
changed tostate
.AbstractOberver
interface.tdvp(operator, t, init; nsteps, cutoff, solver_tol=1e-12)
totdvp(operator, t, init; nsteps, cutoff, updater_kwargs=(; tol=1e-12))
(same forITensorTDVP.dmrg
). Syntax tries to matchITensorNetworks
solvers as much as possible12.tdvp(operator, t, init; nsteps, cutoff, updater=...)
(same forITensorTDVP.dmrg
,ITensorTDVP.dmrg_x
, andITensorTDVP.linsolve
). Syntax tries to matchITensorNetworks
solvers as much as possible12. Before a solver/updater could be passed as the first argument to certain solvers liketdvp
but now support is consistent across all solvers through theupdater
keyword argument.To-do:
contract(::Algorithm"fit", operator::MPO, state::MPS; init, kwargs...)
, require thatinit
has the unique indices ofoperator
(i.e. for standard MPO and MPS they should be primed).ITensorMPS.jl
v0.2 usingITensorTDVP.jl
v0.4.@emstoudenmire
Footnotes
https://github.com/ITensor/ITensorNetworks.jl/blob/v0.11.6/test/test_treetensornetworks/test_solvers/test_tdvp.jl ↩ ↩2
https://github.com/ITensor/ITensorNetworks.jl/blob/v0.11.6/test/test_treetensornetworks/test_solvers/test_dmrg.jl ↩ ↩2