def get_local_wavenumbermesh(self):
xyrank = self.comm0.Get_rank() # Local rank in xz-plane
yzrank = self.comm1.Get_rank() # Local rank in yz-plane
# Set wavenumbers in grid
kx = fftfreq(self.N[0], 1./self.N[0]).astype(int)
ky = fftfreq(self.N[1], 1./self.N[1]).astype(int)
kz = fftfreq(self.N[2], 1./self.N[2]).astype(int)
k2 = slice(xyrank*self.N1[1], (xyrank+1)*self.N1[1], 1)
k1 = slice(yzrank*self.N2[2]//2, (yzrank+1)*self.N2[2]//2, 1)
K = np.array(np.meshgrid(kx, ky[k2], kz[k1], indexing='ij'), dtype=self.float)
return K
评论列表
文章目录