Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

cps::AlgHmdR Class Reference
[Algorithms]

A class implementing the Hybrid Molecular Dynamics (R) algorithm. More...

#include <alg_hmd.h>

Inherits cps::AlgHmd.

List of all members.

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.
Floatflavor_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.
Vectorfrm1
Vectorfrm2
 Fermion work vectors.


Detailed Description

A class implementing the Hybrid Molecular Dynamics (R) algorithm.

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.


Constructor & Destructor Documentation

cps::AlgHmdR::AlgHmdR Lattice latt,
CommonArg c_arg,
HmdArg arg
 

Parameters:
latt The lattice on which the HMD algorithm run.
c_arg The common argument structure for all algorithms.
arg The algorithm parameters.

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.

cps::AlgHmdR::~AlgHmdR  )  [virtual]
 

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.


Member Function Documentation

Float cps::AlgHmdR::run void   )  [virtual]
 

Performs a single HMD trajectory.

Postcondition:
The following results are written to the file specified in the CommonArg structure:
  1. The number of molecular dynamics steps
  2. A measure of the change in the gauge field due to reunitarisation
  3. Another measure of the change in the gauge field due to reunitarisation
  4. Average number of solver iterations.
  5. Minimum number of solver iterations.
  6. Maximum number of solver iterations.
  7. Average solver residue
  8. Minimum solver residue
  9. Maximum solver residue

Implements cps::AlgHmd.

Definition at line 229 of file alg_hmd_r.C.

References cps::Alg::AlgLattice(), cps::CNV_FRM_NO, cps::CSM, cps::ERR, cps::Lattice::EvolveGfield(), cps::Lattice::EvolveMomFforce(), cps::Lattice::EvolveMomGforce(), cps::Lattice::ExactFlavors(), cps::Fclose(), cps::Error::FileA(), flavor_time_step, cps::Float, cps::Verbose::Flow(), cps::Lattice::FmatEvlInv(), cps::Fopen(), cps::Fprintf(), frm1, frm2, frm_cg_arg, cps::HmdArg::frm_flavors, cps::HmdArg::frm_mass, cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::Lattice::GsoCheck(), cps::Lattice::GupdCnt(), cps::Lattice::GupdCntInc(), cps::Error::Hardware(), cps::IFloat, cps::Lattice::MdTime(), cps::Lattice::MdTimeInc(), cps::Lattice::MomHamiltonNode(), phi, cps::Lattice::RandGaussAntiHermMatrix(), cps::Lattice::RandGaussVector(), cps::Verbose::Result(), cps::CommonArg::results, cps::Lattice::Reunitarize(), cps::HmdArg::reunitarize, cps::CheckSum::SaveComment(), cps::Lattice::SetPhi(), cps::HmdArg::step_size, cps::HmdArg::steps_per_traj, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.


Member Data Documentation

int cps::AlgHmdR::f_size [protected]
 

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().

Float* cps::AlgHmdR::flavor_time_step [protected]
 

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().

Vector* cps::AlgHmdR::frm1 [protected]
 

Definition at line 527 of file alg_hmd.h.

Referenced by AlgHmdR(), run(), and ~AlgHmdR().

Vector* cps::AlgHmdR::frm2 [protected]
 

Fermion work vectors.

Definition at line 529 of file alg_hmd.h.

Referenced by AlgHmdR(), run(), and ~AlgHmdR().

CgArg** cps::AlgHmdR::frm_cg_arg [protected]
 

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().

int cps::AlgHmdR::n_frm_masses [protected]
 

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().

Vector** cps::AlgHmdR::phi [protected]
 

Pseudofermion fields.

One for each mass

Definition at line 524 of file alg_hmd.h.

Referenced by AlgHmdR(), run(), and ~AlgHmdR().


The documentation for this class was generated from the following files:
Generated on Sat Oct 10 14:11:55 2009 for Columbia Physics System by  doxygen 1.3.9.1