tvtk.jl - Granular.jl - Julia package for granular dynamics simulation
(HTM) git clone git://src.adamsgaard.dk/Granular.jl
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tvtk.jl (3923B)
---
1 #!/usr/bin/env julia
2
3 # Check the contact search and geometry of a two-particle interaction
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.addGrainCylindrical!(sim, [18., 0.], 10., 1., verbose=false)
9 sim.ocean = Granular.createRegularOceanGrid([10, 20, 5], [10., 25., 2.])
10 Granular.findContacts!(sim, method="all to all")
11 Granular.writeVTK(sim, verbose=false)
12
13 cmd_post = ""
14 if Sys.islinux()
15 cmd = "sha256sum"
16 elseif Sys.isapple()
17 cmd = ["shasum", "-a", "256"]
18 elseif Sys.iswindows()
19 @info "checksum verification not yet implemented on Windows"
20 exit()
21 cmd = ["powershell", "-Command", "\"Get-FileHash", "-Algorithm", "SHA256"]
22 cmd_post = "\""
23 else
24 error("checksum verification of VTK file not supported on this platform")
25 end
26
27 grainpath = "test/test.grains.1.vtu"
28 grainchecksum =
29 "b1748cb82e8270d951d9c1acaea0d151f0a5c48a1255e75de350bf9bcbc15fe9 " *
30 grainpath * "\n"
31
32 graininteractionpath = "test/test.grain-interaction.1.vtp"
33 graininteractionchecksum =
34 "b8e49252a0ac87c2fce05e68ffab46589853429dc9f75d89818e4a37b953b137 " *
35 graininteractionpath * "\n"
36
37 oceanpath = "test/test.ocean.1.vts"
38 oceanchecksum =
39 "b65f00942f1cbef7335921948c9eb73d137574eb806c33dea8b0e9b638665f3b " *
40 oceanpath * "\n"
41
42 #@test read(`$(cmd) $(grainpath)$(cmd_post)`, String) == grainchecksum
43 #@test read(`$(cmd) $(graininteractionpath)$(cmd_post)`, String) ==
44 #graininteractionchecksum
45 #@test read(`$(cmd) $(oceanpath)$(cmd_post)`, String) == oceanchecksum
46
47 Granular.removeSimulationFiles(sim)
48
49 @info "Testing VTK write during run!()"
50 Granular.setOutputFileInterval!(sim, 1e-9)
51 Granular.setTotalTime!(sim, 1.5)
52 Granular.setTimeStep!(sim)
53 sim.file_number = 0
54 Granular.run!(sim, single_step=true)
55 @test Granular.readSimulationStatus(sim.id) == 1
56 @test Granular.readSimulationStatus(sim) == 1
57 Granular.setOutputFileInterval!(sim, 0.1)
58 Granular.run!(sim)
59
60 @info "Testing status output"
61 Granular.status()
62 Granular.status(colored_output=false)
63 dir = "empty_directory"
64 isdir(dir) || mkdir(dir)
65 Granular.status(dir)
66 rm(dir)
67
68 @info "Testing generation of Paraview Python script"
69 Granular.writeParaviewPythonScript(sim,
70 save_animation=true,
71 save_images=false)
72 @test isfile("$(sim.id)/$(sim.id).py") && filesize("$(sim.id)/$(sim.id).py") > 0
73
74 #@info "Testing Paraview rendering if `pvpython` is present"
75 #try
76 # run(`pvpython $(sim.id)/$(sim.id).py`)
77 #catch return_signal
78 # if !isa(return_signal, Base.IOError)
79 # @test isfile("$(sim.id)/$(sim.id).avi")
80 # end
81 #end
82
83 Granular.writeParaviewPythonScript(sim,
84 save_animation=false,
85 save_images=true)
86 #try
87 # run(`pvpython $(sim.id)/$(sim.id).py`)
88 #catch return_signal
89 # if !isa(return_signal, Base.IOError)
90 # @test isfile("$(sim.id)/$(sim.id).0000.png")
91 # @test isfile("$(sim.id)/$(sim.id).0014.png")
92 # Granular.render(sim)
93 # @test isfile("$(sim.id)/$(sim.id).0001.png")
94 # end
95 #end
96
97 #@test read(`$(cmd) $(grainpath)$(cmd_post)`, String) == grainchecksum
98 #@test read(`$(cmd) $(graininteractionpath)$(cmd_post)`, String) ==
99 #graininteractionchecksum
100 #@test read(`$(cmd) $(oceanpath)$(cmd_post)`, String) == oceanchecksum
101
102 @info "Writing simple simulation to VTK file"
103 sim = Granular.createSimulation(id="test")
104 Granular.addGrainCylindrical!(sim, [ 0., 0.], 10., 1., youngs_modulus=0., verbose=false)
105 Granular.addGrainCylindrical!(sim, [18., 0.], 10., 1., youngs_modulus=0., verbose=false)
106 sim.ocean = Granular.createRegularOceanGrid([10, 20, 5], [10., 25., 2.])
107 sim.atmosphere = Granular.createRegularAtmosphereGrid([10, 20, 5], [10., 25., 2.])
108 Granular.findContacts!(sim, method="all to all")
109 Granular.writeVTK(sim, verbose=false)
110
111 Granular.removeSimulationFiles(sim)