Search found 429 matches

by Johannes
13 May 2024, 05:25
Forum: HowTos and FAQ for TeNPy
Topic: How to use MPS.from_Bflat
Replies: 1
Views: 22

Re: How to use MPS.from_Bflat

The finite mps in Tenpy always has open boundary conditions. In other words, in finite systems, the vL on the first tensor should be trivial of dimension 1, and so should be the vR leg of the last tensor. Closing the loop on the virtual legs with a trace is nasty for numerical simulations, since it ...
by Johannes
08 May 2024, 14:15
Forum: HowTos and FAQ for TeNPy
Topic: Implementing iDMRG for ladder lattices
Replies: 2
Views: 94

Re: Implementing iDMRG for ladder lattices

Let me be a bit more explicit: in the simple case of the Ladder, the following lines in init_couplings are equivalent: add_coupling(-t, 0, 'Cdu', 0, 'Cu', dx=1, plus_hc=True) add_coupling(-tv, 0, 'Cdu', 1, 'Cu', dx=1, plus_hc=True) add_coupling(-t, 1, 'Cdu', 1, 'Cu', dx=1, plus_hc=True) for x in ran...
by Johannes
08 May 2024, 14:04
Forum: HowTos and FAQ for TeNPy
Topic: Implementing iDMRG for ladder lattices
Replies: 2
Views: 94

Re: Implementing iDMRG for ladder lattices

Hi Fabio, whether you call add_coupling or explicitly loop over add_local_term doesn't matter for the final DMRG run, if you get the same couplings in the MPO of the hamiltonian - but with the latter, you need to iterate over the starting point of the couplings in real space, so you are responsible ...
by Johannes
07 May 2024, 09:53
Forum: Algorithms
Topic: Gate-based TEBD
Replies: 1
Views: 219

Re: Gate-based TEBD

It doesn't allow this out of the box, but you can easily write your own subclass of the TEBD Engine which just plugs in the corresponding Us. Essentially, you want to re-use the `update_step` function for the evolution (and maybe the first order suzuki trotter decomposition, depending on how you wan...
by Johannes
07 May 2024, 07:57
Forum: HowTos and FAQ for TeNPy
Topic: Issue with Missing Subscripts on Fermionic Operators in all_coupling_terms().to_TermList() Output
Replies: 4
Views: 126

Re: Issue with Missing Subscripts on Fermionic Operators in all_coupling_terms().to_TermList() Output

The subscript notation is a bit misleading here, because it suggests that it only applies to the next operator. Really, you should read those operators to be grouped like this: 1.00000 * (Cdd Cu)_0 (Cdu Cd)_1 + 1.00000 * (Cdd Cu)_1 (Cdu Cd)_2 + 1.00000 * (Cdd Cu)_2 (Cdu Cd)_3 + 1.00000 * (Cdd Cu)_3 ...
by Johannes
07 May 2024, 07:43
Forum: HowTos and FAQ for TeNPy
Topic: Applying different time evolution to different subsystems with TEBD
Replies: 2
Views: 24871

Re: Applying different time evolution to different subsystems with TEBD

Jakob is totally right, of course. Let me just mention that it wouldn't be too hard to extend TEBD to work with this. Define a new LadderTEBDEngine, which takes the two models as input, and define 2 separate TEBD engines for them. Then overwrite: def evolve(...): # start with site order # A0 B0 A1 B...
by Johannes
16 Apr 2024, 10:15
Forum: HowTos and FAQ for TeNPy
Topic: Transfer matrix is incorrect without imposing canonical form
Replies: 1
Views: 13829

Re: Transfer matrix is incorrect without imposing canonical form

If you need to_matrix, why don't you implement that function directly on the existing transfer matrix? To get a consistent result, all tensor which you extract *need* to be in the same canonical form, e.g. all right-canonical 'B' form. After a plain DMRG run (without a call of psi.canonical_form() i...
by Johannes
10 Apr 2024, 17:42
Forum: HowTos and FAQ for TeNPy
Topic: How can I construct a canonical infinite-temperature state with fixed total number of fermions ?
Replies: 1
Views: 51157

