Introduction
Introduction Statistics Contact Development Disclaimer Help
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.
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.