#include <alg_hmd.h>
Inherits cps::AlgHmd.
Public Member Functions | |
| AlgHmcPhi (Lattice &latt, CommonArg *c_arg, HmdArg *arg) | |
| virtual | ~AlgHmcPhi () |
| Float | run (void) |
| Performs a single HMC trajectory. | |
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_cur |
| Pointer to the most recent solution produced by the solver. | |
| Vector ** | cg_sol_prev |
| Pointer to the most recent solution produced by the solver. | |
| 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 standard HMC algorithm (phi algorithm), i.e. a molecular dynamics trajectory followed by a metropolis accept/reject step.
This implementation uses a Upqp leapfrog integration scheme and a two-step 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 99 of file alg_hmd.h.
|
||||||||||||||||
|
Definition at line 61 of file alg_hmc_phi.C. References bsn, bsn_cg_arg, cps::HmdArg::bsn_mass, cg_sol_cur, cg_sol_prev, 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, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB. |
|
|
Definition at line 248 of file alg_hmc_phi.C. References bsn, bsn_cg_arg, cg_sol_cur, cg_sol_prev, frm1, frm2, frm_cg_arg, cps::Verbose::Func(), cps::Verbose::FuncEnd(), gauge_field_init, n_bsn_masses, n_frm_masses, phi, cps::Verbose::Sfree(), cps::sfree(), and cps::VRB. |
|
|
|
Boson (pseudoboson?) fields. One for each mass Definition at line 142 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
Pointer to an array of structures containing solver parameters. These are the parameters corresponding to each of the dynamical boson masses. Definition at line 131 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
Pointer to the most recent solution produced by the solver. One for each mass Definition at line 154 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
Pointer to the most recent solution produced by the solver. One for each mass Definition at line 157 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
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 117 of file alg_hmd.h. Referenced by AlgHmcPhi(), and run(). |
|
|
Array of general purpose fields.
Definition at line 149 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
Another array of general purpose fields.
Definition at line 151 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
Pointer to an array of structures containing solver parameters. These are the parameters corresponding to each of the dynamical fermion masses. Definition at line 124 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
The initial gauge field configuration.
Definition at line 146 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
|
|
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 114 of file alg_hmd.h. Referenced by AlgHmcPhi(), and ~AlgHmcPhi(). |
|
|
The number of dynamical fermion masses.
Definition at line 108 of file alg_hmd.h. Referenced by AlgHmcPhi(), and ~AlgHmcPhi(). |
|
|
Pseudofermion fields. One for each mass Definition at line 138 of file alg_hmd.h. Referenced by AlgHmcPhi(), run(), and ~AlgHmcPhi(). |
1.3.9.1