Go to the documentation of this file.
   17 #ifndef MULTIGRID_CLOVER_H_INCLUDED 
   18 #define MULTIGRID_CLOVER_H_INCLUDED 
   24 template<
class AFIELD1, 
class AFIELD2>
 
   57                    const std::vector<int>& fine_lattice,
 
   58                    const int nin, 
const int nvec)
 
   60     init(coarse_lattice, fine_lattice, nin, nvec);
 
   68   void init(
const std::vector<int>& coarse_lattice, 
const std::vector<int>& fine_lattice,
 
   69             const int nin, 
const int nvec)
 
   73     for (
int i = 0; i < fine_lattice.size(); i++) {
 
   74       fine_nvol *= fine_lattice[i];
 
   77     for (
int i = 0; i < nvec; i++) {
 
  121       if (afopr_tmp != 
nullptr) {
 
  126     vout.
crucial(
"MultiGrid_Clover: bad afopr: only AFopr_Clover_dd is vaild\n");
 
  136   void gramschmidt(std::vector<AFIELD2>& fine_vectors) 
const;
 
  139   void make_fine_vector(AFIELD2& fine_vector, 
const AFIELD1& coarse_vector) 
const;
 
  143 #endif // MULTIGRID_CLOVER_H_INCLUDED 
  
 
MultiGrid_Clover(const std::vector< int > &coarse_lattice, const std::vector< int > &fine_lattice, const int nin, const int nvec)
 
void set_coarse_array(const AFIELD1 &coarse_vector) const
array <- vector (function for optimization)
 
std::vector< typename AFIELD2::real_t > m_real_array
 
AIndex_block_lex< typename AFIELD2::real_t, AFIELD2::IMPL > Index_t
 
static const std::string class_name
 
void init(const std::vector< int > &coarse_lattice, const std::vector< int > &fine_lattice, const int nin, const int nvec)
 
std::vector< typename AFIELD2::complex_t > m_complex_array2
 
void set_afopr_fine(AFopr_dd< AFIELD2 > *afopr)
 
Base class of fermion operator family.
 
void make_fine_vector(AFIELD2 &fine_vector, const AFIELD1 &coarse_vector) const
 
std::vector< AFIELD2 > * get_testvectors()
 
std::vector< AFIELD2 > m_testvectors
 
void gramschmidt_double(std::vector< AFIELD2 > &fine_vectors) const
 
const Index_t * get_block_index() const
 
void set_coarse_vector(AFIELD1 &coarse_vector) const
vector <- array (function for optimization)
 
std::vector< typename AFIELD2::complex_t > m_coarse_array
 
AFopr_Clover_dd< AFIELD2 > Afopr_fine_dd_t
 
std::vector< typename AFIELD2::complex_t > m_complex_array
 
AFopr< AFIELD2 > * m_afopr_fine
 
void crucial(const char *format,...)
 
const std::vector< AFIELD2 > * get_testvectors() const
 
void make_coarse_vector(AFIELD1 &coarse_vector, const AFIELD2 &fine_vector) const
 
Container of Field-type object.
 
void set_afopr_coarse(AFopr< AFIELD1 > *afopr)