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