-
Notifications
You must be signed in to change notification settings - Fork 44
Sparse matrix error: validation cases #1118
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
Conversation
Signed-off-by: Santiago Figueroa Manrique <figueroa1395@gmail.com>
Signed-off-by: Santiago Figueroa Manrique <figueroa1395@gmail.com>
@figueroa1395 why is this a bug? We get sparse matrix error because we do not have sufficient condition check for observability in meshed grids. So the pivot perturbation is not enabled. |
Even if we hack-force the perturbation from the observability, the pivot is still not triggered and we continue to have In summary, the pivot is too large to be considered for perturbation, but it is too small so it triggers Let's have an offline discussion about this. |
Some idea to fix this issue: Record the actual possible ill-conditioned rows in the observability checkCurrently we only record if the whole matrix could be ill-conditioned if one of the rows is ill-conditioned: Lines 83 to 85 in 7615d7e
We can choose to record a list of rows which can be ill-conditioned. In LU solver, change the matrix norm to full norm including diagonalWe now exclude diagonal for calculating matrix norm. To avoid some rows are wrongly perturbed. But now we can use two step verification. Lines 539 to 543 in 6c9605a
Two step verification of pivot perturbationIn Pivot perturbation judgment here: Lines 99 to 100 in 6c9605a
Only trigger this if the row is actually one of the rows which are determined to be possibly ill-conditioned. |
Signed-off-by: Santiago Figueroa Manrique <figueroa1395@gmail.com>
Signed-off-by: Santiago Figueroa Manrique <figueroa1395@gmail.com>
|
This PR includes validation test cases that trigger a
SparseMatrixError
for a simple meshed grid.