Go to the documentation of this file.
10 #ifndef FOPR_NONRELATIVISTIC_INCLUDED
11 #define FOPR_NONRELATIVISTIC_INCLUDED
97 const std::vector<double> coeff,
98 const std::vector<int> bc,
99 const std::string evolution_type,
100 const std::string correction_terms);
110 void set_mode(
const std::string mode);
228 const int idir,
const int itime);
232 const int idir,
const int itime);
258 static bool register_factory()
260 bool init = Fopr::Factory_params::Register(
"NonRelativistic",
261 create_object_with_params);
void mult(Field &v, const Field &w)
mult with m_mode
void init(const Parameters ¶ms)
initial setup.
std::vector< double > buf1_z
void evolve_deltaH(Field &, const Field &, const int itime)
evolution with correction terms
~Fopr_NonRelativistic()
destructor
void add_deltaH1(Field &, const Field &, const int itime)
correction term deltaH(1): spin-magnetic interaction
void mult_dag(Field &v, const Field &w)
not available
int m_nstab
stabilization parameter
std::string m_repr
gamma matrix repr. (set to Dirac)
void shift_zdn(Field &Xt, const Field &Yt, const int itime)
std::vector< Field_G > m_Fstr
Field strenth (0-2: B, 3-5: E)
double m_u0
mean-field value
std::vector< int > m_boundary
boundary conditions
void add_R2(Field &v, const Field &w, const int jd, const int itime)
void mult_sigma2(Field &Xt, const Field &Yt)
multiplying Pauli matrix $\sigma_2$
void add_R5(Field &v, const Field &w, const int itime)
void add_R3(Field &v, const Field &w, const int itime)
std::vector< double > buf2_x
communication buffer in x-dir.
void shift_ydn(Field &Xt, const Field &Yt, const int itime)
void mult_dn(const int mu, Field &v, const Field &w)
transporter in lower direction : not available
void mult_Gn(Field &Xt, const Field &Yt, const int idir, const int itime)
nultiplication of gauge field
std::vector< double > m_coeff
coefficients of correction terms
std::vector< double > buf1_y
std::vector< double > buf2_y
communication buffer in y-dir.
void calc_Delta1(Field &, const Field &, const int idir, const int itime)
first order covariant derivative
void add_deltaH3(Field &, const Field &, const int itime)
correction term deltaH(3)
int m_Nspc
spatial volume (m_Nx * m_Ny * m_Nz)
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
double flop_count()
number of floating point operations: not implemented
void set_source(Field &Xt, const Field &b)
extract source time slice and 3D source vector from 4D source.
void shift_forward(Field &Xt, const Field &Yt, const int idir, const int itime)
shifting 3D field forward in idir-direction
Field m_Zt2
working field on each time slice.
Bridge::VerboseLevel m_vl
verbose level
static const std::string class_name
void mult_gm5(Field &v, const Field &w)
multiply $\gamma_5$ : not available
std::string m_evolution_type
type of evolution equation
std::string m_correction_terms
order of correction terms
void calc_Delta2(Field &, const Field &, const int itime)
second order covariant derivative
void add_R4(Field &v, const Field &w, const int itime)
void add_deltaH5(Field &, const Field &, const int itime)
correction term deltaH(5)
void set_config(unique_ptr< Field_G > &U)
void rotation(Field &v, const Field &w, const int jd)
field rotation (jd = 1: normal, -1: conjugate)
void shift_xdn(Field &Xt, const Field &Yt, const int itime)
void evolve_H0(Field &, const Field &, const int itime)
evolution with kinetic term
Field m_Yt3
working field on each time slice.
void evolve_typeA(Field &, const Field &, const int itime)
evolution equation according to [1]
int field_nex()
extra degree of freedom
void evolve_typeB(Field &, const Field &, const int itime)
evolution equation according to [2]
int field_nin()
inner degree of freedom as a 4-spinor
void set_config(Field *U)
setting gauge configuration and field strength
int m_itime_src
source time slice
double m_MQ
heavy quark mass
void calc_Delta4(Field &, const Field &, const int itime)
fourth order covariant derivative
std::string get_mode() const
std::vector< Field > m_Xt
heavy quark field.
int m_num_correct
number of correction terms
Field_G m_U
gauge configuration
Field m_Wt3
working field on each time slice.
void shift_yup(Field &Xt, const Field &Yt, const int itime)
int m_Ltime
global temporal extent
void set_parameters(const Parameters ¶ms)
seting parameters with a Parameter object
std::vector< double > buf1_x
void mult_Gd(Field &Xt, const Field &Yt, const int idir, const int itime)
nultiplication of gauge field (hermitian conjugate)
void add_deltaH2(Field &, const Field &, const int itime)
correction term deltaH(2)
Fopr_NonRelativistic(const Parameters ¶ms)
constructor without argument
void mult_sigma3(Field &Xt, const Field &Yt)
multiplying Pauli matrix $\sigma_3$
void mult_up(const int mu, Field &v, const Field &w)
transporter in upper direction : not available
std::string m_mode
mode of multiplication
void set_mode(const std::string mode)
setting mult mode: 'Evolve' and 'Rotation'
Container of Field-type object.
void evolve_U4(Field &, const Field &, const int itime)
evolution with one time slice ahead
void shift_backward(Field &Xt, const Field &Yt, const int idir, const int itime)
shifting 3D field backward in idir-direction
std::vector< double > buf2_z
communication buffer in z-dir.
void shift_xup(Field &Xt, const Field &Yt, const int itime)
implemetation of shifting field
void shift_zup(Field &Xt, const Field &Yt, const int itime)
int field_nvol()
volume size as a 4D operator
void evolve_impl(Field &, const Field &, const int itime)
called from evolve() and switchs evlution equation
void evolve(Field &, const Field &)
evolution equation (facade).
void mult_sigma1(Field &Xt, const Field &Yt)
multiplying Pauli matrix $\sigma_1$
void mult_F(Field &Xt, const Field &Yt, const int icomp, const int itime)
nultiplication of field strength
void add_deltaH46(Field &, const Field &, const int itime)
correction terms deltaH(4) + deltaH(6)
void tidyup()
final clean up.