L
我想在 Python 中设置一个具有长度和周期性边界条件的二维框。一种方法是将参考框架固定在左下角,然后我有:
L = 5 # box length
x, y = 2, 3 # initial values
# step in my algorithm
x = (x + 4) % L
y = (y - 4) % L
显然,输出是x, y = (1, 4)
. 我们可以保证,对于每一步,粒子的位置都将保持在长度为 L 的盒子内。
好的,但是如果我想在盒子的中心设置参考框架怎么办?当然,以下代码不起作用:
x = (x + 4) % L/2
y = (y - 4) % L/2
我想要发生的是,如果一个粒子从 x=+L/2 一侧逃逸,那么它会出现在 x=-L/2 (对于 y 相同),但是模块运算符不能以与上一个案例。