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:
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")