Bridge++  Ver. 2.0.2
AFopr_Chebyshev< AFIELD > Class Template Reference

Chebyshev polynomial. More...

#include <afopr_Chebyshev.h>

Inheritance diagram for AFopr_Chebyshev< AFIELD >:
AFopr< AFIELD >

Public Types

typedef AFIELD::real_t real_t
 

Public Member Functions

 AFopr_Chebyshev (AFopr< AFIELD > *fopr, const Parameters &params)
 standard constructor. More...
 
DEPRECATED AFopr_Chebyshev (AFopr< AFIELD > *fopr)
 
 ~AFopr_Chebyshev ()
 
void set_parameters (const Parameters &params)
 setting parameters with a Parameter object. More...
 
void set_parameters (const int Np, const real_t v_threshold, const real_t v_max)
 setting parameters with values. More...
 
void get_parameters (Parameters &params) const
 gets parameters by a Parameter object: to be implemented in a subclass. More...
 
void set_config (Field *U)
 setting gauge configuration. More...
 
void set_mode (std::string mode)
 setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelevant call. More...
 
std::string get_mode () const
 returns the current mult mode. More...
 
void mult (AFIELD &v, const AFIELD &w)
 multiplies fermion operator to a given field. More...
 
void mult_dag (AFIELD &v, const AFIELD &w)
 hermitian conjugate of mult. More...
 
void mult (real_t &v, const real_t x)
 
real_t mult (const real_t x)
 
virtual bool needs_convert ()
 returns true if additional field conversion is needed. More...
 
virtual void convert (AFIELD &v, const Field &w)
 converts a Field object into other format if necessary. More...
 
virtual void reverse (Field &v, const AFIELD &w)
 reverses to a Field object from other format if necessary. More...
 
int field_nin ()
 returns the on-site degree of freedom of the fermion field. More...
 
int field_nvol ()
 returns the volume of the fermion field. More...
 
int field_nex ()
 returns the external degree of freedom of the fermion field. More...
 
double flop_count ()
 returns the number of floating point operations. More...
 
const std::string class_name
 
- Public Member Functions inherited from AFopr< AFIELD >
 AFopr ()
 
virtual ~AFopr ()
 
virtual void mult (AFIELD &, const AFIELD &, const std::string mode)
 executes mult with specified mode (unchanging internal mode). More...
 
virtual void mult_dag (AFIELD &, const AFIELD &, const std::string mode)
 executes mult_dag with specified mode (unchanging internal mode). More...
 
virtual void mult_gm5 (AFIELD &, const AFIELD &)
 multiplies gamma_5 matrix. More...
 
virtual void mult_up (int mu, AFIELD &, const AFIELD &)
 upward nearest neighbor hopping term. More...
 
virtual void mult_dn (int mu, AFIELD &, const AFIELD &)
 downward nearest neighbor hopping term. More...
 
virtual void normalize_fprop (AFIELD &)
 normalize propagator if necessary (default: do nothing) More...
 
virtual void normalize_fopr (AFIELD &)
 normalize propagator if necessary (default: do nothing) More...
 
virtual double flop_count (const std::string mode)
 returns the flops per site for specified mode. More...
 

Static Public Attributes

static const std::string class_name = "AFopr_Chebyshev"
 

Private Member Functions

void init (const Parameters &params)
 initial setup. More...
 
void init ()
 initial setup (obsolete). More...
 
void tidyup ()
 final cleanup. More...
 

Private Attributes

int m_NinF
 
int m_Nvol
 
int m_NexF
 
int m_Npcb
 
real_t m_Vthrs
 
real_t m_Vmax
 
real_t m_Fcb1
 
real_t m_Fcb2
 
AFopr< AFIELD > * m_fopr
 
std::string m_mode
 mult mode More...
 
Bridge::VerboseLevel m_vl
 verbose level More...
 
std::vector< AFIELDm_dj
 

Additional Inherited Members

- Static Protected Attributes inherited from AFopr< AFIELD >
static const std::string class_name
 

Detailed Description

template<typename AFIELD>
class AFopr_Chebyshev< AFIELD >

Chebyshev polynomial.

This class implements the chebyshev polynomial of a fermion operator. Based on Fopr_Chebyshev and modified so that double/float can be swtched. [12 Jul 2018 H.Matsufuru]

