Search found 422 matches

by Johannes
11 Aug 2021, 23:59
Forum: HowTos and FAQ for TeNPy
Topic: about initial MPS canonical form
Replies: 1
Views: 2075

Re: about initial MPS canonical form

When you just call the MPS.__init__() function, it will just assume that it is in right-canonical form. In most cases, people will in some way intialize the MPS from a product state with bond dimension 1 (using MPS.from_product_state or MPS.from_lat_product_state), which is trivially in both left- a...
by Johannes
11 Aug 2021, 23:46
Forum: HowTos and FAQ for TeNPy
Topic: Implementation of t-J model
Replies: 3
Views: 2829

Re: Implementation of t-J model

Hi Leandro, apologies for not replying earlier! Just to check: Did this work out, did you manage it in the end? Or do you still need help? I hope you didn't give up! The t-J model is definitely sufficiently important/generic that it would be a good idea to include it into TeNPy itself. Would you lik...
by Johannes
11 Aug 2021, 23:28
Forum: HowTos and FAQ for TeNPy
Topic: Random UserWarning: unused option ['P_tol']
Replies: 1
Views: 1832

Re: Random UserWarning: unused option ['P_tol']

By default, the option `P_tol_to_trunc` causes DMRG to set the P_tol parameter in the lanczos_params, which causes this warning in case DMRG actually does not use lanczos to diagonalize the effective Hamiltonian (it does exact diagonalizaiton for small enough chi where this is actually faster). I've...
by Johannes
11 Aug 2021, 18:35
Forum: HowTos and FAQ for TeNPy
Topic: About long-range interaction
Replies: 1
Views: 1916

Re: About long-range interaction

