diff --git a/src/parcsr_ls/par_amg_setup.c b/src/parcsr_ls/par_amg_setup.c index beedb81fb..d6b0ed1b2 100644 --- a/src/parcsr_ls/par_amg_setup.c +++ b/src/parcsr_ls/par_amg_setup.c @@ -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"); diff --git a/src/parcsr_ls/par_fsai_setup.c b/src/parcsr_ls/par_fsai_setup.c index 9fa4ad1cd..4bc9b1da6 100644 --- a/src/parcsr_ls/par_fsai_setup.c +++ b/src/parcsr_ls/par_fsai_setup.c @@ -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; diff --git a/src/parcsr_ls/par_fsai_solve.c b/src/parcsr_ls/par_fsai_solve.c index 5c3deeca6..a371834cf 100644 --- a/src/parcsr_ls/par_fsai_solve.c +++ b/src/parcsr_ls/par_fsai_solve.c @@ -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);