GridLAB-D Core


Detailed Description

The GridLAB-D core implements all the major functional components of the GridLAD system.

Todo:
Rewrite model compiler using Yacc, Flex, Bison, etc. (ticket #36)
Todo:
More granular access control for class variables (ticket #38)
Todo:
Need sub-second resolution in convert_from_timestamp (ticket #41)
Todo:
Improvements to find.c:
- Implement regex patterns
- Trim whitespace in search expression (ticket #42)
Todo:
Check macros in gridlabd.h:
- Some may be unused?
- Some may be causing problems with compilation on Linux (ticket #43)
Todo:
Refine object allocation and implement object CPU affinity so that memory is located "near" processor; crucial for Altix performance (ticket #44)
Todo:
Add support in setvar and getvar for more than doubles (ticket #46)


Modules

 Aggregation of object properties
 Aggregation functions support calculations over properties of multiple objects.
 Classes of objects
 GridLAB-D modules implement classes of objects, which are supported by the functions in this module.
 Command-line arguments
 The command-line argument processing module processes arguments as they are encountered.
 Complex numbers
 The complex number implementation is specifically designed to use in power systems calculations.
 Conversion of properties
 The convert module handles conversion object properties and strings.
 Debugger
 The debugger supports two methods of interrupting the simulation.
 Environment control
 Environment function manage the interface with the user environment.
 Exception handling
 Exception handlers are created and caught using the exception module.
 Main execution loop
 The main execution loop sets up the main simulation, initializes the objects, and runs the simulation until it either settles to equilibrium or runs into a problem.
 Searching for objects
 Global variables
 The GridLAB-D core maintains a group of global variables that can be accessed by both core functions and runtime modules using the core API.
 Indexing routines
 Indexing routines allow objects to be organized in ranks.
 Mapping tools
 KML mapping files may be extracted using using the --kml=file command line option.
 Version, Copyright, License, etc.
 The branch version are named after 500kV busses on the WECC system.
 List management routines
 Manage lists of objects in the rank indexes.
 GLM file loader
 Load objects represent static loads and export both voltages and current.
 Main module
 The main module handles application entry and exit.
 Matlab environment
 The Matlab environment is selected by the --environment matlab command line argument, or by setting the global_environment global variable.
 Objects
 Object functions support object operations.
 Output functions
 Implements functions that send output to the current environment's console, error stream, and test result string using printf style args.
 Platform
 This header file handles platform specific macros.
 Random number generators
 Generate random numbers according to various distributions.
 Time management
 Time function handle time calculations and daylight saving time (DST).
 Unit management
 The unit manager converts values from one unit to another.


GridLAB-DTM Version 1.0
An open-source project initiated by the US Department of Energy