Skip to content

Code Organization

Mike Wagner edited this page Feb 23, 2018 · 2 revisions

Code Organization

The code required to run SolarPILOT is found in three repositories -- SolarPILOT, SSC, and SolTrace.

SolarPILOT contains code for the graphical interface (app) that calls the computation engine. Source files prefixed with GUI_ define individual interface pages and methods directly relating to displaying or calculating data on each page. Source files for plotting and various interface widgets are also included. The interface manages LK scripting capabilities within the scripting.cpp file. The interface also manages calls to SolTrace's coretrace engine, which relies on multi-threading capabilities.

The makefiles in SolarPILOT directly build code from SSC. Therefore, the Makefile-solarpilot script in /path/to/ssc/build_linux is not used by SolarPILOT, nor is any SolarPILOT module built by SSC referenced by this project. They are built and located in separate directories, having different build configurations for each project.

SSC contains the core of the calculation and optimization capabilities for SolarPILOT. Most of the calculation code is found in the /path/to/ssc/solarpilot/ directory. This code is used by both the SolarPILOT app and by SSC as part of the SAM and SDKTool software. Any changes made to the solarpilot library in SSC must be handled through the SSC repository. SolarPILOT is dependent on the nlopt and shared libraries that are also located in SSC.

SolTrace contains the Monte-Carlo ray tracing calculation engine that is used by SolarPILOT, and separately, by the SolTrace app. The SolTrace repository includes builds for app and coretrace. The coretrace build provides the necessary functionality for SolarPILOT, while the app build provides SolTrace as a stand-alone desktop application. Note that SolarPILOT's integration with coretrace is unique to the SolarPILOT app, and ray tracing functionality is not currently included in SAM's use of SolarPILOT.

Clone this wiki locally