Use the new generic user interface to Krylov solvers. Most functions

like HYPRE_StructGMRESSetTol (all but Create and Destroy) are now
obsolete, and for backwards compatibility now simply call function
like Hypre_GMRESSetTol, etc.
This commit is contained in:
painter 2000-12-04 18:54:13 +00:00
parent b2fd731cd9
commit 889880a69c
8 changed files with 88 additions and 74 deletions

View File

@ -97,10 +97,7 @@ HYPRE_StructGMRESSetup( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_GMRESSetup( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_GMRESSetup( solver, A, b, x ) );
}
/*==========================================================================*/
@ -130,10 +127,7 @@ HYPRE_StructGMRESSolve( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_GMRESSolve( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_GMRESSolve( solver, A, b, x ) );
}
/*==========================================================================*/
@ -157,7 +151,7 @@ int
HYPRE_StructGMRESSetTol( HYPRE_StructSolver solver,
double tol )
{
return( hypre_GMRESSetTol( (void *) solver, tol ) );
return( HYPRE_GMRESSetTol( solver, tol ) );
}
/*==========================================================================*/
@ -181,7 +175,7 @@ int
HYPRE_StructGMRESSetMaxIter( HYPRE_StructSolver solver,
int max_iter )
{
return( hypre_GMRESSetMaxIter( (void *) solver, max_iter ) );
return( HYPRE_GMRESSetMaxIter( solver, max_iter ) );
}
@ -213,9 +207,9 @@ HYPRE_StructGMRESSetPrecond( HYPRE_StructSolver solver,
HYPRE_PtrToStructSolverFcn precond_setup,
HYPRE_StructSolver precond_solver )
{
return( hypre_GMRESSetPrecond( (void *) solver,
return( HYPRE_GMRESSetPrecond( solver,
precond, precond_setup,
(void *) precond_solver ) );
precond_solver ) );
}
/*==========================================================================*/
@ -241,7 +235,7 @@ int
HYPRE_StructGMRESSetLogging( HYPRE_StructSolver solver,
int logging )
{
return( hypre_GMRESSetLogging( (void *) solver, logging ) );
return( HYPRE_GMRESSetLogging( solver, logging ) );
}
/*==========================================================================*/
@ -265,7 +259,7 @@ int
HYPRE_StructGMRESGetNumIterations( HYPRE_StructSolver solver,
int *num_iterations )
{
return( hypre_GMRESGetNumIterations( (void *) solver, num_iterations ) );
return( HYPRE_GMRESGetNumIterations( solver, num_iterations ) );
}
/*==========================================================================*/
@ -289,7 +283,7 @@ int
HYPRE_StructGMRESGetFinalRelativeResidualNorm( HYPRE_StructSolver solver,
double *norm )
{
return( hypre_GMRESGetFinalRelativeResidualNorm( (void *) solver, norm ) );
return( HYPRE_GMRESGetFinalRelativeResidualNorm( solver, norm ) );
}

View File

