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

cps::Lattice Class Reference

The fundamental abstract base class. More...

#include <lattice.h>

Inherited by cps::Fnone [virtual], cps::Fsmear [virtual], cps::FstagTypes [virtual], cps::FwilsonTypes [virtual], cps::GimprOLSym [virtual], cps::GimprOLSymFclover [virtual], cps::GimprOLSymFdwf [virtual], cps::GimprOLSymFnone [virtual], cps::GimprOLSymFstag [virtual], cps::GimprOLSymFwilson [virtual], cps::GimprRect [virtual], cps::GimprRectFclover [virtual], cps::GimprRectFdwf [virtual], cps::GimprRectFnone [virtual], cps::GimprRectFstag [virtual], cps::GimprRectFwilson [virtual], cps::GimprRectFwilsonTm [virtual], cps::Gnone [virtual], cps::GnoneFasqtad [virtual], cps::GnoneFclover [virtual], cps::GnoneFdwf [virtual], cps::GnoneFnone [virtual], cps::GnoneFp4 [virtual], cps::GnoneFstag [virtual], cps::GnoneFwilson [virtual], cps::GnoneFwilsonTm [virtual], cps::GpowerPlaq [virtual], cps::GpowerPlaqFclover [virtual], cps::GpowerPlaqFdwf [virtual], cps::GpowerPlaqFnone [virtual], cps::GpowerPlaqFstag [virtual], cps::GpowerPlaqFwilson [virtual], cps::GpowerRect [virtual], cps::GpowerRectFclover [virtual], cps::GpowerRectFdwf [virtual], cps::GpowerRectFnone [virtual], cps::GpowerRectFstag [virtual], cps::GpowerRectFwilson [virtual], cps::GtadpoleRect [virtual], cps::Gwilson [virtual], cps::GwilsonFasqtad [virtual], cps::GwilsonFclover [virtual], cps::GwilsonFdwf [virtual], cps::GwilsonFp4 [virtual], cps::GwilsonFstag [virtual], cps::GwilsonFwilson [virtual], and cps::GwilsonFwilsonTm [virtual].

List of all members.

Public Member Functions

const MatrixGetLink (const int *x, int mu) const
 Gets the gauge link U_mu(x).
const MatrixGetLinkOld (Matrix *g_offset, const int *x, int dir, int mu) const
 Gets the gauge link U_mu(x+dir).
int LinkBufferIsEnabled ()
 Returns true if there is a buffer for the links, false otherwise.
int EnableLinkBuffer (int buf_sz)
 Creates a link buffer.
void DisableLinkBuffer ()
 delete the LinkBuffer Object when it's not in use.
const MatrixGetBufferedLink (const int *x, int mu)
 Gets a link from the buffer.
void ClearBufferedLink (const int *x, int mu)
 Removes links from the buffer.
void ClearAllBufferedLink ()
 Deletes all the links from the buffer.
int IsOnNode (const int *x)
 Checks if a lattice site local to this node.
void PathOrdProdPlus (Matrix &mat, const int *x, const int *dirs, int n)
 Computes the product of links along a path and adds it to a matrix.
void PathOrdProd (Matrix &mat, const int *x, const int *dirs, int n)
 Computes the product of links along a path.
 Lattice ()
virtual ~Lattice ()
MatrixGaugeField () const
 Returns the pointer to the gauge field configuration.
void GaugeField (Matrix *u)
 Copies an array into the gauge configuration.
int GsiteOffset (const int *x) const
 Gets the array index of a gauge link.
void CopyGaugeField (Matrix *u)
 Copies the gauge configuration into an array;.
int CompareGaugeField (Matrix *u)
 Compares the gauge configuration to the lattice instance;.
StrOrdType StrOrd ()
 Returns the storage order.
int Colors () const
 Returns the number of colors.
int GsiteSize ()
 Gets the number of gauge field components per lattice site.
void Staple (Matrix &stap, int *x, int mu)
 Calculates the gauge field square staple sum around a link.
void BufferedStaple (Matrix &stap, const int *x, int mu)
 Calculates the gauge field square staple sum around a link.
void RectStaple (Matrix &stap, int *x, int mu)
 Calculates the rectangle staple sum around a link.
void BufferedRectStaple (Matrix &stap, const int *x, int mu)
 Calculates the rectangle staple sum around a link.
void RectStaple1 (Matrix &stap, int *x, int mu)
 Appears not to be implemented.
void ChairStaple (Matrix &stap, int *x, int mu)
 Appears not to be implemented.
void BufferedChairStaple (Matrix &stap, const int *x, int mu)
 Calculates the chair shaped staple sum around a link.
void CubeStaple (Matrix &stap, const int *x, int mu)
 Appears not to be implemented.
void BufferedCubeStaple (Matrix &stap, const int *x, int mu)
 Calculates the 5-link cube shaped staple sum around a link.
virtual void AllStaple (Matrix &stap, const int *x, int mu)=0
 Computes all of the staple sums around a link.
void Plaq (Matrix &plaq, int *x, int mu, int nu) const
 Computes a plaquette.
Float ReTrPlaq (int *x, int mu, int nu) const
 Calculates the real part of the trace of a plaquette.
Float SumReTrPlaqNode () const
 Calculates the local sum of the real part of the trace of the plaquette.
Float SumReTrPlaq () const
 Calculates the global sum of the real part of the trace of the plaquette.
Float ReTrRect (int *x, int mu, int nu) const
 Calculates the real part of the trace of a 6-link rectangle.
Float SumReTrRectNode () const
 Calculates the local sum of the real part of the trace of the 6-link rectangle.
Float SumReTrRect () const
 Calculates the global sum of the real part of the trace of the 6-link rectangle.
Float ReTrLoop (const int *x, const int *dir, int length)
 Computes the real trace of the product of links along a path.
Float SumReTrCubeNode ()
 Calculates the local sum of the real part of the trace of the cube.
Float SumReTrCube ()
 Calculates the global sum of the real part of the trace of the cube.
Float AveReTrPlaqNodeNoXi () const
 Calculates the local average of the real part of the trace of the plaquettes perpendicular to the special anisotropic direction.
Float AveReTrPlaqNodeXi () const
 Calculates the local average of the real part of the trace of the plaquettes parallel to the special anisotropic direction.
Float AveReTrPlaqNoXi () const
 Calculates the global average of the real part of the trace of the plaquettes perpendicular to the special anisotropic direction.
Float AveReTrPlaqXi () const
 Calculates the global average of the real part of the trace of the plaquettes parallel to the special anisotropic direction.
Float AveReTrRectNodeNoXi () const
 Calculates the local average of the real part of the trace of the rectangle perpendicular to the special anisotropic direction.
Float AveReTrRectNodeXi1 () const
 Calculates the local average of the real part of the trace of the rectangle, where the short axix is the special anisotropic direction.
Float AveReTrRectNodeXi2 () const
 Calculates the local average of the real part of the trace of the rectangle, where the long axis is the special anisotropic direction.
Float AveReTrRectNoXi () const
 Calculates the global average of the real part of the trace of the rectangle perpendicular to the special anisotropic direction.
Float AveReTrRectXi1 () const
 Calculates the global average of the real part of the trace of the rectangle, where the short axis is the special anisotropic direction.
Float AveReTrRectXi2 () const
 Calculates the global average of the real part of the trace of the rectangle, where the long axis is the special anisotropic direction.
void MltFloat (Float factor, int dir)
 Multiplies all gauge links with direction dir by a real factor.
void Reunitarize ()
 Re-unitarize the gauge field configuration.
void Reunitarize (Float &dev, Float &max_diff)
 Test the gauge field for unitarity violation and reunitarize it.
int MetropolisAccept (Float delta_h, Float *accept)
 Metropolis algorithm decision.
int MetropolisAccept (Float delta_h)
 Metropolis algorithm decision.
void EvolveGfield (Matrix *mom, Float step_size)
 Molecular dynamics evolution of the gauge field.
Float MomHamiltonNode (Matrix *momentum)
 The kinetic energy term of the canonical Hamiltonian on the local lattice.
void Convert (StrOrdType new_str_ord, Vector *f_field_1, Vector *f_field_2)
 Converts the gauge field and two fermion fields to a new data layout.
void Convert (StrOrdType new_str_ord)
 Converts the gauge field to a new data layout.
void RandGaussAntiHermMatrix (Matrix *mat, Float sigma2)
 A random gaussian anti-Hermitian matrix field.
void RandGaussVector (Vector *vect, Float sigma)
 Creates a random gaussian spin-colour field.
void RandGaussVector (Vector *vect, Float sigma, FermionFieldDimension frm_field_dim)
 Creates a random gaussian spin-colour field.
void RandGaussVector (Vector *vect, Float sigma, int num_chckbds, FermionFieldDimension frm_field_dim=FIVE_D)
 Creates a random gaussian spin-colour field.
void RandGaussVector (Vector *vect, Float sigma, int num_chckbds, StrOrdType str, FermionFieldDimension frm_field_dim=FIVE_D)
void SetGfieldOrd ()
 Creates a unit gauge field.
void SetGfieldDisOrd ()
 Creates a random (disordered) gauge field.
int GupdCnt ()
 Reads the gauge field updates counter.
int GupdCnt (int set_val)
 Sets the gauge field updates counter.
int GupdCntInc (int inc_val=1)
 Increments the gauge field updates counter.
Float MdTime ()
 The molecular dynamics time counter.
Float MdTime (Float set_val)
 Sets the value of the molecular dynamics time counter.
Float MdTimeInc (Float inc_val=0.5)
 Increments the value of the molecular dynamics time counter.
void * FdiracOpInitPtr ()
void FixGaugeAllocate (FixGaugeType GaugeType, int NHplanes=0, int *Hplanes=0)
 Allocates memory for the gauge fixing matrices.
int FixGauge (Float StopCond, int MaxIterNum)
 Fixes the gauge.
void FixGaugeFree ()
 Free memory used by the gauge fixing matrices.
Matrix ** FixGaugePtr ()
 Returns an array of pointers to the gauge fixed hyperplanes.
FixGaugeType FixGaugeKind ()
 Returns the kind of gauge fixing.
Float FixGaugeStopCond ()
 Returns the stopping condition used.
void * Aux0Ptr ()
 Returns a general purpose auxiliary pointer.
void * Aux1Ptr ()
 Returns a general purpose auxiliary pointer.
void GsoCheck ()
 Checks that the gauge field is identical on 5th dimension local lattice slices.
void SoCheck (Float num)
 Checks that a number is identical on 5th dimension local lattice slices.
virtual void Gamma5 (Vector *v_out, Vector *v_in, int num_sites)
 Not implemented here.
virtual void Ffour2five (Vector *five, Vector *four, int s_r, int s_l, int Ncb=2)
 Not implemented here.
virtual void Ffive2four (Vector *four, Vector *five, int s_r, int s_l, int Ncb=2)
 Not implemented here.
virtual void Freflex (Vector *out, Vector *in)
 Not implemented here.
virtual void Fdslash (Vector *f_out, Vector *f_in, CgArg *cg_arg, CnvFrmType cnv_frm, int dir_flag)
 Not implemented here.
virtual void FdMdmu (Vector *f_out, Vector *f_in, CgArg *cg_arg, CnvFrmType cnv_frm, int order)
 Not implemented here. Not implemented here.
virtual Float SetPhi (Vector *phi, Vector *frm1, Vector *frm2, Float mass, Float epsilon, DagType dag)
virtual ForceArg EvolveMomFforce (Matrix *mom, Vector *frm, Float mass, Float epsilon, Float step_size)
virtual ForceArg EvolveMomFforce (Matrix *mom, Vector *phi, Vector *eta, Float mass, Float epsilon, Float step_size)
virtual Float BhamiltonNode (Vector *boson, Float mass, Float epsilon)
virtual GclassType Gclass ()=0
 Returns the type of gauge action.
virtual void GactionGradient (Matrix &grad, int *x, int mu)=0
 Calculates the partial derivative of the gauge action w.r.t. the link U_mu(x).
virtual ForceArg EvolveMomGforce (Matrix *mom, Float step_size)=0
 Molecular dynamics evolution of the conjugate momentum.
virtual Float GhamiltonNode ()=0
 Computes the pure gauge action on the local sublattice.
virtual FclassType Fclass () const =0
 Returns the type of fermion action.
int FstagType ()
int FwilsonType ()
virtual int FsiteOffsetChkb (const int *x) const =0
 Gets the lattice site index for the odd-even (checkerboard) order.
virtual int FsiteOffset (const int *x) const =0
 Gets the lattice site index for the canonical order.
virtual int ExactFlavors () const =0
 The number of dynamical flavors.
virtual int SpinComponents () const =0
 Returns the number of spin components.
virtual int FsiteSize () const =0
 Gets the size of a fermion field per 4-dim. lattice site.
virtual int FchkbEvl () const =0
 Determines whether one or both parities are used in the molecular dynamics evolution.
virtual int FmatEvlInv (Vector *f_out, Vector *f_in, CgArg *cg_arg, Float *true_res, CnvFrmType cnv_frm=CNV_FRM_YES)=0
 The matrix inversion used in the molecular dynamics algorithms.
int FmatEvlInv (Vector *f_out, Vector *f_in, CgArg *cg_arg, CnvFrmType cnv_frm=CNV_FRM_YES)
virtual int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg **cg_arg, CnvFrmType cnv_frm, MultiShiftSolveType type, Float *alpha, Vector **f_out_d)=0
 The multishift matrix inversion used in the RHMC molecular dynamics algorithms.
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg *cg_arg, CnvFrmType cnv_frm, MultiShiftSolveType type, Float *alpha, Vector **f_out_d)
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg **cg_arg, CnvFrmType cnv_frm, MultiShiftSolveType type, Float *alpha)
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg *cg_arg, CnvFrmType cnv_frm, MultiShiftSolveType type, Float *alpha)
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg **cg_arg, CnvFrmType cnv_frm, Vector **f_out_d)
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg *cg_arg, CnvFrmType cnv_frm, Vector **f_out_d)
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg **cg_arg, CnvFrmType cnv_frm)
int FmatEvlMInv (Vector **f_out, Vector *f_in, Float *shift, int Nshift, int isz, CgArg **cg_arg, CnvFrmType cnv_frm, MultiShiftSolveType type, Vector **f_out_d)
virtual void FminResExt (Vector *sol, Vector *source, Vector **sol_old, Vector **vm, int degree, CgArg *cg_arg, CnvFrmType cnv_frm)=0
virtual int FmatInv (Vector *f_out, Vector *f_in, CgArg *cg_arg, Float *true_res, CnvFrmType cnv_frm=CNV_FRM_YES, PreserveType prs_f_in=PRESERVE_YES)=0
 Fermion matrix inversion.
