Class Event#

Defined in Program listing for file kernel/src/simulationTools/Event.hpp

class Event#

Abstract class that represents generic time events.

This base class simply records the time at which the event will take place. A pure virtual function named process will be invoked to execute the event. The time is represented with a mpz_t, from gmp library. See

Derived classes:

  • TimeDiscretisationEvent: events that corresponds to user-defined time-discretisation points

  • NonSmoothEvent: specific events, detected during simulation, when constraints are violated (thanks to roots-finding algorithm)

  • SensorEvent: event dedicated to data capture through user-defined sensors.

Existing types of events: 0 -> undef 1 -> TimeDiscretisation 2 -> NonSmooth 3 -> Sensor 4 -> Observer 5 -> Actuator

Subclassed by NonSmoothEvent, TimeDiscretisationEvent, TimeDiscretisationEventNoSaveInMemory

Public Functions

Event(double time, int newType = 0, bool reschedule = false)#

copy constructor ; private => no copy nor pass-by-value.

assignment operator private => no assign allowed constructor with time value and type as input

  • time – the starting type (a double)

  • newType – the Event type (an int)

  • reschedule – set this to true if the event has to be rescheduled

virtual ~Event()#


inline double getTick() const#

get tick value


a double

inline const mpz_t *getTimeOfEvent() const#

get the time of the present event (mpz_t format)


a mpz_t

inline double getDoubleTimeOfEvent() const#

get the time of the present event (double format)


a double

inline void setTime(double time)#

set the time of the present event (double format)


time – the new time

inline int getType() const#

get a type of the present event


an std::string

inline void setType(int newType)#

set a new type for the present Event


newType – the new Event type

inline void setK(unsigned int newK)#

Set the current step k.


newK – the new value of _k

void setTimeDiscretisation(SP::TimeDiscretisation td)#

Set the TimeDiscretisation.


td – a TimeDiscretisation for this Event

inline SP::TimeDiscretisation getTimeDiscretisation() const#

Get the TimeDiscretisation.


the TimeDiscretisation used in this Event

void display() const#

display Event data

virtual void process(Simulation &sim) = 0#

virtual function which actions depends on event type


sim – the simulation that owns this Event (through the EventsManager)

virtual void update(unsigned int k = 0)#

virtual function which actions depends on event type.

The generic implementation present in this object is to increment the TimeDiscretisation and to chamge the time of the current Event


k – meaning depends on the type of event. See derived class.

Public Static Functions

static void setTick(double newTick)#

set tick value


newTick – the new tick value