47 namespace DiluteZNEigVecQuarkSourceConstEnv
91 XMLReader paramtop(xml, path);
94 read(paramtop,
"version", version);
102 QDPIO::cerr << __func__ <<
": parameter version " << version
103 <<
" unsupported." << std::endl;
108 read(paramtop,
"N",
N);
125 write(xml,
"version", version);
140 const Seed& rng_seed,
const int& N)
155 for (
int v = 0 ; v < laph_in.
time_slices[
t].spins[
s].lap_eigs.size() ; ++v)
171 QDPIO::cout <<
"Eigenstd::vector-Diluted random complex ZN source" << std::endl;
180 QDPIO::cerr <<
name <<
": spin mask size incorrect 1" << std::endl;
186 QDPIO::cerr <<
name <<
": spin mask size incorrect 2" << std::endl;
192 QDPIO::cerr <<
name <<
": time sources size incorrect 1" << std::endl;
198 QDPIO::cerr <<
name <<
": time sources size incorrect 2" << std::endl;
206 QDPIO::cerr <<
"ERROR: repeat in t_sources" << std::endl;
212 QDPIO::cerr <<
"ERROR: invalid component in t_sources "
218 XMLBufferWriter eig_vecs_xml;
228 catch( std::bad_cast ) {
229 QDPIO::cerr <<
name <<
": caught dynamic cast error" << std::endl;
233 QDPIO::cerr <<
name <<
": std::map call failed: " << e << std::endl;
237 const MapObject<int,EVPair<LatticeColorVector> >& eigen_vecs =
240 int n_ev = eigen_vecs.size();
246 if ( n_ev_dil > n_ev) {
248 QDPIO::cerr <<
"ERROR: n_ev_dil > n_ev" << std::endl;
254 for (
int v = 0 ; v < n_ev_dil ; ++v) {
256 QDPIO::cerr <<
"ERROR: repeat in eigen_vectors" << std::endl;
261 QDPIO::cerr <<
"ERROR: invalid component in eigen_vectors" << std::endl;
289 QDPIO::cout <<
"Created LapH Noise " << std::endl;
291 LatticeFermion dil_source =
zero;
302 const Complex& curr_n = laph_noise.
time_slices[curr_t].spins[curr_s].lap_eigs[curr_v].val;
304 LatticeFermion temp =
zero;
310 dil_source[phases.
getSet()[curr_t]] += temp;
Primary include file for CHROMA library code.
Random complex Z(N) sources using dilution.
T operator()(const multi1d< LatticeColorMatrix > &u) const
Construct the source.
Class for counted reference semantics.
Base class for quark source construction.
Fourier transform phase factor support.
const Set & getSet() const
The set to be used in sumMulti.
Random Z(N) source construction using dilution in eigenstd::vector space.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
Complex zN_rng(int N)
Z(N)-rng.
Class for counted reference semantics.
All link smearing constructors.
Factory for producing link smearing objects.
void savern(int iseed[4])
Named object function std::map.
static bool registered
Local registration flag.
const std::string name
Name to be used.
CreateFermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFerm(XMLReader &xml, const std::string &path)
void fill_laph_subspace_zN(LatticeLAPHSubSpace_t &laph_in, const Seed &rng_seed, const int &N)
bool registerAll()
Register all the factories.
std::string getName()
Return the name.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
multi1d< LatticeFermion > s(Ncb)
All quark displacement constructors.
Factory for producing quark displacement objects.
All quark smearing constructors.
Factory for producing quark smearing objects.
Fourier transform phase factor support.
Simple quark displacement.
Factory for producing quark prop sources.
multi1d< Timeslice_t > time_slices
Random complex Z(N) sources using dilution.
multi1d< int > eigen_vectors
void writeXML(XMLWriter &in, const std::string &path) const
Holds of vectors and weights.
Volume source of Z(N) noise.