@@ -51,21 +51,17 @@ function apply_boundary_conditions!(ri, rj, pbc::PeriodicBoundaryConditions, R2)
5151end
5252
5353function apply_boundary_conditions! (ri, rj, pbc:: CubicPeriodicBoundaryConditions , R2)
54- rij = SVector {3,typeof(R2)} (Inf , Inf , Inf )
55- success = false
56- rij2 = zero (typeof (R2))
57- shifts = SVector {3,typeof(R2)} (0 , - pbc. L, pbc. L)
58- for dx ∈ shifts, dy ∈ shifts, dz ∈ shifts
59- dr = SVector {3,typeof(R2)} (dx, dy, dz)
60- rij = ri - rj + dr
61- rij = rij - pbc. L * sign .(rij) .* sign (pbc. L) .* floor .(abs .(rij) / abs (pbc. L))
62- rij2 = dot (rij, rij)
63- if rij2 < R2
64- success = true
65- break
66- end
67- end
68- return (rij, rij2, success)
54+ rij = ri - rj
55+ x, y, z = rij[1 ], rij[2 ], rij[3 ]
56+ while x >= pbc. L x -= pbc. L end
57+ while x < - pbc. L x += pbc. L end
58+ while y >= pbc. L y -= pbc. L end
59+ while y < - pbc. L y += pbc. L end
60+ while z >= pbc. L z -= pbc. L end
61+ while z < - pbc. L z += pbc. L end
62+ rij = SVector {3,eltype(R2)} (x, y, z)
63+ rij2 = dot (rij, rij)
64+ return (rij, rij2, rij2 < R2)
6965end
7066
7167function apply_boundary_conditions! (ri, rj, pbc:: BoundaryConditions , R2)
0 commit comments