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)