tFix grid-index correction - Granular.jl - Julia package for granular dynamics simulation
(HTM) git clone git://src.adamsgaard.dk/Granular.jl
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 5e33f9737e5908bfdacf969015e884d4fbe45d3e
(DIR) parent 9f95ef0e27e951353b7bdc87e100391de0971c3a
(HTM) Author: Anders Damsgaard <andersd@riseup.net>
Date: Wed, 20 Dec 2017 14:42:09 -0500
Fix grid-index correction
Diffstat:
M src/contact_search.jl | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
---
(DIR) diff --git a/src/contact_search.jl b/src/contact_search.jl
t@@ -124,14 +124,9 @@ function findContactsInGrid!(simulation::Simulation, grid::Any)
for i=(grid_pos[1] - 1):(grid_pos[1] + 1)
for j=(grid_pos[2] - 1):(grid_pos[2] + 1)
- # i and j are not corrected for periodic boundaries
- i_corrected = i
- j_corrected = j
-
# correct indexes if necessary
- periodicBoundaryCorrection!(grid, i, j,
- i_corrected, j_corrected,
- distance_modifier)
+ i_corrected, j_corrected = periodicBoundaryCorrection!(grid,
+ i, j, distance_modifier)
# skip iteration if target still falls outside grid after
# periodicity correction
t@@ -159,13 +154,16 @@ Determine the geometric correction and grid-index adjustment required across
periodic boundaries.
"""
function periodicBoundaryCorrection!(grid::Any, i::Integer, j::Integer,
- i_corrected::Integer, j_corrected::Integer,
distance_modifier::Vector{Float64})
# vector for correcting inter-particle distance in case of
# boundary periodicity
distance_modifier .= [0., 0.]
+ # i and j are not corrected for periodic boundaries
+ i_corrected = i
+ j_corrected = j
+
# only check for contacts within grid boundaries, and wrap
# around if they are periodic
if i < 1 || i > size(grid.xh)[1] || j < 1 || j > size(grid.xh)[2]
t@@ -186,6 +184,8 @@ function periodicBoundaryCorrection!(grid::Any, i::Integer, j::Integer,
j_corrected = 1
end
end
+
+ return i_corrected, j_corrected
end
export checkAndAddContact!