#include <alg_hmd.h>
Inherits cps::AlgHmd.
Public Member Functions | |
| AlgHmdR (Lattice &latt, CommonArg *c_arg, HmdArg *arg) | |
| virtual | ~AlgHmdR () |
| Float | run (void) |
| Performs a single HMD trajectory. | |
Protected Attributes | |
| int | n_frm_masses |
| The number of dynamical fermion masses. | |
| Float * | flavor_time_step |
| A tricky thing to describe succinctly. | |
| int | f_size |
| The size of the pseudofermion (and similar) fields. | |
| CgArg ** | frm_cg_arg |
| Pointer to an array of structures containing solver parameters. | |
| Vector ** | phi |
| Pseudofermion fields. | |
| Vector * | frm1 |
| Vector * | frm2 |
| Fermion work vectors. | |
This evolves a gauge field by a single iteration of the standard HMD algorithm, i.e. a molecular dynamics trajectory with intermediate gauge field updates to take care of the arbitrary numbers of dynamical flavours. The initial guess in the solver is a random gaussian vector.
The algorithm is configurable to include dynamical fermions of several masses, each with a different number of flavours. For each mass there is a set of solver parameters.
A bunch of statistics relating to the performance of the solver, the conservation of the hamiltonian and the metropolis acceptance are collected.
Definition at line 489 of file alg_hmd.h.
|
||||||||||||||||
|
Definition at line 59 of file alg_hmd_r.C. References cps::ERR, f_size, cps::Lattice::FchkbEvl(), flavor_time_step, cps::Float, frm1, frm2, frm_cg_arg, cps::HmdArg::frm_mass, cps::Lattice::FsiteSize(), cps::Verbose::Func(), cps::Error::General(), cps::GJP, cps::CgArg::mass, cps::MAX_HMD_MASSES, cps::HmdArg::max_num_iter, cps::CgArg::max_num_iter, cps::HmdArg::n_frm_masses, n_frm_masses, phi, cps::Error::Pointer(), cps::Verbose::Smalloc(), cps::smalloc(), cps::HmdArg::stop_rsd, cps::CgArg::stop_rsd, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB. |
|
|
Definition at line 165 of file alg_hmd_r.C. References flavor_time_step, frm1, frm2, frm_cg_arg, cps::Verbose::Func(), n_frm_masses, phi, cps::sfree(), cps::Verbose::Sfree(), and cps::VRB. |
|
|
|
The size of the pseudofermion (and similar) fields. The size is given in terms of the total number of floating point numbers in the field on the local lattice, taking into account whether or not the field is defined on just a single parity. Definition at line 510 of file alg_hmd.h. Referenced by AlgHmdR(). |
|
|
A tricky thing to describe succinctly. This is an array of the time steps used for the intermediate gauge field updates in the R algorithm for each dynamical mass. Actually it is the differences between them. At least most of it is. Definition at line 502 of file alg_hmd.h. Referenced by AlgHmdR(), run(), and ~AlgHmdR(). |
|
|
Definition at line 527 of file alg_hmd.h. Referenced by AlgHmdR(), run(), and ~AlgHmdR(). |
|
|
Fermion work vectors.
Definition at line 529 of file alg_hmd.h. Referenced by AlgHmdR(), run(), and ~AlgHmdR(). |
|
|
Pointer to an array of structures containing solver parameters. These are the parameters corresponding to each of the dynamical fermion masses. Definition at line 517 of file alg_hmd.h. Referenced by AlgHmdR(), run(), and ~AlgHmdR(). |
|
|
The number of dynamical fermion masses. This is not necessarily the number of dynamical flavours. Definition at line 496 of file alg_hmd.h. Referenced by AlgHmdR(), and ~AlgHmdR(). |
|
|
Pseudofermion fields. One for each mass Definition at line 524 of file alg_hmd.h. Referenced by AlgHmdR(), run(), and ~AlgHmdR(). |
1.3.9.1