int FmatInv (Vector *f_out, Vector *f_in, CgArg *cg_arg, CnvFrmType cnv_frm=CNV_FRM_YES, PreserveType prs_f_in=PRESERVE_YES)
virtual int FeigSolv (Vector **f_eigenv, Float *lambda, Float *chirality, int *valid_eig, Float **hsum, EigArg *eig_arg, CnvFrmType cnv_frm=CNV_FRM_YES)=0
 It the eigenvectors and eigenvalues of the fermion matrix.
virtual Float SetPhi (Vector *phi, Vector *frm1, Vector *frm2, Float mass, DagType dag)=0
 Initialises the pseudofermion field.
Float SetPhi (Vector *phi, Vector *frm1, Vector *frm2, Float mass)
virtual ForceArg EvolveMomFforce (Matrix *mom, Vector *frm, Float mass, Float step_size)=0
 Molecular dynamics evolution due to the fermion force.
virtual ForceArg EvolveMomFforce (Matrix *mom, Vector *phi, Vector *eta, Float mass, Float step_size)=0
 Molecular dynamics evolution due to the boson part of quotient integrator.
virtual ForceArg RHMC_EvolveMomFforce (Matrix *mom, Vector **sol, int degree, int isz, Float *alpha, Float mass, Float dt, Vector **sol_d, ForceMeasure measure)=0
virtual Float FhamiltonNode (Vector *phi, Vector *chi)=0
 Computes the pseudofermionic action on the local sublattice.
virtual void Fconvert (Vector *f_field, StrOrdType to, StrOrdType from)=0
 Converts the field layout.
void Fconvert (LatVector *f_field, StrOrdType to, StrOrdType from)
virtual Float BhamiltonNode (Vector *boson, Float mass)=0
void ClearSmeared ()
void Shift ()
virtual void BforceVector (Vector *in, CgArg *cg_arg)=0

Static Public Attributes

int ForceFlops = 0
 Counter for flops in the HMD force calculations.

Protected Member Functions

void MltFloatImpl (Float factor, int dir)
 Multiplies all gauge links in direction dir by a real factor.

Protected Attributes

int smeared
void * f_dirac_op_init_ptr
void * aux0_ptr
 A pointer!
void * aux1_ptr
 Another pointer!
LinkBufferlink_buffer
 The array of off-node links, accessed by methods in link_buffer.C.

Static Protected Attributes

int node_sites [5]
 The local lattice dimensions.
int g_dir_offset [4]
 Offsets to help find the array index of gauge links.

Friends

class LinkBuffer


Detailed Description

The fundamental abstract base class.

This is the basic class of the CPS from which many are derived. The derived classes define the lattice action, and many of the methods implementing operations with the action are defined or declared here. This class holds the gauge configuration and implements operations on the gauge configuration. all sorts of other things are actually defined here too, for instance, many of the methods used in the HMD algorithms, operations on spinor fields, etc.

Definition at line 67 of file lattice.h.


Constructor & Destructor Documentation

cps::Lattice::Lattice  ) 
 

If needed, allocates memory for the gauge field. Initialises the random number generator and the gauge configuration.

Definition at line 139 of file lattice_base.C.

References cps::CANONICAL, Convert(), cps::ERR, cps::Verbose::Flow(), cps::Verbose::Func(), g_dir_offset, cps::Error::General(), cps::GJP, GsiteSize(), GsoCheck(), cps::LatRanGen::Initialize(), link_buffer, cps::LRG, node_sites, cps::Error::NotImplemented(), cps::Verbose::Pmalloc(), cps::pmalloc(), cps::Error::Pointer(), cps::MPISCU::printf(), Reunitarize(), SetGfieldDisOrd(), SetGfieldOrd(), smeared, cps::GlobalJobParameter::Snodes(), cps::GlobalJobParameter::SnodeSites(), cps::START_CONF_MEM, cps::GlobalJobParameter::StartConfAllocFlag(), cps::GlobalJobParameter::StartConfFilename(), cps::GlobalJobParameter::StartConfKind(), cps::GlobalJobParameter::StartConfLoadAddr(), cps::StartConfType, cps::GlobalJobParameter::TnodeSites(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XiBare(), cps::GlobalJobParameter::XnodeSites(), cps::GlobalJobParameter::YnodeSites(), and cps::GlobalJobParameter::ZnodeSites().

cps::Lattice::~Lattice  )  [virtual]
 

Note that the destructor does not free any memory allocated by the constructor for the gauge field. This is a feature, not a bug.

Definition at line 315 of file lattice_base.C.

References cps::Verbose::Flow(), cps::Verbose::Func(), cps::GJP, GsoCheck(), MltFloat(), cps::GlobalJobParameter::Snodes(), cps::VRB, cps::GlobalJobParameter::XiBare(), and cps::GlobalJobParameter::XiDir().


Member Function Documentation

virtual void cps::Lattice::AllStaple Matrix stap,
const int *  x,
int  mu
[pure virtual]
 

Computes all of the staple sums around a link.

Implemented in cps::Gnone, cps::Gwilson, cps::GpowerPlaq, cps::GimprRect, cps::GtadpoleRect, cps::GpowerRect, and cps::GimprOLSym.

Referenced by cps::AlgGheatBath::NoCheckerBoardRun(), and cps::AlgGheatBath::NodeCheckerBoardRun().

void * cps::Lattice::Aux0Ptr  ) 
 

Returns a general purpose auxiliary pointer.

Definition at line 2728 of file lattice_base.C.

Referenced by cps::Fclover::BhamiltonNode(), cps::DiracOpClover::CalcHmdForceVecs(), cps::DiracOpClover::CloverMatChkb(), cps::Fclover::EvolveMomFforce(), cps::DiracOpClover::MatDagOrNotDbg(), cps::DiracOpClover::MatEvlInv(), cps::DiracOpClover::MatInv(), cps::DiracOpClover::MatPcDagOrNot(), and cps::Fclover::SetPhi().

void * cps::Lattice::Aux1Ptr  ) 
 

Returns a general purpose auxiliary pointer.

Definition at line 2736 of file lattice_base.C.

Referenced by cps::DiracOpClover::CloverMatChkb(), cps::DiracOpClover::MatDagOrNotDbg(), and cps::DiracOpClover::MatPcDagOrNot().

Float cps::Lattice::AveReTrPlaqNodeNoXi  )  const
 

Calculates the local average of the real part of the trace of the plaquettes perpendicular to the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all three $x \mu-\nu $ planes where neither $ \mu $nor $ \nu $ is the anisotropic direction.

Returns:
The real trace of the plaquette averaged over local sites, planes and colours.

Definition at line 1596 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::GJP, node_sites, cps::NUM_SPACE_PLAQ, ReTrPlaq(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, and cps::GlobalJobParameter::XiDir().

Referenced by AveReTrPlaqNoXi().

Float cps::Lattice::AveReTrPlaqNodeXi  )  const
 

Calculates the local average of the real part of the trace of the plaquettes parallel to the special anisotropic direction.

At a site x and in the $ \mu-\nu $ plane, the plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all three $ \mu-\nu $ planes where one of $ \mu $ or $\nu $ is the anisotropic direction. The bare anisotropy is taken into account here.

Returns:
The real trace of the plaquette averaged over local sites, planes and colours.

Definition at line 1641 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::GJP, node_sites, cps::NUM_COLORS, cps::NUM_TIME_PLAQ, ReTrPlaq(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XiBare(), and cps::GlobalJobParameter::XiDir().

Referenced by AveReTrPlaqXi().

Float cps::Lattice::AveReTrPlaqNoXi  )  const
 

Calculates the global average of the real part of the trace of the plaquettes perpendicular to the special anisotropic direction.

At a site x and in the $ \mu-\nu $ plane, the plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all lattice sites and all three $ \mu-\nu $ planes where neither $ \mu $ nor $ \nu $ is the anisotropic direction.

Returns:
The real trace of the plaquette averaged over sites, planes and colours.

Definition at line 1685 of file lattice_base.C.

References AveReTrPlaqNodeNoXi(), cps::Float, cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::GlobalJobParameter::VolNodeSites(), cps::GlobalJobParameter::VolSites(), and cps::VRB.

Referenced by cps::AlgPlaq::run(), and cps::AlgEqState::run().

Float cps::Lattice::AveReTrPlaqXi  )  const
 

Calculates the global average of the real part of the trace of the plaquettes parallel to the special anisotropic direction.

At a site x and in the $ \mu-\nu $ plane, the plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all three - planes where one of $ \mu $ or $ \nu $ is the anisotropic direction. The bare anisotropy is taken into account here.

Returns:
The real trace of the plaquette averaged over local sites, planes and colours.

Definition at line 1713 of file lattice_base.C.

References AveReTrPlaqNodeXi(), cps::Float, cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::GlobalJobParameter::VolNodeSites(), cps::GlobalJobParameter::VolSites(), and cps::VRB.

Referenced by cps::AlgPlaq::run(), and cps::AlgEqState::run().

Float cps::Lattice::AveReTrRectNodeNoXi  )  const
 

Calculates the local average of the real part of the trace of the rectangle perpendicular to the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the rectangle with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all three $x \mu-\nu $ planes where neither $ \mu $nor $ \nu $ is the anisotropic direction and all two rectangles in this plane.

Returns:
The real trace of the rectangle averaged over local sites, planes and colours.

Definition at line 1751 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::GJP, node_sites, cps::NUM_SPACE_RECT, ReTrRect(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, and cps::GlobalJobParameter::XiDir().

Referenced by AveReTrRectNoXi().

Float cps::Lattice::AveReTrRectNodeXi1  )  const
 

Calculates the local average of the real part of the trace of the rectangle, where the short axix is the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the rectangle with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all three $x \mu-\nu $ planes where the $ \nu $ (short axis of the rectangle) is the anisotropic direction. The bare anisotropy is taken into account here.

Returns:
The real trace of the rectangle averaged over local sites, planes and colours.

Definition at line 1799 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::GJP, node_sites, cps::NUM_COLORS, cps::NUM_TIME_RECT, ReTrRect(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XiBare(), and cps::GlobalJobParameter::XiDir().

Referenced by AveReTrRectXi1().

Float cps::Lattice::AveReTrRectNodeXi2  )  const
 

Calculates the local average of the real part of the trace of the rectangle, where the long axis is the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the rectangle with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all three $x \mu-\nu $ planes where the $ \mu $ (long axis of the rectangle) is the anisotropic direction. The bare anisotropy is taken into account here.

Returns:
The real trace of the rectangle averaged over local sites, planes and colours.

Definition at line 1846 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::GJP, node_sites, cps::NUM_COLORS, cps::NUM_TIME_RECT, ReTrRect(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XiBare(), and cps::GlobalJobParameter::XiDir().

Referenced by AveReTrRectXi2().

Float cps::Lattice::AveReTrRectNoXi  )  const
 

Calculates the global average of the real part of the trace of the rectangle perpendicular to the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the rectangle with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all lattice sites and all three $x \mu-\nu $ planes where neither $ \mu $nor $ \nu $ is the anisotropic direction and all two rectangles in this plane.

Returns:
The real trace of the rectangle averaged over local sites, planes and colours.

Definition at line 1894 of file lattice_base.C.

References AveReTrRectNodeNoXi(), cps::Float, cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::GlobalJobParameter::VolNodeSites(), cps::GlobalJobParameter::VolSites(), and cps::VRB.

Referenced by cps::AlgRect::run().

Float cps::Lattice::AveReTrRectXi1  )  const
 

Calculates the global average of the real part of the trace of the rectangle, where the short axis is the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the rectangle with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all lattice sites and all three $x \mu-\nu $ planes where the $ \nu $ (short axis of the rectangle) is the anisotropic direction. The bare anisotropy is taken into account here.

Returns:
The real trace of the rectangle averaged over local sites, planes and colours.

Definition at line 1924 of file lattice_base.C.

References AveReTrRectNodeXi1(), cps::Float, cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::GlobalJobParameter::VolNodeSites(), cps::GlobalJobParameter::VolSites(), and cps::VRB.

Referenced by cps::AlgRect::run().

Float cps::Lattice::AveReTrRectXi2  )  const
 

Calculates the global average of the real part of the trace of the rectangle, where the long axis is the special anisotropic direction.

At a site x and in the $ \mu-\nu plane$, the rectangle with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all lattice sites and all three $x \mu-\nu $ planes where the $ \mu $ (long axis of the rectangle) is the anisotropic direction. The bare anisotropy is taken into account here.

Returns:
The real trace of the rectangle averaged over local sites, planes and colours.

Definition at line 1954 of file lattice_base.C.

References AveReTrRectNodeXi2(), cps::Float, cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::GlobalJobParameter::VolNodeSites(), cps::GlobalJobParameter::VolSites(), and cps::VRB.

Referenced by cps::AlgRect::run().

virtual void cps::Lattice::BforceVector Vector in,
CgArg cg_arg
[pure virtual]
 

Implemented in cps::FwilsonTypes, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::AlgActionBoson::evolve().

virtual Float cps::Lattice::BhamiltonNode Vector boson,
Float  mass
[pure virtual]
 

Implemented in cps::Fwilson, cps::FwilsonTm, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Float cps::Lattice::BhamiltonNode Vector boson,
Float  mass,
Float  epsilon
[virtual]
 

Reimplemented in cps::FwilsonTm.

Definition at line 2717 of file lattice_base.C.

References cps::ERR, cps::Float, and cps::Error::NotImplemented().

