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

Base class of fermion operator family. More...

#include <afopr_eo.h>

Inheritance diagram for AFopr_eo< AFIELD >:
AFopr< AFIELD > AFopr_Domainwall_eo< AFIELD > AFopr_Smeared_eo< AFIELD >

Public Member Functions

virtual ~AFopr_eo ()
 
virtual void preProp (AFIELD &, AFIELD &, const AFIELD &)=0
 
virtual void postProp (AFIELD &, const AFIELD &, const AFIELD &)=0
 
virtual void set_config (Field *)=0
 setting pointer to the gauge configuration. More...
 
virtual void mult (AFIELD &, const AFIELD &)
 multiplies fermion operator to a given field (2nd argument) More...
 
virtual void mult_dag (AFIELD &, const AFIELD &)
 hermitian conjugate of mult(Field&, const Field&). More...
 
virtual void mult (AFIELD &, const AFIELD &, const std::string)
 executes mult with specified mode (unchanging internal mode). More...
 
virtual void mult_dag (AFIELD &, const AFIELD &, const std::string)
 executes mult_dag with specified mode (unchanging internal mode). More...
 
virtual void set_mode (const 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...
 
virtual int field_nvol ()=0
 returns the volume for which the fermion operator is defined. More...
 
virtual int field_nin ()=0
 returns the on-site d.o.f. for which the fermion operator is defined. More...
 
virtual int field_nex ()=0
 returns the external d.o.f. for which the fermion operator is defined. More...
 
- Public Member Functions inherited from AFopr< AFIELD >
 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 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 ()
 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
 
- Static Protected Attributes inherited from AFopr< AFIELD >
static const std::string class_name
 

Detailed Description

template<typename AFIELD>
class AFopr_eo< AFIELD >

Base class of fermion operator family.

In Bridge-OF, the fermion operator implies an operator which transforms a field to other field, irrespective of physical formulation. This class defines the interface of the fermion operators. At present, void functions mult(v,w) and mult_dag(v,w) is not purely virtual, because some of subclass have not implemented them yet. [20 Dec 2011 H.Matsufuru] unique_ptr is introduced to avoid memory leaks [21 Mar 2015 Y.Namekawa]

Definition at line 35 of file afopr_eo.h.

Constructor & Destructor Documentation

◆ ~AFopr_eo()

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

Definition at line 41 of file afopr_eo.h.

Member Function Documentation

◆ field_nex()

template<typename AFIELD >
virtual int AFopr_eo< AFIELD >::field_nex ( )
pure virtual

returns the external d.o.f. for which the fermion operator is defined.

Implements AFopr< AFIELD >.

Implemented in AFopr_Domainwall_eo< AFIELD >, Imp::Fopr_Wilson_eo, Org::Fopr_Wilson_eo, Fopr_Clover_eo, Fopr_Smeared_eo, AFopr_Smeared_eo< AFIELD >, and Fopr_Staggered_eo.

◆ field_nin()

template<typename AFIELD >
virtual int AFopr_eo< AFIELD >::field_nin ( )
pure virtual

returns the on-site d.o.f. for which the fermion operator is defined.

Implements AFopr< AFIELD >.

Implemented in AFopr_Domainwall_eo< AFIELD >, Imp::Fopr_Wilson_eo, Org::Fopr_Wilson_eo, Fopr_Clover_eo, Fopr_Smeared_eo, AFopr_Smeared_eo< AFIELD >, and Fopr_Staggered_eo.

◆ field_nvol()

template<typename AFIELD >
virtual int AFopr_eo< AFIELD >::field_nvol ( )
pure virtual

returns the volume for which the fermion operator is defined.

Implements AFopr< AFIELD >.

Implemented in AFopr_Domainwall_eo< AFIELD >, Imp::Fopr_Wilson_eo, Fopr_Clover_eo, Org::Fopr_Wilson_eo, Fopr_Smeared_eo, AFopr_Smeared_eo< AFIELD >, and Fopr_Staggered_eo.

◆ get_mode()

template<typename AFIELD >
std::string AFopr_eo< AFIELD >::get_mode ( ) const
inlinevirtual

returns the current mult mode.

Reimplemented from AFopr< AFIELD >.

Reimplemented in AFopr_Smeared_eo< AFIELD >.

Definition at line 68 of file afopr_eo.h.

◆ mult() [1/2]

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

multiplies fermion operator to a given field (2nd argument)

Reimplemented from AFopr< AFIELD >.

Reimplemented in Fopr_Staggered_eo, Imp::Fopr_Wilson_eo, Fopr_Clover_eo, Fopr_Smeared_eo, Org::Fopr_Wilson_eo, AFopr_Domainwall_eo< AFIELD >, and AFopr_Smeared_eo< AFIELD >.

Definition at line 52 of file afopr_eo.h.

◆ mult() [2/2]

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

executes mult with specified mode (unchanging internal mode).

Reimplemented from AFopr< AFIELD >.

Reimplemented in Fopr_Staggered_eo, Imp::Fopr_Wilson_eo, Org::Fopr_Wilson_eo, and AFopr_Domainwall_eo< AFIELD >.

Definition at line 57 of file afopr_eo.h.

◆ mult_dag() [1/2]

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

◆ mult_dag() [2/2]

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

executes mult_dag with specified mode (unchanging internal mode).

Reimplemented from AFopr< AFIELD >.

Reimplemented in Fopr_Staggered_eo, Imp::Fopr_Wilson_eo, and Org::Fopr_Wilson_eo.

Definition at line 59 of file afopr_eo.h.

◆ postProp()

template<typename AFIELD >
virtual void AFopr_eo< AFIELD >::postProp ( AFIELD ,
const AFIELD ,
const AFIELD  
)
pure virtual

◆ preProp()

template<typename AFIELD >
virtual void AFopr_eo< AFIELD >::preProp ( AFIELD ,
AFIELD ,
const AFIELD  
)
pure virtual

◆ set_config()

template<typename AFIELD >
virtual void AFopr_eo< AFIELD >::set_config ( Field )
pure virtual

◆ set_mode()

template<typename AFIELD >
virtual void AFopr_eo< AFIELD >::set_mode ( const std::string  mode)
inlinevirtual

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

Reimplemented from AFopr< AFIELD >.

Reimplemented in AFopr_Domainwall_eo< AFIELD >, Org::Fopr_Wilson_eo, Fopr_Smeared_eo, AFopr_Smeared_eo< AFIELD >, Imp::Fopr_Wilson_eo, Fopr_Clover_eo, and Fopr_Staggered_eo.

Definition at line 63 of file afopr_eo.h.

Member Data Documentation

◆ class_name

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

Definition at line 38 of file afopr_eo.h.


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