VIPRA Documentation
Loading...
Searching...
No Matches
overview

| Main Page | Developer Setup | Module Implementations | Examples |

VIPRA can either be used:

  • as a Library for use in other projects
  • as a Standalone Simulation

Setup

Requirements and Setup are found on the Setup Page

Modules

VIPRA is broken into Modules, each with their own responsibilities in the simulation

Here are the requirements for each of the module types.

  1. Base Module - Requirements common to all module types
  2. Model
  3. Goals
  4. Maps
  5. Pedestrians
  6. Input
  7. Output

Simulation Overview

Below are the steps taken in a full simulation run.

Simulation Steps

Simulation Steps

These are the general steps taken when a simulation is run.

1. Module Loading

First a Simulation is constructed, then Modules are loaded using dlopen.

2. Run Sim

The simulation is started using either operator() or run_sim().

These both take

  1. Input Module - Loads Pedestrians
  2. Map Input Module - Loads Map geometry
  3. Parameter Module - Loads Parameters

as their arguments.

3. Parameters Loaded

The Parameter Module calls load() on it's Parameter Input module.

4. Parameters Registered

Each Module has its REGISTER_MODULE_PARAMS method called.

This is used to tell the simulation which parameters are required by each module and where to place them.

5. Modules Configured

The loaded parameters are passed in to each module.

6. Modules Initialized

The Map, Goals, Model, and Behavior Model have their INIT_STEP methods called.

This allows each module to setup any necessary pre-simulation work.

7. Simulation Run

The following is run until the Goals module simulation goal is met, or until the simulation max_timestep is reached.

model.timestep();
behaviors.timestep();
pedestrian_set.update();
goals.update();

8. Output

Finally, each of the Output modules write method is called.