tgrain.jl - Granular.jl - Julia package for granular dynamics simulation | |
git clone git://src.adamsgaard.dk/Granular.jl | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
tgrain.jl (4021B) | |
--- | |
1 #!/usr/bin/env julia | |
2 | |
3 # Check the basic icefloe functionality | |
4 | |
5 @info "Writing simple simulation to VTK file" | |
6 sim = Granular.createSimulation(id="test") | |
7 Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false) | |
8 Granular.printGrainInfo(sim.grains[1]) | |
9 | |
10 @info "Testing grain value checks " | |
11 @test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1, … | |
12 10., 1.) | |
13 @test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], | |
14 10., 1., | |
15 lin_vel=[.2,.2… | |
16 @test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], | |
17 10., 1., | |
18 lin_acc=[.2,.2… | |
19 @test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], | |
20 0., 1.) | |
21 @test_throws ErrorException Granular.addGrainCylindrical!(sim, [.1, .1], | |
22 10., 1., densi… | |
23 @test_throws ErrorException Granular.disableGrain!(sim, 0) | |
24 | |
25 @info "Testing grain comparison " | |
26 sim = Granular.createSimulation(id="test") | |
27 Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false) | |
28 Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false) | |
29 Granular.compareGrains(sim.grains[1], sim.grains[2]) | |
30 Granular.findContacts!(sim) | |
31 | |
32 global gnuplot = true | |
33 try | |
34 run(`gnuplot --version`) | |
35 catch return_signal | |
36 if isa(return_signal, Base.IOError) | |
37 @warn "Skipping plotting routines: Could not launch gnuplot proc… | |
38 global gnuplot = false | |
39 end | |
40 end | |
41 if gnuplot | |
42 @info "Testing GSD plotting " | |
43 Granular.plotGrainSizeDistribution(sim) | |
44 @test isfile("test-grain-size-distribution.png") | |
45 rm("test-grain-size-distribution.png") | |
46 | |
47 Granular.plotGrainSizeDistribution(sim, skip_fixed=false) | |
48 @test isfile("test-grain-size-distribution.png") | |
49 rm("test-grain-size-distribution.png") | |
50 | |
51 Granular.plotGrainSizeDistribution(sim, size_type="areal") | |
52 @test isfile("test-grain-size-distribution.png") | |
53 rm("test-grain-size-distribution.png") | |
54 | |
55 @test_throws ErrorException Granular.plotGrainSizeDistribution(sim, … | |
56 | |
57 @info "Testing grain plotting" | |
58 Granular.plotGrains(sim, show_figure=false) | |
59 @test isfile("test/test.grains.0.png") | |
60 rm("test/test.grains.0.png") | |
61 | |
62 @info " - contact_radius" | |
63 Granular.plotGrains(sim, palette_scalar="contact_radius", show_figur… | |
64 @test isfile("test/test.grains.0.png") | |
65 rm("test/test.grains.0.png") | |
66 @info " - areal_radius" | |
67 Granular.plotGrains(sim, palette_scalar="areal_radius", show_figure=… | |
68 @test isfile("test/test.grains.0.png") | |
69 rm("test/test.grains.0.png") | |
70 @info " - color" | |
71 Granular.plotGrains(sim, palette_scalar="color", show_figure=false) | |
72 @test isfile("test/test.grains.0.png") | |
73 rm("test/test.grains.0.png") | |
74 | |
75 @info " - invalid field" | |
76 @test_throws ErrorException Granular.plotGrains(sim, palette_scalar=… | |
77 show_figure=false) | |
78 end | |
79 | |
80 @info "Testing external body force routines" | |
81 sim = Granular.createSimulation(id="test") | |
82 Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., verbose=false) | |
83 Granular.setBodyForce!(sim.grains[1], [1., 2., 0.]) | |
84 @test sim.grains[1].external_body_force ≈ [1., 2., 0.] | |
85 Granular.addBodyForce!(sim.grains[1], [1., 2., 0.]) | |
86 @test sim.grains[1].external_body_force ≈ [2., 4., 0.] | |
87 | |
88 @info "Testing zeroKinematics!()" | |
89 sim.grains[1].force .= ones(3) | |
90 sim.grains[1].lin_acc .= ones(3) | |
91 sim.grains[1].lin_vel .= ones(3) | |
92 sim.grains[1].torque .= ones(3) | |
93 sim.grains[1].ang_acc .= ones(3) | |
94 sim.grains[1].ang_vel .= ones(3) | |
95 Granular.zeroKinematics!(sim) | |
96 @test Granular.totalGrainKineticTranslationalEnergy(sim) ≈ 0. | |
97 @test Granular.totalGrainKineticRotationalEnergy(sim) ≈ 0. |