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

One firing mode of one transition, with its arcs and its firing process. More...

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

Collaboration diagram for line::fluid::petri::PetriMode:

Public Attributes

std::size_t node = 0
 1-based node index of the transition
std::size_t mode = 0
 mode index within it, 0-based
lang::TimingStrategy timing = lang::TimingStrategy::TIMED
std::string label
std::vector< std::size_t > arc_slot
 Input arcs, as state coordinates and their multiplicities.
std::vector< double > arc_w
std::vector< std::size_t > inh_slot
 Inhibitor arcs, as state coordinates and their thresholds.
std::vector< double > inh_thr
double c = 1.0
 servers of this mode; infinite for none
std::size_t nph = 1
 phases of the firing process; 0 for an immediate mode
Matrix< double > D0
Matrix< double > D1
std::vector< double > d1
 row sums of D1, the completion rate out of each phase
std::vector< double > pie
 entry distribution over the phases
std::function< double(const Matrix< double > &)> dep
 Marking-dependent firing multiplier; empty for the unit one.
int prio = 1
double weight = 1.0
std::vector< double > cvec
 The mode's incidence column, over the whole state.
std::vector< std::size_t > zblk
 The phase coordinates of a multi-phase mode; empty otherwise.
bool closable = false
 Whether the enabling degree is worth closing over.
std::vector< std::size_t > flow_slot
 Fluid flows of the mode: level coordinates and signed rates per running server.
std::vector< double > flow_rate
std::vector< std::size_t > guard_slot
 Fluid guards: level coordinates, +1 for '>=' and -1 for '<=', and thresholds.
std::vector< int > guard_sgn
std::vector< double > guard_thr
std::vector< std::size_t > fdep_slot
 Fluid rate dependences: level coordinates and the multipliers h(level).
std::vector< std::function< double(double)> > fdep_fun
std::vector< std::function< double(const Matrix< double > &)> > flow_dep_fun
 Marking-dependent flow multipliers, aligned with flow_slot (an empty function is the unit one), each of the (I x K) marking restricted to the 1-based token places of flow_dep_read (empty: every coordinate).
std::vector< std::vector< std::size_t > > flow_dep_read

Detailed Description

One firing mode of one transition, with its arcs and its firing process.

Definition at line 84 of file fluid_petri_terms.h.

Member Data Documentation

◆ arc_slot

std::vector<std::size_t> line::fluid::petri::PetriMode::arc_slot

Input arcs, as state coordinates and their multiplicities.

Definition at line 91 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), line::fluid::petri::petri_immediate(), line::fluid::petri::petri_theta(), and line::fluid::petri::solver_fluid_petri().

◆ arc_w

std::vector<double> line::fluid::petri::PetriMode::arc_w

◆ c

double line::fluid::petri::PetriMode::c = 1.0

servers of this mode; infinite for none

Definition at line 97 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), and line::fluid::petri::petri_theta().

◆ closable

bool line::fluid::petri::PetriMode::closable = false

Whether the enabling degree is worth closing over.

A single input arc under an infinite server count makes min() the identity, so the closure would smooth nothing and the covariance entries it reads would be carried for no reason.

Definition at line 117 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), and line::fluid::petri::petri_theta().

◆ cvec

std::vector<double> line::fluid::petri::PetriMode::cvec

The mode's incidence column, over the whole state.

Definition at line 107 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ D0

Matrix<double> line::fluid::petri::PetriMode::D0

Definition at line 99 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ D1

Matrix<double> line::fluid::petri::PetriMode::D1

Definition at line 99 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ d1

std::vector<double> line::fluid::petri::PetriMode::d1

row sums of D1, the completion rate out of each phase

Definition at line 100 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ dep

std::function<double(const Matrix<double>&)> line::fluid::petri::PetriMode::dep

Marking-dependent firing multiplier; empty for the unit one.

Definition at line 103 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_theta().

◆ fdep_fun

std::vector<std::function<double(double)> > line::fluid::petri::PetriMode::fdep_fun

Definition at line 128 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ fdep_slot

std::vector<std::size_t> line::fluid::petri::PetriMode::fdep_slot

Fluid rate dependences: level coordinates and the multipliers h(level).

Definition at line 127 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), and line::fluid::petri::petri_theta().

◆ flow_dep_fun

std::vector<std::function<double(const Matrix<double>&)> > line::fluid::petri::PetriMode::flow_dep_fun

Marking-dependent flow multipliers, aligned with flow_slot (an empty function is the unit one), each of the (I x K) marking restricted to the 1-based token places of flow_dep_read (empty: every coordinate).

Definition at line 133 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ flow_dep_read

std::vector<std::vector<std::size_t> > line::fluid::petri::PetriMode::flow_dep_read

Definition at line 134 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ flow_rate

std::vector<double> line::fluid::petri::PetriMode::flow_rate

Definition at line 121 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ flow_slot

std::vector<std::size_t> line::fluid::petri::PetriMode::flow_slot

Fluid flows of the mode: level coordinates and signed rates per running server.

Definition at line 120 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ guard_sgn

std::vector<int> line::fluid::petri::PetriMode::guard_sgn

◆ guard_slot

std::vector<std::size_t> line::fluid::petri::PetriMode::guard_slot

Fluid guards: level coordinates, +1 for '>=' and -1 for '<=', and thresholds.

Definition at line 123 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), and line::fluid::petri::petri_theta().

◆ guard_thr

std::vector<double> line::fluid::petri::PetriMode::guard_thr

◆ inh_slot

std::vector<std::size_t> line::fluid::petri::PetriMode::inh_slot

Inhibitor arcs, as state coordinates and their thresholds.

Definition at line 94 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), and line::fluid::petri::petri_theta().

◆ inh_thr

std::vector<double> line::fluid::petri::PetriMode::inh_thr

Definition at line 95 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_theta().

◆ label

std::string line::fluid::petri::PetriMode::label

◆ mode

std::size_t line::fluid::petri::PetriMode::mode = 0

mode index within it, 0-based

Definition at line 86 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ node

std::size_t line::fluid::petri::PetriMode::node = 0

1-based node index of the transition

Definition at line 85 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ nph

std::size_t line::fluid::petri::PetriMode::nph = 1

phases of the firing process; 0 for an immediate mode

Definition at line 98 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), line::fluid::petri::petri_jacobian(), and line::fluid::petri::petri_rates().

◆ pie

std::vector<double> line::fluid::petri::PetriMode::pie

entry distribution over the phases

Definition at line 101 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ prio

int line::fluid::petri::PetriMode::prio = 1

Definition at line 104 of file fluid_petri_terms.h.

◆ timing

lang::TimingStrategy line::fluid::petri::PetriMode::timing = lang::TimingStrategy::TIMED

Definition at line 87 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms().

◆ weight

double line::fluid::petri::PetriMode::weight = 1.0

Definition at line 105 of file fluid_petri_terms.h.

◆ zblk

std::vector<std::size_t> line::fluid::petri::PetriMode::zblk

The phase coordinates of a multi-phase mode; empty otherwise.

Definition at line 109 of file fluid_petri_terms.h.

Referenced by line::fluid::petri::petri_build_terms(), line::fluid::petri::petri_jacobian(), and line::fluid::petri::petri_rates().


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