hypre-space / hypre

Parallel solvers for sparse linear systems featuring multigrid methods.
https://www.llnl.gov/casc/hypre/
Other
678 stars 188 forks source link

2 Stage GS Assertion Failure in Debug #884

Open PaulMullowney opened 1 year ago

PaulMullowney commented 1 year ago

I'm seeing the following assertion failure in the 2-stage GS relaxation. The meta data of Ztemp vector is a little messed up.

[par_relax_device.c, 126] hypre_assert failed: z_vecstride == num_rows naluX: par_relax_device.c:126: HYPRE_Int hypre_BoomerAMGRelaxTwoStageGaussSeidelDevice(hypre_ParCSRMatrix , hypre_ParVector , HYPRE_Real, HYPRE_Real, HYPRE_Real , hypre_ParVector , hypre_ParVector , hypre_ParVector , HYPRE_Int):\ Assertion `0' failed

-Paul

PaulMullowney commented 1 year ago

Also, I think the assertion in csr_spmv_device.c should be modified as follows:

 --git a/src/seq_mv/csr_spmv_device.c b/src/seq_mv/csr_spmv_device.c
index 07a852fb7..3983919e8 100644
--- a/src/seq_mv/csr_spmv_device.c
+++ b/src/seq_mv/csr_spmv_device.c
@@ -413,7 +413,7 @@ hypre_CSRMatrixSpMVDevice( HYPRE_Int        trans,
       hypre_error_w_msg(HYPRE_ERROR_GENERIC, "num_vectors_x != num_vectors_y");
       return hypre_error_flag;
    }
-   hypre_assert(num_rows > 0);
+   hypre_assert(num_rows >= 0);