Lines Matching refs:ilu

8   PC_ILU *ilu = (PC_ILU *)pc->data;  in PCFactorReorderForNonzeroDiagonal_ILU()  local
11 ilu->nonzerosalongdiagonal = PETSC_TRUE; in PCFactorReorderForNonzeroDiagonal_ILU()
12 if (z == (PetscReal)PETSC_DECIDE) ilu->nonzerosalongdiagonaltol = 1.e-10; in PCFactorReorderForNonzeroDiagonal_ILU()
13 else ilu->nonzerosalongdiagonaltol = z; in PCFactorReorderForNonzeroDiagonal_ILU()
19 PC_ILU *ilu = (PC_ILU *)pc->data; in PCReset_ILU() local
22 if (!ilu->hdr.inplace) PetscCall(MatDestroy(&((PC_Factor *)ilu)->fact)); in PCReset_ILU()
23 if (ilu->row && ilu->col && ilu->row != ilu->col) PetscCall(ISDestroy(&ilu->row)); in PCReset_ILU()
24 PetscCall(ISDestroy(&ilu->col)); in PCReset_ILU()
30 PC_ILU *ilu = (PC_ILU *)pc->data; in PCFactorSetDropTolerance_ILU() local
33 …pc->setupcalled || !(((PC_Factor *)ilu)->info.dt != dt || ((PC_Factor *)ilu)->info.dtcol != dtcol … in PCFactorSetDropTolerance_ILU()
34 ((PC_Factor *)ilu)->info.dt = dt; in PCFactorSetDropTolerance_ILU()
35 ((PC_Factor *)ilu)->info.dtcol = dtcol; in PCFactorSetDropTolerance_ILU()
36 ((PC_Factor *)ilu)->info.dtcount = dtcount; in PCFactorSetDropTolerance_ILU()
37 ((PC_Factor *)ilu)->info.usedt = 1.0; in PCFactorSetDropTolerance_ILU()
45 PC_ILU *ilu = (PC_ILU *)pc->data; in PCSetFromOptions_ILU() local
52 …or_levels", "levels of fill", "PCFactorSetLevels", (PetscInt)((PC_Factor *)ilu)->info.levels, &itm… in PCSetFromOptions_ILU()
53 if (flg) ((PC_Factor *)ilu)->info.levels = itmp; in PCSetFromOptions_ILU()
55 … into empty diagonal entry", "PCFactorSetAllowDiagonalFill", ((PC_Factor *)ilu)->info.diagonal_fil… in PCSetFromOptions_ILU()
56 if (set) ((PC_Factor *)ilu)->info.diagonal_fill = (PetscReal)flg; in PCSetFromOptions_ILU()
60 …order to remove zeros from diagonal", "PCFactorReorderForNonzeroDiagonal", ilu->nonzerosalongdiago… in PCSetFromOptions_ILU()
70 PC_ILU *ilu = (PC_ILU *)pc->data; in PCSetUp_ILU() local
80 if (((PC_Factor *)ilu)->info.shifttype == (PetscReal)MAT_SHIFT_NONZERO) { in PCSetUp_ILU()
85 ((PC_Factor *)ilu)->info.shifttype = (PetscReal)MAT_SHIFT_INBLOCKS; in PCSetUp_ILU()
95 if (ilu->hdr.inplace) { in PCSetUp_ILU()
101 PetscCall(MatDestroy(&((PC_Factor *)ilu)->fact)); in PCSetUp_ILU()
102 PetscCall(MatGetOrdering(pc->pmat, ((PC_Factor *)ilu)->ordering, &ilu->row, &ilu->col)); in PCSetUp_ILU()
107 ((PC_Factor *)ilu)->info.fill = 1.0; in PCSetUp_ILU()
108 ((PC_Factor *)ilu)->info.diagonal_fill = 0.0; in PCSetUp_ILU()
110 PetscCall(MatILUFactor(pc->pmat, ilu->row, ilu->col, &((PC_Factor *)ilu)->info)); in PCSetUp_ILU()
117 ((PC_Factor *)ilu)->fact = pc->pmat; in PCSetUp_ILU()
126 PetscCall(MatFactorGetCanUseOrdering(((PC_Factor *)ilu)->fact, &canuseordering)); in PCSetUp_ILU()
129 PetscCall(MatGetOrdering(pc->pmat, ((PC_Factor *)ilu)->ordering, &ilu->row, &ilu->col)); in PCSetUp_ILU()
131 …if (ilu->nonzerosalongdiagonal) PetscCall(MatReorderForNonzeroDiagonal(pc->pmat, ilu->nonzerosalon… in PCSetUp_ILU()
133 …PetscCall(MatILUFactorSymbolic(((PC_Factor *)ilu)->fact, pc->pmat, ilu->row, ilu->col, &((PC_Facto… in PCSetUp_ILU()
134 PetscCall(MatGetInfo(((PC_Factor *)ilu)->fact, MAT_LOCAL, &info)); in PCSetUp_ILU()
135 ilu->hdr.actualfill = info.fill_ratio_needed; in PCSetUp_ILU()
137 PetscCall(MatDestroy(&((PC_Factor *)ilu)->fact)); in PCSetUp_ILU()
139 if (!ilu->hdr.reuseordering) { in PCSetUp_ILU()
142 PetscCall(MatFactorGetCanUseOrdering(((PC_Factor *)ilu)->fact, &canuseordering)); in PCSetUp_ILU()
145 PetscCall(ISDestroy(&ilu->row)); in PCSetUp_ILU()
146 PetscCall(ISDestroy(&ilu->col)); in PCSetUp_ILU()
148 PetscCall(MatGetOrdering(pc->pmat, ((PC_Factor *)ilu)->ordering, &ilu->row, &ilu->col)); in PCSetUp_ILU()
150 …if (ilu->nonzerosalongdiagonal) PetscCall(MatReorderForNonzeroDiagonal(pc->pmat, ilu->nonzerosalon… in PCSetUp_ILU()
153 …PetscCall(MatILUFactorSymbolic(((PC_Factor *)ilu)->fact, pc->pmat, ilu->row, ilu->col, &((PC_Facto… in PCSetUp_ILU()
154 PetscCall(MatGetInfo(((PC_Factor *)ilu)->fact, MAT_LOCAL, &info)); in PCSetUp_ILU()
155 ilu->hdr.actualfill = info.fill_ratio_needed; in PCSetUp_ILU()
157 PetscCall(MatFactorGetError(((PC_Factor *)ilu)->fact, &err)); in PCSetUp_ILU()
163 PetscCall(MatLUFactorNumeric(((PC_Factor *)ilu)->fact, pc->pmat, &((PC_Factor *)ilu)->info)); in PCSetUp_ILU()
164 PetscCall(MatFactorGetError(((PC_Factor *)ilu)->fact, &err)); in PCSetUp_ILU()
173 PetscCall(MatFactorGetSolverType(((PC_Factor *)ilu)->fact, &solverpackage)); in PCSetUp_ILU()
181 PC_ILU *ilu = (PC_ILU *)pc->data; in PCDestroy_ILU() local
185 PetscCall(PetscFree(((PC_Factor *)ilu)->solvertype)); in PCDestroy_ILU()
186 PetscCall(PetscFree(((PC_Factor *)ilu)->ordering)); in PCDestroy_ILU()
194 PC_ILU *ilu = (PC_ILU *)pc->data; in PCApply_ILU() local
197 PetscCall(MatSolve(((PC_Factor *)ilu)->fact, x, y)); in PCApply_ILU()
203 PC_ILU *ilu = (PC_ILU *)pc->data; in PCMatApply_ILU() local
206 PetscCall(MatMatSolve(((PC_Factor *)ilu)->fact, X, Y)); in PCMatApply_ILU()
212 PC_ILU *ilu = (PC_ILU *)pc->data; in PCApplyTranspose_ILU() local
215 PetscCall(MatSolveTranspose(((PC_Factor *)ilu)->fact, x, y)); in PCApplyTranspose_ILU()
221 PC_ILU *ilu = (PC_ILU *)pc->data; in PCMatApplyTranspose_ILU() local
224 PetscCall(MatMatSolveTranspose(((PC_Factor *)ilu)->fact, X, Y)); in PCMatApplyTranspose_ILU()
285 PC_ILU *ilu; in PCCreate_ILU() local
288 PetscCall(PetscNew(&ilu)); in PCCreate_ILU()
289 pc->data = (void *)ilu; in PCCreate_ILU()
292 ((PC_Factor *)ilu)->info.levels = 0.; in PCCreate_ILU()
293 ((PC_Factor *)ilu)->info.fill = 1.0; in PCCreate_ILU()
294 ilu->col = NULL; in PCCreate_ILU()
295 ilu->row = NULL; in PCCreate_ILU()
296 ((PC_Factor *)ilu)->info.dt = PETSC_DEFAULT; in PCCreate_ILU()
297 ((PC_Factor *)ilu)->info.dtcount = PETSC_DEFAULT; in PCCreate_ILU()
298 ((PC_Factor *)ilu)->info.dtcol = PETSC_DEFAULT; in PCCreate_ILU()