ttwo-grain-collision.sh - granular - granular dynamics simulation
 (HTM) git clone git://src.adamsgaard.dk/granular
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       ttwo-grain-collision.sh (1269B)
       ---
            1 #!/bin/sh
            2 
            3 # stop the shell script if there's an error
            4 set -e
            5 
            6 # set a common id string for files
            7 id=two-grain-collision
            8 
            9 # remove any old files associated with this id
           10 rm -f ${id}.grains.*.{tsv,png} ${id}.mp4
           11 
           12 # create two grains, and simulate their interaction over time
           13 (granulargrain -R -u 0.1; granulargrain -f -x 1.2) | granular -e 4.0 -I 0.1 ${id}
           14 
           15 # plot grain positions over time, colored by force magnitude
           16 for f in ${id}.grains.*.tsv; do
           17         #granular2img -f '$50' -l 'number of contacts' -t png < "$f" > "${f%.tsv}.png"
           18         #granular2img -f '$5' -l 'x velocity [m/s]' -t png < "$f" > "${f%.tsv}.png"
           19         granular2img -f '$14' -l 'force_x [N]' -t png < "$f" > "${f%.tsv}.png"
           20 done
           21 
           22 # combine grain plots into animation
           23 ffmpeg -y -framerate 5 -i ${id}.grains.%05d.png \
           24         -c:v libx264 -r 30 -pix_fmt yuv420p ${id}.mp4
           25 
           26 # open animation
           27 xdg-open ${id}.mp4 
           28 
           29 # calculate bulk energy for each output file
           30 > "${id}.energy.tsv"
           31 for f in ${id}.grains.*.tsv; do
           32         granularenergy < "$f" >> "${id}.energy.tsv"
           33 done
           34 
           35 # plot energy over time
           36 gnuplot -e "set term png;\
           37             set xlabel 'time step';\
           38             set ylabel 'Energy [J]';\
           39                         plot '-' u 0:1 w lp t 'Total energy'" \
           40                          < "${id}.energy.tsv" > "${id}.energy.png"
           41 
           42 # open energy plot
           43 xdg-open "${id}.energy.png"