Bridge++  Ver.2.1.3
AFopr_CloverTerm< AFIELD > Class Template Reference

#include <afopr_CloverTerm.h>

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

Public Types

typedef AFIELD::real_t real_t
 

Public Member Functions

 AFopr_CloverTerm (const Parameters &params)
 constructor. More...
 
 ~AFopr_CloverTerm ()
 destructor. More...
 
void set_parameters (const Parameters &params)
 setting parameters by a Parameter object. More...
 
void set_parameters (real_t CKs, real_t csW, std::vector< int > bc)
 setting parameters by values. More...
 
void set_config (Field *u)
 setting gauge configuration. More...
 
void set_boundary_config (AFIELD &U, const int mu)
 setting fermion boundary condition to gauge field. More...
 
Field * get_conf (void)
 returns the pointer to gauge configuration. More...
 
void set_mode (std::string mode)
 setting mult mode. More...
 
std::string get_mode () const
 returns mult mode. More...
 
void mult (AFIELD &, const AFIELD &)
 multiplies fermion operator to a given field. More...
 
void mult_dag (AFIELD &, const AFIELD &)
 hermitian conjugate of mult. More...
 
void mult_gm5 (AFIELD &, const AFIELD &)
 multiplies gamma_5 matrix. More...
 
void mult (AFIELD &, const AFIELD &, const std::string mode)
 executes mult with specified mode (unchanging internal mode). More...
 
void H (AFIELD &, const AFIELD &)
 
void D (AFIELD &, const AFIELD &)
 
void mult_csw (AFIELD &, const AFIELD &)
 
void multadd_csw (AFIELD &, const AFIELD &)
 
void mult_csw_inv (AFIELD &, const AFIELD &)
 
void get_csw (AFIELD &T)
 getting clover term. More...
 
void get_csw_inv (AFIELD &T)
 getting the inverse of clover term. More...
 
void get_csw_inv (AFIELD &T, const int)
 getting the inverse of clover term with index. More...
 
int field_nin ()
 returns inner size parameter. More...
 
int field_nvol ()
 returns local volume size parameter. More...
 
int field_nex ()
 returns external size parameter. More...
 
double flop_count ()
 returns floating operation counts. More...
 
const std::string class_name
 
const std::string class_name
 
- Public Member Functions inherited from AFopr< AFIELD >
 AFopr ()
 
virtual ~AFopr ()
 
virtual void get_parameters (Parameters &params) const
 gets parameters by a Parameter object: to be implemented in a subclass. 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_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...
 
virtual bool needs_convert ()
 returns true if additional field conversion is needed. More...
 
virtual void convert (AFIELD &, const Field &)
 converts a Field object into other format if necessary. More...
 
virtual void reverse (Field &, const AFIELD &)
 converts an alternative field to a Field object. More...
 

Static Public Attributes

static const std::string class_name = "AFopr_CloverTerm<AFIELD>"
 

Protected Types

enum  Gamma_repr { DIRAC, CHIRAL }
 

Protected Attributes

enum AFopr_CloverTerm::Gamma_repr m_repr
 gamma matrix representation More...
 
int m_Nc
 
int m_Nd
 
int m_Ndim
 
int m_Nvc
 
int m_Ndf
 
int m_Ndm2
 
int m_Nx
 
int m_Ny
 
int m_Nz
 
int m_Nt
 
int m_Nst
 
real_t m_CKs
 hopping parameter. More...
 
real_t m_cSW
 clover coefficient. More...
 
std::vector< int > m_boundary
 pointer to boundary condition More...
 
Bridge::VerboseLevel m_vl
 verbose level More...
 
Field * m_conf
 original gauge config. More...
 
AFIELD m_U
 copied gauge config. with boundary conditions. More...
 
std::string m_mode
 mult mode More...
 
AStaple_lex< AFIELD > * m_staple
 
ASolver< AFIELD > * m_solver
 
AFIELD m_T
 
AFIELD m_Tinv
 clover term (+1) and its inverse. More...
 
AFIELD m_v1
 
AFIELD m_v2
 working spinor fields. More...
 
AFIELD m_ut1
 
AFIELD m_ut2
 working gauge fields. More...
 
AFIELD m_U2
 
AFIELD m_F2
 working gauge fields. More...
 
int do_comm [4]
 
int do_comm_any
 
int m_Nsize [4]
 

Private Member Functions

void init (const Parameters &params)
 initial setup. More...
 
void tidyup ()
 final tidy-up. More...
 
void setup_channels ()
 setup channels for communication. More...
 
void set_config_omp (Field *u)
 
void set_config_impl (Field *u)
 
void set_csw (Field &u)
 setting clover term. More...
 
