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

cps::AlgActionRational Class Reference

#include <alg_int.h>

Inherits cps::AlgActionBilinear.

Inherited by cps::AlgActionRationalQuotient, and cps::AlgActionRationalSplit.

List of all members.

Public Member Functions

 AlgActionRational ()
 Constructor called by AlgActionRationalQuotient.
 AlgActionRational (AlgMomentum &mom, ActionRationalArg &rat_arg, int traj_num=0)
 AlgActionRational (AlgMomentum &mom, ActionBilinearArg &bi_arg)
 Need to add restart method or similar so do not need to.
virtual ~AlgActionRational ()
 Heat Bath for the pseudo-fermions (phi).
void heatbath ()
Float energy ()
 evolve method evolves the integrator
void evolve (Float dt, int steps)
 run method evolves the integrator
void evolve (Float dt, int steps, int **fractionSplit)
 Generate the optimal rational approximation for rational representation.
void init (int traj_num)
void setSplit (int i, int j)
 Check that all of the partial fractions have been accounted for.
void checkSplit ()
 Check that the approximation bounds are still valid for the mc approx.

Static Public Member Functions

int compareApprox (RemezArg &, RemezArg &)

Protected Member Functions

void generateApprox (Float *mass, RemezArg **remez_arg_md, RemezArg **remez_arg_mc, RationalDescr *rat)
 Free up the rational approximations.
void destroyApprox (RemezArg *remez_arg_md, RemezArg *remez_arg_mc)
 Allocate and setup cg arguments.
void generateCgArg (Float *mass, CgArg ****cg_arg_md, CgArg ****cg_arg_mc, char *label, RationalDescr *rat_des)
void destroyCgArg (CgArg ***cg_arg_md, CgArg ***cg_arg_mc, char *label, RemezArg *remez_arg_md, RemezArg *remez_arg_mc)
 Automatic generation of required EigArg.
void generateEigArg (EigenDescr eigen)
 Free EigArg.
void destroyEigArg ()
 Set mass i, pole j as being included (used when splitting time scales).
void checkApprox (Float *mass, RemezArg *remez_arg, EigenDescr eigen)
 Check that the approximation is still valid.

Protected Attributes

int evolved
 Has the heatbath been evaluated?
int heatbathEval
 Has the energy been evaluated?
int energyEval
Float h_init
CgArg *** frm_cg_arg_md
CgArg *** frm_cg_arg_mc
 Pointer to an array of structures containing solver parameters.
Vector ** frmn
 Array of vectors.
Vector ** frmn_d
 Array of vectors.
Vector ** frmn_tmp
 Used for Asqtad fraction splitting.
int total_size
 The sum of the rational approximation degrees used for the force.
int max_size
 The maximum degree of rational approximation used for the force.
Floatall_res
 An array holding the residues - used for asqtad force.
EigArg eig_arg
 AlgEig parameters.
char eig_file [256]
 Used to store eigenvalue filename.
CommonArg ca_eig
 Used to store eigenvalue filename.
Float ** lambda_low
Float ** lambda_high
 Automatic generation of the rational approximation.


Constructor & Destructor Documentation

cps::AlgActionRational::AlgActionRational  ) 
 

Constructor called by AlgActionRationalQuotient.

Definition at line 26 of file alg_action_rational.C.

cps::AlgActionRational::AlgActionRational AlgMomentum mom,
ActionRationalArg r_arg,
int  traj_num = 0
 

< First check n_masses bilinear = n_masses rational

< Allocate memory for the fermion CG arguments.

< construct approximation if necessary

< Allocate memory for the fermion CG arguments.

< For dwf we need the solution vector contiguous in memory

< For asqtad we need them checkerboarded with dslash applied

< Allocate fractionSplit

< This is just a dummy parameter when called through AlgActionRational

Definition at line 43 of file alg_action_rational.C.

References all_res, cps::ActionRationalArg::bi_arg, cps::ActionBilinearArg::bilinears, cps::ActionBilinearArg::bilinears_len, cps::RemezArg::degree, cps::ERR, cps::F_CLASS_ASQTAD, cps::Float, frm_cg_arg_mc, frm_cg_arg_md, frmn, frmn_d, frmn_tmp, cps::Verbose::Func(), cps::Error::General(), generateApprox(), generateCgArg(), cps::GJP, cps::AlgActionBilinear::init(), max_size, cps::ActionRationalArg::rationals, cps::ActionRationalArg::rationals_len, cps::ActionRationalArg::rationals_val, cps::smalloc(), cps::GlobalJobParameter::TnodeSites(), total_size, cps::VRB, cps::GlobalJobParameter::XnodeSites(), cps::GlobalJobParameter::YnodeSites(), and cps::GlobalJobParameter::ZnodeSites().

cps::AlgActionRational::AlgActionRational AlgMomentum mom,
ActionBilinearArg bi_arg
 

Need to add restart method or similar so do not need to.

Definition at line 33 of file alg_action_rational.C.

cps::AlgActionRational::~AlgActionRational  )  [virtual]
 

Heat Bath for the pseudo-fermions (phi).

Definition at line 154 of file alg_action_rational.C.

References energyEval.


Member Function Documentation

void cps::AlgActionRational::checkApprox Float mass,
RemezArg remez_arg,
EigenDescr  eigen
[protected]
 

Check that the approximation is still valid.

< First setup the masses

< Measure the lowest eigenvalue

< Measure the highest eigenvalue

Definition at line 667 of file alg_action_rational.C.

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

void cps::AlgActionRational::checkSplit  ) 
 

Check that the approximation bounds are still valid for the mc approx.

Definition at line 653 of file alg_action_rational.C.

References cps::ERR.

Referenced by cps::AlgActionRationalSplit::heatbath().

int cps::AlgActionRational::compareApprox RemezArg arg1,
RemezArg arg2
[static]
 

< no need to recalculate approximation if same mass

Definition at line 483 of file alg_action_rational.C.

void cps::AlgActionRational::destroyApprox RemezArg remez_arg_md,
RemezArg remez_arg_mc
[protected]
 

Allocate and setup cg arguments.

Definition at line 475 of file alg_action_rational.C.

void cps::AlgActionRational::destroyCgArg CgArg ***  cg_arg_md,
CgArg ***  cg_arg_mc,
char *  label,
RemezArg remez_arg_md,
RemezArg remez_arg_mc
[protected]
 

Automatic generation of required EigArg.

Definition at line 557 of file alg_action_rational.C.

References cps::smalloc().

void cps::AlgActionRational::destroyEigArg  )  [protected]
 

Set mass i, pole j as being included (used when splitting time scales).

Definition at line 625 of file alg_action_rational.C.

References eig_arg, cps::Float, lambda_high, and lambda_low.

Float cps::AlgActionRational::energy  )  [virtual]
 

evolve method evolves the integrator

< Before energy is measured, do we want to check bounds?

< Create an appropriate lattice

Implements cps::AlgActionBilinear.

Reimplemented in cps::AlgActionRationalSplit, and cps::AlgActionRationalQuotient.

Definition at line 237 of file alg_action_rational.C.

Referenced by cps::AlgActionRationalSplit::energy().

void cps::AlgActionRational::evolve Float  dt,
int  steps,
int **  fractionSplit
 

Generate the optimal rational approximation for rational representation.

Reimplemented in cps::AlgActionRationalQuotient.

Definition at line 286 of file alg_action_rational.C.

void cps::AlgActionRational::evolve Float  dt,
int  steps
[virtual]
 

run method evolves the integrator

Implements cps::AlgActionBilinear.

Reimplemented in cps::AlgActionRationalSplit, and cps::AlgActionRationalQuotient.

Definition at line 281 of file alg_action_rational.C.

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

void cps::AlgActionRational::generateApprox Float mass,
RemezArg **  remez_arg_md,
RemezArg **  remez_arg_mc,
RationalDescr rat
[protected]
 

Free up the rational approximations.

Definition at line 370 of file alg_action_rational.C.

Referenced by AlgActionRational(), and cps::AlgActionRationalQuotient::AlgActionRationalQuotient().

void cps::AlgActionRational::generateCgArg Float mass,
CgArg ****  cg_arg_md,
CgArg ****  cg_arg_mc,
char *  label,
RationalDescr rat_des
[protected]
 

Definition at line 510 of file alg_action_rational.C.

Referenced by AlgActionRational(), and cps::AlgActionRationalQuotient::AlgActionRationalQuotient().

void cps::AlgActionRational::generateEigArg EigenDescr  eigen  )  [protected]
 

Free EigArg.

< Setup AlgEig parameters if necessary

Definition at line 588 of file alg_action_rational.C.

void cps::AlgActionRational::heatbath  )  [virtual]
 

< Only evaluate heatbath if necessary

< Create an appropriate lattice

< Potentially can merge all these three functions , Certainly can for 2 and 3

Implements cps::AlgActionBilinear.

Reimplemented in cps::AlgActionRationalSplit, and cps::AlgActionRationalQuotient.

Definition at line 198 of file alg_action_rational.C.

Referenced by cps::AlgActionRationalSplit::heatbath().

void cps::AlgActionRational::init int  traj_num  ) 
 

Definition at line 143 of file alg_action_rational.C.

void cps::AlgActionRational::setSplit int  i,
int  j
 

Check that all of the partial fractions have been accounted for.

Definition at line 640 of file alg_action_rational.C.

References eig_arg, lambda_high, lambda_low, and cps::sfree().

Referenced by cps::AlgActionRationalSplit::AlgActionRationalSplit().


Member Data Documentation

Float* cps::AlgActionRational::all_res [protected]
 

An array holding the residues - used for asqtad force.

Definition at line 425 of file alg_int.h.

Referenced by AlgActionRational().

CommonArg cps::AlgActionRational::ca_eig [protected]
 

Used to store eigenvalue filename.

Definition at line 434 of file alg_int.h.

EigArg cps::AlgActionRational::eig_arg [protected]
 

AlgEig parameters.

Definition at line 428 of file alg_int.h.

Referenced by destroyEigArg(), and setSplit().

char cps::AlgActionRational::eig_file[256] [protected]
 

Used to store eigenvalue filename.

Definition at line 431 of file alg_int.h.

int cps::AlgActionRational::energyEval [protected]
 

Definition at line 394 of file alg_int.h.

Referenced by ~AlgActionRational().

int cps::AlgActionRational::evolved [protected]
 

Has the heatbath been evaluated?

Definition at line 390 of file alg_int.h.

CgArg*** cps::AlgActionRational::frm_cg_arg_mc [protected]
 

Pointer to an array of structures containing solver parameters.

These are the parameters corresponding to each of the dynamical fermion masses.

Definition at line 400 of file alg_int.h.

Referenced by AlgActionRational().

CgArg*** cps::AlgActionRational::frm_cg_arg_md [protected]
 

Definition at line 398 of file alg_int.h.

Referenced by AlgActionRational().

Vector** cps::AlgActionRational::frmn [protected]
 

Array of vectors.

These will hold the solutions from the solves.

Definition at line 407 of file alg_int.h.

Referenced by AlgActionRational().

Vector** cps::AlgActionRational::frmn_d [protected]
 

Array of vectors.

These will hold the solutions from the solves multiplied by the D-slash operator.

Definition at line 411 of file alg_int.h.

Referenced by AlgActionRational().

Vector** cps::AlgActionRational::frmn_tmp [protected]
 

Used for Asqtad fraction splitting.

Definition at line 416 of file alg_int.h.

Referenced by AlgActionRational().

Float cps::AlgActionRational::h_init [protected]
 

Definition at line 396 of file alg_int.h.

int cps::AlgActionRational::heatbathEval [protected]
 

Has the energy been evaluated?

Definition at line 393 of file alg_int.h.

Float** cps::AlgActionRational::lambda_high [protected]
 

Automatic generation of the rational approximation.

Definition at line 438 of file alg_int.h.

Referenced by destroyEigArg(), and setSplit().

Float** cps::AlgActionRational::lambda_low [protected]
 

Definition at line 436 of file alg_int.h.

Referenced by destroyEigArg(), and setSplit().

int cps::AlgActionRational::max_size [protected]
 

The maximum degree of rational approximation used for the force.

Definition at line 422 of file alg_int.h.

Referenced by AlgActionRational().

int cps::AlgActionRational::total_size [protected]
 

The sum of the rational approximation degrees used for the force.

Definition at line 419 of file alg_int.h.

Referenced by AlgActionRational().


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