LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::fluid::FluidDaeStaging Struct Reference

The waiting room outside a capped region, as fluid coordinates. More...

#include <line/solvers/fluid/fluid_dae.h>

Collaboration diagram for line::fluid::FluidDaeStaging:

Public Attributes

std::size_t n = 0
std::vector< std::size_t > region
std::vector< std::size_t > klass
 per staging coordinate
std::vector< bool > adm
 per event: an admission?
std::vector< std::size_t > adm_region
std::vector< std::size_t > adm_stage
std::vector< std::vector< bool > > gated_by
 (ncon x n) which rows gate which room
Matrix< double > Dn
Matrix< double > Dp
 negative and positive parts of D

Detailed Description

The waiting room outside a capped region, as fluid coordinates.

WHY THE CONSTRAINT ALONE IS NOT ENOUGH. Throttling a region's admission events does hold its population at the cap, but it holds it by slowing the UPSTREAM STATION'S COMPLETIONS – an admission event IS that station finishing a job – so blocked mass piles up at a station it has already finished being served by. Where that station is a delay the error is visible as a broken Little's law. A waiting queue means the job COMPLETES upstream service and then waits; it is somewhere else, and the model needs somewhere else to put it.

Each region gains one coordinate per class, and every admission splits in two: upstream -> staging at the nominal rate, so the upstream station empties exactly as it would with no region; staging -> region at theta_f * s_{f,c}, the throttled leg. The two jumps sum to the original, so only where the mass rests changes.

ONE THROTTLE PER REGION, hence one binding cap per region: a region has a single admission control – how fast its queue drains – so it can satisfy exactly one equality.

Definition at line 544 of file fluid_dae.h.

Member Data Documentation

◆ adm

std::vector<bool> line::fluid::FluidDaeStaging::adm

per event: an admission?

Definition at line 547 of file fluid_dae.h.

Referenced by line::fluid::fluid_dae_extend(), line::fluid::fluid_dae_legs(), and line::fluid::fluid_dae_staging().

◆ adm_region

std::vector<std::size_t> line::fluid::FluidDaeStaging::adm_region

Definition at line 548 of file fluid_dae.h.

Referenced by line::fluid::fluid_dae_staging().

◆ adm_stage

std::vector<std::size_t> line::fluid::FluidDaeStaging::adm_stage

◆ Dn

Matrix<double> line::fluid::FluidDaeStaging::Dn

Definition at line 550 of file fluid_dae.h.

Referenced by line::fluid::fluid_dae_staging().

◆ Dp

Matrix<double> line::fluid::FluidDaeStaging::Dp

negative and positive parts of D

Definition at line 550 of file fluid_dae.h.

Referenced by line::fluid::fluid_dae_staging().

◆ gated_by

std::vector<std::vector<bool> > line::fluid::FluidDaeStaging::gated_by

◆ klass

std::vector<std::size_t> line::fluid::FluidDaeStaging::klass

per staging coordinate

Definition at line 546 of file fluid_dae.h.

Referenced by line::fluid::fluid_dae_conservation(), and line::fluid::fluid_dae_staging().

◆ n

◆ region

std::vector<std::size_t> line::fluid::FluidDaeStaging::region

Definition at line 546 of file fluid_dae.h.

Referenced by line::fluid::fluid_dae_extend(), and line::fluid::fluid_dae_staging().


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