Added documentation for ParaSails.

This commit is contained in:
chow 2000-09-14 21:20:19 +00:00
parent ec9e41b53f
commit ed1f3899b5
2 changed files with 178 additions and 44 deletions

View File

@ -48,7 +48,7 @@ extern "C" {
/*@{*/
/**
* The {\tt HYPRE\_Solver} object ...
* The {\tt HYPRE\_Solver} object.
**/
struct hypre_Solver_struct;
typedef struct hypre_Solver_struct *HYPRE_Solver;
@ -61,29 +61,38 @@ typedef struct hypre_Solver_struct *HYPRE_Solver;
/**
* @name ParCSR ParaSails Preconditioner
*
* Description...
* Parallel sparse approximate inverse preconditioner for the
* ParCSR matrix format.
**/
/*@{*/
/**
* Description...
* Create a ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param comm [IN] MPI Communicator.
* @param solver [OUT] solver object.
**/
int HYPRE_ParCSRParaSailsCreate(MPI_Comm comm,
HYPRE_Solver *solver);
/**
* Description...
* Destroy a ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object to be destroyed.
**/
int HYPRE_ParCSRParaSailsDestroy(HYPRE_Solver solver);
/**
* Description...
* Set up the ParaSails preconditioner. This function should be passed
* to the iterative solver SetPrecond function.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object to set up.
* @param A [IN] ParCSR matrix used to construct the preconditioner.
* @param b Ignored by this function.
* @param x Ignored by this function.
**/
int HYPRE_ParCSRParaSailsSetup(HYPRE_Solver solver,
HYPRE_ParCSRMatrix A,
@ -91,9 +100,14 @@ int HYPRE_ParCSRParaSailsSetup(HYPRE_Solver solver,
HYPRE_ParVector x);
/**
* Description...
* Apply the ParaSails preconditioner. This function should be passed
* to the iterative solver SetPrecond function.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object to apply.
* @param A Ignored by this function.
* @param b [IN] Vector to precondition.
* @param x [OUT] Preconditioned vector.
**/
int HYPRE_ParCSRParaSailsSolve(HYPRE_Solver solver,
HYPRE_ParCSRMatrix A,
@ -101,50 +115,103 @@ int HYPRE_ParCSRParaSailsSolve(HYPRE_Solver solver,
HYPRE_ParVector x);
/**
* Description...
* Set the threshold and levels parameter for the ParaSails
* preconditioner. The accuracy and cost of ParaSails are
* parameterized by these two parameters. Lower values of the
* threshold parameter and higher values of levels parameter
* lead to more accurate, but more expensive preconditioners.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set parameters.
* @param thresh [IN] Value of threshold parameter, $0 \le$ thresh $\le 1$.
* The default value is 0.1.
* @param nlevels [IN] Value of levels parameter, $0 \le$ nlevels.
* The default value is 1.
**/
int HYPRE_ParCSRParaSailsSetParams(HYPRE_Solver solver,
double thresh,
int nlevels);
/**
* Description...
* Set the filter parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set filter parameter.
* @param filter [IN] Value of filter parameter. The filter parameter is
* used to drop small nonzeros in the preconditioner,
* to reduce the cost of applying the preconditioner.
* Values from 0.05 to 0.1 are recommended.
* The default value is 0.1.
**/
int HYPRE_ParCSRParaSailsSetFilter(HYPRE_Solver solver,
double filter);
/**
* Description...
* Set the symmetry parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set symmetry parameter.
* @param sym [IN] Value of the symmetry parameter:
* \begin{tabular}{|c|l|} \hline
* value & meaning \\ \hline
* 0 & nonsymmetric and/or indefinite problem, and nonsymmetric preconditioner\\
* 1 & SPD problem, and SPD (factored) preconditioner \\
* 2 & nonsymmetric, definite problem, and SPD (factored) preconditioner \\
* \hline
* \end{tabular}
**/
int HYPRE_ParCSRParaSailsSetSym(HYPRE_Solver solver,
int sym);
/**
* Description...
* Set the load balance parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set the load balance
* parameter.
* @param loadbal [IN] Value of the load balance parameter,
* $0 \le$ loadbal $\le 1$. A zero value indicates that
* no load balance is attempted; a value of unity indicates
* that perfect load balance will be attempted. The
* recommended value is 0.9 to balance the overhead of
* data exchanges for load balancing. No load balancing
* is needed if the preconditioner is very sparse and
* fast to construct. The default value when this
* parameter is not set is 0.
**/
int HYPRE_ParCSRParaSailsSetLoadbal(HYPRE_Solver solver,
double loadbal);
/**
* Description...
* Set the pattern reuse parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set the pattern reuse
* parameter.
* @param reuse [IN] Value of the pattern reuse parameter. A nonzero value
* indicates that the pattern of the preconditioner should
* be reused for subsequent constructions of the
* preconditioner. A zero value indicates that the
* preconditioner should be constructed from scratch.
* The default value when this parameter is not set is 0.
**/
int HYPRE_ParCSRParaSailsSetReuse(HYPRE_Solver solver,
int reuse);
/**
* Description...
* Set the logging parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set the logging
* parameter.
* @param logging [IN] Value of the logging parameter. A nonzero value
* sends statistics of the setup procedure to stdout.
* The default value when this parameter is not set is 0.
**/
int HYPRE_ParCSRParaSailsSetLogging(HYPRE_Solver solver,
int logging);

View File

@ -48,7 +48,7 @@ extern "C" {
/*@{*/
/**
* The {\tt HYPRE\_Solver} object ...
* The {\tt HYPRE\_Solver} object.
**/
struct hypre_Solver_struct;
typedef struct hypre_Solver_struct *HYPRE_Solver;
@ -61,29 +61,38 @@ typedef struct hypre_Solver_struct *HYPRE_Solver;
/**
* @name ParCSR ParaSails Preconditioner
*
* Description...
* Parallel sparse approximate inverse preconditioner for the
* ParCSR matrix format.
**/
/*@{*/
/**
* Description...
* Create a ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param comm [IN] MPI Communicator.
* @param solver [OUT] solver object.
**/
int HYPRE_ParCSRParaSailsCreate(MPI_Comm comm,
HYPRE_Solver *solver);
/**
* Description...
* Destroy a ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object to be destroyed.
**/
int HYPRE_ParCSRParaSailsDestroy(HYPRE_Solver solver);
/**
* Description...
* Set up the ParaSails preconditioner. This function should be passed
* to the iterative solver SetPrecond function.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object to set up.
* @param A [IN] ParCSR matrix used to construct the preconditioner.
* @param b Ignored by this function.
* @param x Ignored by this function.
**/
int HYPRE_ParCSRParaSailsSetup(HYPRE_Solver solver,
HYPRE_ParCSRMatrix A,
@ -91,9 +100,14 @@ int HYPRE_ParCSRParaSailsSetup(HYPRE_Solver solver,
HYPRE_ParVector x);
/**
* Description...
* Apply the ParaSails preconditioner. This function should be passed
* to the iterative solver SetPrecond function.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object to apply.
* @param A Ignored by this function.
* @param b [IN] Vector to precondition.
* @param x [OUT] Preconditioned vector.
**/
int HYPRE_ParCSRParaSailsSolve(HYPRE_Solver solver,
HYPRE_ParCSRMatrix A,
@ -101,50 +115,103 @@ int HYPRE_ParCSRParaSailsSolve(HYPRE_Solver solver,
HYPRE_ParVector x);
/**
* Description...
* Set the threshold and levels parameter for the ParaSails
* preconditioner. The accuracy and cost of ParaSails are
* parameterized by these two parameters. Lower values of the
* threshold parameter and higher values of levels parameter
* lead to more accurate, but more expensive preconditioners.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set parameters.
* @param thresh [IN] Value of threshold parameter, $0 \le$ thresh $\le 1$.
* The default value is 0.1.
* @param nlevels [IN] Value of levels parameter, $0 \le$ nlevels.
* The default value is 1.
**/
int HYPRE_ParCSRParaSailsSetParams(HYPRE_Solver solver,
double thresh,
int nlevels);
/**
* Description...
* Set the filter parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set filter parameter.
* @param filter [IN] Value of filter parameter. The filter parameter is
* used to drop small nonzeros in the preconditioner,
* to reduce the cost of applying the preconditioner.
* Values from 0.05 to 0.1 are recommended.
* The default value is 0.1.
**/
int HYPRE_ParCSRParaSailsSetFilter(HYPRE_Solver solver,
double filter);
/**
* Description...
* Set the symmetry parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set symmetry parameter.
* @param sym [IN] Value of the symmetry parameter:
* \begin{tabular}{|c|l|} \hline
* value & meaning \\ \hline
* 0 & nonsymmetric and/or indefinite problem, and nonsymmetric preconditioner\\
* 1 & SPD problem, and SPD (factored) preconditioner \\
* 2 & nonsymmetric, definite problem, and SPD (factored) preconditioner \\
* \hline
* \end{tabular}
**/
int HYPRE_ParCSRParaSailsSetSym(HYPRE_Solver solver,
int sym);
/**
* Description...
* Set the load balance parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set the load balance
* parameter.
* @param loadbal [IN] Value of the load balance parameter,
* $0 \le$ loadbal $\le 1$. A zero value indicates that
* no load balance is attempted; a value of unity indicates
* that perfect load balance will be attempted. The
* recommended value is 0.9 to balance the overhead of
* data exchanges for load balancing. No load balancing
* is needed if the preconditioner is very sparse and
* fast to construct. The default value when this
* parameter is not set is 0.
**/
int HYPRE_ParCSRParaSailsSetLoadbal(HYPRE_Solver solver,
double loadbal);
/**
* Description...
* Set the pattern reuse parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set the pattern reuse
* parameter.
* @param reuse [IN] Value of the pattern reuse parameter. A nonzero value
* indicates that the pattern of the preconditioner should
* be reused for subsequent constructions of the
* preconditioner. A zero value indicates that the
* preconditioner should be constructed from scratch.
* The default value when this parameter is not set is 0.
**/
int HYPRE_ParCSRParaSailsSetReuse(HYPRE_Solver solver,
int reuse);
/**
* Description...
* Set the logging parameter for the
* ParaSails preconditioner.
*
* @param param [IN] ...
* @return Error code.
* @param solver [IN] Preconditioner object for which to set the logging
* parameter.
* @param logging [IN] Value of the logging parameter. A nonzero value
* sends statistics of the setup procedure to stdout.
* The default value when this parameter is not set is 0.
**/
int HYPRE_ParCSRParaSailsSetLogging(HYPRE_Solver solver,
int logging);