Go to the documentation of this file.
10 #ifndef QXS_AFOPR_DOMAINWALL_5DIN_EO_INCLUDED
11 #define QXS_AFOPR_DOMAINWALL_5DIN_EO_INCLUDED
34 template<
typename AFIELD>
47 std::vector<real_t>
m_b;
48 std::vector<real_t>
m_c;
75 std::vector<real_t>
m_e;
76 std::vector<real_t>
m_f;
106 const int Ns,
const std::vector<int> bc,
107 const double b,
const double c);
117 const std::vector<double> c);
207 static bool register_factory()
210 "Domainwall_5din_eo", create_object_with_params);
212 "Domainwall_General_5din_eo", create_object_with_params);
219 template<
class AFIELD>
double flop_count()
this returns the number of floating point number operations.
int field_nvol()
returns the volume of the fermion field.
AFIELD m_Ulex
converted gauge config.(lexical)
void init(const Parameters ¶ms)
initial setup.
Bridge::VerboseLevel m_vl
verbose level
AFIELD m_v2
working 5d vectors
void U_inv(AFIELD &, const AFIELD &)
std::vector< channel_t > chrecv_dn
int field_nex()
returns the external degree of freedom of the fermion field.
void set_precond_parameters()
set parameters for preconditioning.
void set_config_impl(Field *u)
setting gauge configuration (implementation).
void Udag_inv(AFIELD &, const AFIELD &)
void mult(AFIELD &v, const AFIELD &w)
multiplies fermion operator to a given field.
AFIELD m_Ueo
gauge config. with boundary condition
void Ldag_inv(AFIELD &, const AFIELD &)
void set_config_omp(Field *u)
setting gauge configuration (setting omp parallel).
void mult_dag(AFIELD &v, const AFIELD &w)
hermitian conjugate of mult.
std::vector< real_t > m_b
int do_comm_any
communication switch (if any): (0: n, 1: y).
std::vector< real_t > m_c
void convert(AFIELD &, const Field &)
convert Field to AField for this class.
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
ChannelSet class for a collection of channels.
Optimal Domain-wall fermion operator.
void reverse(Field &, const AFIELD &)
reverse AField to Field.
void Ddag_ee_inv(AFIELD &, const AFIELD &, const int ieo)
std::string m_repr
gamma matrix representation
void Ddag(AFIELD &, const AFIELD &)
void set_kernel_parameters(const Parameters ¶ms)
set parameters of kernel operaotr.
void setup_channels()
setup channels for communication.
std::vector< real_t > m_e
static const std::string class_name
void Dhop(real_t *, real_t *, const int ieo)
hopping part of fermion operator.
real_t m_M0
domain-wall height
void mult_Ddag_eo(AFIELD &, const AFIELD &, const int ieo)
AFopr_Domainwall_5din_eo(const Parameters ¶ms)
AFIELD m_y4
working 4d vectors
int do_comm[4]
communication switch (4=Ndim): (0: n, 1: y).
std::vector< channel_t > chsend_dn
void L_inv(AFIELD &, const AFIELD &)
void D_ee_inv(AFIELD &, const AFIELD &, const int ieo)
void DdagD(AFIELD &, const AFIELD &)
bool needs_convert()
this class needs convert of fermion field.
std::string get_mode() const
returns the current mult mode.
std::vector< channel_t > chrecv_up
void Ddag_ee(AFIELD &, const AFIELD &, const int ieo)
void tidyup()
final tidyup.
std::vector< channel_t > chsend_up
~AFopr_Domainwall_5din_eo()
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
void D_eo(AFIELD &, const AFIELD &, const int ieo)
std::vector< int > m_Nbdsize
void Dhop_1(real_t *, real_t *, const int ieo)
void Dhop_b(real_t *, real_t *, const int ieo)
std::vector< real_t > m_dpinv
std::vector< real_t > m_dp
void mult_D_eo(AFIELD &, const AFIELD &, const int ieo)
void set_config(Field *U)
setting gauge configuration (common interface).
void Ddag_eo(AFIELD &, const AFIELD &, const int ieo)
static Bridge::VerboseLevel Vlevel()
std::vector< int > m_boundary
boundary conditions
AFopr< AFIELD > * m_foprw
int field_nin()
returns the on-site degree of freedom of the fermion field.
typename AFIELD::template aligned_allocator< char > channel_allocator_t
std::vector< real_t > m_dm
void D_ee(AFIELD &, const AFIELD &, const int ieo)
void D(AFIELD &, const AFIELD &)
void Dhop_2(real_t *, real_t *, const int ieo)
Container of Field-type object.
std::vector< int > m_Leo
Leo = 0 (even site) or 1 (odd site).
int m_Ns
size of fifth-dimension
std::vector< real_t > m_f
void set_coefficients(const std::vector< double > b, const std::vector< double > c)
set coefficients if they depend in s.