@ -44,11 +44,30 @@ extern "C" {
**/
/*@{*/
struct hypre_StructSolver_struct;
/*struct hypre_StructSolver_struct;*/
/**
* The solver object.
**/
typedef struct hypre_StructSolver_struct *HYPRE_StructSolver;
/*typedef struct hypre_StructSolver_struct *HYPRE_StructSolver;*/
#ifndef HYPRE_SOLVER_STRUCT
#define HYPRE_SOLVER_STRUCT
struct hypre_Solver_struct;
typedef struct hypre_Solver_struct *HYPRE_Solver;
#endif
#ifndef HYPRE_MATRIX_STRUCT
#define HYPRE_MATRIX_STRUCT
struct hypre_Matrix_struct;
typedef struct hypre_Matrix_struct *HYPRE_Matrix;
#endif
#ifndef HYPRE_VECTOR_STRUCT
#define HYPRE_VECTOR_STRUCT
struct hypre_Vector_struct;
typedef struct hypre_Vector_struct *HYPRE_Vector;
#endif
typedef struct hypre_Solver_struct *HYPRE_StructSolver;
typedef int (*HYPRE_PtrToStructSolverFcn)(HYPRE_StructSolver,
HYPRE_StructMatrix,

View File

@ -99,10 +99,7 @@ HYPRE_StructPCGSetup( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_PCGSetup( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_PCGSetup( solver, A, b, x ) );
}
/*==========================================================================*/
@ -132,10 +129,7 @@ HYPRE_StructPCGSolve( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_PCGSolve( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_PCGSolve( solver, A, b, x ) );
}
/*==========================================================================*/
@ -159,7 +153,7 @@ int
HYPRE_StructPCGSetTol( HYPRE_StructSolver solver,
double tol )
{
return( hypre_PCGSetTol( (void *) solver, tol ) );
return( HYPRE_PCGSetTol( solver, tol ) );
}
/*==========================================================================*/
@ -183,7 +177,7 @@ int
HYPRE_StructPCGSetMaxIter( HYPRE_StructSolver solver,
int max_iter )
{
return( hypre_PCGSetMaxIter( (void *) solver, max_iter ) );
return( HYPRE_PCGSetMaxIter( solver, max_iter ) );
}
/*==========================================================================*/
@ -209,7 +203,7 @@ int
HYPRE_StructPCGSetTwoNorm( HYPRE_StructSolver solver,
int two_norm )
{
return( hypre_PCGSetTwoNorm( (void *) solver, two_norm ) );
return( HYPRE_PCGSetTwoNorm( solver, two_norm ) );
}
/*==========================================================================*/
@ -235,7 +229,7 @@ int
HYPRE_StructPCGSetRelChange( HYPRE_StructSolver solver,
int rel_change )
{
return( hypre_PCGSetRelChange( (void *) solver, rel_change ) );
return( HYPRE_PCGSetRelChange( solver, rel_change ) );
}
/*==========================================================================*/
@ -266,9 +260,9 @@ HYPRE_StructPCGSetPrecond( HYPRE_StructSolver solver,
HYPRE_PtrToStructSolverFcn precond_setup,
HYPRE_StructSolver precond_solver )
{
return( hypre_PCGSetPrecond( (void *) solver,
return( HYPRE_PCGSetPrecond( solver,
precond, precond_setup,
(void *) precond_solver ) );
precond_solver ) );
}
/*==========================================================================*/
@ -294,7 +288,7 @@ int
HYPRE_StructPCGSetLogging( HYPRE_StructSolver solver,
int logging )
{
return( hypre_PCGSetLogging( (void *) solver, logging ) );
return( HYPRE_PCGSetLogging( solver, logging ) );
}
/*==========================================================================*/
@ -318,7 +312,7 @@ int
HYPRE_StructPCGGetNumIterations( HYPRE_StructSolver solver,
int *num_iterations )
{
return( hypre_PCGGetNumIterations( (void *) solver, num_iterations ) );
return( HYPRE_PCGGetNumIterations( solver, num_iterations ) );
}
/*==========================================================================*/
@ -342,7 +336,7 @@ int
HYPRE_StructPCGGetFinalRelativeResidualNorm( HYPRE_StructSolver solver,
double *norm )
{
return( hypre_PCGGetFinalRelativeResidualNorm( (void *) solver, norm ) );
return( HYPRE_PCGGetFinalRelativeResidualNorm( solver, norm ) );
}
/*==========================================================================*/

View File

@ -74,9 +74,9 @@ hypre_StructKrylovCreateVectorArray(int n, void *vvector )
{
HYPRE_StructVectorCreate(hypre_StructVectorComm(vector),
hypre_StructVectorGrid(vector),
&new_vector[i]);
HYPRE_StructVectorInitialize(new_vector[i]);
HYPRE_StructVectorAssemble(new_vector[i]);
(HYPRE_StructVector *) &new_vector[i] );
HYPRE_StructVectorInitialize((HYPRE_StructVector) new_vector[i]);
HYPRE_StructVectorAssemble((HYPRE_StructVector) new_vector[i]);
}
return ( (void *) new_vector );

View File

@ -97,10 +97,7 @@ HYPRE_StructGMRESSetup( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_GMRESSetup( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_GMRESSetup( solver, A, b, x ) );
}
/*==========================================================================*/
@ -130,10 +127,7 @@ HYPRE_StructGMRESSolve( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_GMRESSolve( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_GMRESSolve( solver, A, b, x ) );
}
/*==========================================================================*/
@ -157,7 +151,7 @@ int
HYPRE_StructGMRESSetTol( HYPRE_StructSolver solver,
double tol )
{
return( hypre_GMRESSetTol( (void *) solver, tol ) );
return( HYPRE_GMRESSetTol( solver, tol ) );
}
/*==========================================================================*/
@ -181,7 +175,7 @@ int
HYPRE_StructGMRESSetMaxIter( HYPRE_StructSolver solver,
int max_iter )
{
return( hypre_GMRESSetMaxIter( (void *) solver, max_iter ) );
return( HYPRE_GMRESSetMaxIter( solver, max_iter ) );
}
@ -213,9 +207,9 @@ HYPRE_StructGMRESSetPrecond( HYPRE_StructSolver solver,
HYPRE_PtrToStructSolverFcn precond_setup,
HYPRE_StructSolver precond_solver )
{
return( hypre_GMRESSetPrecond( (void *) solver,
return( HYPRE_GMRESSetPrecond( solver,
precond, precond_setup,
(void *) precond_solver ) );
precond_solver ) );
}
/*==========================================================================*/
@ -241,7 +235,7 @@ int
HYPRE_StructGMRESSetLogging( HYPRE_StructSolver solver,
int logging )
{
return( hypre_GMRESSetLogging( (void *) solver, logging ) );
return( HYPRE_GMRESSetLogging( solver, logging ) );
}
/*==========================================================================*/
@ -265,7 +259,7 @@ int
HYPRE_StructGMRESGetNumIterations( HYPRE_StructSolver solver,
int *num_iterations )
{
return( hypre_GMRESGetNumIterations( (void *) solver, num_iterations ) );
return( HYPRE_GMRESGetNumIterations( solver, num_iterations ) );
}
/*==========================================================================*/
@ -289,7 +283,7 @@ int
HYPRE_StructGMRESGetFinalRelativeResidualNorm( HYPRE_StructSolver solver,
double *norm )
{
return( hypre_GMRESGetFinalRelativeResidualNorm( (void *) solver, norm ) );
return( HYPRE_GMRESGetFinalRelativeResidualNorm( solver, norm ) );
}

View File

@ -44,11 +44,30 @@ extern "C" {
**/
/*@{*/
struct hypre_StructSolver_struct;
/*struct hypre_StructSolver_struct;*/
/**
* The solver object.
**/
typedef struct hypre_StructSolver_struct *HYPRE_StructSolver;
/*typedef struct hypre_StructSolver_struct *HYPRE_StructSolver;*/
#ifndef HYPRE_SOLVER_STRUCT
#define HYPRE_SOLVER_STRUCT
struct hypre_Solver_struct;
typedef struct hypre_Solver_struct *HYPRE_Solver;
#endif
#ifndef HYPRE_MATRIX_STRUCT
#define HYPRE_MATRIX_STRUCT
struct hypre_Matrix_struct;
typedef struct hypre_Matrix_struct *HYPRE_Matrix;
#endif
#ifndef HYPRE_VECTOR_STRUCT
#define HYPRE_VECTOR_STRUCT
struct hypre_Vector_struct;
typedef struct hypre_Vector_struct *HYPRE_Vector;
#endif
typedef struct hypre_Solver_struct *HYPRE_StructSolver;
typedef int (*HYPRE_PtrToStructSolverFcn)(HYPRE_StructSolver,
HYPRE_StructMatrix,

View File

@ -99,10 +99,7 @@ HYPRE_StructPCGSetup( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_PCGSetup( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_PCGSetup( solver, A, b, x ) );
}
/*==========================================================================*/
@ -132,10 +129,7 @@ HYPRE_StructPCGSolve( HYPRE_StructSolver solver,
HYPRE_StructVector b,
HYPRE_StructVector x )
{
return( hypre_PCGSolve( (void *) solver,
(void *) A,
(void *) b,
(void *) x ) );
return( HYPRE_PCGSolve( solver, A, b, x ) );
}
/*==========================================================================*/
@ -159,7 +153,7 @@ int
HYPRE_StructPCGSetTol( HYPRE_StructSolver solver,
double tol )
{
return( hypre_PCGSetTol( (void *) solver, tol ) );
return( HYPRE_PCGSetTol( solver, tol ) );
}
/*==========================================================================*/
@ -183,7 +177,7 @@ int
HYPRE_StructPCGSetMaxIter( HYPRE_StructSolver solver,
int max_iter )
{
return( hypre_PCGSetMaxIter( (void *) solver, max_iter ) );
return( HYPRE_PCGSetMaxIter( solver, max_iter ) );
}
/*==========================================================================*/
@ -209,7 +203,7 @@ int
HYPRE_StructPCGSetTwoNorm( HYPRE_StructSolver solver,
int two_norm )
{
return( hypre_PCGSetTwoNorm( (void *) solver, two_norm ) );
return( HYPRE_PCGSetTwoNorm( solver, two_norm ) );
}
/*==========================================================================*/
@ -235,7 +229,7 @@ int
HYPRE_StructPCGSetRelChange( HYPRE_StructSolver solver,
int rel_change )
{
return( hypre_PCGSetRelChange( (void *) solver, rel_change ) );
return( HYPRE_PCGSetRelChange( solver, rel_change ) );
}
/*==========================================================================*/
@ -266,9 +260,9 @@ HYPRE_StructPCGSetPrecond( HYPRE_StructSolver solver,
HYPRE_PtrToStructSolverFcn precond_setup,
HYPRE_StructSolver precond_solver )
{
return( hypre_PCGSetPrecond( (void *) solver,
return( HYPRE_PCGSetPrecond( solver,
precond, precond_setup,
(void *) precond_solver ) );
precond_solver ) );
}
/*==========================================================================*/
@ -294,7 +288,7 @@ int
HYPRE_StructPCGSetLogging( HYPRE_StructSolver solver,
int logging )
{
return( hypre_PCGSetLogging( (void *) solver, logging ) );
return( HYPRE_PCGSetLogging( solver, logging ) );
}
/*==========================================================================*/
@ -318,7 +312,7 @@ int
HYPRE_StructPCGGetNumIterations( HYPRE_StructSolver solver,
int *num_iterations )
{
return( hypre_PCGGetNumIterations( (void *) solver, num_iterations ) );
return( HYPRE_PCGGetNumIterations( solver, num_iterations ) );
}
/*==========================================================================*/
@ -342,7 +336,7 @@ int
HYPRE_StructPCGGetFinalRelativeResidualNorm( HYPRE_StructSolver solver,
double *norm )
{
return( hypre_PCGGetFinalRelativeResidualNorm( (void *) solver, norm ) );
return( HYPRE_PCGGetFinalRelativeResidualNorm( solver, norm ) );
}
/*==========================================================================*/

View File

@ -74,9 +74,9 @@ hypre_StructKrylovCreateVectorArray(int n, void *vvector )
{
HYPRE_StructVectorCreate(hypre_StructVectorComm(vector),
hypre_StructVectorGrid(vector),
&new_vector[i]);
HYPRE_StructVectorInitialize(new_vector[i]);
HYPRE_StructVectorAssemble(new_vector[i]);
(HYPRE_StructVector *) &new_vector[i] );
HYPRE_StructVectorInitialize((HYPRE_StructVector) new_vector[i]);
HYPRE_StructVectorAssemble((HYPRE_StructVector) new_vector[i]);
}
return ( (void *) new_vector );