#include <alg_hmd.h>
Inherits cps::AlgHmd.
Public Member Functions | |
| AlgHmdR2 (Lattice &latt, CommonArg *c_arg, HmdArg *arg) | |
| virtual | ~AlgHmdR2 () |
| 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. | |
| Float * | force_coeff |
| The coefficient of each force passed to RHMC_EvolveFforce. | |
| int | f_sites |
| int | f_vec_count |
| int | f_count |
| 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 ** | frmn |
| Array of vectors. | |
| Vector ** | frmn_d |
| Array of vectors. | |
| Float * | shift |
| The renormalised shift. | |
| int | light |
| The index of the lightest mass. | |
| int | heavy |
| The index of the heaviest mass. | |
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 R2 algorithm is specifically for simulating 2+1 flavours of dynamical staggered fermions of different masses. It uses the generalised multimass solver to minimise the number of cg iterations performed. The algorithm can only be used when the mass matrix is a scalar multiple of the identity.
Definition at line 559 of file alg_hmd.h.
|
||||||||||||||||
|
Definition at line 37 of file alg_hmd_r2.C. References cps::Alg::AlgLattice(), cps::Lattice::Colors(), cps::ERR, cps::F_CLASS_STAG, f_sites, f_size, f_vec_count, cps::Lattice::FchkbEvl(), cps::Lattice::Fclass(), flavor_time_step, cps::Float, force_coeff, frm_cg_arg, cps::HmdArg::frm_mass, frmn, frmn_d, cps::Verbose::Func(), cps::Error::General(), cps::GJP, heavy, light, cps::CgArg::mass, cps::HmdArg::max_num_iter, cps::CgArg::max_num_iter, cps::HmdArg::n_frm_masses, n_frm_masses, phi, shift, cps::smalloc(), cps::GlobalJobParameter::SnodeSites(), cps::Lattice::SpinComponents(), cps::HmdArg::stop_rsd, cps::CgArg::stop_rsd, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB. |
|
|
Definition at line 139 of file alg_hmd_r2.C. References flavor_time_step, force_coeff, frm_cg_arg, frmn, frmn_d, cps::Verbose::Func(), phi, cps::sfree(), shift, and cps::VRB. |
|
|
|
|
|
|
Definition at line 585 of file alg_hmd.h. Referenced by AlgHmdR2(). |
|
|
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 589 of file alg_hmd.h. Referenced by AlgHmdR2(), and run(). |
|
|
Definition at line 586 of file alg_hmd.h. Referenced by AlgHmdR2(). |
|
|
A tricky thing to describe succinctly. This is an array of the time steps used for the intermediate gauge field updates for each dynamical mass. Actually it is the differences between them. At least most of it is. Definition at line 572 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
|
|
The coefficient of each force passed to RHMC_EvolveFforce. Array of coefficients = flavours * flavour_coeff Definition at line 580 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
|
|
Pointer to an array of structures containing solver parameters. These are the parameters corresponding to each of the dynamical fermion masses. Definition at line 596 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
|
|
Array of vectors. These will hold the solutions from the solves. Definition at line 607 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
|
|
Array of vectors. These will hold the solutions from the solves multiplied by the D-slash operator. Definition at line 611 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
|
|
The index of the heaviest mass.
Definition at line 622 of file alg_hmd.h. Referenced by AlgHmdR2(), and run(). |
|
|
The index of the lightest mass.
Definition at line 619 of file alg_hmd.h. Referenced by AlgHmdR2(), and run(). |
|
|
The number of dynamical fermion masses. This is not necessarily the number of dynamical flavours. Definition at line 566 of file alg_hmd.h. Referenced by AlgHmdR2(). |
|
|
Pseudofermion fields. One for each mass Definition at line 603 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
|
|
The renormalised shift.
Definition at line 616 of file alg_hmd.h. Referenced by AlgHmdR2(), run(), and ~AlgHmdR2(). |
1.3.9.1