ttwo-grains.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
       ---
       ttwo-grains.jl (1492B)
       ---
            1 #!/usr/bin/env julia
            2 import Granular
            3 
            4 # Create the simulation object which, among other things, will hold all
            5 # imformation on the simulated grains.  You can call this object whatever you
            6 # want, but in this documentation we will use the name `sim`.
            7 sim = Granular.createSimulation(id="two-grains")
            8 
            9 
           10 # Add a grain to the simulation object, having the position (0,0) in x-y space,
           11 # a radius of 0.1 m, and a thickness of 0.05 m.
           12 Granular.addGrainCylindrical!(sim, [0.0, 0.0], 0.1, 0.05)
           13 
           14 # Add a second grain, placed further down +x.
           15 Granular.addGrainCylindrical!(sim, [0.5, 0.0], 0.1, 0.05)
           16 
           17 # Set a velocity of 0.5 m/s along +x for the first grain, to make it bump into
           18 # the second grain.
           19 sim.grains[1].lin_vel[1:2] = [1.0, 0.0]
           20 
           21 # Before we can run the simulation, we need to specify the computational time
           22 # step, how often to produce output files for visualization, and for how long to
           23 # run the simulation in model time [s]:
           24 Granular.setTimeStep!(sim)
           25 Granular.setOutputFileInterval!(sim, 0.05)
           26 Granular.setTotalTime!(sim, 1.0)
           27 
           28 # Let's save the total kinetic energy before the simulation:
           29 E_kin_before = Granular.totalGrainKineticTranslationalEnergy(sim)
           30 
           31 # We can now run the simulation in a single call:
           32 Granular.run!(sim)
           33 
           34 # The kinetic energy after:
           35 E_kin_after = Granular.totalGrainKineticTranslationalEnergy(sim)
           36 
           37 # Report these values to console
           38 @info "Kinetic energy before: $E_kin_before J"
           39 @info "Kinetic energy after:  $E_kin_after J"
           40 
           41 Granular.render(sim, animation=true)