You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
//distribute real-space grids to different processors
87
92
voiddistribute_r();
88
93
94
+
voidgetstartgr();
95
+
89
96
//distribute plane waves to different processors
90
97
voiddistribution_method1(); // x varies fast
91
98
voiddistribution_method2(); // sticks sorted according to ixy
@@ -135,8 +142,7 @@ class PW_Basis
135
142
int* st_i, // x or x + nx (if x < 0) of stick.
136
143
int* st_j, // y or y + ny (if y < 0) of stick.
137
144
int* st_length, // the stick on (x, y) consists of st_length[x*ny+y] planewaves.
138
-
int* npw_per, // number of planewaves on each core.
139
-
int* nst_per // number of sticks on each core.
145
+
int* npw_per // number of planewaves on each core.
140
146
);
141
147
voidget_istot2ixy(
142
148
int* st_i, // x or x + nx (if x < 0) of stick.
@@ -180,6 +186,7 @@ class PW_Basis
180
186
// FFT dimensions for wave functions.
181
187
int nx, ny, nz, nxyz, nxy;
182
188
int bigny, bignxyz, bignxy; // Gamma_only: ny = int(bigny/2)-1 , others: ny = bigny
189
+
int maxgrids; // max between nz * ns and bignxy * nplane
183
190
FFT ft;
184
191
185
192
voidreal2recip(double * in, std::complex<double> * out); //in:(nplane,nx*ny) ; out(nz, ns)
@@ -189,6 +196,8 @@ class PW_Basis
189
196
190
197
voidgatherp_scatters(std::complex<double> *in, std::complex<double> *out); //gather planes and scatter sticks of all processors
191
198
voidgathers_scatterp(std::complex<double> *in, std::complex<double> *out); //gather sticks of and scatter planes of all processors
199
+
voidgathers_scatterp2(std::complex<double> *in, std::complex<double> *out); //gather sticks of and scatter planes of all processors
200
+
voidgatherp_scatters2(std::complex<double> *in, std::complex<double> *out); //gather sticks of and scatter planes of all processors
192
201
voidgatherp_scatters_gamma(std::complex<double> *in, std::complex<double> *out); //gather planes and scatter sticks of all processors, used when gamma_only
193
202
voidgathers_scatterp_gamma(std::complex<double> *in, std::complex<double> *out); //gather sticks of and scatter planes of all processors, used when gamma only
0 commit comments