Skip to content

Commit 8a0b34e

Browse files
committed
Reverse edges in the reverse sweep of TDVP
1 parent 32ebca7 commit 8a0b34e

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

src/solvers/alternating_update/region_update.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ function region_update(
5555
# drho = noise * noiseterm(PH, phi, ortho) # TODO: actually implement this for trees...
5656
# so noiseterm is a solver
5757
#end
58+
#if isa(region, AbstractEdge) &&
5859
state, spec = inserter(state, phi, region; inserter_kwargs..., internal_kwargs)
5960
all_kwargs = (;
6061
which_region_update,

src/solvers/insert/insert.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ end
3333
function default_inserter(
3434
state::AbstractTTN,
3535
phi::ITensor,
36-
region::NamedEdge,
37-
ortho;
36+
region::NamedEdge;
3837
cutoff=nothing,
3938
maxdim=nothing,
4039
mindim=nothing,

src/solvers/sweep_plans/sweep_plans.jl

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ end
1313

1414
support(r) = r
1515

16-
function reverse_region(edges, which_edge; nsites=1, region_kwargs=(;))
16+
function reverse_region(edges, which_edge; reverse_edge=false, nsites=1, region_kwargs=(;))
1717
current_edge = edges[which_edge]
1818
if nsites == 1
19-
return [(current_edge, region_kwargs)]
19+
!reverse_edge && return [(current_edge, region_kwargs)]
20+
reverse_edge && return [(reverse(current_edge), region_kwargs)]
2021
elseif nsites == 2
2122
if last(edges) == current_edge
2223
return ()
@@ -62,6 +63,7 @@ function forward_sweep(
6263
dir::Base.ForwardOrdering,
6364
graph::AbstractGraph;
6465
root_vertex=GraphsExtensions.default_root_vertex(graph),
66+
reverse_edges=false,
6567
region_kwargs,
6668
reverse_kwargs=region_kwargs,
6769
reverse_step=false,
@@ -71,12 +73,13 @@ function forward_sweep(
7173
regions = collect(
7274
flatten(map(i -> forward_region(edges, i; region_kwargs, kwargs...), eachindex(edges)))
7375
)
74-
7576
if reverse_step
7677
reverse_regions = collect(
7778
flatten(
7879
map(
79-
i -> reverse_region(edges, i; region_kwargs=reverse_kwargs, kwargs...),
80+
i -> reverse_region(
81+
edges, i; reverse_edge=reverse_edges, region_kwargs=reverse_kwargs, kwargs...
82+
),
8083
eachindex(edges),
8184
),
8285
),
@@ -90,7 +93,7 @@ end
9093

9194
#ToDo: is there a better name for this? unidirectional_sweep? traversal?
9295
function forward_sweep(dir::Base.ReverseOrdering, args...; kwargs...)
93-
return reverse(forward_sweep(Base.Forward, args...; kwargs...))
96+
return reverse(forward_sweep(Base.Forward, args...; reverse_edges=true, kwargs...))
9497
end
9598

9699
function default_sweep_plans(

0 commit comments

Comments
 (0)