(redirected from Tools.MpIRotate)
The mp-translate
command translates a wavefunction by $$n$$ sites.
Synopsis
mp-translate [options] <input-psi> <output-psi>
For an infinite wavefunction that has a unit cell of more than 1 site, the mp-translate function rotates the sites of the wavefunction so that site 0 represents different point. For an IBC wavefunction, mp-translate shifts the numbering of the sites.
Options
--help
show help message
-l
, --left
=N
translate the unit cell N sites to the left
-r
, --right
=N
translate the unit cell N sites to the right
-f
, --force
allow overwriting the output file, if it already exists
-v
, --verbose
extra debug output, can be used more than once
Description
mp-translate
translates the A-matrices of a wavefunction. For example, given a 3-site unit cell, the MPS can be expressed as
{$$ A^{s_1}_1 \; A^{s_2}_2 \; A^{s_3}_3 $$}
If we rotate this to the left by 1 site, it results in the MPS
{$$ A^{s_1}_2 \; A^{s_2}_3 \; A^{s_3}_1 $$}
The rotation can be specified as N sites either to the left (--left N
) or to the right (--right N
). A rotation to the left by N sites is equivalent to a rotation to the right by UnitCellSize-N sites.
The output file can be the same as the input file;
Examples
- Period 3 spin chain
Firstly obtain a wavefunction for the spin-1 chain in the critical period 3 phase, with a 3-site unit cell.
spinchain -S 1 -o lattice
mp-idmrg-s3e -H lat:"H_J1 + 2*H_B1" -m 10..50x200 -w psi -f -u 3 --create
This has expectation values (for example):
$ mp-iexpectation psi lat:"Sz(0)"
0.0032624256860453 7.7722608876455e-25
$ mp-iexpectation psi lat:"Sz(1)"
-0.0032717997478444 -1.7337600677344e-25
$ mp-iexpectation psi lat:"Sz(2)"
8.7596181087154e-06 -3.7666693137387e-25
Now translate 1 site to the left.
mp-translate --left 1 psi psi
results in:
$ mp-iexpectation psi lat:"Sz(0)"
-0.0032717997478447 2.6579071521928e-25
$ mp-iexpectation psi lat:"Sz(1)"
8.7596181078847e-06 -4.9079927022407e-25
$ mp-iexpectation psi lat:"Sz(2)"
0.0032624256860449 3.169940868704e-2
Notes
- This tool works on individual sites of the wavefunction, it knows nothing about the lattice or the Hamiltonian unit cell. If you have an inhomogeneous lattice (for example, an alternating spin chain) then it is possible to translate the wavefunction such that the local basis of the wavefunction no longer matches the lattice.
- The
mp-ioverlap
tool has a --translate
option that performs a similar function, so it is not necessary to use mp-translate
if you only need to calculate overlaps with translated wavefunctions (eg to test translation symmetry properties).
See also