Re: How can I construct a canonical infinite-temperature state with fixed total number of fermions ?

I guess the answer is a bit late, but for those finding this in the future: it should just work like this: In [10]: M = tenpy.FermiHubbardModel(dict(L=10, cons_Sz='Sz', cons_N='N')) In [11]: M.lat.unit_cell[0].leg.chinfo Out[11]: ChargeInfo([1, 1], ['N', '2*Sz']) In [12]: psi = tenpy.PurificationMPS...
by Johannes
10 Apr 2024, 17:29
Forum: HowTos and FAQ for TeNPy
Topic: Three-site fermionic operator in systems of spinless fermions
Replies: 1
Views: 10357

Re: Three-site fermionic operator in systems of spinless fermions

The error comes because you try to add a term with 3 fermionic operators - this would require an open Jordan wigner string when mapping to spins, and thus be a non-local operator. More generally, you can't write physical Hamiltonians with an odd number of fermionic operators, because they violate lo...
by Johannes
10 Apr 2024, 17:04
Forum: HowTos and FAQ for TeNPy
Topic: The EE is different for different initial setup
Replies: 1
Views: 49727

Re: The EE is different for different initial setup

This is equivalent to the Su-Schrieffer-Heger (SSH) chain, which has a topolgical phase with edge modes. Given that your filename starts with ssh_, I assume you're familiar with that. the XXZChan has Sz conservation by default. That means if you fix the initial state to be in a particular Sz charge ...
by Johannes
10 Apr 2024, 16:50
Forum: HowTos and FAQ for TeNPy
Topic: Asimmetry in trivial 2D expansion using TDVP
Replies: 2
Views: 38862

Re: Asimmetry in trivial 2D expansion using TDVP

This reminds me of one of my first work on tensor networks, 1509.00696 - using back then new W_II method that we now have in the ExpMPOEvolution in TeNPy :-) While the Hamiltonian is symmetric under exchange of x/y, the MPS snaking through the square lattice explicitly breaks it - hopping in y-direc...
by Johannes
10 Apr 2024, 16:16
Forum: HowTos and FAQ for TeNPy
Topic: Strange timing data for DMRG applied to Fermi-Hubbard model
Replies: 1
Views: 10231

Re: Strange timing data for DMRG applied to Fermi-Hubbard model

To reliably benchmark DMRG, I recommend to pin the number of sweeps by setting min_sweeps=max_sweeps to some fixed number - the total run time is just proportional to the number of sweeps, and how many sweeps it does can sometimes depend on subtle differences in convergence thresholds. Indeed, your ...
by Johannes
10 Apr 2024, 15:42
Forum: HowTos and FAQ for TeNPy
Topic: How to improve calculation accuracy in real time evolution ?
Replies: 1
Views: 10154

Re: How to improve calculation accuracy in real time evolution ?

Tenpy also tries to solve the schrlödinger equation... I guess you compared to exact evolution for a non-interacting system, or exact diagonalization? TDVP does the time evolution with the effective Hamiltonian, i.e. H projected onto the local single-site/two-site MPO. If you have only bond dimensio...
by Johannes
10 Apr 2024, 15:17
Forum: HowTos and FAQ for TeNPy
Topic: Compressing an MPO
Replies: 1
Views: 10265

Re: Compressing an MPO

At the moment, we don't have this implemented in TeNPy. For finite MPS and small enough systems, you can indeed do this with a simple SVD compression. But for larger and in particular infinite MPS/MPOs, there's some subtleties in doing this, because the MPO is in a Jordan-block form. See 1909.06341 ...
by Johannes
10 Apr 2024, 15:11
Forum: HowTos and FAQ for TeNPy
Topic: Correlators using iDMRG
Replies: 1
Views: 10154

Re: Correlators using iDMRG

Yes, even if the MPS unit cell is 2, you can have correlations in the MPS way beyond those 2 sites. You can for example call correlation_function with sites2=range(50) to calculate correlations up to site 50, or term_correlation_function_right . And yes, you can also extract the central charge by a ...
by Johannes
10 Apr 2024, 15:00
Forum: HowTos and FAQ for TeNPy
Topic: Tensor network implementations for transformers and LLMs
Replies: 1
Views: 10329

