Пример #1
0
  /*! \brief Free streams a particle up to the current time.
   * 
   * This synchronises the delayed states of the particle.
   * \param part Particle to syncronise.
   */
  inline void updateParticle(const Particle& part) const
  {
    streamParticle(const_cast<Particle&>(part), 
		   part.getPecTime() + partPecTime);

    const_cast<Particle&>(part).getPecTime() = -partPecTime;
  }
Пример #2
0
    /*! \brief Free streams all particles up to the current time.
      
      This synchronises all the delayed states of the particles
     */
    void updateAllParticles() const
    {
      //May as well take this opportunity to reset the streaming
      //Note: the Replexing coordinator RELIES on this behaviour!
      for (Particle& part : Sim->particles)
	{
	  streamParticle(part, part.getPecTime() + partPecTime);
	  part.getPecTime() = 0;
	}

      partPecTime = 0;
      streamCount = 0;
    }
Пример #3
0
 /*! \brief A dangerous function to predictivly move a particle
   forward.
 
   See GCellsShearing, this just over advances the particle to find
   its future position in boundary changes.
 */
 inline void advanceUpdateParticle(Particle& part, double& dt) const
 {
   streamParticle(part, dt + partPecTime + part.getPecTime());
   part.getPecTime() = - dt - partPecTime;
 }
Пример #4
0
 /*! \brief Free streams a particle up to the current time.
   
   This synchronises the delayed states of the particle.
   \param part Particle to syncronise.
  */
 inline void updateParticle(Particle& part) const
 {
   streamParticle(part, part.getPecTime() + partPecTime);
   part.getPecTime() = -partPecTime;
 }