epibin
The direction of rotation is defined according to the sign of the pattern speed (positive: counter clock wise rotation, negative: clock wise rotation).
For theory and description see Per A.B. Lindblad, thesis Stockholm Observatory 1996, Chapt. 2.2 and Paper V (Lindblad & Lindblad 1994, ASPC 66, p.29), and the "EPIC5 manual".
epibin ... bins the LOS velocities from EPIRV, but in the EXAMPLES section below, some NEMO alternatives are given by converting the tables to a snapshot(5NEMO) .
Parameter file: Input
parameters must be given in a parameter file with the following content
(file names are a string with max 10 characters):
Name of file with rotation curve (’VFILE’) ’vrot’ Name of file with perturbing potential (’BFILE’) ’perpot’ Pattern velocity in km/s/kpc (OMEGAP) -18 Coefficient of friction at 0 kpc (BLAMBD0) 7 Coefficient of friction at RMAX kpc (BLAMBDf) 7 Soft corotation coefficient in km/s/kpc (EOMEG) 5 Minimum value for R in the computations in kpc (R0) 0.01 Interval of R in the computations in kpc (DR) 0.5 Maximum value for R in the computations in kpc (RMAX) 22 Number of THETA values (<60) for each R (NTHETA) 32
The rotation curve and the perturbing potential are both ascii files, but in the "annoying" fortran style with wrapped lines that do not allow to go over 80 (or so) characters. See perpot.py for examples how to process them.
The ’VFILE’ must have the following format:
NFRAD DRFRAD FRAD(I), (I=1,NFRAD)
where NFRAD (<NRAD) is the number of velocities and DRFRAD is the radial increment between velocities in the rotation curve, and FRAD the velocities. The first point, I=1, corresponds to a radius R = 0.
The ’BFILE’ must have
the following format:
NPER DRP MMAX NTH NC AMPC(M), (M=1,10) AMPS(M), (M=1,10) for M=1,MMAX: CP(I,M) (I=1,NPER) SP(I,M) (I=1,NPER)
where NPER (<NRAD) is the number of values and DRP the increment between values for the perturbing potential. CP(I,M) and SP(I,M) are amplitudes of the COS(M*THETA) resp. SIN(M*THETA) components of of the Fourier development the perturbing potential. AMPC(M) and AMPS(M) are factors with which these amplitudes will be multiplied. MMAX (<10) is the maximum M value in the development of the potential. NTH (<100) and NC are the number of THETA values and contours for potential plotting.
Positions and densities will be listed in file EPIDEN and plotted in file density.ps. Positions, x and y velocities will be listed in file EPIRV and plotted in file velocity.ps
Test values are written in file EPITEST.
is user input
% epic5 Parameter file: epar ARE PARAMETERS CORRECT ? (y/n): y Perturbing potential ? (y/n) : y SEE THE INPUT PLOTS ? (y/n): y RMAX = 22.0 ? (y/n): y PERTURBING POTENTIAL: Graphics device/type (? to see list, default /NULL): /xs TOTAL POTENTIAL: Graphics device/type (? to see list, default /NULL): /xs REMAINING INPUT PLOTS ? (y/n): n COMPUTE ORBITS ? (y/n): y PRINT THIS PLOT ? (y/n): y CHANGE RMAX ( 22.0)? (y/n): n PLOT DENSITIES ? (y/n): @todo: user has no idea what units are y NUMBER OF CONTOURS?: 2 CONTOURS?: 0.1,1 PLOT DENSITIES WITH PERTURBING POTENTIAL? (y/n): n PLOT DENSITIES ? (y/n): n GIVE POSITION ANGLE OF LINE OF NODES (BAR=90,TO QUIT WRITE 360 OR MORE): 45 CONTOUR INTERVAL (KM/S)?: 20 GIVE POSITION ANGLE OF LINE OF NODES (BAR=90,TO QUIT WRITE 360 OR MORE): 999
The perpot file can probably be generated from an N-body snapshot using the snapfour(1NEMO) program. Has not been tried.
THe EPIRV file is a simple
list of x,y,vx,vy, in NEMO bodytrans(5NEMO)
terms, so it is straightforward
to replace some of the plotting functionality with NEMO tools. Here are
some examples, first converting the table to a snapshot:
# convert velocities to snapshot tabtos EPIRV snap1 block1=x,y,vx,vy # make a velocity field snaprotate snap1 - 45 x |\ snapmap - - xrange=-32:32 yrange=-32:32 evar=vz svar=1 |\ ccdfits - snap1.fits # make a global profile snaprotate snap1 - 45 x |\ snapprint - vx |\ tabhist - 1 -320 320 bins=16 # convert densities to snapshot tabtos EPIDEN snap2 block1=x,y,m # make a density map snapmap snap2 - xrange=-32:32 yrange=-32:32 evar=m svar=1 |\ ccdfits - snap2.fitsformally this is not exactly correct, since the velocities are not weighted by their densities. The two arrays (EPIDEN and EPIRV) are not on the same grid, making the correct procedure a bit more work for this short example.
fortran is an annoying language with the the first columns sometimes just is blank. This complicated fixed formated reading, which is a bug I had to fix. Version creep?
There is a unix IRC client with the same name, see epic5(1) . But we were here first, so there.
$NEMO/usr/lindblad/epic5 code distribution epar input parameter file for epic5 vfile rotation curve (1st filename in epar) ("vrot") bfile perturbing potential file (2nd filename in epar) ("perpot") EPIRV written (23) - but must exist to bootstrap EPIDEN written (22) - but must exist to bootstrap EPITEST written (25) - but must exist to bootstrap density.ps pgplot file produced by epic5 velocity.ps pgplot file produced by epic5 orbits.ps pgplot file produced by epic5 histogram.ps produced by epibin
https://ui.adsabs.harvard.edu/abs/1994ASPC...66...29L/abstract - Kinematics of Interstellar Matter in a Barred Potential in the Epicyclic Approximation (EPIC V1)
https://ui.adsabs.harvard.edu/abs/2012MNRAS.421.1089P/abstract - Analytic gas orbits in an arbitrary rotating galactic potential using the linear epicyclic approximation (EPIC V5)
https://ui.adsabs.harvard.edu/abs/2013PhDT.........5P/abstract - Rearrangement of gas in disc galaxies, Thesis Pinol-Ferrer
11-aug-1993 First version (P.O. Lindblad & P.A.B. Lindblad) 2011-2012 Modification by P.O. Lindblad, N. Pinol-Ferrer and K Fathi (see source code) apr-2021 Adapted for NEMO PJT