Referenced by cps::AlgActionBoson::energy(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

void cps::Lattice::BufferedChairStaple Matrix stap,
const int *  x,
int  u
 

Calculates the chair shaped staple sum around a link.

The chair shaped 5-link staple sum around the link U_(x) is:

\[ \sum_{\pm \nu, |\nu|\neq \mu} \sum_{\pm \rho, |\rho|\neq \nu, |\rho|\neq \mu}( \left[\right. U_\rho(x+\mu) U_\nu(x+\mu+\rho) U_{-\rho}(x+\mu+\nu+\rho) U_{-\mu}(x+\mu+\nu) U_{-\nu}(x+\nu) \]

\[ + U_\rho(x+\mu) U_\nu(x+\mu+\rho) U_{-\mu}(x+\mu+\nu+\rho) U_{-\nu}(x+\nu+\rho) U_{-\rho}(x+\rho) \]

\[ + U_\rho(x+\mu) U_{-\mu}(x+\mu+\rho) U_\nu(x+\rho) U_{-\rho}(x+\rho+\nu) U_{-\nu}(x+\nu) \left.\right] \]

Parameters:
x The coordinates of the lattice site
u The link direction
stap The computed staple sum.

Definition at line 562 of file link_buffer.C.

References cps::acumulate_mp, cps::CBUF_MODE2, cps::CBUF_MODE4, cps::dir, cps::IFloat, MATRIX_SIZE, cps::moveMem(), PathOrdProdPlus(), cps::setCbufCntrlReg(), and cps::Matrix::ZeroMatrix().

void cps::Lattice::BufferedCubeStaple Matrix stap,
const int *  x,
int  u
 

Calculates the 5-link cube shaped staple sum around a link.

The staple sum around the link U_(x) is

\[ \sum_{\pm \nu, |\nu|\neq \mu} \sum_{\pm \rho, |\rho|\neq \nu, |\rho|\neq \mu} U_\nu(x+\mu) U_\rho(x+\mu+\nu) U_{-\mu}(x+\mu+\nu+\rho) U_{-\nu}(x+\nu+\rho) U_{-\rho}(x+\rho) \]

Parameters:
x The coordinates of the lattice site
u The link direction
stap The computed staple sum.

Definition at line 642 of file link_buffer.C.

References cps::acumulate_mp, cps::CBUF_MODE2, cps::CBUF_MODE4, cps::dir, cps::IFloat, MATRIX_SIZE, cps::moveMem(), PathOrdProdPlus(), cps::setCbufCntrlReg(), and cps::Matrix::ZeroMatrix().

Referenced by cps::GimprOLSym::AllStaple().

void cps::Lattice::BufferedRectStaple Matrix stap,
const int *  x,
int  u
 

Calculates the rectangle staple sum around a link.

The 5-link rectangle staple sum around the link U_(x) is:

\[ \sum_{\nu \neq \mu} \left[\right. U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

\[ + U_\mu(x+\mu) U^\dagger_\nu(x+2\mu-\nu) U^\dagger_\mu(x+\mu-\nu) U^\dagger_\mu(x-\nu) U_\nu(x-\nu) \]

\[ + U_\nu(x+\mu) U^\dagger_\mu(x+\nu) U^\dagger_\mu(x-\mu+\nu) U^\dagger_\nu(x-\mu) U_\mu(x-\mu) \]

\[ + U^\dagger_\nu(x+\mu-\nu) U^\dagger_\mu(x-\nu) U^\dagger_\mu(x-\mu-\nu) U_\nu(x-\mu-\nu) U_\mu(x-\mu) \]

\[ + U_\nu(x+\mu) U_\nu(x+\mu+\nu) U^\dagger_\mu(x+2\nu) U^\dagger_\nu(x+\nu) U^\dagger_\nu(x) \]

\[ + U^\dagger_\nu(x+\mu-\nu) U^\dagger_\nu(x+\mu-2\nu) U^\dagger_\mu(x-2\nu) U_\nu(x-2\nu) U_\nu(x-\nu) \left.\right] \]

Parameters:
x The coordinates of the lattice site
u The link direction
stap The computed staple sum.

Definition at line 482 of file link_buffer.C.

References cps::acumulate_mp, cps::CBUF_MODE2, cps::CBUF_MODE4, cps::dir, cps::IFloat, MATRIX_SIZE, cps::moveMem(), PathOrdProdPlus(), cps::setCbufCntrlReg(), and cps::Matrix::ZeroMatrix().

Referenced by cps::GtadpoleRect::AllStaple(), cps::GimprRect::AllStaple(), and cps::GimprOLSym::AllStaple().

void cps::Lattice::BufferedStaple Matrix stap,
const int *  x,
int  u
 

Calculates the gauge field square staple sum around a link.

The staple sum around the link $ U_\mu(x) $is

\[ \sum_{v \neq \mu} [ U_\nu(x+\mu) U_\mu(x+\nu) U^\dagger_\nu(x) + U^\dagger_\nu(x+\mu-\nu) U^\dagger_u(x-\nu) U_\nu(x-\nu) ] \]

Parameters:
x The coordinates of the lattice site
u The link direction
stap The computed staple sum.

Definition at line 421 of file link_buffer.C.

References cps::acumulate_mp, cps::CBUF_MODE2, cps::CBUF_MODE4, cps::dir, cps::IFloat, MATRIX_SIZE, cps::moveMem(), PathOrdProdPlus(), cps::setCbufCntrlReg(), and cps::Matrix::ZeroMatrix().

Referenced by cps::Gwilson::AllStaple(), cps::GtadpoleRect::AllStaple(), cps::GimprRect::AllStaple(), and cps::GimprOLSym::AllStaple().

void cps::Lattice::ChairStaple Matrix stap,
int *  x,
int  mu
 

Appears not to be implemented.

void cps::Lattice::ClearAllBufferedLink  ) 
 

Deletes all the links from the buffer.

Definition at line 340 of file link_buffer.C.

References cps::LinkBuffer::ClearAll(), link_buffer, and LinkBufferIsEnabled().

Referenced by cps::AlgGheatBath::NoCheckerBoardRun(), cps::AlgGheatBath::NodeCheckerBoardRun(), cps::AlgSmear2::run(), cps::AlgSmear::run(), and cps::AlgRotateGauge::run().

void cps::Lattice::ClearBufferedLink const int *  x,
int  mu
 

Removes links from the buffer.

Remove from the buffer all the links with local lattice site x and direction mu.

Parameters:
x The lattice coordinates.
mu The direction index.

Definition at line 387 of file link_buffer.C.

References cps::LinkBuffer::ClearBufferedLink(), link_buffer, and LinkBufferIsEnabled().

Referenced by cps::AlgGheatBath::NoCheckerBoardRun(), and cps::AlgGheatBath::NodeCheckerBoardRun().

void cps::Lattice::ClearSmeared  )  [inline]
 

Definition at line 1112 of file lattice.h.

Referenced by cps::ReadLatticeParallel::read().

int cps::Lattice::Colors  )  const
 

Returns the number of colors.

Definition at line 440 of file lattice_base.C.

References cps::GlobalJobParameter::Colors(), and cps::GJP.

Referenced by cps::AlgActionBilinear::AlgActionBilinear(), cps::AlgHmdR2::AlgHmdR2(), Convert(), cps::FwilsonTm::EvolveMomFforce(), cps::Fwilson::EvolveMomFforce(), cps::FdwfBase::EvolveMomFforce(), cps::Fclover::EvolveMomFforce(), cps::FdwfBase::Fconvert(), cps::FstagTypes::Fconvert(), cps::FwilsonTypes::Fconvert(), cps::FdwfBase::FeigSolv(), FixGauge(), FixGaugeAllocate(), cps::FdwfBase::Freflex(), cps::FwilsonTypes::FsiteSize(), cps::Fwilson::FsiteSize(), cps::FstagTypes::FsiteSize(), cps::FdwfBase::FsiteSize(), cps::FwilsonTypes::Gamma5(), GsiteSize(), and RandGaussVector().

int cps::Lattice::CompareGaugeField Matrix u  ) 
 

Compares the gauge configuration to the lattice instance;.

Definition at line 405 of file lattice_base.C.

References cps::Float, cps::MPISCU::fprintf(), cps::Verbose::Func(), cps::GJP, GsiteSize(), cps::UniqueID(), cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Referenced by cps::AlgHmcRHMC::run().

void cps::Lattice::Convert StrOrdType  new_str_ord  ) 
 

Converts the gauge field to a new data layout.

The field exists on all lattice sites (both parities).

Parameters:
new_str_ord The new order in which the field will be laid out.
Postcondition:
The gauge field is arranged in the new order.

Definition at line 119 of file convert.C.

References cps::CANONICAL, cps::CanonToAnything(), cps::CAS, cps::CBUF_MODE4, Colors(), cps::Matrix::Dagger(), cps::ffree(), cps::Float, cps::Verbose::Flow(), cps::fmalloc(), cps::Verbose::Func(), cps::G_WILSON_HB, GaugeField(), cps::GJP, GsiteSize(), cps::IFloat, cps::ConvertArgStruct::lt, cps::ConvertArgStruct::lx, cps::ConvertArgStruct::ly, cps::ConvertArgStruct::lz, cps::moveFloat(), cps::MultStagPhases(), cps::ConvertArgStruct::nc, cps::p(), cps::RunGConverter(), cps::setCbufCntrlReg(), cps::ConvertArgStruct::site_size, cps::STAG, cps::STAG_BLOCK, cps::ConvertArgStruct::start_ptr, cps::GlobalJobParameter::TnodeSites(), cps::ConvertArgStruct::vol, cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::WILSON, cps::GlobalJobParameter::XnodeSites(), cps::GlobalJobParameter::YnodeSites(), and cps::GlobalJobParameter::ZnodeSites().

void cps::Lattice::Convert StrOrdType  new_str_ord,
Vector f_field_1,
Vector f_field_2
 

Converts the gauge field and two fermion fields to a new data layout.

The fields exist on all lattice sites (both parities).

Parameters:
new_str_ord The new order in which the fields will be laid out.
f_field_1 A fermion field.
f_field_2 A fermion field.
Postcondition:
The fermion fields and the gauge field are laid out in the new order.

Definition at line 72 of file convert.C.

References cps::ERR, Fconvert(), cps::Verbose::Flow(), cps::Verbose::Func(), cps::Error::Pointer(), and cps::VRB.

Referenced by cps::DiracOpAsqtad::DiracOpAsqtad(), cps::DiracOpClover::DiracOpClover(), cps::DiracOpDwf::DiracOpDwf(), cps::DiracOpP4::DiracOpP4(), cps::DiracOpStag::DiracOpStag(), cps::DiracOpWilson::DiracOpWilson(), cps::Fp4::EvolveMomFforce(), cps::Fasqtad::EvolveMomFforce(), Lattice(), cps::ParTransAsqtad::ParTransAsqtad(), cps::ParTransGauge::ParTransGauge(), cps::ParTransStaggered_cb::ParTransStaggered_cb(), cps::ParTransStagTypes::ParTransStagTypes(), cps::ParTransWilsonTypes::ParTransWilsonTypes(), cps::Fp4::RHMC_EvolveMomFforce(), cps::Fasqtad::RHMC_EvolveMomFforce(), cps::DiracOpAsqtad::~DiracOpAsqtad(), cps::DiracOpClover::~DiracOpClover(), cps::DiracOpDwf::~DiracOpDwf(), cps::DiracOpP4::~DiracOpP4(), cps::DiracOpStag::~DiracOpStag(), cps::DiracOpWilson::~DiracOpWilson(), cps::ParTransAsqtad::~ParTransAsqtad(), cps::ParTransGauge::~ParTransGauge(), cps::ParTransStaggered_cb::~ParTransStaggered_cb(), cps::ParTransStagTypes::~ParTransStagTypes(), and cps::ParTransWilsonTypes::~ParTransWilsonTypes().

void cps::Lattice::CopyGaugeField Matrix u  ) 
 

Copies the gauge configuration into an array;.

Parameters:
u An array
Postcondition:
The array u contains a copy of the gauge configuration.

Definition at line 388 of file lattice_base.C.

References cps::Verbose::Func(), cps::GJP, GsiteSize(), cps::IFloat, cps::moveMem(), cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Referenced by cps::QPropW::DoLinkSmear(), cps::LatticeContainer::Get(), cps::AlgSmear2::run(), cps::AlgOlegSmear::run(), cps::AlgSmear::run(), cps::AlgHQPotential::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), and cps::QPropW::UndoLinkSmear().

void cps::Lattice::CubeStaple Matrix stap,
const int *  x,
int  mu
 

Appears not to be implemented.

void cps::Lattice::DisableLinkBuffer  ) 
 

delete the LinkBuffer Object when it's not in use.

Definition at line 359 of file link_buffer.C.

References link_buffer.

int cps::Lattice::EnableLinkBuffer int  buf_sz  ) 
 

Creates a link buffer.

This function does not create a buffer if there already is one.

Parameters:
buf_sz The size of the link buffer.
Returns:
True if there is a link buffer, false otherwise.

Definition at line 350 of file link_buffer.C.

References link_buffer, and LinkBuffer.

void cps::Lattice::EvolveGfield Matrix mom,
Float  step_size
 

Molecular dynamics evolution of the gauge field.

Updates each gauge link U according to the canonical equation of motion

U(t+dt) = exp(i dt H) U(t)

A ninth order Horner expansion is used to compute the exponential.

Parameters:
mom The multiple iH of the conjugate momentum field H.
step_size The molecular dynamics time-step dt size used in the numerical integration of the equations of motion.

Definition at line 2016 of file lattice_base.C.

