cscd.c

Summary
cscd.c
cscd_Fusion
cscd_Explode
csc_FreeFree csc structure
cscd_FreeFree a cscd structure.
csc_InitFill-in the csc structure.
cscd_InitFill-in the cscd structure.
cscd_getGloballocalreturns the global column of a local column.
cscd_indIfLocCompute the local index corresponding to a global column number/vertex of the graph.
cscd_add_diag
cscd_sort
cscd_quicksort
cscd_partition
cscd_Symsymetrize the graph structure.
cscd_AddedgeAdd an edge between i and j with value 0 if aval is allocated.
cscd_Convert_dgraphSymetrize the cscd then convert it to dgraph.
cscd_Addverticescscd_Addvertices ajoute un ensemble de sommets a la csc locale, ce qui implique de connaitre la position de ces sommets par rapport aux autres, leurs numeros globaux, leurs nombres d’arete ainsi que leurs vecteurs d’arete On suppose que les sommets sont ordonnes suivant leur numero locaux.
cscd_Remverticesrank : rang du noeud ou va aller la cscd en construction exchange_tab : donne les le rang auquel appartient le sommet local
cscd_Redistribute
cscd_AddvaluesOn suppose que la perm tab donne la localisation de chaque sommet.

cscd_Fusion

int cscd_Fusion(CSCD *cscd_graph)

cscd_Explode

int cscd_Explode(CSCD *cscd_graph,
MPI_Comm mpi_comm)

csc_Free

int csc_Free(CSC *csc_graph)

Free csc structure

Parameters

csc_graphCSC structure to free.

cscd_Free

int cscd_Free(CSCD *cscd_graph)

Free a cscd structure.

Parameters

cscd_graphCSCD structure to free.

csc_Init

int csc_Init(CSC *csc_graph,
INT vertlocnbr,
INT edgelocnbr,
INT *ia,
INT *ja,
FLOAT *aval,
FLOAT *rhs)

Fill-in the csc structure.

Parameters

csc_graphCSC structure to fill.
vertlocnumberNumber of vertices/unknowns/Matrix size.
edgelocnumberNumber of edge/Nnzeros
iastarting index of each column in ja and aval.
jarow of each element of the matrix.
avalvalue of each element.
rhsRight hand side

cscd_Init

int cscd_Init(CSCD *cscd_graph,
INT *loc2glb,
INT vertlocnbr,
INT edgelocnbr,
INT *ia,
INT *ja,
FLOAT *aval,
FLOAT *rhs,
MPI_Comm mpi_comm)

Fill-in the cscd structure.

Parameters

cscd_graphCSCD structure to fill.
loc2glbglobal index of each local column.
vertlocnumberNumber of vertices/unknowns/Matrix size.
edgelocnumberNumber of edge/Nnzeros
iastarting index of each column in ja and aval.
jarow of each element of the matrix.
avalvalue of each element.
rhsRight hand side.
mpi_commMPI communicator.

cscd_getGloballocal

INT cscd_getGloballocal(CSCD *cscd_graph,
INT i)

returns the global column of a local column.

Parameters

cscd_graphCSCD structure.
ilocal column number.

cscd_indIfLoc

INT cscd_indIfLoc(CSCD *cscd_graph,
INT vert_ind)

Compute the local index corresponding to a global column number/vertex of the graph.

Parameters

cscd_graphgraph
vert_indglobal vertex/column number

cscd_add_diag

int cscd_add_diag(CSCD *cscd_graph)

cscd_sort

int cscd_sort(CSCD *cscd_graph)

cscd_quicksort

void cscd_quicksort(INT *inttab,
FLOAT *valtab,
INT start,
INT end)

cscd_partition

int cscd_partition(INT *inttab,
FLOAT *valtab,
INT start,
INT end,
INT pivot)

cscd_Sym

int cscd_Sym(CSCD *cscd_graph,
INT iparm6)

symetrize the graph structure.

Parameters

cscd_graphgraph to symetrize
iparm6determine what to do with second occurence of a coefficient.

*

cscd_Addedge

int cscd_Addedge(CSCD *cscd_graph,
INT i,
INT j,
FLOAT value)

Add an edge between i and j with value 0 if aval is allocated.  After that, rows are not sorted anymore.

Parameters

cscd_graphCSCD
ivertex/column (local)
jedge/row
valuevalue if aval of cscd_graph is not NULL

cscd_Convert_dgraph

