-
Notifications
You must be signed in to change notification settings - Fork 17
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.