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
|
||||
|
||||
FILES =\
|
||||
gmres.c\
|
||||
pcg.c\
|
||||
bicgstab.c\
|
||||
cgnr.c\
|
||||
gmres.c\
|
||||
pcg.c\
|
||||
HYPRE_bicgstab.c\
|
||||
HYPRE_cgnr.c\
|
||||
HYPRE_gmres.c\
|
||||
HYPRE_pcg.c
|
||||
|
||||
|
||||
@ -718,6 +718,34 @@ extern "C" {
|
||||
#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 */
|
||||
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 );
|
||||
|
||||
Loading…
Reference in New Issue
Block a user