tfix numerous issues related to grid function rewrite - 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 f8aa00babd9ab63c2f2454e05f18043c6f62a1d8
 (DIR) parent 91f282a51512fbae23efa708eb91ae3d1fc100f0
 (HTM) Author: Anders Damsgaard <andersd@riseup.net>
       Date:   Fri,  2 Jun 2017 16:20:32 -0400
       
       fix numerous issues related to grid function rewrite
       
       Diffstat:
         M src/contact_search.jl               |       5 +++++
         M src/grid.jl                         |       2 +-
         M src/simulation.jl                   |      18 +++++++++++++++++-
         M test/contact-search-and-geometry.jl |      10 +++++-----
         M test/grid.jl                        |       6 +++---
       
       5 files changed, 31 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/src/contact_search.jl b/src/contact_search.jl
       t@@ -22,8 +22,13 @@ function findContacts!(simulation::Simulation;
        
            if method == "all to all"
                findContactsAllToAll!(simulation)
       +
            elseif method == "ocean grid"
                findContactsOceanGrid!(simulation)
       +
       +    elseif method == "atmosphere grid"
       +        error("not yet implemented")
       +
            else
                error("Unknown contact search method '$method'")
            end
 (DIR) diff --git a/src/grid.jl b/src/grid.jl
       t@@ -71,7 +71,7 @@ export sortIceFloesInGrid!
        """
        Find ice-floe positions in grid, based on their center positions.
        """
       -function sortIceFloesInGrid!(grid::Any; verbose=false)
       +function sortIceFloesInGrid!(simulation::Simulation, grid::Any; verbose=false)
        
            grid.ice_floe_list =
                Array{Array{Int, 1}}(size(grid.xh, 1), size(grid.xh, 2))
 (DIR) diff --git a/src/simulation.jl b/src/simulation.jl
       t@@ -109,16 +109,32 @@ function run!(simulation::Simulation;
                end
        
                zeroForcesAndTorques!(simulation)
       +
       +        if typeof(simulation.atmosphere.input_file) != Bool
       +            sortIceFloesInGrid!(sim, sim.atmosphere)
       +        end
       +
                if typeof(simulation.ocean.input_file) != Bool
       -            sortIceFloesInOceanGrid!(simulation)
       +            sortIceFloesInGrid!(simulation, simulation.ocean)
                    findContacts!(simulation, method="ocean grid")
       +
       +        elseif typeof(simulation.atmosphere.input_file) != Bool
       +            findContacts!(simulation, method="atmosphere grid")
       +
                else
                    findContacts!(simulation, method="all to all")
                end
       +
                interact!(simulation)
       +
                if typeof(simulation.ocean.input_file) != Bool
                    addOceanDrag!(simulation)
                end
       +
       +        if typeof(simulation.atmosphere.input_file) != Bool
       +            addAtmosphereDrag!(simulation)
       +        end
       +
                updateIceFloeKinematics!(simulation, method=temporal_integration_method)
        
                # Update time variables
 (DIR) diff --git a/test/contact-search-and-geometry.jl b/test/contact-search-and-geometry.jl
       t@@ -122,10 +122,10 @@ end
        @test 1 == sim.ice_floes[2].n_contacts
        
        
       -info("Testing findContactsOceanGrid(...)")
       +info("Testing findContactsGrid(...)")
        sim = deepcopy(sim_copy)
        sim.ocean = SeaIce.createRegularOceanGrid([4, 4, 2], [80., 80., 2.])
       -SeaIce.sortIceFloesInOceanGrid!(sim)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean)
        SeaIce.findContactsOceanGrid!(sim)
        
        @test 2 == sim.ice_floes[1].contacts[1]
       t@@ -144,7 +144,7 @@ end
        sim = deepcopy(sim_copy)
        sim.ocean = SeaIce.createRegularOceanGrid([4, 4, 2], [80., 80., 2.])
        sim.ice_floes[1].fixed = true
       -SeaIce.sortIceFloesInOceanGrid!(sim)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean)
        SeaIce.findContactsOceanGrid!(sim)
        
        @test 2 == sim.ice_floes[1].contacts[1]
       t@@ -164,7 +164,7 @@ sim = deepcopy(sim_copy)
        sim.ocean = SeaIce.createRegularOceanGrid([4, 4, 2], [80., 80., 2.])
        sim.ice_floes[1].fixed = true
        sim.ice_floes[2].fixed = true
       -SeaIce.sortIceFloesInOceanGrid!(sim)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean)
        SeaIce.findContactsOceanGrid!(sim)
        
        for ic=1:32
       t@@ -181,7 +181,7 @@ end
        info("Testing findContacts(...)")
        sim = deepcopy(sim_copy)
        sim.ocean = SeaIce.createRegularOceanGrid([4, 4, 2], [80., 80., 2.])
       -SeaIce.sortIceFloesInOceanGrid!(sim)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean)
        SeaIce.findContacts!(sim)
        
        @test 2 == sim.ice_floes[1].contacts[1]
 (DIR) diff --git a/test/grid.jl b/test/grid.jl
       t@@ -106,7 +106,7 @@ sim.ocean = SeaIce.readOceanNetCDF("Baltic/00010101.ocean_month.nc",
        SeaIce.addIceFloeCylindrical(sim, [6.5, 53.5], 10., 1., verbose=verbose)
        SeaIce.addIceFloeCylindrical(sim, [6.6, 53.5], 10., 1., verbose=verbose)
        SeaIce.addIceFloeCylindrical(sim, [7.5, 53.5], 10., 1., verbose=verbose)
       -SeaIce.sortIceFloesInOceanGrid!(sim, verbose=verbose)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean, verbose=verbose)
        @test sim.ice_floes[1].ocean_grid_pos == [1, 1]
        @test sim.ice_floes[2].ocean_grid_pos == [1, 1]
        @test sim.ice_floes[3].ocean_grid_pos == [2, 1]
       t@@ -119,7 +119,7 @@ sim.ocean = SeaIce.createRegularOceanGrid([4, 4, 2], [4., 4., 2.])
        sim.ocean.u[:,:,1,1] = 5.
        SeaIce.addIceFloeCylindrical(sim, [2.5, 3.5], 1., 1., verbose=verbose)
        SeaIce.addIceFloeCylindrical(sim, [2.6, 2.5], 1., 1., verbose=verbose)
       -SeaIce.sortIceFloesInOceanGrid!(sim, verbose=verbose)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean, verbose=verbose)
        sim.time = ocean.time[1]
        SeaIce.addOceanDrag!(sim)
        @test sim.ice_floes[1].force[1] > 0.
       t@@ -130,7 +130,7 @@ sim.ocean.u[:,:,1,1] = -5.
        sim.ocean.v[:,:,1,1] = 5.
        SeaIce.addIceFloeCylindrical(sim, [2.5, 3.5], 1., 1., verbose=verbose)
        SeaIce.addIceFloeCylindrical(sim, [2.6, 2.5], 1., 1., verbose=verbose)
       -SeaIce.sortIceFloesInOceanGrid!(sim, verbose=verbose)
       +SeaIce.sortIceFloesInGrid!(sim, sim.ocean, verbose=verbose)
        sim.time = ocean.time[1]
        SeaIce.addOceanDrag!(sim)
        @test sim.ice_floes[1].force[1] < 0.