Bridge++  Ver. 2.0.2
MultiGrid_Clover< AFIELD1, AFIELD2 > Class Template Reference

#include <MultiGrid_Clover.h>

Inheritance diagram for MultiGrid_Clover< AFIELD1, AFIELD2 >:
MultiGrid< AFIELD1, AFIELD2 >

Public Types

typedef AFIELD1 AField_coarse_t
 
typedef AFIELD2 AField_fine_t
 
typedef AIndex_block_lex< typename AFIELD2::real_t, AFIELD2::IMPL > Index_t
 
typedef AFopr_Clover_dd< AFIELD2 > Afopr_fine_dd_t
 
typedef void Afopr_coarse_t
 
- Public Types inherited from MultiGrid< AFIELD1, AFIELD2 >
typedef AFIELD1 Afield_coarse_t
 
typedef AFIELD2 Afield_fine_t
 
typedef AIndex_block_lex< typename AFIELD2::real_t, AFIELD2::IMPL > Index_t
 

Public Member Functions

 MultiGrid_Clover ()
 
 MultiGrid_Clover (const std::vector< int > &coarse_lattice, const std::vector< int > &fine_lattice, const int nin, const int nvec)
 
 ~MultiGrid_Clover ()
 
void init (const std::vector< int > &coarse_lattice, const std::vector< int > &fine_lattice, const int nin, const int nvec)
 
void init_resources ()
 
void tidyup ()
 
const Index_tget_block_index () const
 
std::vector< AFIELD2 > * get_testvectors ()
 
const std::vector< AFIELD2 > * get_testvectors () const
 
void set_testvectors ()
 
void set_testvectors (const std::vector< AFIELD2 > &)
 
void set_coarse_array (const AFIELD1 &coarse_vector) const
 array <- vector (function for optimization) More...
 
void set_coarse_vector (AFIELD1 &coarse_vector) const
 vector <- array (function for optimization) More...
 
void set_afopr_fine (AFopr_dd< AFIELD2 > *afopr)
 
void set_afopr_coarse (AFopr< AFIELD1 > *afopr)
 
void gramschmidt ()
 
void gramschmidt (std::vector< AFIELD2 > &fine_vectors) const
 
void gramschmidt_double (std::vector< AFIELD2 > &fine_vectors) const
 
void make_fine_vector (AFIELD2 &fine_vector, const AFIELD1 &coarse_vector) const
 
void make_coarse_vector (AFIELD1 &coarse_vector, const AFIELD2 &fine_vector) const
 
const std::string class_name
 
const std::string class_name
 
- Public Member Functions inherited from MultiGrid< AFIELD1, AFIELD2 >
 MultiGrid ()
 
 MultiGrid (const std::vector< int > &coarse_lattice, const std::vector< int > &fine_lattice, const int nin=0, const int nvec=0)
 
virtual ~MultiGrid ()
 
virtual void set_afopr_fine (AFopr< AFIELD2 > *afopr)
 

Static Public Attributes

static const std::string class_name
 

Protected Attributes

AFopr< AFIELD2 > * m_afopr_fine = nullptr
 
Index_t m_block_index
 
std::vector< AFIELD2 > m_testvectors
 
AFIELD2 m_tmp1
 
AFIELD2 m_tmp2
 
Field m_field_tmp
 
int m_nin
 
int m_nvec
 
size_t m_fine_nvol
 
std::vector< typename AFIELD2::real_tm_real_array
 
std::vector< typename AFIELD2::complex_tm_complex_array
 
std::vector< typename AFIELD2::complex_tm_complex_array2
 
std::vector< typename AFIELD2::complex_tm_coarse_array
 
- Protected Attributes inherited from MultiGrid< AFIELD1, AFIELD2 >
Bridge::VerboseLevel m_vl
 

Additional Inherited Members

- Static Protected Attributes inherited from MultiGrid< AFIELD1, AFIELD2 >
static const std::string class_name
 

Detailed Description

template<class AFIELD1, class AFIELD2>
class MultiGrid_Clover< AFIELD1, AFIELD2 >

Definition at line 25 of file MultiGrid_Clover.h.

Member Typedef Documentation

◆ AField_coarse_t

template<class AFIELD1 , class AFIELD2 >
typedef AFIELD1 MultiGrid_Clover< AFIELD1, AFIELD2 >::AField_coarse_t

Definition at line 28 of file MultiGrid_Clover.h.

◆ AField_fine_t

template<class AFIELD1 , class AFIELD2 >
typedef AFIELD2 MultiGrid_Clover< AFIELD1, AFIELD2 >::AField_fine_t

Definition at line 29 of file MultiGrid_Clover.h.

◆ Afopr_coarse_t