void solve_csw_inv ()
 solve the inverse of clover term. More...
 
void solve_csw_inv_dirac ()
 
void solve_csw_inv_chiral ()
 
void set_csw_dirac (Field &u)
 setting clover term (Dirac repr). More...
 
void set_csw_chiral (Field &u)
 setting clover term (Chiral repr). More...
 
void set_fieldstrength (AFIELD &Fst, AFIELD &u, int, int)
 setting field strength. More...
 
void multadd_csw (real_t *v2, real_t *v1)
 multiply diagonal term. More...
 
void multadd_csw_dirac (real_t *v2, real_t *v1, int site)
 multiply diagonal term at each site (Dirac repr). More...
 
void multadd_csw_chiral (real_t *v2, real_t *v1, int site)
 multiply diagonal term at each site (Chiral repr). More...
 
void mult_gm5 (real_t *, real_t *)
 

Additional Inherited Members

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

Detailed Description

template<typename AFIELD>
class AFopr_CloverTerm< AFIELD >

Definition at line 31 of file afopr_CloverTerm.h.

Member Typedef Documentation

◆ real_t

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

Definition at line 34 of file afopr_CloverTerm.h.

Member Enumeration Documentation

◆ Gamma_repr

template<typename AFIELD >
enum AFopr_CloverTerm::Gamma_repr
protected
Enumerator
DIRAC 
CHIRAL 

Definition at line 38 of file afopr_CloverTerm.h.

Constructor & Destructor Documentation

◆ AFopr_CloverTerm()

template<typename AFIELD >
AFopr_CloverTerm< AFIELD >::AFopr_CloverTerm ( const Parameters &  params)
inline

constructor.

Definition at line 73 of file afopr_CloverTerm.h.

◆ ~AFopr_CloverTerm()

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

destructor.

Definition at line 76 of file afopr_CloverTerm.h.

Member Function Documentation

◆ class_name() [1/2]

const std::string AFopr_CloverTerm< AField< double, ACCEL > >::class_name

Definition at line 46 of file afopr_CloverTerm_double.cpp.

◆ class_name() [2/2]

const std::string AFopr_CloverTerm< AField< float, ACCEL > >::class_name

Definition at line 46 of file afopr_CloverTerm_float.cpp.

◆ D()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::D ( AFIELD &  v,
const AFIELD &  w 
)

Definition at line 830 of file afopr_CloverTerm-tmpl.h.

◆ field_nex()

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

returns external size parameter.

Implements AFopr< AFIELD >.

Definition at line 132 of file afopr_CloverTerm.h.

◆ field_nin()

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

returns inner size parameter.

Implements AFopr< AFIELD >.

Definition at line 126 of file afopr_CloverTerm.h.

◆ field_nvol()

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

returns local volume size parameter.

Implements AFopr< AFIELD >.

Definition at line 129 of file afopr_CloverTerm.h.

◆ flop_count()

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

returns floating operation counts.

Reimplemented from AFopr< AFIELD >.

Definition at line 941 of file afopr_CloverTerm-tmpl.h.

◆ get_conf()

template<typename AFIELD >
Field* AFopr_CloverTerm< AFIELD >::get_conf ( void  )
inline

returns the pointer to gauge configuration.

Definition at line 94 of file afopr_CloverTerm.h.

◆ get_csw()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::get_csw ( AFIELD &  T)

getting clover term.

Definition at line 451 of file afopr_CloverTerm-tmpl.h.

