14 #ifndef INDEX_EO_INCLUDED
15 #define INDEX_EO_INCLUDED
42 std::valarray<int>
Leo;
60 vout.
crucial(m_vl,
"Error at Index_eo: Nx is not even\n");
64 Leo.resize(Ny * Nz * Nt);
65 Site_up.resize(Nx2 * Ny * Nz * Nt * 2);
66 Site_dn.resize(Nx2 * Ny * Nz * Nt * 2);
68 for (
int t = 0; t <
Nt; ++t) {
69 for (
int z = 0; z <
Nz; ++z) {
70 for (
int y = 0; y <
Ny; ++y) {
74 Leo[y + Ny * (z + Nz * t)] = (y2 + z2 + t2) % 2;
79 for (
int t = 0; t <
Nt; ++t) {
80 for (
int z = 0; z <
Nz; ++z) {
81 for (
int y = 0; y <
Ny; ++y) {
82 int yzt = y + Ny * (z + Nz * t);
86 for (
int x2 = 0; x2 <
Nx2; ++x2) {
87 int s = x2 + Nx2 * (y + Ny * (z + Nz * t));
88 Site_up[s] = ((x2 + Leo[yzt]) % Nx2) + Nx2 * (y + Ny * (z + Nz * t));
89 Site_up[s +
Nvol2] = ((x2 + 1 - Leo[yzt]) % Nx2) + Nx2 * (y + Ny * (z + Nz * t));
90 Site_dn[s] = ((x2 - 1 + Leo[yzt] +
Nx2) % Nx2) + Nx2 * (y + Ny * (z + Nz * t));
91 Site_dn[s +
Nvol2] = ((x2 - Leo[yzt] +
Nx2) % Nx2) + Nx2 * (y + Ny * (z + Nz * t));
98 int leo(
const int y,
const int z,
const int t)
const
100 return Leo[y + Ny * (z + Nz * t)];
103 int site(
const int x2,
const int y,
const int z,
const int t,
106 return x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
109 int site(
const int is,
const int ieo)
const
111 return is + Nvol2 * ieo;
114 int site_up(
const int x2,
const int y,
const int z,
const int t,
117 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
119 return Site_up[s] + Nvol2 * (1 - ieo);
122 int site_xup(
const int x2,
const int y,
const int z,
const int t,
125 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
127 return Site_up[s] + Nvol2 * (1 - ieo);
130 int site_dn(
const int x2,
const int y,
const int z,
const int t,
133 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
135 return Site_dn[s] + Nvol2 * (1 - ieo);
138 int site_xdn(
const int x2,
const int y,
const int z,
const int t,
141 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
143 return Site_dn[s] + Nvol2 * (1 - ieo);
146 int siteh(
const int x2,
const int y,
const int z,
const int t)
149 return x2 + Nx2 * (y + Ny * (z + Nz * t));
152 int siteh_up(
const int x2,
const int y,
const int z,
const int t,
155 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
160 int siteh_xup(
const int x2,
const int y,
const int z,
const int t,
163 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
168 int siteh_dn(
const int x2,
const int y,
const int z,
const int t,
171 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
176 int siteh_xdn(
const int x2,
const int y,
const int z,
const int t,
179 int s = x2 + Nx2 * (y + Ny * (z + Nz * t)) + Nvol2 * ieo;
int site_xup(const int x2, const int y, const int z, const int t, const int ieo) const
int siteh(const int x2, const int y, const int z, const int t) const
int site(const int is, const int ieo) const
Container of Field-type object.
int site(const int x2, const int y, const int z, const int t, const int ieo) const
int site_up(const int x2, const int y, const int z, const int t, const int ieo) const
static int ipe(const int dir)
logical coordinate of current proc.
void convertField(Field &eo, const Field &lex)
int leo(const int y, const int z, const int t) const
void mergeField(Field &eo, const Field &e, const Field &o)
int siteh_up(const int x2, const int y, const int z, const int t, const int ieo) const
int siteh_xup(const int x2, const int y, const int z, const int t, const int ieo) const
int siteh_xdn(const int x2, const int y, const int z, const int t, const int ieo) const
int site_xdn(const int x2, const int y, const int z, const int t, const int ieo) const
Common parameter class: provides parameters as singleton.
Bridge::VerboseLevel m_vl
std::valarray< int > Site_up
int site_dn(const int x2, const int y, const int z, const int t, const int ieo) const
std::valarray< int > Site_dn
void crucial(const char *format,...)
int siteh_dn(const int x2, const int y, const int z, const int t, const int ieo) const
void reverseField(Field &lex, const Field &eo)
void splitField(Field &e, Field &o, const Field &eo)