CHROMA
Classes | Typedefs | Functions | Variables
Chroma::InlineDiscoEoEigCGEnv Namespace Reference

Classes

struct  KeyOperator_t
 Meson operator
More...
 
class  ValOperator_t
 
struct  KeyVal_t
 
struct  CholeskyFactors
 
struct  Params
 Parameter structure. More...
 
class  TimeSliceRBFunc
 
class  InlineMeas
 Inline measurement of stochastic baryon operators. More...
 

Typedefs

typedef LatticeFermion T
 
typedef multi1d< LatticeColorMatrix > P
 
typedef multi1d< LatticeColorMatrix > Q
 

Functions

bool registerAll ()
 Register all the factories. More...
 
void read (XMLReader &xml, const std::string &path, Params::Param_t &param)
 
void write (XMLWriter &xml, const std::string &path, const Params::Param_t &param)
 
void read (XMLReader &xml, const std::string &path, Params::NamedObject_t &input)
 Gauge field parameters. More...
 
void write (XMLWriter &xml, const std::string &path, const Params::NamedObject_t &input)
 Gauge field parameters. More...
 
bool operator< (const KeyOperator_t &a, const KeyOperator_t &b)
 
std::ostream & operator<< (std::ostream &os, const KeyOperator_t &d)
 
std::ostream & operator<< (std::ostream &os, const ValOperator_t &d)
 stream IO
More...
 
void read (BinaryReader &bin, KeyOperator_t &d)
 KeyOperator reader
More...
 
void write (BinaryWriter &bin, const KeyOperator_t &d)
 KeyOperator writer. More...
 
void read (BinaryReader &bin, ValOperator_t &d)
 ValOperator reader
More...
 
void write (BinaryWriter &bin, const ValOperator_t &d)
 ValOperator writer. More...
 
Handle< EvenOddPrecLinearOperator< T, P, Q > > createOddOdd_Op (const Params::Param_t &param, const P &u)
 
void do_disco (std::map< KeyOperator_t, ValOperator_t > &db, const LatticeFermion &qbar, const LatticeFermion &q, const SftMom &p, const int &t, const Subset &trb, const multi1d< short int > &path, const int &max_path_length)
 
void do_disco (std::map< KeyOperator_t, ValOperator_t > &db, const LatticeFermion &qbar, const LatticeFermion &q, const Handle< EvenOddPrecLinearOperator< T, P, Q > > &Doo, const SftMom &p, const int &t, const Subset &trb, const multi1d< short int > &path, const int &max_path_length)
 
void do_disco (std::map< KeyOperator_t, ValOperator_t > &db, const Params::Param_t &param, const P &u, const SftMom &p, const int &t, const Subset &trb, const multi1d< short int > &path)
 
void do_disco (std::map< KeyOperator_t, ValOperator_t > &db, CholeskyFactors Clsk, multi1d< LatticeFermion > &vec, const Params::Param_t &param, const Handle< EvenOddPrecLinearOperator< T, P, Q > > &Doo, const P &u, const int &t, const Subset &trb, const SftMom &p, const multi1d< short int > &path)
 
void ReadOPTEigCGVecs (multi1d< LatticeFermion > &vec, CholeskyFactors &Clsk, const std::string &evecs_file)
 
void PRchi (multi1d< multi1d< multi1d< LatticeFermion > > > &quarkstilde, const multi1d< Handle< DilutionScheme< LatticeFermion > > > &quarks, Handle< EvenOddPrecLinearOperator< T, P, Q > > &Doo, CholeskyFactors Clsk, multi1d< LatticeFermion > &vec, const Params::Param_t &param, const P &u)
 
void PRchi (multi1d< multi1d< multi1d< LatticeFermion > > > &quarkstilde, multi1d< Handle< DilutionScheme< LatticeFermion > > > &quarks)
 

Variables

const std::string name = "DISCO_EO_EIGCG"
 

Typedef Documentation

◆ P

typedef multi1d<LatticeColorMatrix> Chroma::InlineDiscoEoEigCGEnv::P