template<class AFIELD1 , class AFIELD2 >
typedef void MultiGrid_Clover< AFIELD1, AFIELD2 >::Afopr_coarse_t

Definition at line 33 of file MultiGrid_Clover.h.

◆ Afopr_fine_dd_t

template<class AFIELD1 , class AFIELD2 >
typedef AFopr_Clover_dd<AFIELD2> MultiGrid_Clover< AFIELD1, AFIELD2 >::Afopr_fine_dd_t

Definition at line 32 of file MultiGrid_Clover.h.

◆ Index_t

template<class AFIELD1 , class AFIELD2 >
typedef AIndex_block_lex<typename AFIELD2::real_t, AFIELD2::IMPL> MultiGrid_Clover< AFIELD1, AFIELD2 >::Index_t

Definition at line 30 of file MultiGrid_Clover.h.

Constructor & Destructor Documentation

◆ MultiGrid_Clover() [1/2]

template<class AFIELD1 , class AFIELD2 >
MultiGrid_Clover< AFIELD1, AFIELD2 >::MultiGrid_Clover ( )
inline

Definition at line 55 of file MultiGrid_Clover.h.

◆ MultiGrid_Clover() [2/2]

template<class AFIELD1 , class AFIELD2 >
MultiGrid_Clover< AFIELD1, AFIELD2 >::MultiGrid_Clover ( const std::vector< int > &  coarse_lattice,
const std::vector< int > &  fine_lattice,
const int  nin,
const int  nvec 
)
inline

Definition at line 56 of file MultiGrid_Clover.h.

◆ ~MultiGrid_Clover()

template<class AFIELD1 , class AFIELD2 >
MultiGrid_Clover< AFIELD1, AFIELD2 >::~MultiGrid_Clover ( )
inline

Definition at line 63 of file MultiGrid_Clover.h.

Member Function Documentation

◆ class_name() [1/2]

const std::string MultiGrid_Clover< AField_d, AField_d >::class_name

Definition at line 50 of file MultiGrid_Clover_double.cpp.

◆ class_name() [2/2]

const std::string MultiGrid_Clover< AField_f, AField_f >::class_name

Definition at line 50 of file MultiGrid_Clover_float.cpp.

◆ get_block_index()

template<class AFIELD1 , class AFIELD2 >
const Index_t* MultiGrid_Clover< AFIELD1, AFIELD2 >::get_block_index ( ) const
inlinevirtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 91 of file MultiGrid_Clover.h.

◆ get_testvectors() [1/2]

template<class AFIELD1 , class AFIELD2 >
std::vector<AFIELD2>* MultiGrid_Clover< AFIELD1, AFIELD2 >::get_testvectors ( )
inlinevirtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 96 of file MultiGrid_Clover.h.

◆ get_testvectors() [2/2]

template<class AFIELD1 , class AFIELD2 >
const std::vector<AFIELD2>* MultiGrid_Clover< AFIELD1, AFIELD2 >::get_testvectors ( ) const
inlinevirtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 101 of file MultiGrid_Clover.h.

◆ gramschmidt() [1/2]

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::gramschmidt
virtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 639 of file MultiGrid_Clover-tmpl.h.

◆ gramschmidt() [2/2]

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::gramschmidt ( std::vector< AFIELD2 > &  fine_vectors) const
virtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 647 of file MultiGrid_Clover-tmpl.h.

◆ gramschmidt_double()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::gramschmidt_double ( std::vector< AFIELD2 > &  fine_vectors) const

Definition at line 664 of file MultiGrid_Clover-tmpl.h.

◆ init()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::init ( const std::vector< int > &  coarse_lattice,
const std::vector< int > &  fine_lattice,
const int  nin,
const int  nvec 
)
inlinevirtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 68 of file MultiGrid_Clover.h.

◆ init_resources()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::init_resources

Definition at line 370 of file MultiGrid_Clover-tmpl.h.

◆ make_coarse_vector()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::make_coarse_vector ( AFIELD1 &  coarse_vector,
const AFIELD2 &  fine_vector 
) const
virtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 589 of file MultiGrid_Clover-tmpl.h.

◆ make_fine_vector()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::make_fine_vector ( AFIELD2 &  fine_vector,
const AFIELD1 &  coarse_vector 
) const
virtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 521 of file MultiGrid_Clover-tmpl.h.

◆ set_afopr_coarse()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::set_afopr_coarse ( AFopr< AFIELD1 > *  afopr)
inlinevirtual

Reimplemented from MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 130 of file MultiGrid_Clover.h.

◆ set_afopr_fine()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::set_afopr_fine ( AFopr_dd< AFIELD2 > *  afopr)
inline

Definition at line 116 of file MultiGrid_Clover.h.

