Search found 27 matches

by Jakob
06 Oct 2025, 08:45
Forum: HowTos and FAQ for TeNPy
Topic: Defining operator_t and operator_t0 in SpectralSimulation
Replies: 1
Views: 3347

Re: Defining operator_t and operator_t0 in SpectralSimulation

Hi, Based on a quick look at https://tenpy.readthedocs.io/en/latest/reference/tenpy.simulations.time_evolution.TimeDependentCorrelation.html#tenpy.simulations.time_evolution.TimeDependentCorrelation I assume that a list as operator_t0 has a different meaning, it will apply them all instead of loopin...
by Jakob
06 Oct 2025, 08:40
Forum: HowTos and FAQ for TeNPy
Topic: Acceleration via GPU
Replies: 1
Views: 70780

Re: Acceleration via GPU

Hi,

GPUs are not supported yet. We are working on it for version 2. We hope to get a working pre-release version ready before christmas.
by Jakob
06 Oct 2025, 08:37
Forum: HowTos and FAQ for TeNPy
Topic: custom AKLT models
Replies: 2
Views: 642

Re: custom AKLT models

Hi, the AKLTChain is one of the few models in tenpy that is not defined via the CouplingModel framework, so this error is expected behavior. If you want to modify the existing AKLTChain, take a look at how it is defined and adjust the ``H_bond`` in ``__init__`` to include your extra term. Note that ...
by Jakob
05 Aug 2025, 15:39
Forum: HowTos and FAQ for TeNPy
Topic: Best practice for measuring <SxSx> correlations in DMRG with conserve='Sz' for the XXZ model?
Replies: 2
Views: 42856

Re: Best practice for measuring <SxSx> correlations in DMRG with conserve='Sz' for the XXZ model?

It is not possible to have an Sx operator when conserving Sz, precisely because applying Sx has no well defined action on the conserved Sz charge. You can think of the action of Sx as a superposition of both raising and lowering the Sz charge. This can not be done while enforcing Sz conservation. Yo...
by Jakob
26 Jun 2025, 16:21
Forum: HowTos and FAQ for TeNPy
Topic: Random truncation of MPS
Replies: 1
Views: 20716

Re: Random truncation of MPS

Hi,
This looks correct, and seems like a good implementation of your goal.
I am not sure why you would want to do this random truncation in the first place, but the code should be able to do it nicely.
by Jakob
18 Jun 2025, 15:15
Forum: HowTos and FAQ for TeNPy
Topic: How to add additional U(1) Symmetry in BosonSite for Tenpy
Replies: 1
Views: 20104

Re: How to add additional U(1) Symmetry in BosonSite for Tenpy

Hi, These types of position dependent charges are not available in the live tenpy version yet There is an unmerged PR at https://github.com/tenpy/tenpy/pull/183 It seems, however, that it is not very stable for infinite systems and not tested well enough. I would not blindly trust it. In the infinit...
by Jakob
08 Apr 2025, 10:11
Forum: HowTos and FAQ for TeNPy
Topic: Isotropic spin-spin correlator for 1D J1–J2 model with PBC
Replies: 1
Views: 31336

Re: Isotropic spin-spin correlator for 1D J1–J2 model with PBC

The code you pasted already fails before this line. E.g. Sx = [model.lat.mps_sites().Sx for i in range(L)] fails, as model.lat.mps_sites() is a list. The failure you report is expected behavior as well. An operator, like the entries in your Sx list are Arrays and do not know what site they came from...
by Jakob
07 Apr 2025, 10:46
Forum: HowTos and FAQ for TeNPy
Topic: Changing Bose-Hubbard model
Replies: 9
Views: 105379

Re: Changing Bose-Hubbard model

1) - line before the three: initialize a BosonSite, with its opertors etc. next we modify it by adding the new operator - extract alpha from the model_params, this is just a convenient way to tell the model the value for alpha - N_diag is a helper for defining the operator. It is the diagonal of the...
by Jakob
03 Apr 2025, 16:09
Forum: HowTos and FAQ for TeNPy
Topic: Changing Bose-Hubbard model
Replies: 9
Views: 105379

Re: Changing Bose-Hubbard model

The operator you want is not one of the pre-defined operators of the BosonSite, so you would need to add it explicitly. You probably want to do something like this: class MyExtendedBoseHubbarModel(tenpy.BoseHubbardModel): def init_sites(self, model_params): site = super().init_sites(model_params) al...
by Jakob
03 Apr 2025, 07:19
Forum: HowTos and FAQ for TeNPy
Topic: Changing Bose-Hubbard model
Replies: 9
Views: 105379

Re: Changing Bose-Hubbard model

