Granular.jl

Julia package for granular dynamics simulation
git clone git://src.adamsgaard.dk/Granular.jl
Log | Files | Refs | README | LICENSE

commit 03f252d361bad9d81b06ea1643a28f95835bb337
parent 46353905835603c8e1d78ce7fcb33976c59f7dc1
Author: Anders Damsgaard <andersd@riseup.net>
Date:   Mon,  6 Nov 2017 21:22:44 -0500

fix memory allocation associated with external body force

Diffstat:
Msrc/simulation.jl | 2+-
Mtest/grain.jl | 5++++-
Mtest/memory-management.jl | 13+++++--------
3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/simulation.jl b/src/simulation.jl @@ -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 diff --git a/test/grain.jl b/test/grain.jl @@ -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], @@ -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) @@ -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.]) diff --git a/test/memory-management.jl b/test/memory-management.jl @@ -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 @@ -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 + @@ -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")