Recent Changes - Search:

HomePage

PmWiki

pmwiki.org

SpinChargeSeparation

(redirected from NCCU.SpinChargeSeparation)

In this tutorial, we will perform simuations of some particle dynamics in the Hubbard model.

Obtaining the groundstate

Firstly, we need a groundstate. Use the program hubbard-u1u1 to construct a lattice file for a 40-site lattice:

hubbard-u1u1 40 hubbardlattice

Now we construct an initial state for the DMRG. Choose a particle number that is close to half-filling, for example 36 particles, spin 0.

mp-random -l hubbardlattice -q 36,0 -o psi

and run the DMRG program until the groundstate is converged, with say m=200 states kept, using the Hubbard model at fairly strong coupling, say U=5. You might get faster convergence if you start with a smaller number of states kept, and gradually increase throughout the calculation.

mp-dmrg -w psi -H hubbardlattice:"H_t + 5*H_U" -m 50

Check that the variance and truncation error are both small before continuing.

Inserting a particle

Now we want to add one additional particle to the wavefunction, to simulate injecting a particle at the edge of the chain. To to this, we use the tool mp-apply, which acts on the wavefunction with some operator. Lets add a spin up particle, which will be represented by the operator CHup(1).

mp-apply hubbardlattice:"CHup(1)" psi excitedpsi

Use mp-info to verify that excitedpsi is a wavefunction with 37 particles and spin +1/2.

Calculating the evolution

The main tool for calculating time evolution is mp-evolve-krylov. This algorithm can use a much larger timestep than typical 2nd or 4th order Suzuki-Trotter algorithms. A timestep of t=0.1 should be no problem for this model. By default, the mp-evolve-krylov program will save the wavefunction every timestep with a different filename, by adding the timestep to the end of the filename. This behaviour can be controlled by the -s option.

By default, mp-evolve-krylov doesn't normalize the wavefunctions before saving them. This is sometimes useful, because the norm of the wavefunction then determines the accumulated truncation error of the time evolution. But for our purposes, we want them normalized so add the --normalize option. (If you forget, you can normalize the wavefunctions later with the mp-normalize command.)

Lets choose a maximum of m=200 states, and calculate a few timesteps of evolution/

mp-evolve-krylov -H hubbardlattice:"H_t + 5*H_U" -m 200 -t 0.1 -n 20 \
--normalize --verbose -w excitedpsi -o evolved

This will take some time to run. You should end up with a series of wavefunctions evolved.t0.1 up to evolved.t2, represnting times from t=0.1, 0.2, up to t=2. Plot the local density of charge and spin (using mp-expectation or mp-localexpectation) and see if you can determine the velocities of the spin and charge excitations.

For example, to obtain the local density at all sites from 1 to 40, of the wavefunction evolved.t0.1, try

mp-localexpectation hubbardlattice evolved.t0.1 N 1 40
Edit - History - Print - Recent Changes - Search
Page last modified on September 07, 2011, at 06:17 AM