In addition to integrating the equations of motion, the particles are allowed to loose some (eta) of their random energy (smoothed over a certain ‘‘box’’ size (cell)), and turn it into mean orbital motion.
Orbits can also be diffused: each timestep the velocity vector can be rotated over the randomly gaussian distributed angle (sigma).
A special integration mode (mode=-1) will advance particles assuming their orbits are epicycles, and launched with velocities deviating from the angular velocity consistent with rotation. The supplied potential should be axisymmetric and numerical derivatives are used to calculate the angular, radial and vertical frequencies such that the orbital motions can be solved for analytically. from their guidance center.
0=Euler (kick and drift at same time) 1=PC (Predictor Corrector) algorithm, 2=modified PC algorithm, 3=Runge-Kutta (JEB modified) 4=4th order Runge-Kutta. 5=leapfrog 6=modified Euler (kick done after drift) -1=special epicyclic motion, full motion) -2=special epicyclic motion, shows only epi motion [default: 3]. tstop=stop-timeTime to stop integration in N-body model units.Default is 2.0.freqout=out-freqFrequency of major N-body data outputs.Default is 4.0 (4 frames per unit time).minor_freqout=out-freqFrequency of minor diagnostic outputs.Default is 32.0 (32 diagnostic measurements per unit time).options=option-stringMiscellaneous control options, specified as a comma-separated listof keywords.Currently recognized keywords are:reset_time: when reading initial data, set tnow to zero;new_tout: when restarting, set new output times;mass, phi, acc: output mass, potential,acceleration data with major data outputs.eta=loss-fractionFraction of random energy that is dissipated[Default: 0.0].cell=box-sizeCell size in which dissipation is performed after every timestep.Dissipation is current performed on a cartesian grid, in which cells are square (2D) or a cube (3D).[Default: 0.1].rmax=max_box-sizeMaximum size of the "box" (actually cube) within which dissipationis performed. If a negative number is given, the box is allow to growas large as is needed, though this may consume a lot of memory.Default: -1, i.e. box can grow indefinite.fheat=fheatThe ratio of diffusion angle to rms velocity dispersion in a cell.If fheat>0, each time dissipation is applied, the rmsvelocity dispersion in a cell is computed, and a diffusion anglecomputed. The velocity vector of each particle is thenrotated with a gaussian distributed value with rms fheat*velsig.This in effect gives a dissipation dependant heating source. See alsosigma=, which is position independant. [Default: 0].sigma=angleDiffusion angle, gaussian distributed with this sigma, about whicheach velocity vector is rotated after each timestep.[Default: 0].seed=random-seedRandom number seed, only used when diffusion (sigma=) is used.0 must be used to get the random seed from the time of the day.[Default: 0].headline=Identifying text for this run. Default: not used.BugsRK, PC and PC1 don’t work in rotating potential - use EULER or RK4. Since cell is a fixed number throughout the execution, is doesn’t deal well with systems who’s lenght-scale changes, in particular, expanding systems will allocate more and more space to hold the dissipation grid. DissipationVarious schemes of dissipation can be invoked. Here’s one, see also Lin & Pringle (1974): For each cell the relative position and velocity for each particle within that cell is computed: R = r - <r > i i i V = v - <v > i i iafter which the dimensionless viscosity parameter ’alpha’ controls the new velocity for each particle after a timestep:
< R x V > j j u = <v> - alpha R x ------------ + (1-alpha) V i i i i < R . R > j j
5-feb-89 V1.0 written PJT 3-apr-90 V2.0 new potential(5), renamed keywords PJT 9-jun-92 V3.0 rotating pattern are now allowed - made rk4 PJT 17-jun-92 V3.1 fix energy conservation in ’dissipation’ PJT 19-jun-92 V3.2 added diffusion PJT 6-oct-92 V4.0 added rmax=, made options= same as hackcode1 PJT 24-oct-92 V4.1 added fheat= PJT 5-mar-03 V5.0 added mode=-1 to "integrate" orbits numerically on epicyclic orbits PJT 6-jul-03 (V5.1) compute guiding center PJT/RPO 12-aug-09 V5.1 added leapfrog and modified euler PJT