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.

Detailed Description

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

Definition at line 74 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 81 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 87 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 107 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 97 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 89 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 89 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 90 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 93 of file fluid_petri_terms.h.

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

◆ inh_slot

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

Inhibitor arcs, as state coordinates and their thresholds.

Definition at line 84 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 85 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 76 of file fluid_petri_terms.h.

◆ node

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

1-based node index of the transition

Definition at line 75 of file fluid_petri_terms.h.

◆ nph

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

phases of the firing process; 0 for an immediate mode

Definition at line 88 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 91 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 94 of file fluid_petri_terms.h.

◆ timing

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

Definition at line 77 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 95 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 99 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: