Fix regression tests (#979)
Initialize `P_max_elmts` if not set by user.
This commit is contained in:
		
							parent
							
								
									8b7e65a231
								
							
						
					
					
						commit
						dcd6468ae4
					
				| @ -61,7 +61,7 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|    HYPRE_Int  *num_relax_sweeps = (mgr_data -> num_relax_sweeps); | ||||
|    HYPRE_Int num_interp_sweeps = (mgr_data -> num_interp_sweeps); | ||||
|    HYPRE_Int num_restrict_sweeps = (mgr_data -> num_interp_sweeps); | ||||
|    HYPRE_Int *max_elmts = (mgr_data -> P_max_elmts); | ||||
|    HYPRE_Int *P_max_elmts = (mgr_data -> P_max_elmts); | ||||
|    HYPRE_Real   max_row_sum = (mgr_data -> max_row_sum); | ||||
|    HYPRE_Real   strong_threshold = (mgr_data -> strong_threshold); | ||||
|    HYPRE_Real   trunc_factor = (mgr_data -> trunc_factor); | ||||
| @ -639,6 +639,10 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|    { | ||||
|       l1_norms = hypre_CTAlloc(hypre_Vector*, max_num_coarse_levels, HYPRE_MEMORY_HOST); | ||||
|    } | ||||
|    if (P_max_elmts == NULL) | ||||
|    { | ||||
|       P_max_elmts = hypre_CTAlloc(HYPRE_Int, max_num_coarse_levels, HYPRE_MEMORY_HOST); | ||||
|    } | ||||
| 
 | ||||
|    /* Set default for Frelax_method if not set already -- Supports deprecated function */ | ||||
|    /*
 | ||||
| @ -791,14 +795,15 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|    } | ||||
| 
 | ||||
|    /* set pointers to mgr data */ | ||||
|    (mgr_data -> A_array) = A_array; | ||||
|    (mgr_data -> B_array) = B_array; | ||||
|    (mgr_data -> P_array) = P_array; | ||||
|    (mgr_data -> RT_array) = RT_array; | ||||
|    (mgr_data -> A_array)         = A_array; | ||||
|    (mgr_data -> B_array)         = B_array; | ||||
|    (mgr_data -> P_array)         = P_array; | ||||
|    (mgr_data -> RT_array)        = RT_array; | ||||
|    (mgr_data -> CF_marker_array) = CF_marker_array; | ||||
|    (mgr_data -> l1_norms) = l1_norms; | ||||
|    (mgr_data -> l1_norms)        = l1_norms; | ||||
|    (mgr_data -> P_max_elmts)     = P_max_elmts; | ||||
| #if defined(HYPRE_USING_GPU) | ||||
|    (mgr_data -> P_FF_array) = P_FF_array; | ||||
|    (mgr_data -> P_FF_array)      = P_FF_array; | ||||
| #endif | ||||
| 
 | ||||
|    /* Set up solution and rhs arrays */ | ||||
| @ -1165,7 +1170,7 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|          } | ||||
|          hypre_MGRBuildInterp(A_array[lev], A_FF, A_FC, CF_marker, Wp, | ||||
|                               coarse_pnts_global, 1, dof_func_buff_data, | ||||
|                               debug_flag, trunc_factor, max_elmts[lev], | ||||
|                               debug_flag, trunc_factor, P_max_elmts[lev], | ||||
|                               block_jacobi_bsize, &P, interp_type[lev], | ||||
|                               num_interp_sweeps); | ||||
|       } | ||||
| @ -1173,7 +1178,7 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|       { | ||||
|          hypre_MGRBuildInterp(A_array[lev], A_FF, A_FC, CF_marker, S, | ||||
|                               coarse_pnts_global, 1, dof_func_buff_data, | ||||
|                               debug_flag, trunc_factor, max_elmts[lev], | ||||
|                               debug_flag, trunc_factor, P_max_elmts[lev], | ||||
|                               block_jacobi_bsize, &P, interp_type[lev], | ||||
|                               num_interp_sweeps); | ||||
|       } | ||||
| @ -1338,9 +1343,10 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|             //            if (restrict_type[lev] > 0)
 | ||||
|             { | ||||
|                hypre_MGRBuildRestrict(A_array[lev], A_FF, A_FC, CF_marker, coarse_pnts_global, 1, | ||||
|                                       dof_func_buff_data, debug_flag, trunc_factor, max_elmts[lev], | ||||
|                                       strong_threshold, max_row_sum, block_num_f_points, &RT, | ||||
|                                       restrict_type[lev], num_restrict_sweeps); | ||||
|                                       dof_func_buff_data, debug_flag, trunc_factor, | ||||
|                                       P_max_elmts[lev], strong_threshold, max_row_sum, | ||||
|                                       block_num_f_points, &RT, restrict_type[lev], | ||||
|                                       num_restrict_sweeps); | ||||
| 
 | ||||
|                RT_array[lev] = RT; | ||||
|             } | ||||
| @ -1378,7 +1384,7 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|                                                      block_num_f_points, | ||||
|                                                      set_c_points_method, | ||||
|                                                      mgr_coarse_grid_method[lev], | ||||
|                                                      max_elmts[lev], CF_marker, &RAP_ptr); | ||||
|                                                      P_max_elmts[lev], CF_marker, &RAP_ptr); | ||||
|             } | ||||
| 
 | ||||
|             if (interp_type[lev] == 12) | ||||
| @ -1411,7 +1417,7 @@ hypre_MGRSetup( void               *mgr_vdata, | ||||
|             } | ||||
|             hypre_MGRBuildRestrict(A_array[lev], A_FF, A_FC, CF_marker, | ||||
|                                    coarse_pnts_global, 1, dof_func_buff_data, | ||||
|                                    debug_flag, trunc_factor, max_elmts[lev], | ||||
|                                    debug_flag, trunc_factor, P_max_elmts[lev], | ||||
|                                    strong_threshold, max_row_sum, | ||||
|                                    block_jacobi_bsize, &RT, restrict_type[lev], | ||||
|                                    num_restrict_sweeps); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Victor A. P. Magri
						Victor A. P. Magri