packages icon



 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



 NAME
      denmax - Find gravitationally bound groups in N-body simula-
      tions.

 SYNOPSIS
      denmax -e <fEpsilon> [-s <nSmooth>]
           [-d <fMinDensity>] [-t <fMaxTemperature>]
           [-z <fRedShift>] [-G <fGravConst>]
           [-O <fOmega>] [-H <fHubble>] [-m <nMinMembers>]
           [-p <xyzPeriod>]
           [-px <xPeriod>] [-py <yPeriod>] [-pz <zPeriod>]
           [-c <xyzCenter>]
           [-cx <xCenter>] [-cy <yCenter>] [-cz <zCenter>]
           [-r] [-nu] [-o <Output Name>]

      Reads particles from stdin in the tipsy binary format.


 OPTIONS
      -e <fEpsilon>: No Default fEpsilon value!
      This parameter should be set to the length scale of interest
      for  the groups. For example in a gas simulation it might be
      set to the rough size of galaxies. This parameter also  sets
      the  resolution limit of the simulation and thus the resolu-
      tion of the density gradients used for  sliding  the  parti-
      cles.  For more information of this parameter's signifigance
      see the discussion below.

      [-s <nSmooth>]: Default nSmooth = 64
      Specifies the number of neighbors to smooth over when  find-
      ing densities.

      [-d <fMinDensity>]: Default fMinDensity = 0.0
      This sets the minimum density for dark matter or gas  parti-
      cles which are considered for grouping.

      [-t <fMaxTemperature>]: Default fMaxTemperature = HUGE
      This sets the maximum temperature for  gas  particles  which
      are considered for grouping.

      [-z <fRedShift>]: Default fRedShift = 0.0
      The redshift of the input file. This is  used  to  determine
      physical  coordinates from comoving ones. The default of 0.0
      specifies that the input file is the state of the simulation
      at our (the current) epoch.

      [-G <fGravConst>]: Default fGravConst = 1.0
      The relevant gravitational constant  in  the  units  of  the
      simulation.  Most  N-body  simulations  have their units set
      such that this constant is 1.0.

      [-O <fOmega>]: Default fOmega = 1.0



 Stadel Release 1.1  Last change: May 28 1994                    1






 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



      This sets the Omega parameter for the  simulation  in  ques-
      tion. The default value of 1.0 specifies a flat universe.

      [-H <fHubble>]: Default fHubble = 0.0
      Sets the Hubble constant for the simulation. If the  simula-
      tion was not performed in comoving coordinates then this can
      be left at zero. Note that this must be set in the units  of
      the simulation.

      [-m <nMinMembers>]: Default nMinMembers = 4
      This argument allows the user to specify  what  the  minimum
      number  of  members  (particles)  per  group  should be. All
      groups with less than this value will be dicarded.

      [-px <xPeriod>]: Default non-periodic in x dimension
      Specifies that denmax take into account periodicity  in  the
      x-dimension given by the period <xPeriod>.

      [-py <yPeriod>] [-pz <zPeriod>]: As above.

      [-p <xyzPeriod>]: Default non-periodic in x,y and  z  dimen-
      sions
      Specifies that denmax take into account periodicity  in  all
      three dimension given by the period <xyzPeriod>. This can be
      used in place of the above as a shorthand.

      [-cx <xCenter>]: Default box center is 0.0 in x dimension
      Specifies the center of the periodic box when  denmax  takes
      into  account periodicity in the x-dimension. This arguement
      can be ignored for a non-periodic simulation.

      [-cy <yCenter>] [-cz <zCenter>]: As above for y and z dimen-
      sions.

      [-c <xyzCenter>]: Default box center is 0.0  in  x,y  and  z
      dimensions
      For periodic simulations specifies the center of the box  in
      all three dimensions. This is a shorthand to the above.

      [-r]: Causes the denmax.ray output file to be produced.
      By default denmax does not  produce  the  denmax.ray  output
      file. With this argument present it will produce this (tipsy
      vector format) file.

      [-nu]: Disables Unbinding (No Unbinding).
      When this flag is specified denmax will bypass the unbinding
      procedure but still output all the normal group information.
      This is useful if special unbinding methods are required for
      a  simulation  or  if unbinding is completely undesired. The
      user can write a special unbinding program which would  read
      the denmax.grp file.




 Stadel Release 1.1  Last change: May 28 1994                    2






 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



      [-o <Output Name>]: Default Output Name = "denmax".
      This allows the user to specify an alternate  name  for  the
      output  files. For example, if the user specifies -o sim5 on
      the command line, then denmax will by  default  produce  the
      files sim5.grp and sim5.gtp (and if requested sim5.ray).


 DESCRIPTION
      Denmax finds gravitationally bound groups in N-body  simula-
      tions. The general procedure is first to decide which parti-
      cles should be grouped, these are called the "moving" parti-
      cles.   The  particles  considered  may be of a certain type
      (there are three types in the tipsy format, dark matter, gas
      and  stars). They may have to satisfy a minimum density cri-
      terion and may also (in the case of gas) need to  satisfy  a
      maximum  temperature  criterion. This choice of particles is
      affected by the type of input file and  the  users  settings
      for  the  minimum density and maximum temperature. There are
      seven possible types of tipsy input files and  here  is  how
      each is handled.

      Dark matter only: density and density gradients  are  calcu-
      lated  from  all the particles (dark), and the moving parti-
      cles are those meeting the minimum density criterion.

      Gas only: density and density gradients are calculated  from
      all  the particles (gas), and the moving particles are those
      meeting both the minimum  density  and  maximum  temperature
      criteria.

      Stars only: density gradients are calculated  from  all  the
      particles (stars), and all the particles are moved.

      Gas and dark matter: density and density gradients are  cal-
      culated  from  the gas particles only, and the moving parti-
      cles are the gas particles which meet the density  and  tem-
      perature criteria.

      Stars and gas: density gradients  are  calculated  from  the
      star  particles  only,  and the moving particles are all the
      star particles.

      Stars and dark matter: Same as stars and gas case.

      Stars and gas and dark matter: density and density gradients
      are  calculated  from all the star particles and all the gas
      particles.  The moving particles are then the gas  particles
      meeting  the  density  and  temperature criteria and all the
      star particles.

      Once the moving particles have  been  found  they  are  then
      moved  along the initial density gradients toward regions of



 Stadel Release 1.1  Last change: May 28 1994                    3






 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



      higher density.  The particles are  successively  stepped  a
      distance  of  fEpsilon/4.0  in  this  manner until they stay
      within a distance of fEpsilon over 5 steps.  This mean  that
      they  are  oscillating  in  a local high density region.  We
      then group all the particles in  each  high  density  region
      together  using the friends-of-friends method with a linking
      length of fEpsilon.  Note that this also links together high
      density  regions  seperated  by less than fEpsilon. Once all
      particles are localized in this way, we proceed to  "squish"
      them  together  even  more  to find the high density center.
      Lastly we discard groups with less than  nMinMembers  number
      of particles.

      The next stage (if the user has not  specified  -nu)  is  to
      remove  particles from a group which are not gravitationally
      bound to it. We call this phase unbinding  and  the  initial
      positions  are  considered  here,  not  the moved positions.
      There are cases for unbinding, one for dark matter  only  or
      star particle only inputs (case I unbinding) and one for the
      other input types (case II unbinding).

      Case I unbinding:

      1. Calculate the potential energies of all the particles  in
      the group taking into account the redshift of the simulation
      to get physical distances (redshift zero applies also  to  a
      simulation in physical coordinates).

      2. The center of mass and center of mass  velocity  for  the
      group  is found. The velocity relative to the center of mass
      velocity if found for all the particles in the  group.  This
      relative  velocity  is  converted  to a physical velocity by
      taking into account  the  redshift  and  adding  a  term  to
      include  the Hubble flow. For a simulation in physical coor-
      dinates fHubble  must  be  0.0.   (Note  that  this  is  the
      default!)  From  this the kinetic energy with respect to the
      center of mass is found for all particles in the group.

      3. The least bound particle is found. If  this  particle  is
      bound  then  all  particles  are  bound and we have finished
      unbinding for this group. Otherwise we must remove  it  from
      the  group,  adjusting  the  potential  energies and kinetic
      energies (the center of mass changes) of the remaining  par-
      ticles and return to step 3.

      Case II unbinding:

      Here we include some  of  the  group's  environment  to  the
      potential.   For example a galaxy depends on its dark matter
      halo in order to stay together.

      1. Calculate the potential energies as per case I, step 1.



 Stadel Release 1.1  Last change: May 28 1994                    4






 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



      1a. Include the potential contribution  of  all  non-grouped
      mass  within  a 2*fEpsilon ball about the center of the high
      density region of  the  group.  In  otherwords  we  want  to
      include some of the mass about the density maximum.

      2. Calculate the kinetic energies as per case I, step 2.

      3. The least bound particle is found. If  this  particle  is
      bound  then  again we are finished with the group. Otherwise
      we remove it from the group, adjusting the kinetic  energies
      as in case I. Then we go back to step 3. Note that this time
      we do not subtract the potential energy contribution of this
      particle  from  the others in the group. The potential ener-
      gies remain fixed as any  removed  particle  is  still  con-
      sidered to be part of the groups environment.

      After unbinding we check once more that all groups  have  at
      least nMinMembers number of particles. We discard those that
      don't and output the group information.


 OUTPUT FILES
      Denmax produces three different output files, by  default  a
      denmax.grp  file,  and  a denmax.gtp file. Optionally also a
      denmax.ray file.

      denmax.grp: This ASCII file is in  TIPSY  ARRAY  format  and
      contains  the  group  number  to  which each particle in the
      input file belongs. Group number zero  means  this  particle
      was not grouped (could have been removed by unbinding). This
      file can be read in by tipsy or any other analysis tool able
      to read this format.

      denmax.gtp: This file is in TIPSY BINARY format (same as the
      input file) and contains one star particle to represent each
      group that denmax finds. Each particle in this file  has  as
      its  position,  the position of the group's density maximum.
      As its velocity, the center of mass velocity of  the  group.
      Each  star  particle's  mass is the mass of the entire group
      and the star_particle.eps field contains the radial size  of
      the  group. (The time stamp of the input file is also stored
      in each star_particle.tform field.) This file  can  also  be
      read in by tipsy or any tool accepting TIPSY BINARY format.

      denmax.ray: This ASCII file is in TIPSY  VECTOR  format  and
      contains a vector pointing from the initial position of each
      particle to the localized (moved and squished)  position  of
      that  particle. For particles not moved the vector stored is
      null. This file can be read in by tipsy and used to  analyse
      the actions of denmax.





 Stadel Release 1.1  Last change: May 28 1994                    5






 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



 EXAMPLES
      > denmax -e 9e-4 -H 2.8944 -d 170 -p 1 -o dark < dark.bin

      This example  groups  dark  matter  particles  in  the  file
      dark.bin.  The  simulation is periodic with period length of
      1.0 in each dimension and box centered on (0,0,0).  The Hub-
      ble  constant  in  system  units  in  this  case  is  2.8944
      (sqrt(8*Pi/3)) and  the  redshift  defaults  to  0  (current
      epoch).  The  density  cut is made at a density of 170 (mean
      density is  1  in  these  units).  The  files  dark.grp  and
      dark.gtp are produced.

      > denmax -e 9e-4 -H 2.8944 -d 170 -t  30000  -z  1  -p  1  <
      all.bin

      Here we suppose that dark matter, gas and stars are  in  the
      input file. A cut in the gas is made at a density minimum of
      170 and temperature maximum of 30000 (cold  dense  gas)  and
      groups  of  this  gas and all the stars are formed at a red-
      shift of 1. The files denmax.grp and denmax.gtp are created.

      > denmax -e 0.5 -d 100 -m 8 -r -nu -o phys < phys.bin

      Here denmax processes a dark matter file in physical coordi-
      nates  which  is non-periodic. It makes a density cut at 100
      and finds the groups, but does not try to unbind any  parti-
      cles.  It  does  remove groups with less than 8 members. The
      output files phys.grp, phys.gtp and phys.ray (-r)  are  pro-
      duced.


 WARNINGS
      1. Make sure you set fEpsilon to a reasonable size for  your
      simulation. If too small it can take a long time to converge
      and may not give reasonable groups do to the limited resolu-
      tion  of  objects  in  the simulation. If too large, it will
      miss the smaller scale objects and may group  together  many
      smaller  objects to form large associations. For example the
      desired groups could be galaxies in a gas  and  dark  matter
      simulation, epsilon should reflect this fact.

      2. Do not run denmax with an nSmooth of less  than  64  when
      finding  groups  in  a  dark matter only input file. For gas
      simulations an nSmooth of 32 is acceptable.

      3. The unbinding procedure is O(Ngroup^2), this  means  that
      for very large simulations and specifically situations where
      groups larger than a couple of thousand  members  are  found
      the  unbinding  procedure  could be prohibitive. So far this
      has not been a real problem, even in a 2.1 million  particle
      simulation,  however,  future versions of denmax may need to
      use a tree code for  the  group  pootential  energies.  (The



 Stadel Release 1.1  Last change: May 28 1994                    6






 DENMAX(1.1)                  DENMAX                   DENMAX(1.1)



      friends-of-friends  is actually also O(Ngroup^2) but this is
      not such a big problem)


 BUGS
      Please report any!


 SEE ALSO
      tipsy(1), smooth(1), fof(1)













































 Stadel Release 1.1  Last change: May 28 1994                    7