◆ set_coarse_array()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::set_coarse_array ( const AFIELD1 &  coarse_vector) const

array <- vector (function for optimization)

Definition at line 412 of file MultiGrid_Clover-tmpl.h.

◆ set_coarse_vector()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::set_coarse_vector ( AFIELD1 &  coarse_vector) const

vector <- array (function for optimization)

Definition at line 472 of file MultiGrid_Clover-tmpl.h.

◆ set_testvectors() [1/2]

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::set_testvectors
virtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 395 of file MultiGrid_Clover-tmpl.h.

◆ set_testvectors() [2/2]

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::set_testvectors ( const std::vector< AFIELD2 > &  w)
virtual

Implements MultiGrid< AFIELD1, AFIELD2 >.

Definition at line 385 of file MultiGrid_Clover-tmpl.h.

◆ tidyup()

template<class AFIELD1 , class AFIELD2 >
void MultiGrid_Clover< AFIELD1, AFIELD2 >::tidyup ( )
inline

Definition at line 89 of file MultiGrid_Clover.h.

Member Data Documentation

◆ class_name

template<class AFIELD1 , class AFIELD2 >
const std::string MultiGrid_Clover< AFIELD1, AFIELD2 >::class_name
static

Definition at line 34 of file MultiGrid_Clover.h.

◆ m_afopr_fine

template<class AFIELD1 , class AFIELD2 >
AFopr<AFIELD2>* MultiGrid_Clover< AFIELD1, AFIELD2 >::m_afopr_fine = nullptr
protected

Definition at line 39 of file MultiGrid_Clover.h.

◆ m_block_index

template<class AFIELD1 , class AFIELD2 >
Index_t MultiGrid_Clover< AFIELD1, AFIELD2 >::m_block_index
protected

Definition at line 40 of file MultiGrid_Clover.h.

◆ m_coarse_array

template<class AFIELD1 , class AFIELD2 >
std::vector<typename AFIELD2::complex_t> MultiGrid_Clover< AFIELD1, AFIELD2 >::m_coarse_array
mutableprotected

Definition at line 52 of file MultiGrid_Clover.h.

◆ m_complex_array

template<class AFIELD1 , class AFIELD2 >
std::vector<typename AFIELD2::complex_t> MultiGrid_Clover< AFIELD1, AFIELD2 >::m_complex_array
mutableprotected

Definition at line 49 of file MultiGrid_Clover.h.

◆ m_complex_array2

template<class AFIELD1 , class AFIELD2 >
std::vector<typename AFIELD2::complex_t> MultiGrid_Clover< AFIELD1, AFIELD2 >::m_complex_array2
mutableprotected

Definition at line 50 of file MultiGrid_Clover.h.

◆ m_field_tmp

template<class AFIELD1 , class AFIELD2 >
Field MultiGrid_Clover< AFIELD1, AFIELD2 >::m_field_tmp
protected

Definition at line 43 of file MultiGrid_Clover.h.

◆ m_fine_nvol

template<class AFIELD1 , class AFIELD2 >
size_t MultiGrid_Clover< AFIELD1, AFIELD2 >::m_fine_nvol
protected

Definition at line 47 of file MultiGrid_Clover.h.

◆ m_nin

template<class AFIELD1 , class AFIELD2 >
int MultiGrid_Clover< AFIELD1, AFIELD2 >::m_nin
protected

Definition at line 45 of file MultiGrid_Clover.h.

◆ m_nvec

template<class AFIELD1 , class AFIELD2 >
int MultiGrid_Clover< AFIELD1, AFIELD2 >::m_nvec
protected

Definition at line 46 of file MultiGrid_Clover.h.

◆ m_real_array

template<class AFIELD1 , class AFIELD2 >
std::vector<typename AFIELD2::real_t> MultiGrid_Clover< AFIELD1, AFIELD2 >::m_real_array
mutableprotected

Definition at line 48 of file MultiGrid_Clover.h.

◆ m_testvectors

template<class AFIELD1 , class AFIELD2 >
std::vector<AFIELD2> MultiGrid_Clover< AFIELD1, AFIELD2 >::m_testvectors
protected

Definition at line 41 of file MultiGrid_Clover.h.

◆ m_tmp1

template<class AFIELD1 , class AFIELD2 >
AFIELD2 MultiGrid_Clover< AFIELD1, AFIELD2 >::m_tmp1
mutableprotected

Definition at line 42 of file MultiGrid_Clover.h.

◆ m_tmp2

template<class AFIELD1 , class AFIELD2 >
AFIELD2 MultiGrid_Clover< AFIELD1, AFIELD2 >::m_tmp2
protected

Definition at line 42 of file MultiGrid_Clover.h.


The documentation for this class was generated from the following files: