This HTML automatically generated with rman for NEMO
Table of Contents


bodytrans - dataformat for body to scalar mapping functions


bodytrans files are binary loadable files (see also a.out(5) or elf(5) ) which are functions to represent a body to scalar transformation (see also bodytrans(1NEMO) ). They are either generated on the fly (as a user runs a program) by the host C-compiler (see cc(1) ), or if available, a number of precompiled frequently used mappings. If the environment variable CFLAGS is present, it is also used in the compilation.

The dynamic object loader package (loadobj(3NEMO) ) provides a lower level interface to load the images in memory return pointers to requested functions, but in the case of bodytrans, a higher level interface is available (bodytrans(3NEMO) ). Although on most modern computers this is implemented via dlopen(3) , at the time when NEMO was developed, in the mid-80s, this was by no means common place.

The file $NEMOOBJ/bodytrans/BTNAMES contains a table with entries of non-standard bodytrans functions. The first column is the full expression used to return a scalar value, and the second column the file name under which this function is saved in that same directory. This file must be writable by NEMO users if the SAVE_OBJ function is turned on in bodytrans(3NEMO) .

List of Functions

Name    Type    Description

0    int    constant, always returns 0 (or: FALSE)    
1    int    constant, always returns 1 (or: TRUE)    
i    int    returns i, the index of the particle (0..nbody-1)
key    int    returns key, auxilliary integer of a Body
0    real    constant, always returns 0.0
1    real    constant, always returns 1.0
aux    real    returns aux, the auxilliary part of a Body
ax    real    returns ax, the X-accelleration
ay    real    returns ay, the Y-accelleration
az    real    returns az, the Z-accelleration
ekin    real    returns  0.5*(vx*vx + vy*vy + vz*vz), the kinetic energy
eps    real    returns smoothing length
etot    real    returns phi + 0.5*(vx*vx + vy*vy + vz*vz), the total energy
glon    real    returns the galactic longitude atan2(y,x)*180/pi in degrees (GC
at +x-axis)
glat    real    returns the galactic latitude atan2(z,w)*180/pi in degrees (GC
at +x-axis)
i    real    returns i, the index of a particle, as a real
jtot    real    returns total angular momentum of a Body
key    real    returns key, as a real
m    real    returns the mass of a Body
mub    real    returns proper motion in galactic latitude B
mul    real    returns proper motion in galactic longitude L
phi    real    returns the potential, phi, of a Body
r    real    returns the radius of a Body
t    real    returns the radius time of a Body (snapshot)
v    real    returns velocity of a Body
vr    real    returns radial velocity of a Body
vt    real    returns absolute value of tangential velocity of a Body
vp    real    returns rotational parallax vt/r
vx    real    returns vx, the X-velocity
vy    real    returns vy, the Y-velocity
vz    real    returns vz, the Z-velocity
x    real    returns x, the X-position
y    real    returns y, the Y-position
z    real    returns z, the Z-position
xsky    real    returns atan2(x,z)*180/pi, the RA---TAN projection
ysky    real    returns atan2(y,z)*180/pi, the DEC---TAN projection
r2    real    returns the Z-projected 2D radius in the X,Y plane
v2    real    returns the Z-projected 2D velocity in the X,Y plane
vr2    real    returns the Z-projected 2D radial velocity in the X,Y plane
vt2     real    returns the Z-projected 2D tangential velocity in the X,Y

Sky Projections

Two common sky projections are available, both produce numbers in degrees, which is the common unit in the fits(5NEMO) format.

glon,glat is the galactic coordinate system, useful to observe a galactic disk in it full internal glory.

xsky,ysky is a tangential plane projection scheme, which is probably only useful for nearby galaxies such as LMC and SMC.

set a=80      # extent in angle to plot
set d=1.5     # distance to disk (of size 1)
set inc=70    # inclination of disk
mkconfig - 360 ring | snaprotate - - $inc x | snapshift - - 0,0,$d | snapplot -
xvar=xsky yvar=ysky xrange=-${a}:${a} yrange=-${a}:${a}

See Also

elf(5) , a.out(5) , bodytrans(1NEMO) , bodytrans(3NEMO) , loadobj(3NEMO)


Josh Barnes, Peter Teuben

Update History

20-nov-89    Created        PJT
27-nov-90    Added table of functions    PJT
15-may-05    Some long overdue updates    PJT
26-aug-2018    Add 2D projection shortcuts    PJT

Table of Contents