#include <alg_hmd.h>
Inherits cps::AlgHmd.
Public Member Functions | |
| AlgHmcQPQ (Lattice &latt, CommonArg *c_arg, HmdArg *arg) | |
| virtual | ~AlgHmcQPQ () |
| Float | run (void) |
| Run the HMC algorithm. | |
Protected Attributes | |
| int | n_frm_masses |
| The number of dynamical fermion masses. | |
| int | n_bsn_masses |
| The number of dynamical boson masses. | |
| int | f_size |
| The size of the pseudofermion (and similar) fields. | |
| CgArg ** | frm_cg_arg |
| Pointer to an array of structures containing solver parameters. | |
| CgArg ** | bsn_cg_arg |
| Pointer to an array of structures containing solver parameters. | |
| Vector ** | phi |
| Pseudofermion fields. | |
| Vector ** | bsn |
| Boson (pseudoboson?) fields. | |
| Matrix * | gauge_field_init |
| The initial gauge field configuration. | |
| Vector ** | frm1 |
| Array of general purpose fields. | |
| Vector ** | frm2 |
| Another array of general purpose fields. | |
| Vector ** | cg_sol_prev |
| Vector *** | cg_sol |
| Array holding the conjugate gradient solutions. | |
| Vector *** | vm |
| Array containing the orthogonal basis used by the chronological preconditioner. | |
| Float * | h_f_init |
| The initial value of the pseudofermion action. | |
| Float * | h_f_final |
| The final value of the pseudofermion action. | |
| Float * | delta_h_f |
| The change in the value of the pseudofermion action. | |
| Float * | h_b_init |
| The initial value of the boson action. | |
| Float * | h_b_final |
| The final value of the boson action. | |
| Float * | delta_h_b |
| The change in the value of the boson action. | |
This evolves a gauge field by a single iteration of the HMC algorithm, i.e. a molecular dynamics trajectory followed by a metropolis accept/reject step.
This implementation uses a Uqpq leapfrog integration scheme and a minimum residual chronological method to choose the starting guess for the solver.
The algorithm is configurable to include dynamical fermions of several masses, each mass having its own set of pseudofermion fields and solver parameters. The number of degenerate flavours at each mass depends on the type of fermion action used. Similarly one can have in addition pseudobosonic
terms in the hamiltonian contributing to the total force on the momentum field.
One also has the option of forcing acceptance at the metropolis step.
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 221 of file alg_hmd.h.
|
||||||||||||||||
|
Definition at line 50 of file alg_hmc_qpq.C. References bsn, bsn_cg_arg, cps::HmdArg::bsn_mass, cg_sol, cg_sol_prev, cps::HmdArg::chrono, cps::ERR, f_size, cps::Lattice::FchkbEvl(), cps::Float, frm1, frm2, frm_cg_arg, cps::HmdArg::frm_mass, cps::Lattice::FsiteSize(), cps::Verbose::Func(), gauge_field_init, 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_bsn_masses, n_bsn_masses, 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, vm, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB. |
|
|
Definition at line 270 of file alg_hmc_qpq.C. References bsn, bsn_cg_arg, cg_sol, cg_sol_prev, cps::HmdArg::chrono, frm1, frm2, frm_cg_arg, cps::Verbose::Func(), gauge_field_init, n_bsn_masses, n_frm_masses, phi, cps::sfree(), cps::Verbose::Sfree(), vm, and cps::VRB. |
|
|
|
Boson (pseudoboson?) fields. One for each mass Definition at line 264 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
Pointer to an array of structures containing solver parameters. These are the parameters corresponding to each of the dynamical boson masses. Definition at line 253 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
Array holding the conjugate gradient solutions.
Definition at line 277 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
Definition at line 275 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
The change in the value of the boson action. The final value - the initial value. One for each mass |
|
|
The change in the value of the pseudofermion action. The final value - the initial value. One for each mass |
|
|
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 239 of file alg_hmd.h. Referenced by AlgHmcQPQ(), and run(). |
|
|
Array of general purpose fields.
Definition at line 271 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
Another array of general purpose fields.
Definition at line 273 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
Pointer to an array of structures containing solver parameters. These are the parameters corresponding to each of the dynamical fermion masses. Definition at line 246 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
The initial gauge field configuration.
Definition at line 268 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
The final value of the boson action. The value at the end of the trajectory. One for each mass |
|
|
The initial value of the boson action. The value at the start of the trajectory. One for each mass |
|
|
The final value of the pseudofermion action. The value at the end of the trajectory. One for each mass |
|
|
The initial value of the pseudofermion action. The value at the start of the trajectory. One for each mass |
|
|
The number of dynamical boson masses. This is not necessarily the number of dynamical flavours. Definition at line 236 of file alg_hmd.h. Referenced by AlgHmcQPQ(), and ~AlgHmcQPQ(). |
|
|
The number of dynamical fermion masses.
Definition at line 230 of file alg_hmd.h. Referenced by AlgHmcQPQ(), and ~AlgHmcQPQ(). |
|
|
Pseudofermion fields. One for each mass Definition at line 260 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
|
|
Array containing the orthogonal basis used by the chronological preconditioner.
Definition at line 279 of file alg_hmd.h. Referenced by AlgHmcQPQ(), run(), and ~AlgHmcQPQ(). |
1.3.9.1