Granular.jl

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

commit 8ac51ccee3b22d1905d1dcbc66d2ac323c7df87b
parent cb3a1223d0bfc1e7a64c4f57285876df3623d3c7
Author: Anders Damsgaard <andersd@riseup.net>
Date:   Thu, 20 Apr 2017 16:35:09 -0400

remove all legacy code related to wall-particle interaction

Diffstat:
Msrc/contact_search.jl | 36------------------------------------
Msrc/datatypes.jl | 1-
Msrc/interaction.jl | 8+-------
Msrc/simulation.jl | 7++-----
4 files changed, 3 insertions(+), 49 deletions(-)

diff --git a/src/contact_search.jl b/src/contact_search.jl @@ -53,39 +53,3 @@ function findContactsAllToAll!(simulation::Simulation) end end end - -""" -Check contacts with world boundaries (walls). Contacts are stored in -g_wall_contacts with the format [i, w], where i is the grain number and w is the -wall number. The walls are orthorectangular. The wall at negative x is called --1, and 1 at positive x. For negative y it is called -2, and 2 at positive y. -For negative z it is called -3, and 3 at positive z. -""" -function findIceFloeWallContacts(simulation::Simulation) - - for i = 1:length(g_radius) - - # Overlap with origo - if (simulation.ice_floes[i].lin_pos[1] - - simulation.ice_floes[i].contact_radius - simulation.origo[1] - < 0.0) - push!(simulation.wall_contacts, [i, -1]) - end - - if (simulation.ice_floes[i].lin_pos[2] - - simulation.ice_floes[i].contact_radius - simulation.origo[2] < 0.0) - push!(simulation.ice_floes[i].wall_contacts, [i, -2]) - end - - # Overlap with world_size - if (simulation.world_size[1] - simulation.ice_floes[i].lin_pos[1] - - simulation.ice_floes[i].contact_radius < 0.0) - push!(simulation.ice_floes[i].wall_contacts, [i, 1]) - end - - if (simulation.world_size[2] - simulation.ice_floes[i].lin_pos[2] - - simulation.ice_floes[i].contact_radius < 0.0) - push!(simulation.ice_floes[i].wall_contacts, [i, 2]) - end - end -end diff --git a/src/datatypes.jl b/src/datatypes.jl @@ -98,6 +98,5 @@ type Simulation ice_floes::Array{IceFloeCylindrical, 1} contact_pairs::Array{Array{Int, 1}, 1} overlaps::Array{Array{Float64, 1}, 1} - wall_contacts::Array{Array{Int, 1}, 1} end diff --git a/src/interaction.jl b/src/interaction.jl @@ -1,7 +1,7 @@ ## Interaction functions """ -Resolve mechanical interaction between all grain pairs and walls. +Resolve mechanical interaction between all particle pairs. """ function interact!(simulation::Simulation) @@ -12,12 +12,6 @@ function interact!(simulation::Simulation) interactIceFloes!(simulation, contact_pair[1], contact_pair[2], overlap_vector) end - - # IceFloe to wall collisions - while !isempty(simulation.wall_contacts) - contact_pair = pop!(simulation.wall_contacts) - interactIceFloeWall!(simulation, contact_pair[1], contact_pair[2]) - end end """ diff --git a/src/simulation.jl b/src/simulation.jl @@ -11,7 +11,6 @@ ice_floes=Array{IceFloeCylindrical, 1}[], contact_pairs=Array{Int64, 1}[], overlaps=Array{Array{Float64, 1}, 1}[], - wall_contacts=Array{Int64, 1}[]]) Create a simulation object containing all relevant variables such as temporal parameters, and lists of ice floes and contacts. @@ -28,8 +27,7 @@ function createSimulation(;id::String="unnamed", file_number::Int=0, ice_floes=Array{IceFloeCylindrical, 1}[], contact_pairs=Array{Int64, 1}[], - overlaps=Array{Array{Float64, 1}, 1}[], - wall_contacts=Array{Int64, 1}[]) + overlaps=Array{Array{Float64, 1}, 1}[]) return Simulation(id, time_iteration, @@ -40,8 +38,7 @@ function createSimulation(;id::String="unnamed", file_number, ice_floes, contact_pairs, - overlaps, - wall_contacts) + overlaps) end """