References cps::CBUF_MODE4, cps::CSM, cps::CSUM_EVL_LAT, cps::CSUM_EVL_MOM, cps::Float, cps::Verbose::Func(), GaugeField(), cps::GJP, cps::global_checksum(), cps::IFloat, cps::local_checksum(), MATRIX_SIZE, cps::mDotMEqual(), cps::moveMem(), cps::oneMinusfTimesMatrix(), cps::Verbose::Result(), cps::CheckSum::SaveCsum(), cps::setCbufCntrlReg(), smeared, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Referenced by cps::AlgMomentum::evolve(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

virtual ForceArg cps::Lattice::EvolveMomFforce Matrix mom,
Vector phi,
Vector eta,
Float  mass,
Float  step_size
[pure virtual]
 

Molecular dynamics evolution due to the boson part of quotient integrator.

The momentum is evolved for a single molecular dynamics timestep using the force from the bosonic part of a quotient action.

Parameters:
mom The momentum matrices on all links of the local lattice.
frm The solution of the fermion matrix inverse with the pseudofermion vector source, as computed by FmatEvlInv.
eta The solution of the fermion matrix inverse applied to bosonic operator times the pseudofermion vector source.
mass The BOSON/FERMION mass (not used in staggered fermion classes).
step_size The molecular dynamics timestep used in the numerical integration.
Postcondition:
mom is assigned the value of the momentum after the molecular dynamics evolution.

Implemented in cps::Fwilson, cps::FwilsonTm, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

virtual ForceArg cps::Lattice::EvolveMomFforce Matrix mom,
Vector frm,
Float  mass,
Float  step_size
[pure virtual]
 

Molecular dynamics evolution due to the fermion force.

The momentum is evolved for a single molecular dynamics timestep using the force from the fermion action.

Parameters:
mom The momentum matrices on all links of the local lattice.
frm The solution of the fermion matrix inverse with the pseudofermion vector source, as computed by FmatEvlInv.
mass The FERMION mass (not used in staggered fermion classes).
step_size The molecular dynamics timestep used in the numerical integration.
Postcondition:
mom is assigned the value of the momentum after the molecular dynamics evolution.

Implemented in cps::Fwilson, cps::FwilsonTm, cps::Fclover, cps::FdwfBase, cps::Fdwf, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

ForceArg cps::Lattice::EvolveMomFforce Matrix mom,
Vector phi,
Vector eta,
Float  mass,
Float  epsilon,
Float  step_size
[virtual]
 

Reimplemented in cps::FwilsonTm.

Definition at line 2710 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

ForceArg cps::Lattice::EvolveMomFforce Matrix mom,
Vector frm,
Float  mass,
Float  epsilon,
Float  step_size
[virtual]
 

Reimplemented in cps::FwilsonTm.

Definition at line 2703 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

Referenced by cps::AlgActionQuotient::evolve(), cps::AlgActionFermion::evolve(), cps::AlgActionBoson::evolve(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

virtual ForceArg cps::Lattice::EvolveMomGforce Matrix mom,
Float  step_size
[pure virtual]
 

Molecular dynamics evolution of the conjugate momentum.

The momentum is evolved for a single molecular dynamics timestep using the force from the pure gauge action.

Parameters:
mom The momentum matrices on all links.
step_size The molecular dynamics timestep used in the numerical integration.
Postcondition:
mom is assigned the value of the momentum after the molecular dynamics evolution.

Implemented in cps::Gnone, cps::Gwilson, cps::GpowerPlaq, cps::GimprRect, cps::GtadpoleRect, cps::GpowerRect, and cps::GimprOLSym.

Referenced by cps::AlgActionGauge::evolve(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

virtual int cps::Lattice::ExactFlavors  )  const [pure virtual]
 

The number of dynamical flavors.

Returns:
The number of flavours defined when this action is used in molecular dynamics dynamical fermion algorithms.

Implemented in cps::FwilsonTypes, cps::Fnone, and cps::FstagTypes.

Referenced by cps::AlgHmdR2::run(), and cps::AlgHmdR::run().

virtual int cps::Lattice::FchkbEvl  )  const [pure virtual]
 

Determines whether one or both parities are used in the molecular dynamics evolution.

Are the fields used in the molecular dynamics algorithms defined on the whole lattice or just on sites on one parity?

Returns:
0 if both parities are used, 1 if only one parity is used.

Implemented in cps::Fwilson, cps::Fclover, cps::FdwfBase, cps::Fnone, and cps::FstagTypes.

Referenced by cps::AlgActionBilinear::AlgActionBilinear(), cps::AlgHmcPhi::AlgHmcPhi(), cps::AlgHmcQPQ::AlgHmcQPQ(), cps::AlgHmd::AlgHmd(), cps::AlgHmdR::AlgHmdR(), cps::AlgHmdR2::AlgHmdR2(), cps::DiracOpWilsonTypes::BiCGstab(), cps::FwilsonTypes::FhamiltonNode(), cps::DiracOp::InvCg(), cps::DiracOp::MinResExt(), and cps::DiracOp::MInvCG().

virtual FclassType cps::Lattice::Fclass  )  const [pure virtual]
 

Returns the type of fermion action.

Implemented in cps::FwilsonTypes, cps::Fwilson, cps::FwilsonTm, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::FstagTypes, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::AlgHmcRHMC::AlgHmcRHMC(), cps::AlgHmdR2::AlgHmdR2(), cps::AlgStagMeson::AlgStagMeson(), cps::AlgStagMomMeson::AlgStagMomMeson(), cps::AlgStagNonLocal::AlgStagNonLocal(), cps::AlgStagNucleon::AlgStagNucleon(), cps::AlgStagQuark::AlgStagQuark(), cps::AlgWspect::AlgWspect(), cps::DiracOpWilsonTypes::BiCGstab(), cps::QPropW::CG(), cps::AlgActionQuotient::energy(), cps::AlgActionQuotient::evolve(), cps::AlgActionFermion::evolve(), cps::AlgActionQuotient::heatbath(), cps::AlgActionFermion::heatbath(), cps::DiracOp::InvCg(), cps::DiracOp::MinResExt(), cps::DiracOp::MInvCG(), RandGaussVector(), cps::QPropW::ReLoad(), cps::AlgActionQuotient::reweight(), cps::AlgWspect::run(), cps::QPropW::Run(), cps::AlgPbp::run(), cps::AlgHmcRHMC::run(), cps::AlgEig::run(), cps::AlgDens::run(), cps::AlgPbp::runPointSource(), cps::WspectAxialCurrent::WspectAxialCurrent(), cps::WspectQuark::WspectQuark(), cps::AlgHmcRHMC::~AlgHmcRHMC(), and cps::WspectAxialCurrent::~WspectAxialCurrent().

void cps::Lattice::Fconvert LatVector f_field,
StrOrdType  to,
StrOrdType  from
[inline]
 

Exactly which data layouts are supported depends on the type of fermion action. The field exists on all lattice sites (both parities).

Parameters:
f_field The field to be converted.
to The new order.
from The current order.

Definition at line 1096 of file lattice.h.

References cps::LatVector::Vec().

virtual void cps::Lattice::Fconvert Vector f_field,
StrOrdType  to,
StrOrdType  from
[pure virtual]
 

Converts the field layout.

Implemented in cps::FwilsonTypes, cps::FdwfBase, cps::Fnone, and cps::FstagTypes.

Referenced by Convert().

void* cps::Lattice::FdiracOpInitPtr  )  [inline]
 

Definition at line 541 of file lattice.h.

Referenced by cps::DiracOpClover::DiracOpClover(), cps::DiracOpDwf::DiracOpDwf(), and cps::DiracOpWilson::DiracOpWilson().

void cps::Lattice::FdMdmu Vector f_out,
Vector f_in,
CgArg cg_arg,
CnvFrmType  cnv_frm,
int  order
[virtual]
 

Not implemented here. Not implemented here.

Reimplemented in cps::Fstag, and cps::Fp4.

Definition at line 2680 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

Referenced by cps::AlgDens::run().

void cps::Lattice::Fdslash Vector f_out,
Vector f_in,
CgArg cg_arg,
CnvFrmType  cnv_frm,
int  dir_flag
[virtual]
 

Not implemented here.

Reimplemented in cps::Fstag, cps::Fasqtad, and cps::Fp4.

Definition at line 2667 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

Referenced by cps::AlgPbp::run().

virtual int cps::Lattice::FeigSolv Vector **  f_eigenv,
Float lambda,
Float chirality,
int *  valid_eig,
Float **  hsum,
EigArg eig_arg,
CnvFrmType  cnv_frm = CNV_FRM_YES
[pure virtual]
 

It the eigenvectors and eigenvalues of the fermion matrix.

Parameters:
f_eigenv The computed eigenvalues
lambda The corresponding eigenvalues
chirality eigenvector(i)^dagger gamma_5 eigenvector(i)
valid_eig 
hsum 
eig_arg 
cnv_frm Whether the lattice fields need to be converted to to a new storage order appropriate for the type of fermion action. If this is CNV_FRM_NO, then just the gauge field is converted. If this is CNV_FRM_YES, then the fields f_out and f_in are also converted: This assumes they are initially in the same order as the gauge field. Fields that are converted are restored to their original order upon exit of this method. N.B. If the fields are already in the suitable order, then specifying CNV_FRM_YES here has no effect.
Returns:
The number of eigensolver iterations.
Postcondition:
f_eigenv contains the eigenvectors.

lambda contains the eigenvalues.

Implemented in cps::Fwilson, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::AlgHmcRHMC::dynamicalApprox(), and cps::AlgEig::run().

void cps::Lattice::Ffive2four Vector four,
Vector five,
int  s_r,
int  s_l,
int  Ncb = 2
[virtual]
 

Not implemented here.

Reimplemented in cps::FdwfBase.

Definition at line 2654 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

Referenced by cps::QPropW::CG(), cps::QPropW::MeasConAxialOld(), cps::QPropW::MeasJ5qPion(), cps::AlgPbp::run(), cps::AlgPbp::runPointSource(), and cps::WspectQuark::WspectQuark().

void cps::Lattice::Ffour2five Vector five,
Vector four,
int  s_r,
int  s_l,
int  Ncb = 2
[virtual]
 

Not implemented here.

Reimplemented in cps::FdwfBase.

Definition at line 2644 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

Referenced by cps::QPropW::CG(), cps::AlgPbp::run(), cps::AlgPbp::runPointSource(), and cps::WspectQuark::WspectQuark().

virtual Float cps::Lattice::FhamiltonNode Vector phi,
Vector chi
[pure virtual]
 

Computes the pseudofermionic action on the local sublattice.

Precondition:
The equation A chi = phi needs to have been solved for chi, where A is the inverse of the fermionic matrix in the molecular dynamics hamiltonian. of the matrix in the molecular dynamics hamiltonian.
Parameters:
phi The pseudofermion field
chi The solution of A chi = phi where A is the inverse of the fermionic matrix in the molecular dynamics hamiltonian.
Returns:
The value of the pseudofermionic action on this node.

Implemented in cps::FwilsonTypes, cps::FdwfBase, cps::Fnone, and cps::FstagTypes.

Referenced by cps::AlgActionQuotient::energy(), cps::AlgActionFermion::energy(), cps::AlgActionQuotient::reweight(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

int cps::Lattice::FixGauge Float  SmallFloat,
int  MaxIterNum
 

Fixes the gauge.

Precondition:
Lattice::FixGaugeAllocate should be called prior to this. That is how the requested type of gauge fixing is communicated to this method.
Parameters:
Smallfloat The stopping criterion, determining the accuracy of the gauge fixing.
MaxIterNum The maximum number of iterations the gauge fixing algorithm is allowed before it gives up.
Returns:
The total number of iterations used. If the algorithm fails to converge within the allowed number of iterations, then the -1 times the number of iterations reached is returned (this might not be MaxIterNum, oddly enough).
Postcondition:
The required parts of the gauge field are fixed to the desired gauge.

Definition at line 956 of file fix_gauge.C.

References COLORS, Colors(), cps::FixHPlane::delta(), cps::ERR, cps::Float, cps::Verbose::Func(), GaugeField(), cps::Error::General(), cps::glb_sum(), cps::FixHPlane::iter(), cps::Error::NotImplemented(), cps::Error::Pointer(), cps::sfree(), cps::Verbose::Sfree(), cps::HyperPlane::small_enough, cps::Verbose::Smalloc(), cps::smalloc(), cps::FixHPlane::unitarize(), cps::VRB, and cps::Verbose::Warn().

Referenced by cps::AlgHQPotential::run(), and cps::AlgFixGauge::run().

void cps::Lattice::FixGaugeAllocate FixGaugeType  GaugeKind,
int  NHplanes = 0,
int *  Hplanes = 0
 

Allocates memory for the gauge fixing matrices.

If Landau gauge fixing is requested, memory is allocated for a gauge fixing matrix at each lattice site. If Coulomb gauge fixing is requested, memory is allocated for a gauge fixing matrix at each lattice site on the hyperplanes requested, if that hyperplane intersects the local lattice on this node. The matrices are initialised to unity.

Parameters:
GaugeKind The type of gauge fixing.
NHplanes The total number of the hyperplanes on which to fix the gauge. If set to zero when Coulomb gauge is requested, then treated as a request to fix all hyperplanes in the global lattice. This is ignored for Landau gauge fixing.
Hplanes A list of the positions of the hyperplanes on which to fix the gauge.along the direction orthogonal to them. This list should be in increasing order. This is ignored for Landau gauge fixing and when NHplanes is zero.

Definition at line 1131 of file fix_gauge.C.

References COLORS, Colors(), cps::ERR, cps::Verbose::Func(), cps::Error::General(), cps::Error::NotImplemented(), cps::Error::Pointer(), cps::Verbose::Smalloc(), cps::smalloc(), cps::Matrix::UnitMatrix(), and cps::VRB.

Referenced by cps::AlgRandomGauge::run(), cps::AlgHQPotential::run(), and cps::AlgFixGauge::run().

void cps::Lattice::FixGaugeFree  ) 
 

Free memory used by the gauge fixing matrices.

Postcondition:
Lattice::Lattice::FixGaugeKind will now return FIX_GAUGE_NONE.

Definition at line 1281 of file fix_gauge.C.

References cps::ERR, cps::Verbose::Func(), cps::Error::General(), cps::sfree(), cps::Verbose::Sfree(), and cps::VRB.

Referenced by cps::AlgFixGauge::free(), cps::AlgHQPotential::run(), and cps::AlgMeas::RunTask().

FixGaugeType cps::Lattice::FixGaugeKind  ) 
 

Returns the kind of gauge fixing.

Definition at line 2606 of file lattice_base.C.

References cps::FixGaugeType.

Referenced by cps::QPropW::FixSol(), cps::FermionVector::gaugeFixSink(), cps::FermionVectorTp::GaugeFixSink(), cps::FermionVectorTp::LandauGaugeFixSink(), cps::AlgRotateGauge::run(), cps::QPropW::Run(), and cps::FermionVectorTp::SetLandauGaugeMomentaSource().

Matrix ** cps::Lattice::FixGaugePtr void   ) 
 

Returns an array of pointers to the gauge fixed hyperplanes.

The array are allocated with FixGaugeAllocate.

Definition at line 2598 of file lattice_base.C.

Referenced by cps::FermionVector::gaugeFixSink(), cps::FermionVectorTp::GaugeFixSink(), cps::QuarkPropS::getQuarkPropS(), cps::FermionVectorTp::GFWallSource(), cps::FermionVectorTp::LandauGaugeFixSink(), cps::AlgRotateGauge::run(), cps::AlgRandomGauge::run(), cps::AlgHQPotential::run(), cps::FermionVectorTp::SetGFPointSource(), cps::FermionVectorTp::SetLandauGaugeMomentaSource(), and cps::WspectQuark::WspectQuark().

