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:
painter 2000-12-14 16:35:23 +00:00
parent 623cf886a1
commit 4a0ef6c539
8 changed files with 144 additions and 136 deletions

View File

@ -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 ) );
}

View File

@ -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 ) );
}
/*--------------------------------------------------------------------------

View File

@ -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 =

View File

@ -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);

View File

@ -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 ) );
}

View File

@ -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 ) );
}
/*--------------------------------------------------------------------------

View File

@ -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 =

View File

@ -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);