HTML automatically generated with rman
Table of Contents
orboom - Transform an orbit and ODM into ’BOOM’ HDF [still testing] 
orboom
[parameter=value] 
This program is under development for the
BOOM project. It will take some combination input of a simulation (series
of snapshots), orbit(s) and ODM’s  [all to be determined] and turn them
into a BOOM hdf for further analysis outside of NEMO. 
For the ODM (Orbit
Density Map) some gridding parameters are needed to represent a simple
cube, so we only need number of pixels and box size. 
The following
parameters are recognized in any order if the keyword is also given: 
- in=snapshot
- Input series of snapshot from a  simulation. In snapshot(1NEMO)
 format. No
default. 
- out= 
- Output BOOM file. Currently NEMO BOOM (see hdf= below) format.
No default. 
- ndim=2|3 
- 2 or 3 dimensional. Not implemented. [3] 
- mode=0|1|2|3 
- 1,2,3
are for testing. use 0 for proper output. This option will also likely disappear
at version 1.0 [0] 
- size= 
- Half the size of the ODM box, meaning the X, Y
and Z coordinates of the orbit are gridded from -size:size. This also implies
we only compute square cubes [2]. 
- npix= 
- Number of pixels along the X, Y
or Z axes. Same number pixels in all dimensions. [32] 
- times=t0:t1,t2:t3,...
- What times to select for output.  which is of the form, eg, "1.0:1.5,2.5,3.0".
Currently all. The maximum number is determined by nsteps=. 
- nsteps= 
- Allocate
space how many snapshots (orbit steps) we need. No options for scanning
yet. 
- ibody= 
- If set, only this body will be output. This could be useful for
debugging. 
- odm=t|f 
- Output ODM? 
- hdf=t|f 
- Output file format in HDF ?  If not,
NEMO format will be used. Currently only NEMO format is supported. [f] 
The
current version just writes NEMO Orbit/Image file.  To extract a certain
orbit or image, here is an example
   #   create a BOOM file
   mkplummer p100 100 seed=100
   gyrfalcON  p100 p100.out step=0.1 tstop=10 eps=0.025 kmax=8 give=mxvap
   orboom p100.out p100.boom
   #   look at an orbit, an ODM, and a projected ODM along the Z axis
   csf p100.boom - Orbit 11 | orbplot -
   csf p100.boom - Image 11 | ccdfits - p100_10.fits
   csf p100.boom - Image 11 | ccdmom - - | ccdfits - p100_10_mom0.fits
   
Of course there two other ways to select that same orbit (11th one in this
example) from a simulation, but both methods need a patch for more efficiency:
   stoo p100.out - ibody=10 | tsf -     [this one is currently broken]
   snapcopy p100.out - select=i==10 ibody=10 | snapmerge - - | snapplot -    [ibody
not working yet]
   
The latter one is useful to view a 3D orbit with snapplot3(1NEMO)
 or glnemo2(1NEMO)
boom(5NEMO)
, h5dump(1)
, orbint(1NEMO)
, orbsos(1NEMO)
, snapgrid(1NEMO)
src/orbit/misc - source code
Although orboom compiles via the Makefile (and mknemo), this
is the first program in NEMO that combines all three major objects: SnapShot,
Orbit and Image, as well as links with a 3rd party library (hdf5). Linking
with hdf5 may require some configure tricks, or simply editing $NEMOLIB/makedefs.
Here are some sample commands to help you with this: 
   pkg-config --libs hdf5
   h5cc -showconfig
   dpkg --list | grep hdf5    (debian/ubuntu)
   dpkg -L libhdf5-dev        (debian/ubuntu)
   rpm -qa | grep hdf5        (redhat/centos)
   rpm -ql hdf5-devel         (redhat/centos)
orboom is an example of a program that does a transpose of
a matrix, which in some parts of the parameter space can cause issues. Essentially
it does 
    SNAP(Na,Np,Nt) -> BOOM(Na,Nt,Np)
with of order 
    Na = 11
    Np = 10,000
    Nt = 10,000
which at 8 bytes per real means about 8GB. We have a benchmark to time just
this operation, for which the example command will be written down here
at some point.   There is also the I/O component. 
Peter Teuben 
26-dec-2019    V0.2 Created    PJT
2-jan-2020    V0.7 Added nsteps= and odm= PJT
Table of Contents