1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-09-20 17:25:37 +01:00
Grid/lib/qcd/hmc/UsingHMC.md
2016-10-19 10:51:13 +01:00

2.5 KiB

Using HMC in Grid version 0.5.1

These are the instructions to use the Generalised HMC on Grid version 0.5.1. Disclaimer: GRID is still under active development so any information here can be changed in future releases.

Command line options

(relevant file GenericHMCrunner.h) The initial configuration can be changed at the command line using --StartType valid choices, one among these HotStart, ColdStart, TepidStart, CheckpointStart default: HotStart

example ./My_hmc_exec --StartType HotStart

The CheckpointStart option uses the prefix for the configurations and rng seed files defined in your executable and the initial configuration is specified by --StartTrajectory default: 0

The number of trajectories for a specific run are specified at command line by --Trajectories default: 1

The number of thermalization steps (i.e. steps when the Metropolis acceptance check is turned off) is specified by --Thermalizations default: 10

Any other parameter is defined in the source for the executable.

HMC controls

The lines

std::vector SerSeed({1, 2, 3, 4, 5}); std::vector ParSeed({6, 7, 8, 9, 10});

define the seeds for the serial and the parallel RNG.

The line

TheHMC.MDparameters.set(20, 1.0);// MDsteps, traj length

declares the number of molecular dynamics steps and the total trajectory length.

Actions

Action names are defined in the file lib/qcd/Actions.h

Gauge actions list:

WilsonGaugeActionR; WilsonGaugeActionF; WilsonGaugeActionD; PlaqPlusRectangleActionR; PlaqPlusRectangleActionF; PlaqPlusRectangleActionD; IwasakiGaugeActionR; IwasakiGaugeActionF; IwasakiGaugeActionD; SymanzikGaugeActionR; SymanzikGaugeActionF; SymanzikGaugeActionD;

ConjugateWilsonGaugeActionR; ConjugateWilsonGaugeActionF; ConjugateWilsonGaugeActionD; ConjugatePlaqPlusRectangleActionR; ConjugatePlaqPlusRectangleActionF; ConjugatePlaqPlusRectangleActionD; ConjugateIwasakiGaugeActionR; ConjugateIwasakiGaugeActionF; ConjugateIwasakiGaugeActionD; ConjugateSymanzikGaugeActionR; ConjugateSymanzikGaugeActionF; ConjugateSymanzikGaugeActionD;

ScalarActionR; ScalarActionF; ScalarActionD;

each of these action accept one single parameter at creation time (beta). Example for creating a Symanzik action with beta=4.0

SymanzikGaugeActionR(4.0)

The suffixes R,F,D in the action names refer to the Real (the precision is defined at compile time by the --enable-precision flag in the configure), Float and Double, that force the precision of the action to be 32, 64 bit respectively.