Float cps::Lattice::FixGaugeStopCond  ) 
 

Returns the stopping condition used.

Definition at line 2610 of file lattice_base.C.

References cps::Float.

int cps::Lattice::FmatEvlInv Vector f_out,
Vector f_in,
CgArg cg_arg,
CnvFrmType  cnv_frm = CNV_FRM_YES
[inline]
 

Reimplemented in cps::FdwfBase.

Definition at line 810 of file lattice.h.

virtual int cps::Lattice::FmatEvlInv Vector f_out,
Vector f_in,
CgArg cg_arg,
Float true_res,
CnvFrmType  cnv_frm = CNV_FRM_YES
[pure virtual]
 

The matrix inversion used in the molecular dynamics algorithms.

Solves $ M^\dagger M f_{out} = f_{in} $ for $ f_{out} $, where M is the (possibly odd-even preconditioned) fermionic matrix.

Parameters:
f_out The initial guess of solution vector.
f_in The source vector
cg_arg The solver parameters
true_res Whether or not to report the true residual. This will point to the true residual if it initially points to a non-zero value.
cnv_frm Whether the lattice fields need to be converted to to a new storage order appropriate for the type of fermion action. If this is CNV_FRM_NO, then just the gauge field is converted. If this is CNV_FRM_YES, then the fields f_out and f_in are also converted: This assumes they are initially in the same order as the gauge field. Fields that are converted are restored to their original order upon exit of this method. N.B. If the fields are already in the suitable order, then specifying CNV_FRM_YES here has no effect.
Returns:
The number of solver iterations.
Postcondition:
f_out contains the solution vector.

true_res The true residual, if this was non-zero to start with. The residual is $ |f_{in} - M^\dagger M f_{out}| / |f_{in}| $.

Implemented in cps::Fwilson, cps::FwilsonTm, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::AlgActionQuotient::energy(), cps::AlgActionFermion::energy(), cps::AlgActionQuotient::evolve(), cps::AlgActionFermion::evolve(), cps::AlgActionQuotient::heatbath(), cps::AlgActionBoson::heatbath(), cps::AlgActionQuotient::reweight(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg **  cg_arg,
CnvFrmType  cnv_frm,
MultiShiftSolveType  type,
Vector **  f_out_d
[inline]
 

Definition at line 903 of file lattice.h.

References cps::Float, and cps::MULTI.

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg **  cg_arg,
CnvFrmType  cnv_frm
[inline]
 

Definition at line 894 of file lattice.h.

References cps::Float, and cps::MULTI.

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg cg_arg,
CnvFrmType  cnv_frm,
Vector **  f_out_d
[inline]
 

Definition at line 885 of file lattice.h.

References cps::Float, and cps::MULTI.

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg **  cg_arg,
CnvFrmType  cnv_frm,
Vector **  f_out_d
[inline]
 

Definition at line 877 of file lattice.h.

References cps::Float, and cps::MULTI.

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg cg_arg,
CnvFrmType  cnv_frm,
MultiShiftSolveType  type,
Float alpha
[inline]
 

Definition at line 868 of file lattice.h.

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg **  cg_arg,
CnvFrmType  cnv_frm,
MultiShiftSolveType  type,
Float alpha
[inline]
 

Definition at line 860 of file lattice.h.

int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg cg_arg,
CnvFrmType  cnv_frm,
MultiShiftSolveType  type,
Float alpha,
Vector **  f_out_d
 

Definition at line 2954 of file lattice_base.C.

References FmatEvlMInv().

virtual int cps::Lattice::FmatEvlMInv Vector **  f_out,
Vector f_in,
Float shift,
int  Nshift,
int  isz,
CgArg **  cg_arg,
CnvFrmType  cnv_frm,
MultiShiftSolveType  type,
Float alpha,
Vector **  f_out_d
[pure virtual]
 

The multishift matrix inversion used in the RHMC molecular dynamics algorithms.

Solves $ (M^\dagger M + shift) f_{out} = f_{in} $ for $ f_{out}$ for a given number of shifts, where M is the (possibly odd-even preconditioned) fermionic matrix.

Parameters:
f_out The solution vectors.
f_in The source vector
shift The shifts of the fermion matrix.
Nshift The number of shifts
isz The smallest shift (required by MInvCG)
cg_arg The solver parameters for each shift
cnv_frm Whether the lattice fields need to be converted to to a new storage order appropriate for the type of fermion action. If this is CNV_FRM_NO, then just the gauge field is converted. If this is CNV_FRM_YES, then the fields f_out and f_in are also converted: This assumes they are initially in the same order as the gauge field. Fields that are converted are restored to their original order upon exit of this method. N.B. If the fields are already in the suitable order, then specifying CNV_FRM_YES here has no effect.
type The type of multimass inverter. If type is MULTI, then regular multishift inversion is performed with each solution stored separately. If type is SINGLE, then each solution is multiplied by an amount in parameter alpha and summed to a single solution vector.
alpha The contribution of each shifted solution to the total solution vector if type is SINGLE.
f_out_d Not implemented or ignored with Wilsonesque fermions. With staggered fermions, if this is initially non-zero and MULTI is also specified, then D fout, the solution vectors acted on with the Dirac D-slash operator, is written here.
Returns:
The number of solver iterations.
Postcondition:
f_out contains the solution vector(s).

Implemented in cps::Fwilson, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by FmatEvlMInv(), cps::AlgHmdR2::run(), and cps::AlgHmcRHMC::run().

int cps::Lattice::FmatInv Vector f_out,
Vector f_in,
CgArg cg_arg,
CnvFrmType  cnv_frm = CNV_FRM_YES,
PreserveType  prs_f_in = PRESERVE_YES
[inline]
 

Reimplemented in cps::FdwfBase.

Definition at line 975 of file lattice.h.

virtual int cps::Lattice::FmatInv Vector f_out,
Vector f_in,
CgArg cg_arg,
Float true_res,
CnvFrmType  cnv_frm = CNV_FRM_YES,
PreserveType  prs_f_in = PRESERVE_YES
[pure virtual]
 

Fermion matrix inversion.

This computes the starting guess for the solver for use in the HMD force calculations using a minimal residual chronological method. This computes the guess solution as a linear combination of a given number of the previous solutions.

Parameters:
sol The chronological guess for the solution vector.
source The source vector in the equation to be solved.
sol_old The previous solutions.
vm The previous solutions.multiplied by $ M^\dagger M $, computed as a necessary by-product.
degree The number of previous solutions.
cg_arg The solver parameters for the fermion matrix.
cnv_frm Whether the lattice fields need to be converted to to a new storage order appropriate for the type of fermion action. If this is CNV_FRM_NO, then just the gauge field is converted. If this is CNV_FRM_YES, then the vectors sol and source are also converted: This assumes they are initially in the same order as the gauge field. Fields that are converted are restored to their original order upon exit of this method. N.B. If the fields are already in the suitable order, then specifying CNV_FRM_YES here has no effect.
Returns:
The residue of this guess.
Solves A f_out = f_in for f_out, where A is the fermion matrix. The vectors must be defined on the whole lattice, not just on sites of a single parity.

Parameters:
f_out The initial guess of solution vector.
f_in The source vector
cg_arg The solver parameters for each shift
true_res Whether or not to report the true residual. The true residual will be written here if this is non-zero.
cnv_frm Whether the lattice fields need to be converted to to a new storage order appropriate for the type of fermion action. If this is CNV_FRM_NO, then just the gauge field is converted. If this is CNV_FRM_YES, then the fields f_out and f_in are also converted: This assumes they are initially in the same order as the gauge field. Fields that are converted are restored to their original order upon exit of this method. N.B. If the fields are already in the suitable order, then specifying CNV_FRM_YES here has no effect.
prs_f_in Whether or not the source vector is allowed to be overwritten, thereby saving memory. For staggered fermions f_in is preserved regardless of the value of prs_f_in.
Returns:
The number of solver iterations.
Postcondition:
f_out contains the solution vector.

true_res contains the true residual, if it was non-zero to start with. The residual is |f_in - A f_out| / |f_in|

Implemented in cps::Fwilson, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::QPropW::CG(), cps::QuarkPropS::getQuarkPropS(), cps::AlgPbp::run(), cps::AlgDens::run(), cps::AlgPbp::runPointSource(), and cps::WspectQuark::WspectQuark().

virtual void cps::Lattice::FminResExt Vector sol,
Vector source,
Vector **  sol_old,
Vector **  vm,
int  degree,
CgArg cg_arg,
CnvFrmType  cnv_frm
[pure virtual]
 

Implemented in cps::Fwilson, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::AlgActionQuotient::evolve(), cps::AlgActionFermion::evolve(), and cps::AlgHmcQPQ::run().

virtual void cps::Lattice::Freflex Vector out,
Vector in
[inline, virtual]
 

Not implemented here.

Reimplemented in cps::FdwfBase.

Definition at line 621 of file lattice.h.

Referenced by cps::DiracOpDwf::MatHerm().

virtual int cps::Lattice::FsiteOffset const int *  x  )  const [pure virtual]
 

Gets the lattice site index for the canonical order.

When the fermion field is stored in canonical order, defined by StrOrdType = CANONICAL, this method converts a sites cartesian coordinates into its lattice site index.

Parameters:
x The cartesian lattice site coordinates.
Returns:
The lattice site index.

Implemented in cps::FwilsonTypes, cps::FdwfBase, cps::Fnone, and cps::FstagTypes.

Referenced by cps::pt_1vec(), cps::pt_mat(), cps::pt_shift_field(), cps::pt_shift_field_vec(), cps::pt_shift_link(), and cps::pt_vvpd().

virtual int cps::Lattice::FsiteOffsetChkb const int *  x  )  const [pure virtual]
 

Gets the lattice site index for the odd-even (checkerboard) order.

When a field is stored in an odd-even (checkerboard) order, this method converts a site's cartesian coordinates into its lattice site index.

Parameters:
x The cartesian lattice site coordinates.
Returns:
The lattice site index.

Implemented in cps::FwilsonTypes, cps::FdwfBase, cps::Fnone, and cps::FstagTypes.

Referenced by cps::pt_1vec_cb_norm(), cps::pt_1vec_cb_pad(), cps::pt_mat_norm(), and cps::HadronPropS::X_OFFSET().

virtual int cps::Lattice::FsiteSize  )  const [pure virtual]
 

Gets the size of a fermion field per 4-dim. lattice site.

Returns:
The total number of all fermionic field components, i.e. the number of floating point numbers, at each site of the 4-dim. lattice.

Implemented in cps::FwilsonTypes, cps::Fwilson, cps::FdwfBase, cps::Fnone, and cps::FstagTypes.

Referenced by cps::AlgDens::AlgDens(), cps::AlgEig::AlgEig(), cps::AlgHmcPhi::AlgHmcPhi(), cps::AlgHmcQPQ::AlgHmcQPQ(), cps::AlgHmdR::AlgHmdR(), cps::AlgPbp::AlgPbp(), cps::DiracOpWilsonTypes::BiCGstab(), cps::DiracOpClover::CalcHmdForceVecs(), cps::QPropW::CG(), cps::DiracOpAsqtad::DiracOpAsqtad(), cps::DiracOpP4::DiracOpP4(), cps::DiracOpStag::DiracOpStag(), cps::DiracOp::InvCg(), cps::DiracOpWilson::Mat(), cps::DiracOpDwf::Mat(), cps::DiracOpWilson::MatDag(), cps::DiracOpDwf::MatDag(), cps::DiracOpClover::MatDagMatDbg(), cps::DiracOpClover::MatDagOrNotDbg(), cps::DiracOpClover::MatEvlInv(), cps::DiracOpWilson::MatHerm(), cps::DiracOpDwf::MatHerm(), cps::DiracOpClover::MatHerm(), cps::DiracOpWilson::MatInv(), cps::DiracOpDwf::MatInv(), cps::DiracOpClover::MatInv(), cps::DiracOpClover::MatPcDagMatPc(), cps::DiracOpClover::MatPcDagOrNot(), cps::DiracOp::MinResExt(), cps::DiracOp::MInvCG(), cps::pt_vvpd(), cps::QPropWGFLfuncSrc::QPropWGFLfuncSrc(), RandGaussVector(), cps::DiracOpWilsonTypes::RitzLatSize(), cps::DiracOpStagTypes::RitzLatSize(), cps::AlgPbp::run(), cps::AlgHmcRHMC::run(), cps::AlgEig::run(), and cps::AlgDens::run().

int cps::Lattice::FstagType  )  [inline]
 

Definition at line 722 of file lattice.h.

References cps::F_CLASS_ASQTAD, and cps::F_CLASS_STAG.

Referenced by cps::AlgStagMeson::AlgStagMeson(), cps::AlgStagMomMeson::AlgStagMomMeson(), cps::AlgStagNonLocal::AlgStagNonLocal(), cps::AlgStagNucleon::AlgStagNucleon(), cps::AlgStagQuark::AlgStagQuark(), and RandGaussVector().

int cps::Lattice::FwilsonType  )  [inline]
 

Definition at line 729 of file lattice.h.

References cps::F_CLASS_CLOVER, cps::F_CLASS_DWF, and cps::F_CLASS_WILSON.

virtual void cps::Lattice::GactionGradient Matrix grad,
int *  x,
int  mu
[pure virtual]
 

Calculates the partial derivative of the gauge action w.r.t. the link U_mu(x).

Parameters:
grad The computed gradient.
x The coordinates of the lattice site.
mu The direction of the link.

Implemented in cps::Gnone, cps::Gwilson, cps::GpowerPlaq, cps::GimprRect, cps::GtadpoleRect, cps::GpowerRect, and cps::GimprOLSym.

void cps::Lattice::Gamma5 Vector v_out,
Vector v_in,
int  num_sites
[virtual]
 

Not implemented here.

Reimplemented in cps::FwilsonTypes.

Definition at line 2627 of file lattice_base.C.

References cps::ERR, and cps::Error::NotImplemented().

Referenced by cps::QPropW::MeasConAxialOld(), cps::AlgPbp::run(), cps::AlgPbp::runPointSource(), and cps::WspectQuark::WspectQuark().

void cps::Lattice::GaugeField Matrix u  ) 
 

Copies an array into the gauge configuration.

Copies the array pointed to by u into the gauge configuration.

Parameters:
u The array to be copied from.
Postcondition:
The gauge configuration ia a copy of the array u

Definition at line 363 of file lattice_base.C.

