# Difference between revisions of "Tutorial:Particle in a box"

(→Questions) |
|||

(3 intermediate revisions by 3 users not shown) | |||

Line 1: | Line 1: | ||

'''Density Matrix Renormalization Group for a particle in a box (non-interacting DMRG)''' | '''Density Matrix Renormalization Group for a particle in a box (non-interacting DMRG)''' | ||

− | == Particle in a box == | + | == 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 | 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. | 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. | ||

− | ==== Questions ==== | + | ==== Questions ==== |

+ | * 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 === | |

− | |||

− | |||

− | |||

− | === 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. | 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. | ||

− | ==== Questions ==== | + | ==== Questions ==== |

+ | * 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? | ||

− | + | <br/> | |

− | |||

− | + | == One-dimensional tight-binding chain in an external potential == | |

− | + | === One-dimensional tight-binding chain with an harmonic trap === | |

− | == 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'''. | 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 | |

− | |||

− | |||

− | |||

− | |||

− | |||

− | |||

+ | ==== Questions ==== | ||

+ | * 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 === | + | === 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'''. | 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? | 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? | ||

− | ==== Questions ==== | + | ==== Questions ==== |

− | + | * Play around with the parameters (system size, strength of the potential, value of the hopping terms) | |

− | *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? |

− | *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". | + | * 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". |

+ | <br/> | ||

− | + | © 2003-2005 by Salvatore Manmana and Ian McCulloch | |

− |

## Latest revision as of 20:52, 1 March 2007

**Density Matrix Renormalization Group for a particle in a box (non-interacting DMRG)**

## 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.

#### Questions

- 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.

#### Questions

- 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

#### Questions

- 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?

#### Questions

- 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