Table of Contents


rotcurves - rotation curve of a composite potential


rotcurves name1=potential [parameter=value] ...


rotcurves computes the rotation curve of a composite mass model. Each component must be supplied in the form of a potential (see potential(5NEMO) ) from which the forces determine a rotation curves assuming centrifugal balance. Optionally a Lindblad diagram can be selected for viewing using mode=omega, and the location of Lindblad resonances is determined. A choice is also given between a plot and a table for further processing. An experimental LV option can be used for radial velocity table along the line of sight distance.

In case a true rotation curve is requested (mode=velocity) the table contains r, v, v1, v2, ..., whereas the Lindblad option with mode=omega tabulates r, v, omega, kappa, omega+kappa/2, omega-kappa/2.


The following parameters are recognized:
Name of first potential, in standard potential(5EMO) format. No default allowed.
Parameters for first potential. Defaults as defined by the potential itself.
Optional file for first potential. Defaults as defined by the potential itself.
<etc> for name2, name3, name4.
Radii where to compute the rotation curve. [default: 0:2:0.1].
Choice of axis to compute rotation curve along. The rotation curve is defined from circular orbits balancing the local gravitational force. [default: x].
Mode can be velocity or omega, the former selecting the true rotation curve, the latter a Lindblad diagram. In a Lindblad diagram only the total curve is given, not the individual components. If a finite pattern speed is given, it also computes the lindblad resonances, but make sure the OLR is included, else the program will abort. [default: velocity].
For angular velocity diagrams (mode=omega) this gives the Lindblad resonance to be computed. By default the classical n=2 is used, from which the ILR and OLR can be derived. For n=4 the two UHR can be determined etc. [Default: 2]
Solar radius, galactic longitude and a list of radii (distances along the line of sight) to calculate radial velocity for. Experimental, only in lv mode
Select viewing in form of a plot. [Default: t]
Select viewing in form of a table. [Default: f]
printf(3) style format specification for each of the columns in tabular output. [Default: %g]
Range in plot for X-axis, always radius. Two (min and max), one (min) or zero (autoscaling) values can be given. [default: autoscaling]
Range in plot for Y-axis, either velocity or omega. See also xrange=. [default: autoscaling]
Any optional text, plotted at the top of the plot for identification purposes. The default is a list of nameX(parsX) ....
If supplied, it should be a table (a file) consisting of velocities (colum 2) vs. radius (column 1) to be checking with the composite model supplied earlier. Some kind of statistics will be calculated from which the goodness of fit can be derived. [default: not used].
The columns must be provided here in which columns the radius, velocity, error in radius and error in velocity can be found. The error columns are optional, and if provided error bars will be plotted on top of the data. A 0 can be used if an column is not present in the data, although radius and velocity must always be present. [Default: 1,2].

See Also

potrot(1NEMO) , potlist(1NEMO) , runbulgerot(1NEMO) , potential(5NEMO) , perorb(1NEMO) , ROTMAS(1GIPSY)



Sometimes Lindblad diagrams require more resolution in radius near the center, so radii=0.0001,0.001,0.01,0.02:1:0.02 may do a better job than radii=0:1:0.02.

Although not really a bug, but a limitation, this program assumes symmetric potentials, and that circular orbits exist in the selected plane. For non-axisymmetric potentials the obtained rotation curve is bogus, and one has to resort to a periodic orbit searching program such as perorb(1NEMO) . You can also try and average the results along the X and Y axes, and average.

Rotating potentials are not implemented, except for the search for Lindblad resonances in mode=omega.


Peter Teuben


~/src/orbit/potential   rotcurves.c

Update History

xx-oct-90       V1.0 derived from potlist               PJT
28-oct-90       V1.1 spline fit -> lindblad option      PJT
8-nov-90        V1.2 in= table implemented              PJT
16-nov-90    V1.3 cols= to select optional error colums    PJT
12-nov-93    V1.4 added n=    PJT
8-apr-97    V1.6 search for lindblad resonances if omega>0    PJT 
7-jul-02    V1.7 added format=                PJT

Table of Contents