# Difference between revisions of "Documentation:dwa"

(→Extracting and visualizing the worldlines configuration in Python) |
(→Extracting and visualizing the worldlines configuration in Python) |
||

Line 400: | Line 400: | ||

file = | file = | ||

+ | The entire worldlines configuration object can be obtained via: | ||

+ | wl = pyalps.dwa.extract_worldlines(pyalps.input2output(h5_infiles[0])); | ||

## Revision as of 23:32, 13 September 2013

## Contents

# Directed worm algorithm

## Theory

### Quantum statistical mechanics at finite temperature

At finite temperature T, the physics is essentially captured by the partition function

and physical quantities such as the local density

for some configuration in the complete configuration space, with inverse temperature . Here, the units will be cleverly normalized later on.

### Feynmann perturbation in the path-integral representation

Decompose , where is purely diagonal in the basis of choice, and being off-diagonal.

Feynmann perturbation in the path-integral representation defines the configuration weight:

for configuration

where

The derivation can be found in chapter 2.1-2.2 of my thesis.

### Quantum Monte Carlo (Directed Worm Algorithm)

The Quantum Monte Carlo simulation is in fact a Markov chain random walk in the (worldlines) configuration space, importance sampled by the configuration weight which is just a positive number assigned to some particular configuration for instance shown here.
How is being assigned depends on the model Hamiltonian as well as the ergodic algorithm that satisfies detailed balance.

For the directed worm algorithm, the configuration is updated with the worm transversing to and from the extended configuration space to ensure ergodicty.
In addition, is the number of particles (or state) at site i with time 0.

Each configuration update is known as a Monte Carlo sweep.

The complete step-by-step description of the directed worm algorithm can be found in chapter 2.3 of my thesis, and the code implementation in the following.

## The `dwa` code: options

### Monte Carlo options

Option | Default | Remark |
---|---|---|

THERMALIZATION | 0 | 1) number of Monte Carlo configuration updates (sweeps) needed for thermalization 2) no measurements are performed in the thermalization stage |

SWEEPS | 1000000 | total number of Monte Carlo configuration updates (sweeps) after thermalization |

SKIP | 1. | number of Monte Carlo configuration updates (sweeps) per measurement |

### ALPS lattice library options

Option | Default | Remark |
---|---|---|

LATTICE | -- | which lattice do you want? |

L | -- | length of lattice |

A first quick guide to the ALPS Lattice library can be found here.

### Boson Hubbard model options

Option | Default | Remark |
---|---|---|

MODEL | -- | set as "boson Hubbard" |

Nmax | -- | maximum number of bosons allowed per site |

t | 1. | hopping strength |

U | 0. | onsite interaction strength |

mu | 0. | chemical potential |

__Note__:

The following definitions for **mu** are allowed:

- mu=0.5
- mu="0.5 - 0.001*((x-(L-1)/2.)*(x-(L-1)/2.) + (y-(L-1)/2.)*(y-(L-1)/2.) + (z-(L-1)/2.)*(z-(L-1)/2.)"

### Other options

Option | Default | Remark |
---|---|---|

T | 0. | temperature |

tof_phase | 0. | time-of-flight phase |

MEASURE | true | shall we measure the common observables? |

MEASURE[Simulation Speed] | true | shall we measure the simulation performance? |

### More measurement options

Option | Default | Boolean control |
---|---|---|

MEASURE[Total Particle Number^2] | false | measure_number2_ |

MEASURE[Energy^2] | false | measure_energy2_ |

MEASURE[Density^2] | false | measure_density2_ |

MEASURE[Energy Density^2] | false | measure_energy_density2_ |

MEASURE[Local Kink: Number] | false | measure_local_num_kinks_ |

MEASURE[Winding Number] | false | measure_winding_number_ |

MEASURE[Local Density] | false | measure_local_density_ |

MEASURE[Local Density^2] | false | measure_local_density2_ |

MEASURE[Green Function] | false | measure_green_function_ |

## The `dwa` code: starting the simulation

### in command line

An example is found here.

### in python

An example is found here.

## The `dwa` code: output

### List of measurement observables

When the measurement mode is turned on, the following is a list of common observables available to the user.

Observable | Boolean control | Binning analysis | Remark | |
---|---|---|---|---|

Total Particle Number | — | detailed | measure always | |

Energy | — | detailed | measure always | |

Energy:Vertex | — | detailed | measure always | |

Energy:Onsite | — | detailed | measure always | |

Density | — | detailed | measure if lattice is homoogeneous | |

Energy Density | — | detailed | measure if lattice is homoogeneous | |

Energy Density:Vertex | — | detailed | measure if lattice is homoogeneous | |

Energy Density:Onsite | — | detailed | measure if lattice is homoogeneous | |

Total Particle Number^2 | measure_number2_ | detailed | — | |

Energy^2 | measure_energy2_ | detailed | — | |

Density^2 | measure_density2_ | detailed | measure if lattice is homogeneous | |

Energy Density^2 | measure_energy_density2_ | detailed | measure if lattice is homogeneous | |

Winding Number^2 | measure_winding_number_ | detailed | measure if lattice is periodic: | |

Stiffness (superfluid density) | measure_winding_number_ | detailed | measure if lattice is periodic: | |

Local Kink:Number | measure_local_num_kinks_ | simple | — | |

Local Density | measure_local_density_ | simple | — | |

Local Density^2 | measure_local_density2_ | simple | — | |

Green Function:0 | — | detailed | measure always | |

Green Function:1 | — | detailed | measure always | |

Green Function | measure_green_function_ | simple | — | |

Green Function:TOF | measure_green_function_ | simple | measure if tof_phase != 0 | |

Momentum Distribution:0 | — | detailed | measure if tof_phase == 0 | |

Momentum Distribution:TOF:0 | — | detailed | measure if tof_phase != 0 |

### Evaluating the simulation in Python

An example is found here.

### Extracting and visualizing the worldlines configuration in Python

Illustrating from this example, we want to visualise the worldlines configuration of the first task, for example:

import numpy; import pyalps; import pyalps.dwa; files = pyalps.getResultFiles(prefix='parm1a'); file =

The entire worldlines configuration object can be obtained via:

wl = pyalps.dwa.extract_worldlines(pyalps.input2output(h5_infiles[0]));

© 2013 by Matthias Troyer, Ping Nang Ma.