Glossary

Aerie

A suite of planning and scheduling, modeling and simulation, constraint checking and sequencing tools.

Activity Type

A named action or behavior of the system.

Cell

A container for a piece of simulation state. To guarantee correctness of simulation results, all mutable state must be tracked in cells.

Daemon Task

A Task that is spawned during mission model initialization, meaning it starts execution at the beginning of simulation rather than as a result of a Directive.

Directive

A request to instantiate a certain Activity Type with certain arguments at a certain time.

Effect

An action that changes the value of a cell. Effects are defined as functions from an old value to a new value.

Effect Model

The body of the function describing an activity’s behavior during simulation.

Merlin

The modeling and simulation component of Aerie.

Mission model

A description of a system that Aerie understands. This primarily includes definitions of Activity Types and Resources.

Profile

A piece-wise defined function from time to a value

Profile Segment

A single piece of the Profile with a start and end time. Profile segments within one profile must be contiguous and non-overlapping.

Resource

A

Span

A component of simulation results representing a start time, a duration, an optional parent, and some metadata.

Validation

A predicate on the arguments to an activity. Violation of a predicate does not preclude execution of the activity, but rather serves as a warning.

Other terminology:

There are some general terms that Aerie uses very specifically, that may not be worth a glossary entry, but do deserve some attention.

Parameters vs Arguments

Take as an example the add1 function below:

def add1(x):
    return x + 1

and this invocation of the add function:

add1(5)

In this example, x is a parameter of the add1 function, while 5 is an argument to the invocation of the add1 function.

Register vs Registrar

A Register is an analogy to a processor register, which can store a single value at a time, and supports the get operation to read that value, and the set operation to overwrite the entire value.

A Registrar means a “record-keeper” - you can “register” (verb) something with a registrar. In pymerlin, the registrar is an object provided to the mission model at initialization time, which the model can use to register its cells and resources.