小编Moh*_*ssi的帖子

用FFTW3库评估FORTRAN中高斯函数的快速傅里叶变换

我正在尝试编写FORTRAN代码来评估f(r)=exp(-(r^2))使用FFTW3库的高斯函数的快速傅里叶变换.众所周知,高斯函数的傅里叶变换是另一种高斯函数.

我考虑在球面坐标中评估高斯函数的傅里叶变换积分.

因此,可以将得到的积分简化为积分[r*exp(-(r^2))*sin(kr)]dr.

我编写了以下FORTRAN代码来评估离散SINE变换DST,它是使用PURELY实数输入数组的离散傅立叶变换DFT.DST通过执行C_FFTW_RODFT00现有的FFTW3,考虑到在位置空间中的离散值是R = I*增量(i = 1,2,...,1024),以及用于DST输入数组是函数r*exp(-(r^2))NOT高斯.积分中的正弦函数是由积分[r*exp(-(r^2))*sin(kr)]dr超过SPHERICAL坐标产生的,并且它不是exp(ik.r)一般采用解析傅里叶变换时出现的虚部.

然而,结果不是动量空间中的高斯函数.

Module FFTW3
 use, intrinsic :: iso_c_binding
include 'fftw3.f03'
end module  

program sine_FFT_transform
use FFTW3
implicit none
integer, parameter :: dp=selected_real_kind(8)

real(kind=dp), parameter :: pi=acos(-1.0_dp)
integer, parameter :: n=1024 
real(kind=dp) :: delta, k
real(kind=dp) :: numerical_F_transform
integer :: i
type(C_PTR) ::  my_plan
real(C_DOUBLE), dimension(1024) :: y
real(C_DOUBLE), dimension(1024) :: yy, yk
integer(C_FFTW_R2R_KIND) :: C_FFTW_RODFT00

my_plan= fftw_plan_r2r_1d(1024,y,yy,FFTW_FORWARD, …
Run Code Online (Sandbox Code Playgroud)

fortran physics fft fftw

8
推荐指数
1
解决办法
419
查看次数

标签 统计

fft ×1

fftw ×1

fortran ×1

physics ×1