16 #ifdef USE_PARAMETERS_FACTORY
30 bool init = Source::Factory::Register(
"Wall", create_object);
44 #ifdef USE_PARAMETERS_FACTORY
57 const string str_vlevel = params.
get_string(
"verbose_level");
62 valarray<int> source_position;
68 vout.
crucial(
m_vl,
"Source_Wall: fetch error, input parameter not found.\n");
84 valarray<int> Lsize(Ndim);
91 valarray<int> Nsize(Ndim);
97 const int t_dir = Ndim - 1;
101 vout.
general(
m_vl,
" source_position[t] = %d\n", source_position[t_dir]);
109 vout.
crucial(
m_vl,
"Source_Staggered_Wall: parameter range check failed.\n");
115 for (
int mu = 0; mu < Ndim; ++mu) {
118 m_source_position[t_dir] = (source_position[t_dir] + Lsize[t_dir]) % Lsize[t_dir];
144 const int Lvol3 = Lx * Ly * Lz;
147 valarray<int> Nsize(Ndim);
159 for (
int z = 0; z < Nsize[2]; ++z) {
160 for (
int y = 0; y < Nsize[1]; ++y) {
161 for (
int x = 0; x < Nsize[0]; ++x) {
165 src.
set(2 * j, isite, 0, 1.0 / Lvol3);