Update sanity checks (#903)

This fixes issue #883
This commit is contained in:
Victor A. P. Magri 2023-05-10 18:45:16 -04:00 committed by GitHub
parent 6ac5d7d0c8
commit 412a6b1a48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 8 deletions

View File

@ -3500,7 +3500,7 @@ hypre_BoomerAMGSetup( void *amg_vdata,
if ((smooth_type == 6 || smooth_type == 16) && smooth_num_levels > j)
{
/* Sanity check */
if (hypre_ParVectorNumVectors(f) > 1)
if (num_vectors > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC,
"Schwarz smoothing doesn't support multicomponent vectors");
@ -3551,7 +3551,7 @@ hypre_BoomerAMGSetup( void *amg_vdata,
return hypre_error_flag;
#endif
if (hypre_ParVectorNumVectors(f) > 1)
if (num_vectors > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC,
"Euclid smoothing doesn't support multicomponent vectors");
@ -3580,7 +3580,7 @@ hypre_BoomerAMGSetup( void *amg_vdata,
else if ((smooth_type == 4 || smooth_type == 14) && smooth_num_levels > j)
{
/* Sanity check */
if (hypre_ParVectorNumVectors(f) > 1)
if (num_vectors > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC,
"FSAI smoothing doesn't support multicomponent vectors");
@ -3611,7 +3611,7 @@ hypre_BoomerAMGSetup( void *amg_vdata,
else if ((smooth_type == 5 || smooth_type == 15) && smooth_num_levels > j)
{
/* Sanity check */
if (hypre_ParVectorNumVectors(f) > 1)
if (num_vectors > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC,
"ILU smoothing doesn't support multicomponent vectors");
@ -3645,7 +3645,7 @@ hypre_BoomerAMGSetup( void *amg_vdata,
return hypre_error_flag;
#endif
if (hypre_ParVectorNumVectors(f) > 1)
if (num_vectors > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC,
"ParaSails smoothing doesn't support multicomponent vectors");
@ -3670,7 +3670,7 @@ hypre_BoomerAMGSetup( void *amg_vdata,
return hypre_error_flag;
#endif
if (hypre_ParVectorNumVectors(f) > 1)
if (num_vectors > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC,
"Pilut smoothing doesn't support multicomponent vectors");

View File

@ -953,7 +953,7 @@ hypre_FSAISetup( void *fsai_vdata,
HYPRE_Int max_nonzeros_diag_G; /* Max. number of nonzeros in G_diag */
/* Sanity check */
if (hypre_ParVectorNumVectors(f) > 1)
if (f && hypre_ParVectorNumVectors(f) > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC, "FSAI doesn't support multicomponent vectors");
return hypre_error_flag;

View File

@ -31,7 +31,7 @@ hypre_FSAISolve( void *fsai_vdata,
hypre_ParCSRMatrix *GT = hypre_ParFSAIDataGTmat(fsai_data);
hypre_ParVector *z_work = hypre_ParFSAIDataZWork(fsai_data);
hypre_ParVector *r_work = hypre_ParFSAIDataRWork(fsai_data);
HYPRE_Real tol = hypre_ParFSAIDataTolerance(fsai_data);
HYPRE_Real tol = hypre_ParFSAIDataTolerance(fsai_data);
HYPRE_Int zero_guess = hypre_ParFSAIDataZeroGuess(fsai_data);
HYPRE_Int max_iter = hypre_ParFSAIDataMaxIterations(fsai_data);
HYPRE_Int print_level = hypre_ParFSAIDataPrintLevel(fsai_data);
@ -42,6 +42,13 @@ hypre_FSAISolve( void *fsai_vdata,
HYPRE_Int iter, my_id;
HYPRE_Real old_resnorm, resnorm, rel_resnorm;
/* Sanity check */
if (hypre_ParVectorNumVectors(b) > 1)
{
hypre_error_w_msg(HYPRE_ERROR_GENERIC, "FSAI doesn't support multicomponent vectors");
return hypre_error_flag;
}
HYPRE_ANNOTATE_FUNC_BEGIN;
hypre_MPI_Comm_rank(comm, &my_id);