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)