Documentation:worms

From ALPS
Jump to: navigation, search

Introduction to the worm code

The worm code provides a full generic implementation for Quantum Monte Carlo (QMC) simulations based on the worm algorithms which was invented by N. Prokof'ev and collaborators. Technically, it provides a continuous-time QMC code based on a path integral representation of the partition function.

The current implementation allows to simulate the following models on arbitrary lattices:

  • Quantum spin (unfrustrated) models with arbitrary spin size, magnetic field and anisotropy
  • (Softcore) bosonic models without a sign problem

Support for simulations with a sign problem could be added if desired

Running a simulation

An example simulation is discussed in the tutorial.

Input parameters

The worm code uses the common input parameters discussed here.

Parameters for experts

In addition, specific simulations parameters can be assigned (use only if you see what it means !):

Parameter Default Meaning
SKIP 1 the number of Monte Carlo sweeps between each measurement
RESTRICT_MEASUREMENTS[N] if defined this restricts measurements to configurations where the quantum number N (particle number) has the value given as this parameter. Note that the simulation will still performed in the grand canonical ensemble and the chemical potential needs to be tuned to the right range, to actually sample configurations with the desired particle number.
RESTRICT_MEASUREMENTS[Sz] if defined this restricts measurements to configurations where the quantum number Sz (magnetization) has the value given as this parameter. Note that the simulation will still performed in the grand canonical ensemble and the magnetic field needs to be tuned to the right range, to actually sample configurations with the desiredmagnetization.
WORMS_PER_KINK 1 determines how often a worm shpuld visit a kink on average per sweep.
MEASURE_GREEN false flag that indicates whether the Green's function should be measured. Don't use - this is untested!

Compile time parameters

Furthermore, at compile time you can define the following variables in the file WRun.h

Parameter Meaning
NONLOCAL undefine to speed up the code for local interactions.
USE_VECTOR define to use a std::vector instead of a std::list as data structure.
USE_SET define to use a std::set instead of a std::list as data structure.

Measurements

The following observables are measured by the worm code application:

Name Description
Energy total energy of the system
Energy Density energy per site
Density particle number (for bosonic models)
Density^2 square of the particle number (for bosonic models)
Stiffness stiffness of the system (for bosonic models)
Green's function Green's function (works only for local interactions)

License

The license allows the use of the applications for non-commercial scientific use provided that the use of the ALPS applications and libraries is acknowledged and referenced in any scientific publication, as discussed in the license file.

Questions and request for support

can be addressed to the ALPS user mailing list at comp-phys-alps-users@list.comp-phys.org. We appreciate hearing your requests for additional features and also welcome any contributions to the ALPS project.

Contributors

The following persons have contributed to the worm application:

© 2002-2004 by Simon Trebst and Matthias Troyer.