Definition at line 308 of file inline_disco_eo_eigcg_w.cc.

◆ Q

typedef multi1d<LatticeColorMatrix> Chroma::InlineDiscoEoEigCGEnv::Q

Definition at line 309 of file inline_disco_eo_eigcg_w.cc.

◆ T

typedef LatticeFermion Chroma::InlineDiscoEoEigCGEnv::T

Definition at line 307 of file inline_disco_eo_eigcg_w.cc.

Function Documentation

◆ createOddOdd_Op()

Handle<EvenOddPrecLinearOperator<T,P,Q> > Chroma::InlineDiscoEoEigCGEnv::createOddOdd_Op ( const Params::Param_t param,
const P u 
)

◆ do_disco() [1/4]

void Chroma::InlineDiscoEoEigCGEnv::do_disco ( std::map< KeyOperator_t, ValOperator_t > &  db,
CholeskyFactors  Clsk,
multi1d< LatticeFermion > &  vec,
const Params::Param_t param,
const Handle< EvenOddPrecLinearOperator< T, P, Q > > &  Doo,
const P u,
const int &  t,
const Subset &  trb,
const SftMom p,
const multi1d< short int > &  path 
)

◆ do_disco() [2/4]

void Chroma::InlineDiscoEoEigCGEnv::do_disco ( std::map< KeyOperator_t, ValOperator_t > &  db,
const LatticeFermion &  qbar,
const LatticeFermion &  q,
const Handle< EvenOddPrecLinearOperator< T, P, Q > > &  Doo,
const SftMom p,
const int &  t,
const Subset &  trb,
const multi1d< short int > &  path,
const int &  max_path_length 
)

This version of do_disco is the one we call

Currently we have editted this so as to put the timeslice and phase factor on the correct part for the "even" sum, so right now this code is not terribly efficient. Work on optimizing this all later.

Definition at line 450 of file inline_disco_eo_eigcg_w.cc.

References BACKWARD, Chroma::chi(), do_disco(), FORWARD, Chroma::i, Chroma::InlinePropAndMatElemDistillation2Env::local::innerProduct(), Chroma::InlinePropAndMatElemDistillation2Env::local::localInnerProduct(), m, mu, Nd, Chroma::p, Chroma::PLUS, q, sum, t, Chroma::InlineDiscoEoEigCGEnv::KeyOperator_t::t_slice, and Chroma::zero.

◆ do_disco() [3/4]

void Chroma::InlineDiscoEoEigCGEnv::do_disco ( std::map< KeyOperator_t, ValOperator_t > &  db,
const LatticeFermion &  qbar,
const LatticeFermion &  q,
const SftMom p,
const int &  t,
const Subset &  trb,
const multi1d< short int > &  path,
const int &  max_path_length 
)

◆ do_disco() [4/4]

void Chroma::InlineDiscoEoEigCGEnv::do_disco ( std::map< KeyOperator_t, ValOperator_t > &  db,
const Params::Param_t param,
const P u,
const SftMom p,
const int &  t,
const Subset &  trb,
const multi1d< short int > &  path 
)

◆ operator<()

bool Chroma::InlineDiscoEoEigCGEnv::operator< ( const KeyOperator_t a,
const KeyOperator_t b 
)

Definition at line 222 of file inline_disco_eo_eigcg_w.cc.

References Chroma::a, and Chroma::b.

◆ operator<<() [1/2]

std::ostream& Chroma::InlineDiscoEoEigCGEnv::operator<< ( std::ostream &  os,
const KeyOperator_t d 
)

Definition at line 226 of file inline_disco_eo_eigcg_w.cc.

References Chroma::d, Chroma::for(), and Chroma::i.

◆ operator<<() [2/2]

std::ostream& Chroma::InlineDiscoEoEigCGEnv::operator<< ( std::ostream &  os,
const ValOperator_t d 
)

stream IO

Definition at line 252 of file inline_disco_eo_eigcg_w.cc.

References Chroma::d, and Chroma::i.