References cps::Verbose::Func(), cps::GJP, GsiteSize(), cps::IFloat, cps::moveMem(), smeared, cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Matrix * cps::Lattice::GaugeField  )  const
 

Returns the pointer to the gauge field configuration.

Definition at line 347 of file lattice_base.C.

Referenced by cps::asqtad_dirac_init(), Convert(), cps::DiracOp::DiracOp(), cps::DiracOpP4::DiracOpP4(), cps::QPropW::DoLinkSmear(), EvolveGfield(), cps::FwilsonTm::EvolveMomFforce(), cps::Fwilson::EvolveMomFforce(), cps::FdwfBase::EvolveMomFforce(), cps::Fclover::EvolveMomFforce(), FixGauge(), cps::Fp4::Fp4(), cps::Fstag::Fstag(), cps::FermionVectorTp::GaussianSmearVector(), cps::DiracOpClover::GetLink(), cps::Gwilson::GforceSite(), cps::GtadpoleRect::GforceSite(), cps::GpowerRect::GforceSite(), cps::GpowerPlaq::GforceSite(), cps::GimprRect::GforceSite(), cps::GimprOLSym::GforceSite(), cps::Nuc3ptCons::InsertOp(), cps::QPropW::MeasConAxialOld(), MltFloatImpl(), cps::AlgGheatBath::NoCheckerBoardRun(), cps::AlgGheatBath::NodeCheckerBoardRun(), cps::ParTrans::ParTrans(), Plaq(), cps::GpowerRect::PowerRectStaple(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::pt_1vec(), cps::pt_1vec_cb(), cps::pt_mat(), cps::pt_mat_cb(), cps::pt_shift_link(), cps::qloadsave_gauge(), cps::ReadLatticeParallel::read(), ReTrPlaq(), Reunitarize(), cps::AlgWline::run(), cps::WspectFuzzing::run(), cps::AlgSmear2::run(), cps::AlgOlegSmear::run(), cps::AlgSmear::run(), cps::AlgRotateGauge::run(), cps::AlgOverRelax::run(), cps::AlgNoise::run(), cps::AlgHmc::run(), cps::AlgInst::run(), cps::AlgHQPotential::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), cps::AlgGheatBath::run(), cps::LatticeContainer::Set(), SetGfieldOrd(), Staple(), cps::twist_links(), cps::QPropW::UndoLinkSmear(), and cps::WriteLatticeParallel::write().

virtual GclassType cps::Lattice::Gclass  )  [pure virtual]
 

Returns the type of gauge action.

Implemented in cps::Gnone, cps::Gwilson, cps::GpowerPlaq, cps::GimprRect, cps::GtadpoleRect, cps::GpowerRect, and cps::GimprOLSym.

Referenced by cps::AlgGheatBath::NoCheckerBoardRun(), and cps::AlgGheatBath::run().

const Matrix * cps::Lattice::GetBufferedLink const int *  x,
int  mu
 

Gets a link from the buffer.

Looks for the link U_mu(x) in the buffer. If it is not there it is brought in.

Parameters:
x The lattice coordinates of the link.
mu The direction index of the link.
Returns:
The link U_mu(x).

Definition at line 374 of file link_buffer.C.

References cps::LinkBuffer::GetBufferedLink(), GetLink(), GsiteOffset(), IsOnNode(), link_buffer, and LinkBufferIsEnabled().

Referenced by cps::Nuc3ptStru::InsertOp(), and PathOrdProdPlus().

const Matrix * cps::Lattice::GetLink const int *  site,
int  dir
const
 

Gets the gauge link U_mu(x).

Get a link at specified coordinates and direction, whether on node or off node. The coordinates are defined relative to the local lattice origin.

Parameters:
site The lattice coordinates[x,y,z,t] which could be out of range, i.e.located off-node.
dir The direction 0, 1, 2 or 3 for U_x, U_y, U_z and U_t respectively.
Returns:
a pointer to the link. If off-node, it points to a block of static memory. Be careful to use it!

Definition at line 486 of file lattice_base.C.

References cps::getMinusData(), cps::getPlusData(), GsiteOffset(), cps::IFloat, MATRIX_SIZE, and node_sites.

Referenced by GetBufferedLink(), cps::LinkBuffer::GetBufferedLink(), cps::GpowerRect::PowerRectStaple(), RectStaple(), and ReTrRect().

const Matrix * cps::Lattice::GetLinkOld Matrix g_offset,
const int *  x,
int  dir,
int  mu
const
 

Gets the gauge link U_mu(x+dir).

Definition at line 542 of file lattice_base.C.

References g_dir_offset, cps::getPlusData(), cps::IFloat, MATRIX_SIZE, and node_sites.

Referenced by Plaq(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), ReTrPlaq(), and Staple().

virtual Float cps::Lattice::GhamiltonNode  )  [pure virtual]
 

Computes the pure gauge action on the local sublattice.

Returns:
The value of the pure gauge action on this node.

Implemented in cps::Gnone, cps::Gwilson, cps::GpowerPlaq, cps::GimprRect, cps::GtadpoleRect, cps::GpowerRect, and cps::GimprOLSym.

Referenced by cps::AlgActionGauge::energy(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

int cps::Lattice::GsiteOffset const int *  x  )  const [inline]
 

Gets the array index of a gauge link.

Specifically, the internal array index of the first of the four gauge field links at lattice site x for the canonical storage order.

Parameters:
x The lattice site coordinates.
Returns:
The array index.

Definition at line 252 of file lattice.h.

Referenced by cps::ParTrans::BondCond(), cps::Fstag::EvolveMomFforce(), cps::Gwilson::EvolveMomGforce(), cps::GtadpoleRect::EvolveMomGforce(), cps::GpowerRect::EvolveMomGforce(), cps::GpowerPlaq::EvolveMomGforce(), cps::GimprRect::EvolveMomGforce(), cps::GimprOLSym::EvolveMomGforce(), GetBufferedLink(), GetLink(), cps::Gwilson::GforceSite(), cps::GtadpoleRect::GforceSite(), cps::GpowerRect::GforceSite(), cps::GpowerPlaq::GforceSite(), cps::GimprRect::GforceSite(), cps::GimprOLSym::GforceSite(), cps::AlgGheatBath::NoCheckerBoardRun(), cps::AlgGheatBath::NodeCheckerBoardRun(), PathOrdProd(), Plaq(), cps::GpowerRect::PowerRectStaple(), cps::GpowerRect::PowerStaple(), cps::GpowerPlaq::PowerStaple(), cps::pt_1vec(), cps::pt_1vec_cb_norm(), cps::pt_1vec_cb_pad(), cps::pt_mat(), cps::pt_mat_norm(), cps::pt_shift_link(), cps::qloadsave_gauge(), ReTrPlaq(), cps::AlgWline::run(), cps::AlgOverRelax::run(), cps::AlgNoise::run(), cps::AlgInst::run(), cps::AlgGheatBath::run(), Staple(), and cps::twist_links().

int cps::Lattice::GsiteSize void   ) 
 

Gets the number of gauge field components per lattice site.

Returns:
The number of components (real numbers) of the gauge field at each lattice site, i.e. taking into account the number of complex, colour, and lattice direction components.

Definition at line 453 of file lattice_base.C.

References Colors().

Referenced by cps::AlgHamiltonian::AlgHamiltonian(), cps::AlgHmc::AlgHmc(), cps::AlgHmd::AlgHmd(), CompareGaugeField(), Convert(), CopyGaugeField(), cps::AlgActionQuotient::evolve(), GaugeField(), GsoCheck(), Lattice(), cps::Fwilson::RHMC_EvolveMomFforce(), cps::Fstag::RHMC_EvolveMomFforce(), cps::Fp4::RHMC_EvolveMomFforce(), cps::FdwfBase::RHMC_EvolveMomFforce(), cps::Fasqtad::RHMC_EvolveMomFforce(), and SetGfieldDisOrd().

void cps::Lattice::GsoCheck void   ) 
 

Checks that the gauge field is identical on 5th dimension local lattice slices.

Checks that the gauge field is identical (using a checksum and the average plaquette) on each slice of the lattice perpendicular to the 5th direction and local in the 5th direction. Obviously this is always the case when the entire 5th direction is local. If any of the node slices fail to match the program exits with an error.

Definition at line 2751 of file lattice_base.C.

References cps::ERR, cps::Float, cps::Verbose::Flow(), cps::Verbose::Func(), cps::Error::General(), cps::getMinusData(), cps::GJP, cps::glb_sum_five(), GsiteSize(), cps::IFloat, cps::MPISCU::printf(), cps::GlobalJobParameter::SnodeCoor(), cps::GlobalJobParameter::Snodes(), SumReTrPlaqNode(), cps::GlobalJobParameter::TnodeCoor(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XnodeCoor(), cps::GlobalJobParameter::YnodeCoor(), and cps::GlobalJobParameter::ZnodeCoor().

Referenced by Lattice(), cps::AlgGheatBath::NoCheckerBoardRun(), cps::AlgGheatBath::NodeCheckerBoardRun(), cps::AlgHmc::run(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), cps::AlgGheatBath::run(), and ~Lattice().

int cps::Lattice::GupdCnt int  set_val  ) 
 

Sets the gauge field updates counter.

Sets the the initial value of the counter of the number of gauge field updates that have been performed.

Parameters:
set_val The inital value for the counter.
Returns:
The inital value for the counter.

Definition at line 2543 of file lattice_base.C.

int cps::Lattice::GupdCnt void   ) 
 

Reads the gauge field updates counter.

Returns:
The number of gauge field updates that have been performed.

Definition at line 2532 of file lattice_base.C.

Referenced by cps::AlgHmc::run(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

int cps::Lattice::GupdCntInc int  inc_val = 1  ) 
 

Increments the gauge field updates counter.

Parameters:
inc_val The number by which to inrease the gauge field update counter.
Returns:
The new value of the gauge field update counter.

Definition at line 2553 of file lattice_base.C.

Referenced by cps::AlgGheatBath::NoCheckerBoardRun(), cps::AlgGheatBath::NodeCheckerBoardRun(), cps::AlgOverRelax::run(), cps::AlgHmc::run(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), and cps::AlgGheatBath::run().

int cps::Lattice::IsOnNode const int *  x  ) 
 

Checks if a lattice site local to this node.

Parameters:
x The lattice site coordinates
Returns:
1 if x is on this node, 0 otherwise.

Definition at line 397 of file link_buffer.C.

References node_sites.

Referenced by GetBufferedLink().

int cps::Lattice::LinkBufferIsEnabled  )  [inline]
 

Returns true if there is a buffer for the links, false otherwise.

Definition at line 186 of file lattice.h.

Referenced by ClearAllBufferedLink(), ClearBufferedLink(), and GetBufferedLink().

Float cps::Lattice::MdTime Float  set_val  ) 
 

Sets the value of the molecular dynamics time counter.

Sets the number of timesteps completed so far in a molecular dynamics trajectory.

Definition at line 2574 of file lattice_base.C.

References cps::Float.

Float cps::Lattice::MdTime void   ) 
 

The molecular dynamics time counter.

Returns:
The number of timesteps completed so far in a molecular dynamics trajectory.

Definition at line 2564 of file lattice_base.C.

References cps::Float.

Referenced by cps::AlgMomentum::evolve(), cps::AlgMomentum::heatbath(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

Float cps::Lattice::MdTimeInc Float  inc_val = 0.5  ) 
 

Increments the value of the molecular dynamics time counter.

Increments the number of timesteps completed so far in a molecular dynamics trajectory.

Definition at line 2585 of file lattice_base.C.

References cps::Float.

Referenced by cps::AlgMomentum::evolve(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

int cps::Lattice::MetropolisAccept Float  delta_h  ) 
 

Metropolis algorithm decision.

Parameters:
delta_h The energy difference.
Returns:
True (1) if accepted, false (0) otherwise.
If delta_h is greater than or equal to 20 the routine always rejects. (Included for backwards compatability)

Definition at line 2298 of file lattice_base.C.

References cps::Float, and MetropolisAccept().

int cps::Lattice::MetropolisAccept Float  delta_h,
Float accept
 

Metropolis algorithm decision.

Parameters:
delta_h The energy difference.
accept The acceptance probability
Returns:
True (1) if accepted, false (0) otherwise.
If delta_h is greater than or equal to 20 the routine always rejects.
Postcondition:
The acceptance probability is written to accept.

Definition at line 2226 of file lattice_base.C.

References cps::LatRanGen::AssignGenerator(), cps::Float, cps::Verbose::Flow(), cps::Verbose::Func(), cps::GJP, cps::glb_sum(), cps::IFloat, cps::LRG, cps::LatRanGen::SetInterval(), cps::GlobalJobParameter::Snodes(), SoCheck(), cps::GlobalJobParameter::TnodeCoor(), cps::LatRanGen::Urand(), cps::VRB, cps::GlobalJobParameter::XnodeCoor(), cps::GlobalJobParameter::YnodeCoor(), and cps::GlobalJobParameter::ZnodeCoor().

Referenced by MetropolisAccept(), cps::AlgHmc::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

void cps::Lattice::MltFloat Float  factor,
int  dir
[inline]
 

Multiplies all gauge links with direction dir by a real factor.

Parameters:
factor The real scale factor.
dir The direction index of the links to be scaled; dir = 0, 1, 2 or 3 for direction X, Y, Z and T respectively (all kinds of storage order are handled correctly).
Postcondition:
The gauge field links in direction dir are scaled.

Definition at line 442 of file lattice.h.

References cps::dir.

Referenced by cps::DiracOp::DiracOp(), cps::ParTrans::ParTrans(), Reunitarize(), cps::DiracOp::~DiracOp(), ~Lattice(), and cps::ParTrans::~ParTrans().

void cps::Lattice::MltFloatImpl Float  factor,
int  dir
[protected]
 

Multiplies all gauge links in direction dir by a real factor.

Parameters:
factor The real scale factor.
dir The direction index of the links to be scaled; dir = 0, 1, 2 or 3 for direction X, Y, Z and T respectively (all kinds of storage order are handled correctly).
Postcondition:
The gauge field links in direction dir are scaled.

Definition at line 1983 of file lattice_base.C.

References cps::dir, GaugeField(), cps::GJP, cps::IFloat, MATRIX_SIZE, cps::vecTimesEquFloat(), and cps::GlobalJobParameter::VolNodeSites().

Float cps::Lattice::MomHamiltonNode Matrix momentum  ) 
 

