tAdd `origo` vector to regular grids for handling non-zero grid origins - Granu… | |
git clone git://src.adamsgaard.dk/Granular.jl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit dafb5876273163ab2718cbcd4e8e256534e7a4c3 | |
parent dc28eeb14147dfb1e066f1679ef96eaed901660e | |
Author: Anders Damsgaard <[email protected]> | |
Date: Fri, 5 Jan 2018 10:57:41 -0500 | |
Add `origo` vector to regular grids for handling non-zero grid origins | |
Diffstat: | |
M src/atmosphere.jl | 4 ++-- | |
M src/datatypes.jl | 14 ++++++++------ | |
M src/grid.jl | 4 ++-- | |
M src/ocean.jl | 6 +++--- | |
M test/memory-management.jl | 2 +- | |
5 files changed, 16 insertions(+), 14 deletions(-) | |
--- | |
diff --git a/src/atmosphere.jl b/src/atmosphere.jl | |
t@@ -23,7 +23,7 @@ function createEmptyAtmosphere() | |
false, | |
- false, [1.,1.,1.], [1,1,1], [1.,1.,1.]) | |
+ false, [0.,0.,0.], [1.,1.,1.], [1,1,1], [1.,1.,1.]) | |
end | |
export interpolateAtmosphereVelocitiesToCorners | |
t@@ -141,7 +141,7 @@ function createRegularAtmosphereGrid(n::Vector{Int}, | |
Array{Array{Int, 1}}(size(xh, 1), size(xh, 2)), | |
bc_west, bc_south, bc_east, bc_north, | |
false, | |
- true, L, n, dx) | |
+ true, origo, L, n, dx) | |
end | |
export addAtmosphereDrag! | |
diff --git a/src/datatypes.jl b/src/datatypes.jl | |
t@@ -242,9 +242,10 @@ mutable struct Ocean | |
regular_grid::Bool | |
# Grid size when regular_grid == true | |
- L::Vector{Float64} # Grid length | |
- n::Vector{Integer} # Cell count | |
- dx::Vector{Float64} # Cell size | |
+ origo::Vector{Float64} # Grid origo | |
+ L::Vector{Float64} # Grid length | |
+ n::Vector{Integer} # Cell count | |
+ dx::Vector{Float64} # Cell size | |
end | |
#= | |
t@@ -326,9 +327,10 @@ mutable struct Atmosphere | |
regular_grid::Bool | |
# Grid size when regular_grid == true | |
- L::Vector{Float64} # Grid length | |
- n::Vector{Integer} # Cell count | |
- dx::Vector{Float64} # Cell size | |
+ origo::Vector{Float64} # Grid origo | |
+ L::Vector{Float64} # Grid length | |
+ n::Vector{Integer} # Cell count | |
+ dx::Vector{Float64} # Cell size | |
end | |
# Top-level simulation type | |
diff --git a/src/grid.jl b/src/grid.jl | |
t@@ -164,7 +164,7 @@ function sortGrainsInGrid!(simulation::Simulation, grid::A… | |
else | |
if grid.regular_grid | |
- i, j = Int.(floor.(simulation.grains[idx].lin_pos | |
+ i, j = Int.(floor.((simulation.grains[idx].lin_pos - grid.orig… | |
./ grid.dx[1:2])) + [1,1] | |
else | |
t@@ -299,7 +299,7 @@ function isPointInCell(grid::Any, i::Int, j::Int, | |
method::String="Conformal") | |
if grid.regular_grid | |
- if [i,j] == Int.(floor.(point ./ grid.dx[1:2])) + [1,1] | |
+ if [i,j] == Int.(floor.((point - grid.origo) ./ grid.dx[1:2])) + [1,1] | |
return true | |
else | |
return false | |
diff --git a/src/ocean.jl b/src/ocean.jl | |
t@@ -21,7 +21,7 @@ function createEmptyOcean() | |
zeros(1,1,1,1), | |
Array{Array{Int, 1}}(1, 1), | |
1, 1, 1, 1, | |
- false, [1.,1.,1.], [1,1,1], [1.,1.,1.]) | |
+ false, [0.,0.,0.], [1.,1.,1.], [1,1,1], [1.,1.,1.]) | |
end | |
export readOceanNetCDF | |
t@@ -69,7 +69,7 @@ function readOceanNetCDF(velocity_file::String, grid_file::S… | |
Array{Array{Int, 1}}(size(xh, 1), size(xh, 2)), | |
1, 1, 1, 1, | |
- false, [1.,1.,1.], [1,1,1], [1.,1.,1.] | |
+ false, [0.,0.,0.], [1.,1.,1.], [1,1,1], [1.,1.,1.] | |
) | |
return ocean | |
end | |
t@@ -257,7 +257,7 @@ function createRegularOceanGrid(n::Vector{Int}, | |
u, v, h, e, | |
Array{Array{Int, 1}}(size(xh, 1), size(xh, 2)), | |
bc_west, bc_south, bc_east, bc_north, | |
- true, L, n, dx) | |
+ true, origo, L, n, dx) | |
end | |
export addOceanDrag! | |
diff --git a/test/memory-management.jl b/test/memory-management.jl | |
t@@ -6,7 +6,7 @@ info("Testing memory footprint of Granular types") | |
sim = Granular.createSimulation() | |
empty_sim_size = 104 | |
-empty_sim_size_recursive = 752 | |
+empty_sim_size_recursive = 816 | |
@test sizeof(sim) == empty_sim_size | |
@test Base.summarysize(sim) == empty_sim_size_recursive |