20 #ifndef JDFTX_FLUID_TRANSLATIONOPERATORINTERNAL_H 21 #define JDFTX_FLUID_TRANSLATIONOPERATORINTERNAL_H 29 for(
int k=0; k<3; k++) if(iWrapped[k]>=S[k]) iWrapped[k]-=S[k];
30 return iWrapped[2] + S[2]*(iWrapped[1] + S[1]*iWrapped[0]);
35 double alpha,
const double* x,
double* y,
const vector3<int> Tint)
37 y[yIndex] += alpha * x[wrappedIndex(iy+Tint,S)];
45 double w0[] = {1-Tfrac[0], Tfrac[0]};
46 double w1[] = {1-Tfrac[1], Tfrac[1]};
47 double w2[] = {1-Tfrac[2], Tfrac[2]};
51 for(
int i0=0; i0<2; i0++)
53 for(
int i1=0; i1<2; i1++)
55 for(
int i2=0; i2<2; i2++)
56 { temp2 += w2[i2] * x[wrappedIndex(ix+
vector3<int>(i0,i1,i2),S)];
58 temp1 += w1[i1] * temp2;
60 temp0 += w0[i0] * temp1;
62 y[yIndex] += alpha * temp0;
67 { xTilde[i] *= cis(-
dot(iG,Gt));
71 #endif // JDFTX_FLUID_TRANSLATIONOPERATORINTERNAL_H
complex dot(const Tptr &X, const Tptr &Y)
Definition: Operators.h:196
Complex number (need to define our own because we need operators for gpu code as well) ...
Definition: scalar.h:49