Lines Matching refs:spm
36 spmatrix_t *spm; /* SPM matrix structure */
52 spm - The SPM built from A
62 spmatrix_t spm2, *spm = NULL;
69 /* TODO: Block Aij should be handled with dof in spm */
85 PetscCall(PetscMalloc1(1, &spm));
86 PetscStackCallExternalVoid("spmInitDist", spmInitDist(spm, pastix->comm));
88 spm->n = n;
89 spm->nnz = row[n];
90 spm->fmttype = SpmCSR;
91 spm->flttype = SPM_FLTTYPE;
92 spm->replicated = !(A->rmap->n != A->rmap->N);
94 PetscStackCallExternalVoid("spmUpdateComputedFields", spmUpdateComputedFields(spm));
95 PetscStackCallExternalVoid("spmAlloc", spmAlloc(spm));
98 if (!spm->replicated) {
99 for (i = A->rmap->rstart; i < A->rmap->rend; i++) spm->loc2glob[i - A->rmap->rstart] = i;
103 PetscCall(PetscArraycpy(spm->colptr, col, spm->nnz));
104 PetscCall(PetscArraycpy(spm->rowptr, row, spm->n + 1));
105 PetscCall(PetscArraycpy((PetscScalar *)spm->values, val, spm->nnzexp));
118 spm->fmttype = SpmCSC;
119 tmp = spm->colptr;
120 spm->colptr = spm->rowptr;
121 spm->rowptr = tmp;
126 PetscStackCallExternalVoid("spmCheckAndCorrect", spm_err = spmCheckAndCorrect(spm, &spm2));
128 PetscStackCallExternalVoid("spmExit", spmExit(spm));
129 *spm = spm2;
134 pastix->spm = spm;
148 if (pastix->spm) {
149 PetscStackCallExternalVoid("spmExit", spmExit(pastix->spm));
150 PetscCall(PetscFree(pastix->spm));
177 ldrhs = pastix->spm->n;
210 PetscCallExternal(pastix_task_numfact, pastix->pastix_data, pastix->spm);
263 PetscCallExternal(pastix_task_analyze, pastix->pastix_data, pastix->spm);
303 spmatrix_t *spm = pastix->spm;
304 PetscCheck(!spm, PETSC_COMM_SELF, PETSC_ERR_SUP, "Sparse matrix isn't initialized");
307 PetscCall(PetscViewerASCIIPrintf(viewer, " Matrix type : %s \n", ((spm->mtxtype == SpmSymmetric) ? "Symmetric" : "Unsymmetric")));
311 if (pastix->iparm[IPARM_VERBOSE] > 0) spmPrintInfo(spm, stdout);