dustdevils
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dustdevils [2025/03/31 19:03] – [vertical vorticity at the lowest level] admin | dustdevils [2025/04/01 11:56] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Dustdevils | + | ===== Dust devils |
- | This page shows a revisit to {{ : | + | This page shows a revisit to {{ : |
+ | It is a substantial upgrade to [[https:// | ||
To reproduce these simulations, | To reproduce these simulations, | ||
- | [[https:// | + | [[https:// |
- | In cell number 28, set '' | + | |
+ | To reproduce the visualizations, | ||
+ | |||
+ | In the notebook, in cell number 28, set '' | ||
< | < | ||
# choose an integer, see choices for nexp below | # choose an integer, see choices for nexp below | ||
Line 39: | Line 43: | ||
+ .00001*np.cos(6*np.pi*xb/ | + .00001*np.cos(6*np.pi*xb/ | ||
</ | </ | ||
- | I am not sure why that that is apparently different from the idealized choices in Fiedler and Kanak, | + | I am not sure why that is apparently different from the idealized choices in Fiedler and Kanak, |
- | but it makes the point about **symmetry breaking** needed to produce the vertical vorticity of the extreme | + | but it makes the point about //symmetry breaking// needed to produce the vertical vorticity of the extreme |
events, which are akin to dust devils. | events, which are akin to dust devils. | ||
Line 48: | Line 52: | ||
Try | Try | ||
< | < | ||
- | ./trace.py R4096g0w4 1 400 | + | ./hist.py R4096g0w4 1 400 |
</ | </ | ||
if all went okay, | if all went okay, | ||
< | < | ||
- | ./trace.py R4096g0w4 1 400 > R4096g0w4.hist | + | ./hist.py R4096g0w4 1 40 > R4096g0w4.hist |
- | </ | + | </ |
And then | And then | ||
< | < | ||
- | ./plottrace.py -s R4096g0w4.hist | + | ./plothist.py -s R4096g0w4.hist |
</ | </ | ||
That should produce the following image, which shows a dust devil event just prior to t=30. | That should produce the following image, which shows a dust devil event just prior to t=30. | ||
- | |||
Line 71: | Line 74: | ||
< | < | ||
mkdir pngs | mkdir pngs | ||
- | ./hcontour.py -o pngs R4096g0w4 000001 000400 | + | ./npy2contour.py -o pngs R4096g0w4 000001 000400 |
./ | ./ | ||
./ | ./ | ||
</ | </ | ||
- | That show produce '' | + | That will produce '' |
{{ : | {{ : | ||
Line 82: | Line 85: | ||
==== isosurface animation ==== | ==== isosurface animation ==== | ||
- | The extreme event (a.k.a. | + | The extreme event (a.k.a. |
+ | |||
+ | < | ||
+ | mkdir vista | ||
+ | ./ | ||
+ | ./ | ||
+ | ./ | ||
+ | </ | ||
{{ : | {{ : | ||
==== Some interactive images at t=29.8 ==== | ==== Some interactive images at t=29.8 ==== | ||
+ | |||
+ | < | ||
+ | ./ | ||
+ | open scene.html | ||
+ | </ | ||
+ | |||
Use your mouse, have fun ... | Use your mouse, have fun ... | ||
{{url> | {{url> | ||
ζ=−40 (purple) | ζ=−40 (purple) | ||
+ | |||
+ | I did not finish implementing the command line options for '' | ||
+ | but the source code can be easily edited to select the desired isosurfaces. | ||
+ | (You may want to copy '' | ||
+ | |||
+ | Change these lines: | ||
+ | < | ||
+ | # plotter.add_mesh(contours_w_neg, | ||
+ | # plotter.add_mesh(contours_w_pos, | ||
+ | plotter.add_mesh(contours_p1, | ||
+ | # plotter.add_mesh(contours_p2, | ||
+ | # plotter.add_mesh(contours_p3, | ||
+ | # plotter.add_mesh(contours_p4, | ||
+ | plotter.add_mesh(contours_p5, | ||
+ | plotter.add_mesh(edges, | ||
+ | plotter.add_mesh(origin_marker, | ||
+ | plotter.add_text(time, | ||
+ | # plotter.add_mesh(contour_2d, | ||
+ | plotter.add_mesh(slice_plane, | ||
+ | </ | ||
+ | to | ||
+ | < | ||
+ | plotter.add_mesh(contours_w_neg, | ||
+ | plotter.add_mesh(contours_w_pos, | ||
+ | # plotter.add_mesh(contours_p1, | ||
+ | # plotter.add_mesh(contours_p2, | ||
+ | # plotter.add_mesh(contours_p3, | ||
+ | plotter.add_mesh(contours_p4, | ||
+ | plotter.add_mesh(contours_p5, | ||
+ | plotter.add_mesh(edges, | ||
+ | plotter.add_mesh(origin_marker, | ||
+ | plotter.add_text(time, | ||
+ | # plotter.add_mesh(contour_2d, | ||
+ | plotter.add_mesh(slice_plane, | ||
+ | </ | ||
+ | |||
+ | And again: | ||
+ | |||
+ | < | ||
+ | ./ | ||
+ | open scene.html | ||
+ | </ | ||
{{url> | {{url> | ||
w=.5 (green), w=−.5 (grey) , c=6 (red) | w=.5 (green), w=−.5 (grey) , c=6 (red) | ||
+ | The suitably renamed '' |
dustdevils.1743465783.txt.gz · Last modified: 2025/03/31 19:03 by admin