Lines Matching refs:lu

95   Mat_UMFPACK    *lu=(Mat_UMFPACK*)A->data;  in MatDestroy_UMFPACK()  local
98 if (lu->CleanUpUMFPACK) { in MatDestroy_UMFPACK()
99 umfpack_UMF_free_symbolic(&lu->Symbolic); in MatDestroy_UMFPACK()
100 umfpack_UMF_free_numeric(&lu->Numeric); in MatDestroy_UMFPACK()
101 ierr = PetscFree(lu->Wi);CHKERRQ(ierr); in MatDestroy_UMFPACK()
102 ierr = PetscFree(lu->W);CHKERRQ(ierr); in MatDestroy_UMFPACK()
103 ierr = PetscFree(lu->perm_c);CHKERRQ(ierr); in MatDestroy_UMFPACK()
105 ierr = MatDestroy(&lu->A);CHKERRQ(ierr); in MatDestroy_UMFPACK()
112 Mat_UMFPACK *lu = (Mat_UMFPACK*)A->data; in MatSolve_UMFPACK_Private() local
113 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 ierr = PetscMalloc1(A->rmap->n,&lu->Wi);CHKERRQ(ierr); in MatSolve_UMFPACK_Private()
128 ierr = PetscMalloc1(5*A->rmap->n,&lu->W);CHKERRQ(ierr); in MatSolve_UMFPACK_Private()
134 …cReal*)av,NULL,(PetscReal*)xa,NULL,(PetscReal*)ba,NULL,lu->Numeric,lu->Control,lu->Info,lu->Wi,lu-… in MatSolve_UMFPACK_Private()
136 status = umfpack_UMF_wsolve(uflag,ai,aj,av,xa,ba,lu->Numeric,lu->Control,lu->Info,lu->Wi,lu->W); 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()
171 Mat_UMFPACK *lu = (Mat_UMFPACK*)(F)->data; in MatLUFactorNumeric_UMFPACK() local
182 if (lu->flg == SAME_NONZERO_PATTERN && lu->Numeric) { in MatLUFactorNumeric_UMFPACK()
183 umfpack_UMF_free_numeric(&lu->Numeric); in MatLUFactorNumeric_UMFPACK()
186 …status = umfpack_UMF_numeric(ai,aj,(double*)av,NULL,lu->Symbolic,&lu->Numeric,lu->Control,lu->Info… in MatLUFactorNumeric_UMFPACK()
188 status = umfpack_UMF_numeric(ai,aj,av,lu->Symbolic,&lu->Numeric,lu->Control,lu->Info); in MatLUFactorNumeric_UMFPACK()
191 umfpack_UMF_report_status(lu->Control, status); in MatLUFactorNumeric_UMFPACK()
195 (void) umfpack_UMF_report_numeric(lu->Numeric, lu->Control); in MatLUFactorNumeric_UMFPACK()
198 ierr = MatDestroy(&lu->A);CHKERRQ(ierr); in MatLUFactorNumeric_UMFPACK()
200 lu->A = A; in MatLUFactorNumeric_UMFPACK()
201 lu->flg = SAME_NONZERO_PATTERN; in MatLUFactorNumeric_UMFPACK()
202 lu->CleanUpUMFPACK = PETSC_TRUE; in MatLUFactorNumeric_UMFPACK()
214 Mat_UMFPACK *lu = (Mat_UMFPACK*)(F->data); in MatLUFactorSymbolic_UMFPACK() local
228 ierr = PetscMalloc1(m,&lu->perm_c);CHKERRQ(ierr); in MatLUFactorSymbolic_UMFPACK()
230 for (i = 0; i < m; i++) lu->perm_c[i] = ra[i]; in MatLUFactorSymbolic_UMFPACK()
235 if (lu->Control[UMFPACK_PRL] > 1) umfpack_UMF_report_control(lu->Control); in MatLUFactorSymbolic_UMFPACK()
241 status = umfpack_UMF_qsymbolic(n,m,ai,aj,av,lu->perm_c,&lu->Symbolic,lu->Control,lu->Info); in MatLUFactorSymbolic_UMFPACK()
243 … status = umfpack_UMF_qsymbolic(n,m,ai,aj,NULL,NULL,lu->perm_c,&lu->Symbolic,lu->Control,lu->Info); in MatLUFactorSymbolic_UMFPACK()
247 status = umfpack_UMF_symbolic(n,m,ai,aj,av,&lu->Symbolic,lu->Control,lu->Info); in MatLUFactorSymbolic_UMFPACK()
249 status = umfpack_UMF_symbolic(n,m,ai,aj,NULL,NULL,&lu->Symbolic,lu->Control,lu->Info); in MatLUFactorSymbolic_UMFPACK()
253 umfpack_UMF_report_info(lu->Control, lu->Info); in MatLUFactorSymbolic_UMFPACK()
254 umfpack_UMF_report_status(lu->Control, status); in MatLUFactorSymbolic_UMFPACK()
258 (void) umfpack_UMF_report_symbolic(lu->Symbolic, lu->Control); in MatLUFactorSymbolic_UMFPACK()
260 lu->flg = DIFFERENT_NONZERO_PATTERN; in MatLUFactorSymbolic_UMFPACK()
261 lu->CleanUpUMFPACK = PETSC_TRUE; in MatLUFactorSymbolic_UMFPACK()
267 Mat_UMFPACK *lu= (Mat_UMFPACK*)A->data; in MatView_Info_UMFPACK() local
276 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_PRL]: %g\n",lu->Control[UMFPACK_PRL]);CHKE… in MatView_Info_UMFPACK()
279 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_STRATEGY]: %g\n",lu->Control[UMFPACK_STRAT… in MatView_Info_UMFPACK()
280 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_DENSE_COL]: %g\n",lu->Control[UMFPACK_DENS… in MatView_Info_UMFPACK()
281 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_DENSE_ROW]: %g\n",lu->Control[UMFPACK_DENS… in MatView_Info_UMFPACK()
282 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_AMD_DENSE]: %g\n",lu->Control[UMFPACK_AMD_… in MatView_Info_UMFPACK()
283 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_BLOCK_SIZE]: %g\n",lu->Control[UMFPACK_BLO… in MatView_Info_UMFPACK()
284 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_FIXQ]: %g\n",lu->Control[UMFPACK_FIXQ]);CH… in MatView_Info_UMFPACK()
285 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_AGGRESSIVE]: %g\n",lu->Control[UMFPACK_AGG… in MatView_Info_UMFPACK()
288 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_PIVOT_TOLERANCE]: %g\n",lu->Control[UMFPAC… in MatView_Info_UMFPACK()
289 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_SYM_PIVOT_TOLERANCE]: %g\n",lu->Control[UM… in MatView_Info_UMFPACK()
290 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_SCALE]: %g\n",lu->Control[UMFPACK_SCALE]);… in MatView_Info_UMFPACK()
291 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_ALLOC_INIT]: %g\n",lu->Control[UMFPACK_ALL… in MatView_Info_UMFPACK()
292 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_DROPTOL]: %g\n",lu->Control[UMFPACK_DROPTO… in MatView_Info_UMFPACK()
295 …ierr = PetscViewerASCIIPrintf(viewer," Control[UMFPACK_IRSTEP]: %g\n",lu->Control[UMFPACK_IRSTEP]… in MatView_Info_UMFPACK()
298 if (!lu->perm_c) { in MatView_Info_UMFPACK()
299 …ORDERING]: AMD (not using the PETSc ordering)\n",UmfpackOrderingTypes[(int)lu->Control[UMFPACK_ORD… in MatView_Info_UMFPACK()
368 Mat_UMFPACK *lu; in MatGetFactor_seqaij_umfpack() local
383 ierr = PetscNewLog(B,&lu);CHKERRQ(ierr); in MatGetFactor_seqaij_umfpack()
385 B->data = lu; in MatGetFactor_seqaij_umfpack()
405 umfpack_UMF_defaults(lu->Control); in MatGetFactor_seqaij_umfpack()
406 lu->perm_c = NULL; /* use defaul UMFPACK col permutation */ in MatGetFactor_seqaij_umfpack()
407 lu->Control[UMFPACK_IRSTEP] = 0; /* max num of iterative refinement steps to attempt */ in MatGetFactor_seqaij_umfpack()
411 …cOptionsReal("-mat_umfpack_prl","Control[UMFPACK_PRL]","None",lu->Control[UMFPACK_PRL],&lu->Contro… in MatGetFactor_seqaij_umfpack()
417 case 0: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_AUTO; break; in MatGetFactor_seqaij_umfpack()
418 case 1: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_UNSYMMETRIC; break; in MatGetFactor_seqaij_umfpack()
419 case 2: lu->Control[UMFPACK_STRATEGY] = UMFPACK_STRATEGY_SYMMETRIC; break; in MatGetFactor_seqaij_umfpack()
422 …ckOrderingTypes)/sizeof(UmfpackOrderingTypes[0]),UmfpackOrderingTypes[(int)lu->Control[UMFPACK_ORD… in MatGetFactor_seqaij_umfpack()
423 if (flg) lu->Control[UMFPACK_ORDERING] = (int)idx; in MatGetFactor_seqaij_umfpack()
424 …mat_umfpack_dense_col","Control[UMFPACK_DENSE_COL]","None",lu->Control[UMFPACK_DENSE_COL],&lu->Con… in MatGetFactor_seqaij_umfpack()
425 …mat_umfpack_dense_row","Control[UMFPACK_DENSE_ROW]","None",lu->Control[UMFPACK_DENSE_ROW],&lu->Con… in MatGetFactor_seqaij_umfpack()
426 …mat_umfpack_amd_dense","Control[UMFPACK_AMD_DENSE]","None",lu->Control[UMFPACK_AMD_DENSE],&lu->Con… in MatGetFactor_seqaij_umfpack()
427 …t_umfpack_block_size","Control[UMFPACK_BLOCK_SIZE]","None",lu->Control[UMFPACK_BLOCK_SIZE],&lu->Co… in MatGetFactor_seqaij_umfpack()
428 …ptionsReal("-mat_umfpack_fixq","Control[UMFPACK_FIXQ]","None",lu->Control[UMFPACK_FIXQ],&lu->Contr… in MatGetFactor_seqaij_umfpack()
429 …t_umfpack_aggressive","Control[UMFPACK_AGGRESSIVE]","None",lu->Control[UMFPACK_AGGRESSIVE],&lu->Co… in MatGetFactor_seqaij_umfpack()
432 …ot_tolerance","Control[UMFPACK_PIVOT_TOLERANCE]","None",lu->Control[UMFPACK_PIVOT_TOLERANCE],&lu->… in MatGetFactor_seqaij_umfpack()
433 …erance","Control[UMFPACK_SYM_PIVOT_TOLERANCE]","None",lu->Control[UMFPACK_SYM_PIVOT_TOLERANCE],&lu in MatGetFactor_seqaij_umfpack()
437 case 0: lu->Control[UMFPACK_SCALE] = UMFPACK_SCALE_NONE; break; in MatGetFactor_seqaij_umfpack()
438 case 1: lu->Control[UMFPACK_SCALE] = UMFPACK_SCALE_SUM; break; in MatGetFactor_seqaij_umfpack()
439 case 2: lu->Control[UMFPACK_SCALE] = UMFPACK_SCALE_MAX; break; in MatGetFactor_seqaij_umfpack()
442 …t_umfpack_alloc_init","Control[UMFPACK_ALLOC_INIT]","None",lu->Control[UMFPACK_ALLOC_INIT],&lu->Co… in MatGetFactor_seqaij_umfpack()
443 …_alloc_init","Control[UMFPACK_FRONT_ALLOC_INIT]","None",lu->Control[UMFPACK_FRONT_ALLOC_INIT],&lu-… in MatGetFactor_seqaij_umfpack()
444 …al("-mat_umfpack_droptol","Control[UMFPACK_DROPTOL]","None",lu->Control[UMFPACK_DROPTOL],&lu->Cont… in MatGetFactor_seqaij_umfpack()
447 …sReal("-mat_umfpack_irstep","Control[UMFPACK_IRSTEP]","None",lu->Control[UMFPACK_IRSTEP],&lu->Cont… in MatGetFactor_seqaij_umfpack()