FLASH3.3 Release API

ROBODoc 4.99 manual

Generated from /asc/home/flashdocs/FLASH3_33/source/Particles/Particles_computeDt.F90 with ROBODoc v4.99.8 on Wed Oct 20 17:16:47 2010


[Functions] source/Particles/Particles_computeDt





  Particles_computeDt( integer(in) :: blockID,
                       integer(in) :: myPE,
                       real(inout) :: dt_part,
                       integer(5)(inout) :: dt_minloc)


   Timestep computation routine for the particle unit.
   This routine sets the timestep by requiring that
   particles travel no more than some fraction pt_dtFactor
   during a single step.  Even for time integration
   schemes that can deal with pt_dtFactor > 1, you should
   not set pt_dtFactor to be larger than half the number
   of guard cells.  Otherwise particles that leave the block
   that "owns" them may overshoot the block's immediate
   neighbors, causing problems when particle data are transmitted
   to the neighbors.


    blockID:         local block ID
    myPE:            current processor number
    dt_part:         variable to hold timestep constraint
    dt_minloc(5):    array to hold limiting zone info:  index[1-3] are zone
                     indices (i,j,k); index[4]=block ID; index[5]=processor 
                     number. The zone indices indicate the zone containing
                     the particle whose velocity restricted the timestep.


   pt_dtFactor:      REAL [default 0.5] A factor multiplying dx/|v| to limit
                       the movement of particles outside a single block. 


   Note that this routine does NOT calculate a timestep limitation
   based on the theoretical stability limits of the time integration
   routines.  It SHOULD, but these limits were deemed to be unlikely
   to be restrictive based on the high velocities involved in normal
   astronomical simulations.