-
Notifications
You must be signed in to change notification settings - Fork 41
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
Improve MESA's linesearch #761
Comments
I've run into similar issues with high-mass stellar models with a strong stellar wind.
|
Thanks for sharing this insight, @matthiasfabry as we figure out how to make this more robust -- I'll try out your ideas! We'll want to test new approaches on your strong stellar wind problems as well |
MESA uses a Newton-Raphson scheme with line search to solve for the zero point of a linearized system and find the solution to the stellar structure. This involves inverting a matrix (with the bcyclic solver with pivoting and equilibration) and iteratively updating the solution until errors fall below prescribed tolerances.
See Section 6.3 of https://arxiv.org/abs/1009.1622
It's a known issue that MESA's solver can struggle in certain parts of parameter space where the system is stiff.
@Debraheem created a(/another) reproducer in #753 where @Debraheem and @pmocz are investigating precisely why the solver fails.
So far, we've found that when things break down the Jacobian has high condition number (>10^15), but the bcyclic solver is still able to solve the system with errors of O(10^-11).
There are indications the problem is in the line search algorithm:
star/private/star_solver.f90: subroutine adjust_correction
The function being minimized is oscillatory and the line search is not able to take the right sized steps to find the minimum. At present, the line research uses some heuristics and hard-coded parameters.
So an open research question is to improve the robustness of the linesearch.
The text was updated successfully, but these errors were encountered: