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 ()
virtual void prepare_fg (Matrix *force, Float dt_ratio)
 run method evolves the integrator
void evolve (Float dt, int steps)
 evolve method relevant to split timescales
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_fg, CgArg ****cg_arg_md, CgArg ****cg_arg_mc, const char *label, RationalDescr *rat_des)
void destroyCgArg (CgArg ***cg_arg_fg, CgArg ***cg_arg_md, CgArg ***cg_arg_mc, const 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
 frm_cg_arg_fg is specific to force gradient integrator and has no use otherwise.
CgArg *** frm_cg_arg_fg
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_fg, 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 772 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 758 of file alg_action_rational.C.

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 551 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 538 of file alg_action_rational.C.

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

Automatic generation of required EigArg.

Definition at line 653 of file alg_action_rational.C.

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

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

Definition at line 730 of file alg_action_rational.C.

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

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

< 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 349 of file alg_action_rational.C.

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

evolve method relevant to split timescales

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(), and prepare_fg().

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 427 of file alg_action_rational.C.

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

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

Definition at line 589 of file alg_action_rational.C.

References cps::k.

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

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

Free EigArg.

< Setup AlgEig parameters if necessary

Definition at line 693 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::prepare_fg Matrix force,
Float  dt_ratio
[virtual]
 

run method evolves the integrator

Reimplemented from cps::AlgInt.

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

Definition at line 285 of file alg_action_rational.C.

References evolve().

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

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

Definition at line 745 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 452 of file alg_int.h.

Referenced by AlgActionRational().

CommonArg cps::AlgActionRational::ca_eig [protected]
 

Used to store eigenvalue filename.

Definition at line 461 of file alg_int.h.

EigArg cps::AlgActionRational::eig_arg [protected]
 

AlgEig parameters.

Definition at line 455 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 458 of file alg_int.h.

int cps::AlgActionRational::energyEval [protected]
 

Definition at line 419 of file alg_int.h.

Referenced by ~AlgActionRational().

int cps::AlgActionRational::evolved [protected]
 

Has the heatbath been evaluated?

Definition at line 415 of file alg_int.h.

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

Definition at line 424 of file alg_int.h.

Referenced by AlgActionRational().

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 427 of file alg_int.h.

Referenced by AlgActionRational().

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

Definition at line 425 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 434 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 438 of file alg_int.h.

Referenced by AlgActionRational().

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

Used for Asqtad fraction splitting.

Definition at line 443 of file alg_int.h.

Referenced by AlgActionRational().

Float cps::AlgActionRational::h_init [protected]
 

frm_cg_arg_fg is specific to force gradient integrator and has no use otherwise.

Definition at line 423 of file alg_int.h.

int cps::AlgActionRational::heatbathEval [protected]
 

Has the energy been evaluated?

Definition at line 418 of file alg_int.h.

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

Automatic generation of the rational approximation.

Definition at line 465 of file alg_int.h.

Referenced by destroyEigArg(), and setSplit().

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

Definition at line 463 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 449 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 446 of file alg_int.h.

Referenced by AlgActionRational().


The documentation for this class was generated from the following files:
Generated on Sat Jan 5 23:34:07 2013 for Columbia Physics System by  doxygen 1.3.9.1