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!