-
Notifications
You must be signed in to change notification settings - Fork 2
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
add LinSolverDirectLUSOL
, with initial support for solving Ax = rhs
#153
Conversation
superwhiskers
commented
Jun 10, 2024
- adds a function for expanding symmetric matrices only stored as their half
- adds a function for extracting coordinates of nonzeroes from matrices
- documents a deficiency in the Csc class
- modifies the build system to compile fortran code used in LUSOL
- fixes some additional issues made in using index_type/real_type pervasively
- adds a method to the logger class to extract the log level
- adds tests on symmetric matrix expansion
- adds a function for expanding symmetric matrices only stored as their half - adds a function for extracting coordinates of nonzeroes from matrices - documents a deficiency in the Csc class - modifies the build system to compile fortran code used in LUSOL - fixes some additional issues made in using index_type/real_type pervasively - adds a method to the logger class to extract the log level - adds tests on symmetric matrix expansion
@superwhiskers, please create a separate issue rather than adding comments to the code. |
It seems that changes to CMake caused GPU builds to break. An example error message looks like:
I'll investigate more. |
- adjust index type precision to 32 bits - add dummy implementations of `Sparse::expand()` and `Sparse::elements()` to `Csc` - move scratch space allocation, among other things from `LinSolverDirectLUSOL::setup(...)` to `LinSolverDirectLUSOL::analyze()` and drop input matrix conversion to triplet format, instead assuming it is already correctly formatted
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.
Great work! Needs some changes to put it in line with the rest of the Re::Solve code but nothing major.
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.
To manage the scope of this PR I suggest moving expand()
function into a separate branch and adding this functionality through a separate pull request once we have functioning device implementation in addition to the current host implementation. See #155.
The symmetric matrix expansion to a full square matrix is not essential for LUSOL implementation. For this PR it would suffice to return an erro if the matrix is symmetric and not expanded.
@superwhiskers, I tested this branch and everything looks good. I fixed a couple of minor build warnings in PR #156. I will merge this PR after #156 is merged. |
#156 is merged. |