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

   self%mesh(:) = mesh
   self%nmax = maxval(mesh)

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

end subroutine new_fft_mesh