Bridge++  Ver. 2.0.2
AFopr< AFIELD > Class Template Referenceabstract

#include <afopr.h>

Inheritance diagram for AFopr< AFIELD >:
AFopr_Chebyshev< AFIELD > AFopr_Clover< AFIELD > AFopr_Clover_Chemical< AFIELD > AFopr_Clover_coarse< AFIELD > AFopr_Clover_eo< AFIELD > AFopr_dd< AFIELD > AFopr_Domainwall< AFIELD > AFopr_Domainwall_5din< AFIELD > AFopr_Domainwall_5din_eo< AFIELD > AFopr_eo< AFIELD > AFopr_Overlap< AFIELD > AFopr_Rational< AFIELD > AFopr_Sign< AFIELD > AFopr_Smeared< AFIELD > AFopr_Staggered< AFIELD > AFopr_Staggered_eo< AFIELD > AFopr_Wilson< AFIELD > AFopr_Wilson_Chemical< AFIELD > AFopr_Wilson_eo< AFIELD > AFopr_Wilson_TwistedMass< AFIELD >

Public Member Functions

 AFopr ()
 
virtual ~AFopr ()
 
virtual void set_parameters (const Parameters &params)
 sets parameters by a Parameter object: to be implemented in a subclass. More...
 
virtual void get_parameters (Parameters &params) const
 gets parameters by a Parameter object: to be implemented in a subclass. More...
 
virtual void set_config (Field *)=0
 sets the gauge configuration. More...
 
virtual void set_mode (std::string mode)
 setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelevant call. More...
 
virtual std::string get_mode () const
 returns the current mult mode. More...
 
virtual void mult (AFIELD &, const AFIELD &)
 multiplies fermion operator to a given field. More...
 
virtual void mult_dag (AFIELD &, const AFIELD &)
 hermitian conjugate of mult. More...
 
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 int field_nin ()=0
 returns the on-site degree of freedom of the fermion field. More...
 
virtual int field_nvol ()=0
 returns the volume of the fermion field. More...
 
virtual int field_nex ()=0
 returns the external degree of freedom of the fermion field. More...
 
virtual double flop_count ()
 returns the number of floating point operations. 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 Protected Attributes

static const std::string class_name
 

Private Member Functions

 AFopr (const AFopr &)
 non-copyable More...
 
AFoproperator= (const AFopr &)
 

Detailed Description

template<typename AFIELD>
class AFopr< AFIELD >

The base template class of fermion operators. AFopr<FIELD> is a fermion operator that acts on a FIELD vector. This template class was first introduced to incorporate the alternative fermion classes, but later realized as the basis of all the fermion operator by incorporating to the Bridge++ core library. The implementation basically follows the original Fopr class in the core libirary. [17 Sep 2018 H.Matsufuru]

Definition at line 48 of file afopr.h.

Constructor & Destructor Documentation

◆ AFopr() [1/2]

template<typename AFIELD >
AFopr< AFIELD >::AFopr ( )
inline

Definition at line 54 of file afopr.h.

◆ ~AFopr()

template<typename AFIELD >
virtual AFopr< AFIELD >::~AFopr ( )
inlinevirtual

Definition at line 55 of file afopr.h.

◆ AFopr() [2/2]

template<typename AFIELD >
AFopr< AFIELD >::AFopr ( const AFopr< AFIELD > &  )
private

non-copyable

Member Function Documentation

◆ convert()

◆ field_nex()

◆ field_nin()

◆ field_nvol()

◆ flop_count() [1/2]

◆ flop_count() [2/2]

◆ get_mode()

◆ get_parameters()

◆ mult() [1/2]

◆ mult() [2/2]

◆ mult_dag() [1/2]

◆ mult_dag() [2/2]

template<typename AFIELD >
virtual void AFopr< AFIELD >::mult_dag ( AFIELD ,
const AFIELD ,
const std::string  mode 
)
inlinevirtual

◆ mult_dn()

◆ mult_gm5()

◆ mult_up()

◆ needs_convert()

◆ normalize_fopr()

template<typename AFIELD >
virtual void AFopr< AFIELD >::normalize_fopr ( AFIELD )
inlinevirtual

normalize propagator if necessary (default: do nothing)

Reimplemented in AFopr_Staggered_eo< AFIELD >.

Definition at line 147 of file afopr.h.

◆ normalize_fprop()

template<typename AFIELD >
virtual void AFopr< AFIELD >::normalize_fprop ( AFIELD )
inlinevirtual

normalize propagator if necessary (default: do nothing)

Reimplemented in Fopr_Staggered, and AFopr_Staggered_eo< AFIELD >.

Definition at line 144 of file afopr.h.

◆ operator=()

template<typename AFIELD >
AFopr& AFopr< AFIELD >::operator= ( const AFopr< AFIELD > &  )
private

◆ reverse()

◆ set_config()

◆ set_mode()

◆ set_parameters()

Member Data Documentation

◆ class_name

template<typename AFIELD >
const std::string AFopr< AFIELD >::class_name
staticprotected

Definition at line 51 of file afopr.h.


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