The bulge and halo are a King and lowered Evans distribution resp, whereas the disk a 3D generalization of Shu’s planar disk to include a 3rd integral of motion to account for the vertical structure. The construction occurs in 3 steps. First the potential is calculated, after which the disk distribution function is constructed which generates the given potential. Finally, each component is realized with a self-consistent distribution of particle orbits.
Although one has the option of including any combination of components, leaving out the halo probably won’t work.
Two new versions have been published since the current 1995 K&D version: Widrow & Dubinski (2005) and Widrow, Pym and Dubinski (2008). These are not (yet) supported in the current mkkd95 program.
The halo is a flattened analogue of the King model so the concentration (R_tidal/R_core) is determined by the dimensionless central potential psi_0/sigma_0^2. The more negative the value the greater the concentration. The parameters R_a and v_0, affect the scaling of the halo mass profile.
The effect of different bulge parameters is more predictable. Decreasing the central velocity dispersion will create a more centrally concentrated bulge and decreasing the psi cut off will truncate the bulge and decrease its total mass.
The disk is parameterized directly by its mass profile so its effect on the rotation curve is predictable ahead of time.
Hit and miss seems to be a good strategy for finding a suitable profile. Generate a model to lmax=2 and then view the resulting rotation curve by using the vcirc program, in which the contributions to the total rotation curve are tabulated. Another useful file is mr.dat which tells you the mass and radial extent of the disk bulge and halo.
The program plotforce will also generate the rotation curves for you directly from the dbh.dat, b.dat and h.dat files.
The potential is determined iteratively: starting from an initial guess at the potential, the density implied by the halo and bulge DFs is calculated, the disk density added, and the potential of that mass distribution is used as starting point for the next iteration. Initially only the monopole (l=0) components are calculated until the model converges, then one more harmonic is added per iteration up to the maximum requested, and once all harmonics are included the iterations are continued until the outer (tidal) radius of the halo is unchanged between iterations. At each iterations plots of the harmonic expansion coefficients are produced. If the tidal radius reported is "outside grid" for a large number of iterations, increase the number of radial bins or increase their size. Sometimes infinite tidal radii are also reported: this happens when the total mass of the model using the current guess for the potential is insufficient to generate a potential well as deep as requested. If this persists over many iterations, again increase the number or size of the radial bins.
dbh calculates the potential. From in.dbh is computes dbh.dat, h.dat, b.dat and mr.dat.
getfreqs tabulates various characteristic frequencies (omega, kappa etc.) in the equatorial plane for use by diskdf. Input files are dbh.dat h.dat b.dat, and it generates freqdbh.dat
diskdf iteratively calculates the correction functions for the disk distribution function. These functions are multiplicative corrections to the surface density and vertical velocity dispersion which appear to leading order in the Shu (1969) distribution functions. See KD95 for details. The keywords sigrv0, sigr0, ncorr, niter are used for this. It also outputs the Toomre Q as a function of radius in the file toomre.dat.
gendisk, genbulge, genhalo assembled the respective components using an input file.
mergerv is a small shell script that merges the 3 ascii files.
% mkkd95 A0.dat % snapmstat A0.dat sort=f 0 0:7999 = 8000 Mass= 0.000108822 TotMas= 0.87058 CumMas= 0.87058 1 8000:11999 = 4000 Mass= 0.00010631 TotMas= 0.425242 CumMas= 1.29582 2 12000:17999 = 6000 Mass= 0.000819365 TotMas= 4.91619 CumMas= 6.21201 % snapplot A0.dat color=’i<8000?2.0/16.0:(i<12000?3.0/16.0:4.0/16.0)’ yvar=z % snapxyz A0.dat - color=’i<8000?1:(i<12000?2:4)’ | xyzview - maxpoint=18000 nfast=18000 scale=8 fullscreen=t % mkkd95 B0.dat model=B % snapplot B0.dat color=’i<1000?2.0/16.0:(i<2000?3.0/16.0:4.0/16.0)’ yvar=z % mkkd95 C0.dat model=C % snapplot C0.dat color=’i<4000?2.0/16.0:(i<6000?3.0/16.0:4.0/16.0)’ yvar=z % mkkd95 D0.dat model=D % snapplot D0.dat color=’i<1000?2.0/16.0:(i<2000?3.0/16.0:4.0/16.0)’ yvar=z
http://www.astro.rug.nl/~kuijken/galactics.html original GalactICS distribution 1995MNRAS.277.1341K - Kuijken, K.; Dubinski, J. Nearly Self-Consistent Disc / Bulge / Halo Models for Galaxies Widrow & Dubinski 2005 (version 2) Deg, N., Widrow, L. M., & Randriamampandry, T. 2019, MNRAS, 486, 5391 (updated release to include gas) Widrow, Pym and Dubinski 2008 (version 3) makegalaxy https://bitbucket.org/lutorm/makegalaxy GalIC [ascl:1408.008] GALIC: Galaxy initial conditions construction makediskgalaxy Springel et. al 2005 - 2005MNRAS.361..776S
NEMO/src/nbody/init/mkkd95.c NEMO/usr/kuijken/GalactICS-exp/ $out.tmdir/dbh.dat contains tabulated values of the harmonic coefficients for the Legendre expansion of the density, potential and radial force at the specified radii for the entire model $out.tmdir/h.dat same as above, but only for halo $out.tmdir/b.dat same as above, but only for bulge $out.tmdir/mr.dat mass and radial extent (or edge) of disk, bulge and halo
06-Mar-04 V1.0 Created, using kd95’s README file PJT 11-mar-04 V1.2 added nmodel= and warns about using model= PJT 23-mar-04 V1.4 use logfile in tmpdir, added cleanup=, some key reorder PJT 19-jul-06 V1.5 fix POSIX problems and document order of particles better 27-jul-06 fixed documentation on vcirc usage, disabled pgplot for ia64 PJT 5-aug-06 merged two previous (CVS) docs PJT