tsedimentation.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
       ---
       tsedimentation.jl (1325B)
       ---
            1 #/usr/bin/env julia
            2 import Granular
            3 
            4 #### Create a loose granular assemblage and let it settle at towards -y
            5 sim = Granular.createSimulation(id="sedimentation")
            6 
            7 # Generate 10 grains along x and 25 grains along y, with radii between 0.2 and
            8 # 1.0 m.
            9 Granular.regularPacking!(sim, [7, 25], 0.02, 0.2,
           10                          tiling="triangular",
           11                          padding_factor=0.1)
           12 
           13 # Visualize the grain-size distribution
           14 #Granular.plotGrainSizeDistribution(sim)
           15 
           16 # Create a grid for contact searching spanning the extent of the grains in the
           17 # simulation
           18 Granular.fitGridToGrains!(sim, sim.ocean)
           19 
           20 # Make the grid boundaries impermeable for the grains, which 
           21 Granular.setGridBoundaryConditions!(sim.ocean, "impermeable")
           22 
           23 # Add gravitational acceleration to all grains
           24 g = [0., -9.8]
           25 for grain in sim.grains
           26     Granular.addBodyForce!(grain, grain.mass*g)
           27 end
           28 
           29 # Automatically set the computational time step based on grain sizes and
           30 # properties
           31 Granular.setTimeStep!(sim)
           32 
           33 # Set the total simulation time for this step [s]
           34 Granular.setTotalTime!(sim, 10.0)
           35 
           36 # Set the interval in model time between simulation files [s]
           37 Granular.setOutputFileInterval!(sim, 0.2)
           38 
           39 # Start the simulation
           40 Granular.run!(sim)
           41 
           42 # Try to render the simulation if `pvpython` is installed on the system
           43 Granular.render(sim, trim=false)