def single_step_propagation(self):
"""
Perform single step propagation. The final Wigner function is not normalized.
:return: self.wignerfunction
"""
expV = self.get_expV(self.t)
# p x -> theta x
self.wignerfunction = fft.rfft(self.wignerfunction, axis=0)
self.wignerfunction *= expV
# theta x -> p x
self.wignerfunction = fft.irfft(self.wignerfunction, axis=0)
# p x -> p lambda
self.wignerfunction = fft.rfft(self.wignerfunction, axis=1)
self.wignerfunction *= self.get_expK(self.t)
# p lambda -> p x
self.wignerfunction = fft.irfft(self.wignerfunction, axis=1)
# p x -> theta x
self.wignerfunction = fft.rfft(self.wignerfunction, axis=0)
self.wignerfunction *= expV
# theta x -> p x
self.wignerfunction = fft.irfft(self.wignerfunction, axis=0)
# increment current time
self.t += self.dt
return self.wignerfunction
split_op_wigner_moyal.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录