Skip to content

Implement IncreaseQuality() in the ReSolve interface #3

Description

@tamar-dewilde

Summary

Implement IncreaseQuality() in the ReSolve solver interface by increasing the KLU pivot tolerance and rebuilding the factorization.

Rationale

Ipopt calls IncreaseQuality() when a more stable linear solve is needed. The Ipopt ReSolve interface currently returns false because the factorization and refactorization update path has not been implemented.

Description

Add a maximum pivot tolerance and increase the current tolerance when IncreaseQuality() is called.

Perform a new full KLU factorization using the updated tolerance. For RF, RF-FGMRES, and GLU, rebuild the refactorization solver using the new KLU factors and permutations.

The HIP RF cleanup needed for repeated setup is addressed in ORNL/ReSolve#460.

Additional information

The relevant code is in IncreaseQuality() and MultiSolve() in IpReSolveSolverInterface.cpp.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions