From GridLAB-D Wiki
Approval item: REQUIREMENT REVIEW NEEDED
Initialization - Model initialization
- Creation order
- Prior to Hassayampa (Version 3.0) all objects shall be initialized in the order in which they are created.
- Deferred initialization
- Prior to Hassayampa (Version 3.0) objects shall be allowed to defer initialization to the first pre-commit or presync, sync, or postsync call, as appropriate.
- As of Hassayampa (Version 3.0), objects shall be allowed to request to defer initialization to another initialization pass by returning the value 2 from the class init() function. This feature shall be enabled by default and the user shall be allowed to suppress it using a global variable.
- Rank initialization
- As of Hassayampa (Version 3.0) the user shall be able to specify top-down or bottom-up rank ordered initialization using a global variable.
- Object locking
- As of Hassayampa (Version 3.0) during the init() call to an object, the object flag OF_LOCKED shall be set.
- Deferred flag
- As of Hassayampa (Version 3.0) when init() indicates that deferred initialization is desired, the OF_DEFERRED flag shall be set.
- Automatic deferral
- As of Hassayampa (Version 3.0) automatically deferral shall be enabled when by controlling a global variable and when enabled, objects shall be automatically deferred when either the parent object or objects which are referred to by object properties are not yet initialized.
- Automatic deferral override
- As of Hassayampa (Version 3.0) modelers shall be permitted to flag a class to disable automatic dependency checking using the PC_NODEFERRAL flag and identify specific properties of class to be included or excluded from dependency checking using the PF_DEFER.
- Initialization time
- As of Hassayampa (Version 3.0) the clock shall be set to the start time prior to object initialization.
- Initialization state
- As of Hassayampa (Version 3.0) an object flag shall be set to indicate that an object has been successfully initialized using the OF_INIT flag.