-
Couldn't load subscription status.
- Fork 1.1k
Add guidance about SDMs to User Guide #2565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: Cliff Hansen <[email protected]>
| +------------------+------------+-----------+-------------------------+ | ||
| | ``chandrupatla`` | iterative | fast | yes | | ||
| +------------------+------------+-----------+-------------------------+ | ||
| | ``lambertw`` | explicit | medium | yes | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In terms of "Guaranteed convergence", I would caution here that lambertw-based solvers can suffer from numerical issues in some regimes. IIRC, this was a main issue that Ken Roberts tried to solve in https://arxiv.org/abs/1504.01964. (A second would be a method that converges faster than lambertw.) See also #1856. Speaking of which, would you be interested in any help getting the LogWright based solvers across the finish line @kandersolar? Review, testing, inter-comparisons, ...?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, the use of "explicit" here is subject to debate, as I wouldn't be surprised if there is an iterative solver hiding underneath scipy's implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fairly sure scipy uses Halley's method under the hood. The point about "explicit" is that the solution of the diode equation is explicit, not that calculation of its value doesn't require an iterative method. Maybe that distinction is unclear in the table headings.
Ken's paper is about avoiding numerical overflow at very large arguments, which can occur in the "v_from_i" calculation. pvlib handles those in a manner similar to Ken's, by solving for log(W(x)) rather than W(x).
docs/sphinx/source/whatsnewfor all changes. Includes link to the GitHub Issue with:issue:`num`or this Pull Request with:pull:`num`. Includes contributor name and/or GitHub username (link with:ghuser:`user`).remote-data) and Milestone are assigned to the Pull Request and linked Issue.Continuing in a broader thrust of developing our user guide section. Previously: