PaStiX Handbook  6.2.1
pastix.h File Reference
#include "pastix/config.h"
#include <spm.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <assert.h>
#include <math.h>
#include "pastix/api.h"
#include "pastix/datatypes.h"
#include "pastix/order.h"

Go to the source code of this file.


#define MPI_COMM_WORLD   0


typedef uintptr_t PASTIX_Comm


BEGIN_C_DECLS int pastix (pastix_data_t **pastix_data, PASTIX_Comm pastix_comm, pastix_int_t n, pastix_int_t *colptr, pastix_int_t *rowptr, void *values, pastix_int_t *perm, pastix_int_t *invp, void *B, pastix_int_t nrhs, pastix_int_t *iparm, double *dparm)
 Main function for compatibility with former releases. More...
void pastixInitParam (pastix_int_t *iparm, double *dparm)
 Initialize the iparm and dparm arrays to their default values. More...
void pastixInit (pastix_data_t **pastix_data, PASTIX_Comm pastix_comm, pastix_int_t *iparm, double *dparm)
 Initialize the solver instance. More...
void pastixInitWithAffinity (pastix_data_t **pastix_data, PASTIX_Comm pastix_comm, pastix_int_t *iparm, double *dparm, const int *bindtab)
 Initialize the solver instance with a bintab array to specify the thread binding. More...
void pastixFinalize (pastix_data_t **pastix_data)
 Finalize the solver instance. More...
int pastix_task_analyze (pastix_data_t *pastix_data, const spmatrix_t *spm)
 Perform all the preprocessing steps: ordering, symbolic factorization, reordering, proportionnal mapping, ... More...
int pastix_task_numfact (pastix_data_t *pastix_data, spmatrix_t *spm)
 Perform all the numerical factorization steps: fill the internal block CSC and the solver matrix structures, then apply the factorization step. More...
int pastix_task_solve (pastix_data_t *pastix_data, pastix_int_t nrhs, void *B, pastix_int_t ldb)
 Solve the given problem. More...
int pastix_task_refine (pastix_data_t *pastix_data, pastix_int_t n, pastix_int_t nrhs, void *B, pastix_int_t ldb, void *X, pastix_int_t ldx)
 Perform iterative refinement. More...
int pastix_subtask_order (pastix_data_t *pastix_data, const spmatrix_t *spm, pastix_order_t *myorder)
 Computes the ordering of the given graph in parameters. More...
int pastix_subtask_symbfact (pastix_data_t *pastix_data)
 Computes the symbolic factorization step. More...
int pastix_subtask_reordering (pastix_data_t *pastix_data)
 Apply the reordering step to compact off-diagonal blocks. More...
int pastix_subtask_blend (pastix_data_t *pastix_data)
 Compute the proportional mapping and the final solver structure. More...
int pastix_subtask_spm2bcsc (pastix_data_t *pastix_data, spmatrix_t *spm)
 Fill the internal block CSC structure. More...
int pastix_subtask_bcsc2ctab (pastix_data_t *pastix_data)
 Fill the internal solver matrix structure. More...
int pastix_subtask_sopalin (pastix_data_t *pastix_data)
 Factorize the given problem using Cholesky or LU decomposition. More...
int pastix_subtask_applyorder (pastix_data_t *pastix_data, pastix_coeftype_t flttype, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, void *B, pastix_int_t ldb)
 Apply a permutation on the right-and-side vector before the solve step. More...
int pastix_subtask_trsm (pastix_data_t *pastix_data, pastix_coeftype_t flttype, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, pastix_int_t nrhs, void *B, pastix_int_t ldb)
 Apply a triangular solve on the right-and-side vectors. More...
int pastix_subtask_diag (pastix_data_t *pastix_data, pastix_coeftype_t flttype, pastix_int_t nrhs, void *B, pastix_int_t ldb)
 Apply a diagonal operation on the right-and-side vectors. More...
int pastix_subtask_solve (pastix_data_t *pastix_data, pastix_int_t nrhs, void *B, pastix_int_t ldb)
 Solve the given problem without applying the permutation. More...
int pastix_subtask_refine (pastix_data_t *pastix_data, pastix_int_t n, pastix_int_t nrhs, const void *B, pastix_int_t ldb, void *X, pastix_int_t ldx)
 Perform the iterative refinement without apply the permutations. More...
int pastix_subtask_solve_adv (pastix_data_t *pastix_data, pastix_trans_t transA, pastix_int_t nrhs, void *B, pastix_int_t ldb)
 Solve the given problem without applying the permutation. 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...
void pastixExpand (const pastix_data_t *pastix_data, spmatrix_t *spm)
 Expand an spm structure and the already computed data structure associated if any. More...
int pastixGetDiag (const pastix_data_t *pastix_data, void *x, pastix_int_t incx)
void pastixGetOptions (int argc, char **argv, pastix_int_t *iparm, double *dparm, int *check, spm_driver_t *driver, char **filename)
 PaStiX helper function to read command line options in examples. More...
void pastixDumpParam (const pastix_data_t *pastix_data)
 Dump the iparm and dparm parameters in a CSV file. More...
int pastixCheckParam (const pastix_int_t *iparm, const double *dparm)
 Check the values of iparm and dparm arrays. More...

Detailed Description

PaStiX main header file.

David Goudin
Francois Pellegrini
Gregoire Pichon
Mathieu Faverge
Pascal Henon
Pierre Ramet
Xavier Lacoste
Theophile Terraz
Tony Delarue

Definition in file pastix.h.

Function Documentation

◆ pastixExpand()

void pastixExpand ( const pastix_data_t *  pastix_data,
spmatrix_t *  spm 

Expand an spm structure and the already computed data structure associated if any.

[in]pastix_dataThe pastix context in which the spm is used
[in]spmThe multi-dof sparse matrix to expand into a single dof sparse matrix. On exit, spm contains the expanded matrix. The compressed form of the matrix is destroyed.

Definition at line 506 of file pastix.c.