Granular.jl

Julia package for granular dynamics simulation
git clone git://src.adamsgaard.dk/Granular.jl # fast
git clone https://src.adamsgaard.dk/Granular.jl.git # slow
Log | Files | Refs | README | LICENSE Back to index

vtk.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)