The kinetic energy term of the canonical Hamiltonian on the local lattice.

The local kinetic energy is

\[ \sum_{x, \mu} \frac{1}{2} Tr H_\mu(x)^2 \]

where the H is the conjugate momentum field and the sum is over all directions $ \mu $ and all local lattice sites x.

Parameters:
momentum The antihermitian momentum field iH.
Returns:
the local kinetic energy.

Definition at line 2102 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::GJP, cps::Matrix::NegHalfTrSquare(), cps::GlobalJobParameter::TnodeSites(), cps::VRB, cps::GlobalJobParameter::XnodeSites(), cps::GlobalJobParameter::YnodeSites(), and cps::GlobalJobParameter::ZnodeSites().

Referenced by cps::AlgMomentum::energy(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

void cps::Lattice::PathOrdProd Matrix mat,
const int *  x,
const int *  dirs,
int  n
 

Computes the product of links along a path.

Given the starting site x, the directions of each step on the path and the number of steps. calculate the path ordered product of all the links along the path and add it to the given matrix m. Each direction is one of 0, 1, 2, 3, 4, 5, 6 or 7} corresponding to the directions X, Y, Z, T, -X, -Y, -Z and -T respectively.

The idea is whenever the path hits a boundary the current partial result is passed to the next processer on the path, which will calculate the part of the product that is on this node and pass on, so the result ends up on the last processor where the path stops.

Parameters:
m The product along the path.
x The coordinates of the starting point of the path
dirs The list of directions.
n The number of links in the path.

Definition at line 797 of file link_buffer.C.

References cps::Matrix::Dagger(), cps::getMinusData(), cps::getPlusData(), GsiteOffset(), cps::IFloat, MATRIX_SIZE, cps::mDotMEqual(), cps::moveMem(), node_sites, and SWAP.

Referenced by cps::AlgPot::run().

void cps::Lattice::PathOrdProdPlus Matrix mat,
const int *  x,
const int *  dirs,
int  n
 

Computes the product of links along a path and adds it to a matrix.

Given the starting site x, the directions of each step on the path and the number of steps. calculate the path ordered product of all the links along the path and add it to the given matrix m. Each direction is one of 0, 1, 2, 3, 4, 5, 6 or 7} corresponding to the directions X, Y, Z, T, -X, -Y, -Z and -T respectively.

Parameters:
m The initial matrix.
x The coordinates of the starting point of the path
dirs The list of directions.
n The number of links in the path.
Postcondition:
The product along the path is added to m.

Definition at line 706 of file link_buffer.C.

References cps::Matrix::Dagger(), GetBufferedLink(), cps::IFloat, cps::mat1, MATRIX_SIZE, cps::mDotMEqual(), cps::mDotMPlus(), cps::moveMem(), cps::result1_mp, and cps::result_mp.

Referenced by BufferedChairStaple(), BufferedCubeStaple(), BufferedRectStaple(), BufferedStaple(), cps::CloverLeaf(), cps::CloverLeaf1x3(), cps::CloverLeaf2x2(), cps::CloverLeaf3x3(), cps::CloverLeafRect(), cps::five_staple(), cps::Nuc3ptStru::InsertOp(), cps::lepage_staple(), ReTrLoop(), cps::AlgPot2::run(), cps::seven_staple(), cps::three_staple(), and cps::three_staple2().

void cps::Lattice::Plaq Matrix plaq,
int *  x,
int  mu,
int  nu
const
 

Computes a plaquette.

The plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

Parameters:
plaq The computed plaquette.
x the coordinates of the lattice site at the start of the plaquette
mu The first plaquette direction.
nu The second plaquette direction; should be different from mu.

Definition at line 1099 of file lattice_base.C.

References cps::CBUF_MODE2, cps::CBUF_MODE4, cps::Matrix::Dagger(), GaugeField(), GetLinkOld(), GsiteOffset(), cps::IFloat, MATRIX_SIZE, cps::mDotMEqual(), cps::moveMem(), and cps::setCbufCntrlReg().

void cps::Lattice::RandGaussAntiHermMatrix Matrix mat,
Float  sigma2
 

A random gaussian anti-Hermitian matrix field.

Creates a field of antihermitian 3x3 complex matrices with each complex element drawn at random from a gaussian distribution with zero mean. Hence the matrices are distributed according to

exp[- Tr(mat^2)/(2 sigma2)]

Parameters:
mat The field.
sigma2 The variance of the gaussian distribution.

Definition at line 2320 of file lattice_base.C.

References cps::Matrix::AntiHermMatrix(), cps::LatRanGen::AssignGenerator(), cps::FOUR_D, cps::Verbose::Func(), cps::GJP, cps::LatRanGen::Grand(), cps::IFloat, cps::LRG, cps::p(), cps::LatRanGen::SetSigma(), cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Referenced by cps::AlgMomentum::heatbath(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

void cps::Lattice::RandGaussVector Vector frm,
Float  sigma2,
int  num_chkbds,
StrOrdType  str,
FermionFieldDimension  frm_dim = FIVE_D
 

Parameters:
frm A vector.
sigma2 The variance of the gaussian distribution from which the vector elements will be drawn.
num_chkbds This should be set to 2 if the field is defined on all lattice sites in canonical order or 1 if the field is defined on lattice sites of a single parity.
frm_dim This should be set to FOUR_D if the lattice is 4-dimensional. The default is FIVE_D, i.e. a 5-dimensional lattice for domain-wall fermions.
Postcondition:
The real and imaginary parts of each element of this vector are drawn at random from a gaussian distribution with mean 0 and variance sigma2.

Definition at line 2405 of file lattice_base.C.

References cps::LatRanGen::AssignGenerator(), Colors(), Fclass(), cps::FOUR_D, FsiteSize(), cps::Verbose::Func(), cps::GJP, cps::glb_sum_five(), cps::LatRanGen::Grand(), cps::IFloat, cps::k, cps::LRG, cps::MPISCU::printf(), cps::LatRanGen::SetSigma(), cps::GlobalJobParameter::SnodeSites(), SpinComponents(), cps::GlobalJobParameter::TnodeSites(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XnodeSites(), cps::GlobalJobParameter::YnodeSites(), and cps::GlobalJobParameter::ZnodeSites().

void cps::Lattice::RandGaussVector Vector vect,
Float  sigma,
int  num_chckbds,
FermionFieldDimension  frm_field_dim = FIVE_D
 

Creates a random gaussian spin-colour field.

Definition at line 2381 of file lattice_base.C.

References cps::CANONICAL, FstagType(), RandGaussVector(), and cps::STAG.

void cps::Lattice::RandGaussVector Vector frm,
Float  sigma2,
FermionFieldDimension  frm_dim
 

Creates a random gaussian spin-colour field.

The field is defined on all lattice sites.

Parameters:
frm A vector.
sigma2 The variance of the gaussian distribution from which the vector elements will be drawn.
frm_dim This should be set to FOUR_D if the lattice is 4-dimensional. The default is FIVE_D, i.e. a 5-dimensional lattice for domain-wall fermions.
Postcondition:
The real and imaginary parts of each element of this vector are drawn at random from a gaussian distribution with mean 0 and variance sigma2.

Definition at line 2360 of file lattice_base.C.

References RandGaussVector().

void cps::Lattice::RandGaussVector Vector frm,
Float  sigma2
 

Creates a random gaussian spin-colour field.

The field is defined on all sites of a 5-dimensional lattice for domain-wall fermions.

Parameters:
frm A vector.
sigma2 The variance of the gaussian distribution from which the vector elements will be drawn.
Postcondition:
The real and imaginary parts of each element of this vector are drawn at random from a gaussian distribution with mean 0 and variance sigma2.

Definition at line 2376 of file lattice_base.C.

References cps::CANONICAL, and cps::FIVE_D.

Referenced by cps::AlgHmcRHMC::dynamicalApprox(), cps::AlgActionQuotient::heatbath(), cps::AlgActionFermion::heatbath(), cps::AlgActionBoson::heatbath(), RandGaussVector(), cps::AlgActionQuotient::reweight(), cps::AlgPbp::run(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), cps::AlgEig::run(), and cps::AlgDens::run().

void cps::Lattice::RectStaple Matrix rect,
int *  x,
int  mu
 

Calculates the rectangle staple sum around a link.

The 5-link rectangle staple sum around the link $ U_\mu(x) $ is:

\[ \sum_{\nu \neq \mu}\left[\right. U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

\[ + U_\mu(x+\mu) U^\dagger_\nu(x+2\mu-\nu) U^\dagger_\mu(x+\mu-\nu) U^\dagger_\mu(x-\nu) U_\nu(x-\nu) \]

\[ + U_\nu(x+\mu) U^\dagger_\mu(x+\nu) U^\dagger_\mu(x-\mu+\nu) U^\dagger_\nu(x-\mu) U_\mu(x-\mu) \]

\[ + U^\dagger_\nu(x+\mu-\nu) U^\dagger_\mu(x-\nu) U^\dagger_\mu(x-\mu-\nu) U_\nu(x-\mu-\nu) U_\mu(x-\mu) \]

\[ + U_\nu(x+\mu) U_\nu(x+\mu+\nu) U^\dagger_\mu(x+2\nu) U^\dagger_\nu(x+\nu) U^\dagger_\nu(x) \]

\[ + U^\dagger_\nu(x+\mu-\nu) U^\dagger_\nu(x+\mu-2\nu) U^\dagger_\mu(x-2\nu) U_\nu(x-2\nu) U_\nu(x-\nu) \left.\right] \]

Parameters:
x The coordinates of the lattice site
mu The link direction
rect The computed staple sum.

Definition at line 719 of file lattice_base.C.

References cps::CBUF_MODE4, cps::Matrix::Dagger(), GetLink(), cps::IFloat, MATRIX_SIZE, cps::mDotMEqual(), cps::mDotMPlus(), cps::moveMem(), cps::setCbufCntrlReg(), and cps::Matrix::ZeroMatrix().

Referenced by cps::GtadpoleRect::GactionGradient(), cps::GimprRect::GactionGradient(), cps::GtadpoleRect::GforceSite(), and cps::GimprRect::GforceSite().

void cps::Lattice::RectStaple1 Matrix stap,
int *  x,
int  mu
 

Appears not to be implemented.

Float cps::Lattice::ReTrLoop const int *  x,
const int *  dir,
int  length
 

Computes the real trace of the product of links along a path.

Given the starting site x, the directions of each step on the path and the number of steps. calculate the path ordered product of all the links along the path and take the real part of the trace. Each direction is one of 0, 1, 2, 3, 4, 5, 6 or 7} corresponding to the directions X, Y, Z, T, -X, -Y, -Z and -T respectively.

Parameters:
x The coordinates of the starting point of the path
dir The list of directions.
length The number of links in the path.
Returns:
The real part of the trace of the product along the path.
N.B. The user is responsible for defining directions that close the loop.

Definition at line 1456 of file lattice_base.C.

References cps::CBUF_MODE2, cps::CBUF_MODE4, cps::dir, cps::Float, cps::Verbose::Func(), PathOrdProdPlus(), cps::Matrix::ReTr(), cps::setCbufCntrlReg(), cps::VRB, and cps::Matrix::ZeroMatrix().

Referenced by SumReTrCubeNode().

Float cps::Lattice::ReTrPlaq int *  x,
int  mu,
int  nu
const
 

Calculates the real part of the trace of a plaquette.

The plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

Parameters:
x the coordinates of the lattice site at the start of the plaquette
mu The first plaquette direction
nu The second plaquette direction; should be different from mu.
Returns:
The real part of the trace of the plaquette.

Definition at line 1152 of file lattice_base.C.

References cps::CBUF_MODE2, cps::CBUF_MODE4, cps::Matrix::Dagger(), cps::Float, GaugeField(), GetLinkOld(), GsiteOffset(), cps::IFloat, MATRIX_SIZE, cps::mDotMEqual(), cps::moveMem(), cps::Matrix::ReTr(), and cps::setCbufCntrlReg().

Referenced by AveReTrPlaqNodeNoXi(), AveReTrPlaqNodeXi(), cps::GpowerRect::PowerPlaq(), cps::GpowerPlaq::PowerPlaq(), cps::AlgPlaq::run(), cps::AlgEqState::run(), and SumReTrPlaqNode().

Float cps::Lattice::ReTrRect int *  x,
int  mu,
int  nu
const
 

Calculates the real part of the trace of a 6-link rectangle.

The rectangle at site x in the $ \mu-\nu $ plane with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

Parameters:
x the coordinates of the lattice site at the start of the rectangle
mu The first rectangle direction.
nu The second rectangle direction; should be different from mu.
Returns:
The computed rectangle

Definition at line 1284 of file lattice_base.C.

References cps::CBUF_MODE4, cps::Matrix::Dagger(), cps::ERR, cps::Float, cps::Error::General(), GetLink(), cps::IFloat, cps::mDotMEqual(), cps::Matrix::ReTr(), and cps::setCbufCntrlReg().

Referenced by AveReTrRectNodeNoXi(), AveReTrRectNodeXi1(), AveReTrRectNodeXi2(), cps::GpowerRect::PowerRect(), cps::AlgRect::run(), and SumReTrRectNode().

void cps::Lattice::Reunitarize Float dev,
Float max_diff
 

Test the gauge field for unitarity violation and reunitarize it.

Parameters:
dev 
max_diff 
Postcondition:
The gauge field is reunitarised.

The (averaged) L-2 norm of the resulting change in the gauge field,

\[ \surd\{ \sum_i [ (U(i) - V(i))^2 ] / (Vol\times 4\times 18) \} \]

where U and V are the gauge field before and after reunitarization, the index i runs over all components (link direction, local lattice site and colour indices) of the gauge field. and Vol is the local lattice volume, is assigned to dev.

The L-infinity norm of the resulting change in the gauge field,

\[ \max_i( |U(i) - V(i)| ) \]

is assigned to max_diff.

Definition at line 2172 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), GaugeField(), cps::GJP, MltFloat(), smeared, cps::Matrix::Unitarize(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XiBare(), and cps::GlobalJobParameter::XiDir().

void cps::Lattice::Reunitarize void   ) 
 

Re-unitarize the gauge field configuration.

Postcondition:
The gauge field is reunitarised.

Definition at line 2126 of file lattice_base.C.

References cps::Verbose::Func(), GaugeField(), cps::GJP, MltFloat(), smeared, cps::Matrix::Unitarize(), cps::GlobalJobParameter::VolNodeSites(), cps::VRB, cps::GlobalJobParameter::XiBare(), and cps::GlobalJobParameter::XiDir().

Referenced by Lattice(), cps::AlgGheatBath::NoCheckerBoardRun(), cps::AlgGheatBath::NodeCheckerBoardRun(), cps::AlgOverRelax::run(), cps::AlgHmc::run(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), cps::AlgHmcPhi::run(), cps::AlgGheatBath::run(), and SetGfieldDisOrd().

virtual ForceArg cps::Lattice::RHMC_EvolveMomFforce Matrix mom,
Vector **  sol,
int  degree,
int  isz,
Float alpha,
Float  mass,
Float  dt,
Vector **  sol_d,
ForceMeasure  measure
[pure virtual]
 

Implemented in cps::Fwilson, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Referenced by cps::AlgHmdR2::run(), and cps::AlgHmcRHMC::run().

void cps::Lattice::SetGfieldDisOrd  ) 
 

