Я пытаюсь понять, как определить периодические границы на сетке numpy.
Допустим, я определяю коробку размером 1x1x1 и помещаю внутрь сферу радиусом 0,25. Эта сфера находится не в центре, а достаточно близко к границе, так что часть сферы должна выходить с противоположной стороны коробки.
Например, если код следующего
import numpy as np
x_ = np.linspace(0,1,100)
y_ = np.linspace(0,1,100)
z_ = np.linspace(0,1,100)
X,Y,Z = np.meshgrid(x_,y_,z_,indexing='ij')
I = (X-particle['x'])**2 + (Y-particle['y'])**2 + (Z-particle['z'])**2 < particle['r']**2
Я получу трехмерный массив логических значений, где значения True — это точки сетки, попадающие внутрь сферы, а значения False — точки сетки, попадающие внутрь сферы. Однако это не гарантирует периодических границ, которые мне бы хотелось.
Есть ли какой-нибудь элегантный способ для этого, без необходимости перебирать каждую точку сетки?