int cscd_Convert_dgraph(CSCD *cscd_graph,
INT iparm6)

Symetrize the cscd then convert it to dgraph.  After that you can call dgraph_build.

Symetrise la structure puis la convertie en dgraph.  On apelle alors le dgraph_build sur le dgraph obtenu

Parameters

cscd_graphcsc to convert to dgraph iparm6 -

cscd_Addvertices

int cscd_Addvertices(CSCD *cscd_graph,
INT *loc2glb,
INT *ia,
INT *ja,
FLOAT *aval,
FLOAT *rhs,
INT nbedge,
INT nbvert)

cscd_Addvertices ajoute un ensemble de sommets a la csc locale, ce qui implique de connaitre la position de ces sommets par rapport aux autres, leurs numeros globaux, leurs nombres d’arete ainsi que leurs vecteurs d’arete On suppose que les sommets sont ordonnes suivant leur numero locaux.

cscd_Remvertices

int cscd_Remvertices(CSCD *cscd_graph,
CSCD *cscd_target,
INT *exchange_tab,
INT rank)

rank : rang du noeud ou va aller la cscd en construction exchange_tab : donne les le rang auquel appartient le sommet local

cscd_Redistribute

int cscd_Redistribute(CSCD *cscd_graph,
INT *permtab)

cscd_Addvalues

int cscd_Addvalues(CSCD *cscd_graph,
CSCD *cscd_val)

On suppose que la perm tab donne la localisation de chaque sommet.  Si ce n’etait pas le cas, avec le vecteur de renumerotation, et le vecteur donnant le partitionnement global, on est en mesure de le determiner *

int cscd_Fusion(CSCD *cscd_graph)
int cscd_Explode(CSCD *cscd_graph,
MPI_Comm mpi_comm)
int csc_Free(CSC *csc_graph)
Free csc structure
int cscd_Free(CSCD *cscd_graph)
Free a cscd structure.
int csc_Init(CSC *csc_graph,
INT vertlocnbr,
INT edgelocnbr,
INT *ia,
INT *ja,
FLOAT *aval,
FLOAT *rhs)
Fill-in the csc structure.
int cscd_Init(CSCD *cscd_graph,
INT *loc2glb,
INT vertlocnbr,
INT edgelocnbr,
INT *ia,
INT *ja,
FLOAT *aval,
FLOAT *rhs,
MPI_Comm mpi_comm)
Fill-in the cscd structure.
INT cscd_getGloballocal(CSCD *cscd_graph,
INT i)
returns the global column of a local column.
INT cscd_indIfLoc(CSCD *cscd_graph,
INT vert_ind)
Compute the local index corresponding to a global column number/vertex of the graph.
int cscd_add_diag(CSCD *cscd_graph)
int cscd_sort(CSCD *cscd_graph)
void cscd_quicksort(INT *inttab,
FLOAT *valtab,
INT start,
INT end)
int cscd_partition(INT *inttab,
FLOAT *valtab,
INT start,
INT end,
INT pivot)
int cscd_Sym(CSCD *cscd_graph,
INT iparm6)
symetrize the graph structure.
int cscd_Addedge(CSCD *cscd_graph,
INT i,
INT j,
FLOAT value)
Add an edge between i and j with value 0 if aval is allocated.
int cscd_Convert_dgraph(CSCD *cscd_graph,
INT iparm6)
Symetrize the cscd then convert it to dgraph.
int cscd_Addvertices(CSCD *cscd_graph,
INT *loc2glb,
INT *ia,
INT *ja,
FLOAT *aval,
FLOAT *rhs,
INT nbedge,
INT nbvert)
cscd_Addvertices ajoute un ensemble de sommets a la csc locale, ce qui implique de connaitre la position de ces sommets par rapport aux autres, leurs numeros globaux, leurs nombres d’arete ainsi que leurs vecteurs d’arete On suppose que les sommets sont ordonnes suivant leur numero locaux.
int cscd_Remvertices(CSCD *cscd_graph,
CSCD *cscd_target,
INT *exchange_tab,
INT rank)
rank : rang du noeud ou va aller la cscd en construction exchange_tab : donne les le rang auquel appartient le sommet local
int cscd_Redistribute(CSCD *cscd_graph,
INT *permtab)
int cscd_Addvalues(CSCD *cscd_graph,
CSCD *cscd_val)
On suppose que la perm tab donne la localisation de chaque sommet.
Close