Giter VIP home page Giter VIP logo

Comments (7)

yomichi avatar yomichi commented on August 21, 2024

TeNeS always treats tensors on a square lattice. Each tensor has four legs; left, top, right, and bottom.
self.sublattice.append(SubLattice([1, vd, vd, 1])) means that the bond dimension of this site tensor is as follows:

  • The dimension of the left bond is 1
  • The dimension of the top bond is vd (finite)
  • The dimension of the right bond is vd (finite)
  • The dimension of the bottom bond is 1

This error is occurred due to the mismatch of dimensions, for example, the first site (left-bottom of a plaquette) has the right bond (the third bond) with the bond dimension vd, but the second one (right-bottom) has the left bond (the first bond) with the bond dimension 1.
(Probably we can make tenes_std say more detailed information about this error. )

Additionally, tenes_std split an imaginary time evolution tensor on a next-nearest neighbor bond on a square lattice into a series of tensors on the two nearest-neighbor bonds.
Therefore, I'd recommend that you set the right bond of the right-top tensor (and the left bond of the left-top tensor, of course) has finite dimension (vd).

By the way, some of the bonds in your code seem wrong;

  • Sublattice B
    • the first bond should have (0, -1) direction (-y direction)
  • Sublattice C
    • the bond should have (1, 0) direction (+x direction)

from tenes.

HamidArianZad avatar HamidArianZad commented on August 21, 2024

Thank you very much for your response.
I checked the correlation length of this lattice and found that in the +x direction this quantity is zero. For example for a low magnetic field I found below results in the corresponding output folder:

`
0 0 0.00000000000000000e+00 inf inf inf

0 1 0.00000000000000000e+00 inf inf inf

0 2 0.00000000000000000e+00 inf inf inf

0 3 0.00000000000000000e+00 inf inf inf

1 0 6.91811812190026715e-02 1.44547980011263562e+01 1.44547980011263562e+01 1.54931776659866092e+01

1 1 4.48277119609480468e-01 2.23076297284848390e+00 2.23130324778387390e+00 4.46091126212284461e+00

1 2 6.82987455583639186e-02 1.46415573496216158e+01 1.46415573496216158e+01 1.54260987895730555e+01

1 3 4.48311619591070243e-01 2.23059130368326208e+00 2.23112080295601611e+00 4.46057997789315852e+00
`

from tenes.

yomichi avatar yomichi commented on August 21, 2024

It seems to me that correlations along x-direction are absent.
Could you show the bond dimensions of virtual bonds?
If you set all the bond dimensions to vd (finite), what happens?

from tenes.

HamidArianZad avatar HamidArianZad commented on August 21, 2024

Please find in below the bond dimensions of virtual bonds that recorded in output files (I considered {L = 3
W = 3} to get accurate results for ground-state magnetization):

[tensor]
L_sub = [6, 6]
skew = 0
[[tensor.unitcell]]
index = [0, 2, 4, 12, 14, 16, 24, 26, 28]
physical_dim = 2
virtual_dim = [1, 2, 2, 1]
initial_state = [0.0, 0.0]
noise = 0.01
[[tensor.unitcell]]
index = [1, 3, 5, 13, 15, 17, 25, 27, 29]
physical_dim = 2
virtual_dim = [2, 1, 1, 2]
initial_state = [0.0, 0.0]
noise = 0.01
[[tensor.unitcell]]
index = [6, 8, 10, 18, 20, 22, 30, 32, 34]
physical_dim = 2
virtual_dim = [2, 1, 2, 2]
initial_state = [0.0, 0.0]
noise = 0.01
[[tensor.unitcell]]
index = [7, 9, 11, 19, 21, 23, 31, 33, 35]
physical_dim = 2
virtual_dim = [2, 2, 2, 1]
initial_state = [0.0, 0.0]
noise = 0.01

  • Please be advised that in simple.toml file, you supposed me to consider below terms:

[parameter]
[parameter.general]

is_real = true

[parameter.simple_update]
num_step = 1000
tau = 0.01

[parameter.full_update]
num_step = 0
tau = 0.01

[parameter.ctm]
iteration_max = 100
dimension = 10

[lattice]
type = "kagome lattice"
L = 2
W = 2
initial = "ferro"
virtual_dim = 2

