new_fft_mesh Subroutine

public subroutine new_fft_mesh(self, mesh)

Tabulate the roots of unity for transforms on the given mesh

Arguments

Type IntentOptional Attributes Name
type(fft_mesh), intent(out) :: self

Instance of the transform

integer, intent(in) :: mesh(3)

Number of points along each direction


Source Code

subroutine new_fft_mesh(self, mesh)

   !> Instance of the transform
   type(fft_mesh), intent(out) :: self

   !> Number of points along each direction
   integer, intent(in) :: mesh(3)

   integer :: ik, idir

   self%mesh(:) = mesh
   allocate(self%tw(0:maxval(mesh) - 1, 3))
   do idir = 1, 3
      do ik = 0, mesh(idir) - 1
         self%tw(ik, idir) = cmplx(cos(2*pi*ik/mesh(idir)), -sin(2*pi*ik/mesh(idir)), wp)
      end do
   end do

end subroutine new_fft_mesh