This HTML automatically generated with rman for NEMO
Table of Contents

Name

orboom - Transform an orbit and ODM into ’BOOM’ HDF

Synopsis

orboom [parameter=value]

Description

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.

Parameters

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]

Examples

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 -   
   snapcopy p100.out - select=i==10 ibody=10 | snapmerge - - | snapplot -   
   
The latter one is useful to view a 3D orbit with snapplot3(1NEMO) or glnemo2(1NEMO)

See Also

boom(5NEMO) , h5dump(1) , orbint(1NEMO) , stoo(1NEMO) , orbsos(1NEMO) , snapgrid(1NEMO)

Files


src/orbit/misc - source code

Compilation

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)

Memory Usage

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.

Author

Peter Teuben

Update History


26-dec-2019    V0.2 Created    PJT
2-jan-2020    V0.7 Added nsteps= and odm= PJT


Table of Contents