Runtime scales poorly with n_pvrows
Opened this issue · 0 comments
Originally posted in SunPower/pvfactors#134:
Oftentimes it is desirable to neglect edge effects to model a row in the interior of a large array. Unfortunately, it seems that the runtime scaling with n_pvrows
is quite bad -- I'm having trouble pinning down the degree of the asymptotic polynomial complexity (if it even is polynomial, might be factorial?), but it's certainly not linear or even quadratic:
The good news is that going all the way to n_pvrows > 30
is overkill for making edge effects negligible -- n_pvrows=11
seems pretty good, at least for this array geometry:
The bad news is that n_pvrows=11
is still an order of magnitude slower than n_pvrows=3
, the current default in the pvlib wrapper function. The code for the above plots is available here: https://gist.github.com/kanderso-nrel/e88e3f7389b9d144a546dbe5651dfe1e
I've not looked into how we might go about improving this situation. If I had to guess, it would require a pretty substantial refactor, if it's possible at all. It would be a pleasant surprise if that guess is incorrect :) But even if it can't be fixed, I think it's useful to have an issue documenting this effect.