Skip to content

MA27 interface#115

Merged
cvanaret merged 12 commits intocvanaret:mainfrom
worc4021:feature/ma27
Nov 30, 2024
Merged

MA27 interface#115
cvanaret merged 12 commits intocvanaret:mainfrom
worc4021:feature/ma27

Conversation

@worc4021
Copy link
Contributor

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 of A from the factorisation, but in principle it would be possible to pass different values. Not sure if this is done though.

@cvanaret cvanaret merged commit 9fb6506 into cvanaret:main Nov 30, 2024
@cvanaret
Copy link
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.

@worc4021 worc4021 deleted the feature/ma27 branch November 30, 2024 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants