source: CIVL/examples/mpi-omp/AMG2013/parcsr_ls/parcsr_ls.h

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

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