Summary
The system model class SystemModelPowerElectronics receives as the input system components and their connectivity information. Implement functions that compute number of nonzeros and matrix indices in compressed sparse row (CSR) format for the system Jacobian from the component connectivity information.
Rationale
The key step in assembling the system is to compute number of nonzero and to obtain sparsity pattern for the system Jacobian, in our case in CSR format. Once this information is obtained, system Jacobian matrix can be instantiated and allocated.
Description
Implementation is likely to require two loops through components and buses (starting with a loop through buses). The first loop will count number of nonzeros and the starts of matrix rows. With that information, the second loop over all components will collect all column indices in matrix rows. Column indices might need to be sorted in each row, depending on implementation details.
Additional information
Mapping component Jacobian indices to system Jacobian indices is needed but not necessarily in the scope of this issue.
CC @nkoukpaizan