◆ PRchi() [1/2]

void Chroma::InlineDiscoEoEigCGEnv::PRchi ( multi1d< multi1d< multi1d< LatticeFermion > > > &  quarkstilde,
const multi1d< Handle< DilutionScheme< LatticeFermion > > > &  quarks,
Handle< EvenOddPrecLinearOperator< T, P, Q > > &  Doo,
CholeskyFactors  Clsk,
multi1d< LatticeFermion > &  vec,
const Params::Param_t param,
const P u 
)

Here, we are calculating Sdag S chi where chi (the solution) is Sinv eta, and eta is the noise std::vector (the source) Thus, we can save time by using the source, and calculate Sdag eta, and that's what is being done here

Definition at line 810 of file inline_disco_eo_eigcg_w.cc.

References Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::HU, Chroma::i, Chroma::info, it, j, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::ldh, Chroma::InlinePropAndMatElemDistillation2Env::local::localInnerProduct(), Chroma::MINUS, n, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::Nvec, q, Chroma::r, sum, t, and Chroma::zero.

Referenced by Chroma::InlineDiscoEoEigCGEnv::InlineMeas::func().

◆ PRchi() [2/2]

void Chroma::InlineDiscoEoEigCGEnv::PRchi ( multi1d< multi1d< multi1d< LatticeFermion > > > &  quarkstilde,
multi1d< Handle< DilutionScheme< LatticeFermion > > > &  quarks 
)

This version is called if we have no EigCG vectors, so PR = 1

Definition at line 873 of file inline_disco_eo_eigcg_w.cc.

References it, j, and n.

◆ read() [1/4]

void Chroma::InlineDiscoEoEigCGEnv::read ( BinaryReader &  bin,
KeyOperator_t d 
)

KeyOperator reader

Definition at line 267 of file inline_disco_eo_eigcg_w.cc.

References Chroma::d, n, Nd, and read().

◆ read() [2/4]

void Chroma::InlineDiscoEoEigCGEnv::read ( BinaryReader &  bin,
ValOperator_t d 
)

ValOperator reader

Definition at line 287 of file inline_disco_eo_eigcg_w.cc.

References Chroma::d, and read().

◆ read() [3/4]

void Chroma::InlineDiscoEoEigCGEnv::read ( XMLReader &  xml,
const std::string &  path,
Params::NamedObject_t input 
)

◆ read() [4/4]

void Chroma::InlineDiscoEoEigCGEnv::read ( XMLReader &  xml,
const std::string &  path,
Params::Param_t param 
)

◆ ReadOPTEigCGVecs()

void Chroma::InlineDiscoEoEigCGEnv::ReadOPTEigCGVecs ( multi1d< LatticeFermion > &  vec,
CholeskyFactors Clsk,
const std::string &  evecs_file 
)

◆ registerAll()

bool Chroma::InlineDiscoEoEigCGEnv::registerAll ( )

◆ write() [1/4]

void Chroma::InlineDiscoEoEigCGEnv::write ( BinaryWriter &  bin,
const KeyOperator_t d 
)

KeyOperator writer.

Definition at line 277 of file inline_disco_eo_eigcg_w.cc.

References Chroma::d, n, and write().

◆ write() [2/4]

void Chroma::InlineDiscoEoEigCGEnv::write ( BinaryWriter &  bin,
const ValOperator_t d 
)

ValOperator writer.

Definition at line 292 of file inline_disco_eo_eigcg_w.cc.

References Chroma::d, and write().

◆ write() [3/4]

void Chroma::InlineDiscoEoEigCGEnv::write ( XMLWriter &  xml,
const std::string &  path,
const Params::NamedObject_t input 
)

◆ write() [4/4]

void Chroma::InlineDiscoEoEigCGEnv::write ( XMLWriter &  xml,
const std::string &  path,
const Params::Param_t param 
)

Variable Documentation

◆ name

const std::string Chroma::InlineDiscoEoEigCGEnv::name = "DISCO_EO_EIGCG"