Gave all of the Krylov solvers implementations of GetPrecond, callable from
C and Fortran
This commit is contained in:
parent
5726be5a03
commit
a80fb1c698
@ -152,6 +152,21 @@ hypre_F90_IFACE(hypre_parcsrcgnrsetprecond)( long int *solver,
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRCGNRGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
void
|
||||
hypre_F90_IFACE(hypre_parcsrcgnrgetprecond)( long int *solver,
|
||||
long int *precond_solver_ptr,
|
||||
int *ierr )
|
||||
{
|
||||
*ierr = (int)
|
||||
( HYPRE_ParCSRCGNRGetPrecond( (HYPRE_Solver) *solver,
|
||||
(HYPRE_Solver *) precond_solver_ptr ) );
|
||||
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRCGNRSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -194,11 +194,11 @@ hypre_F90_IFACE(hypre_parcsrgmressetprecond)( long int *solver,
|
||||
void
|
||||
hypre_F90_IFACE(hypre_parcsrgmresgetprecond)( long int *solver,
|
||||
long int *precond_solver_ptr,
|
||||
int *ierr )
|
||||
int *ierr )
|
||||
{
|
||||
*ierr = (int)
|
||||
( HYPRE_ParCSRGMRESGetPrecond( (HYPRE_Solver) *solver,
|
||||
(long int *) precond_solver_ptr ) );
|
||||
( HYPRE_ParCSRGMRESGetPrecond( (HYPRE_Solver) *solver,
|
||||
(HYPRE_Solver *) precond_solver_ptr ) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -179,6 +179,21 @@ hypre_F90_IFACE(hypre_parcsrpcgsetprecond)( long int *solver,
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
void
|
||||
hypre_F90_IFACE(hypre_parcsrpcggetprecond)( long int *solver,
|
||||
long int *precond_solver_ptr,
|
||||
int *ierr )
|
||||
{
|
||||
*ierr = (int)
|
||||
( HYPRE_ParCSRPCGGetPrecond( (HYPRE_Solver) *solver,
|
||||
(HYPRE_Solver *) precond_solver_ptr ) );
|
||||
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -133,7 +133,19 @@ HYPRE_ParCSRCGNRSetPrecond( HYPRE_Solver solver,
|
||||
void *precond_data )
|
||||
{
|
||||
return( hypre_CGNRSetPrecond( (void *) solver, precond,
|
||||
precondT, precond_setup, precond_data ) );
|
||||
precondT, precond_setup, precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRCGNRGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
HYPRE_ParCSRCGNRGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_CGNRGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
||||
@ -149,10 +149,10 @@ HYPRE_ParCSRGMRESSetPrecond( HYPRE_Solver solver,
|
||||
|
||||
int
|
||||
HYPRE_ParCSRGMRESGetPrecond( HYPRE_Solver solver,
|
||||
long int *precond_data_ptr )
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_GMRESGetPrecond( (void *) solver,
|
||||
(long int *) precond_data_ptr ) );
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
||||
@ -86,6 +86,7 @@ int HYPRE_ParCSRCGNRSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRCGNRSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRCGNRSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRCGNRSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precondT )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRCGNRGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data );
|
||||
int HYPRE_ParCSRCGNRSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRCGNRGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -101,6 +102,7 @@ int HYPRE_ParCSRGMRESSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRGMRESSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRGMRESSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRGMRESSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRGMRESGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data );
|
||||
int HYPRE_ParCSRGMRESSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRGMRESGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -115,6 +117,7 @@ int HYPRE_ParCSRPCGSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRPCGSetTwoNorm( HYPRE_Solver solver , int two_norm );
|
||||
int HYPRE_ParCSRPCGSetRelChange( HYPRE_Solver solver , int rel_change );
|
||||
int HYPRE_ParCSRPCGSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRPCGGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data );
|
||||
int HYPRE_ParCSRPCGSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRPCGGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
|
||||
@ -132,6 +132,18 @@ HYPRE_ParCSRPCGSetPrecond( HYPRE_Solver solver,
|
||||
precond, precond_setup, precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
HYPRE_ParCSRPCGGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_KrylovGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -426,6 +426,22 @@ hypre_CGNRSetPrecond(void *cgnr_vdata,
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_CGNRGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
hypre_CGNRGetPrecond( void *cgnr_vdata,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
hypre_CGNRData *cgnr_data = cgnr_vdata;
|
||||
int ierr = 0;
|
||||
|
||||
*precond_data_ptr = (HYPRE_Solver)(cgnr_data -> precond_data);
|
||||
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_CGNRSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -536,13 +536,13 @@ hypre_GMRESSetPrecond( void *gmres_vdata,
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
hypre_GMRESGetPrecond( void *gmres_vdata,
|
||||
long int *precond_data_ptr )
|
||||
hypre_GMRESGetPrecond( void *gmres_vdata,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
hypre_GMRESData *gmres_data = gmres_vdata;
|
||||
int ierr = 0;
|
||||
|
||||
*precond_data_ptr = (long int)(gmres_data -> precond_data);
|
||||
*precond_data_ptr = (HYPRE_Solver)(gmres_data -> precond_data);
|
||||
|
||||
return ierr;
|
||||
}
|
||||
|
||||
@ -40,6 +40,7 @@ void hypre_F90_IFACE( int hypre_boomeramgsetminiter );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetcoarsentype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetmeasuretype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetsetuptype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetcycletype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsettol );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetnumgridsweeps );
|
||||
@ -62,6 +63,7 @@ void hypre_F90_IFACE( int hypre_parcsrcgnrsolve );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsettol );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrgetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsetlogging );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrgetnumiteration );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrgetfinalrelativ );
|
||||
@ -76,6 +78,7 @@ void hypre_F90_IFACE( int hypre_parcsrgmressettol );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetminiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmresgetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetlogging );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmresgetnumiteratio );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmresgetfinalrelati );
|
||||
@ -90,6 +93,7 @@ void hypre_F90_IFACE( int hypre_parcsrpcgsetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsettwonorm );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsetrelchange );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcggetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsetlogging );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcggetnumiterations );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcggetfinalrelative );
|
||||
@ -118,6 +122,7 @@ int HYPRE_ParCSRParaSailsSetFilter( HYPRE_Solver solver , double filter );
|
||||
int HYPRE_ParCSRParaSailsSetSym( HYPRE_Solver solver , int sym );
|
||||
int HYPRE_ParCSRParaSailsSetLoadbal( HYPRE_Solver solver , double loadbal );
|
||||
int HYPRE_ParCSRParaSailsSetReuse( HYPRE_Solver solver , int reuse );
|
||||
int HYPRE_ParCSRParaSailsSetLogging( HYPRE_Solver solver , int logging );
|
||||
|
||||
/* HYPRE_parcsr_amg.c */
|
||||
int HYPRE_BoomerAMGCreate( HYPRE_Solver *solver );
|
||||
@ -135,6 +140,7 @@ int HYPRE_BoomerAMGSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_BoomerAMGSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_BoomerAMGSetCoarsenType( HYPRE_Solver solver , int coarsen_type );
|
||||
int HYPRE_BoomerAMGSetMeasureType( HYPRE_Solver solver , int measure_type );
|
||||
int HYPRE_BoomerAMGSetSetupType( HYPRE_Solver solver , int setup_type );
|
||||
int HYPRE_BoomerAMGSetCycleType( HYPRE_Solver solver , int cycle_type );
|
||||
int HYPRE_BoomerAMGSetTol( HYPRE_Solver solver , double tol );
|
||||
int HYPRE_BoomerAMGSetNumGridSweeps( HYPRE_Solver solver , int *num_grid_sweeps );
|
||||
@ -159,6 +165,7 @@ int HYPRE_ParCSRCGNRSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRCGNRSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRCGNRSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRCGNRSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precondT )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRCGNRGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||
int HYPRE_ParCSRCGNRSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRCGNRGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -174,6 +181,7 @@ int HYPRE_ParCSRGMRESSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRGMRESSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRGMRESSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRGMRESSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRGMRESGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||
int HYPRE_ParCSRGMRESSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRGMRESGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -188,6 +196,7 @@ int HYPRE_ParCSRPCGSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRPCGSetTwoNorm( HYPRE_Solver solver , int two_norm );
|
||||
int HYPRE_ParCSRPCGSetRelChange( HYPRE_Solver solver , int rel_change );
|
||||
int HYPRE_ParCSRPCGSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRPCGGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||
int HYPRE_ParCSRPCGSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRPCGGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -213,6 +222,7 @@ int hypre_CGNRSetMinIter( void *cgnr_vdata , int min_iter );
|
||||
int hypre_CGNRSetMaxIter( void *cgnr_vdata , int max_iter );
|
||||
int hypre_CGNRSetStopCrit( void *cgnr_vdata , int stop_crit );
|
||||
int hypre_CGNRSetPrecond( void *cgnr_vdata , int (*precond )(), int (*precondT )(), int (*precond_setup )(), void *precond_data );
|
||||
int hypre_CGNRGetPrecond( void *cgnr_vdata , HYPRE_Solver *precond_data_ptr );
|
||||
int hypre_CGNRSetLogging( void *cgnr_vdata , int logging );
|
||||
int hypre_CGNRGetNumIterations( void *cgnr_vdata , int *num_iterations );
|
||||
int hypre_CGNRGetFinalRelativeResidualNorm( void *cgnr_vdata , double *relative_residual_norm );
|
||||
@ -238,6 +248,7 @@ int hypre_GMRESSetMinIter( void *gmres_vdata , int min_iter );
|
||||
int hypre_GMRESSetMaxIter( void *gmres_vdata , int max_iter );
|
||||
int hypre_GMRESSetStopCrit( void *gmres_vdata , double stop_crit );
|
||||
int hypre_GMRESSetPrecond( void *gmres_vdata , int (*precond )(), int (*precond_setup )(), void *precond_data );
|
||||
int hypre_GMRESGetPrecond( void *gmres_vdata , HYPRE_Solver *precond_data_ptr );
|
||||
int hypre_GMRESSetLogging( void *gmres_vdata , int logging );
|
||||
int hypre_GMRESGetNumIterations( void *gmres_vdata , int *num_iterations );
|
||||
int hypre_GMRESGetFinalRelativeResidualNorm( void *gmres_vdata , double *relative_residual_norm );
|
||||
@ -255,6 +266,7 @@ int hypre_BoomerAMGSetMinIter( void *data , int min_iter );
|
||||
int hypre_BoomerAMGSetMaxIter( void *data , int max_iter );
|
||||
int hypre_BoomerAMGSetCoarsenType( void *data , int coarsen_type );
|
||||
int hypre_BoomerAMGSetMeasureType( void *data , int measure_type );
|
||||
int hypre_BoomerAMGSetSetupType( void *data , int setup_type );
|
||||
int hypre_BoomerAMGSetCycleType( void *data , int cycle_type );
|
||||
int hypre_BoomerAMGSetTol( void *data , double tol );
|
||||
int hypre_BoomerAMGSetNumGridSweeps( void *data , int *num_grid_sweeps );
|
||||
@ -347,6 +359,7 @@ int hypre_KrylovSetMaxIter( void *pcg_vdata , int max_iter );
|
||||
int hypre_KrylovSetTwoNorm( void *pcg_vdata , int two_norm );
|
||||
int hypre_KrylovSetRelChange( void *pcg_vdata , int rel_change );
|
||||
int hypre_KrylovSetPrecond( void *pcg_vdata , int (*precond )(), int (*precond_setup )(), void *precond_data );
|
||||
int hypre_KrylovGetPrecond( void *pcg_vdata , HYPRE_Solver *precond_data_ptr );
|
||||
int hypre_KrylovSetLogging( void *pcg_vdata , int logging );
|
||||
int hypre_KrylovGetNumIterations( void *pcg_vdata , int *num_iterations );
|
||||
int hypre_KrylovPrintLogging( void *pcg_vdata , int myid );
|
||||
|
||||
@ -13,9 +13,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include "headers.h"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Prototypes:
|
||||
@ -541,9 +539,9 @@ hypre_KrylovSetRelChange( void *pcg_vdata,
|
||||
|
||||
int
|
||||
hypre_KrylovSetPrecond( void *pcg_vdata,
|
||||
int (*precond)(),
|
||||
int (*precond_setup)(),
|
||||
void *precond_data )
|
||||
int (*precond)(),
|
||||
int (*precond_setup)(),
|
||||
void *precond_data )
|
||||
{
|
||||
hypre_PCGData *pcg_data = pcg_vdata;
|
||||
int ierr = 0;
|
||||
@ -555,6 +553,22 @@ hypre_KrylovSetPrecond( void *pcg_vdata,
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_KrylovGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
hypre_KrylovGetPrecond( void *pcg_vdata,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
hypre_PCGData *pcg_data = pcg_vdata;
|
||||
int ierr = 0;
|
||||
|
||||
*precond_data_ptr = (HYPRE_Solver)(pcg_data -> precond_data);
|
||||
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_KrylovSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -152,6 +152,21 @@ hypre_F90_IFACE(hypre_parcsrcgnrsetprecond)( long int *solver,
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRCGNRGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
void
|
||||
hypre_F90_IFACE(hypre_parcsrcgnrgetprecond)( long int *solver,
|
||||
long int *precond_solver_ptr,
|
||||
int *ierr )
|
||||
{
|
||||
*ierr = (int)
|
||||
( HYPRE_ParCSRCGNRGetPrecond( (HYPRE_Solver) *solver,
|
||||
(HYPRE_Solver *) precond_solver_ptr ) );
|
||||
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRCGNRSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -194,11 +194,11 @@ hypre_F90_IFACE(hypre_parcsrgmressetprecond)( long int *solver,
|
||||
void
|
||||
hypre_F90_IFACE(hypre_parcsrgmresgetprecond)( long int *solver,
|
||||
long int *precond_solver_ptr,
|
||||
int *ierr )
|
||||
int *ierr )
|
||||
{
|
||||
*ierr = (int)
|
||||
( HYPRE_ParCSRGMRESGetPrecond( (HYPRE_Solver) *solver,
|
||||
(long int *) precond_solver_ptr ) );
|
||||
( HYPRE_ParCSRGMRESGetPrecond( (HYPRE_Solver) *solver,
|
||||
(HYPRE_Solver *) precond_solver_ptr ) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -179,6 +179,21 @@ hypre_F90_IFACE(hypre_parcsrpcgsetprecond)( long int *solver,
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
void
|
||||
hypre_F90_IFACE(hypre_parcsrpcggetprecond)( long int *solver,
|
||||
long int *precond_solver_ptr,
|
||||
int *ierr )
|
||||
{
|
||||
*ierr = (int)
|
||||
( HYPRE_ParCSRPCGGetPrecond( (HYPRE_Solver) *solver,
|
||||
(HYPRE_Solver *) precond_solver_ptr ) );
|
||||
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -133,7 +133,19 @@ HYPRE_ParCSRCGNRSetPrecond( HYPRE_Solver solver,
|
||||
void *precond_data )
|
||||
{
|
||||
return( hypre_CGNRSetPrecond( (void *) solver, precond,
|
||||
precondT, precond_setup, precond_data ) );
|
||||
precondT, precond_setup, precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRCGNRGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
HYPRE_ParCSRCGNRGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_CGNRGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
||||
@ -149,10 +149,10 @@ HYPRE_ParCSRGMRESSetPrecond( HYPRE_Solver solver,
|
||||
|
||||
int
|
||||
HYPRE_ParCSRGMRESGetPrecond( HYPRE_Solver solver,
|
||||
long int *precond_data_ptr )
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_GMRESGetPrecond( (void *) solver,
|
||||
(long int *) precond_data_ptr ) );
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
|
||||
@ -86,6 +86,7 @@ int HYPRE_ParCSRCGNRSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRCGNRSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRCGNRSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRCGNRSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precondT )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRCGNRGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data );
|
||||
int HYPRE_ParCSRCGNRSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRCGNRGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -101,6 +102,7 @@ int HYPRE_ParCSRGMRESSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRGMRESSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRGMRESSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRGMRESSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRGMRESGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data );
|
||||
int HYPRE_ParCSRGMRESSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRGMRESGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -115,6 +117,7 @@ int HYPRE_ParCSRPCGSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRPCGSetTwoNorm( HYPRE_Solver solver , int two_norm );
|
||||
int HYPRE_ParCSRPCGSetRelChange( HYPRE_Solver solver , int rel_change );
|
||||
int HYPRE_ParCSRPCGSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRPCGGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data );
|
||||
int HYPRE_ParCSRPCGSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRPCGGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
|
||||
@ -132,6 +132,18 @@ HYPRE_ParCSRPCGSetPrecond( HYPRE_Solver solver,
|
||||
precond, precond_setup, precond_data ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
HYPRE_ParCSRPCGGetPrecond( HYPRE_Solver solver,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
return( hypre_KrylovGetPrecond( (void *) solver,
|
||||
(HYPRE_Solver *) precond_data_ptr ) );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* HYPRE_ParCSRPCGSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -426,6 +426,22 @@ hypre_CGNRSetPrecond(void *cgnr_vdata,
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_CGNRGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
hypre_CGNRGetPrecond( void *cgnr_vdata,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
hypre_CGNRData *cgnr_data = cgnr_vdata;
|
||||
int ierr = 0;
|
||||
|
||||
*precond_data_ptr = (HYPRE_Solver)(cgnr_data -> precond_data);
|
||||
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_CGNRSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
@ -536,13 +536,13 @@ hypre_GMRESSetPrecond( void *gmres_vdata,
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
hypre_GMRESGetPrecond( void *gmres_vdata,
|
||||
long int *precond_data_ptr )
|
||||
hypre_GMRESGetPrecond( void *gmres_vdata,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
hypre_GMRESData *gmres_data = gmres_vdata;
|
||||
int ierr = 0;
|
||||
|
||||
*precond_data_ptr = (long int)(gmres_data -> precond_data);
|
||||
*precond_data_ptr = (HYPRE_Solver)(gmres_data -> precond_data);
|
||||
|
||||
return ierr;
|
||||
}
|
||||
|
||||
@ -40,6 +40,7 @@ void hypre_F90_IFACE( int hypre_boomeramgsetminiter );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetcoarsentype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetmeasuretype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetsetuptype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetcycletype );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsettol );
|
||||
void hypre_F90_IFACE( int hypre_boomeramgsetnumgridsweeps );
|
||||
@ -62,6 +63,7 @@ void hypre_F90_IFACE( int hypre_parcsrcgnrsolve );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsettol );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrgetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrsetlogging );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrgetnumiteration );
|
||||
void hypre_F90_IFACE( int hypre_parcsrcgnrgetfinalrelativ );
|
||||
@ -76,6 +78,7 @@ void hypre_F90_IFACE( int hypre_parcsrgmressettol );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetminiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmresgetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmressetlogging );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmresgetnumiteratio );
|
||||
void hypre_F90_IFACE( int hypre_parcsrgmresgetfinalrelati );
|
||||
@ -90,6 +93,7 @@ void hypre_F90_IFACE( int hypre_parcsrpcgsetmaxiter );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsettwonorm );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsetrelchange );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcggetprecond );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcgsetlogging );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcggetnumiterations );
|
||||
void hypre_F90_IFACE( int hypre_parcsrpcggetfinalrelative );
|
||||
@ -118,6 +122,7 @@ int HYPRE_ParCSRParaSailsSetFilter( HYPRE_Solver solver , double filter );
|
||||
int HYPRE_ParCSRParaSailsSetSym( HYPRE_Solver solver , int sym );
|
||||
int HYPRE_ParCSRParaSailsSetLoadbal( HYPRE_Solver solver , double loadbal );
|
||||
int HYPRE_ParCSRParaSailsSetReuse( HYPRE_Solver solver , int reuse );
|
||||
int HYPRE_ParCSRParaSailsSetLogging( HYPRE_Solver solver , int logging );
|
||||
|
||||
/* HYPRE_parcsr_amg.c */
|
||||
int HYPRE_BoomerAMGCreate( HYPRE_Solver *solver );
|
||||
@ -135,6 +140,7 @@ int HYPRE_BoomerAMGSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_BoomerAMGSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_BoomerAMGSetCoarsenType( HYPRE_Solver solver , int coarsen_type );
|
||||
int HYPRE_BoomerAMGSetMeasureType( HYPRE_Solver solver , int measure_type );
|
||||
int HYPRE_BoomerAMGSetSetupType( HYPRE_Solver solver , int setup_type );
|
||||
int HYPRE_BoomerAMGSetCycleType( HYPRE_Solver solver , int cycle_type );
|
||||
int HYPRE_BoomerAMGSetTol( HYPRE_Solver solver , double tol );
|
||||
int HYPRE_BoomerAMGSetNumGridSweeps( HYPRE_Solver solver , int *num_grid_sweeps );
|
||||
@ -159,6 +165,7 @@ int HYPRE_ParCSRCGNRSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRCGNRSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRCGNRSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRCGNRSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precondT )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRCGNRGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||
int HYPRE_ParCSRCGNRSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRCGNRGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRCGNRGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -174,6 +181,7 @@ int HYPRE_ParCSRGMRESSetMinIter( HYPRE_Solver solver , int min_iter );
|
||||
int HYPRE_ParCSRGMRESSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRGMRESSetStopCrit( HYPRE_Solver solver , int stop_crit );
|
||||
int HYPRE_ParCSRGMRESSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRGMRESGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||
int HYPRE_ParCSRGMRESSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRGMRESGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -188,6 +196,7 @@ int HYPRE_ParCSRPCGSetMaxIter( HYPRE_Solver solver , int max_iter );
|
||||
int HYPRE_ParCSRPCGSetTwoNorm( HYPRE_Solver solver , int two_norm );
|
||||
int HYPRE_ParCSRPCGSetRelChange( HYPRE_Solver solver , int rel_change );
|
||||
int HYPRE_ParCSRPCGSetPrecond( HYPRE_Solver solver , int (*precond )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), int (*precond_setup )(HYPRE_Solver sol ,HYPRE_ParCSRMatrix matrix ,HYPRE_ParVector b ,HYPRE_ParVector x ), void *precond_data );
|
||||
int HYPRE_ParCSRPCGGetPrecond( HYPRE_Solver solver , HYPRE_Solver *precond_data_ptr );
|
||||
int HYPRE_ParCSRPCGSetLogging( HYPRE_Solver solver , int logging );
|
||||
int HYPRE_ParCSRPCGGetNumIterations( HYPRE_Solver solver , int *num_iterations );
|
||||
int HYPRE_ParCSRPCGGetFinalRelativeResidualNorm( HYPRE_Solver solver , double *norm );
|
||||
@ -213,6 +222,7 @@ int hypre_CGNRSetMinIter( void *cgnr_vdata , int min_iter );
|
||||
int hypre_CGNRSetMaxIter( void *cgnr_vdata , int max_iter );
|
||||
int hypre_CGNRSetStopCrit( void *cgnr_vdata , int stop_crit );
|
||||
int hypre_CGNRSetPrecond( void *cgnr_vdata , int (*precond )(), int (*precondT )(), int (*precond_setup )(), void *precond_data );
|
||||
int hypre_CGNRGetPrecond( void *cgnr_vdata , HYPRE_Solver *precond_data_ptr );
|
||||
int hypre_CGNRSetLogging( void *cgnr_vdata , int logging );
|
||||
int hypre_CGNRGetNumIterations( void *cgnr_vdata , int *num_iterations );
|
||||
int hypre_CGNRGetFinalRelativeResidualNorm( void *cgnr_vdata , double *relative_residual_norm );
|
||||
@ -238,6 +248,7 @@ int hypre_GMRESSetMinIter( void *gmres_vdata , int min_iter );
|
||||
int hypre_GMRESSetMaxIter( void *gmres_vdata , int max_iter );
|
||||
int hypre_GMRESSetStopCrit( void *gmres_vdata , double stop_crit );
|
||||
int hypre_GMRESSetPrecond( void *gmres_vdata , int (*precond )(), int (*precond_setup )(), void *precond_data );
|
||||
int hypre_GMRESGetPrecond( void *gmres_vdata , HYPRE_Solver *precond_data_ptr );
|
||||
int hypre_GMRESSetLogging( void *gmres_vdata , int logging );
|
||||
int hypre_GMRESGetNumIterations( void *gmres_vdata , int *num_iterations );
|
||||
int hypre_GMRESGetFinalRelativeResidualNorm( void *gmres_vdata , double *relative_residual_norm );
|
||||
@ -255,6 +266,7 @@ int hypre_BoomerAMGSetMinIter( void *data , int min_iter );
|
||||
int hypre_BoomerAMGSetMaxIter( void *data , int max_iter );
|
||||
int hypre_BoomerAMGSetCoarsenType( void *data , int coarsen_type );
|
||||
int hypre_BoomerAMGSetMeasureType( void *data , int measure_type );
|
||||
int hypre_BoomerAMGSetSetupType( void *data , int setup_type );
|
||||
int hypre_BoomerAMGSetCycleType( void *data , int cycle_type );
|
||||
int hypre_BoomerAMGSetTol( void *data , double tol );
|
||||
int hypre_BoomerAMGSetNumGridSweeps( void *data , int *num_grid_sweeps );
|
||||
@ -347,6 +359,7 @@ int hypre_KrylovSetMaxIter( void *pcg_vdata , int max_iter );
|
||||
int hypre_KrylovSetTwoNorm( void *pcg_vdata , int two_norm );
|
||||
int hypre_KrylovSetRelChange( void *pcg_vdata , int rel_change );
|
||||
int hypre_KrylovSetPrecond( void *pcg_vdata , int (*precond )(), int (*precond_setup )(), void *precond_data );
|
||||
int hypre_KrylovGetPrecond( void *pcg_vdata , HYPRE_Solver *precond_data_ptr );
|
||||
int hypre_KrylovSetLogging( void *pcg_vdata , int logging );
|
||||
int hypre_KrylovGetNumIterations( void *pcg_vdata , int *num_iterations );
|
||||
int hypre_KrylovPrintLogging( void *pcg_vdata , int myid );
|
||||
|
||||
@ -13,9 +13,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include "headers.h"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Prototypes:
|
||||
@ -541,9 +539,9 @@ hypre_KrylovSetRelChange( void *pcg_vdata,
|
||||
|
||||
int
|
||||
hypre_KrylovSetPrecond( void *pcg_vdata,
|
||||
int (*precond)(),
|
||||
int (*precond_setup)(),
|
||||
void *precond_data )
|
||||
int (*precond)(),
|
||||
int (*precond_setup)(),
|
||||
void *precond_data )
|
||||
{
|
||||
hypre_PCGData *pcg_data = pcg_vdata;
|
||||
int ierr = 0;
|
||||
@ -555,6 +553,22 @@ hypre_KrylovSetPrecond( void *pcg_vdata,
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_KrylovGetPrecond
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
hypre_KrylovGetPrecond( void *pcg_vdata,
|
||||
HYPRE_Solver *precond_data_ptr )
|
||||
{
|
||||
hypre_PCGData *pcg_data = pcg_vdata;
|
||||
int ierr = 0;
|
||||
|
||||
*precond_data_ptr = (HYPRE_Solver)(pcg_data -> precond_data);
|
||||
|
||||
return ierr;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* hypre_KrylovSetLogging
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user