Lines Matching refs:lu

123   Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)F->data;  in MatSuperluDistGetDiagU_SuperLU_DIST()  local
126 …PetscStackCallExternalVoid("SuperLU_DIST:pGetDiagU", pGetDiagU(F->rmap->N, &lu->LUstruct, &lu->gri… in MatSuperluDistGetDiagU_SuperLU_DIST()
189 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)A->data; in MatDestroy_SuperLU_DIST() local
193 PetscCall(PetscFree(lu->sbptr)); in MatDestroy_SuperLU_DIST()
195 if (lu->CleanUpSuperLU_Dist) { in MatDestroy_SuperLU_DIST()
197 …nalVoid("SuperLU_DIST:Destroy_CompRowLoc_Matrix_dist", Destroy_CompRowLoc_Matrix_dist(&lu->A_sup)); in MatDestroy_SuperLU_DIST()
198 if (lu->options.SolveInitialized) { in MatDestroy_SuperLU_DIST()
200 …if (lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", sSolveFinalize(& in MatDestroy_SuperLU_DIST()
203 …PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", SolveFinalize(&lu->options, &lu->SOLVEstr… in MatDestroy_SuperLU_DIST()
206 if (lu->use3d) { in MatDestroy_SuperLU_DIST()
208 if (lu->singleprecision) { in MatDestroy_SuperLU_DIST()
209 …ExternalVoid("SuperLU_DIST:Destroy_LU", sDestroy_LU(A->cmap->N, &lu->grid3d.grid2d, &lu->sLUstruct… in MatDestroy_SuperLU_DIST()
210 …rLU_DIST:Destroy_A3d_gathered_on_2d", sDestroy_A3d_gathered_on_2d(&lu->sSOLVEstruct, &lu->grid3d)); in MatDestroy_SuperLU_DIST()
211 …PetscStackCallExternalVoid("SuperLU_DIST:ScalePermstructFree", sScalePermstructFree(&lu->sScalePer… in MatDestroy_SuperLU_DIST()
212 PetscStackCallExternalVoid("SuperLU_DIST:LUstructFree", sLUstructFree(&lu->sLUstruct)); in MatDestroy_SuperLU_DIST()
216 …lExternalVoid("SuperLU_DIST:Destroy_LU", Destroy_LU(A->cmap->N, &lu->grid3d.grid2d, &lu->LUstruct)… in MatDestroy_SuperLU_DIST()
217 …perLU_DIST:Destroy_A3d_gathered_on_2d", Destroy_A3d_gathered_on_2d(&lu->SOLVEstruct, &lu->grid3d)); in MatDestroy_SuperLU_DIST()
218 …PetscStackCallExternalVoid("SuperLU_DIST:ScalePermstructFree", ScalePermstructFree(&lu->ScalePerms… in MatDestroy_SuperLU_DIST()
219 PetscStackCallExternalVoid("SuperLU_DIST:LUstructFree", LUstructFree(&lu->LUstruct)); in MatDestroy_SuperLU_DIST()
224 if (lu->singleprecision) { in MatDestroy_SuperLU_DIST()
225 …PetscStackCallExternalVoid("SuperLU_DIST:Destroy_LU", sDestroy_LU(A->cmap->N, &lu->grid, &lu->sLUs… in MatDestroy_SuperLU_DIST()
226 …PetscStackCallExternalVoid("SuperLU_DIST:ScalePermstructFree", sScalePermstructFree(&lu->sScalePer… in MatDestroy_SuperLU_DIST()
227 PetscStackCallExternalVoid("SuperLU_DIST:LUstructFree", sLUstructFree(&lu->sLUstruct)); in MatDestroy_SuperLU_DIST()
231 …PetscStackCallExternalVoid("SuperLU_DIST:Destroy_LU", Destroy_LU(A->cmap->N, &lu->grid, &lu->LUstr… in MatDestroy_SuperLU_DIST()
232 …PetscStackCallExternalVoid("SuperLU_DIST:ScalePermstructFree", ScalePermstructFree(&lu->ScalePerms… in MatDestroy_SuperLU_DIST()
233 PetscStackCallExternalVoid("SuperLU_DIST:LUstructFree", LUstructFree(&lu->LUstruct)); in MatDestroy_SuperLU_DIST()
236 if (lu->comm_superlu) { in MatDestroy_SuperLU_DIST()
238 if (lu->use3d) { in MatDestroy_SuperLU_DIST()
239 … PetscStackCallExternalVoid("SuperLU_DIST:superlu_gridexit3d", superlu_gridexit3d(&lu->grid3d)); in MatDestroy_SuperLU_DIST()
242 PetscStackCallExternalVoid("SuperLU_DIST:superlu_gridexit", superlu_gridexit(&lu->grid)); in MatDestroy_SuperLU_DIST()
252 if (lu->comm_superlu) { in MatDestroy_SuperLU_DIST()
253 PetscCall(PetscCommRestoreComm(PetscObjectComm((PetscObject)A), &lu->comm_superlu)); in MatDestroy_SuperLU_DIST()
273 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)A->data; in MatSolve_SuperLU_DIST() local
285 …PetscCheck(lu->options.Fact == FACTORED, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONG, "SuperLU_DIST optio… in MatSolve_SuperLU_DIST()
290 if (lu->options.SolveInitialized && !lu->matsolve_iscalled) { in MatSolve_SuperLU_DIST()
293 …if (lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", sSolveFinalize(& in MatSolve_SuperLU_DIST()
296 …PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", SolveFinalize(&lu->options, &lu->SOLVEstr… in MatSolve_SuperLU_DIST()
297 lu->options.SolveInitialized = NO; in MatSolve_SuperLU_DIST()
302 if (lu->singleprecision) { in MatSolve_SuperLU_DIST()
305 if (!lu->sbptr) PetscCall(PetscMalloc1(n, &lu->sbptr)); in MatSolve_SuperLU_DIST()
306 …for (PetscInt i = 0; i < n; i++) lu->sbptr[i] = PetscRealPart(bptr[i]); /* PetscRealPart() is a no… in MatSolve_SuperLU_DIST()
312 if (lu->use3d) { in MatSolve_SuperLU_DIST()
314lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:pgssvx3d", psgssvx3d(&lu->options, & in MatSolve_SuperLU_DIST()
317 …gssvx3d", pgssvx3d(&lu->options, &lu->A_sup, &lu->ScalePermstruct, CASTDOUBLECOMPLEX bptr, (int)m,… in MatSolve_SuperLU_DIST()
323lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:pgssvx", psgssvx(&lu->options, &lu->… in MatSolve_SuperLU_DIST()
326 …IST:pgssvx", pgssvx(&lu->options, &lu->A_sup, &lu->ScalePermstruct, CASTDOUBLECOMPLEX bptr, (int)m… in MatSolve_SuperLU_DIST()
329 …if (lu->options.PrintStat) PetscStackCallExternalVoid("SuperLU_DIST:PStatPrint", PStatPrint(&lu->o… in MatSolve_SuperLU_DIST()
332 if (lu->singleprecision) { in MatSolve_SuperLU_DIST()
335 for (PetscInt i = 0; i < n; i++) bptr[i] = lu->sbptr[i]; in MatSolve_SuperLU_DIST()
339 lu->matsolve_iscalled = PETSC_TRUE; in MatSolve_SuperLU_DIST()
340 lu->matmatsolve_iscalled = PETSC_FALSE; in MatSolve_SuperLU_DIST()
346 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)A->data; in MatMatSolve_SuperLU_DIST() local
356 …PetscCheck(!lu->singleprecision, PetscObjectComm((PetscObject)A), PETSC_ERR_SUP, "Not for -pc_prec… in MatMatSolve_SuperLU_DIST()
358 …PetscCheck(lu->options.Fact == FACTORED, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONG, "SuperLU_DIST optio… in MatMatSolve_SuperLU_DIST()
366 if (lu->options.SolveInitialized && !lu->matmatsolve_iscalled) { in MatMatSolve_SuperLU_DIST()
371 …PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", SolveFinalize(&lu->options, &lu->SOLVEstr… in MatMatSolve_SuperLU_DIST()
372 lu->options.SolveInitialized = NO; in MatMatSolve_SuperLU_DIST()
382lu->use3d) PetscStackCallExternalVoid("SuperLU_DIST:pgssvx3d", pgssvx3d(&lu->options, &lu->A_sup, … in MatMatSolve_SuperLU_DIST()
385 …pgssvx", pgssvx(&lu->options, &lu->A_sup, &lu->ScalePermstruct, CASTDOUBLECOMPLEX bptr, (int)m, (i… in MatMatSolve_SuperLU_DIST()
389 …if (lu->options.PrintStat) PetscStackCallExternalVoid("SuperLU_DIST:PStatPrint", PStatPrint(&lu->o… in MatMatSolve_SuperLU_DIST()
391 lu->matsolve_iscalled = PETSC_FALSE; in MatMatSolve_SuperLU_DIST()
392 lu->matmatsolve_iscalled = PETSC_TRUE; in MatMatSolve_SuperLU_DIST()
406 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)F->data; in MatGetInertia_SuperLU_DIST() local
413 …PetscCheck(!lu->singleprecision, PetscObjectComm((PetscObject)F), PETSC_ERR_SUP, "Not for -pc_prec… in MatGetInertia_SuperLU_DIST()
416 …PetscCheck(lu->options.RowPerm == NOROWPERM, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONG, "Must set NOROW… in MatGetInertia_SuperLU_DIST()
444 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)F->data; in MatLUFactorNumeric_SuperLU_DIST() local
473 if (lu->options.Fact == DOFACT) { /* first numeric factorization */ in MatLUFactorNumeric_SuperLU_DIST()
475 …if (lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:allocateA_dist", sallocateA_dist… in MatLUFactorNumeric_SuperLU_DIST()
478 …teA_dist", allocateA_dist(Aloc->rmap->n, nz, CASTDOUBLECOMPLEXSTAR & lu->val, &lu->col, &lu->row)); in MatLUFactorNumeric_SuperLU_DIST()
480 if (lu->FactPattern == SamePattern_SameRowPerm) { in MatLUFactorNumeric_SuperLU_DIST()
481 lu->options.Fact = SamePattern_SameRowPerm; /* matrix has similar numerical values */ in MatLUFactorNumeric_SuperLU_DIST()
482 } else if (lu->FactPattern == SamePattern) { in MatLUFactorNumeric_SuperLU_DIST()
484 if (lu->use3d) { in MatLUFactorNumeric_SuperLU_DIST()
486 if (lu->singleprecision) { in MatLUFactorNumeric_SuperLU_DIST()
487 …ExternalVoid("SuperLU_DIST:Destroy_LU", sDestroy_LU(A->cmap->N, &lu->grid3d.grid2d, &lu->sLUstruct… in MatLUFactorNumeric_SuperLU_DIST()
488 …PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", sSolveFinalize(&lu->options, &lu->sSOLVEs… in MatLUFactorNumeric_SuperLU_DIST()
492 …lExternalVoid("SuperLU_DIST:Destroy_LU", Destroy_LU(A->cmap->N, &lu->grid3d.grid2d, &lu->LUstruct)… in MatLUFactorNumeric_SuperLU_DIST()
493 …PetscStackCallExternalVoid("SuperLU_DIST:SolveFinalize", SolveFinalize(&lu->options, &lu->SOLVEstr… in MatLUFactorNumeric_SuperLU_DIST()
498 if (lu->singleprecision) in MatLUFactorNumeric_SuperLU_DIST()
499 …ackCallExternalVoid("SuperLU_DIST:Destroy_LU", sDestroy_LU(A->rmap->N, &lu->grid, &lu->sLUstruct)); in MatLUFactorNumeric_SuperLU_DIST()
502 …PetscStackCallExternalVoid("SuperLU_DIST:Destroy_LU", Destroy_LU(A->rmap->N, &lu->grid, &lu->LUstr… in MatLUFactorNumeric_SuperLU_DIST()
503 lu->options.Fact = SamePattern; in MatLUFactorNumeric_SuperLU_DIST()
504 } else if (lu->FactPattern == DOFACT) { in MatLUFactorNumeric_SuperLU_DIST()
505 …nalVoid("SuperLU_DIST:Destroy_CompRowLoc_Matrix_dist", Destroy_CompRowLoc_Matrix_dist(&lu->A_sup)); in MatLUFactorNumeric_SuperLU_DIST()
507 …if (lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:Destroy_LU", sDestroy_LU(A->rmap… in MatLUFactorNumeric_SuperLU_DIST()
510 …PetscStackCallExternalVoid("SuperLU_DIST:Destroy_LU", Destroy_LU(A->rmap->N, &lu->grid, &lu->LUstr… in MatLUFactorNumeric_SuperLU_DIST()
511 lu->options.Fact = DOFACT; in MatLUFactorNumeric_SuperLU_DIST()
513 …if (lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:allocateA_dist", sallocateA_dist… in MatLUFactorNumeric_SuperLU_DIST()
516 …teA_dist", allocateA_dist(Aloc->rmap->n, nz, CASTDOUBLECOMPLEXSTAR & lu->val, &lu->col, &lu->row)); in MatLUFactorNumeric_SuperLU_DIST()
521 PetscCall(PetscArraycpy(lu->row, ai, Aloc->rmap->n + 1)); in MatLUFactorNumeric_SuperLU_DIST()
522 PetscCall(PetscArraycpy(lu->col, aj, nz)); in MatLUFactorNumeric_SuperLU_DIST()
524 if (lu->singleprecision) in MatLUFactorNumeric_SuperLU_DIST()
525 …for (PetscInt i = 0; i < nz; i++) lu->sval[i] = PetscRealPart(av[i]); /* PetscRealPart() is a no-o… in MatLUFactorNumeric_SuperLU_DIST()
528 PetscCall(PetscArraycpy(lu->val, av, nz)); in MatLUFactorNumeric_SuperLU_DIST()
535 if (lu->options.Fact == DOFACT) { in MatLUFactorNumeric_SuperLU_DIST()
537 if (lu->singleprecision) in MatLUFactorNumeric_SuperLU_DIST()
538 …sCreate_CompRowLoc_Matrix_dist(&lu->A_sup, A->rmap->N, A->cmap->N, nz, A->rmap->n, A->rmap->rstart… in MatLUFactorNumeric_SuperLU_DIST()
541 …ompRowLoc_Matrix_dist(&lu->A_sup, A->rmap->N, A->cmap->N, nz, A->rmap->n, A->rmap->rstart, CASTDOU… in MatLUFactorNumeric_SuperLU_DIST()
547 if (lu->use3d) { in MatLUFactorNumeric_SuperLU_DIST()
549lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:pgssvx3d", psgssvx3d(&lu->options, & in MatLUFactorNumeric_SuperLU_DIST()
552 …DIST:pgssvx3d", pgssvx3d(&lu->options, &lu->A_sup, &lu->ScalePermstruct, 0, (int)A->rmap->n, 0, &l… in MatLUFactorNumeric_SuperLU_DIST()
557lu->singleprecision) PetscStackCallExternalVoid("SuperLU_DIST:pgssvx", psgssvx(&lu->options, &lu->… in MatLUFactorNumeric_SuperLU_DIST()
560 …erLU_DIST:pgssvx", pgssvx(&lu->options, &lu->A_sup, &lu->ScalePermstruct, 0, (int)A->rmap->n, 0, & in MatLUFactorNumeric_SuperLU_DIST()
564 if (sinfo <= lu->A_sup.ncol) { in MatLUFactorNumeric_SuperLU_DIST()
567 } else if (sinfo > lu->A_sup.ncol) { in MatLUFactorNumeric_SuperLU_DIST()
577 …if (lu->options.PrintStat) PetscStackCallExternalVoid("SuperLU_DIST:PStatPrint", PStatPrint(&lu->o… in MatLUFactorNumeric_SuperLU_DIST()
581lu->options.Fact = FACTORED; /* The factored form of A is supplied. Local option used by this func… in MatLUFactorNumeric_SuperLU_DIST()
588 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)F->data; in MatLUFactorSymbolic_SuperLU_DIST() local
604 …PetscCall(PetscOptionsBool("-mat_superlu_dist_equil", "Equilibrate matrix", "None", lu->options.Eq… in MatLUFactorSymbolic_SuperLU_DIST()
605 if (set && !flg) lu->options.Equil = NO; in MatLUFactorSymbolic_SuperLU_DIST()
611 lu->options.RowPerm = NOROWPERM; in MatLUFactorSymbolic_SuperLU_DIST()
614 lu->options.RowPerm = LargeDiag_MC64; in MatLUFactorSymbolic_SuperLU_DIST()
617 lu->options.RowPerm = LargeDiag_AWPM; in MatLUFactorSymbolic_SuperLU_DIST()
620 lu->options.RowPerm = MY_PERMR; in MatLUFactorSymbolic_SuperLU_DIST()
631 lu->options.ColPerm = NATURAL; in MatLUFactorSymbolic_SuperLU_DIST()
634 lu->options.ColPerm = MMD_AT_PLUS_A; in MatLUFactorSymbolic_SuperLU_DIST()
637 lu->options.ColPerm = MMD_ATA; in MatLUFactorSymbolic_SuperLU_DIST()
640 lu->options.ColPerm = METIS_AT_PLUS_A; in MatLUFactorSymbolic_SuperLU_DIST()
643 lu->options.ColPerm = PARMETIS; /* only works for np>1 */ in MatLUFactorSymbolic_SuperLU_DIST()
650 lu->options.ReplaceTinyPivot = NO; in MatLUFactorSymbolic_SuperLU_DIST()
651 …sBool("-mat_superlu_dist_replacetinypivot", "Replace tiny pivots", "None", lu->options.ReplaceTiny… in MatLUFactorSymbolic_SuperLU_DIST()
652 if (set && flg) lu->options.ReplaceTinyPivot = YES; in MatLUFactorSymbolic_SuperLU_DIST()
654 lu->options.ParSymbFact = NO; in MatLUFactorSymbolic_SuperLU_DIST()
658 lu->options.ParSymbFact = YES; in MatLUFactorSymbolic_SuperLU_DIST()
659lu->options.ColPerm = PARMETIS; /* in v2.2, PARMETIS is forced for ParSymbFact regardless of u… in MatLUFactorSymbolic_SuperLU_DIST()
665 lu->FactPattern = SamePattern; in MatLUFactorSymbolic_SuperLU_DIST()
670 lu->FactPattern = SamePattern; in MatLUFactorSymbolic_SuperLU_DIST()
673 lu->FactPattern = SamePattern_SameRowPerm; in MatLUFactorSymbolic_SuperLU_DIST()
676 lu->FactPattern = DOFACT; in MatLUFactorSymbolic_SuperLU_DIST()
681 lu->options.IterRefine = NOREFINE; in MatLUFactorSymbolic_SuperLU_DIST()
682 …PetscCall(PetscOptionsBool("-mat_superlu_dist_iterrefine", "Use iterative refinement", "None", lu-… in MatLUFactorSymbolic_SuperLU_DIST()
683 if (set && flg) lu->options.IterRefine = SLU_DOUBLE; in MatLUFactorSymbolic_SuperLU_DIST()
685 if (PetscLogPrintInfo) lu->options.PrintStat = YES; in MatLUFactorSymbolic_SuperLU_DIST()
686 else lu->options.PrintStat = NO; in MatLUFactorSymbolic_SuperLU_DIST()
688 …", "Print factorization information", "None", (PetscBool)lu->options.PrintStat, (PetscBool *)&lu->… in MatLUFactorSymbolic_SuperLU_DIST()
691 lu->options.superlu_acc_offload = 1; in MatLUFactorSymbolic_SuperLU_DIST()
692 …ad factorization onto the GPUs", "None", (PetscBool)lu->options.superlu_acc_offload, (PetscBool *)… in MatLUFactorSymbolic_SuperLU_DIST()
703 PetscCall(PetscCommGetComm(PetscObjectComm((PetscObject)A), &lu->comm_superlu)); in MatLUFactorSymbolic_SuperLU_DIST()
707 lu->nprow = (int_t)(0.5 + PetscSqrtReal((PetscReal)size)); in MatLUFactorSymbolic_SuperLU_DIST()
708 if (!lu->nprow) lu->nprow = 1; in MatLUFactorSymbolic_SuperLU_DIST()
709 while (lu->nprow > 0) { in MatLUFactorSymbolic_SuperLU_DIST()
710 lu->npcol = (int_t)(size / lu->nprow); in MatLUFactorSymbolic_SuperLU_DIST()
711 if (size == lu->nprow * lu->npcol) break; in MatLUFactorSymbolic_SuperLU_DIST()
712 lu->nprow--; in MatLUFactorSymbolic_SuperLU_DIST()
715 lu->use3d = PETSC_FALSE; in MatLUFactorSymbolic_SuperLU_DIST()
716 lu->npdep = 1; in MatLUFactorSymbolic_SuperLU_DIST()
720 …("-mat_superlu_dist_3d", "Use SuperLU_DIST 3D distribution", "None", lu->use3d, &lu->use3d, NULL)); in MatLUFactorSymbolic_SuperLU_DIST()
721 if (lu->use3d) { in MatLUFactorSymbolic_SuperLU_DIST()
723 …dist_d", "Number of z entries in processor partition", "None", lu->npdep, (PetscInt *)&lu->npdep, … in MatLUFactorSymbolic_SuperLU_DIST()
724 t = (PetscInt)PetscLog2Real((PetscReal)lu->npdep); in MatLUFactorSymbolic_SuperLU_DIST()
725 …(2, t) == lu->npdep, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_OUTOFRANGE, "-mat_superlu_dist… in MatLUFactorSymbolic_SuperLU_DIST()
726 if (lu->npdep > 1) { in MatLUFactorSymbolic_SuperLU_DIST()
727 lu->nprow = (int_t)(0.5 + PetscSqrtReal((PetscReal)(size / lu->npdep))); in MatLUFactorSymbolic_SuperLU_DIST()
728 if (!lu->nprow) lu->nprow = 1; in MatLUFactorSymbolic_SuperLU_DIST()
729 while (lu->nprow > 0) { in MatLUFactorSymbolic_SuperLU_DIST()
730 lu->npcol = (int_t)(size / (lu->npdep * lu->nprow)); in MatLUFactorSymbolic_SuperLU_DIST()
731 if (size == lu->nprow * lu->npcol * lu->npdep) break; in MatLUFactorSymbolic_SuperLU_DIST()
732 lu->nprow--; in MatLUFactorSymbolic_SuperLU_DIST()
737 …superlu_dist_r", "Number rows in processor partition", "None", lu->nprow, (PetscInt *)&lu->nprow, … in MatLUFactorSymbolic_SuperLU_DIST()
738 …erlu_dist_c", "Number columns in processor partition", "None", lu->npcol, (PetscInt *)&lu->npcol, … in MatLUFactorSymbolic_SuperLU_DIST()
740lu->nprow * lu->npcol * lu->npdep, PETSC_COMM_SELF, PETSC_ERR_ARG_SIZ, "Number of processes %d mus… in MatLUFactorSymbolic_SuperLU_DIST()
742lu->nprow * lu->npcol, PETSC_COMM_SELF, PETSC_ERR_ARG_SIZ, "Number of processes %d must equal to n… in MatLUFactorSymbolic_SuperLU_DIST()
747 if (lu->use3d) { in MatLUFactorSymbolic_SuperLU_DIST()
748 …erlu_gridinit3d(context ? context->comm : lu->comm_superlu, (int)lu->nprow, (int)lu->npcol, (int)l… in MatLUFactorSymbolic_SuperLU_DIST()
750 context->grid3d = lu->grid3d; in MatLUFactorSymbolic_SuperLU_DIST()
751 context->use3d = lu->use3d; in MatLUFactorSymbolic_SuperLU_DIST()
755 …init", superlu_gridinit(context ? context->comm : lu->comm_superlu, (int)lu->nprow, (int)lu->npcol… in MatLUFactorSymbolic_SuperLU_DIST()
756 if (context) context->grid = lu->grid; in MatLUFactorSymbolic_SuperLU_DIST()
769 lu->grid = context->grid; in MatLUFactorSymbolic_SuperLU_DIST()
775 if (lu->singleprecision) { in MatLUFactorSymbolic_SuperLU_DIST()
776 …PetscStackCallExternalVoid("SuperLU_DIST:ScalePermstructInit", sScalePermstructInit(M, N, &lu->sSc… in MatLUFactorSymbolic_SuperLU_DIST()
777 PetscStackCallExternalVoid("SuperLU_DIST:LUstructInit", sLUstructInit(N, &lu->sLUstruct)); in MatLUFactorSymbolic_SuperLU_DIST()
781 …PetscStackCallExternalVoid("SuperLU_DIST:ScalePermstructInit", ScalePermstructInit(M, N, &lu->Scal… in MatLUFactorSymbolic_SuperLU_DIST()
782 PetscStackCallExternalVoid("SuperLU_DIST:LUstructInit", LUstructInit(N, &lu->LUstruct)); in MatLUFactorSymbolic_SuperLU_DIST()
790 lu->CleanUpSuperLU_Dist = PETSC_TRUE; in MatLUFactorSymbolic_SuperLU_DIST()
811 Mat_SuperLU_DIST *lu = (Mat_SuperLU_DIST *)A->data; in MatView_Info_SuperLU_DIST() local
818 options = lu->options; in MatView_Info_SuperLU_DIST()
822 …(viewer, " Process grid nprow %lld x npcol %lld \n", (long long)lu->nprow, (long long)lu->npcol)); in MatView_Info_SuperLU_DIST()
824 …if (lu->use3d) PetscCall(PetscViewerASCIIPrintf(viewer, " Using 3d decomposition with npdep %lld … in MatView_Info_SuperLU_DIST()
830 …er, " Processors in row %lld col partition %lld \n", (long long)lu->nprow, (long long)lu->npcol)); in MatView_Info_SuperLU_DIST()
872 if (lu->FactPattern == SamePattern) { in MatView_Info_SuperLU_DIST()
874 } else if (lu->FactPattern == SamePattern_SameRowPerm) { in MatView_Info_SuperLU_DIST()
876 } else if (lu->FactPattern == DOFACT) { in MatView_Info_SuperLU_DIST()
880 …if (lu->singleprecision) PetscCall(PetscViewerASCIIPrintf(viewer, " Using SuperLU_DIST in single … in MatView_Info_SuperLU_DIST()
902 Mat_SuperLU_DIST *lu; in MatGetFactor_aij_superlu_dist() local
950 PetscCall(PetscNew(&lu)); in MatGetFactor_aij_superlu_dist()
951 B->data = lu; in MatGetFactor_aij_superlu_dist()
954 lu->options = options; in MatGetFactor_aij_superlu_dist()
955 lu->options.Fact = DOFACT; in MatGetFactor_aij_superlu_dist()
956 lu->matsolve_iscalled = PETSC_FALSE; in MatGetFactor_aij_superlu_dist()
957 lu->matmatsolve_iscalled = PETSC_FALSE; in MatGetFactor_aij_superlu_dist()
965lu->singleprecision = (PetscBool)(precision == PETSC_PRECISION_SINGLE); // It also implies PetscRe… in MatGetFactor_aij_superlu_dist()