Search found 436 matches

by Johannes
27 May 2024, 16:08
Forum: HowTos and FAQ for TeNPy
Topic: How to evolve an infinite temperature state in a long range Hamiltonian system?
Replies: 1
Views: 41

Re: How to evolve an infinite temperature state in a long range Hamiltonian system?

At the moment, you should use tenpy.algorithms.purification.PurificationApplyMPO for models with long range. (Or alternatively group sites and use the PurificationTEBD as you suggested.) TDVP doesn't work with purification at the moment. Really, we should refactor the purification code a bit such th...
by Johannes
27 May 2024, 15:51
Forum: HowTos and FAQ for TeNPy
Topic: Calculating Purity of PurificationMPS
Replies: 1
Views: 78

Re: Calculating Purity of PurificationMPS

The best idea I can come up with on the spot would be to contract Tr(rho^2) as a tensor network from left to right. There's no function for that in TeNPy ritght now, but it shouldn't be hard to implement that. Doing this is O(chi^5), though, so it's quite expensive compared to the usual O(chi^3) sca...
by Johannes
27 May 2024, 10:34
Forum: HowTos and FAQ for TeNPy
Topic: Purification for Finite Temperature Simulations
Replies: 1
Views: 127

Re: Purification for Finite Temperature Simulations

1) these `d` are the time steps for the time evolution that give you a second-order instead of first-order precision by canceling the error terms of O(dt^2). 2) The the new post in that topic. As I said there, it's fixed if you call psi.canonical_form() once more (at least for finite systems). Fix i...
by Johannes
27 May 2024, 09:16
Forum: HowTos and FAQ for TeNPy
Topic: How to define a infiniteT MPS under canonical ensemble
Replies: 5
Views: 2706

Re: How to define a infiniteT MPS under canonical ensemble

Since there was another question coming back to this: I do understand this now. The error comes from the fact that the imaginary TEBD algorithm applies non-unitary 2-site gates, which change the state and in general also singular values on other bonds. After one update sweep, we end with A S B B B B...
by Johannes
27 May 2024, 08:50
Forum: HowTos and FAQ for TeNPy
Topic: Can I use tenpy to calculate boson t-J model ?
Replies: 1
Views: 9

Re: Can I use tenpy to calculate boson t-J model ?

Indeed, there's no predefined model for that, but it shouldn't be too difficult to write a new model class for that. Basically, you want to adjust the exisiting tenpy.models.tj_model.TJModel , but use a new bosonic version of the tenpy.networks.site.SpinHalfHoleSite as the local site. Try starting t...
by Johannes
27 May 2024, 08:39
Forum: HowTos and FAQ for TeNPy
Topic: How to use MPS.from_Bflat
Replies: 3
Views: 66

Re: How to use MPS.from_Bflat

I'm confused. ED should give you an MPS on a finite system, possibly with PBC (?). How did you map that to the infinite system for comparison?

If you want to compare 1:1, you need to compare finite MPS on PBC to ED on PBC, as I explained above.
by Johannes
13 May 2024, 05:25
Forum: HowTos and FAQ for TeNPy
Topic: How to use MPS.from_Bflat
Replies: 3
Views: 66

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: 374

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: 374

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: 485

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: 313

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: 28857

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: 16142

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: 52883

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: 12092

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: 51520

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: 40789

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: 11941

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: 11908

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: 12020

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: 11889

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: 12024

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: 12139

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...