HTML automatically generated with rman
Table of Contents
mkplummer - generates a snapshot according to a truncated Plummer model
mkplummer [parameters=values...]
mkplummer constructs a
Plummer model, with a spatial or mass cut-off, after which it performs a
coordinate transformation to the center-of-mass coordinate system. The data
are then written into a file snap-file, in a standard N-body snapshot format.
The model is constructed in VIRIAL units (M=G=-4E=1, with E the total
energy), and finite spatial extent which can be regulated by specifying
mfrac or rfrac or using their default values. The distribution function
of a Plummer model is spherically symmetric and isotropic, and is a polytrope
of index n = 5. See also Aarseth et al. (1974) and Plummer (1911)
There
is also an implementation in Dehnen’s falcON suite: mkplum(1NEMO)
For more
advanced Plummer models, see mcluster(1NEMO)
.
The following
parameters are recognized in order; they may be given in any order if the
keyword is also given. Use --help to confirm this man page is up to date.
- out=snapfile
- Output data is written into snapfile, in standard snapshot
format.
- nbody=integer
- Number of particles nobj in Nbody snapshot realization
of the Plummer model.
- mlow=real
- inner core mass fraction within which no
stars will be populated. (Default: 0)
- mfrac=real
- mass fraction of the (infinitely
extended) Plummer model; see rfrac immediately below (Default: rfrac=22.8042468).
- rfrac=real
- radius fraction of the (infinitely extended) Plummer model. If
mfrac = 1.0 then particles will be sprinkled in all over space. If mfrac
< 1.0 or rfrac > 0.0 then each particle is constrained to lie within both the
radial and (cumulative) mass bound. For example, if rfrac( mfrac ) > rfrac
then rfrac is the limiting factor, but if rfrac( mfrac ) < rfrac then mfrac
limits the extent of the Plummer realization. Note: specifying either value
may have no effect if the default value of the other parameter is still
the limiting factor; Beware! (Default: mfrac=0.999; rfrac=22.8042468 , chosen
so that the cumulative mass at rfrac is mfrac).
- seed=integer
- seed for the
random number generator (default: a value 0, which will be converted into
a unique new value using UNIX’s clock time, in seconds since once-upon-a-time-in-the-seventies).
See also xrandom(1NEMO)
.
- time=time
- Time at which the snapshot applies (default:
time=0.0).
- zerocm=t|f
- Reset center of mass to zero? [default: t].
- scale=scale_factor
- A scale factor or scale to virial units (M=G=-4E=1). Use -1 for virial units,
and 1 to get a model in structural (natural) units. Note: large scale factors
means small systems with large velocity disperson. [Default: -1].
- quiet=level
- Level of quit start. 0 is noisy, 1=somewhat quiet, 2=more quiet [default:
0].
- massname=name
- Identification of the mass spectrum. It is normally only
a function of mass, so n(m) will suffice. If nothing specified, all stars
will have the same mass (total mass M=1). [default: not used].
- massexpr=expr
- Expression for the mass-spectrum. In addition to the mass m from the massname
it may contain any variables contained in the masspars to be specified
next. [default: pow(m,p)].
- masspars=pars
- List of parameters and their values.
They can be used by name in the massexpr specified before. [default: p,0.0].
- massrange=mlow,mhigh
- Valid massrange. A lower and higher cutoff must be
supplied. The massrange has arbitrary units, since all masses will be rescaled
to set the total mass M=1. [default: 1,1].
- headline=string
- Optional headline,
which is written as the first item in the snapshot file, the next item
being the snapshot itself. [default: not used].
- nmodel=integer
- Number of
models to generate. Although mostly meant for benchmarks, generating more
then 1 model can be useful to process very large snapshots (which won’t
fit in memory) in a serialized fashion. See also snapsplit. Default: 1.
- mode=0|1|2
- The processing mode, purely for debugging. 0=no data written. 1=data written,
but no extra analysis. 2=data written, and extra analysis done. [Default:
1].
A non-delta function mass-spectrum will not create a properly virialized
system yet. See snapvirial(1NEMO)
For very large (>1000) ratio in the mass
ranges the spline interpolation, used in frandom(3NEMO)
, can fail using
a valid [0,1] range.
mkplummer can also be used to create a plummer
sphere with a mass spectrum, e.g. a Salpeter mass spectrum with
% mkplummer salpeter.dat 10000 massname=’n(m)’ massexpr=’pow(m,p)’ masspars=p,-2.35
massrange=0.1,10
The default benchmark (see Benchfile) creates a 10,000,000 snapshot
in double precision, with and without writing to a local file:
make -f Benchfile bench0 bench1
or
/usr/bin/time mkplummer . 10000000
/usr/bin/time mkplummer bench1.snap 10000000
with some sample CPU for bench0:
xps13 3.1s or 171 MB/s
t480 4.9s or 72 MB/s
the time difference betweeen bench0 and bench1 can be interpreted as the
time needed to write 535MB (for 10M particles)
NEMO/src/nbody/init/mkplummer.c
snapvirial(1NEMO)
, mkplummer(3NEMO)
, snapmass(1NEMO)
, snapsplit(1NEM0)
,
mkplum(1NEMO)
, mcluster(1NEMO)
, xrandom(3NEMO)
H.C.Plummer (1911), MNRAS,
71, 460.
S.J. Aarseth, M. Henon and R. Wielen (1974), Astron. and Astrophys.
37, p. 183.
A.H.W. Kuepper, Th. Maschberger, P. Kroupa and H. Baumgardt, 2011,
MNRAS, 417, 2300 (McLuster)
@ads 1974A&A....37..183A
Piet Hut (Peter
Teuben)
~/src/nbody/init mkplummer.c
23-Apr-87 Version 1.0: created PIET
10-Jun-88 Version 1.1: created PIET
xx-xxx-88 V1.2: zerocm keyword added PJT
xx-Mar-89 V2.0: full new snapshot version + doc PJT
15-nov-90 V2.3: mass-spectrum and cleanup for NEMO 2.x PJT
6-jun-96 V2.5d: report total mass before scaling PJT
21-mar-04 V2.7: added mlow= PJT+NCM
11-apr-05 V2.8: added nmodel= PJT
15-sep-10 V2.9: clarified rfrac and allow rfrac<0 PJT
2-dec-2017 documented mcluster PJT
29-mar-2021 benchmark PJT