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