void OPMisc::periodicOutput() { time_t rawtime; time(&rawtime); tm timeInfo; localtime_r (&rawtime, &timeInfo); char dateString[12] = ""; strftime(dateString, 12, "%a %H:%M |", &timeInfo); I_Pcout() << dateString << " NColls " << (Sim->eventCount+1)/1000 << "k, t " << Sim->dSysTime/Sim->dynamics.units().unitTime() << ", <t_2> " << Sim->dSysTime * static_cast<double>(Sim->N) /(Sim->dynamics.units().unitTime() * 2.0 * static_cast<double>(dualEvents)) << ", <t_tot> " << Sim->dSysTime * static_cast<double>(Sim->N) / (Sim->dynamics.units().unitTime() * (2.0 * static_cast<double>(dualEvents) + static_cast<double>(singleEvents))) << ", "; oldSysTime = Sim->dSysTime; oldcoll = Sim->eventCount; }
void OPMisc::periodicOutput() { time_t rawtime; time(&rawtime); tm timeInfo; localtime_r (&rawtime, &timeInfo); char dateString[12] = ""; strftime(dateString, 12, "%a %H:%M", &timeInfo); //Output the date I_Pcout() << dateString; //Calculate the ETA of the simulation, and take care with overflows and the like double _earliest_end_time = HUGE_VAL; BOOST_FOREACH(const std::tr1::shared_ptr<System>& sysPtr, Sim->systems) if (std::tr1::dynamic_pointer_cast<SystHalt>(sysPtr)) _earliest_end_time = std::min(_earliest_end_time, sysPtr->getdt()); double time_seconds_remaining = _earliest_end_time / (getSimTimePerSecond() * Sim->units.unitTime()); size_t seconds_remaining = time_seconds_remaining; if (time_seconds_remaining > std::numeric_limits<size_t>::max()) seconds_remaining = std::numeric_limits<size_t>::max(); if (Sim->endEventCount != std::numeric_limits<size_t>::max()) { double event_seconds_remaining = (Sim->endEventCount - Sim->eventCount) / getEventsPerSecond() + 0.5; if (event_seconds_remaining < std::numeric_limits<size_t>::max()) seconds_remaining = std::min(seconds_remaining, size_t(event_seconds_remaining)); } if (seconds_remaining != std::numeric_limits<size_t>::max()) { size_t ETA_hours = seconds_remaining / 3600; size_t ETA_mins = (seconds_remaining / 60) % 60; size_t ETA_secs = seconds_remaining % 60; I_Pcout() << ", ETA "; if (ETA_hours) I_Pcout() << ETA_hours << "hr "; if (ETA_mins) I_Pcout() << ETA_mins << "min "; I_Pcout() << ETA_secs << "s"; } I_Pcout() << ", Events " << (Sim->eventCount+1)/1000 << "k, t " << Sim->systemTime/Sim->units.unitTime() << ", <MFT> " << getMFT() << ", <T> " << getMeankT() / Sim->units.unitEnergy() << ", U " << _internalE.current() / Sim->units.unitEnergy(); }
void OPKEnergy::periodicOutput() { double powerloss = (InitialKE - KECurrent) * Sim->dynamics.units().unitLength() * pow(Sim->dynamics.units().unitTime(),3) / (Sim->dynamics.units().unitMass() * Sim->dSysTime * Sim->dynamics.getSimVolume()); I_Pcout() << "T " << 2.0 * KECurrent / (Sim->N * Sim->dynamics.getLiouvillean().getParticleDOF() * Sim->dynamics.units().unitEnergy()) << ", <T> " << getAvgTheta() << ", <PwrLoss> " << powerloss << ", "; }
void OPETA::periodicOutput() { time_t currTime; time(&currTime); double ETA = floor(((Sim->endEventCount - Sim->eventCount) * difftime(currTime, start_Time)) / Sim->eventCount); double ETA_hours = floor(ETA/3600); double ETA_mins = floor(ETA/60) - (ETA_hours * 60); double ETA_secs = ETA - (ETA_mins * 60) - (ETA_hours * 3600); I_Pcout() << "ETA " << ETA_hours << "h " << ETA_mins << "m " << ETA_secs << "s, "; }
void OPUEnergy::periodicOutput() { I_Pcout() << "U " << intECurrent / Sim->dynamics.units().unitEnergy() << ", "; }