OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
protos.h
Go to the documentation of this file.
1/*****************************************************************************
2/
3/ SPACE (SPArse Cholesky Elimination) Library: protos.h
4/
5/ author J"urgen Schulze, University of Paderborn
6/ created 99sep14
7/
8/ This file contains the prototypes of all non-static functions
9/
10******************************************************************************/
11
12/* functions in lib/greg_pord.h */
14
15/* functions in lib/graph.c */
17void freeGraph(graph_t*);
18void printGraph(graph_t*);
25
26/* functions in lib/gbisect.c */
34
35/* functions in lib/ddcreate.c */
49
50/* functions in lib/ddbisect.c */
51void checkDDSep(domdec_t*);
60
61/* functions in lib/gbipart.c */
70
71/* functions in lib/nestdiss.c */
78
79/* functions in lib/multisector.c */
86
87/* functions in lib/gelim.c */
93void buildElement(gelim_t *Gelim, PORD_INT me);
99
100/* functions in lib/bucket.c */
102void freeBucket(bucket_t*);
107
108/* functions in lib/minpriority.c */
115
116/* functions in lib/tree.c */
140
141/* functions in lib/matrix.c */
155
156/* functions in lib/symbfac.c */
158void freeCSS(css_t*);
170
171/* functions in lib/numfac.c */
177
178/* functions in lib/kernel.c */
182
183/* functions in lib/triangular.c */
188
189/* functions in lib/mapping.c */
196
197/* functions in lib/interface.c */
204 timings_t*);
208
209/* functions in lib/sort.c */
217
218/* functions in lib/read.c */
221
222/* functions in libPAR/topology.c */
228void sendCube(topology_t*, void*, size_t, PORD_INT);
229size_t recvCube(topology_t*, void*, size_t, PORD_INT);
231
232/* functions in libPAR/mask.c */
236
237/* functions in libPAR/broadcast.c */
240void broadcastArray(topology_t*, char*, size_t);
241
242/* functions in libPAR/buffer.c */
252
253/* functions in libPAR/symbfacPAR.c */
258 frontsub_t*);
260 inputMtx_t*);
261
262/* functions in libPAR/numfacPAR.c */
264 PORD_INT msglvl, timings_t*);
266 PORD_INT);
273
274/* functions in libPAR/kernelPAR.c */
281
282/* functions in libPAR/triangularPAR.c */
284 factorMtx_t*, FLOAT*, FLOAT*);
286 factorMtx_t*, FLOAT*);
288 factorMtx_t*, FLOAT*, FLOAT*);
290 factorMtx_t*, FLOAT*);
292 factorMtx_t*, FLOAT*);
293
294/* functions in libPAR/interfacePAR.c */
299 inputMtx_t*);
301 PORD_INT msglvl, timings_t*);
303 factorMtx_t*, FLOAT*, FLOAT*);
305 inputMtx_t *A, PORD_INT *perm, FLOAT *rhs, FLOAT *xvec,
306 options_t *options, timings_t *cpus);
307
FLOAT nTriangularOps(elimtree_t *)
Definition tree.c:957
PORD_INT minBucket(bucket_t *)
Definition bucket.c:117
void findIndNodes(gelim_t *, PORD_INT *, PORD_INT, PORD_INT *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition gelim.c:639
domdec_t * coarserDomainDecomposition(domdec_t *, PORD_INT *)
Definition ddcreate.c:778
void insertBucket(bucket_t *, PORD_INT, PORD_INT)
Definition bucket.c:163
void freeElimGraph(gelim_t *)
Definition gelim.c:128
graph_t * setupGraphFromMtx(inputMtx_t *)
Definition graph.c:195
buffer_t * setupSymbFacBuffer(frontsub_t *, PORD_INT *)
elimtree_t * fundamentalFronts(elimtree_t *)
Definition tree.c:553
void forwardSubst1x1(factorMtx_t *, FLOAT *)
css_t * setupCSSFromGraph(graph_t *, PORD_INT *, PORD_INT *)
Definition symbfac.c:90
elimtree_t * orderMinPriority(minprior_t *, options_t *, timings_t *)
void printElimGraph(gelim_t *)
Definition gelim.c:143
void split(mapping_t *, PORD_INT, PORD_INT, PORD_INT, PORD_INT *, PORD_INT *, FLOAT *, PORD_INT)
frontsub_t * newFrontSubscriptsPAR(mask_t *, mapping_t *, elimtree_t *)
multisector_t * extractMS2stage(nestdiss_t *)
void backwardSubst1x1KernelPAR(topology_t *, mask_t *, PORD_INT, PORD_INT, factorMtx_t *, FLOAT *)
void initFchSilbRoot(elimtree_t *)
Definition tree.c:414
PORD_INT findPseudoPeripheralDomain(domdec_t *, PORD_INT)
Definition ddbisect.c:152
void qsortUpInts(PORD_INT, PORD_INT *, PORD_INT *)
Definition sort.c:98
void freeCSS(css_t *)
Definition symbfac.c:77
topology_t * setupTopology(void)
void printGbipart(gbipart_t *)
Definition gbipart.c:91
void SPACE_solveTriangular(factorMtx_t *L, FLOAT *rhs, FLOAT *xvec)
void buildInitialDomains(graph_t *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition ddcreate.c:224
void mergeMultisecs(graph_t *G, PORD_INT *, PORD_INT *)
Definition ddcreate.c:280
void freeWorkspaceForDenseMtx(workspace_t *)
multisector_t * constructMultisector(graph_t *, options_t *, timings_t *)
graph_t * newGraph(PORD_INT, PORD_INT)
Definition graph.c:50
void numfacPAR(topology_t *, mask_t *, mapping_t *, factorMtx_t *, PORD_INT msglvl, timings_t *)
factorMtx_t * SPACE_symbFacPAR(topology_t *, mask_t *, mapping_t *, elimtree_t *, inputMtx_t *)
void constructSeparator(gbisect_t *, options_t *, timings_t *)
Definition gbisect.c:182
void freeFrontSubscripts(frontsub_t *)
Definition symbfac.c:286
void SPACE_solve(inputMtx_t *, FLOAT *, FLOAT *, options_t *, timings_t *)
void qsortUpFloatsWithIntKeys(PORD_INT, FLOAT *, PORD_INT *, PORD_INT *)
Definition sort.c:140
gbipart_t * newBipartiteGraph(PORD_INT, PORD_INT, PORD_INT)
Definition gbipart.c:66
void recMapCube(topology_t *, PORD_INT, PORD_INT, PORD_INT, PORD_INT, PORD_INT, PORD_INT)
void DMviaMatching(gbipart_t *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition gbipart.c:435
graph_t * setupSubgraph(graph_t *, PORD_INT *, PORD_INT, PORD_INT *)
Definition graph.c:132
PORD_INT firstPreorder(elimtree_t *)
Definition tree.c:263
inputMtx_t * setupInputMtxFromGraph(graph_t *)
PORD_INT firstPostorder2(elimtree_t *, PORD_INT)
Definition tree.c:228
inputMtx_t * readHarwellBoeingMtx(char *)
void printFrontSubscripts(frontsub_t *)
Definition symbfac.c:298
css_t * newCSS(PORD_INT, PORD_INT, PORD_INT)
Definition symbfac.c:56
void freeFactorMtx(factorMtx_t *)
Definition symbfac.c:465
void freeTopology(topology_t *)
void eliminateMultisecs(domdec_t *, PORD_INT *, PORD_INT *)
Definition ddcreate.c:606
void freeDomainDecomposition(domdec_t *)
Definition ddcreate.c:120
void broadcastElimTree(topology_t *, elimtree_t **)
gelim_t * newElimGraph(PORD_INT, PORD_INT)
Definition gelim.c:108
void freeMultisector(multisector_t *)
Definition multisector.c:86
buffer_t * newBuffer(size_t)
void printFactorMtx(factorMtx_t *)
Definition symbfac.c:478
frontsub_t * setupFrontSubscripts(elimtree_t *, inputMtx_t *)
Definition symbfac.c:334
PORD_INT nextPostorder(elimtree_t *, PORD_INT)
Definition tree.c:243
void broadcastArray(topology_t *, char *, size_t)
nestdiss_t * setupNDroot(graph_t *, PORD_INT *)
Definition nestdiss.c:107
mask_t * setupMask(PORD_INT, PORD_INT, PORD_INT)
denseMtx_t * factorize3x3Kernel(denseMtx_t *, PORD_INT)
PORD_INT connectedComponents(graph_t *)
Definition graph.c:344
denseMtx_t * factorize1x1KernelPAR(topology_t *, mask_t *, PORD_INT, denseMtx_t *, frontsub_t *, timings_t *)
PORD_INT eliminateStep(minprior_t *, PORD_INT, PORD_INT)
void printInputMtx(inputMtx_t *)
void SPACE_cleanup(topology_t *, mask_t *)
denseMtx_t * setupUpdateMtxFromFrontalMtxPAR(denseMtx_t *, factorMtx_t *)
multisector_t * trivialMultisector(graph_t *)
Definition multisector.c:96
void listing(mapping_t *, PORD_INT, PORD_INT, PORD_INT, FLOAT *, FLOAT *)
void DMviaFlow(gbipart_t *, PORD_INT *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition gbipart.c:528
void SPACE_numFacPAR(topology_t *, mask_t *, mapping_t *, factorMtx_t *, PORD_INT msglvl, timings_t *)
void freeBipartiteGraph(gbipart_t *)
Definition gbipart.c:81
void freeMapping(mapping_t *)
void updateDegree(gelim_t *, PORD_INT *, PORD_INT, PORD_INT *)
Definition gelim.c:761
void permFromElimTree(elimtree_t *, PORD_INT *)
Definition tree.c:440
denseMtx_t * factorize3x3KernelPAR(topology_t *, mask_t *, PORD_INT, denseMtx_t *, frontsub_t *, timings_t *)
void improveDDSep(domdec_t *)
Definition ddbisect.c:607
void SPACE_solveTriangularPAR(topology_t *, mask_t *, mapping_t *, factorMtx_t *, FLOAT *, FLOAT *)
void computePriorities(domdec_t *, PORD_INT *, PORD_INT *, PORD_INT)
Definition ddcreate.c:536
PORD_INT crunchElimGraph(gelim_t *)
Definition gelim.c:302
void updateB2W(bucket_t *, bucket_t *, domdec_t *, PORD_INT, PORD_INT *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition ddbisect.c:383
void backwardSubst1x1(factorMtx_t *, FLOAT *)
void backwardSubst1x1NEW(factorMtx_t *, FLOAT *)
void freeInputMtx(inputMtx_t *)
void checkDomainDecomposition(domdec_t *)
Definition ddcreate.c:163
gbipart_t * setupBipartiteGraph(graph_t *, PORD_INT *, PORD_INT, PORD_INT, PORD_INT *)
Definition gbipart.c:118
void randomizeGraph(graph_t *)
Definition graph.c:109
elimtree_t * mergeFronts(elimtree_t *, PORD_INT)
Definition tree.c:607
topology_t * newTopology(PORD_INT)
void splitDenseMtxColumnWise(denseMtx_t *, mask_t *, buffer_t *, PORD_INT)
denseMtx_t * setupUpdateMtxFromBuffer(workspace_t *, FLOAT *)
void constructLevelSep(domdec_t *, PORD_INT)
Definition ddbisect.c:208
graph_t * readChacoGraph(char *)
minprior_t * setupMinPriority(multisector_t *)
void initLocalIndices(denseMtx_t *, PORD_INT *, PORD_INT *)
void subtreeFactorOps(elimtree_t *, FLOAT *)
Definition tree.c:935
void forwardSubst1x1NEW(factorMtx_t *, FLOAT *)
void freeBuffer(buffer_t *)
denseMtx_t * factorize1x1Kernel(denseMtx_t *, PORD_INT)
void initLocalIndicesPAR(denseMtx_t *, PORD_INT *, PORD_INT *)
FLOAT nFactorOps(elimtree_t *)
Definition tree.c:913
FLOAT * getWorkspaceForDenseMtx(workspace_t *, PORD_INT)
void insertUpInts(PORD_INT, PORD_INT *)
Definition sort.c:21
factorMtx_t * SPACE_symbFac(elimtree_t *, inputMtx_t *)
void checkDDSep(domdec_t *)
Definition ddbisect.c:68
void freeGraph(graph_t *)
Definition graph.c:73
denseMtx_t * extendedAddPAR(denseMtx_t *, denseMtx_t *, PORD_INT *, PORD_INT *)
workspace_t * initWorkspaceForDenseMtx(PORD_INT, PORD_INT)
void freeBucket(bucket_t *)
Definition bucket.c:78
void updateAdjncy(gelim_t *, PORD_INT *, PORD_INT, PORD_INT *, PORD_INT *)
Definition gelim.c:495
void initFactorMtxPAR(mask_t *, mapping_t *, factorMtx_t *, inputMtx_t *)
void shrinkDomainDecomposition(domdec_t *, PORD_INT)
Definition ddcreate.c:898
mapping_t * newMapping(elimtree_t *, PORD_INT)
void checkDenseMtx(denseMtx_t *)
void sendCube(topology_t *, void *, size_t, PORD_INT)
graph_t * setupGridGraph(PORD_INT, PORD_INT, PORD_INT)
Definition graph.c:258
void removeBucket(bucket_t *, PORD_INT)
Definition bucket.c:214
PORD_INT greg_pord(PORD_INT, PORD_INT, PORD_INT *, PORD_INT *, PORD_INT *, PORD_INT *, PORD_INT *)
void accumulateVector(topology_t *, mask_t *, mapping_t *, factorMtx_t *, FLOAT *)
domdec_t * initialDomainDecomposition(graph_t *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition ddcreate.c:366
PORD_INT myrank(void)
graph_t * compressGraph(graph_t *, PORD_INT *)
Definition graph.c:470
void distributionCounting(PORD_INT, PORD_INT *, PORD_INT *)
Definition sort.c:186
void printTopology(topology_t *)
inputMtx_t * newInputMtx(PORD_INT, PORD_INT)
mask_t * newMask(PORD_INT)
void printDenseMtx(denseMtx_t *)
inputMtx_t * permuteInputMtx(inputMtx_t *, PORD_INT *)
void splitNDnode(nestdiss_t *, options_t *, timings_t *)
Definition nestdiss.c:125
PORD_INT nFactorIndices(elimtree_t *)
Definition tree.c:874
void initialDDSep(domdec_t *)
Definition ddbisect.c:348
void forwardSubst1x1KernelPAR(topology_t *, mask_t *, PORD_INT, PORD_INT, factorMtx_t *, FLOAT *, FLOAT *)
elimtree_t * SPACE_ordering(graph_t *, options_t *, timings_t *)
Definition interface.c:47
multisector_t * newMultisector(graph_t *)
Definition multisector.c:68
elimtree_t * compressElimTree(elimtree_t *, PORD_INT *, PORD_INT)
Definition tree.c:689
elimtree_t * SPACE_transformElimTree(elimtree_t *, PORD_INT)
gelim_t * setupElimGraph(graph_t *)
Definition gelim.c:229
bucket_t * setupBucket(PORD_INT, PORD_INT, PORD_INT)
Definition bucket.c:91
PORD_INT nWorkspace(elimtree_t *)
Definition tree.c:817
void updateW2B(bucket_t *, bucket_t *, domdec_t *, PORD_INT, PORD_INT *, PORD_INT *, PORD_INT *, PORD_INT *)
Definition ddbisect.c:495
void freeNDtree(nestdiss_t *)
Definition nestdiss.c:260
elimtree_t * extractElimTree(gelim_t *)
Definition gelim.c:1012
void insertUpFloatsWithIntKeys(PORD_INT, FLOAT *, PORD_INT *)
Definition sort.c:77
domdec_t * constructDomainDecomposition(graph_t *, PORD_INT *)
Definition ddcreate.c:472
void SPACE_numFac(factorMtx_t *, timings_t *)
PORD_INT nFactorEntries(elimtree_t *)
Definition tree.c:892
void initFactorMtx(factorMtx_t *L, inputMtx_t *)
Definition symbfac.c:510
minprior_t * newMinPriority(PORD_INT nvtx, PORD_INT nstages)
Definition minpriority.c:81
mapping_t * setupMapping(elimtree_t *, PORD_INT, PORD_INT)
buffer_t * exchangeBuffer(topology_t *, buffer_t *, PORD_INT)
css_t * setupCSSFromFrontSubscriptsPAR(mask_t *, mapping_t *, frontsub_t *)
denseMtx_t * factorize2x2KernelPAR(topology_t *, mask_t *, PORD_INT, denseMtx_t *, frontsub_t *, timings_t *)
void printGraph(graph_t *)
Definition graph.c:85
elimtree_t * expandElimTree(elimtree_t *, PORD_INT *, PORD_INT)
Definition tree.c:517
mapping_t * SPACE_mapping(graph_t *, PORD_INT *, options_t *, timings_t *)
void insertUpIntsWithStaticIntKeys(PORD_INT, PORD_INT *, PORD_INT *)
Definition sort.c:39
domdec_t * newDomainDecomposition(PORD_INT, PORD_INT)
Definition ddcreate.c:100
void smoothSeparator(gbisect_t *, options_t *)
Definition gbisect.c:443
void initFactorMtxNEW(factorMtx_t *L, inputMtx_t *)
Definition symbfac.c:570
gbisect_t * newGbisect(graph_t *)
Definition gbisect.c:59
css_t * setupCSSFromFrontSubscripts(frontsub_t *)
Definition symbfac.c:221
void splitDenseMtxRowWise(denseMtx_t *, mask_t *, buffer_t *, PORD_INT)
topology_t * SPACE_setupTopology(void)
void readoutNumFacBuffer(workspace_t *, buffer_t *, denseMtx_t **)
void eliminateStage(minprior_t *, PORD_INT, PORD_INT, timings_t *)
denseMtx_t * setupFrontalMtxPAR(mask_t *, PORD_INT, workspace_t *, factorMtx_t *, PORD_INT)
void buildElement(gelim_t *Gelim, PORD_INT me)
Definition gelim.c:357
size_t recvCube(topology_t *, void *, size_t, PORD_INT)
void updateScore(gelim_t *, PORD_INT *, PORD_INT, PORD_INT, PORD_INT *)
Definition gelim.c:890
void freeMask(mask_t *)
void SPACE_solveWithPerm(inputMtx_t *, PORD_INT *, FLOAT *, FLOAT *, options_t *, timings_t *)
void backwardSubst1x1PAR(topology_t *, mask_t *, mapping_t *, factorMtx_t *, FLOAT *)
void printMapping(mapping_t *)
void buildNDtree(nestdiss_t *, options_t *, timings_t *)
Definition nestdiss.c:213
nestdiss_t * newNDnode(graph_t *, PORD_INT *, PORD_INT)
Definition nestdiss.c:75
buffer_t * setupTriangularBuffer(frontsub_t *, PORD_INT *, FLOAT *)
void readoutTriangularBuffer(buffer_t *, frontsub_t *, PORD_INT *, FLOAT *)
elimtree_t * newElimTree(PORD_INT, PORD_INT)
Definition tree.c:110
frontsub_t * newFrontSubscripts(elimtree_t *)
Definition symbfac.c:265
elimtree_t * setupElimTree(graph_t *, PORD_INT *, PORD_INT *)
Definition tree.c:293
void freeGbisect(gbisect_t *)
Definition gbisect.c:77
void printElimTree(elimtree_t *)
Definition tree.c:147
PORD_INT firstPostorder(elimtree_t *)
Definition tree.c:213
void printDomainDecomposition(domdec_t *)
Definition ddcreate.c:133
inputMtx_t * setupLaplaceMtx(PORD_INT, PORD_INT, PORD_INT)
void numfac(factorMtx_t *L, timings_t *cpus)
void readoutSymbFacBuffer(buffer_t *, frontsub_t *, PORD_INT *)
void checkSeparator(gbisect_t *)
Definition gbisect.c:117
buffer_t * setupNumFacBuffer(workspace_t *, mask_t *, PORD_INT)
bucket_t * newBucket(PORD_INT, PORD_INT, PORD_INT)
Definition bucket.c:56
denseMtx_t * newDenseMtx(workspace_t *, PORD_INT)
denseMtx_t * setupFrontalMtx(workspace_t *, factorMtx_t *, PORD_INT)
factorMtx_t * newFactorMtx(PORD_INT)
Definition symbfac.c:447
denseMtx_t * factorize2x2Kernel(denseMtx_t *, PORD_INT)
void freeDenseMtx(denseMtx_t *)
void SPACE_solveWithPermPAR(topology_t *top, mask_t *mask, inputMtx_t *A, PORD_INT *perm, FLOAT *rhs, FLOAT *xvec, options_t *options, timings_t *cpus)
void maximumFlow(gbipart_t *, PORD_INT *, PORD_INT *)
Definition gbipart.c:322
void broadcastInputMtx(topology_t *, inputMtx_t **)
void printGbisect(gbisect_t *)
Definition gbisect.c:87
PORD_INT nextPreorder(elimtree_t *, PORD_INT)
Definition tree.c:272
denseMtx_t * extendedAdd(denseMtx_t *, denseMtx_t *, PORD_INT *, PORD_INT *)
elimtree_t * permuteElimTree(elimtree_t *, PORD_INT *)
Definition tree.c:483
PORD_INT smoothBy2Layers(gbisect_t *, PORD_INT *, PORD_INT *, PORD_INT, PORD_INT)
Definition gbisect.c:293
void freeNDnode(nestdiss_t *)
Definition nestdiss.c:96
void findIndMultisecs(domdec_t *, PORD_INT *, PORD_INT *)
Definition ddcreate.c:670
multisector_t * extractMSmultistage(nestdiss_t *)
denseMtx_t * setupUpdateMtxFromFrontalMtx(denseMtx_t *, factorMtx_t *)
mask_t * SPACE_setupMask(topology_t *, PORD_INT)
frontsub_t * setupFrontSubscriptsPAR(topology_t *, mask_t *, mapping_t *, elimtree_t *, inputMtx_t *)
void insertDownIntsWithStaticFloatKeys(PORD_INT, PORD_INT *, FLOAT *)
Definition sort.c:58
void maximumMatching(gbipart_t *, PORD_INT *)
Definition gbipart.c:195
PORD_INT justifyFronts(elimtree_t *)
Definition tree.c:741
void freeMinPriority(minprior_t *)
void freeElimTree(elimtree_t *)
Definition tree.c:132
void forwardSubst1x1PAR(topology_t *, mask_t *, mapping_t *, factorMtx_t *, FLOAT *, FLOAT *)
double FLOAT
Definition types.h:23
FLOAT timings_t
Definition types.h:25
#define PORD_INT
Definition types.h:20
struct _workspace workspace_t
Definition types.h:177
struct _minprior minprior_t
struct _frontsub frontsub_t
struct _nestdiss nestdiss_t
struct _multisector multisector_t
struct _factorMtx factorMtx_t
struct _css css_t
struct _inputMtx inputMtx_t
struct _graph graph_t
struct _elimtree elimtree_t
PORD_INT options_t
Definition types.h:24
struct _gbisect gbisect_t
struct _gbipart gbipart_t
struct _denseMtx denseMtx_t
struct _gelim gelim_t
struct _bucket bucket_t
struct _domdec domdec_t