CHROMA
|
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 ¶m) |
void | write (XMLWriter &xml, const std::string &path, const Params::Param_t ¶m) |
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 ¶m, 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 ¶m, 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 ¶m, 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 ¶m, const P &u) |
void | PRchi (multi1d< multi1d< multi1d< LatticeFermion > > > &quarkstilde, multi1d< Handle< DilutionScheme< LatticeFermion > > > &quarks) |
Variables | |
const std::string | name = "DISCO_EO_EIGCG" |
typedef multi1d<LatticeColorMatrix> Chroma::InlineDiscoEoEigCGEnv::P |
Definition at line 308 of file inline_disco_eo_eigcg_w.cc.
typedef multi1d<LatticeColorMatrix> Chroma::InlineDiscoEoEigCGEnv::Q |
Definition at line 309 of file inline_disco_eo_eigcg_w.cc.
typedef LatticeFermion Chroma::InlineDiscoEoEigCGEnv::T |
Definition at line 307 of file inline_disco_eo_eigcg_w.cc.
Handle<EvenOddPrecLinearOperator<T,P,Q> > Chroma::InlineDiscoEoEigCGEnv::createOddOdd_Op | ( | const Params::Param_t & | param, |
const P & | u | ||
) |
Definition at line 312 of file inline_disco_eo_eigcg_w.cc.
References Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::action, Chroma::WilsonFermActParams::anisoParam, Chroma::cp, Chroma::GroupXML_t::id, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::WilsonFermActParams::Mass, name, Chroma::GroupXML_t::path, Chroma::state, Chroma::u, and Chroma::GroupXML_t::xml.
Referenced by do_disco(), and Chroma::InlineDiscoEoEigCGEnv::InlineMeas::func().
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 | ||
) |
Definition at line 630 of file inline_disco_eo_eigcg_w.cc.
References BACKWARD, do_disco(), FORWARD, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::HU, Chroma::i, Chroma::info, j, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::ldh, Chroma::InlinePropAndMatElemDistillation2Env::local::localInnerProduct(), m, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::max_path_length, Chroma::MINUS, mu, Nd, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::Nvec, Chroma::p, Chroma::PLUS, Chroma::r, sum, t, Chroma::InlineDiscoEoEigCGEnv::KeyOperator_t::t_slice, Chroma::u, and Chroma::zero.
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.
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 | ||
) |
This do_disco routine should not be called, I don't think it's ever needed...
Definition at line 368 of file inline_disco_eo_eigcg_w.cc.
References BACKWARD, FORWARD, Chroma::i, Chroma::InlinePropAndMatElemDistillation2Env::local::localInnerProduct(), m, mu, Nd, Chroma::p, q, sum, t, and Chroma::InlineDiscoEoEigCGEnv::KeyOperator_t::t_slice.
Referenced by do_disco(), and Chroma::InlineDiscoEoEigCGEnv::InlineMeas::func().
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 | ||
) |
Definition at line 561 of file inline_disco_eo_eigcg_w.cc.
References createOddOdd_Op(), Chroma::i, Chroma::InlinePropAndMatElemDistillation2Env::local::localInnerProduct(), m, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::max_path_length, Nd, Chroma::p, Chroma::PLUS, sp, sum, t, Chroma::InlineDiscoEoEigCGEnv::KeyOperator_t::t_slice, Chroma::u, z, and Chroma::zero.
bool Chroma::InlineDiscoEoEigCGEnv::operator< | ( | const KeyOperator_t & | a, |
const KeyOperator_t & | b | ||
) |
Definition at line 222 of file inline_disco_eo_eigcg_w.cc.
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.
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.
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().
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.
void Chroma::InlineDiscoEoEigCGEnv::read | ( | BinaryReader & | bin, |
KeyOperator_t & | d | ||
) |
void Chroma::InlineDiscoEoEigCGEnv::read | ( | BinaryReader & | bin, |
ValOperator_t & | d | ||
) |
ValOperator reader
Definition at line 287 of file inline_disco_eo_eigcg_w.cc.
void Chroma::InlineDiscoEoEigCGEnv::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
Params::NamedObject_t & | input | ||
) |
Gauge field parameters.
Definition at line 135 of file inline_disco_eo_eigcg_w.cc.
References Chroma::InlineDiscoEoEigCGEnv::Params::NamedObject_t::evecs_file, Chroma::InlineDiscoEoEigCGEnv::Params::NamedObject_t::gauge_id, Chroma::InlineDiscoEoEigCGEnv::Params::NamedObject_t::op_db_file, and read().
void Chroma::InlineDiscoEoEigCGEnv::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
Params::Param_t & | param | ||
) |
Definition at line 83 of file inline_disco_eo_eigcg_w.cc.
References Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::action, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::chi, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::mass_label, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::max_path_length, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::p2_max, Chroma::readXMLArrayGroup(), and Chroma::readXMLGroup().
Referenced by Chroma::InlineDiscoEoEigCGEnv::Params::Params(), read(), and ReadOPTEigCGVecs().
void Chroma::InlineDiscoEoEigCGEnv::ReadOPTEigCGVecs | ( | multi1d< LatticeFermion > & | vec, |
CholeskyFactors & | Clsk, | ||
const std::string & | evecs_file | ||
) |
Definition at line 769 of file inline_disco_eo_eigcg_w.cc.
References Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::evals, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::H, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::HU, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::ldh, name, Chroma::InlineDiscoEoEigCGEnv::CholeskyFactors::Nvec, and read().
Referenced by Chroma::InlineDiscoEoEigCGEnv::InlineMeas::func().
bool Chroma::InlineDiscoEoEigCGEnv::registerAll | ( | ) |
Register all the factories.
Definition at line 70 of file inline_disco_eo_eigcg_w.cc.
References Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), name, and Chroma::AsqtadFermActEnv::registered.
Referenced by Chroma::InlineHadronAggregateEnv::registerAll().
void Chroma::InlineDiscoEoEigCGEnv::write | ( | BinaryWriter & | bin, |
const KeyOperator_t & | d | ||
) |
KeyOperator writer.
Definition at line 277 of file inline_disco_eo_eigcg_w.cc.
void Chroma::InlineDiscoEoEigCGEnv::write | ( | BinaryWriter & | bin, |
const ValOperator_t & | d | ||
) |
ValOperator writer.
Definition at line 292 of file inline_disco_eo_eigcg_w.cc.
void Chroma::InlineDiscoEoEigCGEnv::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const Params::NamedObject_t & | input | ||
) |
Gauge field parameters.
Definition at line 150 of file inline_disco_eo_eigcg_w.cc.
References Chroma::InlineDiscoEoEigCGEnv::Params::NamedObject_t::evecs_file, Chroma::InlineDiscoEoEigCGEnv::Params::NamedObject_t::gauge_id, Chroma::InlineDiscoEoEigCGEnv::Params::NamedObject_t::op_db_file, Chroma::pop(), Chroma::push(), and write().
void Chroma::InlineDiscoEoEigCGEnv::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const Params::Param_t & | param | ||
) |
Definition at line 110 of file inline_disco_eo_eigcg_w.cc.
References Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::action, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::chi, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::mass_label, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::max_path_length, Chroma::InlineDiscoEoEigCGEnv::Params::Param_t::p2_max, Chroma::pop(), Chroma::push(), t, and Chroma::GroupXML_t::xml.
Referenced by Chroma::InlineDiscoEoEigCGEnv::InlineMeas::func(), Chroma::InlineDiscoEoEigCGEnv::InlineMeas::operator()(), write(), and Chroma::InlineDiscoEoEigCGEnv::Params::write().
const std::string Chroma::InlineDiscoEoEigCGEnv::name = "DISCO_EO_EIGCG" |
Definition at line 67 of file inline_disco_eo_eigcg_w.cc.
Referenced by createOddOdd_Op(), Chroma::InlineDiscoEoEigCGEnv::InlineMeas::func(), ReadOPTEigCGVecs(), and registerAll().