tsave and check inter-particle position vector, tests failing - Granular.jl - J… | |
git clone git://src.adamsgaard.dk/Granular.jl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit b0918c98604e04ea2c4f983c73e589cf7b7e9646 | |
parent d3ccfa13eceaac8e9f56ceb7872e6c0919d79289 | |
Author: Anders Damsgaard <[email protected]> | |
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(-) | |
--- | |
diff --git a/src/contact_search.jl b/src/contact_search.jl | |
t@@ -192,10 +192,11 @@ function checkAndAddContact!(sim::Simulation, i::Int, j:… | |
# 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::I… | |
@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. | |
diff --git a/test/contact-search-and-geometry.jl b/test/contact-search-and-geom… | |
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 |