commit 30af4dcf37a6204bd9d127ffce9a0763a5d9d1b0
parent ddb4611e8e4fa17f9e08d61a5b5d16ce25bf00e1
Author: Anders Damsgaard <andersd@riseup.net>
Date: Tue, 25 Apr 2017 16:20:01 -0400
add outline of sorting algorithm
Diffstat:
2 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/src/datatypes.jl b/src/datatypes.jl
@@ -44,6 +44,8 @@ type IceFloeCylindrical
contact_dynamic_friction::float
pressure::float
+
+ #ocean_grid_pos::Array{Int, 2}
end
# Type for gathering data from ice floe objects into single arrays
@@ -151,6 +153,8 @@ type Ocean
v::Array{Float64, 4}
h::Array{Float64, 4}
e::Array{Float64, 4}
+
+ #ice_floe_list::Array{Array{Int, 1}, 2}
end
# Top-level simulation type
diff --git a/src/grid.jl b/src/grid.jl
@@ -30,3 +30,34 @@ function bilinearInterpolation(field::Array{Float64, 4},
error("grid type not understood.")
end
end
+
+"""
+Find ice-floe positions in ocean grid, based on their center positions.
+"""
+function sortIceFloesInOceanGrid!(simulation::Simulation, verbose=true)
+
+ # TODO: initialize empty ice_floe_list before appending to list
+
+ for idx in 1:length(simulation.ice_floes)
+
+ for i in 1:size(simulation.ocean.xh)[1]
+ for j in 1:size(simulation.ocean.xh)[2]
+
+ if cellContainsIceFloe(simulation.ocean, i, j,
+ simulation.ice_floes[idx])
+
+ # add cell to ice floe
+ simulation.ice_floes[idx].ocean_grid_pos = [i, j]
+
+ # add ice floe to cell
+ push!(simulation.ice_floe_list[i, j], idx)
+ end
+ end
+ end
+ end
+end
+
+function cellContainsIceFloe(ocean::Ocean, i::Int, j::Int,
+ icefloe::IceFloeCylindrical)
+
+end