Ah I see. In that case you can replace the hopping for u1, u2, dx in self.lat.pairs['nearest_neighbors']: self.add_coupling(-t, u1, 'Bd', u2, 'B', dx, plus_hc=True) that generates \sum_{<i,j>} (b^\dagger_i b_j + hc) with for u1, u2, dx in self.lat.pairs['nearest_neighbors']: self.add_coupling(-t, u1...
by Jakob
02 Apr 2025, 14:35
Forum: HowTos and FAQ for TeNPy
Topic: Changing Bose-Hubbard model
Replies: 9
Views: 105379

Re: Changing Bose-Hubbard model

If you want to extend the BH model without rewriting everything, you can do sth like class MyExtendedBHModel(tenpy.BoseHubbardModel): def init_terms(self, model_params): super().init_terms(model_params) gamma = model_params.get('gamma', 0, 'real_or_array') for u in range(len(self.lat.unit_cell)): se...
by Jakob
02 Apr 2025, 14:33
Forum: HowTos and FAQ for TeNPy
Topic: Changing Bose-Hubbard model
Replies: 9
Views: 105379

Re: Changing Bose-Hubbard model

The term you want is called parity or 'P' in the BosonSite, with definition P = 1 - 2 (n \text{ mod } 2) = (-1)^n = \mathrm{exp}(\mathrm{i} \pi n) . So for H = \sum_i \gamma_i * \mathrm{exp}(\mathrm{i} \pi n_i) + H_\text{other} you could do something like def init_terms(self, model_params): ... # ot...
by Jakob
20 Mar 2025, 15:08
Forum: HowTos and FAQ for TeNPy
Topic: Converting to state vector gives wrong energy
Replies: 2
Views: 49399

Re: Converting to state vector gives wrong energy

See https://github.com/tenpy/tenpy/pull/495 for functions that export tenpy objects (MPS or Hamitlonians from a model) to full matrix representations.
by Jakob
19 Mar 2025, 10:05
Forum: HowTos and FAQ for TeNPy
Topic: Obtainin expectation value of number operator in BH model
Replies: 3
Views: 44859

Re: Obtainin expectation value of number operator in BH model

I assume you mean the Bose Hubbard model?
In what state do you want to take the expectation value?
If you want it in the groundstate, you can take an MPS psi resulting from DMRG and use
psi.expectation_value('N'), which gives you the particle number on every single site.
by Jakob
19 Mar 2025, 09:56
Forum: HowTos and FAQ for TeNPy
Topic: Converting to state vector gives wrong energy
Replies: 2
Views: 49399

Re: Converting to state vector gives wrong energy

tenpy, with charge conservation has a basis order that might be surprising. See e.g. the warning in Site So I assume that you are writing down H_sp in an incompatible basis (probably you use {|up>, |down>}, and if you use charge conservation, tenpy will use {|down>, |up>}). Have a look at model.lat....
by Jakob
14 Feb 2025, 16:27
Forum: HowTos and FAQ for TeNPy
Topic: DMRG on a IrregularLattice Transverse Field Ising Model
Replies: 3
Views: 78901

Re: DMRG on a IrregularLattice Transverse Field Ising Model

Confirmed that the workaround above works for my quick test.
For the fix see https://github.com/tenpy/tenpy/pull/481
by Jakob
14 Feb 2025, 16:05
Forum: HowTos and FAQ for TeNPy
Topic: DMRG on a IrregularLattice Transverse Field Ising Model
Replies: 3
Views: 78901

Re: DMRG on a IrregularLattice Transverse Field Ising Model

Hi, Looks like this is bug in the consistency_check ecosystem, specifically for IrregularLattices. TeNPy tries to warn users if the lattice has too large N_sites_per_ring. This check causes an error, because N_sites_per_ring is None for the IrregularLattice. I will push a fix soon. In the meantime y...
by Jakob
30 Jan 2025, 16:00
Forum: HowTos and FAQ for TeNPy
Topic: Ordering of exact diagonalization basis
Replies: 5
Views: 115953

Re: Ordering of exact diagonalization basis

Hi bart, just FYI that this will be resolved in the next version of tenpy, developed at https://github.com/tenpy/cyten. There, we consider this permutation in ``Tensor.to_numpy()`` such that it behaves as expected, i.e. such that ``.combine_legs(...).to_numpy()`` is equivalent to ``.to_numpy().resha...
by Jakob
16 Oct 2024, 13:00
Forum: HowTos and FAQ for TeNPy
Topic: How to convert between npc.Array and one dimension np.array efficiently?
Replies: 3
Views: 67070

Re: How to convert between npc.Array and one dimension np.array efficiently?

At first glance, I do not see why this code should raise such an error.
Please make sure you are using an up to date version of tenpy.
If the problem persists, please open an issue on github with a minimal code example that reproduces the bug, and include the full error message.
by Jakob
09 Oct 2024, 10:22
Forum: HowTos and FAQ for TeNPy
Topic: How to convert between npc.Array and one dimension np.array efficiently?
Replies: 3
Views: 67070

Re: How to convert between npc.Array and one dimension np.array efficiently?

For Array_to_ndarray, the low hanging fruits are to operate on numpy arrays instead of python lists. I probably would initialize a final_array of correct length (sum of the ``block.size`` for all blocks) and dtype, then in the loop set elements of the final_array to the block (keep somecounter varia...
by Jakob
18 Apr 2024, 05:49
Forum: HowTos and FAQ for TeNPy
Topic: Applying different time evolution to different subsystems with TEBD
Replies: 2
Views: 50559

Re: Applying different time evolution to different subsystems with TEBD

Hi, This can not be done out of the box. TEBD will also be difficult, since your gates are not nearest neighbour (even if H_i are NN on their subsystem, they are NNN on the full system). You could force TEBD by grouping sites to a nearest neighbour model. I would go for MPO time evolution though. Yo...