Definition at line 34 of file afopr_Chebyshev.h.

Member Typedef Documentation

◆ real_t

template<typename AFIELD >
typedef AFIELD::real_t AFopr_Chebyshev< AFIELD >::real_t

Definition at line 38 of file afopr_Chebyshev.h.

Constructor & Destructor Documentation

◆ AFopr_Chebyshev() [1/2]

template<typename AFIELD >
AFopr_Chebyshev< AFIELD >::AFopr_Chebyshev ( AFopr< AFIELD > *  fopr,
const Parameters params 
)
inline

standard constructor.

Definition at line 56 of file afopr_Chebyshev.h.

◆ AFopr_Chebyshev() [2/2]

template<typename AFIELD >
DEPRECATED AFopr_Chebyshev< AFIELD >::AFopr_Chebyshev ( AFopr< AFIELD > *  fopr)
inline

Definition at line 62 of file afopr_Chebyshev.h.

◆ ~AFopr_Chebyshev()

template<typename AFIELD >
AFopr_Chebyshev< AFIELD >::~AFopr_Chebyshev ( )
inline

Definition at line 66 of file afopr_Chebyshev.h.

Member Function Documentation

◆ class_name()

const std::string AFopr_Chebyshev< Field >::class_name

Definition at line 23 of file fopr_Chebyshev.cpp.

◆ convert()

template<typename AFIELD >
virtual void AFopr_Chebyshev< AFIELD >::convert ( AFIELD v,
const Field w 
)
inlinevirtual

converts a Field object into other format if necessary.

Reimplemented from AFopr< AFIELD >.

Definition at line 101 of file afopr_Chebyshev.h.

◆ field_nex()

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::field_nex ( )
inlinevirtual

returns the external degree of freedom of the fermion field.

Implements AFopr< AFIELD >.

Definition at line 110 of file afopr_Chebyshev.h.

◆ field_nin()

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::field_nin ( )
inlinevirtual

returns the on-site degree of freedom of the fermion field.

Implements AFopr< AFIELD >.

Definition at line 108 of file afopr_Chebyshev.h.

◆ field_nvol()

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::field_nvol ( )
inlinevirtual

returns the volume of the fermion field.

Implements AFopr< AFIELD >.

Definition at line 109 of file afopr_Chebyshev.h.

◆ flop_count()

template<typename AFIELD >
double AFopr_Chebyshev< AFIELD >::flop_count
virtual

returns the number of floating point operations.

Reimplemented from AFopr< AFIELD >.

Definition at line 272 of file afopr_Chebyshev-tmpl.h.

◆ get_mode()

template<typename AFIELD >
std::string AFopr_Chebyshev< AFIELD >::get_mode
virtual

returns the current mult mode.

Reimplemented from AFopr< AFIELD >.

Definition at line 186 of file afopr_Chebyshev-tmpl.h.

◆ get_parameters()

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::get_parameters ( Parameters params) const
virtual

gets parameters by a Parameter object: to be implemented in a subclass.

Reimplemented from AFopr< AFIELD >.

Definition at line 157 of file afopr_Chebyshev-tmpl.h.

◆ init() [1/2]

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::init
private

initial setup (obsolete).

Definition at line 49 of file afopr_Chebyshev-tmpl.h.

◆ init() [2/2]

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::init ( const Parameters params)
private

initial setup.

Definition at line 20 of file afopr_Chebyshev-tmpl.h.

◆ mult() [1/3]

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::mult ( AFIELD ,
const AFIELD  
)
virtual

multiplies fermion operator to a given field.

Reimplemented from AFopr< AFIELD >.

Definition at line 194 of file afopr_Chebyshev-tmpl.h.

◆ mult() [2/3]

template<typename AFIELD >
AFIELD::real_t AFopr_Chebyshev< AFIELD >::mult ( const real_t  x)

Definition at line 262 of file afopr_Chebyshev-tmpl.h.

◆ mult() [3/3]

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::mult ( real_t v,
const real_t  x 
)

Definition at line 229 of file afopr_Chebyshev-tmpl.h.

◆ mult_dag()

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::mult_dag ( AFIELD ,
const AFIELD  
)
inlinevirtual

