Lines Matching refs:lu

93   Mat_UMFPACK *lu = (Mat_UMFPACK *)A->data;  in MatDestroy_UMFPACK()  local
96 if (lu->CleanUpUMFPACK) { in MatDestroy_UMFPACK()
97 umfpack_UMF_free_symbolic(&lu->Symbolic); in MatDestroy_UMFPACK()
98 umfpack_UMF_free_numeric(&lu->Numeric); in MatDestroy_UMFPACK()
99 PetscCall(PetscFree(lu->Wi)); in MatDestroy_UMFPACK()
100 PetscCall(PetscFree(lu->W)); in MatDestroy_UMFPACK()
101 PetscCall(PetscFree(lu->perm_c)); in MatDestroy_UMFPACK()
103 PetscCall(MatDestroy(&lu->A)); in MatDestroy_UMFPACK()
111 Mat_UMFPACK *lu = (Mat_UMFPACK *)A->data; in MatSolve_UMFPACK_Private() local
112 Mat_SeqAIJ *a = (Mat_SeqAIJ *)lu->A->data; in MatSolve_UMFPACK_Private()
126 if (!lu->Wi) { /* first time, allocate working space for wsolve */ in MatSolve_UMFPACK_Private()
127 PetscCall(PetscMalloc1(A->rmap->n, &lu->Wi)); in MatSolve_UMFPACK_Private()
128 PetscCall(PetscMalloc1(5 * A->rmap->n, &lu->W)); in MatSolve_UMFPACK_Private()
134 … NULL, (PetscReal *)xa, NULL, (PetscReal *)ba, NULL, lu->Numeric, lu->Control, lu->Info, lu->Wi, l… in MatSolve_UMFPACK_Private()
136 …atus = umfpack_UMF_wsolve(uflag, ai, aj, av, xa, ba, lu->Numeric, lu->Control, lu->Info, lu->Wi, l… in MatSolve_UMFPACK_Private()
138 umfpack_UMF_report_info(lu->Control, lu->Info); in MatSolve_UMFPACK_Private()
140 umfpack_UMF_report_status(lu->Control, status); in MatSolve_UMFPACK_Private()
167 Mat_UMFPACK *lu = (Mat_UMFPACK *)F->data; in MatLUFactorNumeric_UMFPACK() local
177 if (lu->flg == SAME_NONZERO_PATTERN && lu->Numeric) umfpack_UMF_free_numeric(&lu->Numeric); in MatLUFactorNumeric_UMFPACK()
179 …atus = umfpack_UMF_numeric(ai, aj, (double *)av, NULL, lu->Symbolic, &lu->Numeric, lu->Control, lu in MatLUFactorNumeric_UMFPACK()
181 status = umfpack_UMF_numeric(ai, aj, av, lu->Symbolic, &lu->Numeric, lu->Control, lu->Info); in MatLUFactorNumeric_UMFPACK()
184 umfpack_UMF_report_status(lu->Control, status); in MatLUFactorNumeric_UMFPACK()
188 (void)umfpack_UMF_report_numeric(lu->Numeric, lu->Control); in MatLUFactorNumeric_UMFPACK()
191 PetscCall(MatDestroy(&lu->A)); in MatLUFactorNumeric_UMFPACK()
193 lu->A = A; in MatLUFactorNumeric_UMFPACK()
194 lu->flg = SAME_NONZERO_PATTERN; in MatLUFactorNumeric_UMFPACK()
195 lu->CleanUpUMFPACK = PETSC_TRUE; in MatLUFactorNumeric_UMFPACK()
204 Mat_UMFPACK *lu = (Mat_UMFPACK *)F->data; in MatLUFactorSymbolic_UMFPACK() local
222 …tionsReal("-mat_umfpack_prl", "Control[UMFPACK_PRL]", "None", lu->Control[UMFPACK_PRL], &lu->Contr… in MatLUFactorSymbolic_UMFPACK()
229 lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_AUTO; in MatLUFactorSymbolic_UMFPACK()
232 lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_UNSYMMETRIC; in MatLUFactorSymbolic_UMFPACK()
235 lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_SYMMETRIC; in MatLUFactorSymbolic_UMFPACK()
239 …PETSC_STATIC_ARRAY_LENGTH(UmfpackOrderingTypes), UmfpackOrderingTypes[(int)lu->Control[UMFPACK_ORD… in MatLUFactorSymbolic_UMFPACK()
240 if (flg) lu->Control[UMFPACK_ORDERING] = (int)idx; in MatLUFactorSymbolic_UMFPACK()
241 …_umfpack_dense_col", "Control[UMFPACK_DENSE_COL]", "None", lu->Control[UMFPACK_DENSE_COL], &lu->Co… in MatLUFactorSymbolic_UMFPACK()
242 …_umfpack_dense_row", "Control[UMFPACK_DENSE_ROW]", "None", lu->Control[UMFPACK_DENSE_ROW], &lu->Co… in MatLUFactorSymbolic_UMFPACK()
243 …_umfpack_amd_dense", "Control[UMFPACK_AMD_DENSE]", "None", lu->Control[UMFPACK_AMD_DENSE], &lu->Co… in MatLUFactorSymbolic_UMFPACK()
244 …fpack_block_size", "Control[UMFPACK_BLOCK_SIZE]", "None", lu->Control[UMFPACK_BLOCK_SIZE], &lu->Co… in MatLUFactorSymbolic_UMFPACK()
245 …nsReal("-mat_umfpack_fixq", "Control[UMFPACK_FIXQ]", "None", lu->Control[UMFPACK_FIXQ], &lu->Contr… in MatLUFactorSymbolic_UMFPACK()
246 …fpack_aggressive", "Control[UMFPACK_AGGRESSIVE]", "None", lu->Control[UMFPACK_AGGRESSIVE], &lu->Co… in MatLUFactorSymbolic_UMFPACK()
249 …tolerance", "Control[UMFPACK_PIVOT_TOLERANCE]", "None", lu->Control[UMFPACK_PIVOT_TOLERANCE], &lu-… in MatLUFactorSymbolic_UMFPACK()
250 …nce", "Control[UMFPACK_SYM_PIVOT_TOLERANCE]", "None", lu->Control[UMFPACK_SYM_PIVOT_TOLERANCE], &l… in MatLUFactorSymbolic_UMFPACK()
255 lu->Control[UMFPACK_SCALE] = UMFPACK_SCALE_NONE; in MatLUFactorSymbolic_UMFPACK()
258 lu->Control[UMFPACK_SCALE] = UMFPACK_SCALE_SUM; in MatLUFactorSymbolic_UMFPACK()
261 lu->Control[UMFPACK_SCALE] = UMFPACK_SCALE_MAX; in MatLUFactorSymbolic_UMFPACK()
265 …fpack_alloc_init", "Control[UMFPACK_ALLOC_INIT]", "None", lu->Control[UMFPACK_ALLOC_INIT], &lu->Co… in MatLUFactorSymbolic_UMFPACK()
266 …oc_init", "Control[UMFPACK_FRONT_ALLOC_INIT]", "None", lu->Control[UMFPACK_FRONT_ALLOC_INIT], &lu-… in MatLUFactorSymbolic_UMFPACK()
267 …"-mat_umfpack_droptol", "Control[UMFPACK_DROPTOL]", "None", lu->Control[UMFPACK_DROPTOL], &lu->Con… in MatLUFactorSymbolic_UMFPACK()
270 …l("-mat_umfpack_irstep", "Control[UMFPACK_IRSTEP]", "None", lu->Control[UMFPACK_IRSTEP], &lu->Cont… in MatLUFactorSymbolic_UMFPACK()
275 PetscCall(PetscMalloc1(m, &lu->perm_c)); in MatLUFactorSymbolic_UMFPACK()
277 for (i = 0; i < m; i++) lu->perm_c[i] = ra[i]; in MatLUFactorSymbolic_UMFPACK()
282 if (lu->Control[UMFPACK_PRL] > 1) umfpack_UMF_report_control(lu->Control); in MatLUFactorSymbolic_UMFPACK()
287 …status = umfpack_UMF_qsymbolic(n, m, ai, aj, av, lu->perm_c, &lu->Symbolic, lu->Control, lu->Info); in MatLUFactorSymbolic_UMFPACK()
289 …atus = umfpack_UMF_qsymbolic(n, m, ai, aj, NULL, NULL, lu->perm_c, &lu->Symbolic, lu->Control, lu-… in MatLUFactorSymbolic_UMFPACK()
293 status = umfpack_UMF_symbolic(n, m, ai, aj, av, &lu->Symbolic, lu->Control, lu->Info); in MatLUFactorSymbolic_UMFPACK()
295 status = umfpack_UMF_symbolic(n, m, ai, aj, NULL, NULL, &lu->Symbolic, lu->Control, lu->Info); in MatLUFactorSymbolic_UMFPACK()
299 umfpack_UMF_report_info(lu->Control, lu->Info); in MatLUFactorSymbolic_UMFPACK()
300 umfpack_UMF_report_status(lu->Control, status); in MatLUFactorSymbolic_UMFPACK()
304 (void)umfpack_UMF_report_symbolic(lu->Symbolic, lu->Control); in MatLUFactorSymbolic_UMFPACK()
306 lu->flg = DIFFERENT_NONZERO_PATTERN; in MatLUFactorSymbolic_UMFPACK()
307 lu->CleanUpUMFPACK = PETSC_TRUE; in MatLUFactorSymbolic_UMFPACK()
313 Mat_UMFPACK *lu = (Mat_UMFPACK *)A->data; in MatView_Info_UMFPACK() local
321 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_PRL]: %g\n", lu->Control[UMFPACK_PRL])… in MatView_Info_UMFPACK()
324 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_STRATEGY]: %g\n", lu->Control[UMFPACK_… in MatView_Info_UMFPACK()
325 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_DENSE_COL]: %g\n", lu->Control[UMFPACK… in MatView_Info_UMFPACK()
326 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_DENSE_ROW]: %g\n", lu->Control[UMFPACK… in MatView_Info_UMFPACK()
327 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_AMD_DENSE]: %g\n", lu->Control[UMFPACK… in MatView_Info_UMFPACK()
328 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_BLOCK_SIZE]: %g\n", lu->Control[UMFPAC… in MatView_Info_UMFPACK()
329 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_FIXQ]: %g\n", lu->Control[UMFPACK_FIXQ… in MatView_Info_UMFPACK()
330 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_AGGRESSIVE]: %g\n", lu->Control[UMFPAC… in MatView_Info_UMFPACK()
333 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_PIVOT_TOLERANCE]: %g\n", lu->Control[U… in MatView_Info_UMFPACK()
334 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_SYM_PIVOT_TOLERANCE]: %g\n", lu->Contr… in MatView_Info_UMFPACK()
335 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_SCALE]: %g\n", lu->Control[UMFPACK_SCA… in MatView_Info_UMFPACK()
336 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_ALLOC_INIT]: %g\n", lu->Control[UMFPAC… in MatView_Info_UMFPACK()
337 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_DROPTOL]: %g\n", lu->Control[UMFPACK_D… in MatView_Info_UMFPACK()
340 …PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_IRSTEP]: %g\n", lu->Control[UMFPACK_IR… in MatView_Info_UMFPACK()
343 …(!lu->perm_c) PetscCall(PetscViewerASCIIPrintf(viewer, " Control[UMFPACK_ORDERING]: %s (not using… in MatView_Info_UMFPACK()
408 Mat_UMFPACK *lu; in MatGetFactor_seqaij_umfpack() local
418 PetscCall(PetscNew(&lu)); in MatGetFactor_seqaij_umfpack()
420 B->data = lu; in MatGetFactor_seqaij_umfpack()
440 umfpack_UMF_defaults(lu->Control); in MatGetFactor_seqaij_umfpack()
441 lu->perm_c = NULL; /* use default UMFPACK col permutation */ in MatGetFactor_seqaij_umfpack()
442 lu->Control[UMFPACK_IRSTEP] = 0; /* max num of iterative refinement steps to attempt */ in MatGetFactor_seqaij_umfpack()