HTML automatically generated with rman
Table of Contents

Name

runbody2 - Ahmad-Cohen N-body code

Synopsis


runbody2 [parameter=value]
nbody2   < nbody2.in

Description

runbody2 is a frontend to the NBODY2 fortran program, running the code in a run directory where all files are stored.

The new version 2.x interface tries to mimic to run nbody1 in virial units with a default input and output. In previous versions the defaults were more geared towards running the classic interface where data were scaled and times were measured in crossing times, making comparisons with other codes in NEMO much harder. This however means it is now more work to make nbody1 run in classic mode. Parameters names and meaning have not changed, except for the introduction of kz(19), to work in code (virial) units.

Parameters

The following parameters are recognized in any order if the keyword is also given:
in=
input file (optional, see nbody= to generate your own input data on the fly). If input data are given, it forces KZ(4) =2 (see below). Can also be a directory, in which case the input file for a restart run is assumed to be the default (fort.4) in native format. Default: not used.
outdir=
Output run directory. This directory should not exist, although can be overriden with NEMO’s standard error= system keyword. No default.
nbody=
Total particle number. The maximum value (NMAX) is compiled into the NBODY2 program. Note that even if in= is supplied, this parameter is needed. No default.
nfix=
Output frequency of data save or binaries; KZ(3 & 6) [Default: 1]
nrand=
Random number sequence skip. [Default: 0]
nnbmax=
Maximum number of neighbours. Should be less then LMAX, which is compiled into the NBODY2 program. [Default: 40]
nrun=
Run identification index. [Default: 1]
etai=
Time-step parameter for irregular force polynomial. [Default: 0.02]
etar=
Time-step parameter for regular force polynomial. [Default: 0.04]
rs0=
Initial radius of neighbour sphere. [Default: 1]
deltat=
Output time interval in units of the crossing. [Default: 0.25]
tcrit=
Termination time in units of the crossing time. [Default: 5]
qe=
Energy tolerance (restart if DE/E > 5*QE & KZ(2) > 1) [Default: 2e-5]
eps=
Potential softening parameter [Default: 0.01]
kz=
Non-zero options for alternative paths (see below) [Default: 1,2,1,2,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0]
 1      COMMON save on unit 1 at end of run (=2: every 100*NMAX steps) [1]
 2      COMMON save on unit 2 at output (=1); restart if DE/E > 5*QE (=2) [2]
 3      Basic data written to unit 3 at output time (frequency NFIX) [1]
 4     Initial conditions on unit 4 (=1: output; =2: input) [2]
 5      Initial conditions (=0: uniform & isotropic; =1: Plummer  model) [0]
 6      Output of significant binaries (=2: frequency NFIX) [0]
 7      Lagrangian radii (=1: unit 6; =2: unit 7; =3: both types) [0]
 8      Core radius & density centre (N > 20 only) [0]
 9      Individual bodies printed at output time (MIN(5**KZ(9),N)) [0]
 10      No unique density centre (skips velocity modification of RS(I)) [0]
 11      Modification of ETAI & ETAR by tolerance QE [1]
 12      Inelastic mergers (>1: diagnostic output) [0]
 13      Escaper removal (R > 2*RTIDE; RTIDE = 10*RSCALE) [0]
 14      Skip full predictor loop if NNB > KZ(14) = <NNB> & KZ(14) > [0]
 15      External potential (=1: Plummer model; =2: logarithmic potential)
[0]
 16      No scaling of initial conditions [1]
 17      Generation of two subsystems (merger experiment) [0]
 18      Adjustment of coordinates & velocities to c.m. condition [0]
 19      Use code units for tcrit/deltat [1]
 20      Not used at present [0]
xtpar1=
Mass of external Plummer model (KZ(15) = 1; [Default: 1]
xtpar2=
Length scale for Plummer model (KZ(15) = 1) [Default: 2]
zmgas=
Mass scale for logarithmic potential (KZ(15) = 2)
rgas=
Length scale for logarithmic potential (KZ(15) = 2)
alphas=
Power-law index for initial mass function (routine DATA) [Default: 2.3]
body1=
Maximum particle mass before scaling [Default: 5.0]
bodyn=
Minimum particle mass before scaling [Default: 1.0]
q=
Virial ratio (q=0.5 for virial equilibrium) [Default: 0]
vxrot=
XY-velocity scaling factor (> 0 for solid-body rotation) [Default: 0]
vzrot=
Z-velocity scaling factor (not used if VXROT = [Default: 0]
rbar=
Virial radius in pc (for scaling to physical [Default: 1]
zmbar=
Mean mass in solar units [Default: 1]
xcm=
Displacement for subsystem (routine SCALE; KZ(17))
ecc=
Eccentricity of relative motion for subsystem (ECC =< 1)

Examples

nbody2 can also be used to generate snapshots. Here is an example to create a 1024 body homogeneous sphere in the directory run1 and a plummer sphere in run2.
    runbody2 "" run1 1024 tcrit=0 kz=0,0,1
    u3tos run1/OUT3 run1/run1.snap
    runbody2 "" run2 1024 tcrit=0 kz=0,0,1,0,1
    u3tos run2/OUT3 run2/run2.snap

You can also supply existing NEMO snapshots as initial conditions

    runbody2 run4.snap run4 tcrit=0 kz=0,0,1,2
        (this option doesn’t work yet)

Bugs

Scaling can cause output to become out of bounds.

See Also

nbody2(1NEMO) , nbody0(1NEMO) , runbody1(1NEMO) , snapshot(5NEMO) , u3tos(1NEMO) , stou4(1NEMO)

Files


$NEMO/src/nbody/evolve/aarseth/tools    code
$outdir/fort.1                           restart dump (compile time dep. size)
$outdir/fort.2                             restart dump (compile time dep. size)
$outdir/fort.4                             restart dump (compile time dep. size)
$outdir/OUT3                            particle dump (see u3tos(1NEMO))
AuthorPeter Teuben Update History
15-jun-97    V1.0 Created    PJT
15-jul-97    V1.2 out= now outdir=, nbody= now required value    PJT
5-mar-98    readying for new release    PJT
17-mar-06    V1.4 using fullname for in=    PJT
9-feb-2019    V2.0 better defaults for snapshot input    PJT


Table of Contents