hermitian conjugate of mult.

Reimplemented from AFopr< AFIELD >.

Definition at line 87 of file afopr_Chebyshev.h.

◆ needs_convert()

template<typename AFIELD >
virtual bool AFopr_Chebyshev< AFIELD >::needs_convert ( )
inlinevirtual

returns true if additional field conversion is needed.

Reimplemented from AFopr< AFIELD >.

Definition at line 97 of file afopr_Chebyshev.h.

◆ reverse()

template<typename AFIELD >
virtual void AFopr_Chebyshev< AFIELD >::reverse ( Field v,
const AFIELD w 
)
inlinevirtual

reverses to a Field object from other format if necessary.

Reimplemented from AFopr< AFIELD >.

Definition at line 105 of file afopr_Chebyshev.h.

◆ set_config()

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::set_config ( Field U)
virtual

setting gauge configuration.

Implements AFopr< AFIELD >.

Definition at line 169 of file afopr_Chebyshev-tmpl.h.

◆ set_mode()

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::set_mode ( std::string  mode)
virtual

setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelevant call.

Reimplemented from AFopr< AFIELD >.

Definition at line 177 of file afopr_Chebyshev-tmpl.h.

◆ set_parameters() [1/2]

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::set_parameters ( const int  Np,
const real_t  v_threshold,
const real_t  v_max 
)

setting parameters with values.

Definition at line 114 of file afopr_Chebyshev-tmpl.h.

◆ set_parameters() [2/2]

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::set_parameters ( const Parameters params)
virtual

setting parameters with a Parameter object.

Reimplemented from AFopr< AFIELD >.

Definition at line 86 of file afopr_Chebyshev-tmpl.h.

◆ tidyup()

template<typename AFIELD >
void AFopr_Chebyshev< AFIELD >::tidyup
private

final cleanup.

Definition at line 78 of file afopr_Chebyshev-tmpl.h.

Member Data Documentation

◆ class_name

template<typename AFIELD >
const std::string AFopr_Chebyshev< AFIELD >::class_name = "AFopr_Chebyshev"
static

Definition at line 37 of file afopr_Chebyshev.h.

◆ m_dj

template<typename AFIELD >
std::vector<AFIELD> AFopr_Chebyshev< AFIELD >::m_dj
private

Definition at line 52 of file afopr_Chebyshev.h.

◆ m_Fcb1

template<typename AFIELD >
real_t AFopr_Chebyshev< AFIELD >::m_Fcb1
private

Definition at line 44 of file afopr_Chebyshev.h.

◆ m_Fcb2

template<typename AFIELD >
real_t AFopr_Chebyshev< AFIELD >::m_Fcb2
private

Definition at line 44 of file afopr_Chebyshev.h.

◆ m_fopr

template<typename AFIELD >
AFopr<AFIELD>* AFopr_Chebyshev< AFIELD >::m_fopr
private

Definition at line 46 of file afopr_Chebyshev.h.

◆ m_mode

template<typename AFIELD >
std::string AFopr_Chebyshev< AFIELD >::m_mode
private

mult mode

Definition at line 48 of file afopr_Chebyshev.h.

◆ m_NexF

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::m_NexF
private

Definition at line 41 of file afopr_Chebyshev.h.

◆ m_NinF

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::m_NinF
private

Definition at line 41 of file afopr_Chebyshev.h.

◆ m_Npcb

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::m_Npcb
private

Definition at line 42 of file afopr_Chebyshev.h.

◆ m_Nvol

template<typename AFIELD >
int AFopr_Chebyshev< AFIELD >::m_Nvol
private

Definition at line 41 of file afopr_Chebyshev.h.

◆ m_vl

template<typename AFIELD >
Bridge::VerboseLevel AFopr_Chebyshev< AFIELD >::m_vl
private

verbose level

Definition at line 50 of file afopr_Chebyshev.h.

◆ m_Vmax

template<typename AFIELD >
real_t AFopr_Chebyshev< AFIELD >::m_Vmax
private

Definition at line 43 of file afopr_Chebyshev.h.

◆ m_Vthrs

template<typename AFIELD >
real_t AFopr_Chebyshev< AFIELD >::m_Vthrs
private

Definition at line 43 of file afopr_Chebyshev.h.


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