Search found 465 matches

by Johannes
25 Sep 2024, 13:39
Forum: HowTos and FAQ for TeNPy
Topic: Gap in open spin chain :
Replies: 1
Views: 26026

Re: Gap in open spin chain :

The Warning is very relevant here: since version 0.9.0 , the `orthogonal_to` should not be an entry in the `dmrg_params`, but should be a direct keyword argument to the dmrg.run() function, i.e. somthing like dmrg.run(psi, M, dmrg_params, orthogonal_to=states) . As an alternative, you might want to ...
by Johannes
25 Sep 2024, 13:18
Forum: HowTos and FAQ for TeNPy
Topic: How to model anisotropic exchange J, single-ion anisotropy and DMI for DMRG?
Replies: 5
Views: 60418

Re: How to model anisotropic exchange J, single-ion anisotropy and DMI for DMRG?

1) If you look at the imange of the tenpy.models.lattice.Triangular lattice, you'll see that it's 30 degrees rotatet compared to your image - that's the pi/6 offsett here. 2) If you explicitly have Jxy, Jyx etc, then these will contribute to the very same "terms" Sx_i Sy_j etc that the DMI...
by Johannes
25 Sep 2024, 13:04
Forum: HowTos and FAQ for TeNPy
Topic: Custom Hamiltonian with multiple fermions and conserved charges
Replies: 1
Views: 17685

Re: Custom Hamiltonian with multiple fermions and conserved charges

Not sure if this is still relevant or solved by now, but anyways: the issue here is that the tenpy.models.lattice.Chain expects that it has a single-site unit cell only. Try using a more general lattice that allows for multiple sites in the MPS unit cell. The "correct" or recommend way in ...
by Johannes
25 Sep 2024, 12:35
Forum: HowTos and FAQ for TeNPy
Topic: Different coupling terms on different sites
Replies: 7
Views: 53040

Re: Different coupling terms on different sites

As documented, the strength argumente of add_coupling can be a numpy array - for a square lattice with Lx by Ly sites, for nearest-neighbor hopping/interaction in y -direction, it could be of shape (Lx, Ly-1), or for the one in x-direction (Lx-1, Ly), respectively.
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: 15209

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

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: 2
Views: 14140

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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