(Arne Babenhauserheide)
2016-06-07: update examples/d20world to use the wisp reader update examples/d20world to use the wisp reader
diff --git a/examples/d20world.w b/examples/d20world.w --- a/examples/d20world.w +++ b/examples/d20world.w @@ -1,4 +1,6 @@ -#!/home/arne/wisp/wisp-multiline.sh +#!/usr/bin/env sh +# -*- wisp -*- +exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples d20world) main)' -s "$0" "$@" ; !# ; A world projected on a d20 (20-sided die, ikosaeder) @@ -212,84 +214,86 @@ define : latlon2cellidx lat lon . #t -display : d20-as-text world -newline - -format #t "Diffuse ~A\n" 0.01 -d20-diffuse world neighbors 0.01 -display : d20-as-text world -newline -format #t "Advect ~A\n" 0.1 -d20-advect world advection-directions 0.1 -display : d20-as-text world -newline -format #t "Diffuse ~A\n" 0.1 -d20-diffuse world neighbors 0.1 -display : d20-as-text world -newline -format #t "Diffuse: ~A*(~A)\n" 100 0.1 -let loop : : steps 100 - cond - : = 0 steps - . world - else - d20-diffuse world neighbors 0.1 - loop : 1- steps -display : d20-as-text world -newline -let - : number 20 - val 1 - format #t "disturb: ~A to ~A\n" number val - vector-set! world (1- number) val - display : d20-as-text world - newline -format #t "Diffuse ~A\n" 0.1 -d20-diffuse world neighbors 0.1 -display : d20-as-text world -newline - -format #t "Advect: ~A*(~A)\n" 1000 0.001 -let loop : : steps 1000 - cond - : = 0 steps - . world - else - d20-advect world advection-directions 0.001 - display : d20-as-text world - d20-cursor-up-text world - loop : 1- steps -display : d20-as-text world -newline -format #t "Diffuse: ~A*(~A)\n" 1000 0.004 -let loop : : steps 1000 - cond - : = 0 steps - . world - else - d20-diffuse world neighbors 0.004 - display : d20-as-text world - d20-cursor-up-text world - loop : 1- steps -display : d20-as-text world -newline -format #t "Diffuse+Advect: ~A*(~A+~A)\n" 1000 0.002 0.001 -let loop : : steps 1000 - cond - : = 0 steps - . world - else - d20-diffuse world neighbors 0.002 - d20-advect world advection-directions 0.001 - display : d20-as-text world - d20-cursor-up-text world - loop : 1- steps -display : d20-as-text world -newline - -; now plot the result -let : : port : open-output-pipe "python" - format port "from mpl_toolkits.mplot3d import Axes3D, art3d +define : main args + . "Test the code" + display : d20-as-text world + newline + + format #t "Diffuse ~A\n" 0.01 + d20-diffuse world neighbors 0.01 + display : d20-as-text world + newline + format #t "Advect ~A\n" 0.1 + d20-advect world advection-directions 0.1 + display : d20-as-text world + newline + format #t "Diffuse ~A\n" 0.1 + d20-diffuse world neighbors 0.1 + display : d20-as-text world + newline + format #t "Diffuse: ~A*(~A)\n" 100 0.1 + let loop : : steps 100 + cond + : = 0 steps + . world + else + d20-diffuse world neighbors 0.1 + loop : 1- steps + display : d20-as-text world + newline + let + : number 20 + val 1 + format #t "disturb: ~A to ~A\n" number val + vector-set! world (1- number) val + display : d20-as-text world + newline + format #t "Diffuse ~A\n" 0.1 + d20-diffuse world neighbors 0.1 + display : d20-as-text world + newline + + format #t "Advect: ~A*(~A)\n" 1000 0.001 + let loop : : steps 1000 + cond + : = 0 steps + . world + else + d20-advect world advection-directions 0.001 + display : d20-as-text world + d20-cursor-up-text world + loop : 1- steps + display : d20-as-text world + newline + format #t "Diffuse: ~A*(~A)\n" 1000 0.004 + let loop : : steps 1000 + cond + : = 0 steps + . world + else + d20-diffuse world neighbors 0.004 + display : d20-as-text world + d20-cursor-up-text world + loop : 1- steps + display : d20-as-text world + newline + format #t "Diffuse+Advect: ~A*(~A+~A)\n" 1000 0.002 0.001 + let loop : : steps 1000 + cond + : = 0 steps + . world + else + d20-diffuse world neighbors 0.002 + d20-advect world advection-directions 0.001 + display : d20-as-text world + d20-cursor-up-text world + loop : 1- steps + display : d20-as-text world + newline + + ; now plot the result + let : : port : open-output-pipe "python" + format port "from mpl_toolkits.mplot3d import Axes3D, art3d import numpy as np import scipy as sp from matplotlib import cm @@ -333,5 +337,4 @@ for i in range(points.shape[0]): plt.show() exit()\n" - close-pipe port - + close-pipe port