The FLAMES Kernel is a collection of services and primary classes that are intended to provide a powerful, common foundation for many different types of simulations and to dramatically reduce the amount of software development required to create a new simulation. Through the religious employment of object-oriented programming principles and techniques, the Kernel is independent of the application-specific portions of a simulation and does not require modification as new simulations are developed. All application-specific portions of a simulation reside outside the Kernel in software contained in either models or custom services.
This section of Ternion's Web site describes some of the most important services contained in the FLAMES Kernel. The section on FLAMES Models provides information on models and on the primary classes defined by the Kernel .
|
Service |
Description |
|
FDB |
Stands for FLAMES Database. FDB is a service that manages the data in the FLAMES scenario database, the place where the data that defines all FLAMES scenarios is stored. FDB’s support for multiple users, user groups, and detailed access privileges allow FLAMES applications such a FORGE to greatly simplify the task of managing multiple, large scenarios and of sharing scenario data among multiple users. FDB greatly simplifies model development by handling nearly all object parameter storage and retrieval operations automatically. In addition, FDB provides automatic data conversion when the parameters defined by an object are added to or otherwise altered thereby allowing the scenario database to be independent of the version of the objects. |
|
Jewel |
Jewel is the FLAMES graphical user interface (GUI) management subsystem. The GUI of all FLAMES applications, including the GUI required for each model linked into an application, is provided by Jewel. Jewel greatly simplifies model development by handling nearly all graphical parameter editing operations automatically. Each model class is allowed to specify and use its own graphical user interface with almost no programming required on the part of the model developer. |
|
FXXXManager |
A set of services that manage the instances of models (model objects) that belong to a specific FLAMES primary model class. There is one manager service for each primary model class. Manager services control all object creation and destruction and all database, user interface, configuration, and memory management operations associated with model objects. Managers significantly reduce the number of lines of code required to implement a FLAMES model and allow model developers to focus their efforts on algorithm and behavioral software development. |
|
FUnitManager and FUnitExecutive
|
Together, these services manage all the low-level processing associated with Units in a FLAMES scenario, including Unit database and user interface operations, Unit creation and destruction, and attaching models to Units as specified by user inputs. FUnitExecutive also invokes the Move method of the platforms attached to each Unit at a user-specified time-step and maintains a list of all the Units in the scenario along with their current spatial state, a list that is frequently accessed by models to support their processing. |
|
FCalendar |
Scenario execution in FLAMES is, at its lowest level, event based. FCalendar is the discrete event execution service that manages scenario execution. Although this service is available to allow models to schedule their own events, very few models ever access this service directly. Most often, FCalendar is used to support the processing of other Kernel services which in turn invoke the methods of model classes at the appropriate times. |
|
FSE |
Stands for the FLAMES Script Engine. FSE is responsible for parsing and processing all Script statements. Script is a textual language used to specify non-parametric input to FLAMES applications and contributes greatly to the usability of FLAMES applications and the speed with which FLAMES scenarios can be constructed. Script is used primarily to define the composition of the Units in a scenario by specifying the models that will be attached to each Unit and a Unit’s relationship other Units. Script is also used to provide inputs and commands to models during the course of a scenario thereby controlling the behavior of the Unit to which the models are attached. Script can also be provided to and processed by FORGE or FIRE (with the Interactive Server Option) and thereby control the composition and behavior of Units interactively. |
|
FEarth |
Models the shape of the earth as specified by user inputs, including a pure spherical earth and the standard WGS earth models. FEarth is used to get mean sea-level elevation at a specified location and to convert from Cartesian to geocentric/geodetic coordinates. |
|
FRecorder |
Allows the contents of any data structure to be written quickly and easily to results data files that are compatible with FLARETM, FLAMES' flexible and powerful post-processing system based on an extended subset of the industry standard Structured Query Language (SQL). The existence, name, and location of results data files are controlled by user inputs. |
|
FXXXMem |
A set of several memory managers that satisfy all dynamic memory allocation requirements of FLAMES applications. Nearly all memory used by properly implemented FLAMES models is dynamically allocated, which accounts, in part, for the ability of FLAMES applications to simulate scenarios of any size and configuration (limited only by available host memory). All such memory must be allocated by FLAMES memory managers. These managers are generally more efficient than default operating system memory allocation routines and contain more error checking capability. |
|
FXXXMH |
A set of several message handling services used by the Kernel and models to report textual status and error messages. These services direct the messages to the proper output device, as is appropriate for the application, and will be enhanced to give FLAMES users detailed control over message handling operations. |