Spec:Initialization

Initialization - Model initialization

S1

 * Creation order : Prior to objects shall be initialized in the order in which they are created.  As of  objects shall be initialized in the order in which they are created only when the init_sequence global variable is set to CREATION.  If any object init returns 0, the entire model initialization sequence shall be regarding as having failed and the simulation shall not start.  If all object init functions return 1, the initialization shall be regarded as successful and the simulation shall proceed with the main event loop. Any other return value is considered an error. (R1).

S2

 * Deferred initialization : As of, when init_sequence is set to DEFERRED objects shall be initialized in the order in which they are created, provided that when init call returns the value 2 indicating that deferred initialization is desired, the initialization sequence shall call init again after all other object init calls are done. This process shall be repeated for all deferred objects until all object init calls return the value 1. This process shall be repeated no more than init_max_defer times for any given object (R2).

S3

 * Rank initialization : As of, when init_sequence is set to BOTTOMUP or TOPDOWN, objects shall be initialized in the bottom-up or top-down rank order, respectively, with consideration given to deferred return values from init as described in S2 (R3)

S4

 * Object locking : As of, while init is running, the object shall be locked and the OF_LOCKED flags shall be set (R4).

S5

 * Deferred flag : As of, when the object initialization is deferred, the object flag OF_DEFERRED shall be set (R5).

S6

 * Automatic deferral : As of, when init_sequence is set to AUTO automatic object deferral shall be enabled (R6).

S7

 * Automatic deferral class override : As of, the flag PC_NODEFERRAL shall be used in the class_register call to indicate that objects of the class should not be included in any automatic deferral determination (R7).


 * Automatic deferral object override : As of, the flag PF_DEFER shall be used in the property_register call to indicate that objects of the class should be included in any automatic deferral determination when PC_NODEFERRAL is specified, or should not be included when PC_NODEFERRAL is not specified (R7).

S8

 * Initialization time : As of, the global clock and all object clocks shall be set to the starttime immediately after the objects are created and before the GLM values are set (R8).

S9

 * Initialization state : As of, all objects will have the OF_INIT flag set until after initialization is successfully completed (R9).