Re: Tensor network implementations for transformers and LLMs

No. TeNPy is focusing on the simulation of condensed matter physics.
by Johannes
10 Apr 2024, 14:58
Forum: HowTos and FAQ for TeNPy
Topic: How to add couplings correctly for iDMRG?
Replies: 1
Views: 10286

Re: How to add couplings correctly for iDMRG?

First of all, let me clarify, also for those finding this question later: The system purely 1D / we ignore the y direction, right? I.e. when we talk about periodic boundary conditions, we don't talk about wrapping things on a cylinder or torus or plane, but about a chain (open boundary conditions, O...
by Johannes
10 Apr 2024, 14:07
Forum: HowTos and FAQ for TeNPy
Topic: Finding ground states of finite systems with fast vanishing gap
Replies: 1
Views: 10691

Re: Finding ground states of finite systems with fast vanishing gap

When you need chi=256 for L=8, you apparently have local hilbert space dimension of 4 - is it a spin-full fermion site? Do you have any charge conservation/symmetries in general? DMRG should usually be able to converge L=32/64 pretty easily. One issue you can have though are close to exact degenerac...
by Johannes
10 Apr 2024, 13:14
Forum: HowTos and FAQ for TeNPy
Topic: Implementing XXZ model with finite DMRG
Replies: 1
Views: 49884

Re: Implementing XXZ model with finite DMRG

1. Yes - as noted in the comment at the top of the xxz_chain.py implementation. 2. You can always go back in the git history and find it there with git log --all -- examples/xxz_groundstate.py which brings up d1dccf29ee50899451ea95931c5f4216efae8e56 .' 3. For finite, critical 1D systems, the famouse...
by Johannes
10 Apr 2024, 12:40
Forum: Implementations
Topic: Error bar in the calculated entanglement spectrum
Replies: 1
Views: 19017

Re: Error bar in the calculated entanglement spectrum

Whit error bar you mean "what values do I consider degenerate"? Don't choose that value too small based on what the norm error is: the error in the entanglement spectrum depends drastically on how high the value is. If you plot the full spectrum up to the chi_max, the highest values in the...
by Johannes
10 Apr 2024, 12:10
Forum: Implementations
Topic: fully connected model
Replies: 1
Views: 7325

Re: fully connected model

Disclaimer: You already said that MPS are not a good idea for this kind of model... That said, I can point you to you misunderstanding: the add_coupling method is for adding a bunch of terms at once, all of the form \sum_i J_{i, i+dx} A_i B_{i+dx} . You want to add a single term A_i B_j , which is w...
by Johannes
12 Jan 2024, 11:10
Forum: Algorithms
Topic: Choosing dt for time evolve
Replies: 1
Views: 34224

Re: Choosing dt for time evolve

There's no simple, generic rule how large/small dt has to be to ensure convergence, I'm somewhat alarmed by the "periodic boundary conditions". By default, in TeNPy this would just give you one (or ~Ly, if you have a 2D torus) very long-range couplings between the ends of the MPS. Both TDV...
by Johannes
12 Jan 2024, 10:34
Forum: HowTos and FAQ for TeNPy
Topic: How do I calculate an MPO using an iMPS
Replies: 1
Views: 23701

Re: How do I calculate an MPO using an iMPS

This is ill-defined for infinite systems: The overlap \braket{s | t} for any two iMPS which do not represent exactly the same state goes to 0 in the the thermodynamic limit (or to infinity, if you don't have normalized MPS.). Also, you generally don't want to write down "cat state" superpo...
by Johannes
23 Nov 2023, 08:31
Forum: HowTos and FAQ for TeNPy
Topic: How to realize SU(2) symmetric DMRG?
Replies: 2
Views: 28129

Re: How to realize SU(2) symmetric DMRG?

You should be able to get to significantly larger system sizes even on desktops. Typical run times range from several hours up to a couple of days (up to one or two weeks) on typical desktops / single-node cluster machines, depending on what's available to you. The usual geometry of choice are long,...