user-callable CGNR and BiCGSTAB
This commit is contained in:
parent
71f0d51b01
commit
5a04db7d65
166
krylov/HYPRE_bicgstab.c
Normal file
166
krylov/HYPRE_bicgstab.c
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
/*BHEADER**********************************************************************
|
||||||
|
* (c) 2000 The Regents of the University of California
|
||||||
|
*
|
||||||
|
* See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
|
||||||
|
* notice, contact person, and disclaimer.
|
||||||
|
*
|
||||||
|
* $Revision$
|
||||||
|
*********************************************************************EHEADER*/
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* HYPRE_BiCGSTAB interface
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "krylov.h"
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABCreate does not exist. Call the appropriate function which
|
||||||
|
* also specifies the vector type, e.g. HYPRE_ParCSRBiCGSTABCreate
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABDestroy
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABDestroy( HYPRE_Solver solver )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABDestroy( (void *) solver ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetup
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetup( HYPRE_Solver solver,
|
||||||
|
HYPRE_Matrix A,
|
||||||
|
HYPRE_Vector b,
|
||||||
|
HYPRE_Vector x )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetup( (void *) solver,
|
||||||
|
(void *) A,
|
||||||
|
(void *) b,
|
||||||
|
(void *) x ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSolve
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSolve( HYPRE_Solver solver,
|
||||||
|
HYPRE_Matrix A,
|
||||||
|
HYPRE_Vector b,
|
||||||
|
HYPRE_Vector x )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSolve( (void *) solver,
|
||||||
|
(void *) A,
|
||||||
|
(void *) b,
|
||||||
|
(void *) x ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetTol
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetTol( HYPRE_Solver solver,
|
||||||
|
double tol )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetTol( (void *) solver, tol ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetMinIter
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetMinIter( HYPRE_Solver solver,
|
||||||
|
int min_iter )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetMinIter( (void *) solver, min_iter ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetMaxIter
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetMaxIter( HYPRE_Solver solver,
|
||||||
|
int max_iter )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetMaxIter( (void *) solver, max_iter ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetStopCrit
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetStopCrit( HYPRE_Solver solver,
|
||||||
|
int stop_crit )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetStopCrit( (void *) solver, stop_crit ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetPrecond
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetPrecond( HYPRE_Solver solver,
|
||||||
|
HYPRE_PtrToSolverFcn precond,
|
||||||
|
HYPRE_PtrToSolverFcn precond_setup,
|
||||||
|
HYPRE_Solver precond_solver )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetPrecond( (void *) solver,
|
||||||
|
precond, precond_setup,
|
||||||
|
(void *) precond_solver ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABGetPrecond
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABGetPrecond( HYPRE_Solver solver,
|
||||||
|
HYPRE_Solver *precond_data_ptr )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABGetPrecond( (void *) solver,
|
||||||
|
(HYPRE_Solver *) precond_data_ptr ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABSetLogging
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABSetLogging( HYPRE_Solver solver,
|
||||||
|
int logging)
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABSetLogging( (void *) solver, logging ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABGetNumIterations
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABGetNumIterations( HYPRE_Solver solver,
|
||||||
|
int *num_iterations )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABGetNumIterations( (void *) solver, num_iterations ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_BiCGSTABGetFinalRelativeResidualNorm
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_BiCGSTABGetFinalRelativeResidualNorm( HYPRE_Solver solver,
|
||||||
|
double *norm )
|
||||||
|
{
|
||||||
|
return( hypre_BiCGSTABGetFinalRelativeResidualNorm( (void *) solver, norm ) );
|
||||||
|
}
|
||||||
161
krylov/HYPRE_cgnr.c
Normal file
161
krylov/HYPRE_cgnr.c
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
/*BHEADER**********************************************************************
|
||||||
|
* (c) 2000 The Regents of the University of California
|
||||||
|
*
|
||||||
|
* See the file COPYRIGHT_and_DISCLAIMER for a complete copyright
|
||||||
|
* notice, contact person, and disclaimer.
|
||||||
|
*
|
||||||
|
* $Revision$
|
||||||
|
*********************************************************************EHEADER*/
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* HYPRE_CGNR interface
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "krylov.h"
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRCreate does not exist. Call the appropriate function which
|
||||||
|
* also specifies the vector type, e.g. HYPRE_ParCSRCGNRCreate
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRDestroy
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRDestroy( HYPRE_Solver solver )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRDestroy( (void *) solver ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetup
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetup( HYPRE_Solver solver,
|
||||||
|
HYPRE_Matrix A,
|
||||||
|
HYPRE_Vector b,
|
||||||
|
HYPRE_Vector x )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetup( solver, A, b, x ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSolve
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSolve( HYPRE_Solver solver,
|
||||||
|
HYPRE_Matrix A,
|
||||||
|
HYPRE_Vector b,
|
||||||
|
HYPRE_Vector x )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSolve( solver, A, b, x ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetTol
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetTol( HYPRE_Solver solver,
|
||||||
|
double tol )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetTol( (void *) solver, tol ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetMinIter
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetMinIter( HYPRE_Solver solver,
|
||||||
|
int min_iter )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetMinIter( (void *) solver, min_iter ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetMaxIter
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetMaxIter( HYPRE_Solver solver,
|
||||||
|
int max_iter )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetMaxIter( (void *) solver, max_iter ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetStopCrit
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetStopCrit( HYPRE_Solver solver,
|
||||||
|
int stop_crit )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetStopCrit( (void *) solver, stop_crit ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetPrecond
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetPrecond( HYPRE_Solver solver,
|
||||||
|
HYPRE_PtrToSolverFcn precond,
|
||||||
|
HYPRE_PtrToSolverFcn precondT,
|
||||||
|
HYPRE_PtrToSolverFcn precond_setup,
|
||||||
|
HYPRE_Solver precond_solver )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetPrecond( (void *) solver,
|
||||||
|
precond, precondT, precond_setup,
|
||||||
|
(void *) precond_solver ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRGetPrecond
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRGetPrecond( HYPRE_Solver solver,
|
||||||
|
HYPRE_Solver *precond_data_ptr )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRGetPrecond( (void *) solver,
|
||||||
|
(HYPRE_Solver *) precond_data_ptr ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRSetLogging
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRSetLogging( HYPRE_Solver solver,
|
||||||
|
int logging)
|
||||||
|
{
|
||||||
|
return( hypre_CGNRSetLogging( (void *) solver, logging ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRGetNumIterations
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRGetNumIterations( HYPRE_Solver solver,
|
||||||
|
int *num_iterations )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRGetNumIterations( (void *) solver, num_iterations ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
* HYPRE_CGNRGetFinalRelativeResidualNorm
|
||||||
|
*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int
|
||||||
|
HYPRE_CGNRGetFinalRelativeResidualNorm( HYPRE_Solver solver,
|
||||||
|
double *norm )
|
||||||
|
{
|
||||||
|
return( hypre_CGNRGetFinalRelativeResidualNorm( (void *) solver, norm ) );
|
||||||
|
}
|
||||||
@ -33,10 +33,12 @@ HEADERS =\
|
|||||||
krylov.h
|
krylov.h
|
||||||
|
|
||||||
FILES =\
|
FILES =\
|
||||||
gmres.c\
|
|
||||||
pcg.c\
|
|
||||||
bicgstab.c\
|
bicgstab.c\
|
||||||
cgnr.c\
|
cgnr.c\
|
||||||
|
gmres.c\
|
||||||
|
pcg.c\
|
||||||
|
HYPRE_bicgstab.c\
|
||||||
|
HYPRE_cgnr.c\
|
||||||
HYPRE_gmres.c\
|
HYPRE_gmres.c\
|
||||||
HYPRE_pcg.c
|
HYPRE_pcg.c
|
||||||
|
|
||||||
|
|||||||
@ -718,6 +718,34 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* HYPRE_bicgstab.c */
|
||||||
|
int HYPRE_BiCGSTABDestroy( HYPRE_Solver solver );
|
||||||
|
int HYPRE_BiCGSTABSetup( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
||||||
|
int HYPRE_BiCGSTABSolve( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
||||||
|
int HYPRE_BiCGSTABSetTol( HYPRE_Solver solver , double tol );
|
||||||
|
int HYPRE_BiCGSTABSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||||
|
int HYPRE_BiCGSTABSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||||
|
int HYPRE_BiCGSTABSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||||
|
int HYPRE_BiCGSTABSetPrecond( HYPRE_Solver solver , HYPRE_PtrToSolverFcn precond , HYPRE_PtrToSolverFcn precond_setup , HYPRE_Solver precond_solver );
|
||||||
|
int HYPRE_BiCGSTABGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||||
|
int HYPRE_BiCGSTABSetLogging( HYPRE_Solver solver , int logging );
|
||||||
|
int HYPRE_BiCGSTABGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||||
|
int HYPRE_BiCGSTABGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||||
|
|
||||||
|
/* HYPRE_cgnr.c */
|
||||||
|
int HYPRE_CGNRDestroy( HYPRE_Solver solver );
|
||||||
|
int HYPRE_CGNRSetup( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
||||||
|
int HYPRE_CGNRSolve( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
||||||
|
int HYPRE_CGNRSetTol( HYPRE_Solver solver , double tol );
|
||||||
|
int HYPRE_CGNRSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||||
|
int HYPRE_CGNRSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||||
|
int HYPRE_CGNRSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||||
|
int HYPRE_CGNRSetPrecond( HYPRE_Solver solver , HYPRE_PtrToSolverFcn precond , HYPRE_PtrToSolverFcn precondT , HYPRE_PtrToSolverFcn precond_setup , HYPRE_Solver precond_solver );
|
||||||
|
int HYPRE_CGNRGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||||
|
int HYPRE_CGNRSetLogging( HYPRE_Solver solver , int logging );
|
||||||
|
int HYPRE_CGNRGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||||
|
int HYPRE_CGNRGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||||
|
|
||||||
/* HYPRE_gmres.c */
|
/* HYPRE_gmres.c */
|
||||||
int HYPRE_GMRESSetup( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
int HYPRE_GMRESSetup( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
||||||
int HYPRE_GMRESSolve( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
int HYPRE_GMRESSolve( HYPRE_Solver solver , HYPRE_Matrix A , HYPRE_Vector b , HYPRE_Vector x );
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user