Merged
Conversation
…d MA27 simultaneously
cvanaret
approved these changes
Nov 30, 2024
Owner
|
Thanks @worc4021! I will investigate the issue you described with the byrd preset and hs015. We may have to change some settings to better estimate the inertia. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a ma27 linear solver interface. I expect that the existing build should already work with this.
A mechanism for resizing the work arrays used by ma27 is provided. A unit test equivalent to the MA57 is also provided and passes.
However, I have observed that when attempting to solve hs15 with the byrd preset the problem is repeatedly rank deficient and eventually the nlp fails due to inertia correction becoming unstable. Unclear, what happens there. The ipopt preset is happy with it and other test problems I tried didn't trigger this behaviour. One cause for this might be that ma27 and ma57 differ in an important aspect: ma27 stores the factors in the array passed with the values of A whereas ma57 has a separate store for it. Hence, in the existing ma57 interface it is possible to pass
matrix.data_pointer()directly to the factorisation and solver routine, whereas in ma27 we have to make a copy and keep it for subsequent calls. The documentation states that the solve should not be called with different values ofAfrom the factorisation, but in principle it would be possible to pass different values. Not sure if this is done though.