◆ get_csw_inv() [1/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::get_csw_inv ( AFIELD &  T)

getting the inverse of clover term.

Definition at line 465 of file afopr_CloverTerm-tmpl.h.

◆ get_csw_inv() [2/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::get_csw_inv ( AFIELD &  T,
const int  j 
)

getting the inverse of clover term with index.

Definition at line 493 of file afopr_CloverTerm-tmpl.h.

◆ get_mode()

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

returns mult mode.

Reimplemented from AFopr< AFIELD >.

Definition at line 761 of file afopr_CloverTerm-tmpl.h.

◆ H()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::H ( AFIELD &  v,
const AFIELD &  w 
)

Definition at line 837 of file afopr_CloverTerm-tmpl.h.

◆ init()

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

initial setup.

Definition at line 16 of file afopr_CloverTerm-tmpl.h.

◆ mult() [1/2]

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

multiplies fermion operator to a given field.

Reimplemented from AFopr< AFIELD >.

Definition at line 768 of file afopr_CloverTerm-tmpl.h.

◆ mult() [2/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::mult ( AFIELD &  ,
const AFIELD &  ,
const std::string  mode 
)
virtual

executes mult with specified mode (unchanging internal mode).

Reimplemented from AFopr< AFIELD >.

Definition at line 802 of file afopr_CloverTerm-tmpl.h.

◆ mult_csw()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::mult_csw ( AFIELD &  v,
const AFIELD &  w 
)

Definition at line 866 of file afopr_CloverTerm-tmpl.h.

◆ mult_csw_inv()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::mult_csw_inv ( AFIELD &  v,
const AFIELD &  w 
)

Definition at line 891 of file afopr_CloverTerm-tmpl.h.

◆ mult_dag()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::mult_dag ( AFIELD &  ,
const AFIELD &   
)
virtual

hermitian conjugate of mult.

Reimplemented from AFopr< AFIELD >.

Definition at line 785 of file afopr_CloverTerm-tmpl.h.

◆ mult_gm5() [1/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::mult_gm5 ( AFIELD &  ,
const AFIELD &   
)
virtual

multiplies gamma_5 matrix.

Reimplemented from AFopr< AFIELD >.

Definition at line 819 of file afopr_CloverTerm-tmpl.h.

◆ mult_gm5() [2/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::mult_gm5 ( real_t *  v,
real_t *  w 
)
private

Definition at line 845 of file afopr_CloverTerm-tmpl.h.

◆ multadd_csw() [1/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::multadd_csw ( AFIELD &  v,
const AFIELD &  w 
)

Definition at line 916 of file afopr_CloverTerm-tmpl.h.

◆ multadd_csw() [2/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::multadd_csw ( real_t *  v2,
real_t *  v1 
)
private

multiply diagonal term.

◆ multadd_csw_chiral()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::multadd_csw_chiral ( real_t *  v2,
real_t *  v1,
int  site 
)
private

multiply diagonal term at each site (Chiral repr).

◆ multadd_csw_dirac()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::multadd_csw_dirac ( real_t *  v2,
real_t *  v1,
int  site 
)
private

multiply diagonal term at each site (Dirac repr).

◆ set_boundary_config()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_boundary_config ( AFIELD &  U,
const int  mu 
)

setting fermion boundary condition to gauge field.

◆ set_config()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_config ( Field *  u)
virtual

setting gauge configuration.

Implements AFopr< AFIELD >.

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

◆ set_config_impl()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_config_impl ( Field *  u)
private

Definition at line 209 of file afopr_CloverTerm-tmpl.h.

◆ set_config_omp()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_config_omp ( Field *  u)
private

Definition at line 199 of file afopr_CloverTerm-tmpl.h.

◆ set_csw()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_csw ( Field &  u)
private

setting clover term.

Definition at line 255 of file afopr_CloverTerm-tmpl.h.

◆ set_csw_chiral()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_csw_chiral ( Field &  u)
private

setting clover term (Chiral repr).

Definition at line 612 of file afopr_CloverTerm-tmpl.h.

◆ set_csw_dirac()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_csw_dirac ( Field &  u)
private

setting clover term (Dirac repr).

T = 1 - kappa c_SW sigma F / 2

Definition at line 517 of file afopr_CloverTerm-tmpl.h.

◆ set_fieldstrength()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_fieldstrength ( AFIELD &  Fst,
AFIELD &  u,
int  mu,
int  nu 
)
private

setting field strength.

Definition at line 719 of file afopr_CloverTerm-tmpl.h.

◆ set_mode()

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

setting mult mode.

Reimplemented from AFopr< AFIELD >.

Definition at line 748 of file afopr_CloverTerm-tmpl.h.

◆ set_parameters() [1/2]

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

setting parameters by a Parameter object.

Reimplemented from AFopr< AFIELD >.

Definition at line 105 of file afopr_CloverTerm-tmpl.h.

◆ set_parameters() [2/2]

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::set_parameters ( real_t  CKs,
real_t  csW,
std::vector< int >  bc 
)

setting parameters by values.

Definition at line 149 of file afopr_CloverTerm-tmpl.h.

◆ setup_channels()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::setup_channels ( )
private

setup channels for communication.

◆ solve_csw_inv()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::solve_csw_inv
private

solve the inverse of clover term.

Definition at line 271 of file afopr_CloverTerm-tmpl.h.

◆ solve_csw_inv_chiral()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::solve_csw_inv_chiral
private

Definition at line 379 of file afopr_CloverTerm-tmpl.h.

◆ solve_csw_inv_dirac()

template<typename AFIELD >
void AFopr_CloverTerm< AFIELD >::solve_csw_inv_dirac
private

Definition at line 321 of file afopr_CloverTerm-tmpl.h.

◆ tidyup()

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

final tidy-up.

Definition at line 94 of file afopr_CloverTerm-tmpl.h.

Member Data Documentation

◆ class_name

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

Definition at line 35 of file afopr_CloverTerm.h.

◆ do_comm

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::do_comm[4]
protected

Definition at line 66 of file afopr_CloverTerm.h.

◆ do_comm_any

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::do_comm_any
protected

Definition at line 67 of file afopr_CloverTerm.h.

◆ m_boundary

template<typename AFIELD >
std::vector<int> AFopr_CloverTerm< AFIELD >::m_boundary
protected

pointer to boundary condition

Definition at line 46 of file afopr_CloverTerm.h.

◆ m_CKs

template<typename AFIELD >
real_t AFopr_CloverTerm< AFIELD >::m_CKs
protected

hopping parameter.

Definition at line 44 of file afopr_CloverTerm.h.

◆ m_conf

template<typename AFIELD >
Field* AFopr_CloverTerm< AFIELD >::m_conf
protected

original gauge config.

Definition at line 50 of file afopr_CloverTerm.h.

◆ m_cSW

template<typename AFIELD >
real_t AFopr_CloverTerm< AFIELD >::m_cSW
protected

clover coefficient.

Definition at line 45 of file afopr_CloverTerm.h.

◆ m_F2

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_F2
protected

working gauge fields.

Definition at line 64 of file afopr_CloverTerm.h.

◆ m_mode

template<typename AFIELD >
std::string AFopr_CloverTerm< AFIELD >::m_mode
protected

mult mode

Definition at line 53 of file afopr_CloverTerm.h.

◆ m_Nc

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nc
protected

Definition at line 40 of file afopr_CloverTerm.h.

◆ m_Nd

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nd
protected

Definition at line 40 of file afopr_CloverTerm.h.

◆ m_Ndf

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Ndf
protected

Definition at line 41 of file afopr_CloverTerm.h.

◆ m_Ndim

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Ndim
protected

Definition at line 40 of file afopr_CloverTerm.h.

◆ m_Ndm2

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Ndm2
protected

Definition at line 41 of file afopr_CloverTerm.h.

◆ m_Nsize

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nsize[4]
protected

Definition at line 69 of file afopr_CloverTerm.h.

◆ m_Nst

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nst
protected

Definition at line 42 of file afopr_CloverTerm.h.

◆ m_Nt

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nt
protected

Definition at line 42 of file afopr_CloverTerm.h.

◆ m_Nvc

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nvc
protected

Definition at line 41 of file afopr_CloverTerm.h.

◆ m_Nx

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nx
protected

Definition at line 42 of file afopr_CloverTerm.h.

◆ m_Ny

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Ny
protected

Definition at line 42 of file afopr_CloverTerm.h.

◆ m_Nz

template<typename AFIELD >
int AFopr_CloverTerm< AFIELD >::m_Nz
protected

Definition at line 42 of file afopr_CloverTerm.h.

◆ m_repr

template<typename AFIELD >
enum AFopr_CloverTerm::Gamma_repr AFopr_CloverTerm< AFIELD >::m_repr
protected

gamma matrix representation

◆ m_solver

template<typename AFIELD >
ASolver<AFIELD>* AFopr_CloverTerm< AFIELD >::m_solver
protected

Definition at line 56 of file afopr_CloverTerm.h.

◆ m_staple

template<typename AFIELD >
AStaple_lex<AFIELD>* AFopr_CloverTerm< AFIELD >::m_staple
protected

Definition at line 55 of file afopr_CloverTerm.h.

◆ m_T

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_T
protected

Definition at line 58 of file afopr_CloverTerm.h.

◆ m_Tinv

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_Tinv
protected

clover term (+1) and its inverse.

Definition at line 58 of file afopr_CloverTerm.h.

◆ m_U

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_U
protected

copied gauge config. with boundary conditions.

Definition at line 51 of file afopr_CloverTerm.h.

◆ m_U2

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_U2
protected

Definition at line 64 of file afopr_CloverTerm.h.

◆ m_ut1

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_ut1
protected

Definition at line 62 of file afopr_CloverTerm.h.

◆ m_ut2

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_ut2
protected

working gauge fields.

Definition at line 62 of file afopr_CloverTerm.h.

◆ m_v1

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_v1
protected

Definition at line 60 of file afopr_CloverTerm.h.

◆ m_v2

template<typename AFIELD >
AFIELD AFopr_CloverTerm< AFIELD >::m_v2
protected

working spinor fields.

Definition at line 60 of file afopr_CloverTerm.h.

◆ m_vl

template<typename AFIELD >
Bridge::VerboseLevel AFopr_CloverTerm< AFIELD >::m_vl
protected

verbose level

Definition at line 48 of file afopr_CloverTerm.h.


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