[model]
type = "spin"
J0 = 1
J1 = 1

  • virtual_dim is D that is the only essential parameter to control the accuracy of the iPEPS ansatz.
    Does the value D=2 (that is the lowest value of virtual dim) support the accuracy of the ground-state energy results?
    With TeNeS I had to consider {W>2, L>2} when D=2 to enrich the reasonable results for the magnetization steps and jumps. While the dimension of unit block of the lattice is restricted with {W=2, L=2}.
  1. Should I keep fixed values {W=2, L=2} and just play with D and ctm parameters {iteration_max, dimension}
    to get acceptable results for the magnetization? Or W>2 and L>2 can be accepted with physical interpretation in tensor-network method employed by TeNeS?

If you set all the bond dimensions to vd (finite), what happens?

I set all bond dimensions to vd (3) and found that the correlation length has not zero value (i.e., see some results in below).

0 0 8.85343634758468889e-01 1.12950492976979566e+00 1.22009533765149270e+00 1.22009533765149270e+00
0 1 8.52127712339509458e-01 1.17353301097849338e+00 1.21659023827259860e+00 1.21659023827259860e+00
0 2 9.99073631673219831e-01 1.00092722728076478e+00 1.21804145723678792e+00 1.21804145723678792e+00
0 3 8.37026728586644175e-01 1.19470497876279680e+00 1.21698025199151272e+00 1.24108067549016332e+00
1 0 9.67810368052768433e-01 1.03326026772372459e+00 1.07047372564791088e+00 1.11897021034661326e+00
1 1 9.54141627364600953e-01 1.04806243781865249e+00 1.15188174191459525e+00 1.66412271197779771e+00
1 2 9.68407120565518253e-01 1.03262355135930073e+00 1.07675699301875882e+00 1.15089824525182238e+00
1 3 9.46600088200868717e-01 1.05641232497730320e+00 1.13492249797285116e+00 1.64773035040992100e+00

from tenes.

yomichi avatar yomichi commented on August 21, 2024

I set all bond dimensions to vd (3) and found that the correlation length has not zero value

Great.

Does the value D=2 (that is the lowest value of virtual dim) support the accuracy of the ground-state energy results?

It is the users' responsibility to check the convergence with respect to D.

Should I keep fixed values {W=2, L=2} and just play with D and ctm parameters {iteration_max, dimension}
to get acceptable results for the magnetization? Or W>2 and L>2 can be accepted with physical interpretation in tensor-network method employed by TeNeS?

An iTPS with {W, L} can represent states with a spatial periodicity of W by L.
Of course, if the ground state has a longer period, you should enlarge the value of W and L.

To solve problems by iTPS+CTMRG, we need many approximations; periodicity (W, L), bond-dimension (D, chi), Suzuki-Trotter decomposition (tau, number of steps), ...
Users should check the convergence of these controlled parameters (W, L, D, ...) step by step.

from tenes.

HamidArianZad avatar HamidArianZad commented on August 21, 2024

I changed all mentioned parameters to converge the results to the accurate values.
I eventually found that the parameters in below simple.toml file could act efficiently to reach reasonable convergence:


[parameter]
[parameter.general]

is_real = true

[parameter.simple_update]
num_step = 1000
tau = 0.01

[parameter.full_update]
num_step = 0
tau = 0.01

[parameter.ctm]
iteration_max = 100
dimension = 5 # (4<chi<10)

[lattice]
type = "kagome lattice"
L = 3
W = 3
initial = "ferro"
virtual_dim = 2

[model]
type = "spin"
J0 = 1
J1 = 1

Ultimately I could obtain below results for the magnetization.

mag_martini lattice 1_JH1

TeNeS nicely reproduces all plateaus (M/M_s = {1/12, 1/6, 1/4}) and the corresponding jumps at the accurate critical magnetic fields.
The problem is why at some values of the magnetic field, magnetization behaves anomalously?
I tried to reproduce all magnetization plateaus and jumps normally by changing all controlled parameters (W, L, D, chi ...) step by step, but whenever a magnetization jump occurs at some points (indicated by circles) the TeNeS's result deviates from the normal increasing mode.
This problem is obvious even in figure 8 (b) of your publication (see below figure).
Is there any technical interpretation for this phenomenon? Or, if you know any way to address this problem please let me know, too.

Triangular_Tenes_Mag

from tenes.

yomichi avatar yomichi commented on August 21, 2024

I'm very sorry for the late reply.
TeNeS searches for the ground state by using an iterative method (imaginary time evolution) and hence the initial state affects the result, particularly near the transition point.
One of the remedies is to take the obtained state at the deep of the phase as an initial state.

from tenes.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.