tfix memory allocation associated with external body force - 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 03f252d361bad9d81b06ea1643a28f95835bb337
 (DIR) parent 46353905835603c8e1d78ce7fcb33976c59f7dc1
 (HTM) Author: Anders Damsgaard <andersd@riseup.net>
       Date:   Mon,  6 Nov 2017 21:22:44 -0500
       
       fix memory allocation associated with external body force
       
       Diffstat:
         M src/simulation.jl                   |       2 +-
         M test/grain.jl                       |       5 ++++-
         M test/memory-management.jl           |      13 +++++--------
       
       3 files changed, 10 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/src/simulation.jl b/src/simulation.jl
       t@@ -229,7 +229,7 @@ export zeroForcesAndTorques!
        "Sets the `force` and `torque` values of all grains to zero."
        function zeroForcesAndTorques!(simulation::Simulation)
            for grain in simulation.grains
       -        grain.force = grain.external_body_force
       +        grain.force .= grain.external_body_force
                grain.torque = 0.
                grain.pressure = 0.
            end
 (DIR) diff --git a/test/grain.jl b/test/grain.jl
       t@@ -9,7 +9,7 @@ sim = Granular.createSimulation(id="test")
        Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false)
        Granular.printGrainInfo(sim.grains[1])
        
       -
       +info("Testing grain value checks ")
        Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1, .1],
                                                                  10., 1.)
        Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1],
       t@@ -24,12 +24,14 @@ Test.@test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1],
                                                                  10., 1., density=-2.)
        Test.@test_throws ErrorException Granular.disableGrain!(sim, 0)
        
       +info("Testing grain comparison ")
        sim = Granular.createSimulation(id="test")
        Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false)
        Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false)
        Granular.compareGrains(sim.grains[1], sim.grains[2])
        
        if typeof(Pkg.installed("PyPlot")) == VersionNumber
       +    info("Testing GSD plotting ")
            Granular.plotGrainSizeDistribution(sim)
            rm("test-grain-size-distribution.png")
            Granular.plotGrainSizeDistribution(sim, skip_fixed=false)
       t@@ -43,6 +45,7 @@ else
            Test.@test_throws ErrorException Granular.plotGrainSizeDistribution(sim)
        end
        
       +info("Testing external body force routines")
        sim = Granular.createSimulation(id="test")
        Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false)
        Granular.setBodyForce!(sim.grains[1], [1., 2.])
 (DIR) diff --git a/test/memory-management.jl b/test/memory-management.jl
       t@@ -11,8 +11,8 @@ empty_sim_size_recursive = 544
        Test.@test sizeof(sim) == empty_sim_size
        Test.@test Base.summarysize(sim) == empty_sim_size_recursive
        
       -size_per_grain = 360
       -size_per_grain_recursive = 1528
       +size_per_grain = 368
       +size_per_grain_recursive = 1552
        
        info("Testing memory usage when adding grains")
        for i=1:100
       t@@ -20,6 +20,9 @@ for i=1:100
        
            Test.@test sizeof(sim) == empty_sim_size
        
       +    Test.@test sizeof(sim.grains[i]) == size_per_grain
       +    Test.@test Base.summarysize(sim.grains[i]) == size_per_grain_recursive
       +
            Test.@test sizeof(sim.grains) == sizeof(Int)*i
            Test.@test sizeof(sim.grains[:]) == sizeof(Int)*i
            Test.@test Base.summarysize(sim.grains) == size_per_grain_recursive*i + 
       t@@ -29,12 +32,6 @@ for i=1:100
                size_per_grain_recursive*i
        
            Test.@test Base.summarysize(sim.grains[i]) == size_per_grain_recursive
       -
       -    for j=1:i
       -        Test.@test sizeof(sim.grains[j]) == size_per_grain
       -        Test.@test Base.summarysize(sim.grains[j]) == size_per_grain_recursive
       -    end
       -
        end
        
        info("Checking memory footprint when overwriting simulation object")