Tutorial:Particle in a box
Density Matrix Renormalization Group for a particle in a box (non-interacting DMRG)
- 1 Particle in a box
- 2 One-dimensional tight-binding chain in an external potential
Particle in a box
The one-dimensional tight-binding chain
Change to /tutorial/dmrg/particle_in_box in the applications source directory. The parameter file parm1 sets up a DMRG simulation of a single particle tight-binding model on a one-dimensional chain with 10 sites and open boundary conditions, thus simulating a quantum-mechanical particle in a box.
LATTICE = "chain lattice" LATTICE_LIBRARY = "../../lattices.xml" L = 10 t = 1 V = 0 SWEEPS = 10 WAVEFUNCTION_FILE = "psi.dat" OUTPUT_LEVEL = 1
You can run the simulation using the non-interacting DMRG code by typing
simple_dmrg < parm1
The output file "psi.dat" contains (for the default OUTPUT_LEVEL = 1) the ground-state wavefunction psi(x) obtained in the last sweep. The wavefunction can be plotted e.g. using xmgrace or gnuplot. Observe how the ground state energy changes at the end of every sweep. Increase the system size and adjust the number of sweeps needed to obtain convergence.
- What is the maximum system size you can calculate within 5 minutes of playing around?
- Depending on the system size: How many sweeps do you need for convergence?
The one-dimensional tight-binding chain with next-nearest-neighbor hopping
Adjust the parameter file dmrg/particle_in_box/parm1 in order to be able to run a simulation with next-nearest-neighbour hopping t1=0.7. In order to do this, you need to change the LATTICE to "next-nearest chain lattice" and specify the additional parameter t1 which represents the strength of the next-nearest-neighbour hopping. The "next-nearest chain lattice" describes a one-dimensional chain with a unit-cell that also has a hopping term to a next-nearest-neighbour site (you may want to have a look at the lattice-library file "lattices_dmrg.xml" to see how this is done). Perform the same runs as for the plain tight-binding chain.
- How does the convergence behavior change?
- What is now the maximum system size you can reach within 5 minutes? How many sweeps do you need?
One-dimensional tight-binding chain in an external potential
One-dimensional tight-binding chain with an harmonic trap
The parameter file dmrg/particle_in_box/parm2 sets up a DMRG simulation of a one-dimensional tight-binding chain with 20 sites and a parabolic external potential.
LATTICE = "chain lattice" LATTICE_LIBRARY = "../../lattices.xml" L = 20 t = 1 V = 0.5 * (x/L - 0.5) * (x/L - 0.5) SWEEPS = 100 WAVEFUNCTION_FILE = "psi_harmonic_potential.dat" OUTPUT_LEVEL = 1
- What does the wavefunction now look like?
- What happens if you switch on the next-nearest-neighbour hopping?
- What happens if you have only next-nearest-neighbour hopping?
One-dimensional tight-binding chain with a general potential
The parameter file dmrg/particle_in_box/parm3 sets up a DMRG simulation of a one-dimensional tight-binding chain with 20 sites with next-nearest-neighbour hopping t1=0.01 in a zigzag potential.
LATTICE = "next-nearest chain lattice" LATTICE_LIBRARY = "lattices_dmrg.xml" L = 20 t = 1 t1 = 0.01 K = 2*3.1415927*2/L V = cos(K*x) + cos(3*K*x) / 9 + cos(5*K*x) / 25 + cos(7*K*x) / 36 - 2 SWEEPS = 100 WAVEFUNCTION_FILE = "psi.dat" OUTPUT_LEVEL = 1
It is possible to specify a general (periodic) potential by specifying its Fourier-series expansion. Try different potentials of your own choice and describe the results and the convergence behavior of the DMRG run. Play around with the parameters (system size, strength of the potential, value of the hopping terms). Which of the potentials you tried do you think is the most difficult potential for DMRG? Why?
- Play around with the parameters (system size, strength of the potential, value of the hopping terms)
- Which of the potentials you tried do you think is the most difficult potential for the DMRG method? Why?
- Bonus: You may redo some of the runs and answer some of the questions for a chain with periodic boundary conditions (i.e. one particle on a ring). This is done by changing the BOUNDARY tag in the lattice library file "lattices_dmrg.xml".
© 2003-2005 by Salvatore Manmana and Ian McCulloch