Granular.jl

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

commit b4be6350613aa95a9711cc54f87b8cb45f025322
parent eb009ec1d76353d603736cdf85f1f7996b94466d
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Wed,  6 Jun 2018 12:56:47 -0400

Use .= for assigning a value to multiple locations in array

Diffstat:
Mtest/atmosphere.jl | 14+++++++-------
Mtest/grid.jl | 18+++++++++---------
Mtest/ocean.jl | 18+++++++++---------
3 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/test/atmosphere.jl b/test/atmosphere.jl @@ -41,7 +41,7 @@ E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) Compat.@info "Testing velocity drag interaction (static ice floe)" sim = deepcopy(sim_init) -sim.atmosphere.v[:, :, 1, 1] = 0.1 +sim.atmosphere.v[:, :, 1, 1] .= 0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -70,8 +70,8 @@ sim = deepcopy(sim_init) sim.atmosphere = Granular.createRegularAtmosphereGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.atmosphere.v[1, :, 1, 1] = -0.1 -sim.atmosphere.v[2, :, 1, 1] = 0.1 +sim.atmosphere.v[1, :, 1, 1] .= -0.1 +sim.atmosphere.v[2, :, 1, 1] .= 0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -102,8 +102,8 @@ sim = deepcopy(sim_init) sim.atmosphere = Granular.createRegularAtmosphereGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.atmosphere.u[:, 1, 1, 1] = -0.1 -sim.atmosphere.u[:, 2, 1, 1] = 0.1 +sim.atmosphere.u[:, 1, 1, 1] .= -0.1 +sim.atmosphere.u[:, 2, 1, 1] .= 0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -118,8 +118,8 @@ sim = deepcopy(sim_init) sim.atmosphere = Granular.createRegularAtmosphereGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.atmosphere.u[:, 1, 1, 1] = 0.1 -sim.atmosphere.u[:, 2, 1, 1] = -0.1 +sim.atmosphere.u[:, 1, 1, 1] .= 0.1 +sim.atmosphere.u[:, 2, 1, 1] .= -0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) diff --git a/test/grid.jl b/test/grid.jl @@ -144,7 +144,7 @@ end Compat.@info "Testing ocean drag" sim = Granular.createSimulation() sim.ocean = Granular.createRegularOceanGrid([4, 4, 2], [4., 4., 2.]) -sim.ocean.u[:,:,1,1] = 5. +sim.ocean.u[:,:,1,1] .= 5. Granular.addGrainCylindrical!(sim, [2.5, 3.5], 1., 1., verbose=verbose) Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) @@ -157,8 +157,8 @@ Granular.addOceanDrag!(sim) @test sim.grains[1].force[2] ≈ 0. @test sim.grains[2].force[1] > 0. @test sim.grains[2].force[2] ≈ 0. -sim.ocean.u[:,:,1,1] = -5. -sim.ocean.v[:,:,1,1] = 5. +sim.ocean.u[:,:,1,1] .= -5. +sim.ocean.v[:,:,1,1] .= 5. Granular.addGrainCylindrical!(sim, [2.5, 3.5], 1., 1., verbose=verbose) Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.ocean, verbose=verbose) @@ -174,7 +174,7 @@ ocean.u[1, 1, 1, 1] = 1.0 ocean.u[2, 1, 1, 1] = 1.0 ocean.u[2, 2, 1, 1] = 0.0 ocean.u[1, 2, 1, 1] = 0.0 -ocean.v[:, :, 1, 1] = 0.0 +ocean.v[:, :, 1, 1] .= 0.0 sw = Vector{Float64}(2) se = Vector{Float64}(2) ne = Vector{Float64}(2) @@ -185,7 +185,7 @@ ocean.u[1, 1, 1, 1] = 0.0 ocean.u[2, 1, 1, 1] = 0.0 ocean.u[2, 2, 1, 1] = 1.0 ocean.u[1, 2, 1, 1] = 1.0 -ocean.v[:, :, 1, 1] = 0.0 +ocean.v[:, :, 1, 1] .= 0.0 @test Granular.curl(ocean, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) < 0. Compat.@info "Testing atmosphere drag" @@ -202,8 +202,8 @@ Granular.addAtmosphereDrag!(sim) @test sim.grains[1].force[2] ≈ 0. @test sim.grains[2].force[1] > 0. @test sim.grains[2].force[2] ≈ 0. -sim.atmosphere.u[:,:,1,1] = -5. -sim.atmosphere.v[:,:,1,1] = 5. +sim.atmosphere.u[:,:,1,1] .= -5. +sim.atmosphere.v[:,:,1,1] .= 5. Granular.addGrainCylindrical!(sim, [2.5, 3.5], 1., 1., verbose=verbose) Granular.addGrainCylindrical!(sim, [2.6, 2.5], 1., 1., verbose=verbose) Granular.sortGrainsInGrid!(sim, sim.atmosphere, verbose=verbose) @@ -219,7 +219,7 @@ atmosphere.u[1, 1, 1, 1] = 1.0 atmosphere.u[2, 1, 1, 1] = 1.0 atmosphere.u[2, 2, 1, 1] = 0.0 atmosphere.u[1, 2, 1, 1] = 0.0 -atmosphere.v[:, :, 1, 1] = 0.0 +atmosphere.v[:, :, 1, 1] .= 0.0 @test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1) > 0. @test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) > 0. @@ -227,7 +227,7 @@ atmosphere.u[1, 1, 1, 1] = 0.0 atmosphere.u[2, 1, 1, 1] = 0.0 atmosphere.u[2, 2, 1, 1] = 1.0 atmosphere.u[1, 2, 1, 1] = 1.0 -atmosphere.v[:, :, 1, 1] = 0.0 +atmosphere.v[:, :, 1, 1] .= 0.0 @test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1) < 0. @test Granular.curl(atmosphere, .5, .5, 1, 1, 1, 1, sw, se, ne, nw) < 0. diff --git a/test/ocean.jl b/test/ocean.jl @@ -45,7 +45,7 @@ E_kin_rot_final = Granular.totalGrainKineticRotationalEnergy(sim) Compat.@info "Testing velocity drag interaction (static ice floe)" sim = deepcopy(sim_init) -sim.ocean.v[:, :, 1, 1] = 0.1 +sim.ocean.v[:, :, 1, 1] .= 0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -74,8 +74,8 @@ sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.ocean.v[1, :, 1, 1] = -0.1 -sim.ocean.v[2, :, 1, 1] = 0.1 +sim.ocean.v[1, :, 1, 1] .= -0.1 +sim.ocean.v[2, :, 1, 1] .= 0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -90,8 +90,8 @@ sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.ocean.v[1, :, 1, 1] = 0.1 -sim.ocean.v[2, :, 1, 1] = -0.1 +sim.ocean.v[1, :, 1, 1] .= 0.1 +sim.ocean.v[2, :, 1, 1] .= -0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -106,8 +106,8 @@ sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.ocean.u[:, 1, 1, 1] = -0.1 -sim.ocean.u[:, 2, 1, 1] = 0.1 +sim.ocean.u[:, 1, 1, 1] .= -0.1 +sim.ocean.u[:, 2, 1, 1] .= 0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false) @@ -122,8 +122,8 @@ sim = deepcopy(sim_init) sim.ocean = Granular.createRegularOceanGrid([1, 1, 1], [1., 1., 1.]) sim.grains[1].lin_pos[1] = 0.5 sim.grains[1].lin_pos[2] = 0.5 -sim.ocean.u[:, 1, 1, 1] = 0.1 -sim.ocean.u[:, 2, 1, 1] = -0.1 +sim.ocean.u[:, 1, 1, 1] .= 0.1 +sim.ocean.u[:, 2, 1, 1] .= -0.1 E_kin_lin_init = Granular.totalGrainKineticTranslationalEnergy(sim) E_kin_rot_init = Granular.totalGrainKineticRotationalEnergy(sim) Granular.run!(sim, verbose=false)