Go to the documentation of this file.
10 #ifndef ACCEL_AFOPR_DOMAINWALL_5DIN_EO_INCLUDED
11 #define ACCEL_AFOPR_DOMAINWALL_5DIN_EO_INCLUDED
40 template<
typename AFIELD>
53 std::vector<real_t>
m_b;
54 std::vector<real_t>
m_c;
79 std::vector<real_t>
m_e;
80 std::vector<real_t>
m_f;
112 const int Ns,
const std::vector<int> bc,
120 const std::vector<real_t> c);
222 static bool register_factory()
225 "Domainwall_5din_eo", create_object_with_params);
double flop_count()
this returns the number of floating point number operations.
void Ddag_alt(AFIELD &, const AFIELD &)
std::vector< Channel > chrecv_dn
int field_nvol()
returns the volume of the fermion field.
real_t m_alpha
parameter alpha
void init(const Parameters ¶ms)
initial setup.
Bridge::VerboseLevel m_vl
verbose level
AFIELD m_v2
woking vectors
void set_matrix5d_inverse()
set parameters for preconditioning.
unique_ptr< Timer > timer_pack
int field_nex()
returns the external degree of freedom of the fermion field.
void set_precond_parameters()
set parameters for preconditioning.
AIndex_eo< real_t, AFIELD::IMPL > m_index_eo
unique_ptr< Timer > timer_comm_send_start
void mult(AFIELD &v, const AFIELD &w)
multiplies fermion operator to a given field.
AFIELD m_Ueo
copied gauge config. with boundary conditions.
std::vector< real_t > m_dm
void mult_dag(AFIELD &v, const AFIELD &w)
hermitian conjugate of mult.
int mat_index(int ida, int isa, int idb, int isb)
int do_comm_any
communication switch (if any): (0: n, 1: y)
void convert(AFIELD &, const Field &)
convert Field to AField for this class.
unique_ptr< Timer > timer_comm
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.
Domain-wall fermion operator with even-odd site index.
void reverse(Field &, const AFIELD &)
reverse AField to Field.
unique_ptr< Timer > timer_boundary
void Ddag_ee_inv(AFIELD &, const AFIELD &, const int ieo)
std::string m_repr
Dirac matrix representation.
void mult_gm5R(AFIELD &, const AFIELD &)
std::string m_kernel_type
fermion kernel type
void Ddag(AFIELD &, const AFIELD &)
std::vector< real_t > m_b
coefficient b (array)
unique_ptr< Timer > timer_mult_Deo
std::vector< Channel > chrecv_up
int do_comm[4]
communication switch (4=Ndim): (0: n, 1: y)
std::vector< real_t > m_mat_inv
5d matrix inverse
void set_coefficients(const std::vector< real_t > b, const std::vector< real_t > c)
set coefficients if they depend in s.
real_t m_M0
domain-wall height
AFopr_Domainwall_5din_eo(const Parameters ¶ms)
constructor.
void mult_gm5(AFIELD &v, const AFIELD &w)
multiplies gamma_5 matrix.
void Ddag_ee_inv_alt(AFIELD &, const AFIELD &, const int ieo)
void D_ee_inv(AFIELD &, const AFIELD &, const int ieo)
std::vector< real_t > m_e
std::vector< real_t > m_f
unique_ptr< Timer > timer_comm_recv_start
static const std::string class_name
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.
unique_ptr< Timer > timer_comm_send_wait
void Ddag_ee(AFIELD &, const AFIELD &, const int ieo)
void tidyup()
final tidyup.
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
std::vector< real_t > m_dp
~AFopr_Domainwall_5din_eo()
destructor.
std::vector< int > m_boundary
boundary conditions
std::vector< real_t > m_dpinv
std::vector< int > m_Nbdsize
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)
void LU_inv(AFIELD &, const AFIELD &)
void mult_R(AFIELD &, const AFIELD &)
void set_config_impl(Field *U)
void set_config(Field *U)
sets the gauge configuration.
unique_ptr< Timer > timer_mult_Dee_inv
void Ddag_eo(AFIELD &, const AFIELD &, const int ieo)
void LUdag_inv(AFIELD &, const AFIELD &)
std::vector< real_t > m_c
coefficient c (array)
unique_ptr< Timer > timer_bulk
int field_nin()
returns the on-site degree of freedom of the fermion field.
std::string m_impl
4d or 5d kernel implementation
void D_alt(AFIELD &, const AFIELD &)
std::vector< Channel > chsend_dn
void D_ee(AFIELD &, const AFIELD &, const int ieo)
void D(AFIELD &, const AFIELD &)
void set_config_omp(Field *U)
std::vector< Channel > chsend_up
void DdagD_alt(AFIELD &, const AFIELD &)
unique_ptr< Timer > timer_comm_recv_wait
Container of Field-type object.
int m_Ns
size of fifth-dimension
void D_ee_inv_alt(AFIELD &, const AFIELD &, const int ieo)