Creates a random (disordered) gauge field.

Definition at line 2503 of file lattice_base.C.

References cps::LatRanGen::AssignGenerator(), cps::FOUR_D, cps::Verbose::Func(), cps::GJP, GsiteSize(), cps::IFloat, cps::k, cps::LRG, Reunitarize(), cps::LatRanGen::SetInterval(), smeared, cps::LatRanGen::Urand(), cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Referenced by Lattice().

void cps::Lattice::SetGfieldOrd  ) 
 

Creates a unit gauge field.

Definition at line 2482 of file lattice_base.C.

References cps::Verbose::Func(), GaugeField(), cps::GJP, cps::Matrix::UnitMatrix(), cps::GlobalJobParameter::VolNodeSites(), and cps::VRB.

Referenced by Lattice(), and cps::AlgInst::run().

Float cps::Lattice::SetPhi Vector phi,
Vector frm1,
Vector frm2,
Float  mass
[inline]
 

Definition at line 1027 of file lattice.h.

References cps::DAG_YES, and cps::Float.

virtual Float cps::Lattice::SetPhi Vector phi,
Vector frm1,
Vector frm2,
Float  mass,
DagType  dag
[pure virtual]
 

Initialises the pseudofermion field.

The heatbath initialisation of the pseudofermion field is done by setting $ \phi = M^\dagger \eta $ where $ \eta $ is a zero mean, unit variance random gaussian field. The pseudofermion field may be computed on a single parity only.

Precondition:
The random field must already be initialised.
Parameters:
phi The pseudofermion field.
frm1 A random field, possibly on a single parity.
frm2 Another random field, or possibly workspace.
mass The mass parameter of the fermion matrix.
dag Whether DAG_YES or DAG_NO is applied
Returns:
The value of the pseudofermionic action on this node (only works for Wilson type fermions).

Implemented in cps::Fwilson, cps::FwilsonTm, cps::Fclover, cps::FdwfBase, cps::Fnone, cps::Fstag, cps::Fasqtad, and cps::Fp4.

Float cps::Lattice::SetPhi Vector phi,
Vector frm1,
Vector frm2,
Float  mass,
Float  epsilon,
DagType  dag
[virtual]
 

Reimplemented in cps::FwilsonTm.

Definition at line 2696 of file lattice_base.C.

References cps::ERR, cps::Float, and cps::Error::NotImplemented().

Referenced by cps::AlgActionQuotient::energy(), cps::AlgActionQuotient::evolve(), cps::AlgActionQuotient::heatbath(), cps::AlgActionFermion::heatbath(), cps::AlgActionBoson::heatbath(), cps::AlgActionQuotient::reweight(), cps::AlgHmdR2::run(), cps::AlgHmdR::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

void cps::Lattice::Shift  ) 
 

Method to ensure bosonic force works (only applies to staggered fermion formulations).

Definition at line 2917 of file lattice_base.C.

References cps::GDS, cps::GJP, cps::GlobalDataShift::Shift(), and cps::GlobalJobParameter::VolNodeSites().

Referenced by cps::AlgHmcRHMC::run().

void cps::Lattice::SoCheck Float  num  ) 
 

Checks that a number is identical on 5th dimension local lattice slices.

Checks that a floating point number is identical (using a checksum and the average plaquette) on each slice of the lattice perpendicular to the 5th direction and local in the 5th direction. Obviously this is always the case when the entire 5th direction is local. If any of the node slices fail to match the program exits with an error.

Parameters:
num The number to check.

Definition at line 2862 of file lattice_base.C.

References cps::ERR, cps::Float, cps::Verbose::Flow(), cps::Verbose::Func(), cps::Error::General(), cps::getMinusData(), cps::GJP, cps::glb_sum_five(), cps::IFloat, cps::GlobalJobParameter::SnodeCoor(), cps::GlobalJobParameter::Snodes(), cps::GlobalJobParameter::TnodeCoor(), cps::VRB, cps::GlobalJobParameter::XnodeCoor(), cps::GlobalJobParameter::YnodeCoor(), and cps::GlobalJobParameter::ZnodeCoor().

Referenced by MetropolisAccept(), cps::AlgHmc::run(), cps::AlgHmcRHMC::run(), cps::AlgHmcQPQ::run(), and cps::AlgHmcPhi::run().

virtual int cps::Lattice::SpinComponents  )  const [pure virtual]
 

Returns the number of spin components.

Implemented in cps::FwilsonTypes, cps::Fnone, and cps::FstagTypes.

Referenced by cps::AlgActionBilinear::AlgActionBilinear(), cps::AlgHmdR2::AlgHmdR2(), and RandGaussVector().

void cps::Lattice::Staple Matrix stap,
int *  x,
int  mu
 

Calculates the gauge field square staple sum around a link.

The staple sum around the link $ U_mu(x) $ is

\[ \sum_{\nu \neq \mu}[ U_\nu(x+\mu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) + U^\dagger_\nu(x+\mu-\nu) U^\dagger_\mu(x-\nu) U_\nu(x-\nu)] \]

Parameters:
stap The computed staple sum.
x The coordinates of the lattice site
mu The link direction

Definition at line 573 of file lattice_base.C.

References cps::CBUF_MODE2, cps::CBUF_MODE4, cps::Matrix::Dagger(), g_dir_offset, GaugeField(), GetLinkOld(), cps::getMinusData(), GsiteOffset(), cps::IFloat, MATRIX_SIZE, cps::mDotMEqual(), cps::mDotMPlus(), cps::moveMem(), node_sites, cps::setCbufCntrlReg(), and cps::vecAddEquVec().

Referenced by cps::Gwilson::GactionGradient(), cps::GtadpoleRect::GactionGradient(), cps::GimprRect::GactionGradient(), cps::Gwilson::GforceSite(), cps::GtadpoleRect::GforceSite(), cps::GimprRect::GforceSite(), cps::AlgOverRelax::run(), and cps::AlgGheatBath::run().

StrOrdType cps::Lattice::StrOrd  ) 
 

Returns the storage order.

Definition at line 430 of file lattice_base.C.

References cps::StrOrdType.

Referenced by cps::Fstag::FeigSolv(), cps::FdwfBase::FeigSolv(), cps::Fclover::FeigSolv(), cps::LatticeContainer::Get(), cps::ParTransAsqtad::ParTransAsqtad(), cps::ParTransGauge::ParTransGauge(), cps::ParTransStaggered_cb::ParTransStaggered_cb(), cps::ParTransStagTypes::ParTransStagTypes(), cps::ParTransWilsonTypes::ParTransWilsonTypes(), and cps::LatticeContainer::Set().

Float cps::Lattice::SumReTrCube void   ) 
 

Calculates the global sum of the real part of the trace of the cube.

The cube loop is

\[ U_\mu(x) U_\nu(x+\mu) U_\rho(x+\mu+\nu) U^\dagger_\mu(x+\mu+\nu+\rho) U^\dagger_\nu(x+\nu+\rho) U^\dagger_\rho(x+\rho) \]

The sum runs over all positive values of $ \mu, \nu>\mu $ and $ \rho>\nu $ The real part of the trace of this loop is summed over all lattice sites x.

Returns:
The globally summed real trace of the cube.

Definition at line 1556 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::glb_sum(), SumReTrCubeNode(), and cps::VRB.

Float cps::Lattice::SumReTrCubeNode void   ) 
 

Calculates the local sum of the real part of the trace of the cube.

The cube loop is

\[ U_\mu(x) U_\nu(x+\mu) U_\rho(x+\mu+\nu) U^\dagger_\mu(x+\mu+\nu+\rho) U^\dagger_\nu(x+\nu+\rho) U^\dagger_\rho(x+\rho) \]

The sum runs over all positive values of $ \mu$, $ \nu>\mu $ and $ \rho>\nu $ The real part of the trace of this loop is summed over all local lattice sites x.

Returns:
The locally summed real trace of the cube.
Todo:
Check this code.

Definition at line 1493 of file lattice_base.C.

References cps::dir, cps::Float, cps::Verbose::Func(), node_sites, OPP_DIR, ReTrLoop(), and cps::VRB.

Referenced by cps::GimprOLSym::GhamiltonNode(), and SumReTrCube().

Float cps::Lattice::SumReTrPlaq void   )  const
 

Calculates the global sum of the real part of the trace of the plaquette.

At a site x and in the $ \mu-\nu $ plane, the plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all lattice sites and all six $ \mu-\nu $planes.

Returns:
The globally summed real trace of the plaquette.

Definition at line 1256 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::glb_sum(), SumReTrPlaqNode(), and cps::VRB.

Referenced by cps::WriteLatticeParallel::write().

Float cps::Lattice::SumReTrPlaqNode void   )  const
 

Calculates the local sum of the real part of the trace of the plaquette.

At a site x and in the $ \mu-\nu $plane , the plaquette is

\[ U_\mu(x) U_\nu(x+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all six $ \mu-\nu $ planes.

Returns:
The summed real trace of the plaquette.

Definition at line 1214 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::Verbose::FuncEnd(), node_sites, ReTrPlaq(), cps::sync(), and cps::VRB.

Referenced by cps::Gwilson::GhamiltonNode(), cps::GtadpoleRect::GhamiltonNode(), cps::GpowerRect::GhamiltonNode(), cps::GpowerPlaq::GhamiltonNode(), cps::GimprRect::GhamiltonNode(), cps::GimprOLSym::GhamiltonNode(), GsoCheck(), and SumReTrPlaq().

Float cps::Lattice::SumReTrRect void   )  const
 

Calculates the global sum of the real part of the trace of the 6-link rectangle.

The rectangle at site x in the $\mu-\nu $ plane with the long axis of the rectangle in the $ \mu $ direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all lattice sites and all sixteen $ \mu-\nu $ combinations.

Returns:
The globally summed real trace of the rectangle.

Definition at line 1430 of file lattice_base.C.

References cps::Float, cps::Verbose::Func(), cps::glb_sum(), SumReTrRectNode(), and cps::VRB.

Float cps::Lattice::SumReTrRectNode void   )  const
 

Calculates the local sum of the real part of the trace of the 6-link rectangle.

The rectangle at site x in the $ \mu-\nu $ plane with the long axis of the rectangle in the direction is:

\[ U_\mu(x) U_\mu(x+\mu) U_\nu(x+2\mu) U^\dagger_\mu(x+\mu+\nu) U^\dagger_\mu(x+\nu) U^\dagger_\nu(x) \]

The sum is over all local lattice sites and all sixteen $ \mu-\nu $ combinations.

Returns:
The summed real trace of the rectangle.

Definition at line 1394 of file lattice_base.C.

References cps::Float, node_sites, and ReTrRect().

Referenced by cps::GtadpoleRect::GhamiltonNode(), cps::GpowerRect::GhamiltonNode(), cps::GimprRect::GhamiltonNode(), cps::GimprOLSym::GhamiltonNode(), and SumReTrRect().


Friends And Related Function Documentation

friend class LinkBuffer [friend]
 

Definition at line 154 of file lattice.h.

Referenced by EnableLinkBuffer().


Member Data Documentation

void* cps::Lattice::aux0_ptr [protected]
 

A pointer!

Definition at line 149 of file lattice.h.

void* cps::Lattice::aux1_ptr [protected]
 

Another pointer!

Definition at line 152 of file lattice.h.

void* cps::Lattice::f_dirac_op_init_ptr [protected]
 

Definition at line 142 of file lattice.h.

int cps::Lattice::ForceFlops = 0 [static]
 

Counter for flops in the HMD force calculations.

Definition at line 130 of file lattice_base.C.

int cps::Lattice::g_dir_offset [static, protected]
 

Offsets to help find the array index of gauge links.

Specifically, g_dir_offset[i] is the the internal array index of the first of the four gauge field links at the lattice site where the i th coordinate is 1 and all the rest are 0. The canonical order is assumed, so i = 0, 1, 2 and 3 corresponds to the X , Y, Z and T direections respectively.

Definition at line 91 of file lattice_base.C.

Referenced by GetLinkOld(), Lattice(), and Staple().

LinkBuffer* cps::Lattice::link_buffer [protected]
 

The array of off-node links, accessed by methods in link_buffer.C.

Definition at line 162 of file lattice.h.

Referenced by ClearAllBufferedLink(), ClearBufferedLink(), DisableLinkBuffer(), EnableLinkBuffer(), GetBufferedLink(), and Lattice().

int cps::Lattice::node_sites [static, protected]
 

The local lattice dimensions.

A reimplementation of GlobalJobParameter::XnodeSite(), etc:

  • node_sites[0] = GJP.XnodeSite();
  • node_sites[1] = GJP.YnodeSite();
  • node_sites[2] = GJP.ZnodeSite();
  • node_sites[3] = GJP.TnodeSite();
  • node_sites[4] = GJP.SnodeSite();

Definition at line 90 of file lattice_base.C.

Referenced by AveReTrPlaqNodeNoXi(), AveReTrPlaqNodeXi(), AveReTrRectNodeNoXi(), AveReTrRectNodeXi1(), AveReTrRectNodeXi2(), GetLink(), GetLinkOld(), IsOnNode(), Lattice(), PathOrdProd(), Staple(), SumReTrCubeNode(), SumReTrPlaqNode(), and SumReTrRectNode().

int cps::Lattice::smeared [protected]
 

Definition at line 119 of file lattice.h.

Referenced by EvolveGfield(), GaugeField(), Lattice(), Reunitarize(), and SetGfieldDisOrd().


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