Granular.jl

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

commit 7bafd0d7e6f0476e8effe65a232673f1b74bd019
parent 09f45f8ba9a400b62df5ac97affca06066b3707c
Author: Anders Damsgaard <andersd@riseup.net>
Date:   Wed, 10 May 2017 13:34:04 -0400

prevent contact list overrun, use elastic interaction in nares strait example

Diffstat:
Mexamples/nares_strait.jl | 7++++---
Msrc/interaction.jl | 7+++++--
2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/examples/nares_strait.jl b/examples/nares_strait.jl @@ -4,7 +4,7 @@ import SeaIce #sim = SeaIce.createSimulation(id="nares_strait") #n = [25, 25, 2] -sim = SeaIce.createSimulation(id="nares_strait_coarse") +sim = SeaIce.createSimulation(id="nares_strait_coarse_elast") n = [6, 6, 2] # Initialize ocean @@ -110,8 +110,9 @@ info("added $(n) ice floes") SeaIce.removeSimulationFiles(sim) k_n = 1e6 # N/m -k_t = 0. -gamma_t = 1e7 # N/(m/s) +k_t = k_n +#gamma_t = 1e7 # N/(m/s) +gamma_t = 0. mu_d = 0.7 rotating = true for i=1:length(sim.ice_floes) diff --git a/src/interaction.jl b/src/interaction.jl @@ -8,11 +8,14 @@ Resolve mechanical interaction between all particle pairs. """ function interact!(simulation::Simulation) for i=1:Int(ceil(length(simulation.ice_floes)/2.)) # i <= Int(N/2) - for ic=1:simulation.ice_floes[i].n_contacts - #for ic=1:Nc_max + for ic=1:Nc_max j = simulation.ice_floes[i].contacts[ic] + if j == 0 + break # end of contact list reached + end + if norm(simulation.ice_floes[i].lin_pos - simulation.ice_floes[j].lin_pos) - (simulation.ice_floes[i].contact_radius +