Skip to content

Commit

Permalink
fix shrink chi with RSVD
Browse files Browse the repository at this point in the history
  • Loading branch information
yomichi committed Jan 10, 2024
1 parent cedf129 commit c9b0de4
Show file tree
Hide file tree
Showing 11 changed files with 840 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/iTPS/core/ctm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -433,8 +433,8 @@ void Calc_projector_updown_blocks(
tensor U_c = mptensor::slice(U, 3, 0, cut);
tensor VT_c = mptensor::slice(VT, 0, 0, cut);

U_c.multiply_vector(s, 3);
VT_c.multiply_vector(s, 0);
U_c.multiply_vector(s_c, 3);
VT_c.multiply_vector(s_c, 0);

PU = tensordot(LB, tensordot(RB, conj(VT_c), Axes(1, 3, 5), Axes(1, 2, 3)),
Axes(1, 3, 5), Axes(0, 1, 2))
Expand Down
1 change: 1 addition & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ foreach(
AntiferroHeisenberg_real
AntiferroHeisenberg_complex
AntiferroHeisenberg_mf
RSVD
J1J2_AFH
Honeycomb
Honeycomb_skew
Expand Down
316 changes: 316 additions & 0 deletions test/data/RSVD.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,316 @@
[parameter]
[parameter.general]
is_real = false
output = 'output_RSVD'
[parameter.simple_update]
tau = 0.01
num_step = 100
[parameter.full_update]
tau = 0.01
num_step = 1
[parameter.ctm]
dimension = 5
use_rsvd = true
projector_corner = false

[tensor]
L_sub = [2, 2]
skew = 0
[[tensor.unitcell]]
index = []
physical_dim = 2
virtual_dim = [2, 2, 2, 2]
initial_state = [0.0]
noise = 0.01

[correlation]
r_max = 3
operators = [[0,0], [0,1]]

[observable]
[[observable.onesite]]
name = "Sz"
group = 0
sites = []
dim = 2
elements = """
0 0 0.5 0.0
1 1 -0.5 0.0
"""
[[observable.onesite]]
name = "Sx"
group = 1
sites = []
dim = 2
elements = """
1 0 0.5 0.0
0 1 0.5 0.0
"""
[[observable.onesite]]
name = "Sy"
group = 2
sites = []
dim = 2
elements = """
1 0 0.0 0.5
0 1 -0.0 -0.5
"""

[[observable.twosite]]
name = "bond_hamiltonian"
group = 0
bonds = """
0 1 0
1 1 0
2 1 0
3 1 0
0 0 1
1 0 1
2 0 1
3 0 1
"""
dim = [2, 2]
elements = """
0 0 0 0 0.25 0.0
1 0 1 0 -0.25 0.0
0 1 1 0 0.5 0.0
1 0 0 1 0.5 0.0
0 1 0 1 -0.25 0.0
1 1 1 1 0.25 0.0
"""
[[observable.twosite]]
name = "SzSz"
group = 1
bonds = """
0 1 0
1 1 0
2 1 0
3 1 0
0 0 1
1 0 1
2 0 1
3 0 1
"""
ops = [0, 0]
[[observable.twosite]]
name = "SxSx"
group = 2
bonds = """
0 1 0
1 1 0
2 1 0
3 1 0
0 0 1
1 0 1
2 0 1
3 0 1
"""
ops = [1, 1]
[[observable.twosite]]
name = "SySy"
group = 3
bonds = """
0 1 0
1 1 0
2 1 0
3 1 0
0 0 1
1 0 1
2 0 1
3 0 1
"""
ops = [2, 2]

[evolution]
[[evolution.simple]]
source_site = 0
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 1
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 2
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 3
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 0
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 1
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 2
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.simple]]
source_site = 3
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 0
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 1
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 2
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 3
source_leg = 2
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 0
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 1
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 2
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
[[evolution.full]]
source_site = 3
source_leg = 1
dimensions = [2, 2, 2, 2]
elements = """
0 0 0 0 0.9975031223974601 0.0
1 0 1 0 1.0025156589209967 0.0
0 1 1 0 -0.005012536523536871 0.0
1 0 0 1 -0.005012536523536871 0.0
0 1 0 1 1.0025156589209967 0.0
1 1 1 1 0.9975031223974601 0.0
"""
Loading

0 comments on commit c9b0de4

Please sign in to comment.