PaStiX Handbook  6.2.1
order.h File Reference
#include "pastix/config.h"
#include "pastix/datatypes.h"

Go to the source code of this file.

Data Structures

struct  pastix_order_s
 Order structure. More...
 

Typedefs

typedef struct etree_s EliminTree
 
typedef struct pastix_order_s pastix_order_t
 Order structure. More...
 

Order basic subroutines

int pastixOrderInit (pastix_order_t *const ordeptr, pastix_int_t baseval, pastix_int_t vertnbr, pastix_int_t cblknbr, pastix_int_t *const permtab, pastix_int_t *const peritab, pastix_int_t *const rangtab, pastix_int_t *const treetab)
 Initialize the order structure with the given values. More...
 
int pastixOrderAlloc (pastix_order_t *const ordeptr, pastix_int_t vertnbr, pastix_int_t cblknbr)
 Allocate the order structure. More...
 
int pastixOrderAllocId (pastix_order_t *const ordeptr, pastix_int_t vertnbr)
 Allocate the order structure for a given number of vertices with no cblk, and id permutation. More...
 
void pastixOrderExit (pastix_order_t *const ordeptr)
 Free the arrays initialized in the order structure. More...
 
void pastixOrderBase (pastix_order_t *const ordeptr, pastix_int_t baseval)
 This routine sets the base of the given ordering structure to the given base value. More...
 
int pastixOrderCheck (const pastix_order_t *const ordeptr)
 This routine checks the correctness of the ordering structure. More...
 
void pastixOrderExpand (pastix_order_t *const ordeptr, spmatrix_t *const spm)
 This routine expand the permutation arrays and the rangtab when the spm is using multiple dof per unknown. More...
 
int pastixOrderCopy (pastix_order_t *const ordedst, const pastix_order_t *const ordesrc)
 This routine copy a given ordering in a new one. More...
 
const pastix_order_tpastixOrderGet (const pastix_data_t *const pastix_data)
 This routine returns the pointer to the internal order structure to access permutation information. More...
 
void pastixOrderBcast (pastix_order_t *ordemesh, int root, PASTIX_Comm pastix_comm)
 This routine broadcast the ordemesh structure from node root to all the other nodes. More...
 

Order compute subroutines

int pastixOrderComputeScotch (pastix_data_t *pastix_data, pastix_graph_t *graph)
 Compute the ordering of the graph given as parameter with Scotch library. More...
 
int pastixOrderComputePTScotch (pastix_data_t *pastix_data, pastix_graph_t *graph)
 Compute the ordering of the graph given as parameter with PT-Scotch library. More...
 
int pastixOrderComputeMetis (pastix_data_t *pastix_data, pastix_graph_t *graph)
 Compute the ordering of the graph given as parameter with Metis library. More...
 
int pastixOrderComputeParMetis (pastix_data_t *pastix_data, pastix_graph_t *graph)
 
int pastixOrderGrid (pastix_order_t **myorder, pastix_int_t nx, pastix_int_t ny, pastix_int_t nz)
 

Order manipulation subroutines

void pastixOrderFindSupernodes (const pastix_graph_t *graph, pastix_order_t *const ordeptr)
 Computes the set of supernodes for a given permutation. More...
 
int pastixOrderAmalgamate (int verbose, int ilu, int levelk, int rat_cblk, int rat_blas, pastix_graph_t *csc, pastix_order_t *orderptr, PASTIX_Comm pastix_comm)
 Update the order structure with an amalgamation algorithm. More...
 
int pastixOrderApplyLevelOrder (pastix_order_t *order, pastix_int_t level_tasks2d, pastix_int_t width_tasks2d)
 This routine reorder the elimination tree nodes per level. More...
 
int pastixOrderAddIsolate (pastix_order_t *ordemesh, pastix_int_t new_n, const pastix_int_t *perm)
 This routine combines two permutation arrays when a subset of vertices has been isolated from the original graph through graphIsolate() function. More...
 

Detailed Description

PaStiX order structure routines

Version
6.2.0
Author
Francois Pellegrini
Mathieu Faverge
Gregoire Pichon
Pierre Ramet
Date
2021-01-14

Definition in file order.h.