PaStiX Handbook  6.4.0
Schur complement routines

## Functions

int pastixGetDiag (const pastix_data_t *pastix_data, void *D, pastix_int_t incD)
Return the diagonal of the matrix. More...

void pastixIsolateUnknowns (pastix_data_t *pastix_data, pastix_int_t n, const pastix_int_t *list)
Set a list of unknowns that needs to be isolated and pushed at the end of the ordering before the Schur unknowns if any. More...

void pastixSetSchurUnknownList (pastix_data_t *pastix_data, pastix_int_t n, const pastix_int_t *list)
Set the list of unknowns that belongs to the schur complement. More...

int pastixGetSchur (const pastix_data_t *pastix_data, void *S, pastix_int_t lds)
Return the Schur complement. More...

## ◆ pastixGetDiag()

 int pastixGetDiag ( const pastix_data_t * pastix_data, void * D, pastix_int_t incD )

Return the diagonal of the matrix.

The diagonal is returned in the D vector such that D[incD *i] = A(i, i)

Parameters
 [in] pastix_data The pastix data structure of the problem solved. [in,out] D The pointer to the allocated vector array that will store the diagonal. D must be of size spm->nexp * incD. [in] incD The leading dimension of the D array.
Return values
 PASTIX_SUCCESS on successful exit, PASTIX_ERR_BADPARAMETER if one parameter is incorrect.

Definition at line 54 of file diag.c.

## ◆ pastixIsolateUnknowns()

 void pastixIsolateUnknowns ( pastix_data_t * pastix_data, pastix_int_t n, const pastix_int_t * list )

Set a list of unknowns that needs to be isolated and pushed at the end of the ordering before the Schur unknowns if any.

Remark: This is usually required when some unknowns are disconnected or zeroes appear on the diagonal.

Parameters
 [in,out] pastix_data The pastix data structure of the solver to store the list of unknowns. [in] n The number of unknowns hat needs to be isolated. [in] list Array of integer of size n. The list of unknowns to isolate.

Definition at line 52 of file schur.c.

References pastix_int_t, pastix_data_s::zeros_list, and pastix_data_s::zeros_n.

## ◆ pastixSetSchurUnknownList()

 void pastixSetSchurUnknownList ( pastix_data_t * pastix_data, pastix_int_t n, const pastix_int_t * list )

Set the list of unknowns that belongs to the schur complement.

Parameters
 [in,out] pastix_data The pastix data structure of the solver to store the list of Schur unknowns. [in] n The number of unknowns in the Schur complement. [in] list Array of integer of size n. The list of unknowns belonging to the Schur complement with the same baseval as the associated spm.

Definition at line 84 of file schur.c.

References pastix_int_t, pastix_data_s::schur_list, and pastix_data_s::schur_n.

## ◆ pastixGetSchur()

 int pastixGetSchur ( const pastix_data_t * pastix_data, void * S, pastix_int_t lds )

Return the Schur complement.

The Schur complement is returned in the column major layout used by the classic linear algebra libraries such as Blas or Lapack.

Parameters
 [in] pastix_data The pastix data structure of the problem solved. [in,out] S Array of size spm->n -by- lds of arithmetic spm->flttype, where spm is the spm of the original problem. On exit, the array contains the Schur complement of the factorized matrix. [in] lds The leading dimension of the S array.
Return values
 PASTIX_SUCCESS on successful exit, PASTIX_ERR_BADPARAMETER if one parameter is incorrect.

Definition at line 124 of file schur.c.