1.) The simplest/naive thing is to just use the usual add_coupling with increasingly longer range interaction |i-j| up to some finite cutoff. Alternatively, the more clever/state of the art way would be to fit the powerlaw by a sum of exponentials, and then use `add_exponentially_decaying_interactio...
by Johannes
11 Aug 2021, 18:21
Forum: HowTos and FAQ for TeNPy
Topic: Chain with N site unit-cell
Replies: 2
Views: 2190

Re: Chain with N site unit-cell

Yes, that's the general way to go about this: just define your lattice with the correct number of sites per unit sell, and add the corresponding couplings. Some inspiration might be given by the Hofstadter models in TeNPy. I guess it would also be useful to re-implement the FermionicHubbardModel wit...
by Johannes
11 Aug 2021, 17:41
Forum: HowTos and FAQ for TeNPy
Topic: Singular Values as np_conserved
Replies: 1
Views: 1835

Re: Singular Values as np_conserved

Hi Nick, not sure if you already solved this. If you want, you can create a diagonal np_conserved tensor from that with the following snippet, but it is numerically inenfficient to actually do that (because tensordot is more expensive than just scaling an axis, which is what we usually do. # assumin...
by Johannes
11 Aug 2021, 17:34
Forum: Algorithms
Topic: Heisenberg XXZ chain with stagger interaction
Replies: 3
Views: 9302

Re: Heisenberg XXZ chain with stagger interaction

What error do you get? Can you please include the error traceback? Otherwise I can only guess what the problem might be.... It seems strange that it works for smaller J_z, but not for larger one. By the way, you can actually do this without implementing a custom lattice/model, just based on the tenp...
by Johannes
11 Aug 2021, 17:24
Forum: Algorithms
Topic: Question about iTDVP
Replies: 1
Views: 6859

Re: Question about iTDVP

Yes, I think you need to recreate the environments from scratch.
Not completely sure, but I think you could try using the old ones as an initial guess for the new environments.
by Johannes
11 Aug 2021, 17:17
Forum: Algorithms
Topic: Disentangler for long-range model or for local 2-d lattice model
Replies: 1
Views: 6728

Re: Disentangler for long-range model or for local 2-d lattice model

The disentanglers implemented in TeNPy act on two or more consecutive sites in the MPS language, but of course you can try to apply a bunch of them one after the other. It also has code that tries to bring a few sites next to each other and then disentangle them, but in my experience that didn't wor...
by Johannes
11 Aug 2021, 17:14
Forum: HowTos and FAQ for TeNPy
Topic: How to use self-defined model in Simulation's yml file?
Replies: 2
Views: 1965

Re: How to use self-defined model in Simulation's yml file?

You just need to import the file in python, which contains the model definition; then you can just use the "name" of the model in the simulation parameters. To import that file with the definition, you have two options: Either you use the command line option -1 of tenpy-run or python -m te...
by Johannes
11 Aug 2021, 16:53
Forum: HowTos and FAQ for TeNPy
Topic: Question about convergence statistics in (i)DMRG
Replies: 2
Views: 1869

Re: Question about convergence statistics in (i)DMRG

To be clear, the actual convergence of DMRG is much faster than just 1/(#sweeps performed), as you see on the right - there's a log-scale on the yaxis :)
by Johannes
11 Aug 2021, 16:52
Forum: HowTos and FAQ for TeNPy
Topic: Question about convergence statistics in (i)DMRG
Replies: 2
Views: 1869

Re: Question about convergence statistics in (i)DMRG

is not the energy you want to study for convergence' it is the total energy of the system that contains age sites, including all energy terms in the environments with whatever state you had at that point. Pictorially, the "total" system that infinite DMRG grew after a couple of sweeps look...
by Johannes
08 Jun 2021, 03:14
Forum: HowTos and FAQ for TeNPy
Topic: Custom (sum of) Operators
Replies: 3
Views: 2938

Re: Custom (sum of) Operators

A bit late, but better late than never ;-) apply_local_op accepts an operator that acts on n neighboring sites, for example for two sites with legs 'p0', 'p1', 'p0*', 'p1*' . You can use the brand-new function tenpy.networks.site.kron to create the corresponding bond operator from the single-site op...
by Johannes
08 Jun 2021, 02:49
Forum: HowTos and FAQ for TeNPy
Topic: If/How to avoid: "final DMRG state not in canonical form..."
Replies: 4
Views: 4597

Re: If/How to avoid: "final DMRG state not in canonical form..."

You shouldn't trust expectation values/correlation functions that were calculated from an MPS that is not in canonical form, because these functions implicitly assume that psi is in canonical form. When your DMRG is really converged and doesn't change the state during the sweep any more, you would e...
by Johannes
08 Jun 2021, 02:31
Forum: Implementations
Topic: Keeping number of particles fixed at edges
Replies: 1
Views: 7349

Re: Keeping number of particles fixed at edges

The answer comes probably a bit too late, but anyways: How do you want to "fix" the states outside? If you imagine to project them to the local basis states with exactly 0/2 sites, you would have a product state with the rest. The hopping term wouldn't contribute, and you can just calculat...
by Johannes
08 Jun 2021, 02:13
Forum: Implementations
Topic: wave function from MPS
Replies: 1
Views: 6964

Re: wave function from MPS

They will only depend on the charge conservation you're using.

I guess you're aware of this, but just to be clear: when you do this, you write down all 2^L states, so you could just as well use exact diagonalization....
by Johannes
08 Jun 2021, 02:05
Forum: HowTos and FAQ for TeNPy
Topic: Finite state machine MPO
Replies: 2
Views: 2102

Re: Finite state machine MPO

Hi Pablo, there is a way to do it more effiently, although I only did that numerically: I created the AKLT model by just defining bond terms, and then initializing the MPO from these bond terms - there's a function in TeNPy to automatically do the SVD of the bond term to get the MPO. Take a look at ...
by Johannes
08 Jun 2021, 01:48
Forum: HowTos and FAQ for TeNPy
Topic: dmrg.run() claims quartic Hamiltonian is zero
Replies: 3
Views: 2422

Re: dmrg.run() claims quartic Hamiltonian is zero

It's a problem of the inital state and charge conservation, not the jordan wigner strings. TwoSiteDMRG updates two sites in the subspace created by projecting H to the current psi (i.e. your initial state) on other sites; this projection will render H zero because each term in H has at least two C/C...
by Johannes
08 Jun 2021, 01:40
Forum: Algorithms
Topic: Mapping of Spinful Fermion to Spinless fermion
Replies: 3
Views: 8233

Re: Mapping of Spinful Fermion to Spinless fermion

Yes, that's right.
I tried to explain this in the section "spinful fermions" of the Jordan-Wigner user guide you referenced.
If you have a suggestion how to formulate this a bit clearer, feel free to submit a corresponding pull request on github!
by Johannes
08 Jun 2021, 01:36
Forum: HowTos and FAQ for TeNPy
Topic: [RESOLVED] Issue in purification method (normalization of temperature and/or timescales?)
Replies: 3
Views: 3089

Re: [RESOLVED] Issue in purification method (normalization of temperature and/or timescales?)

rubenv Good catch, the fix is of course correct. Let me explain: The variation compression needs a copy of the old psi to compress against, and that copy is made during the class intialization, more precisely in [tenpyclass=tenpy.algorithms.mps_common.VariationalApplyMPO]init_env[/inline]. So it mo...
by Johannes
13 Apr 2021, 23:58
Forum: HowTos and FAQ for TeNPy
Topic: finite open, finite periodic and infinite periodic chains
Replies: 10
Views: 9639

Re: finite open, finite periodic and infinite periodic chains

Whoa, I wasn't aware that you want to run it for non-hermitian H. Lancos implicitly assumes that H is hermitian! For that reason at least TeNPy's implementation of TDVP (which uses Lancos to do the local time evolution) does not work for that case! Dropping the hermiticity of H is in general very da...
by Johannes
13 Apr 2021, 23:24
Forum: HowTos and FAQ for TeNPy
Topic: Energy gap for infinite system using segment DMRG?
Replies: 2
Views: 3418

Re: Energy gap for infinite system using segment DMRG?

Hi Ruben, you're right, the DMRG code supports segment boundary conditions already. Right now, you need to extract the left and right environment from a previous DMRG run, and then specify it in resume_data['init_env_data'] to the subsequent DMRG run by hand. There's still some subtleties, e.g. how ...
by Johannes
01 Apr 2021, 19:12
Forum: HowTos and FAQ for TeNPy
Topic: RuntimeWarning and how to fix it
Replies: 3
Views: 2438

Re: RuntimeWarning and how to fix it

Update:
when trying to install TeNPy on a cluster with the Intel Python distribution, we encountered the same runtime warnings.
Looking into this now...
by Johannes
01 Apr 2021, 18:33
Forum: HowTos and FAQ for TeNPy
Topic: Dynamical spin Structure Factor/ Excitation Spectrum of Spin Ladder
Replies: 15
Views: 9449

Re: Dynamical spin Structure Factor/ Excitation Spectrum of Spin Ladder

Sorry, I didn't realize you were looking at infinite MPS. For an infinite MPS, the leg between unit cells is non-trivial, and in general changes when you do a time evolution. This is where the error is coming from: when you initialize the MPSEnvironment, it needs to know how to connect the left-/rig...
by Johannes
30 Mar 2021, 21:50
Forum: HowTos and FAQ for TeNPy
Topic: Get excited states in different symmetry sectors
Replies: 3
Views: 2339

Re: Get excited states in different symmetry sectors

For single-site DMRG to work you need to enable the "mixer" by setting dmrg_params['mixer']=True , otherwise it cannot grow the bond dimension. Be warned that the default mixer_params might still disable the mixer too early for larger/more correlated systems. I've just released a bugfix ve...