I am studying a system composed of a bosonic chain of length \(L\) with a single site \( j\) with \(1<j<L\) coupled to a spin-1/2 so that the spin-1/2 only interacts with the \(j\) bosonic site, and the bosons in that site interact with the spin and, as first neighbor, with the sites in the chain \(j-1 \) and \(j+1\).
I have been trying to reproduce the geometry within TeNPy but it seems it is a feature to be implemented within IrregularLattice. However, I was wondering if there is anyway to work around it.
Reading the forum I came across the following post viewtopic.php?f=7&t=66 where deleting or adding sites is discussed and wanted to know if I could get the wanted result using something along the lines.
My idea was to build a chain with a two-site unit cell, a bosonic site and a spin-1/2 site, then take out all spin-1/2 sites except the wanted one and then using GroupedSite to group together the bosonic and spin sites into one. That being said I am not sure of how would this change the interactions within the system, or if they would change at all.
I also thought of maybe using a Ladder type lattice with boson sites on the lower part of the ladder and spin-1/2 for the other part and then removing all the unwanted spin-1/2 but I am not quite sure if it is possible to do so even by using the method using in the linked post.
So, to sum up I wanted to know if such a geometry is possible for the current version of TeNPy. These ideas are what I came up with but I have just begun to do this kinds of computations and I am for sure overlooking something. I would deeply appreciate any help or suggestions on the topic.
Thank you in advance.
Adding a site to a chain perpendicularly
Re: Adding a site to a chain perpendicularly
Hi,
indeed, the irregular lattice is still an open Issue #77. Sorry, there's so much stuff to do. I had to write and defend my PHD thesis, so I didn't have too much time to work on TeNPy lately. Hopefully, this will change again.
To make sure I understand correctly, you want a geometry like this:
Do you want to couple the bosons to only the spin next to it?
And by the way, do you want to do time evolution, or only look at the ground state with DMRG?
indeed, the irregular lattice is still an open Issue #77. Sorry, there's so much stuff to do. I had to write and defend my PHD thesis, so I didn't have too much time to work on TeNPy lately. Hopefully, this will change again.
![Wink ;)](./images/smilies/icon_e_wink.gif)
To make sure I understand correctly, you want a geometry like this:
Code: Select all
Boson
|
spin -- spin -- spin -- spin -- spin -- spin
And by the way, do you want to do time evolution, or only look at the ground state with DMRG?
Re: Adding a site to a chain perpendicularly
Hello Johannes,
Thank you for your reply, I hope your thesis defense went well!
So the idea is basically what you wrote except swapping spins for bosons and vice versa, something like this:
My aim is to first find the ground state of the system, then create an excitation on the ground state and make the system evolve with this new excited state.
However I have been working on the problem and I believe that it is possible to do it without doing such a explicit geometry and instead combining the sites of the spin and the boson it interacts with into a single site and turn the interactions between them into onsite operators. However, the problem remains the same, adding this extra degree of freedom in a single site without it being part of the unit cell.
Sorry if I did not explain myself well enough in my first post.
Thank you for your reply, I hope your thesis defense went well!
So the idea is basically what you wrote except swapping spins for bosons and vice versa, something like this:
Code: Select all
Spin
|
Boson -- Boson -- Boson -- Boson -- Boson -- Boson
However I have been working on the problem and I believe that it is possible to do it without doing such a explicit geometry and instead combining the sites of the spin and the boson it interacts with into a single site and turn the interactions between them into onsite operators. However, the problem remains the same, adding this extra degree of freedom in a single site without it being part of the unit cell.
Sorry if I did not explain myself well enough in my first post.
Re: Adding a site to a chain perpendicularly
Just for your information, this is now possible in the latest version of TeNPy with the help of the tenpy.models.lattice.IrregularLattice, see example in it's docstring and https://tenpy.readthedocs.io/en/latest/ ... tices.html
-
- Posts: 13
- Joined: 11 Mar 2020, 01:07
Re: Adding a site to a chain perpendicularly
The module lattice.IrregularLattice cannot be used after I upgrade TeNPy to a new version via pip install --upgrade physics-tenpy. After running the following code, the error message reads: TypeError: __init__() got an unexpected keyword argument 'remove'.
Code: Select all
import matplotlib.pyplot as plt
from tenpy.models import lattice
Lx, Ly = 3, 3
fig, axes = plt.subplots(1, 2, True, True, figsize=(6, 4))
reg_lat = lattice.Honeycomb(Lx=Lx, Ly=Ly, sites=None, bc='open')
irr_lat = lattice.IrregularLattice(reg_lat, remove=[[0, 0, 0], [-1, -1, 1]])
for lat, label, ax in zip([reg_lat, irr_lat],
["regular", "irregular"],
axes.flatten()):
lat.plot_coupling(ax)
lat.plot_order(ax, linestyle=':')
lat.plot_sites(ax)
ax.set_aspect('equal')
ax.set_title(label)
plt.show()
Re: Adding a site to a chain perpendicularly
Sorry if that wasn't clear. It's not included in version 0.6.1 on pip yet, but it's on the github master branch.
So you need to install the latest version from github. With pip:
or download the latest version as source code, go into the top folder (where the setup.py is), and call
So you need to install the latest version from github. With pip:
Code: Select all
pip uninstall physics-tenpy # if you installed it before
pip install git+git://github.com/tenpy/tenpy.git
pip install .
-
- Posts: 13
- Joined: 11 Mar 2020, 01:07
Re: Adding a site to a chain perpendicularly
I got it, thanks.