提问人:Peter 提问时间:8/9/2023 更新时间:8/9/2023 访问量:68
将 FFTW 与反周期边界条件一起使用
Using FFTW with anti-periodic boundary conditions
问:
我正在C++编写晶格规范理论模拟,为了计算可观察性,我需要计算具有反周期边界条件的光子场A_mu的 3d 拉普拉斯算子的格林函数。所以允许的反周期动量集是 (pi/L)(2k+1),k ∈ (0..L-1)。我用傅里叶变换编写了并行代码,但它太慢了,无法进行计算。我想知道是否可以使用 FFTW(以及一般的 DFT)来完成此类任务?
答:
0赞
Cris Luengo
8/9/2023
#1
将数组的大小增加一倍,从 到 ,并使用反周期条件填充后半部分。在多维设置中,您可以依次对每个维度执行此操作。您现在可以计算 FFT,根据需要对其进行操作,并计算 IFFT。结果的前半部分是对应于您的域的部分,另一半是您忽略的部分。L
2*L
f(x+L) = -f(x)
根据您在频域中应用的运算,您可能会获得更小的变换大小:例如,如果您需要在每个数据点周围进行采样以获得合理的近似值,那么您可以在每一侧用样本填充数据(左侧的填充也可以放在数组的末尾, 因为 FFT 假设周期性)。这会留下从填充数组中最左边的值到最右边的边缘效果,但这种边缘效应发生在远离域的样本中,因此应该对它影响不大。如果接近 或更大,则将数组大小加倍是更简单的解决方案。K
K
K
K
L/2
评论