Added documentation for ParaSails.
This commit is contained in:
parent
ec9e41b53f
commit
ed1f3899b5
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user