Class PetriImmediate

java.lang.Object
jline.solvers.fluid.petri.PetriImmediate

public final class PetriImmediate extends Object
The active set of the IMMEDIATE transitions, and the equations that pin their flows.

An immediate transition has no rate: its fluid limit is a FLOW, an algebraic unknown pinned by the constraint that its binding input place holds no mass,

    phi_j >= 0,   x_b = 0 for the coordinate b that binds mode j
with the GSPN conflict rule supplying the extra equation when two modes drain one place: phi_j*weight_l = phi_l*weight_j among the enabled modes of highest firing priority, and phi = 0 below it.

THE COUNT IS SQUARE BY CONSTRUCTION: V pins plus (F-V) ratio rows is F equations for F flows.

  • Field Details

    • PIN

      public static final int PIN
      Kinds of pinning equation.
      See Also:
    • RATIO

      public static final int RATIO
      See Also:
    • ZERO

      public static final int ZERO
      See Also:
    • n

      public int n
      Number of immediate modes.
    • active

      public boolean[] active
      Which of them are currently firing.
    • bind

      public int[] bind
      The input coordinate each active mode is bound by; -1 when inactive.
    • pins

      public int[] pins
      The distinct bound coordinates, ascending.
    • rows

      public List<PetriImmediate.Row> rows
      The equations.
  • Constructor Details

    • PetriImmediate

      public PetriImmediate()
  • Method Details

    • immediate

      public static PetriImmediate immediate(PetriTerms t, double[] x, PetriImmediate imm)
      Assign bindings and build the pinning equations at the marking x.
      Parameters:
      t - the assembled terms
      x - the current state
      imm - the previous immediate state, or null to start one
      Returns:
      the immediate state, mutated in place when one was given