tsave and check inter-particle position vector, tests failing - 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 b0918c98604e04ea2c4f983c73e589cf7b7e9646
(DIR) parent d3ccfa13eceaac8e9f56ceb7872e6c0919d79289
(HTM) Author: Anders Damsgaard <andersd@riseup.net>
Date: Wed, 1 Nov 2017 16:16:29 -0400
save and check inter-particle position vector, tests failing
Diffstat:
M src/contact_search.jl | 5 ++++-
M test/contact-search-and-geometry.jl | 23 +++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/src/contact_search.jl b/src/contact_search.jl
t@@ -192,10 +192,11 @@ function checkAndAddContact!(sim::Simulation, i::Int, j::Int,
# Check if grains overlap (overlap when negative)
if overlap_ij < 0.
- # Check if contact is already registered
+ # Check if contact is already registered, and update position if so
for ic=1:sim.Nc_max
@inbounds if sim.grains[i].contacts[ic] == j
contact_found = true
+ @inbounds sim.grains[i].position_vector[ic] .= position_ij
break # contact already registered
end
end
t@@ -222,6 +223,8 @@ function checkAndAddContact!(sim::Simulation, i::Int, j::Int,
@inbounds sim.grains[i].n_contacts += 1
@inbounds sim.grains[j].n_contacts += 1
@inbounds sim.grains[i].contacts[ic] = j
+ @inbounds sim.grains[i].position_vector[ic] .=
+ position_ij
@inbounds fill!(sim.grains[i].
contact_parallel_displacement[ic] , 0.)
@inbounds sim.grains[i].contact_age[ic] = 0.
(DIR) diff --git a/test/contact-search-and-geometry.jl b/test/contact-search-and-geometry.jl
t@@ -28,12 +28,15 @@ Granular.findContacts!(sim)
sim.grains[1].fixed = true
# The contact should be registered in ice floe 1, but not ice floe 2
@test 2 == sim.grains[1].contacts[1]
+@test [-18., 0.] ≈ sim.grains[1].position_vector[1]
for ic=2:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 1 == sim.grains[1].n_contacts
t@@ -44,12 +47,15 @@ sim = deepcopy(sim_copy)
Granular.findContacts!(sim)
@test 2 == sim.grains[1].contacts[1]
+@test [-18., 0.] ≈ sim.grains[1].position_vector[1]
for ic=2:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 1 == sim.grains[1].n_contacts
t@@ -63,10 +69,12 @@ sim.grains[2].fixed = true
Granular.findContacts!(sim)
for ic=1:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 0 == sim.grains[1].n_contacts
t@@ -78,10 +86,12 @@ Granular.disableGrain!(sim, 1)
Granular.findContacts!(sim)
for ic=1:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 0 == sim.grains[1].n_contacts
t@@ -94,10 +104,12 @@ Granular.disableGrain!(sim, 2)
Granular.findContacts!(sim)
for ic=1:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 0 == sim.grains[1].n_contacts
t@@ -110,12 +122,15 @@ Granular.interact!(sim)
Granular.findContacts!(sim)
@test 2 == sim.grains[1].contacts[1]
+@test [-18., 0.] ≈ sim.grains[1].position_vector[1]
for ic=2:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 1 == sim.grains[1].n_contacts
t@@ -131,10 +146,12 @@ Granular.findContactsInGrid!(sim, sim.ocean)
@test 2 == sim.grains[1].contacts[1]
for ic=2:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 1 == sim.grains[1].n_contacts
t@@ -150,10 +167,12 @@ Granular.findContactsInGrid!(sim, sim.ocean)
@test 2 == sim.grains[1].contacts[1]
for ic=2:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 1 == sim.grains[1].n_contacts
t@@ -169,10 +188,12 @@ Granular.findContactsInGrid!(sim, sim.ocean)
for ic=1:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 0 == sim.grains[1].n_contacts
t@@ -187,10 +208,12 @@ Granular.findContacts!(sim)
@test 2 == sim.grains[1].contacts[1]
for ic=2:sim.Nc_max
@test 0 == sim.grains[1].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[1].position_vector[ic]
@test [0., 0.] ≈ sim.grains[1].contact_parallel_displacement[ic]
end
for ic=1:sim.Nc_max
@test 0 == sim.grains[2].contacts[ic]
+ @test [0., 0.] ≈ sim.grains[2].position_vector[ic]
@test [0., 0.] ≈ sim.grains[2].contact_parallel_displacement[ic]
end
@test 1 == sim.grains[1].n_contacts