driver calls generic Krylov functions directly. The corresponding
functions in HYPRE_csr{gmres,pcg} do nothing but call the generic ones;
all but Create, Destroy, and diagonal scaling are now obsolete.
This commit is contained in:
parent
623cf886a1
commit
4a0ef6c539
@ -58,10 +58,9 @@ HYPRE_CSRGMRESSetup( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_GMRESSetup( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_GMRESSetup( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -74,10 +73,9 @@ HYPRE_CSRGMRESSolve( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_GMRESSolve( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_GMRESSolve( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -88,7 +86,7 @@ int
|
||||
HYPRE_CSRGMRESSetKDim( HYPRE_Solver solver,
|
||||
int k_dim )
|
||||
{
|
||||
return( hypre_GMRESSetKDim( (void *) solver, k_dim ) );
|
||||
return( HYPRE_GMRESSetKDim( solver, k_dim ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -99,7 +97,7 @@ int
|
||||
HYPRE_CSRGMRESSetTol( HYPRE_Solver solver,
|
||||
double tol )
|
||||
{
|
||||
return( hypre_GMRESSetTol( (void *) solver, tol ) );
|
||||
return( HYPRE_GMRESSetTol( solver, tol ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -110,7 +108,7 @@ int
|
||||
HYPRE_CSRGMRESSetMinIter( HYPRE_Solver solver,
|
||||
int min_iter )
|
||||
{
|
||||
return( hypre_GMRESSetMinIter( (void *) solver, min_iter ) );
|
||||
return( HYPRE_GMRESSetMinIter( solver, min_iter ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -121,7 +119,7 @@ int
|
||||
HYPRE_CSRGMRESSetMaxIter( HYPRE_Solver solver,
|
||||
int max_iter )
|
||||
{
|
||||
return( hypre_GMRESSetMaxIter( (void *) solver, max_iter ) );
|
||||
return( HYPRE_GMRESSetMaxIter( solver, max_iter ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -132,7 +130,7 @@ int
|
||||
HYPRE_CSRGMRESSetStopCrit( HYPRE_Solver solver,
|
||||
int stop_crit )
|
||||
{
|
||||
return( hypre_GMRESSetStopCrit( (void *) solver, stop_crit ) );
|
||||
return( HYPRE_GMRESSetStopCrit( solver, stop_crit ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -151,8 +149,10 @@ HYPRE_CSRGMRESSetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Vector x),
|
||||
void *precond_data )
|
||||
{
|
||||
return( hypre_GMRESSetPrecond( (void *) solver,
|
||||
precond, precond_setup, precond_data ) );
|
||||
return( HYPRE_GMRESSetPrecond( solver,
|
||||
(HYPRE_PtrToSolverFcn) precond,
|
||||
(HYPRE_PtrToSolverFcn) precond_setup,
|
||||
(HYPRE_Solver) precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -163,8 +163,7 @@ int
|
||||
HYPRE_CSRGMRESGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_GMRESGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
return( HYPRE_GMRESGetPrecond( solver, precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -175,7 +174,7 @@ int
|
||||
HYPRE_CSRGMRESSetLogging( HYPRE_Solver solver,
|
||||
int logging)
|
||||
{
|
||||
return( hypre_GMRESSetLogging( (void *) solver, logging ) );
|
||||
return( HYPRE_GMRESSetLogging( solver, logging ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -186,7 +185,7 @@ int
|
||||
HYPRE_CSRGMRESGetNumIterations( HYPRE_Solver solver,
|
||||
int *num_iterations )
|
||||
{
|
||||
return( hypre_GMRESGetNumIterations( (void *) solver, num_iterations ) );
|
||||
return( HYPRE_GMRESGetNumIterations( solver, num_iterations ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -197,5 +196,5 @@ int
|
||||
HYPRE_CSRGMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver,
|
||||
double *norm )
|
||||
{
|
||||
return( hypre_GMRESGetFinalRelativeResidualNorm( (void *) solver, norm ) );
|
||||
return( HYPRE_GMRESGetFinalRelativeResidualNorm( solver, norm ) );
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
#include "headers.h"
|
||||
#include "krylov.h"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_CSRPCGCreate
|
||||
@ -60,10 +61,9 @@ HYPRE_CSRPCGSetup( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_PCGSetup( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_PCGSetup( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -76,10 +76,9 @@ HYPRE_CSRPCGSolve( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_PCGSolve( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_PCGSolve( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -90,7 +89,7 @@ int
|
||||
HYPRE_CSRPCGSetTol( HYPRE_Solver solver,
|
||||
double tol )
|
||||
{
|
||||
return( hypre_PCGSetTol( (void *) solver, tol ) );
|
||||
return( HYPRE_PCGSetTol( solver, tol ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -101,7 +100,7 @@ int
|
||||
HYPRE_CSRPCGSetMaxIter( HYPRE_Solver solver,
|
||||
int max_iter )
|
||||
{
|
||||
return( hypre_PCGSetMaxIter( (void *) solver, max_iter ) );
|
||||
return( HYPRE_PCGSetMaxIter( solver, max_iter ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -127,7 +126,7 @@ int
|
||||
HYPRE_CSRPCGSetTwoNorm( HYPRE_Solver solver,
|
||||
int two_norm )
|
||||
{
|
||||
return( hypre_PCGSetTwoNorm( (void *) solver, two_norm ) );
|
||||
return( HYPRE_PCGSetTwoNorm( solver, two_norm ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -138,7 +137,7 @@ int
|
||||
HYPRE_CSRPCGSetRelChange( HYPRE_Solver solver,
|
||||
int rel_change )
|
||||
{
|
||||
return( hypre_PCGSetRelChange( (void *) solver, rel_change ) );
|
||||
return( HYPRE_PCGSetRelChange( solver, rel_change ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -157,8 +156,10 @@ HYPRE_CSRPCGSetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Vector x),
|
||||
void *precond_data )
|
||||
{
|
||||
return( hypre_PCGSetPrecond( (void *) solver,
|
||||
precond, precond_setup, precond_data ) );
|
||||
return( HYPRE_PCGSetPrecond( solver,
|
||||
(HYPRE_PtrToSolverFcn) precond,
|
||||
(HYPRE_PtrToSolverFcn) precond_setup,
|
||||
(HYPRE_Solver) precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -169,8 +170,7 @@ int
|
||||
HYPRE_CSRPCGGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_PCGGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
return( HYPRE_PCGGetPrecond( solver, precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -181,7 +181,7 @@ int
|
||||
HYPRE_CSRPCGSetLogging( HYPRE_Solver solver,
|
||||
int logging )
|
||||
{
|
||||
return( hypre_PCGSetLogging( (void *) solver, logging ) );
|
||||
return( HYPRE_PCGSetLogging( solver, logging ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -192,7 +192,7 @@ int
|
||||
HYPRE_CSRPCGGetNumIterations( HYPRE_Solver solver,
|
||||
int *num_iterations )
|
||||
{
|
||||
return( hypre_PCGGetNumIterations( (void *) solver, num_iterations ) );
|
||||
return( HYPRE_PCGGetNumIterations( solver, num_iterations ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -203,7 +203,7 @@ int
|
||||
HYPRE_CSRPCGGetFinalRelativeResidualNorm( HYPRE_Solver solver,
|
||||
double *norm )
|
||||
{
|
||||
return( hypre_PCGGetFinalRelativeResidualNorm( (void *) solver, norm ) );
|
||||
return( HYPRE_PCGGetFinalRelativeResidualNorm( solver, norm ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
||||
@ -13,11 +13,11 @@
|
||||
|
||||
srcdir = .
|
||||
|
||||
CC = kcc
|
||||
CC = mpicc
|
||||
|
||||
C_COMPILE_FLAGS= --c --strict --lint --display_error_number --diag_suppress 236,826,1018,1021,1022,1023,1024,1030,1041
|
||||
CXX_COMPILE_FLAGS= --strict --lint --display_error_number
|
||||
F77_COMPILE_FLAGS=
|
||||
C_COMPILE_FLAGS= -g
|
||||
CXX_COMPILE_FLAGS=-DNOFEI -g
|
||||
F77_COMPILE_FLAGS= -g -silent
|
||||
CINCLUDES=
|
||||
CDEFS =
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
|
||||
#include "headers.h"
|
||||
#include "krylov.h"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Test driver for unstructured matrix interface (csr storage).
|
||||
@ -546,11 +547,11 @@ main( int argc,
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRPCGCreate( &pcg_solver);
|
||||
HYPRE_CSRPCGSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_CSRPCGSetTol(pcg_solver, tol);
|
||||
HYPRE_CSRPCGSetTwoNorm(pcg_solver, 1);
|
||||
HYPRE_CSRPCGSetRelChange(pcg_solver, 0);
|
||||
HYPRE_CSRPCGSetLogging(pcg_solver, 1);
|
||||
HYPRE_PCGSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_PCGSetTol(pcg_solver, tol);
|
||||
HYPRE_PCGSetTwoNorm(pcg_solver, 1);
|
||||
HYPRE_PCGSetRelChange(pcg_solver, 0);
|
||||
HYPRE_PCGSetLogging(pcg_solver, 1);
|
||||
|
||||
if (solver_id == 1)
|
||||
{
|
||||
@ -572,20 +573,22 @@ main( int argc,
|
||||
HYPRE_AMGSetInterpType(pcg_precond, interp_type);
|
||||
HYPRE_AMGSetNumFunctions(pcg_precond, num_functions);
|
||||
HYPRE_AMGSetDofFunc(pcg_precond, dof_func);
|
||||
HYPRE_CSRPCGSetPrecond(pcg_solver, HYPRE_AMGSolve, HYPRE_AMGSetup,
|
||||
pcg_precond);
|
||||
HYPRE_PCGSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_AMGSolve,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_AMGSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
else if (solver_id == 2)
|
||||
{
|
||||
/* use diagonal scaling as preconditioner */
|
||||
printf ("Solver: DS-PCG\n");
|
||||
pcg_precond = NULL;
|
||||
HYPRE_CSRPCGSetPrecond(pcg_solver, HYPRE_CSRDiagScale,
|
||||
HYPRE_CSRDiagScaleSetup, pcg_precond);
|
||||
HYPRE_PCGSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScale,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScaleSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
|
||||
HYPRE_CSRPCGSetup(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
HYPRE_PCGSetup( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
/* hypre_EndTiming(time_index);
|
||||
hypre_PrintTiming("Setup phase times", MPI_COMM_WORLD);
|
||||
hypre_FinalizeTiming(time_index);
|
||||
@ -594,7 +597,7 @@ main( int argc,
|
||||
time_index = hypre_InitializeTiming("PCG Solve");
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRPCGSolve(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
HYPRE_PCGSolve( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
|
||||
/* hypre_EndTiming(time_index);
|
||||
@ -602,8 +605,8 @@ main( int argc,
|
||||
hypre_FinalizeTiming(time_index);
|
||||
hypre_ClearTiming(); */
|
||||
|
||||
HYPRE_CSRPCGGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_CSRPCGGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
HYPRE_PCGGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_PCGGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
|
||||
HYPRE_CSRPCGDestroy(pcg_solver);
|
||||
|
||||
@ -628,10 +631,10 @@ main( int argc,
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRGMRESCreate( &pcg_solver);
|
||||
HYPRE_CSRGMRESSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_CSRGMRESSetTol(pcg_solver, tol);
|
||||
HYPRE_CSRGMRESSetKDim(pcg_solver, k_dim);
|
||||
HYPRE_CSRGMRESSetLogging(pcg_solver, 1);
|
||||
HYPRE_GMRESSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_GMRESSetTol(pcg_solver, tol);
|
||||
HYPRE_GMRESSetKDim(pcg_solver, k_dim);
|
||||
HYPRE_GMRESSetLogging(pcg_solver, 1);
|
||||
|
||||
if (solver_id == 3)
|
||||
{
|
||||
@ -653,7 +656,8 @@ main( int argc,
|
||||
HYPRE_AMGSetInterpType(pcg_precond, interp_type);
|
||||
HYPRE_AMGSetNumFunctions(pcg_precond, num_functions);
|
||||
HYPRE_AMGSetDofFunc(pcg_precond, dof_func);
|
||||
HYPRE_CSRGMRESSetPrecond(pcg_solver, HYPRE_AMGSolve, HYPRE_AMGSetup,
|
||||
HYPRE_GMRESSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_AMGSolve,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_AMGSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
else if (solver_id == 2)
|
||||
@ -661,11 +665,12 @@ main( int argc,
|
||||
/* use diagonal scaling as preconditioner */
|
||||
printf ("Solver: DS-GMRES\n");
|
||||
pcg_precond = NULL;
|
||||
HYPRE_CSRGMRESSetPrecond(pcg_solver, HYPRE_CSRDiagScale,
|
||||
HYPRE_CSRDiagScaleSetup, pcg_precond);
|
||||
HYPRE_GMRESSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScale,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScaleSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
|
||||
HYPRE_CSRGMRESSetup(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
HYPRE_GMRESSetup( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
/* hypre_EndTiming(time_index);
|
||||
hypre_PrintTiming("Setup phase times", MPI_COMM_WORLD);
|
||||
@ -675,7 +680,7 @@ main( int argc,
|
||||
time_index = hypre_InitializeTiming("GMRES Solve");
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRGMRESSolve(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
HYPRE_GMRESSolve( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
|
||||
/* hypre_EndTiming(time_index);
|
||||
@ -683,8 +688,8 @@ main( int argc,
|
||||
hypre_FinalizeTiming(time_index);
|
||||
hypre_ClearTiming(); */
|
||||
|
||||
HYPRE_CSRGMRESGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_CSRGMRESGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
HYPRE_GMRESGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_GMRESGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
|
||||
HYPRE_CSRGMRESDestroy(pcg_solver);
|
||||
|
||||
|
||||
@ -58,10 +58,9 @@ HYPRE_CSRGMRESSetup( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_GMRESSetup( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_GMRESSetup( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -74,10 +73,9 @@ HYPRE_CSRGMRESSolve( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_GMRESSolve( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_GMRESSolve( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -88,7 +86,7 @@ int
|
||||
HYPRE_CSRGMRESSetKDim( HYPRE_Solver solver,
|
||||
int k_dim )
|
||||
{
|
||||
return( hypre_GMRESSetKDim( (void *) solver, k_dim ) );
|
||||
return( HYPRE_GMRESSetKDim( solver, k_dim ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -99,7 +97,7 @@ int
|
||||
HYPRE_CSRGMRESSetTol( HYPRE_Solver solver,
|
||||
double tol )
|
||||
{
|
||||
return( hypre_GMRESSetTol( (void *) solver, tol ) );
|
||||
return( HYPRE_GMRESSetTol( solver, tol ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -110,7 +108,7 @@ int
|
||||
HYPRE_CSRGMRESSetMinIter( HYPRE_Solver solver,
|
||||
int min_iter )
|
||||
{
|
||||
return( hypre_GMRESSetMinIter( (void *) solver, min_iter ) );
|
||||
return( HYPRE_GMRESSetMinIter( solver, min_iter ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -121,7 +119,7 @@ int
|
||||
HYPRE_CSRGMRESSetMaxIter( HYPRE_Solver solver,
|
||||
int max_iter )
|
||||
{
|
||||
return( hypre_GMRESSetMaxIter( (void *) solver, max_iter ) );
|
||||
return( HYPRE_GMRESSetMaxIter( solver, max_iter ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -132,7 +130,7 @@ int
|
||||
HYPRE_CSRGMRESSetStopCrit( HYPRE_Solver solver,
|
||||
int stop_crit )
|
||||
{
|
||||
return( hypre_GMRESSetStopCrit( (void *) solver, stop_crit ) );
|
||||
return( HYPRE_GMRESSetStopCrit( solver, stop_crit ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -151,8 +149,10 @@ HYPRE_CSRGMRESSetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Vector x),
|
||||
void *precond_data )
|
||||
{
|
||||
return( hypre_GMRESSetPrecond( (void *) solver,
|
||||
precond, precond_setup, precond_data ) );
|
||||
return( HYPRE_GMRESSetPrecond( solver,
|
||||
(HYPRE_PtrToSolverFcn) precond,
|
||||
(HYPRE_PtrToSolverFcn) precond_setup,
|
||||
(HYPRE_Solver) precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -163,8 +163,7 @@ int
|
||||
HYPRE_CSRGMRESGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_GMRESGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
return( HYPRE_GMRESGetPrecond( solver, precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -175,7 +174,7 @@ int
|
||||
HYPRE_CSRGMRESSetLogging( HYPRE_Solver solver,
|
||||
int logging)
|
||||
{
|
||||
return( hypre_GMRESSetLogging( (void *) solver, logging ) );
|
||||
return( HYPRE_GMRESSetLogging( solver, logging ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -186,7 +185,7 @@ int
|
||||
HYPRE_CSRGMRESGetNumIterations( HYPRE_Solver solver,
|
||||
int *num_iterations )
|
||||
{
|
||||
return( hypre_GMRESGetNumIterations( (void *) solver, num_iterations ) );
|
||||
return( HYPRE_GMRESGetNumIterations( solver, num_iterations ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -197,5 +196,5 @@ int
|
||||
HYPRE_CSRGMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver,
|
||||
double *norm )
|
||||
{
|
||||
return( hypre_GMRESGetFinalRelativeResidualNorm( (void *) solver, norm ) );
|
||||
return( HYPRE_GMRESGetFinalRelativeResidualNorm( solver, norm ) );
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
#include "headers.h"
|
||||
#include "krylov.h"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_CSRPCGCreate
|
||||
@ -60,10 +61,9 @@ HYPRE_CSRPCGSetup( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_PCGSetup( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_PCGSetup( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -76,10 +76,9 @@ HYPRE_CSRPCGSolve( HYPRE_Solver solver,
|
||||
HYPRE_Vector b,
|
||||
HYPRE_Vector x )
|
||||
{
|
||||
return( hypre_PCGSolve( (void *) solver,
|
||||
(void *) A,
|
||||
(void *) b,
|
||||
(void *) x ) );
|
||||
return( HYPRE_PCGSolve( solver,
|
||||
(HYPRE_Matrix) A,
|
||||
b, x ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -90,7 +89,7 @@ int
|
||||
HYPRE_CSRPCGSetTol( HYPRE_Solver solver,
|
||||
double tol )
|
||||
{
|
||||
return( hypre_PCGSetTol( (void *) solver, tol ) );
|
||||
return( HYPRE_PCGSetTol( solver, tol ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -101,7 +100,7 @@ int
|
||||
HYPRE_CSRPCGSetMaxIter( HYPRE_Solver solver,
|
||||
int max_iter )
|
||||
{
|
||||
return( hypre_PCGSetMaxIter( (void *) solver, max_iter ) );
|
||||
return( HYPRE_PCGSetMaxIter( solver, max_iter ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -127,7 +126,7 @@ int
|
||||
HYPRE_CSRPCGSetTwoNorm( HYPRE_Solver solver,
|
||||
int two_norm )
|
||||
{
|
||||
return( hypre_PCGSetTwoNorm( (void *) solver, two_norm ) );
|
||||
return( HYPRE_PCGSetTwoNorm( solver, two_norm ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -138,7 +137,7 @@ int
|
||||
HYPRE_CSRPCGSetRelChange( HYPRE_Solver solver,
|
||||
int rel_change )
|
||||
{
|
||||
return( hypre_PCGSetRelChange( (void *) solver, rel_change ) );
|
||||
return( HYPRE_PCGSetRelChange( solver, rel_change ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -157,8 +156,10 @@ HYPRE_CSRPCGSetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Vector x),
|
||||
void *precond_data )
|
||||
{
|
||||
return( hypre_PCGSetPrecond( (void *) solver,
|
||||
precond, precond_setup, precond_data ) );
|
||||
return( HYPRE_PCGSetPrecond( solver,
|
||||
(HYPRE_PtrToSolverFcn) precond,
|
||||
(HYPRE_PtrToSolverFcn) precond_setup,
|
||||
(HYPRE_Solver) precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -169,8 +170,7 @@ int
|
||||
HYPRE_CSRPCGGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_PCGGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
return( HYPRE_PCGGetPrecond( solver, precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -181,7 +181,7 @@ int
|
||||
HYPRE_CSRPCGSetLogging( HYPRE_Solver solver,
|
||||
int logging )
|
||||
{
|
||||
return( hypre_PCGSetLogging( (void *) solver, logging ) );
|
||||
return( HYPRE_PCGSetLogging( solver, logging ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -192,7 +192,7 @@ int
|
||||
HYPRE_CSRPCGGetNumIterations( HYPRE_Solver solver,
|
||||
int *num_iterations )
|
||||
{
|
||||
return( hypre_PCGGetNumIterations( (void *) solver, num_iterations ) );
|
||||
return( HYPRE_PCGGetNumIterations( solver, num_iterations ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
@ -203,7 +203,7 @@ int
|
||||
HYPRE_CSRPCGGetFinalRelativeResidualNorm( HYPRE_Solver solver,
|
||||
double *norm )
|
||||
{
|
||||
return( hypre_PCGGetFinalRelativeResidualNorm( (void *) solver, norm ) );
|
||||
return( HYPRE_PCGGetFinalRelativeResidualNorm( solver, norm ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
||||
@ -13,11 +13,11 @@
|
||||
|
||||
srcdir = .
|
||||
|
||||
CC = kcc
|
||||
CC = mpicc
|
||||
|
||||
C_COMPILE_FLAGS= --c --strict --lint --display_error_number --diag_suppress 236,826,1018,1021,1022,1023,1024,1030,1041
|
||||
CXX_COMPILE_FLAGS= --strict --lint --display_error_number
|
||||
F77_COMPILE_FLAGS=
|
||||
C_COMPILE_FLAGS= -g
|
||||
CXX_COMPILE_FLAGS=-DNOFEI -g
|
||||
F77_COMPILE_FLAGS= -g -silent
|
||||
CINCLUDES=
|
||||
CDEFS =
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
|
||||
#include "headers.h"
|
||||
#include "krylov.h"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Test driver for unstructured matrix interface (csr storage).
|
||||
@ -546,11 +547,11 @@ main( int argc,
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRPCGCreate( &pcg_solver);
|
||||
HYPRE_CSRPCGSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_CSRPCGSetTol(pcg_solver, tol);
|
||||
HYPRE_CSRPCGSetTwoNorm(pcg_solver, 1);
|
||||
HYPRE_CSRPCGSetRelChange(pcg_solver, 0);
|
||||
HYPRE_CSRPCGSetLogging(pcg_solver, 1);
|
||||
HYPRE_PCGSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_PCGSetTol(pcg_solver, tol);
|
||||
HYPRE_PCGSetTwoNorm(pcg_solver, 1);
|
||||
HYPRE_PCGSetRelChange(pcg_solver, 0);
|
||||
HYPRE_PCGSetLogging(pcg_solver, 1);
|
||||
|
||||
if (solver_id == 1)
|
||||
{
|
||||
@ -572,20 +573,22 @@ main( int argc,
|
||||
HYPRE_AMGSetInterpType(pcg_precond, interp_type);
|
||||
HYPRE_AMGSetNumFunctions(pcg_precond, num_functions);
|
||||
HYPRE_AMGSetDofFunc(pcg_precond, dof_func);
|
||||
HYPRE_CSRPCGSetPrecond(pcg_solver, HYPRE_AMGSolve, HYPRE_AMGSetup,
|
||||
pcg_precond);
|
||||
HYPRE_PCGSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_AMGSolve,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_AMGSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
else if (solver_id == 2)
|
||||
{
|
||||
/* use diagonal scaling as preconditioner */
|
||||
printf ("Solver: DS-PCG\n");
|
||||
pcg_precond = NULL;
|
||||
HYPRE_CSRPCGSetPrecond(pcg_solver, HYPRE_CSRDiagScale,
|
||||
HYPRE_CSRDiagScaleSetup, pcg_precond);
|
||||
HYPRE_PCGSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScale,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScaleSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
|
||||
HYPRE_CSRPCGSetup(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
HYPRE_PCGSetup( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
/* hypre_EndTiming(time_index);
|
||||
hypre_PrintTiming("Setup phase times", MPI_COMM_WORLD);
|
||||
hypre_FinalizeTiming(time_index);
|
||||
@ -594,7 +597,7 @@ main( int argc,
|
||||
time_index = hypre_InitializeTiming("PCG Solve");
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRPCGSolve(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
HYPRE_PCGSolve( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
|
||||
/* hypre_EndTiming(time_index);
|
||||
@ -602,8 +605,8 @@ main( int argc,
|
||||
hypre_FinalizeTiming(time_index);
|
||||
hypre_ClearTiming(); */
|
||||
|
||||
HYPRE_CSRPCGGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_CSRPCGGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
HYPRE_PCGGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_PCGGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
|
||||
HYPRE_CSRPCGDestroy(pcg_solver);
|
||||
|
||||
@ -628,10 +631,10 @@ main( int argc,
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRGMRESCreate( &pcg_solver);
|
||||
HYPRE_CSRGMRESSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_CSRGMRESSetTol(pcg_solver, tol);
|
||||
HYPRE_CSRGMRESSetKDim(pcg_solver, k_dim);
|
||||
HYPRE_CSRGMRESSetLogging(pcg_solver, 1);
|
||||
HYPRE_GMRESSetMaxIter(pcg_solver, 500);
|
||||
HYPRE_GMRESSetTol(pcg_solver, tol);
|
||||
HYPRE_GMRESSetKDim(pcg_solver, k_dim);
|
||||
HYPRE_GMRESSetLogging(pcg_solver, 1);
|
||||
|
||||
if (solver_id == 3)
|
||||
{
|
||||
@ -653,7 +656,8 @@ main( int argc,
|
||||
HYPRE_AMGSetInterpType(pcg_precond, interp_type);
|
||||
HYPRE_AMGSetNumFunctions(pcg_precond, num_functions);
|
||||
HYPRE_AMGSetDofFunc(pcg_precond, dof_func);
|
||||
HYPRE_CSRGMRESSetPrecond(pcg_solver, HYPRE_AMGSolve, HYPRE_AMGSetup,
|
||||
HYPRE_GMRESSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_AMGSolve,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_AMGSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
else if (solver_id == 2)
|
||||
@ -661,11 +665,12 @@ main( int argc,
|
||||
/* use diagonal scaling as preconditioner */
|
||||
printf ("Solver: DS-GMRES\n");
|
||||
pcg_precond = NULL;
|
||||
HYPRE_CSRGMRESSetPrecond(pcg_solver, HYPRE_CSRDiagScale,
|
||||
HYPRE_CSRDiagScaleSetup, pcg_precond);
|
||||
HYPRE_GMRESSetPrecond( pcg_solver, (HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScale,
|
||||
(HYPRE_PtrToSolverFcn) HYPRE_CSRDiagScaleSetup,
|
||||
pcg_precond);
|
||||
}
|
||||
|
||||
HYPRE_CSRGMRESSetup(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
HYPRE_GMRESSetup( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
/* hypre_EndTiming(time_index);
|
||||
hypre_PrintTiming("Setup phase times", MPI_COMM_WORLD);
|
||||
@ -675,7 +680,7 @@ main( int argc,
|
||||
time_index = hypre_InitializeTiming("GMRES Solve");
|
||||
hypre_BeginTiming(time_index); */
|
||||
|
||||
HYPRE_CSRGMRESSolve(pcg_solver, (HYPRE_CSRMatrix) A, (HYPRE_Vector) b,
|
||||
HYPRE_GMRESSolve( pcg_solver, (HYPRE_Matrix) A, (HYPRE_Vector) b,
|
||||
(HYPRE_Vector) x);
|
||||
|
||||
/* hypre_EndTiming(time_index);
|
||||
@ -683,8 +688,8 @@ main( int argc,
|
||||
hypre_FinalizeTiming(time_index);
|
||||
hypre_ClearTiming(); */
|
||||
|
||||
HYPRE_CSRGMRESGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_CSRGMRESGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
HYPRE_GMRESGetNumIterations(pcg_solver, &num_iterations);
|
||||
HYPRE_GMRESGetFinalRelativeResidualNorm(pcg_solver, &final_res_norm);
|
||||
|
||||
HYPRE_CSRGMRESDestroy(pcg_solver);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user