== Null Result == This is a test to verify that a uniform distribution of particles will not return a bound group. [attachment:uniform_grid.c uniform_grid.c] is used to generate the initial grid, including a zero velocity field. Note that you'll need to edit {{{readfiles.c}}} to read this and the velocity field file in. === Create Grid === {{{ cable:~/packages/voboz1.1.1 rpwagner$ gcc uniform_grid.c cable:~/packages/voboz1.1.1 rpwagner$ a.out cable:~/packages/voboz1.1.1 rpwagner$ ls -l uniform_grid* -rw-r--r-- 1 rpwagner rpwagner 772 Jan 14 10:37 uniform_grid.raw -rw-r--r-- 1 rpwagner rpwagner 772 Jan 14 10:37 uniform_grid_vel.raw cable:~/packages/voboz1.1.1 rpwagner$ }}} === {{{vozinit}}} === {{{vozinit}}} is kind of trivial; it creates a script to call the tools that do the real work. However, it is also a nice convenience. The inputs are: particle ''file name'', fractional ''buffer size'', comoving ''box length'', number of ''tiles per axis'', and a ''run name'''. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ./vozinit Wrong number of arguments. arg1: position file arg2: buffer size (default 0.1) arg3: box size arg4: number of divisions (default 2) arg5: suffix describing this run cable:~/packages/voboz1.1.1 rpwagner$ }}} The buffers zones need to capture a significant enough number of particles to keep the guard particles away from the region of interest. For this case, the particles are separated by {{{0.25}}}, so the ''ghost'' zone needs to be at least {{{0.25}}}. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ./vozinit uniform_grid.raw 0.3 1 2 foo }}} The output is named {{{scr<}}}''run name''{{{>}}}. {{{ cable:~/packages/voboz1.1.1 rpwagner$ cat scrfoo #!/bin/bash -f ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 0 0 0 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 0 0 1 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 0 1 0 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 0 1 1 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 1 0 0 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 1 0 1 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 1 1 0 ./voz1b1 uniform_grid.raw 0.300000 1.000000 foo 2 1 1 1 ./voztie 2 foo }}} === {{{voz1b1}}} and {{{voztie}}} === Read the documentation about what these programs do. You can tell when something goes wrong, because you will either have no {{{part..*}}} files, or you'll see a bunch of complaints about the guard particles. So, {{{<>}}} is what you hope for, not what you may see. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ./scrfoo << blah, blah, blah >> }}} The {{{voz1b1}}} output are blocks of Voronoi diagrams, one per tile. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ls -1 part.foo.0* part.foo.00.00.00 part.foo.00.00.01 part.foo.00.01.00 part.foo.00.01.01 part.foo.01.00.00 part.foo.01.00.01 part.foo.01.01.00 part.foo.01.01.01 cable:~/packages/voboz1.1.1 rpwagner$ }}} The {{{voztie}}} output are an adjacency file and volume file. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ls -1 *dat adjfoo.dat volfoo.dat cable:~/packages/voboz1.1.1 rpwagner$ }}} === {{{jovoz}}} === Hook'em together step. {{{jovoz}}} is fed the adjacency and volume file names, and the desired output names of a binary zone file and text listing of the zones. The final parameter controls the minimum density of halos. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ./jovoz Wrong number of arguments. arg1: adjacency file arg2: volume file arg3: output zone membership file arg4: output text file arg5: volume tolerance (e.g. 1) cable:~/packages/voboz1.1.1 rpwagner$ }}} {{{ cable:~/packages/voboz1.1.1 rpwagner$ ./jovoz adjfoo.dat volfoo.dat foozone.dat foozone.txt 0.01 About to jump ... Post-jump ... 64 initial haloes found Found zone adjacencies Volumes range from 1.000000e+00 to 1.000000e+00. Maxprob = 1.000000. about to sort ... cable:~/packages/voboz1.1.1 rpwagner$ }}} Some files. {{{ cable:~/packages/voboz1.1.1 rpwagner$ ls -1 foozone.* foozone.dat foozone.txt }}} As expected, we get {{{64}}} zones, one per particle, each with the same density. {{{ cable:~/packages/voboz1.1.1 rpwagner$ head foozone.txt 64 0 1 1.000000e+00 1.000000e+00 1 1 1.000000e+00 1.000000e+00 2 1 1.000000e+00 1.000000e+00 3 1 1.000000e+00 1.000000e+00 4 1 1.000000e+00 1.000000e+00 5 1 1.000000e+00 1.000000e+00 6 1 1.000000e+00 1.000000e+00 7 1 1.000000e+00 1.000000e+00 8 1 1.000000e+00 1.000000e+00 cable:~/packages/voboz1.1.1 rpwagner$ }}} === {{{boz}}} === Unbinding step, with lots of arguments, but only one parameter (the last argument). {{{ cable:~/packages/voboz1.1.1 rpwagner$ ./boz Wrong number of arguments. arg1: box size arg2: Omega_matter arg3: scale factor a arg4: position file arg5: velocity file arg6: input zone file arg7: output bound zone file arg8: output text file arg9: unbinding f }}} I'm setting ''f'' here to {{{1.2}}} for no good reason. Read more about it in the paper. {{{ cable:~/packages/voboz1.1.1 rpwagner$ cable:~/packages/voboz1.1.1 rpwagner$ ./boz 1.0 0.3 1.0 uniform_grid.raw uniform_grid_vel.raw foozone.dat foohalos.dat foohalos.txt 1.2 a = 1.000000 => Multiplying H0 by 1.000000e+00 cell, potconst = 0.007812,1.707547e-04 np = 64 np: 64, x: 0.000000,0.875000; y: 0.000000,0.875000; z: 0.000000,0.875000 vx: 0.000000,0.000000; vy: 0.000000,0.000000; vz: 0.000000,0.000000 np = 64, nhaloes = 64 Done! Outputting ... Nhunb = 0 cable:~/packages/voboz1.1.1 rpwagner$ }}} Hurrah! Final output is the actual number of halos found, which is zero, as expected. {{{ cable:~/packages/voboz1.1.1 rpwagner$ cat foohalos.txt 64 0 cable:~/packages/voboz1.1.1 rpwagner$ }}}