HTML automatically generated with rman
Table of Contents

Name

epic5 - Lindblad orbits in ovally perturbed potentials

Synopsis

epic5

epibin

Description

epic5 computes positions, velocities and densities along closed orbits of interstellar matter, including frictional forces, in a galaxy with an arbitrary perturbing potential. Radial velocities are computed for chosen lines of sight. These are analytic gas orbits in an arbitrary rotating galactic potential using the linear epicyclic approximation.

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) .

Running

Running epic5 is very different from running a NEMO keyword=value command line program. All input has to be given interactively from the terminal, and at a number of places you can re-run an option and stay within the program "looping forever". The first question will be the name of the input parameter file. An example, epar is supplied with the package. Three output files (EPIRV, EPIDEN, EPITEST) need to be present so the program can write on top. This appears to be a fortran quirck in the way the program was written.

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.

Examples

With the example epar, vrot and perpot file, here is the kind of dialog you may encounter. Boldface

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.fits
    
formally 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.

Units

The units here are kpc and km/s. If masses are in units of 1e6 solarmass, G=4.3 See also units(1NEMO) .

Caveats

The epic5.pdf manual is not available (yet)

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.

Files


$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

See Also

tabplot(1NEMO) , tabtos(1NEMO) , tabhist(1NEMO) , snapprint(1NEMO) , snapplot(1NEMO) , snapfour(1NEMO) , snapshot(5NEMO)

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

Ads

@ads 2012MNRAS.421.1089P

Author

Per A.B. Lindblad, Per Olaf Lindblad (1993), +Nuria, +Kambiz (2012 adaptations), +Peter (2021 distribution)

History


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


Table of Contents