Comments (7)
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.
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.
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.
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}.
- 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.
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.
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.
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.
from tenes.
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)
- TeNeS Debian Package HOT 16
- Comment : Intel MKL error
- Installing TeNeS / user-defined model & lattice HOT 7
- Inconsistent results for the magnetization HOT 7
- Non-equilibrium many-body physics HOT 8
- TeNeS 1.2.0 does not compile with macOS homebrew + gcc-11 HOT 7
- Next-Nearest-Neighbor interaction HOT 5
- Date of ver.1.2.0 HOT 1
- Initialization as antiferromagnetic state for S=1 HOT 1
- Infinite number of spins HOT 1
- Output.dat is not created HOT 6
- tenes error in running samples HOT 4
- Negative skew does not work (v1.3.3)
- self.s VS self.zs HOT 3
- How can we extract the converged tensors? HOT 5
- Known issues on tutorial (sample) of TeNeS v2.0.0 HOT 3
- What is the network structure connecting the local tensors of the iTPS in TeNeS ? HOT 5
- Temperature and field interval in sample: 03_finite_temperature
- Evaluation of string operator obserbables?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tenes.