Autopysta
Loading...
Searching...
No Matches
fixed_demand_creator Class Reference

Vehicle creator that injects vehicles at a fixed rate (flow). More...

#include <fixed_demand_creator.h>

Inheritance diagram for fixed_demand_creator:
creator

Public Member Functions

 fixed_demand_creator (model *_model, double _flow)
 Constructs a fixed-demand vehicle creator.
 
 fixed_demand_creator (model *_model, double _flow, int maxvehs)
 Constructs a limited fixed-demand vehicle creator.
 
void validate_creator () override
 Validates the flow rate parameters of the fixed-demand vehicle creator.
 
vehiclecreate_no_leader (int lane) override
 Creates a new vehicle in a lane without a leader.
 
- Public Member Functions inherited from creator
virtual vehiclecreate (point *leader, bool immediate_follower=false)
 Creates a new vehicle based on the current leader's position.
 
vector< vehicle * > initial_state (point *leader)
 Initializes vehicles in the first simulation timestep.
 

Additional Inherited Members

- Protected Member Functions inherited from creator
- Protected Attributes inherited from creator
int max_vehs = INT_MAX
 Maximum number of vehicles that can be created.
 
int n_vehs = 0
 Counter for the number of vehicles created so far.
 
modelModel = nullptr
 Traffic model used to determine vehicle behavior.
 

Detailed Description

Vehicle creator that injects vehicles at a fixed rate (flow).

The fixed_demand_creator class generates vehicles based on a specified flow rate, placing them at the beginning of a lane or behind a leader. Vehicles are injected at regular intervals based on the desired headway.

Constructor & Destructor Documentation

◆ fixed_demand_creator() [1/2]

fixed_demand_creator::fixed_demand_creator ( model * _model,
double _flow )

Constructs a fixed-demand vehicle creator.

This constructor creates a vehicle creator that generates vehicles at a specified flow rate.

Parameters
_modelA car-following model governing the lane's capacity.
_flowThe target flow rate (vehicles per second).

◆ fixed_demand_creator() [2/2]

fixed_demand_creator::fixed_demand_creator ( model * _model,
double _flow,
int maxvehs )

Constructs a limited fixed-demand vehicle creator.

This constructor creates a vehicle creator that generates vehicles at a specified flow rate with a limit on the maximum number of vehicles created.

Parameters
_modelA car-following model governing the lane's capacity.
_flowThe target flow rate (vehicles per second).
maxvehsThe maximum number of vehicles to create.

Member Function Documentation

◆ create_no_leader()

vehicle * fixed_demand_creator::create_no_leader ( int lane)
overridevirtual

Creates a new vehicle in a lane without a leader.

This function generates a new vehicle in an empty lane if there is space, or returns nullptr if no more vehicles can be created.

Parameters
laneThe lane number where the vehicle is created.
Returns
A pointer to the created vehicle, or nullptr if no vehicle was created.

Implements creator.

◆ validate_creator()

void fixed_demand_creator::validate_creator ( )
overridevirtual

Validates the flow rate parameters of the fixed-demand vehicle creator.

This method checks that the specified flow rate is feasible given the time step (dt) of the simulation. If the demand is not feasible, an exception will be thrown.

Reimplemented from creator.


The documentation for this class was generated from the following file: