SAInt Architecture and User Interfaces

The architectural diagram of SAInt outlines how various components interact within the application (Figure 1). SAInt operates as an on-premise desktop application using .NET technology (https://learn.microsoft.com/en-us/dotnet) and allows interaction through both a Graphical User Interface (GUI) and an Application Programming Interface (API). Core libraries such as SAInt-Core.dll and SAInt-Feed.dll manage backend processes and data manipulation. Furthermore, SAInt integrates with commercial and open-source map services, ensuring you have comprehensive geographical data at your fingertips.

architecture 01
Figure 1. Software architecture.

One of SAInt’s key features is its integration with external services for historical wind and solar weather resource data. This integration leverages databases such as the National Renewable Energy Laboratory’s (NREL) National Solar Radiation Database (NSRDB) and WIND Toolkit, alongside the European Commission’s Photovoltaic Geographical Information System (PVGIS). These resources are crucial for accurate and detailed energy planning, enabling users to incorporate real-world weather data into their scenario analyses.

To ensure seamless license management, SAInt employs the CodeMeter suite, a software protection and license management tool from WIBU-SYSTEMS AG (https://www.wibu.com). This suite allows users to manage their licenses through applications like CodeMeter Control Center and WebAdmin. Services such as CodeMeter License Server and CodeMeter Time Server help maintain license validity and synchronization.

1. SAInt GUI

SAInt’s GUI contains three main controls: ribbon bar, dock panel, and status bar. The GUI has many windows that serve different purposes and can be rearranged based on the preferences of the user. Figure 2 shows a snapshot of the GUI. Windows in the GUI include:

  • Project Explorer: The project explorer gives an overview of the model files available in the project directory. The file types include network, scenario, state, solution, profile, label, vertex, log, and script.

  • Model Explorer: The model explorer shows the hierarchical overview of the different objects in the network model grouped by different object types (e.g., subs, zones, groups, nodes, branches, externals).

  • Property Editor: The property editor allows the user to edit the properties of the network, scenario, and their child objects. The property editor filters the list of properties depending on the loaded scenario type.

  • Map Window: The map window shows a topological representation of the network, visualizes differences across a network (e.g., properties), and shows animations of solutions obtained from executing a scenario.

  • Workspace: The workspace lists the predefined and user-defined functions and variables accessible from the command window and script editor of the GUI. The list includes the name, syntax, and description of the functions.

  • Chart Window: The chart window displays plots for one or multiple properties of network objects. The plots can either be derived from the results of a simulation or input parameters.

  • Command Window: The command window is a control that uses pre-defined functions in an IronPython environment to perform various tasks such as mark objects, create plots, tables, evaluate properties. It uses the IntelliSense feature to guide the user while entering the commands.

  • Script Editor: The script editor allows the user to create and save customized codes using IronPython functionalities. Similar to the command window, it uses the IntelliSense feature to guide the user while entering the commands.

  • Log Window: The log window is the primary source of information for the GUI operations. It displays the log for network and scenario operations including the scenario execution logs.

architecture 02
Figure 2. Example of SAInt-GUI depicting the European Electricity Zonal model in the map window.

2. SAInt-API

SAInt-API is a powerful tool to automate the manual processes in the GUI. It gives access to multiple network and scenario data processing and execution functions. The API can be used with Python, Matlab, C++, and other programming languages. The API offers more than 100 callable functions to import, open, save, and export network, scenario and solution files. It offers the possibility to serialize or parallelize the execution of multiple scenarios.