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:
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 +