| 1 |
|
|---|
| 2 | #include "HYPRE_parcsr_ls.h"
|
|---|
| 3 |
|
|---|
| 4 | #ifndef hypre_PARCSR_LS_HEADER
|
|---|
| 5 | #define hypre_PARCSR_LS_HEADER
|
|---|
| 6 |
|
|---|
| 7 | #include "utilities.h"
|
|---|
| 8 | #include "krylov.h"
|
|---|
| 9 | #include "seq_mv.h"
|
|---|
| 10 | #include "parcsr_mv.h"
|
|---|
| 11 | #include "par_amg.h"
|
|---|
| 12 |
|
|---|
| 13 | #ifdef __cplusplus
|
|---|
| 14 | extern "C" {
|
|---|
| 15 | #endif
|
|---|
| 16 |
|
|---|
| 17 | typedef struct { int prev; int next; } Link;
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 | /* aux_interp.c */
|
|---|
| 21 | int alt_insert_new_nodes ( hypre_ParCSRCommPkg *comm_pkg , hypre_ParCSRCommPkg *extend_comm_pkg , int *IN_marker , int full_off_procNodes , int *OUT_marker );
|
|---|
| 22 | int big_insert_new_nodes ( hypre_ParCSRCommPkg *comm_pkg , hypre_ParCSRCommPkg *extend_comm_pkg , int *IN_marker , int full_off_procNodes , HYPRE_BigInt offset , HYPRE_BigInt *OUT_marker );
|
|---|
| 23 | int hypre_ParCSRFindExtendCommPkg ( hypre_ParCSRMatrix *A , int newoff , HYPRE_BigInt *found , hypre_ParCSRCommPkg **extend_comm_pkg );
|
|---|
| 24 | int new_offd_nodes ( HYPRE_BigInt **found , int num_cols_A_offd , int *A_ext_i , HYPRE_BigInt *big_A_ext_j , int **A_ext_j_ptr , int num_cols_S_offd , HYPRE_BigInt *col_map_offd , HYPRE_BigInt col_1 , HYPRE_BigInt col_n , int *Sop_i , HYPRE_BigInt *big_Sop_j , int **Sop_j_ptr , int *CF_marker , hypre_ParCSRCommPkg *comm_pkg );
|
|---|
| 25 |
|
|---|
| 26 | /* gen_redcs_mat.c */
|
|---|
| 27 | int hypre_seqAMGSetup ( hypre_ParAMGData *amg_data , int p_level , int coarse_threshold );
|
|---|
| 28 | int hypre_seqAMGCycle ( hypre_ParAMGData *amg_data , int p_level , hypre_ParVector **Par_F_array , hypre_ParVector **Par_U_array );
|
|---|
| 29 | int hypre_GenerateSubComm ( MPI_Comm comm , int participate , MPI_Comm *new_comm_ptr );
|
|---|
| 30 | void hypre_merge_lists ( int *list1 , int *list2 , int *np1 , MPI_Datatype *dptr );
|
|---|
| 31 |
|
|---|
| 32 | /* HYPRE_parcsr_amg.c */
|
|---|
| 33 | int HYPRE_BoomerAMGCreate ( HYPRE_Solver *solver );
|
|---|
| 34 | int HYPRE_BoomerAMGDestroy ( HYPRE_Solver solver );
|
|---|
| 35 | int HYPRE_BoomerAMGSetup ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector b , HYPRE_ParVector x );
|
|---|
| 36 | int HYPRE_BoomerAMGSolve ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector b , HYPRE_ParVector x );
|
|---|
| 37 | int HYPRE_BoomerAMGSetRestriction ( HYPRE_Solver solver , int restr_par );
|
|---|
| 38 | int HYPRE_BoomerAMGSetMaxLevels ( HYPRE_Solver solver , int max_levels );
|
|---|
| 39 | int HYPRE_BoomerAMGGetMaxLevels ( HYPRE_Solver solver , int *max_levels );
|
|---|
| 40 | int HYPRE_BoomerAMGSetStrongThreshold ( HYPRE_Solver solver , double strong_threshold );
|
|---|
| 41 | int HYPRE_BoomerAMGGetStrongThreshold ( HYPRE_Solver solver , double *strong_threshold );
|
|---|
| 42 | int HYPRE_BoomerAMGSetMaxRowSum ( HYPRE_Solver solver , double max_row_sum );
|
|---|
| 43 | int HYPRE_BoomerAMGGetMaxRowSum ( HYPRE_Solver solver , double *max_row_sum );
|
|---|
| 44 | int HYPRE_BoomerAMGSetTruncFactor ( HYPRE_Solver solver , double trunc_factor );
|
|---|
| 45 | int HYPRE_BoomerAMGSetAggTruncFactor ( HYPRE_Solver solver , double agg_trunc_factor );
|
|---|
| 46 | int HYPRE_BoomerAMGGetTruncFactor ( HYPRE_Solver solver , double *trunc_factor );
|
|---|
| 47 | int HYPRE_BoomerAMGSetPMaxElmts ( HYPRE_Solver solver , int P_max_elmts );
|
|---|
| 48 | int HYPRE_BoomerAMGGetPMaxElmts ( HYPRE_Solver solver , int *P_max_elmts );
|
|---|
| 49 | int HYPRE_BoomerAMGSetPMax1 ( HYPRE_Solver solver , int P_max1 );
|
|---|
| 50 | int HYPRE_BoomerAMGSetPMax2 ( HYPRE_Solver solver , int P_max2 );
|
|---|
| 51 | int HYPRE_BoomerAMGSetJacobiTruncThreshold ( HYPRE_Solver solver , double jacobi_trunc_threshold );
|
|---|
| 52 | int HYPRE_BoomerAMGGetJacobiTruncThreshold ( HYPRE_Solver solver , double *jacobi_trunc_threshold );
|
|---|
| 53 | int HYPRE_BoomerAMGSetPostInterpType ( HYPRE_Solver solver , int post_interp_type );
|
|---|
| 54 | int HYPRE_BoomerAMGGetPostInterpType ( HYPRE_Solver solver , int *post_interp_type );
|
|---|
| 55 | int HYPRE_BoomerAMGSetSCommPkgSwitch ( HYPRE_Solver solver , double S_commpkg_switch );
|
|---|
| 56 | int HYPRE_BoomerAMGSetInterpType ( HYPRE_Solver solver , int interp_type );
|
|---|
| 57 | int HYPRE_BoomerAMGSetMinIter ( HYPRE_Solver solver , int min_iter );
|
|---|
| 58 | int HYPRE_BoomerAMGSetMaxIter ( HYPRE_Solver solver , int max_iter );
|
|---|
| 59 | int HYPRE_BoomerAMGGetMaxIter ( HYPRE_Solver solver , int *max_iter );
|
|---|
| 60 | int HYPRE_BoomerAMGSetCoarsenType ( HYPRE_Solver solver , int coarsen_type );
|
|---|
| 61 | int HYPRE_BoomerAMGGetCoarsenType ( HYPRE_Solver solver , int *coarsen_type );
|
|---|
| 62 | int HYPRE_BoomerAMGSetMeasureType ( HYPRE_Solver solver , int measure_type );
|
|---|
| 63 | int HYPRE_BoomerAMGGetMeasureType ( HYPRE_Solver solver , int *measure_type );
|
|---|
| 64 | int HYPRE_BoomerAMGSetSetupType ( HYPRE_Solver solver , int setup_type );
|
|---|
| 65 | int HYPRE_BoomerAMGSetCycleType ( HYPRE_Solver solver , int cycle_type );
|
|---|
| 66 | int HYPRE_BoomerAMGGetCycleType ( HYPRE_Solver solver , int *cycle_type );
|
|---|
| 67 | int HYPRE_BoomerAMGSetTol ( HYPRE_Solver solver , double tol );
|
|---|
| 68 | int HYPRE_BoomerAMGGetTol ( HYPRE_Solver solver , double *tol );
|
|---|
| 69 | int HYPRE_BoomerAMGSetNumGridSweeps ( HYPRE_Solver solver , int *num_grid_sweeps );
|
|---|
| 70 | int HYPRE_BoomerAMGSetNumSweeps ( HYPRE_Solver solver , int num_sweeps );
|
|---|
| 71 | int HYPRE_BoomerAMGSetCycleNumSweeps ( HYPRE_Solver solver , int num_sweeps , int k );
|
|---|
| 72 | int HYPRE_BoomerAMGGetCycleNumSweeps ( HYPRE_Solver solver , int *num_sweeps , int k );
|
|---|
| 73 | int HYPRE_BoomerAMGInitGridRelaxation ( int **num_grid_sweeps_ptr , int **grid_relax_type_ptr , int ***grid_relax_points_ptr , int coarsen_type , double **relax_weights_ptr , int max_levels );
|
|---|
| 74 | int HYPRE_BoomerAMGSetGridRelaxType ( HYPRE_Solver solver , int *grid_relax_type );
|
|---|
| 75 | int HYPRE_BoomerAMGSetRelaxType ( HYPRE_Solver solver , int relax_type );
|
|---|
| 76 | int HYPRE_BoomerAMGSetCycleRelaxType ( HYPRE_Solver solver , int relax_type , int k );
|
|---|
| 77 | int HYPRE_BoomerAMGGetCycleRelaxType ( HYPRE_Solver solver , int *relax_type , int k );
|
|---|
| 78 | int HYPRE_BoomerAMGSetRelaxOrder ( HYPRE_Solver solver , int relax_order );
|
|---|
| 79 | int HYPRE_BoomerAMGSetGridRelaxPoints ( HYPRE_Solver solver , int **grid_relax_points );
|
|---|
| 80 | int HYPRE_BoomerAMGSetRelaxWeight ( HYPRE_Solver solver , double *relax_weight );
|
|---|
| 81 | int HYPRE_BoomerAMGSetRelaxWt ( HYPRE_Solver solver , double relax_wt );
|
|---|
| 82 | int HYPRE_BoomerAMGSetLevelRelaxWt ( HYPRE_Solver solver , double relax_wt , int level );
|
|---|
| 83 | int HYPRE_BoomerAMGSetOmega ( HYPRE_Solver solver , double *omega );
|
|---|
| 84 | int HYPRE_BoomerAMGSetOuterWt ( HYPRE_Solver solver , double outer_wt );
|
|---|
| 85 | int HYPRE_BoomerAMGSetLevelOuterWt ( HYPRE_Solver solver , double outer_wt , int level );
|
|---|
| 86 | int HYPRE_BoomerAMGSetSmoothType ( HYPRE_Solver solver , int smooth_type );
|
|---|
| 87 | int HYPRE_BoomerAMGGetSmoothType ( HYPRE_Solver solver , int *smooth_type );
|
|---|
| 88 | int HYPRE_BoomerAMGSetSmoothNumLevels ( HYPRE_Solver solver , int smooth_num_levels );
|
|---|
| 89 | int HYPRE_BoomerAMGGetSmoothNumLevels ( HYPRE_Solver solver , int *smooth_num_levels );
|
|---|
| 90 | int HYPRE_BoomerAMGSetSmoothNumSweeps ( HYPRE_Solver solver , int smooth_num_sweeps );
|
|---|
| 91 | int HYPRE_BoomerAMGGetSmoothNumSweeps ( HYPRE_Solver solver , int *smooth_num_sweeps );
|
|---|
| 92 | int HYPRE_BoomerAMGSetLogging ( HYPRE_Solver solver , int logging );
|
|---|
| 93 | int HYPRE_BoomerAMGGetLogging ( HYPRE_Solver solver , int *logging );
|
|---|
| 94 | int HYPRE_BoomerAMGSetPrintLevel ( HYPRE_Solver solver , int print_level );
|
|---|
| 95 | int HYPRE_BoomerAMGGetPrintLevel ( HYPRE_Solver solver , int *print_level );
|
|---|
| 96 | int HYPRE_BoomerAMGSetPrintFileName ( HYPRE_Solver solver , const char *print_file_name );
|
|---|
| 97 | int HYPRE_BoomerAMGSetDebugFlag ( HYPRE_Solver solver , int debug_flag );
|
|---|
| 98 | int HYPRE_BoomerAMGGetDebugFlag ( HYPRE_Solver solver , int *debug_flag );
|
|---|
| 99 | int HYPRE_BoomerAMGGetNumIterations ( HYPRE_Solver solver , int *num_iterations );
|
|---|
| 100 | int HYPRE_BoomerAMGGetCumNumIterations ( HYPRE_Solver solver , int *cum_num_iterations );
|
|---|
| 101 | int HYPRE_BoomerAMGGetResidual ( HYPRE_Solver solver , HYPRE_ParVector *residual );
|
|---|
| 102 | int HYPRE_BoomerAMGGetFinalRelativeResidualNorm ( HYPRE_Solver solver , double *rel_resid_norm );
|
|---|
| 103 | int HYPRE_BoomerAMGSetVariant ( HYPRE_Solver solver , int variant );
|
|---|
| 104 | int HYPRE_BoomerAMGGetVariant ( HYPRE_Solver solver , int *variant );
|
|---|
| 105 | int HYPRE_BoomerAMGSetOverlap ( HYPRE_Solver solver , int overlap );
|
|---|
| 106 | int HYPRE_BoomerAMGGetOverlap ( HYPRE_Solver solver , int *overlap );
|
|---|
| 107 | int HYPRE_BoomerAMGSetDomainType ( HYPRE_Solver solver , int domain_type );
|
|---|
| 108 | int HYPRE_BoomerAMGGetDomainType ( HYPRE_Solver solver , int *domain_type );
|
|---|
| 109 | int HYPRE_BoomerAMGSetSchwarzRlxWeight ( HYPRE_Solver solver , double schwarz_rlx_weight );
|
|---|
| 110 | int HYPRE_BoomerAMGGetSchwarzRlxWeight ( HYPRE_Solver solver , double *schwarz_rlx_weight );
|
|---|
| 111 | int HYPRE_BoomerAMGSetNumFunctions ( HYPRE_Solver solver , int num_functions );
|
|---|
| 112 | int HYPRE_BoomerAMGGetNumFunctions ( HYPRE_Solver solver , int *num_functions );
|
|---|
| 113 | int HYPRE_BoomerAMGSetNodal ( HYPRE_Solver solver , int nodal );
|
|---|
| 114 | int HYPRE_BoomerAMGSetDofFunc ( HYPRE_Solver solver , int *dof_func );
|
|---|
| 115 | int HYPRE_BoomerAMGSetNumPaths ( HYPRE_Solver solver , int num_paths );
|
|---|
| 116 | int HYPRE_BoomerAMGSetAggInterpType ( HYPRE_Solver solver , int agg_interp_type );
|
|---|
| 117 | int HYPRE_BoomerAMGSetAggPMaxElmts ( HYPRE_Solver solver , int agg_P_max_elmts );
|
|---|
| 118 | int HYPRE_BoomerAMGSetAggNumLevels ( HYPRE_Solver solver , int agg_num_levels );
|
|---|
| 119 | int HYPRE_BoomerAMGSetNumCRRelaxSteps ( HYPRE_Solver solver , int num_CR_relax_steps );
|
|---|
| 120 | int HYPRE_BoomerAMGSetCRRate ( HYPRE_Solver solver , double CR_rate );
|
|---|
| 121 | int HYPRE_BoomerAMGSetISType ( HYPRE_Solver solver , int IS_type );
|
|---|
| 122 | int HYPRE_BoomerAMGSetCRUseCG ( HYPRE_Solver solver , int CR_use_CG );
|
|---|
| 123 | int HYPRE_BoomerAMGSetGSMG ( HYPRE_Solver solver , int gsmg );
|
|---|
| 124 | int HYPRE_BoomerAMGSetNumSamples ( HYPRE_Solver solver , int gsmg );
|
|---|
| 125 | int HYPRE_BoomerAMGSetMaxCoarseSize ( HYPRE_Solver solver , int max_coarse_size );
|
|---|
| 126 | int HYPRE_BoomerAMGSetSeqThreshold ( HYPRE_Solver solver , int seq_threshold );
|
|---|
| 127 |
|
|---|
| 128 | /* HYPRE_parcsr_gmres.c */
|
|---|
| 129 | int HYPRE_ParCSRGMRESCreate ( MPI_Comm comm , HYPRE_Solver *solver );
|
|---|
| 130 | int HYPRE_ParCSRGMRESDestroy ( HYPRE_Solver solver );
|
|---|
| 131 | int HYPRE_ParCSRGMRESSetup ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector b , HYPRE_ParVector x );
|
|---|
| 132 | int HYPRE_ParCSRGMRESSolve ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector b , HYPRE_ParVector x );
|
|---|
| 133 | int HYPRE_ParCSRGMRESSetKDim ( HYPRE_Solver solver , int k_dim );
|
|---|
| 134 | int HYPRE_ParCSRGMRESSetTol ( HYPRE_Solver solver , double tol );
|
|---|
| 135 | int HYPRE_ParCSRGMRESSetMinIter ( HYPRE_Solver solver , int min_iter );
|
|---|
| 136 | int HYPRE_ParCSRGMRESSetMaxIter ( HYPRE_Solver solver , int max_iter );
|
|---|
| 137 | int HYPRE_ParCSRGMRESSetStopCrit ( HYPRE_Solver solver , int stop_crit );
|
|---|
| 138 | int HYPRE_ParCSRGMRESSetPrecond ( HYPRE_Solver solver , HYPRE_PtrToParSolverFcn precond , HYPRE_PtrToParSolverFcn precond_setup , HYPRE_Solver precond_solver );
|
|---|
| 139 | int HYPRE_ParCSRGMRESGetPrecond ( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
|---|
| 140 | int HYPRE_ParCSRGMRESSetLogging ( HYPRE_Solver solver , int logging );
|
|---|
| 141 | int HYPRE_ParCSRGMRESSetPrintLevel ( HYPRE_Solver solver , int print_level );
|
|---|
| 142 | int HYPRE_ParCSRGMRESGetNumIterations ( HYPRE_Solver solver , int *num_iterations );
|
|---|
| 143 | int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm ( HYPRE_Solver solver , double *norm );
|
|---|
| 144 |
|
|---|
| 145 |
|
|---|
| 146 | /* HYPRE_parcsr_pcg.c */
|
|---|
| 147 | int HYPRE_ParCSRPCGCreate ( MPI_Comm comm , HYPRE_Solver *solver );
|
|---|
| 148 | int HYPRE_ParCSRPCGDestroy ( HYPRE_Solver solver );
|
|---|
| 149 | int HYPRE_ParCSRPCGSetup ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector b , HYPRE_ParVector x );
|
|---|
| 150 | int HYPRE_ParCSRPCGSolve ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector b , HYPRE_ParVector x );
|
|---|
| 151 | int HYPRE_ParCSRPCGSetTol ( HYPRE_Solver solver , double tol );
|
|---|
| 152 | int HYPRE_ParCSRPCGSetMaxIter ( HYPRE_Solver solver , int max_iter );
|
|---|
| 153 | int HYPRE_ParCSRPCGSetStopCrit ( HYPRE_Solver solver , int stop_crit );
|
|---|
| 154 | int HYPRE_ParCSRPCGSetTwoNorm ( HYPRE_Solver solver , int two_norm );
|
|---|
| 155 | int HYPRE_ParCSRPCGSetRelChange ( HYPRE_Solver solver , int rel_change );
|
|---|
| 156 | int HYPRE_ParCSRPCGSetPrecond ( HYPRE_Solver solver , HYPRE_PtrToParSolverFcn precond , HYPRE_PtrToParSolverFcn precond_setup , HYPRE_Solver precond_solver );
|
|---|
| 157 | int HYPRE_ParCSRPCGGetPrecond ( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
|---|
| 158 | int HYPRE_ParCSRPCGSetPrintLevel ( HYPRE_Solver solver , int level );
|
|---|
| 159 | int HYPRE_ParCSRPCGSetLogging ( HYPRE_Solver solver , int level );
|
|---|
| 160 | int HYPRE_ParCSRPCGGetNumIterations ( HYPRE_Solver solver , int *num_iterations );
|
|---|
| 161 | int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm ( HYPRE_Solver solver , double *norm );
|
|---|
| 162 | int HYPRE_ParCSRDiagScaleSetup ( HYPRE_Solver solver , HYPRE_ParCSRMatrix A , HYPRE_ParVector y , HYPRE_ParVector x );
|
|---|
| 163 | int HYPRE_ParCSRDiagScale ( HYPRE_Solver solver , HYPRE_ParCSRMatrix HA , HYPRE_ParVector Hy , HYPRE_ParVector Hx );
|
|---|
| 164 |
|
|---|
| 165 | /* par_amg.c */
|
|---|
| 166 | void *hypre_BoomerAMGCreate ( void );
|
|---|
| 167 | int hypre_BoomerAMGDestroy ( void *data );
|
|---|
| 168 | int hypre_BoomerAMGSetRestriction ( void *data , int restr_par );
|
|---|
| 169 | int hypre_BoomerAMGSetMaxLevels ( void *data , int max_levels );
|
|---|
| 170 | int hypre_BoomerAMGGetMaxLevels ( void *data , int *max_levels );
|
|---|
| 171 | int hypre_BoomerAMGSetStrongThreshold ( void *data , double strong_threshold );
|
|---|
| 172 | int hypre_BoomerAMGGetStrongThreshold ( void *data , double *strong_threshold );
|
|---|
| 173 | int hypre_BoomerAMGSetMaxRowSum ( void *data , double max_row_sum );
|
|---|
| 174 | int hypre_BoomerAMGGetMaxRowSum ( void *data , double *max_row_sum );
|
|---|
| 175 | int hypre_BoomerAMGSetTruncFactor ( void *data , double trunc_factor );
|
|---|
| 176 | int hypre_BoomerAMGSetAggTruncFactor ( void *data , double agg_trunc_factor );
|
|---|
| 177 | int hypre_BoomerAMGGetTruncFactor ( void *data , double *trunc_factor );
|
|---|
| 178 | int hypre_BoomerAMGSetPMaxElmts ( void *data , int P_max_elmts );
|
|---|
| 179 | int hypre_BoomerAMGSetPMax1 ( void *data , int P_max1 );
|
|---|
| 180 | int hypre_BoomerAMGSetPMax2 ( void *data , int P_max2 );
|
|---|
| 181 | int hypre_BoomerAMGGetPMaxElmts ( void *data , int *P_max_elmts );
|
|---|
| 182 | int hypre_BoomerAMGSetJacobiTruncThreshold ( void *data , double jacobi_trunc_threshold );
|
|---|
| 183 | int hypre_BoomerAMGGetJacobiTruncThreshold ( void *data , double *jacobi_trunc_threshold );
|
|---|
| 184 | int hypre_BoomerAMGSetPostInterpType ( void *data , int post_interp_type );
|
|---|
| 185 | int hypre_BoomerAMGGetPostInterpType ( void *data , int *post_interp_type );
|
|---|
| 186 | int hypre_BoomerAMGSetSCommPkgSwitch ( void *data , double S_commpkg_switch );
|
|---|
| 187 | int hypre_BoomerAMGGetSCommPkgSwitch ( void *data , double *S_commpkg_switch );
|
|---|
| 188 | int hypre_BoomerAMGSetInterpType ( void *data , int interp_type );
|
|---|
| 189 | int hypre_BoomerAMGGetInterpType ( void *data , int *interp_type );
|
|---|
| 190 | int hypre_BoomerAMGSetMinIter ( void *data , int min_iter );
|
|---|
| 191 | int hypre_BoomerAMGGetMinIter ( void *data , int *min_iter );
|
|---|
| 192 | int hypre_BoomerAMGSetMaxIter ( void *data , int max_iter );
|
|---|
| 193 | int hypre_BoomerAMGGetMaxIter ( void *data , int *max_iter );
|
|---|
| 194 | int hypre_BoomerAMGSetCoarsenType ( void *data , int coarsen_type );
|
|---|
| 195 | int hypre_BoomerAMGGetCoarsenType ( void *data , int *coarsen_type );
|
|---|
| 196 | int hypre_BoomerAMGSetMeasureType ( void *data , int measure_type );
|
|---|
| 197 | int hypre_BoomerAMGGetMeasureType ( void *data , int *measure_type );
|
|---|
| 198 | int hypre_BoomerAMGSetSetupType ( void *data , int setup_type );
|
|---|
| 199 | int hypre_BoomerAMGGetSetupType ( void *data , int *setup_type );
|
|---|
| 200 | int hypre_BoomerAMGSetCycleType ( void *data , int cycle_type );
|
|---|
| 201 | int hypre_BoomerAMGGetCycleType ( void *data , int *cycle_type );
|
|---|
| 202 | int hypre_BoomerAMGSetTol ( void *data , double tol );
|
|---|
| 203 | int hypre_BoomerAMGGetTol ( void *data , double *tol );
|
|---|
| 204 | int hypre_BoomerAMGSetNumSweeps ( void *data , int num_sweeps );
|
|---|
| 205 | int hypre_BoomerAMGSetCycleNumSweeps ( void *data , int num_sweeps , int k );
|
|---|
| 206 | int hypre_BoomerAMGGetCycleNumSweeps ( void *data , int *num_sweeps , int k );
|
|---|
| 207 | int hypre_BoomerAMGSetNumGridSweeps ( void *data , int *num_grid_sweeps );
|
|---|
| 208 | int hypre_BoomerAMGGetNumGridSweeps ( void *data , int **num_grid_sweeps );
|
|---|
| 209 | int hypre_BoomerAMGSetRelaxType ( void *data , int relax_type );
|
|---|
| 210 | int hypre_BoomerAMGSetCycleRelaxType ( void *data , int relax_type , int k );
|
|---|
| 211 | int hypre_BoomerAMGGetCycleRelaxType ( void *data , int *relax_type , int k );
|
|---|
| 212 | int hypre_BoomerAMGSetRelaxOrder ( void *data , int relax_order );
|
|---|
| 213 | int hypre_BoomerAMGGetRelaxOrder ( void *data , int *relax_order );
|
|---|
| 214 | int hypre_BoomerAMGSetGridRelaxType ( void *data , int *grid_relax_type );
|
|---|
| 215 | int hypre_BoomerAMGGetGridRelaxType ( void *data , int **grid_relax_type );
|
|---|
| 216 | int hypre_BoomerAMGSetGridRelaxPoints ( void *data , int **grid_relax_points );
|
|---|
| 217 | int hypre_BoomerAMGGetGridRelaxPoints ( void *data , int ***grid_relax_points );
|
|---|
| 218 | int hypre_BoomerAMGSetRelaxWeight ( void *data , double *relax_weight );
|
|---|
| 219 | int hypre_BoomerAMGGetRelaxWeight ( void *data , double **relax_weight );
|
|---|
| 220 | int hypre_BoomerAMGSetRelaxWt ( void *data , double relax_weight );
|
|---|
| 221 | int hypre_BoomerAMGSetLevelRelaxWt ( void *data , double relax_weight , int level );
|
|---|
| 222 | int hypre_BoomerAMGGetLevelRelaxWt ( void *data , double *relax_weight , int level );
|
|---|
| 223 | int hypre_BoomerAMGSetOmega ( void *data , double *omega );
|
|---|
| 224 | int hypre_BoomerAMGGetOmega ( void *data , double **omega );
|
|---|
| 225 | int hypre_BoomerAMGSetOuterWt ( void *data , double omega );
|
|---|
| 226 | int hypre_BoomerAMGSetLevelOuterWt ( void *data , double omega , int level );
|
|---|
| 227 | int hypre_BoomerAMGGetLevelOuterWt ( void *data , double *omega , int level );
|
|---|
| 228 | int hypre_BoomerAMGSetSmoothType ( void *data , int smooth_type );
|
|---|
| 229 | int hypre_BoomerAMGGetSmoothType ( void *data , int *smooth_type );
|
|---|
| 230 | int hypre_BoomerAMGSetSmoothNumLevels ( void *data , int smooth_num_levels );
|
|---|
| 231 | int hypre_BoomerAMGGetSmoothNumLevels ( void *data , int *smooth_num_levels );
|
|---|
| 232 | int hypre_BoomerAMGSetSmoothNumSweeps ( void *data , int smooth_num_sweeps );
|
|---|
| 233 | int hypre_BoomerAMGGetSmoothNumSweeps ( void *data , int *smooth_num_sweeps );
|
|---|
| 234 | int hypre_BoomerAMGSetLogging ( void *data , int logging );
|
|---|
| 235 | int hypre_BoomerAMGGetLogging ( void *data , int *logging );
|
|---|
| 236 | int hypre_BoomerAMGSetPrintLevel ( void *data , int print_level );
|
|---|
| 237 | int hypre_BoomerAMGGetPrintLevel ( void *data , int *print_level );
|
|---|
| 238 | int hypre_BoomerAMGSetPrintFileName ( void *data , const char *print_file_name );
|
|---|
| 239 | int hypre_BoomerAMGGetPrintFileName ( void *data , char **print_file_name );
|
|---|
| 240 | int hypre_BoomerAMGSetNumIterations ( void *data , int num_iterations );
|
|---|
| 241 | int hypre_BoomerAMGSetDebugFlag ( void *data , int debug_flag );
|
|---|
| 242 | int hypre_BoomerAMGGetDebugFlag ( void *data , int *debug_flag );
|
|---|
| 243 | int hypre_BoomerAMGSetGSMG ( void *data , int par );
|
|---|
| 244 | int hypre_BoomerAMGSetNumSamples ( void *data , int par );
|
|---|
| 245 | int hypre_BoomerAMGSetNumFunctions ( void *data , int num_functions );
|
|---|
| 246 | int hypre_BoomerAMGGetNumFunctions ( void *data , int *num_functions );
|
|---|
| 247 | int hypre_BoomerAMGSetNodal ( void *data , int nodal );
|
|---|
| 248 | int hypre_BoomerAMGSetNumPaths ( void *data , int num_paths );
|
|---|
| 249 | int hypre_BoomerAMGSetAggInterpType ( void *data , int agg_interp_type );
|
|---|
| 250 | int hypre_BoomerAMGSetAggPMaxElmts ( void *data , int agg_P_max_elmts );
|
|---|
| 251 | int hypre_BoomerAMGSetAggNumLevels ( void *data , int agg_num_levels );
|
|---|
| 252 | int hypre_BoomerAMGSetNumCRRelaxSteps ( void *data , int num_CR_relax_steps );
|
|---|
| 253 | int hypre_BoomerAMGSetCRRate ( void *data , double CR_rate );
|
|---|
| 254 | int hypre_BoomerAMGSetISType ( void *data , int IS_type );
|
|---|
| 255 | int hypre_BoomerAMGSetCRUseCG ( void *data , int CR_use_CG );
|
|---|
| 256 | int hypre_BoomerAMGSetNumPoints ( void *data , int num_points );
|
|---|
| 257 | int hypre_BoomerAMGSetDofFunc ( void *data , int *dof_func );
|
|---|
| 258 | int hypre_BoomerAMGSetPointDofMap ( void *data , int *point_dof_map );
|
|---|
| 259 | int hypre_BoomerAMGSetDofPoint ( void *data , int *dof_point );
|
|---|
| 260 | int hypre_BoomerAMGGetNumIterations ( void *data , int *num_iterations );
|
|---|
| 261 | int hypre_BoomerAMGGetCumNumIterations ( void *data , int *cum_num_iterations );
|
|---|
| 262 | int hypre_BoomerAMGGetResidual ( void *data , hypre_ParVector **resid );
|
|---|
| 263 | int hypre_BoomerAMGGetRelResidualNorm ( void *data , double *rel_resid_norm );
|
|---|
| 264 | int hypre_BoomerAMGSetVariant ( void *data , int variant );
|
|---|
| 265 | int hypre_BoomerAMGGetVariant ( void *data , int *variant );
|
|---|
| 266 | int hypre_BoomerAMGSetOverlap ( void *data , int overlap );
|
|---|
| 267 | int hypre_BoomerAMGGetOverlap ( void *data , int *overlap );
|
|---|
| 268 | int hypre_BoomerAMGSetDomainType ( void *data , int domain_type );
|
|---|
| 269 | int hypre_BoomerAMGGetDomainType ( void *data , int *domain_type );
|
|---|
| 270 | int hypre_BoomerAMGSetSchwarzRlxWeight ( void *data , double schwarz_rlx_weight );
|
|---|
| 271 | int hypre_BoomerAMGGetSchwarzRlxWeight ( void *data , double *schwarz_rlx_weight );
|
|---|
| 272 | int hypre_BoomerAMGSetChebyOrder( void *data, int order);
|
|---|
| 273 | int hypre_BoomerAMGSetChebyEigRatio( void *data, double ratio);
|
|---|
| 274 | int hypre_BoomerAMGSetMaxCoarseSize ( void *data , int max_coarse_size );
|
|---|
| 275 | int hypre_BoomerAMGSetSeqThreshold ( void *data , int seq_threshold );
|
|---|
| 276 |
|
|---|
| 277 |
|
|---|
| 278 |
|
|---|
| 279 | /* par_amg_setup.c */
|
|---|
| 280 | int hypre_BoomerAMGSetup ( void *amg_vdata , hypre_ParCSRMatrix *A , hypre_ParVector *f , hypre_ParVector *u );
|
|---|
| 281 |
|
|---|
| 282 | /* par_amg_solve.c */
|
|---|
| 283 | int hypre_BoomerAMGSolve ( void *amg_vdata , hypre_ParCSRMatrix *A , hypre_ParVector *f , hypre_ParVector *u );
|
|---|
| 284 |
|
|---|
| 285 | /* par_cg_relax_wt.c */
|
|---|
| 286 | int hypre_BoomerAMGCGRelaxWt ( void *amg_vdata , int level , int num_cg_sweeps , double *rlx_wt_ptr );
|
|---|
| 287 | int hypre_Bisection ( int n , double *diag , double *offd , double y , double z , double tol , int k , double *ev_ptr );
|
|---|
| 288 |
|
|---|
| 289 | /* par_coarsen.c */
|
|---|
| 290 | int hypre_BoomerAMGCoarsen ( hypre_ParCSRMatrix *S , hypre_ParCSRMatrix *A , int CF_init , int debug_flag , int **CF_marker_ptr );
|
|---|
| 291 | int hypre_BoomerAMGCoarsenRuge ( hypre_ParCSRMatrix *S , hypre_ParCSRMatrix *A , int measure_type , int coarsen_type , int debug_flag , int **CF_marker_ptr );
|
|---|
| 292 | int hypre_BoomerAMGCoarsenFalgout ( hypre_ParCSRMatrix *S , hypre_ParCSRMatrix *A , int measure_type , int debug_flag , int **CF_marker_ptr );
|
|---|
| 293 | int hypre_BoomerAMGCoarsenHMIS ( hypre_ParCSRMatrix *S , hypre_ParCSRMatrix *A , int measure_type , int debug_flag , int **CF_marker_ptr );
|
|---|
| 294 | int hypre_BoomerAMGCoarsenPMIS ( hypre_ParCSRMatrix *S , hypre_ParCSRMatrix *A , int CF_init , int debug_flag , int **CF_marker_ptr );
|
|---|
| 295 |
|
|---|
| 296 | /* par_coarse_parms.c */
|
|---|
| 297 | int hypre_BoomerAMGCoarseParms ( MPI_Comm comm , int local_num_variables , int num_functions , int *dof_func , int *CF_marker , int **coarse_dof_func_ptr , HYPRE_BigInt **coarse_pnts_global_ptr );
|
|---|
| 298 |
|
|---|
| 299 | /* par_cycle.c */
|
|---|
| 300 | int hypre_BoomerAMGCycle ( void *amg_vdata , hypre_ParVector **F_array , hypre_ParVector **U_array );
|
|---|
| 301 |
|
|---|
| 302 | /* par_indepset.c */
|
|---|
| 303 | int hypre_BoomerAMGIndepSetInit ( hypre_ParCSRMatrix *S , double *measure_array , int seq_rand );
|
|---|
| 304 | int hypre_BoomerAMGIndepSet ( hypre_ParCSRMatrix *S , double *measure_array , int *graph_array , int graph_array_size , int *graph_array_offd , int graph_array_offd_size , int *IS_marker , int *IS_marker_offd );
|
|---|
| 305 |
|
|---|
| 306 | /* par_interp.c */
|
|---|
| 307 | int hypre_BoomerAMGBuildInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 308 | int hypre_BoomerAMGInterpTruncation ( hypre_ParCSRMatrix *P , double trunc_factor , int max_elmts );
|
|---|
| 309 | void hypre_qsort2abs ( int *v , double *w , int left , int right );
|
|---|
| 310 |
|
|---|
| 311 | /* par_jacobi_interp.c */
|
|---|
| 312 | void hypre_BoomerAMGJacobiInterp ( hypre_ParCSRMatrix *A , hypre_ParCSRMatrix **P , hypre_ParCSRMatrix *S , int num_functions , int *dof_func , int *CF_marker , int level , double truncation_threshold , double truncation_threshold_minus );
|
|---|
| 313 | void hypre_BoomerAMGJacobiInterp_1 ( hypre_ParCSRMatrix *A , hypre_ParCSRMatrix **P , hypre_ParCSRMatrix *S , int *CF_marker , int level , double truncation_threshold , double truncation_threshold_minus , int *dof_func , int *dof_func_offd , double weight_AF );
|
|---|
| 314 | void hypre_BoomerAMGTruncateInterp ( hypre_ParCSRMatrix *P , double eps , double dlt , int *CF_marker );
|
|---|
| 315 | int hypre_ParCSRMatrix_dof_func_offd ( hypre_ParCSRMatrix *A , int num_functions , int *dof_func , int **dof_func_offd );
|
|---|
| 316 |
|
|---|
| 317 | /* par_laplace_27pt.c */
|
|---|
| 318 | HYPRE_ParCSRMatrix GenerateLaplacian27pt ( MPI_Comm comm , HYPRE_BigInt nx , HYPRE_BigInt ny , HYPRE_BigInt nz , int P , int Q , int R , int p , int q , int r , double *value , HYPRE_ParVector *rhs_ptr , HYPRE_ParVector *x_ptr );
|
|---|
| 319 |
|
|---|
| 320 | /* par_laplace.c */
|
|---|
| 321 | HYPRE_ParCSRMatrix GenerateLaplacian ( MPI_Comm comm , HYPRE_BigInt nx , HYPRE_BigInt ny , HYPRE_BigInt nz , int P , int Q , int R , int p , int q , int r , double *value , HYPRE_ParVector *rhs_ptr , HYPRE_ParVector *x_ptr );
|
|---|
| 322 | int hypre_map ( int ix , int iy , int iz , int p , int q , int r , int P , int Q , int R , HYPRE_BigInt *nx_part , HYPRE_BigInt *ny_part , HYPRE_BigInt *nz_part , HYPRE_BigInt *global_part , HYPRE_BigInt *value_ptr );
|
|---|
| 323 |
|
|---|
| 324 | /* par_laplace_9pt.c */
|
|---|
| 325 | HYPRE_ParCSRMatrix GenerateLaplacian9pt ( MPI_Comm comm , HYPRE_BigInt nx , HYPRE_BigInt ny , int P , int Q , int p , int q , double *value , HYPRE_ParVector *rhs_ptr , HYPRE_ParVector *x_ptr );
|
|---|
| 326 | int hypre_map2 ( int ix , int iy , int p , int q , int P , int Q , HYPRE_BigInt *nx_part , HYPRE_BigInt *ny_part , HYPRE_BigInt *global_part , HYPRE_BigInt *value_ptr );
|
|---|
| 327 |
|
|---|
| 328 | /* par_lr_interp.c */
|
|---|
| 329 | int hypre_BoomerAMGBuildStdInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int sep_weight , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 330 | int hypre_BoomerAMGBuildExtPIInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 331 | int hypre_BoomerAMGBuildExtPICCInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 332 | int hypre_BoomerAMGBuildFFInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 333 | int hypre_BoomerAMGBuildFF1Interp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 334 | int hypre_BoomerAMGBuildExtInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 335 |
|
|---|
| 336 | /* par_multi_interp.c */
|
|---|
| 337 | int hypre_BoomerAMGBuildMultipass ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int P_max_elmts , int weight_option , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 338 |
|
|---|
| 339 | /* par_nodal_systems.c */
|
|---|
| 340 | int hypre_BoomerAMGCreateNodalA ( hypre_ParCSRMatrix *A , int num_functions , int *dof_func , int option , hypre_ParCSRMatrix **AN_ptr );
|
|---|
| 341 | int hypre_BoomerAMGCreateScalarCFS ( hypre_ParCSRMatrix *SN , int *CFN_marker , int *col_offd_SN_to_AN , int num_functions , int nodal , int data , int **dof_func_ptr , int **CF_marker_ptr , int **col_offd_S_to_A_ptr , hypre_ParCSRMatrix **S_ptr );
|
|---|
| 342 | int hypre_BoomerAMGCreateScalarCF ( int *CFN_marker , int num_functions , int num_nodes , int **dof_func_ptr , int **CF_marker_ptr );
|
|---|
| 343 |
|
|---|
| 344 | /* par_rap.c */
|
|---|
| 345 | hypre_BigCSRMatrix *hypre_ExchangeRAPData ( hypre_BigCSRMatrix *RAP_int , hypre_ParCSRCommPkg *comm_pkg_RT );
|
|---|
| 346 | int hypre_BoomerAMGBuildCoarseOperator ( hypre_ParCSRMatrix *RT , hypre_ParCSRMatrix *A , hypre_ParCSRMatrix *P , hypre_ParCSRMatrix **RAP_ptr );
|
|---|
| 347 |
|
|---|
| 348 | /* par_rap_communication.c */
|
|---|
| 349 | int hypre_GetCommPkgRTFromCommPkgA ( hypre_ParCSRMatrix *RT , hypre_ParCSRMatrix *A , int *fine_to_coarse , int *tmp_map_offd );
|
|---|
| 350 | int hypre_GenerateSendMapAndCommPkg ( MPI_Comm comm , int num_sends , int num_recvs , int *recv_procs , int *send_procs , int *recv_vec_starts , hypre_ParCSRMatrix *A );
|
|---|
| 351 |
|
|---|
| 352 | /* par_relax.c */
|
|---|
| 353 | int hypre_BoomerAMGRelax ( hypre_ParCSRMatrix *A , hypre_ParVector *f , int *cf_marker , int relax_type , int relax_points , double relax_weight , double omega , double *l1_norms, hypre_ParVector *u , hypre_ParVector *Vtemp , hypre_ParVector *Ztemp );
|
|---|
| 354 | int gselim ( double *A , double *x , int n );
|
|---|
| 355 |
|
|---|
| 356 | /* par_relax_interface.c */
|
|---|
| 357 | int hypre_BoomerAMGRelaxIF ( hypre_ParCSRMatrix *A , hypre_ParVector *f , int *cf_marker , int relax_type , int relax_order , int cycle_type , double relax_weight , double omega , double *l1_norms, hypre_ParVector *u , hypre_ParVector *Vtemp, hypre_ParVector *Ztemp );
|
|---|
| 358 |
|
|---|
| 359 | /* par_rotate_7pt.c */
|
|---|
| 360 | HYPRE_ParCSRMatrix GenerateRotate7pt( MPI_Comm comm, HYPRE_BigInt nx, HYPRE_BigInt ny, int P, int Q, int p, int q, double alpha, double eps, HYPRE_ParVector *rhs_ptr, HYPRE_ParVector *x_ptr);
|
|---|
| 361 |
|
|---|
| 362 | /* par_scaled_matnorm.c */
|
|---|
| 363 | int hypre_ParCSRMatrixScaledNorm ( hypre_ParCSRMatrix *A , double *scnorm );
|
|---|
| 364 |
|
|---|
| 365 | /* par_stats.c */
|
|---|
| 366 | int hypre_BoomerAMGSetupStats ( void *amg_vdata , hypre_ParCSRMatrix *A );
|
|---|
| 367 | int hypre_BoomerAMGWriteSolverParams ( void *data );
|
|---|
| 368 |
|
|---|
| 369 | /* par_strength.c */
|
|---|
| 370 | int hypre_BoomerAMGCreateS ( hypre_ParCSRMatrix *A , double strength_threshold , double max_row_sum , int num_functions , int *dof_func , hypre_ParCSRMatrix **S_ptr );
|
|---|
| 371 | int hypre_BoomerAMGCreateSabs ( hypre_ParCSRMatrix *A , double strength_threshold , double max_row_sum , int num_functions , int *dof_func , hypre_ParCSRMatrix **S_ptr );
|
|---|
| 372 | int hypre_BoomerAMGCreateSCommPkg ( hypre_ParCSRMatrix *A , hypre_ParCSRMatrix *S , int **col_offd_S_to_A_ptr );
|
|---|
| 373 | int hypre_BoomerAMGCreate2ndS ( hypre_ParCSRMatrix *S , int *CF_marker , int num_paths , HYPRE_BigInt *coarse_row_starts , hypre_ParCSRMatrix **C_ptr );
|
|---|
| 374 | int hypre_BoomerAMGCorrectCFMarker ( int *CF_marker , int num_var , int *new_CF_marker );
|
|---|
| 375 | int hypre_BoomerAMGCorrectCFMarker2 ( int *CF_marker , int num_var , int *new_CF_marker );
|
|---|
| 376 |
|
|---|
| 377 | /* par_vardifconv.c */
|
|---|
| 378 | HYPRE_ParCSRMatrix GenerateVarDifConv ( MPI_Comm comm , HYPRE_BigInt nx , HYPRE_BigInt ny , HYPRE_BigInt nz , int P , int Q , int R , int p , int q , int r , double eps , HYPRE_ParVector *rhs_ptr , HYPRE_ParVector *x_ptr );
|
|---|
| 379 | double afun ( double xx , double yy , double zz );
|
|---|
| 380 | double bfun ( double xx , double yy , double zz );
|
|---|
| 381 | double cfun ( double xx , double yy , double zz );
|
|---|
| 382 | double dfun ( double xx , double yy , double zz );
|
|---|
| 383 | double efun ( double xx , double yy , double zz );
|
|---|
| 384 | double ffun ( double xx , double yy , double zz );
|
|---|
| 385 | double gfun ( double xx , double yy , double zz );
|
|---|
| 386 | double rfun ( double xx , double yy , double zz );
|
|---|
| 387 | double bndfun ( double xx , double yy , double zz );
|
|---|
| 388 |
|
|---|
| 389 | /* partial.c */
|
|---|
| 390 | int hypre_BoomerAMGBuildPartialStdInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , HYPRE_BigInt *num_old_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int sep_weight , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 391 | int hypre_BoomerAMGBuildPartialExtPIInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , HYPRE_BigInt *num_old_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 392 | int hypre_BoomerAMGBuildPartialExtInterp ( hypre_ParCSRMatrix *A , int *CF_marker , hypre_ParCSRMatrix *S , HYPRE_BigInt *num_cpts_global , HYPRE_BigInt *num_old_cpts_global , int num_functions , int *dof_func , int debug_flag , double trunc_factor , int max_elmts , int *col_offd_S_to_A , hypre_ParCSRMatrix **P_ptr );
|
|---|
| 393 |
|
|---|
| 394 | /* pcg_par.c */
|
|---|
| 395 | char *hypre_ParKrylovCAlloc ( int count , int elt_size );
|
|---|
| 396 | int hypre_ParKrylovFree ( char *ptr );
|
|---|
| 397 | void *hypre_ParKrylovCreateVector ( void *vvector );
|
|---|
| 398 | void *hypre_ParKrylovCreateVectorArray ( int n , void *vvector );
|
|---|
| 399 | int hypre_ParKrylovDestroyVector ( void *vvector );
|
|---|
| 400 | void *hypre_ParKrylovMatvecCreate ( void *A , void *x );
|
|---|
| 401 | int hypre_ParKrylovMatvec ( void *matvec_data , double alpha , void *A , void *x , double beta , void *y );
|
|---|
| 402 | int hypre_ParKrylovMatvecT ( void *matvec_data , double alpha , void *A , void *x , double beta , void *y );
|
|---|
| 403 | int hypre_ParKrylovMatvecDestroy ( void *matvec_data );
|
|---|
| 404 | double hypre_ParKrylovInnerProd ( void *x , void *y );
|
|---|
| 405 | int hypre_ParKrylovCopyVector ( void *x , void *y );
|
|---|
| 406 | int hypre_ParKrylovClearVector ( void *x );
|
|---|
| 407 | int hypre_ParKrylovScaleVector ( double alpha , void *x );
|
|---|
| 408 | int hypre_ParKrylovAxpy ( double alpha , void *x , void *y );
|
|---|
| 409 | int hypre_ParKrylovCommInfo ( void *A , int *my_id , int *num_procs );
|
|---|
| 410 | int hypre_ParKrylovIdentitySetup ( void *vdata , void *A , void *b , void *x );
|
|---|
| 411 | int hypre_ParKrylovIdentity ( void *vdata , void *A , void *b , void *x );
|
|---|
| 412 |
|
|---|
| 413 | /* par_more_relax.c */
|
|---|
| 414 | int hypre_ParCSRMaxEigEstimate(hypre_ParCSRMatrix *A, int scale, double *max_eig);
|
|---|
| 415 | int hypre_ParCSRMaxEigEstimateCG(hypre_ParCSRMatrix *A, /* matrix to relax with */
|
|---|
| 416 | int scale, /* scale by diagonal?*/
|
|---|
| 417 | int max_iter,
|
|---|
| 418 | double *max_eig, double *min_eig);
|
|---|
| 419 | int hypre_ParCSRRelax_Cheby(hypre_ParCSRMatrix *A, hypre_ParVector *f, double max_eig, double min_eig, double eig_ratio, int order, int scale, int variant, hypre_ParVector *u, hypre_ParVector *v, hypre_ParVector *v2);
|
|---|
| 420 | int hypre_BoomerAMGRelax_FCFJacobi( hypre_ParCSRMatrix *A, hypre_ParVector *f, int *cf_marker, double relax_weight, hypre_ParVector *u, hypre_ParVector *Vtemp );
|
|---|
| 421 | int hypre_ParCSRRelax_CG( HYPRE_Solver solver, hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_ParVector *u, int num_its);
|
|---|
| 422 | int hypre_ParCSRRelax_SD( hypre_ParCSRMatrix *A, hypre_ParVector *f, hypre_ParVector *u, hypre_ParVector *r, hypre_ParVector *p, int num_its);
|
|---|
| 423 | int hypre_ParCSRComputeTheta(hypre_ParCSRMatrix *A, double *theta_est);
|
|---|
| 424 | int hypre_ParCSRComputeL1Norms ( hypre_ParCSRMatrix *A , int option , int *cf_marker , double **l1_norm_ptr);
|
|---|
| 425 | int hypre_ParCSRComputeL1NormsThreads ( hypre_ParCSRMatrix *A , int option , int num_threads , int *cf_marker , double **l1_norm_ptr);
|
|---|
| 426 | int hypre_ParCSRRelax_L1 ( hypre_ParCSRMatrix *A , hypre_ParVector *f , double relax_weight , double omega , double *l1_norms , hypre_ParVector *u , hypre_ParVector *v , hypre_ParVector *z);
|
|---|
| 427 | int hypre_ParCSRRelax_L1_GS ( hypre_ParCSRMatrix *A , hypre_ParVector *f , double relax_weight , double omega , double *l1_norms , hypre_ParVector *u , hypre_ParVector *v , hypre_ParVector *z);
|
|---|
| 428 | int hypre_ParCSRRelax_L1_Jacobi( hypre_ParCSRMatrix *A, hypre_ParVector *f, int *cf_marker, int relax_points, double relax_weight, double *l1_norms, hypre_ParVector *u, hypre_ParVector *Vtemp );
|
|---|
| 429 |
|
|---|
| 430 | #ifdef __cplusplus
|
|---|
| 431 | }
|
|---|
| 432 | #endif
|
|---|
| 433 |
|
|---|
| 434 | #endif
|
|---|
| 435 |
|
|---|