LocalEvent LRoughWall::getEvent(const Particle& part) const { #ifdef ISSS_DEBUG if (!Sim->dynamics->isUpToDate(part)) M_throw() << "Particle is not up to date"; #endif return LocalEvent(part, Sim->dynamics->getPlaneEvent(part, vPosition, vNorm, r), WALL, *this); }
LocalEvent CLAndersenWall::getEvent(const Particle& part) const { #ifdef ISSS_DEBUG if (!Sim->dynamics.getLiouvillean().isUpToDate(part)) M_throw() << "Particle is not up to date"; #endif return LocalEvent(part, Sim->dynamics.getLiouvillean().getWallCollision(part, vPosition, vNorm), WALL, *this); }
LocalEvent LWall::getEvent(const Particle& part) const { #ifdef ISSS_DEBUG if (!Sim->dynamics->isUpToDate(part)) M_throw() << "Particle is not up to date"; #endif double colldist = 0.5 * _diameter->getProperty(part.getID()); return LocalEvent(part, Sim->dynamics->getPlaneEvent(part, vPosition, vNorm, colldist), WALL, *this); }
LocalEvent LOscillatingPlate::getEvent(const Particle& part) const { #ifdef ISSS_DEBUG if (!Sim->dynamics.getLiouvillean().isUpToDate(part)) M_throw() << "Particle is not up to date"; #endif //bool caution = ((part.getID() == lastID) && (lastdSysTime == Sim->dSysTime)); double reducedt = Sim->dSysTime - 2.0 * M_PI * int(Sim->dSysTime * omega0 / (2.0*M_PI)) / omega0; std::pair<bool, double> eventData = Sim->dynamics.getLiouvillean().getPointPlateCollision (part, rw0, nhat, delta, omega0, sigma, reducedt + timeshift, false); EEventType type = (eventData.first) ? WALL : VIRTUAL ; if (eventData.second == HUGE_VAL) type = NONE; return LocalEvent(part, eventData.second, type, *this); }