2.9 KiB
Using HMC in Grid
These are the instructions to use the Generalised HMC on Grid as of commit 749b802
.
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
--StartingType STARTING_TYPE
, where STARTING_TYPE
is one of
HotStart
, ColdStart
, TepidStart
, and CheckpointStart
.
Default: --StartingType HotStart
Example:
./My_hmc_exec --StartingType 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
--StartingTrajectory STARTING_TRAJECTORY
, where STARTING_TRAJECTORY
is an integer.
Default: --StartingTrajectory 0
The number of trajectories for a specific run are specified at command line by
--Trajectories TRAJECTORIES
, where TRAJECTORIES
is an integer.
Default: --Trajectories 1
The number of thermalization steps (i.e. steps when the Metropolis acceptance check is turned off) is specified by
--Thermalizations THERMALIZATIONS
, where THERMALIZATIONS
is an integer.
Default: --Thermalizations 10
Any other parameter is defined in the source for the executable.
HMC controls
The lines
std::vector<int> SerSeed({1, 2, 3, 4, 5});
std::vector<int> 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 directory Grid/qcd/action
.
Gauge actions list (from Grid/qcd/action/gauge/Gauge.h
):
WilsonGaugeActionR;
WilsonGaugeActionF;
WilsonGaugeActionD;
PlaqPlusRectangleActionR;
PlaqPlusRectangleActionF;
PlaqPlusRectangleActionD;
IwasakiGaugeActionR;
IwasakiGaugeActionF;
IwasakiGaugeActionD;
SymanzikGaugeActionR;
SymanzikGaugeActionF;
SymanzikGaugeActionD;
ConjugateWilsonGaugeActionR;
ConjugateWilsonGaugeActionF;
ConjugateWilsonGaugeActionD;
ConjugatePlaqPlusRectangleActionR;
ConjugatePlaqPlusRectangleActionF;
ConjugatePlaqPlusRectangleActionD;
ConjugateIwasakiGaugeActionR;
ConjugateIwasakiGaugeActionF;
ConjugateIwasakiGaugeActionD;
ConjugateSymanzikGaugeActionR;
ConjugateSymanzikGaugeActionF;
ConjugateSymanzikGaugeActionD;
Each of these action accepts one single parameter at creation time (beta). Example for creating a Symanzik action with beta=4.0
SymanzikGaugeActionR(4.0)
Scalar actions list (from Grid/qcd/action/scalar/Scalar.h
):
ScalarActionR;
ScalarActionF;
ScalarActionD;
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.