1) A finite lattice with open boundary conditions and a model with bcx="open" and bcy="cylinder":

Code: Select all

```
spinSite = SpinSite(S=0.5, conserve='Sz')
lattice = Honeycomb(Lx=Lx, Ly=Ly, sites=spinSite)
model_params = {
"lattice": lattice,
"bc_MPS": "finite",
"bc_x": "open",
"bc_y": "cylinder",
"Jx": 1.0,
"Jy": 1.0,
"Jz": 1.0,
}
model = SpinModel(model_params)
# And then run DMRG
```

Code: Select all

```
spinSite = SpinSite(S=0.5, conserve='Sz')
lattice = Honeycomb(Lx=Lx, Ly=Ly, sites=spinSite)
model_params = {
"lattice": lattice,
"bc_MPS": "finite",
"bc_x": "periodic",
"bc_y": "ladder",
"Jx": 1.0,
"Jy": 1.0,
"Jz": 1.0,
}
model = SpinModel(model_params)
# And then run DMRG
```

3) A finite lattice with bc=['open', 'periodic'] and a model with bcx="open", bcy="cylinder":

Code: Select all

```
spinSite = SpinSite(S=0.5, conserve='Sz')
lattice = Honeycomb(Lx=Lx, Ly=Ly, sites=spinSite, bc=['open', 'periodic'])
model_params = {
"lattice": lattice,
"bc_MPS": "finite",
"bc_x": "open",
"bc_y": "cylinder",
"Jx": 1.0,
"Jy": 1.0,
"Jz": 1.0,
}
model = SpinModel(model_params)
# And then run DMRG
```

Code: Select all

```
spinSite = SpinSite(S=0.5, conserve='Sz')
lattice = Honeycomb(Lx=Lx, Ly=Ly, sites=spinSite, bc=['open', 'periodic'])
model_params = {
"lattice": lattice,
"bc_MPS": "finite",
"bc_x": "periodic",
"bc_y": "ladder",
"Jx": 1.0,
"Jy": 1.0,
"Jz": 1.0,
}
model = SpinModel(model_params)
# And then run DMRG
```

Would I obtain the same groundstate by running all of the above examples? If so, what is the difference between them?

Finally, if I want to run the same model on a torus I would just need to launch the following code?

Code: Select all

```
spinSite = SpinSite(S=0.5, conserve='Sz')
lattice = Honeycomb(Lx=Lx, Ly=Ly, sites=spinSite, bc='periodic')
model_params = {
"lattice": lattice,
"bc_MPS": "finite",
"bc_x": "periodic",
"bc_y": "periodic",
"Jx": 1.0,
"Jy": 1.0,
"Jz": 1.0,
}
model = SpinModel(model_params)
# And then run DMRG
```