NuTo
Numerics Tool
EventListHandler.h
Go to the documentation of this file.
1 /*
2  * EventListHandler.h
3  *
4  * Created on: 3 Mar 2014
5  * Author: ttitsche
6  */
7 
8 #pragma once
9 
10 #include <vector>
11 #include <set>
13 
14 namespace NuTo
15 {
16 class CollidableBase;
17 class Event;
19 
20 typedef std::set<Event> GlobalEvents;
21 
24 {
25 public:
28 
31 
36  void PerformNextEvent();
37 
39  void PrintEvents();
40 
41 
47  void AddEvent(double rTime, CollidableBase& rCollidable1, CollidableBase& rCollidable2, int rType);
48 
51  void DeleteOldEvents(Event::LocalEvents& rOldEvents);
52 
54  double GetNextEventTime();
55 
59  double SetTimeBarrier(double rTimeBarrier, SubBoxHandler& rSubBoxes);
60 
62  int GetEventListSize();
63 
65  void Clear();
66 
68  void PrintStatistics(double rTimeTotal);
69 
70 private:
71  GlobalEvents mEvents;
72 
73  double mTimeUpdate;
74  double mTimeErase;
75  double mTimeAdd;
76  double mTimeRebuild;
77  double mTimeBarrier;
78 
79  long mNSphereCollisions;
80  long mNWallCollisions;
81  long mNWallTransfers;
82 };
83 
84 } /* namespace NuTo */
void PrintEvents()
prints all events
Definition: EventListHandler.cpp:38
std::set< Event > GlobalEvents
Definition: EventListHandler.h:18
void PrintStatistics(double rTimeTotal)
prints all time mesurement statistics
Definition: EventListHandler.cpp:82
int GetEventListSize()
getter for the event list size
Definition: EventListHandler.cpp:106
EventListHandler()
constructor, provides an empty event list and initializes timers
Definition: EventListHandler.cpp:19
~EventListHandler()
destructor, deletes all events
Definition: EventListHandler.cpp:33
void Clear()
deletes all events
Definition: EventListHandler.cpp:47
void PerformNextEvent()
performs the most recent event 1) get next events and performs it 2) removes all old events 3) finds ...
Definition: EventListHandler.cpp:111
void DeleteOldEvents(Event::LocalEvents &rOldEvents)
deletes every event in rOldEvents
Definition: EventListHandler.cpp:68
Base class for all collidables.
Definition: CollidableBase.h:22
class for event list operations
Definition: EventListHandler.h:23
builds and handles sub boxes
Definition: SubBoxHandler.h:23
double SetTimeBarrier(double rTimeBarrier, SubBoxHandler &rSubBoxes)
setter for the time barrier, rebuilds the event list
Definition: EventListHandler.cpp:144
void AddEvent(double rTime, CollidableBase &rCollidable1, CollidableBase &rCollidable2, int rType)
adds a new event, of rTime < mTimeBarrier
Definition: EventListHandler.cpp:52
Definition: Exception.h:6
double GetNextEventTime()
returns the time of the most recent event
Definition: EventListHandler.cpp:74
std::vector< Event * > LocalEvents
Definition: Event.h:25