def kurl(arx,ary,arz, kf, lx=2*np.pi, ly=2*np.pi, lz=2*np.pi):
kx, ky, kz, km = create_kgrid(*arx.shape, lx=lx, ly=ly, lz=lz)
# FOURIER TRANSFORM THE ARRAY
farx = nf.fftshift(nf.fftn(arx))
fary = nf.fftshift(nf.fftn(ary))
farz = nf.fftshift(nf.fftn(arz))
# SET VALUES ABOVE kf AS 0+0i
farx = (np.sign(km - kf) - 1.)/(-2.)*farx
fary = (np.sign(km - kf) - 1.)/(-2.)*fary
farz = (np.sign(km - kf) - 1.)/(-2.)*farz
# COMPUTE VORTICITY
axf = eye*(ky*farz-kz*fary)
ayf = eye*(kz*farx-kx*farz)
azf = eye*(kx*fary-ky*farx)
# BACK TRANSFORM TO REAL SPACE
wx = np.real(nf.ifftn(nf.ifftshift(axf)))
wy = np.real(nf.ifftn(nf.ifftshift(ayf)))
wz = np.real(nf.ifftn(nf.ifftshift(azf)))
return wx,wy,wz
评论列表
文章目录