tadjust grid with knowledge if boundaries are periodic - Granular.jl - Julia pa… | |
git clone git://src.adamsgaard.dk/Granular.jl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 03b7b12c6918a843374e24d2eb745744f2d84826 | |
parent 15c86420fd81e35bbdfd44c7f7a6c9b3767137ee | |
Author: Anders Damsgaard <[email protected]> | |
Date: Thu, 16 Nov 2017 09:46:25 -0800 | |
adjust grid with knowledge if boundaries are periodic | |
Diffstat: | |
M src/grid.jl | 46 ++++++++++++++++++++++++-----… | |
1 file changed, 36 insertions(+), 10 deletions(-) | |
--- | |
diff --git a/src/grid.jl b/src/grid.jl | |
t@@ -890,26 +890,52 @@ function fitGridToGrains!(simulation::Simulation, grid::… | |
error("Grains need to be initialized before calling fitGridToGrains") | |
end | |
+ r = 0. | |
for grain in simulation.grains | |
+ r = grain.contact_radius | |
- if grain.lin_pos[1] - grain.contact_radius < min_x | |
- min_x = grain.lin_pos[1] - grain.contact_radius | |
+ if grid.bc_west == grid_bc_flags["periodic"] | |
+ if grain.lin_pos[1] < min_x | |
+ min_x = grain.lin_pos[1] - r | |
+ end | |
+ else | |
+ if grain.lin_pos[1] - r < min_x | |
+ min_x = grain.lin_pos[1] - r | |
+ end | |
end | |
- if grain.lin_pos[1] + grain.contact_radius > max_x | |
- max_x = grain.lin_pos[1] + grain.contact_radius | |
+ if grid.bc_east == grid_bc_flags["periodic"] | |
+ if grain.lin_pos[1] > max_x | |
+ max_x = grain.lin_pos[1] + grain.contact_radius | |
+ end | |
+ else | |
+ if grain.lin_pos[1] + r > max_x | |
+ max_x = grain.lin_pos[1] + grain.contact_radius | |
+ end | |
end | |
- if grain.lin_pos[2] - grain.contact_radius < min_y | |
- min_y = grain.lin_pos[2] - grain.contact_radius | |
+ if grid.bc_south == grid_bc_flags["periodic"] | |
+ if grain.lin_pos[2] < min_y | |
+ min_y = grain.lin_pos[2] - grain.contact_radius | |
+ end | |
+ else | |
+ if grain.lin_pos[2] - r < min_y | |
+ min_y = grain.lin_pos[2] - grain.contact_radius | |
+ end | |
end | |
- if grain.lin_pos[2] + grain.contact_radius > max_y | |
- max_y = grain.lin_pos[2] + grain.contact_radius | |
+ if grid.bc_north == grid_bc_flags["periodic"] | |
+ if grain.lin_pos[2] > max_y | |
+ max_y = grain.lin_pos[2] + grain.contact_radius | |
+ end | |
+ else | |
+ if grain.lin_pos[2] + r > max_y | |
+ max_y = grain.lin_pos[2] + grain.contact_radius | |
+ end | |
end | |
- if grain.contact_radius > max_radius | |
- max_radius = grain.contact_radius | |
+ if r > max_radius | |
+ max_radius = r | |
end | |
end | |
min_x -= padding |