示例#1
0
  void 
  OPCollTicker::eventUpdate(const IntEvent &event, 
			    const PairEventData &) 
  {
    stream(event.getdt());
    ticker();
  }
示例#2
0
 void 
 OPViscosityE::eventUpdate(const IntEvent& iEvent, const PairEventData& PDat)
 {
   stream(iEvent.getdt());
   impulseDelG(PDat);
   updateConstDelG(PDat);
 }
示例#3
0
  void 
  OPThermalDiffusionE::eventUpdate(const IntEvent& iEvent, 
				   const PairEventData& PDat)
  {
    stream(iEvent.getdt());
    delG += impulseDelG(PDat);
    updateConstDelG(PDat);
  }
  void 
  OPThermalConductivitySpeciesSpeciesE::eventUpdate(const IntEvent& iEvent,
						    const PairEventData& PDat)
  {
    stream(iEvent.getdt());
    //impulseDelG(PDat);
    updateConstDelG(PDat);
  }
示例#5
0
  void
  OPMisc::eventUpdate(const IntEvent& eevent, const PairEventData& PDat)
  {
    stream(eevent.getdt());
    eventUpdate(PDat);

    newEvent(eevent.getParticle1ID(), eevent.getType(), getClassKey(eevent));
    newEvent(eevent.getParticle2ID(), eevent.getType(), getClassKey(eevent));
  }
示例#6
0
  void 
  OPVACF::eventUpdate(const IntEvent& iEvent, const PairEventData& PDat)
  {
    //Move the time forward
    currentdt += iEvent.getdt();
  
    //Now test if we've gone over the step time
    while (currentdt >= dt)
      {
	currentdt -= dt;
	newG(PDat);
      }
  }
示例#7
0
  void
  IDumbbells::runEvent(const Particle& p1, 
		       const Particle& p2,
		       const IntEvent& iEvent) const
  {
    double d = (_diameter->getProperty(p1.getID())
		+ _diameter->getProperty(p2.getID())) * 0.5;

    double l = (_length->getProperty(p1.getID())
		+ _length->getProperty(p2.getID())) * 0.5;

    double e = (_e->getProperty(p1.getID())
		+ _e->getProperty(p2.getID())) * 0.5;

    switch (iEvent.getType())
      {
      case CORE:
	{
	  ++Sim->eventCount;
	  //We have a line interaction! Run it
	  PairEventData retval(Sim->dynamics.getLiouvillean()
			       .runOffCenterSphereOffCenterSphereCollision
			       (iEvent, e, l, d));

	  Sim->signalParticleUpdate(retval);
	
	  Sim->ptrScheduler->fullUpdate(p1, p2);
	
	  BOOST_FOREACH(std::tr1::shared_ptr<OutputPlugin> & Ptr, 
			Sim->outputPlugins)
	    Ptr->eventUpdate(iEvent, retval);

	  break;
	}
      case WELL_IN:
	{
	  addToCaptureMap(p1, p2);

	  //Unfortunately we cannot be smart as this well event may have
	  //been pushed into both particles update lists, therefore we
	  //must do a full update
	  Sim->ptrScheduler->fullUpdate(p1, p2);

	  Sim->freestreamAcc += iEvent.getdt();
	  break;
	}
      case WELL_OUT:
	{
	  removeFromCaptureMap(p1, p2);

	  //Unfortunately we cannot be smart as this well event may have
	  //been pushed into both particles update lists, therefore we
	  //must do a full update
	  Sim->ptrScheduler->fullUpdate(p1, p2);

	  Sim->freestreamAcc += iEvent.getdt();
	  break;
	}
      default:
	M_throw() << "Unknown collision type";
      }
  }
示例#8
0
bool
System::operator<(const IntEvent& iEvent) const
{
    return dt < iEvent.getdt();
}
示例#9
0
  void 
  OPIntEnergyHist::eventUpdate(const IntEvent &event, 
			    const PairEventData &) 
  {
    intEnergyHist.addVal(_ptrOPMisc->getConfigurationalU(), event.getdt());
  }