Lines Matching refs:jac

155   PC_HYPRE            *jac = (PC_HYPRE *)pc->data;  in PCGetCoarseOperators_BoomerAMG()  local
162 PetscCall(PetscStrcmp(jac->hypre_type, "boomeramg", &same)); in PCGetCoarseOperators_BoomerAMG()
164 num_levels = hypre_ParAMGDataNumLevels((hypre_ParAMGData *)jac->hsolver); in PCGetCoarseOperators_BoomerAMG()
166 A_array = hypre_ParAMGDataAArray((hypre_ParAMGData *)jac->hsolver); in PCGetCoarseOperators_BoomerAMG()
184 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCGetInterpolations_BoomerAMG() local
191 PetscCall(PetscStrcmp(jac->hypre_type, "boomeramg", &same)); in PCGetInterpolations_BoomerAMG()
193 num_levels = hypre_ParAMGDataNumLevels((hypre_ParAMGData *)jac->hsolver); in PCGetInterpolations_BoomerAMG()
195 P_array = hypre_ParAMGDataPArray((hypre_ParAMGData *)jac->hsolver); in PCGetInterpolations_BoomerAMG()
211 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPREGetCFMarkers_BoomerAMG() local
219 PetscCall(PetscStrcmp(jac->hypre_type, "boomeramg", &same)); in PCHYPREGetCFMarkers_BoomerAMG()
221 num_levels = hypre_ParAMGDataNumLevels((hypre_ParAMGData *)jac->hsolver); in PCHYPREGetCFMarkers_BoomerAMG()
224 CF_marker_array = hypre_ParAMGDataCFMarkerArray((hypre_ParAMGData *)jac->hsolver); in PCHYPREGetCFMarkers_BoomerAMG()
246 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPREResetNearNullSpace_Private() local
250 for (i = 0; i < jac->n_hmnull; i++) PetscCall(VecHYPRE_IJVectorDestroy(&jac->hmnull[i])); in PCHYPREResetNearNullSpace_Private()
251 PetscCall(PetscFree(jac->hmnull)); in PCHYPREResetNearNullSpace_Private()
252 PetscCall(PetscFree(jac->phmnull)); in PCHYPREResetNearNullSpace_Private()
253 PetscCall(VecDestroy(&jac->hmnull_constant)); in PCHYPREResetNearNullSpace_Private()
254 jac->n_hmnull = 0; in PCHYPREResetNearNullSpace_Private()
261 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCMGGalerkinSetMatProductAlgorithm_HYPRE_BoomerAMG() local
265 jac->spgemm_type = name; in PCMGGalerkinSetMatProductAlgorithm_HYPRE_BoomerAMG()
272 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetUp_HYPRE() local
280 if (!jac->hypre_type) PetscCall(PCHYPRESetType(pc, "boomeramg")); in PCSetUp_HYPRE()
283 if (pc->flag == DIFFERENT_NONZERO_PATTERN) PetscCall(MatDestroy(&jac->hpmat)); in PCSetUp_HYPRE()
293 if (iscuda || iship || iskokkos) PetscCall(MatDestroy(&jac->hpmat)); in PCSetUp_HYPRE()
295 …PetscCall(MatConvert(pc->pmat, MATHYPRE, jac->hpmat ? MAT_REUSE_MATRIX : MAT_INITIAL_MATRIX, &jac-… in PCSetUp_HYPRE()
298 PetscCall(MatDestroy(&jac->hpmat)); in PCSetUp_HYPRE()
299 jac->hpmat = pc->pmat; in PCSetUp_HYPRE()
303 PetscCall(MatViewFromOptions(jac->hpmat, NULL, "-pc_hypre_mat_view")); in PCSetUp_HYPRE()
304 hjac = (Mat_HYPRE *)jac->hpmat->data; in PCSetUp_HYPRE()
307 if (jac->setup == HYPRE_BoomerAMGSetup) { in PCSetUp_HYPRE()
314 PetscCall(MatGetCurrentMemType(jac->hpmat, &memtype)); in PCSetUp_HYPRE()
320 PetscObjectParameterSetDefault(jac, coarsentype, 8); in PCSetUp_HYPRE()
321 PetscObjectParameterSetDefault(jac, relaxorder, 0); in PCSetUp_HYPRE()
322 PetscObjectParameterSetDefault(jac, interptype, 6); in PCSetUp_HYPRE()
323 PetscObjectParameterSetDefault(jac, relaxtype[0], 18); in PCSetUp_HYPRE()
324 PetscObjectParameterSetDefault(jac, relaxtype[1], 18); in PCSetUp_HYPRE()
326 PetscObjectParameterSetDefault(jac, spgemm_type, HYPRESpgemmTypes[0]); in PCSetUp_HYPRE()
329 PetscObjectParameterSetDefault(jac, keeptranspose, PETSC_BOOL3_TRUE); in PCSetUp_HYPRE()
330 PetscObjectParameterSetDefault(jac, mod_rap2, 1); in PCSetUp_HYPRE()
332 PetscObjectParameterSetDefault(jac, agg_interptype, 7); in PCSetUp_HYPRE()
334 PetscObjectParameterSetDefault(jac, coarsentype, 6); in PCSetUp_HYPRE()
335 PetscObjectParameterSetDefault(jac, relaxorder, 1); in PCSetUp_HYPRE()
336 PetscObjectParameterSetDefault(jac, interptype, 0); in PCSetUp_HYPRE()
337 PetscObjectParameterSetDefault(jac, relaxtype[0], 6); in PCSetUp_HYPRE()
338 …PetscObjectParameterSetDefault(jac, relaxtype[1], 6); /* Defaults to SYMMETRIC since in PETSc we a… in PCSetUp_HYPRE()
340 PetscObjectParameterSetDefault(jac, spgemm_type, "hypre"); in PCSetUp_HYPRE()
343 PetscObjectParameterSetDefault(jac, keeptranspose, PETSC_BOOL3_FALSE); in PCSetUp_HYPRE()
344 PetscObjectParameterSetDefault(jac, mod_rap2, 0); in PCSetUp_HYPRE()
346 PetscObjectParameterSetDefault(jac, agg_interptype, 4); in PCSetUp_HYPRE()
348 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleType(jac->hsolver, (HYPRE_Int)jac->cycletype)); in PCSetUp_HYPRE()
349 PetscCallHYPRE(HYPRE_BoomerAMGSetMaxLevels(jac->hsolver, (HYPRE_Int)jac->maxlevels)); in PCSetUp_HYPRE()
350 PetscCallHYPRE(HYPRE_BoomerAMGSetMaxIter(jac->hsolver, (HYPRE_Int)jac->maxiter)); in PCSetUp_HYPRE()
351 PetscCallHYPRE(HYPRE_BoomerAMGSetTol(jac->hsolver, jac->tol)); in PCSetUp_HYPRE()
352 PetscCallHYPRE(HYPRE_BoomerAMGSetTruncFactor(jac->hsolver, jac->truncfactor)); in PCSetUp_HYPRE()
353 PetscCallHYPRE(HYPRE_BoomerAMGSetStrongThreshold(jac->hsolver, jac->strongthreshold)); in PCSetUp_HYPRE()
354 PetscCallHYPRE(HYPRE_BoomerAMGSetMaxRowSum(jac->hsolver, jac->maxrowsum)); in PCSetUp_HYPRE()
355 PetscCallHYPRE(HYPRE_BoomerAMGSetMeasureType(jac->hsolver, (HYPRE_Int)jac->measuretype)); in PCSetUp_HYPRE()
356 PetscCallHYPRE(HYPRE_BoomerAMGSetAggNumLevels(jac->hsolver, (HYPRE_Int)jac->agg_nl)); in PCSetUp_HYPRE()
357 PetscCallHYPRE(HYPRE_BoomerAMGSetPMaxElmts(jac->hsolver, (HYPRE_Int)jac->pmax)); in PCSetUp_HYPRE()
358 PetscCallHYPRE(HYPRE_BoomerAMGSetNumPaths(jac->hsolver, (HYPRE_Int)jac->agg_num_paths)); in PCSetUp_HYPRE()
359 … PetscCallHYPRE(HYPRE_BoomerAMGSetCycleNumSweeps(jac->hsolver, (HYPRE_Int)jac->gridsweeps[0], 1)); in PCSetUp_HYPRE()
360 … PetscCallHYPRE(HYPRE_BoomerAMGSetCycleNumSweeps(jac->hsolver, (HYPRE_Int)jac->gridsweeps[1], 2)); in PCSetUp_HYPRE()
361 … PetscCallHYPRE(HYPRE_BoomerAMGSetCycleNumSweeps(jac->hsolver, (HYPRE_Int)jac->gridsweeps[2], 3)); in PCSetUp_HYPRE()
362 PetscCallHYPRE(HYPRE_BoomerAMGSetMaxCoarseSize(jac->hsolver, (HYPRE_Int)jac->maxc)); in PCSetUp_HYPRE()
363 PetscCallHYPRE(HYPRE_BoomerAMGSetMinCoarseSize(jac->hsolver, (HYPRE_Int)jac->minc)); in PCSetUp_HYPRE()
364 PetscCallHYPRE(HYPRE_BoomerAMGSetCoarsenType(jac->hsolver, (HYPRE_Int)jac->coarsentype)); in PCSetUp_HYPRE()
365 PetscCallHYPRE(HYPRE_BoomerAMGSetRelaxOrder(jac->hsolver, (HYPRE_Int)jac->relaxorder)); in PCSetUp_HYPRE()
366 PetscCallHYPRE(HYPRE_BoomerAMGSetInterpType(jac->hsolver, (HYPRE_Int)jac->interptype)); in PCSetUp_HYPRE()
367 PetscCallHYPRE(HYPRE_BoomerAMGSetRelaxType(jac->hsolver, (HYPRE_Int)jac->relaxtype[0])); in PCSetUp_HYPRE()
368 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleRelaxType(jac->hsolver, (HYPRE_Int)jac->relaxtype[0], 1)); in PCSetUp_HYPRE()
369 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleRelaxType(jac->hsolver, (HYPRE_Int)jac->relaxtype[1], 2)); in PCSetUp_HYPRE()
370 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleRelaxType(jac->hsolver, (HYPRE_Int)jac->relaxtype[2], 3)); in PCSetUp_HYPRE()
376 PetscCall(PetscStrcmp("cusparse", jac->spgemm_type, &flg_cusparse)); in PCSetUp_HYPRE()
377 PetscCall(PetscStrcmp("hypre", jac->spgemm_type, &flg_hypre)); in PCSetUp_HYPRE()
380 …R_ARG_UNKNOWN_TYPE, "Unknown HYPRE SpGEMM type %s; Choices are cusparse, hypre", jac->spgemm_type); in PCSetUp_HYPRE()
384 …PetscCallHYPRE(HYPRE_BoomerAMGSetKeepTranspose(jac->hsolver, jac->keeptranspose == PETSC_BOOL3_TRU… in PCSetUp_HYPRE()
385 PetscCallHYPRE(HYPRE_BoomerAMGSetRAP2(jac->hsolver, (HYPRE_Int)jac->rap2)); in PCSetUp_HYPRE()
386 PetscCallHYPRE(HYPRE_BoomerAMGSetModuleRAP2(jac->hsolver, (HYPRE_Int)jac->mod_rap2)); in PCSetUp_HYPRE()
388 PetscCallHYPRE(HYPRE_BoomerAMGSetAggInterpType(jac->hsolver, (HYPRE_Int)jac->agg_interptype)); in PCSetUp_HYPRE()
392 PetscCallHYPRE(HYPRE_BoomerAMGSetRestriction(jac->hsolver, (HYPRE_Int)jac->Rtype)); in PCSetUp_HYPRE()
393 PetscCallHYPRE(HYPRE_BoomerAMGSetStrongThresholdR(jac->hsolver, jac->Rstrongthreshold)); in PCSetUp_HYPRE()
394 PetscCallHYPRE(HYPRE_BoomerAMGSetFilterThresholdR(jac->hsolver, jac->Rfilterthreshold)); in PCSetUp_HYPRE()
395 PetscCallHYPRE(HYPRE_BoomerAMGSetADropTol(jac->hsolver, jac->Adroptol)); in PCSetUp_HYPRE()
396 PetscCallHYPRE(HYPRE_BoomerAMGSetADropType(jac->hsolver, (HYPRE_Int)jac->Adroptype)); in PCSetUp_HYPRE()
400 if (bs > 1) PetscCallHYPRE(HYPRE_BoomerAMGSetNumFunctions(jac->hsolver, (HYPRE_Int)bs)); in PCSetUp_HYPRE()
405 PetscCall(PetscMalloc1(nvec + 1, &jac->hmnull)); in PCSetUp_HYPRE()
406 PetscCall(PetscMalloc1(nvec + 1, &jac->phmnull)); in PCSetUp_HYPRE()
408 PetscCall(VecHYPRE_IJVectorCreate(vecs[i]->map, &jac->hmnull[i])); in PCSetUp_HYPRE()
409 PetscCall(VecHYPRE_IJVectorCopy(vecs[i], jac->hmnull[i])); in PCSetUp_HYPRE()
410 PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->hmnull[i]->ij, (void **)&jac->phmnull[i])); in PCSetUp_HYPRE()
413 PetscCall(MatCreateVecs(pc->pmat, &jac->hmnull_constant, NULL)); in PCSetUp_HYPRE()
414 PetscCall(VecSet(jac->hmnull_constant, 1)); in PCSetUp_HYPRE()
415 PetscCall(VecNormalize(jac->hmnull_constant, NULL)); in PCSetUp_HYPRE()
416 PetscCall(VecHYPRE_IJVectorCreate(jac->hmnull_constant->map, &jac->hmnull[nvec])); in PCSetUp_HYPRE()
417 PetscCall(VecHYPRE_IJVectorCopy(jac->hmnull_constant, jac->hmnull[nvec])); in PCSetUp_HYPRE()
418 … PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->hmnull[nvec]->ij, (void **)&jac->phmnull[nvec])); in PCSetUp_HYPRE()
421 PetscCallHYPRE(HYPRE_BoomerAMGSetInterpVectors(jac->hsolver, (HYPRE_Int)nvec, jac->phmnull)); in PCSetUp_HYPRE()
422 jac->n_hmnull = nvec; in PCSetUp_HYPRE()
427 if (jac->setup == HYPRE_AMSSetup) { in PCSetUp_HYPRE()
430 …PetscCheck(jac->coords[0] || jac->constants[0] || jac->ND_PiFull || (jac->ND_Pi[0] && jac->ND_Pi[1… in PCSetUp_HYPRE()
431 if (jac->dim) PetscCallHYPRE(HYPRE_AMSSetDimension(jac->hsolver, (HYPRE_Int)jac->dim)); in PCSetUp_HYPRE()
432 if (jac->constants[0]) { in PCSetUp_HYPRE()
434 PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->constants[0]->ij, (void **)(&ozz))); in PCSetUp_HYPRE()
435 PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->constants[1]->ij, (void **)(&zoz))); in PCSetUp_HYPRE()
436 …if (jac->constants[2]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->constants[2]->ij, (void **)(&zz… in PCSetUp_HYPRE()
437 PetscCallHYPRE(HYPRE_AMSSetEdgeConstantVectors(jac->hsolver, ozz, zoz, zzo)); in PCSetUp_HYPRE()
439 if (jac->coords[0]) { in PCSetUp_HYPRE()
444 …if (jac->coords[0]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->coords[0]->ij, (void **)(&coords[0… in PCSetUp_HYPRE()
445 …if (jac->coords[1]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->coords[1]->ij, (void **)(&coords[1… in PCSetUp_HYPRE()
446 …if (jac->coords[2]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->coords[2]->ij, (void **)(&coords[2… in PCSetUp_HYPRE()
447 PetscCallHYPRE(HYPRE_AMSSetCoordinateVectors(jac->hsolver, coords[0], coords[1], coords[2])); in PCSetUp_HYPRE()
449 …PetscCheck(jac->G, PetscObjectComm((PetscObject)pc), PETSC_ERR_USER, "HYPRE AMS preconditioner nee… in PCSetUp_HYPRE()
450 hm = (Mat_HYPRE *)jac->G->data; in PCSetUp_HYPRE()
452 PetscCallHYPRE(HYPRE_AMSSetDiscreteGradient(jac->hsolver, parcsr)); in PCSetUp_HYPRE()
453 if (jac->alpha_Poisson) { in PCSetUp_HYPRE()
454 hm = (Mat_HYPRE *)jac->alpha_Poisson->data; in PCSetUp_HYPRE()
456 PetscCallHYPRE(HYPRE_AMSSetAlphaPoissonMatrix(jac->hsolver, parcsr)); in PCSetUp_HYPRE()
458 if (jac->ams_beta_is_zero) { in PCSetUp_HYPRE()
459 PetscCallHYPRE(HYPRE_AMSSetBetaPoissonMatrix(jac->hsolver, NULL)); in PCSetUp_HYPRE()
460 } else if (jac->beta_Poisson) { in PCSetUp_HYPRE()
461 hm = (Mat_HYPRE *)jac->beta_Poisson->data; in PCSetUp_HYPRE()
463 PetscCallHYPRE(HYPRE_AMSSetBetaPoissonMatrix(jac->hsolver, parcsr)); in PCSetUp_HYPRE()
464 } else if (jac->ams_beta_is_zero_part) { in PCSetUp_HYPRE()
465 if (jac->interior) { in PCSetUp_HYPRE()
467 PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->interior->ij, (void **)(&interior))); in PCSetUp_HYPRE()
468 PetscCallHYPRE(HYPRE_AMSSetInteriorNodes(jac->hsolver, interior)); in PCSetUp_HYPRE()
470 jac->ams_beta_is_zero_part = PETSC_FALSE; in PCSetUp_HYPRE()
473 if (jac->ND_PiFull || (jac->ND_Pi[0] && jac->ND_Pi[1])) { in PCSetUp_HYPRE()
476 if (jac->ND_PiFull) { in PCSetUp_HYPRE()
477 hm = (Mat_HYPRE *)jac->ND_PiFull->data; in PCSetUp_HYPRE()
483 if (jac->ND_Pi[i]) { in PCSetUp_HYPRE()
484 hm = (Mat_HYPRE *)jac->ND_Pi[i]->data; in PCSetUp_HYPRE()
490 …PetscCallHYPRE(HYPRE_AMSSetInterpolations(jac->hsolver, nd_parcsrfull, nd_parcsr[0], nd_parcsr[1],… in PCSetUp_HYPRE()
494 if (jac->setup == HYPRE_ADSSetup) { in PCSetUp_HYPRE()
497 …if (!jac->coords[0] && !((jac->RT_PiFull || (jac->RT_Pi[0] && jac->RT_Pi[1])) && (jac->ND_PiFull |… in PCSetUp_HYPRE()
499 …} else PetscCheck(jac->coords[1] && jac->coords[2], PetscObjectComm((PetscObject)pc), PETSC_ERR_US… in PCSetUp_HYPRE()
500 …PetscCheck(jac->G, PetscObjectComm((PetscObject)pc), PETSC_ERR_USER, "HYPRE ADS preconditioner nee… in PCSetUp_HYPRE()
501 …PetscCheck(jac->C, PetscObjectComm((PetscObject)pc), PETSC_ERR_USER, "HYPRE ADS preconditioner nee… in PCSetUp_HYPRE()
502 if (jac->coords[0]) { in PCSetUp_HYPRE()
507 …if (jac->coords[0]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->coords[0]->ij, (void **)(&coords[0… in PCSetUp_HYPRE()
508 …if (jac->coords[1]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->coords[1]->ij, (void **)(&coords[1… in PCSetUp_HYPRE()
509 …if (jac->coords[2]) PetscCallHYPRE(HYPRE_IJVectorGetObject(jac->coords[2]->ij, (void **)(&coords[2… in PCSetUp_HYPRE()
510 PetscCallHYPRE(HYPRE_ADSSetCoordinateVectors(jac->hsolver, coords[0], coords[1], coords[2])); in PCSetUp_HYPRE()
512 hm = (Mat_HYPRE *)jac->G->data; in PCSetUp_HYPRE()
514 PetscCallHYPRE(HYPRE_ADSSetDiscreteGradient(jac->hsolver, parcsr)); in PCSetUp_HYPRE()
515 hm = (Mat_HYPRE *)jac->C->data; in PCSetUp_HYPRE()
517 PetscCallHYPRE(HYPRE_ADSSetDiscreteCurl(jac->hsolver, parcsr)); in PCSetUp_HYPRE()
518 …if ((jac->RT_PiFull || (jac->RT_Pi[0] && jac->RT_Pi[1])) && (jac->ND_PiFull || (jac->ND_Pi[0] && j… in PCSetUp_HYPRE()
522 if (jac->RT_PiFull) { in PCSetUp_HYPRE()
523 hm = (Mat_HYPRE *)jac->RT_PiFull->data; in PCSetUp_HYPRE()
529 if (jac->RT_Pi[i]) { in PCSetUp_HYPRE()
530 hm = (Mat_HYPRE *)jac->RT_Pi[i]->data; in PCSetUp_HYPRE()
536 if (jac->ND_PiFull) { in PCSetUp_HYPRE()
537 hm = (Mat_HYPRE *)jac->ND_PiFull->data; in PCSetUp_HYPRE()
543 if (jac->ND_Pi[i]) { in PCSetUp_HYPRE()
544 hm = (Mat_HYPRE *)jac->ND_Pi[i]->data; in PCSetUp_HYPRE()
550 …PetscCallHYPRE(HYPRE_ADSSetInterpolations(jac->hsolver, rt_parcsrfull, rt_parcsr[0], rt_parcsr[1],… in PCSetUp_HYPRE()
557 PetscCallHYPRE((*jac->setup)(jac->hsolver, hmat, bv, xv)); in PCSetUp_HYPRE()
564 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCApply_HYPRE() local
565 Mat_HYPRE *hjac = (Mat_HYPRE *)jac->hpmat->data; in PCApply_HYPRE()
571 if (!jac->applyrichardson) PetscCall(VecSet(x, 0.0)); in PCApply_HYPRE()
573 if (jac->applyrichardson) PetscCall(VecHYPRE_IJVectorPushVec(hjac->x, x)); in PCApply_HYPRE()
580 HYPRE_Int hierr = (*jac->solve)(jac->hsolver, hmat, jbv, jxv); in PCApply_HYPRE()
587 …if (jac->setup == HYPRE_AMSSetup && jac->ams_beta_is_zero_part) PetscCallHYPRE(HYPRE_AMSProjectOut… in PCApply_HYPRE()
595 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCMatApply_HYPRE_BoomerAMG() local
596 Mat_HYPRE *hjac = (Mat_HYPRE *)jac->hpmat->data; in PCMatApply_HYPRE_BoomerAMG()
629 HYPRE_Int hierr = (*jac->solve)(jac->hsolver, par_matrix, hb, hx); in PCMatApply_HYPRE_BoomerAMG()
644 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCReset_HYPRE() local
647 PetscCall(MatDestroy(&jac->hpmat)); in PCReset_HYPRE()
648 PetscCall(MatDestroy(&jac->G)); in PCReset_HYPRE()
649 PetscCall(MatDestroy(&jac->C)); in PCReset_HYPRE()
650 PetscCall(MatDestroy(&jac->alpha_Poisson)); in PCReset_HYPRE()
651 PetscCall(MatDestroy(&jac->beta_Poisson)); in PCReset_HYPRE()
652 PetscCall(MatDestroy(&jac->RT_PiFull)); in PCReset_HYPRE()
653 PetscCall(MatDestroy(&jac->RT_Pi[0])); in PCReset_HYPRE()
654 PetscCall(MatDestroy(&jac->RT_Pi[1])); in PCReset_HYPRE()
655 PetscCall(MatDestroy(&jac->RT_Pi[2])); in PCReset_HYPRE()
656 PetscCall(MatDestroy(&jac->ND_PiFull)); in PCReset_HYPRE()
657 PetscCall(MatDestroy(&jac->ND_Pi[0])); in PCReset_HYPRE()
658 PetscCall(MatDestroy(&jac->ND_Pi[1])); in PCReset_HYPRE()
659 PetscCall(MatDestroy(&jac->ND_Pi[2])); in PCReset_HYPRE()
660 PetscCall(VecHYPRE_IJVectorDestroy(&jac->coords[0])); in PCReset_HYPRE()
661 PetscCall(VecHYPRE_IJVectorDestroy(&jac->coords[1])); in PCReset_HYPRE()
662 PetscCall(VecHYPRE_IJVectorDestroy(&jac->coords[2])); in PCReset_HYPRE()
663 PetscCall(VecHYPRE_IJVectorDestroy(&jac->constants[0])); in PCReset_HYPRE()
664 PetscCall(VecHYPRE_IJVectorDestroy(&jac->constants[1])); in PCReset_HYPRE()
665 PetscCall(VecHYPRE_IJVectorDestroy(&jac->constants[2])); in PCReset_HYPRE()
666 PetscCall(VecHYPRE_IJVectorDestroy(&jac->interior)); in PCReset_HYPRE()
668 jac->ams_beta_is_zero = PETSC_FALSE; in PCReset_HYPRE()
669 jac->ams_beta_is_zero_part = PETSC_FALSE; in PCReset_HYPRE()
670 jac->dim = 0; in PCReset_HYPRE()
676 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCDestroy_HYPRE() local
680 if (jac->destroy) PetscCallHYPRE((*jac->destroy)(jac->hsolver)); in PCDestroy_HYPRE()
681 PetscCall(PetscFree(jac->hypre_type)); in PCDestroy_HYPRE()
682 …if (jac->comm_hypre != MPI_COMM_NULL) PetscCall(PetscCommRestoreComm(PetscObjectComm((PetscObject)… in PCDestroy_HYPRE()
706 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_Pilut() local
711 …ionsInt("-pc_hypre_pilut_maxiter", "Number of iterations", "None", jac->maxiter, &jac->maxiter, &f… in PCSetFromOptions_HYPRE_Pilut()
712 if (flag) PetscCallHYPRE(HYPRE_ParCSRPilutSetMaxIter(jac->hsolver, (HYPRE_Int)jac->maxiter)); in PCSetFromOptions_HYPRE_Pilut()
713 …PetscCall(PetscOptionsReal("-pc_hypre_pilut_tol", "Drop tolerance", "None", jac->tol, &jac->tol, &… in PCSetFromOptions_HYPRE_Pilut()
714 if (flag) PetscCallHYPRE(HYPRE_ParCSRPilutSetDropTolerance(jac->hsolver, jac->tol)); in PCSetFromOptions_HYPRE_Pilut()
715 …nsInt("-pc_hypre_pilut_factorrowsize", "FactorRowSize", "None", jac->factorrowsize, &jac->factorro… in PCSetFromOptions_HYPRE_Pilut()
716 …if (flag) PetscCallHYPRE(HYPRE_ParCSRPilutSetFactorRowSize(jac->hsolver, (HYPRE_Int)jac->factorrow… in PCSetFromOptions_HYPRE_Pilut()
723 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_Pilut() local
730 if (jac->maxiter != PETSC_DEFAULT) { in PCView_HYPRE_Pilut()
731 …scViewerASCIIPrintf(viewer, " maximum number of iterations %" PetscInt_FMT "\n", jac->maxiter)); in PCView_HYPRE_Pilut()
735 if (jac->tol != PETSC_DEFAULT) { in PCView_HYPRE_Pilut()
736 PetscCall(PetscViewerASCIIPrintf(viewer, " drop tolerance %g\n", (double)jac->tol)); in PCView_HYPRE_Pilut()
740 if (jac->factorrowsize != PETSC_DEFAULT) { in PCView_HYPRE_Pilut()
741 …PetscCall(PetscViewerASCIIPrintf(viewer, " factor row size %" PetscInt_FMT "\n", jac->factorrow… in PCView_HYPRE_Pilut()
762 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_ILU() local
773 if (flg) PetscCallHYPRE(HYPRE_ILUSetType(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
777 if (flg) PetscCallHYPRE(HYPRE_ILUSetIterativeSetupType(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
781 if (flg) PetscCallHYPRE(HYPRE_ILUSetIterativeSetupOption(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
785 if (flg) PetscCallHYPRE(HYPRE_ILUSetIterativeSetupMaxIter(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
789 if (flg) PetscCallHYPRE(HYPRE_ILUSetIterativeSetupTolerance(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_ILU()
793 if (flg) PetscCallHYPRE(HYPRE_ILUSetPrintLevel(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
797 if (flg) PetscCallHYPRE(HYPRE_ILUSetLogging(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
801 if (flg) PetscCallHYPRE(HYPRE_ILUSetLevelOfFill(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
805 if (flg) PetscCallHYPRE(HYPRE_ILUSetMaxNnzPerRow(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
809 if (flg) PetscCallHYPRE(HYPRE_ILUSetTol(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_ILU()
813 if (flg) PetscCallHYPRE(HYPRE_ILUSetMaxIter(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
817 if (flg) PetscCallHYPRE(HYPRE_ILUSetDropThreshold(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_ILU()
821 if (flg) PetscCallHYPRE(HYPRE_ILUSetTriSolve(jac->hsolver, tmp_truth)); in PCSetFromOptions_HYPRE_ILU()
825 if (flg) PetscCallHYPRE(HYPRE_ILUSetLowerJacobiIters(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
829 if (flg) PetscCallHYPRE(HYPRE_ILUSetUpperJacobiIters(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_ILU()
833 if (flg) PetscCallHYPRE(HYPRE_ILUSetLocalReordering(jac->hsolver, tmp_truth)); in PCSetFromOptions_HYPRE_ILU()
841 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_ILU() local
842 hypre_ParILUData *ilu_data = (hypre_ParILUData *)jac->hsolver; in PCView_HYPRE_ILU()
890 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_Euclid() local
891 PetscBool flag, eu_bj = jac->eu_bj ? PETSC_TRUE : PETSC_FALSE; in PCSetFromOptions_HYPRE_Euclid()
895 …tionsInt("-pc_hypre_euclid_level", "Factorization levels", "None", jac->eu_level, &jac->eu_level, … in PCSetFromOptions_HYPRE_Euclid()
896 if (flag) PetscCallHYPRE(HYPRE_EuclidSetLevel(jac->hsolver, (HYPRE_Int)jac->eu_level)); in PCSetFromOptions_HYPRE_Euclid()
898 …droptolerance", "Drop tolerance for ILU(k) in Euclid", "None", jac->eu_droptolerance, &jac->eu_dro… in PCSetFromOptions_HYPRE_Euclid()
904 PetscCallHYPRE(HYPRE_EuclidSetILUT(jac->hsolver, jac->eu_droptolerance)); in PCSetFromOptions_HYPRE_Euclid()
909 jac->eu_bj = eu_bj ? 1 : 0; in PCSetFromOptions_HYPRE_Euclid()
910 PetscCallHYPRE(HYPRE_EuclidSetBJ(jac->hsolver, (HYPRE_Int)jac->eu_bj)); in PCSetFromOptions_HYPRE_Euclid()
918 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_Euclid() local
925 if (jac->eu_level != PETSC_DEFAULT) { in PCView_HYPRE_Euclid()
926 …PetscCall(PetscViewerASCIIPrintf(viewer, " factorization levels %" PetscInt_FMT "\n", jac->eu_l… in PCView_HYPRE_Euclid()
930 …PetscCall(PetscViewerASCIIPrintf(viewer, " drop tolerance %g\n", (double)jac->eu_droptolerance)… in PCView_HYPRE_Euclid()
931 …PetscCall(PetscViewerASCIIPrintf(viewer, " use Block-Jacobi? %" PetscInt_FMT "\n", jac->eu_bj)); in PCView_HYPRE_Euclid()
938 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCApplyTranspose_HYPRE_BoomerAMG() local
939 Mat_HYPRE *hjac = (Mat_HYPRE *)jac->hpmat->data; in PCApplyTranspose_HYPRE_BoomerAMG()
955 HYPRE_Int hierr = HYPRE_BoomerAMGSolveT(jac->hsolver, hmat, jbv, jxv); in PCApplyTranspose_HYPRE_BoomerAMG()
970 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCMGGalerkinGetMatProductAlgorithm_HYPRE_BoomerAMG() local
975 *spgemm = jac->spgemm_type; in PCMGGalerkinGetMatProductAlgorithm_HYPRE_BoomerAMG()
990 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_BoomerAMG() local
998 …cle type", "None", HYPREBoomerAMGCycleType + 1, 2, HYPREBoomerAMGCycleType[jac->cycletype], &indx,… in PCSetFromOptions_HYPRE_BoomerAMG()
1000 jac->cycletype = indx + 1; in PCSetFromOptions_HYPRE_BoomerAMG()
1001 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleType(jac->hsolver, (HYPRE_Int)jac->cycletype)); in PCSetFromOptions_HYPRE_BoomerAMG()
1003 …eramg_max_levels", "Number of levels (of grids) allowed", "None", jac->maxlevels, &jac->maxlevels,… in PCSetFromOptions_HYPRE_BoomerAMG()
1004 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetMaxLevels(jac->hsolver, (HYPRE_Int)jac->maxlevels)); in PCSetFromOptions_HYPRE_BoomerAMG()
1005 …eramg_max_iter", "Maximum iterations used PER hypre call", "None", jac->maxiter, &jac->maxiter, &f… in PCSetFromOptions_HYPRE_BoomerAMG()
1006 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetMaxIter(jac->hsolver, (HYPRE_Int)jac->maxiter)); in PCSetFromOptions_HYPRE_BoomerAMG()
1007 …ce PER hypre call (0.0 = use a fixed number of iterations)", "None", jac->tol, &jac->tol, &flg, 0.… in PCSetFromOptions_HYPRE_BoomerAMG()
1008 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetTol(jac->hsolver, jac->tol)); in PCSetFromOptions_HYPRE_BoomerAMG()
1012 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetNumFunctions(jac->hsolver, (HYPRE_Int)bs)); in PCSetFromOptions_HYPRE_BoomerAMG()
1014 …"Truncation factor for interpolation (0=no truncation)", "None", jac->truncfactor, &jac->truncfact… in PCSetFromOptions_HYPRE_BoomerAMG()
1015 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetTruncFactor(jac->hsolver, jac->truncfactor)); in PCSetFromOptions_HYPRE_BoomerAMG()
1017 … elements per row for interpolation operator (0=unlimited)", "None", jac->pmax, &jac->pmax, &flg, … in PCSetFromOptions_HYPRE_BoomerAMG()
1018 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetPMaxElmts(jac->hsolver, (HYPRE_Int)jac->pmax)); in PCSetFromOptions_HYPRE_BoomerAMG()
1020 …l", "Number of levels of aggressive coarsening", "None", jac->agg_nl, &jac->agg_nl, &flg, 0, jac->… in PCSetFromOptions_HYPRE_BoomerAMG()
1021 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetAggNumLevels(jac->hsolver, (HYPRE_Int)jac->agg_nl)); in PCSetFromOptions_HYPRE_BoomerAMG()
1023 …um_paths", "Number of paths for aggressive coarsening", "None", jac->agg_num_paths, &jac->agg_num_… in PCSetFromOptions_HYPRE_BoomerAMG()
1024 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetNumPaths(jac->hsolver, (HYPRE_Int)jac->agg_num_paths)); in PCSetFromOptions_HYPRE_BoomerAMG()
1026 …_threshold", "Threshold for being strongly connected", "None", jac->strongthreshold, &jac->strongt… in PCSetFromOptions_HYPRE_BoomerAMG()
1027 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetStrongThreshold(jac->hsolver, jac->strongthreshold)); in PCSetFromOptions_HYPRE_BoomerAMG()
1028 …eal("-pc_hypre_boomeramg_max_row_sum", "Maximum row sum", "None", jac->maxrowsum, &jac->maxrowsum,… in PCSetFromOptions_HYPRE_BoomerAMG()
1029 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetMaxRowSum(jac->hsolver, jac->maxrowsum)); in PCSetFromOptions_HYPRE_BoomerAMG()
1032 …d_sweeps_all", "Number of sweeps for the up and down grid levels", "None", jac->gridsweeps[0], &in… in PCSetFromOptions_HYPRE_BoomerAMG()
1035 jac->gridsweeps[0] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1036 jac->gridsweeps[1] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1038 jac->gridsweeps[2] = 1; in PCSetFromOptions_HYPRE_BoomerAMG()
1040 …"Use a nodal based coarsening 1-6", "HYPRE_BoomerAMGSetNodal", jac->nodal_coarsening, &jac->nodal_… in PCSetFromOptions_HYPRE_BoomerAMG()
1041 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetNodal(jac->hsolver, (HYPRE_Int)jac->nodal_coarsening)); in PCSetFromOptions_HYPRE_BoomerAMG()
1042 …nodal based coarsening 0-2", "HYPRE_BoomerAMGSetNodalDiag", jac->nodal_coarsening_diag, &jac->noda… in PCSetFromOptions_HYPRE_BoomerAMG()
1043 …if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetNodalDiag(jac->hsolver, (HYPRE_Int)jac->nodal_coarsening… in PCSetFromOptions_HYPRE_BoomerAMG()
1044 …iant of algorithm 1-3", "HYPRE_BoomerAMGSetInterpVecVariant", jac->vec_interp_variant, &jac->vec_i… in PCSetFromOptions_HYPRE_BoomerAMG()
1045 …if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetInterpVecVariant(jac->hsolver, (HYPRE_Int)jac->vec_inter… in PCSetFromOptions_HYPRE_BoomerAMG()
1046 …ements per row for each Q", "HYPRE_BoomerAMGSetInterpVecQMax", jac->vec_interp_qmax, &jac->vec_int… in PCSetFromOptions_HYPRE_BoomerAMG()
1047 …if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetInterpVecQMax(jac->hsolver, (HYPRE_Int)jac->vec_interp_q… in PCSetFromOptions_HYPRE_BoomerAMG()
1048 …erpolation vectors", "HYPRE_BoomerAMGSetSmoothInterpVectors", jac->vec_interp_smooth, &jac->vec_in… in PCSetFromOptions_HYPRE_BoomerAMG()
1049 …if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothInterpVectors(jac->hsolver, jac->vec_interp_smooth… in PCSetFromOptions_HYPRE_BoomerAMG()
1050 …iterative weight refinement", "HYPRE_BoomerAMGSetInterpRefine", jac->interp_refine, &jac->interp_r… in PCSetFromOptions_HYPRE_BoomerAMG()
1051 …if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetInterpRefine(jac->hsolver, (HYPRE_Int)jac->interp_refine… in PCSetFromOptions_HYPRE_BoomerAMG()
1052 …omeramg_grid_sweeps_down", "Number of sweeps for the down cycles", "None", jac->gridsweeps[0], &in… in PCSetFromOptions_HYPRE_BoomerAMG()
1054 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleNumSweeps(jac->hsolver, (HYPRE_Int)indx, 1)); in PCSetFromOptions_HYPRE_BoomerAMG()
1055 jac->gridsweeps[0] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1057 …e_boomeramg_grid_sweeps_up", "Number of sweeps for the up cycles", "None", jac->gridsweeps[1], &in… in PCSetFromOptions_HYPRE_BoomerAMG()
1059 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleNumSweeps(jac->hsolver, (HYPRE_Int)indx, 2)); in PCSetFromOptions_HYPRE_BoomerAMG()
1060 jac->gridsweeps[1] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1062 …ramg_grid_sweeps_coarse", "Number of sweeps for the coarse level", "None", jac->gridsweeps[2], &in… in PCSetFromOptions_HYPRE_BoomerAMG()
1064 PetscCallHYPRE(HYPRE_BoomerAMGSetCycleNumSweeps(jac->hsolver, (HYPRE_Int)indx, 3)); in PCSetFromOptions_HYPRE_BoomerAMG()
1065 jac->gridsweeps[2] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1071 jac->smoothtype = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1072 PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothType(jac->hsolver, (HYPRE_Int)indx + 5)); in PCSetFromOptions_HYPRE_BoomerAMG()
1073 jac->smoothnumlevels = 25; in PCSetFromOptions_HYPRE_BoomerAMG()
1074 PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothNumLevels(jac->hsolver, 25)); in PCSetFromOptions_HYPRE_BoomerAMG()
1079 if (flg && (jac->smoothtype != -1)) { in PCSetFromOptions_HYPRE_BoomerAMG()
1080 jac->smoothnumlevels = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1081 PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothNumLevels(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1087 jac->smoothsweeps = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1088 PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothNumSweeps(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1093 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUType(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1097 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUIterSetupType(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1101 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUIterSetupOption(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1105 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUIterSetupMaxIter(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1109 if (flg) PetscCallHYPRE(hypre_BoomerAMGSetILUIterSetupTolerance(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_BoomerAMG()
1113 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetPrintLevel(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1117 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetLogging(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1121 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILULevel(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1125 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUMaxRowNnz(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1129 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUMaxIter(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1133 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUDroptol(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_BoomerAMG()
1137 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUTriSolve(jac->hsolver, tmp_truth)); in PCSetFromOptions_HYPRE_BoomerAMG()
1141 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILULowerJacobiIters(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1145 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILUUpperJacobiIters(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1149 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetILULocalReordering(jac->hsolver, tmp_truth)); in PCSetFromOptions_HYPRE_BoomerAMG()
1153 if (flg && (jac->smoothtype == 4)) { in PCSetFromOptions_HYPRE_BoomerAMG()
1154 jac->eu_level = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1155 PetscCallHYPRE(HYPRE_BoomerAMGSetEuLevel(jac->hsolver, (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1161 if (flg && (jac->smoothtype == 4)) { in PCSetFromOptions_HYPRE_BoomerAMG()
1162 jac->eu_droptolerance = droptolerance; in PCSetFromOptions_HYPRE_BoomerAMG()
1163 PetscCallHYPRE(HYPRE_BoomerAMGSetEuLevel(jac->hsolver, droptolerance)); in PCSetFromOptions_HYPRE_BoomerAMG()
1168 if (flg && (jac->smoothtype == 4)) { in PCSetFromOptions_HYPRE_BoomerAMG()
1169 jac->eu_bj = tmp_truth; in PCSetFromOptions_HYPRE_BoomerAMG()
1170 PetscCallHYPRE(HYPRE_BoomerAMGSetEuBJ(jac->hsolver, (HYPRE_Int)jac->eu_bj)); in PCSetFromOptions_HYPRE_BoomerAMG()
1175jac->relaxtype[0] < 0 ? "not yet set" : HYPREBoomerAMGRelaxType[jac->relaxtype[0]], &indx, &flg)); in PCSetFromOptions_HYPRE_BoomerAMG()
1176 if (flg) jac->relaxtype[0] = jac->relaxtype[1] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1178 …TIC_ARRAY_LENGTH(HYPREBoomerAMGRelaxType), jac->relaxtype[0] < 0 ? "not yet set" : HYPREBoomerAMGR… in PCSetFromOptions_HYPRE_BoomerAMG()
1179 if (flg) jac->relaxtype[0] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1181 …TIC_ARRAY_LENGTH(HYPREBoomerAMGRelaxType), jac->relaxtype[1] < 0 ? "not yet set" : HYPREBoomerAMGR… in PCSetFromOptions_HYPRE_BoomerAMG()
1182 if (flg) jac->relaxtype[1] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1183 …ETSC_STATIC_ARRAY_LENGTH(HYPREBoomerAMGRelaxType), HYPREBoomerAMGRelaxType[jac->relaxtype[2]], &in… in PCSetFromOptions_HYPRE_BoomerAMG()
1184 if (flg) jac->relaxtype[2] = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1187 …ll levels (0 = hypre estimates, -k = determined with k CG steps)", "None", jac->relaxweight, &tmpd… in PCSetFromOptions_HYPRE_BoomerAMG()
1189 PetscCallHYPRE(HYPRE_BoomerAMGSetRelaxWt(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_BoomerAMG()
1190 jac->relaxweight = tmpdbl; in PCSetFromOptions_HYPRE_BoomerAMG()
1199 PetscCallHYPRE(HYPRE_BoomerAMGSetLevelRelaxWt(jac->hsolver, twodbl[0], (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1203 …laxation weight for all levels (-k = determined with k CG steps)", "None", jac->outerrelaxweight, … in PCSetFromOptions_HYPRE_BoomerAMG()
1205 PetscCallHYPRE(HYPRE_BoomerAMGSetOuterWt(jac->hsolver, tmpdbl)); in PCSetFromOptions_HYPRE_BoomerAMG()
1206 jac->outerrelaxweight = tmpdbl; in PCSetFromOptions_HYPRE_BoomerAMG()
1215 PetscCallHYPRE(HYPRE_BoomerAMGSetLevelOuterWt(jac->hsolver, twodbl[0], (HYPRE_Int)indx)); in PCSetFromOptions_HYPRE_BoomerAMG()
1220 if (flg) jac->relaxorder = !tmp_truth; in PCSetFromOptions_HYPRE_BoomerAMG()
1223 jac->measuretype = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1224 PetscCallHYPRE(HYPRE_BoomerAMGSetMeasureType(jac->hsolver, (HYPRE_Int)jac->measuretype)); in PCSetFromOptions_HYPRE_BoomerAMG()
1226 …IC_ARRAY_LENGTH(HYPREBoomerAMGCoarsenType), jac->coarsentype < 0 ? "unknown" : HYPREBoomerAMGCoars… in PCSetFromOptions_HYPRE_BoomerAMG()
1227 if (flg) jac->coarsentype = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1229 …boomeramg_max_coarse_size", "Maximum size of coarsest grid", "None", jac->maxc, &jac->maxc, &flg)); in PCSetFromOptions_HYPRE_BoomerAMG()
1230 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetMaxCoarseSize(jac->hsolver, (HYPRE_Int)jac->maxc)); in PCSetFromOptions_HYPRE_BoomerAMG()
1231 …boomeramg_min_coarse_size", "Minimum size of coarsest grid", "None", jac->minc, &jac->minc, &flg)); in PCSetFromOptions_HYPRE_BoomerAMG()
1232 if (flg) PetscCallHYPRE(HYPRE_BoomerAMGSetMinCoarseSize(jac->hsolver, (HYPRE_Int)jac->minc)); in PCSetFromOptions_HYPRE_BoomerAMG()
1235 …Algorithm", HYPRESpgemmTypes, PETSC_STATIC_ARRAY_LENGTH(HYPRESpgemmTypes), jac->spgemm_type, &indx… in PCSetFromOptions_HYPRE_BoomerAMG()
1240 …e", "Type of AIR method (distance 1 or 2, 0 means no AIR)", "None", jac->Rtype, &jac->Rtype, NULL)… in PCSetFromOptions_HYPRE_BoomerAMG()
1241 PetscCallHYPRE(HYPRE_BoomerAMGSetRestriction(jac->hsolver, (HYPRE_Int)jac->Rtype)); in PCSetFromOptions_HYPRE_BoomerAMG()
1242 if (jac->Rtype) { in PCSetFromOptions_HYPRE_BoomerAMG()
1250jac->interptype = 100; /* no way we can pass this with strings... Set it as default as in MFEM, th… in PCSetFromOptions_HYPRE_BoomerAMG()
1252 …_hypre_boomeramg_strongthresholdR", "Threshold for R", "None", jac->Rstrongthreshold, &jac->Rstron… in PCSetFromOptions_HYPRE_BoomerAMG()
1253 PetscCallHYPRE(HYPRE_BoomerAMGSetStrongThresholdR(jac->hsolver, jac->Rstrongthreshold)); in PCSetFromOptions_HYPRE_BoomerAMG()
1255 …boomeramg_filterthresholdR", "Filter threshold for R", "None", jac->Rfilterthreshold, &jac->Rfilte… in PCSetFromOptions_HYPRE_BoomerAMG()
1256 PetscCallHYPRE(HYPRE_BoomerAMGSetFilterThresholdR(jac->hsolver, jac->Rfilterthreshold)); in PCSetFromOptions_HYPRE_BoomerAMG()
1258 …p tolerance for the A-matrices from the 2nd level of AMG", "None", jac->Adroptol, &jac->Adroptol, … in PCSetFromOptions_HYPRE_BoomerAMG()
1259 PetscCallHYPRE(HYPRE_BoomerAMGSetADropTol(jac->hsolver, (HYPRE_Int)jac->Adroptol)); in PCSetFromOptions_HYPRE_BoomerAMG()
1261 … row norm: type 1: 1-norm, 2: 2-norm, -1: infinity norm", "None", jac->Adroptype, &jac->Adroptype,… in PCSetFromOptions_HYPRE_BoomerAMG()
1262 PetscCallHYPRE(HYPRE_BoomerAMGSetADropType(jac->hsolver, (HYPRE_Int)jac->Adroptype)); in PCSetFromOptions_HYPRE_BoomerAMG()
1265 …PetscCheck(ns_down == jac->gridsweeps[0], PetscObjectComm((PetscObject)jac), PETSC_ERR_ARG_SIZ, "T… in PCSetFromOptions_HYPRE_BoomerAMG()
1266 …PetscCheck(ns_up == jac->gridsweeps[1], PetscObjectComm((PetscObject)jac), PETSC_ERR_ARG_SIZ, "The… in PCSetFromOptions_HYPRE_BoomerAMG()
1271 grid_relax_points[3] = hypre_TAlloc(HYPRE_Int, jac->gridsweeps[2], HYPRE_MEMORY_HOST); in PCSetFromOptions_HYPRE_BoomerAMG()
1279 …PetscCheck(matchF || matchC || matchA, PetscObjectComm((PetscObject)jac), PETSC_ERR_ARG_WRONG, "Va… in PCSetFromOptions_HYPRE_BoomerAMG()
1290 …PetscCheck(matchF || matchC || matchA, PetscObjectComm((PetscObject)jac), PETSC_ERR_ARG_WRONG, "Va… in PCSetFromOptions_HYPRE_BoomerAMG()
1297 for (PetscInt i = 0; i < jac->gridsweeps[2]; i++) grid_relax_points[3][i] = 0; in PCSetFromOptions_HYPRE_BoomerAMG()
1300 PetscCallHYPRE(HYPRE_BoomerAMGSetGridRelaxPoints(jac->hsolver, grid_relax_points)); in PCSetFromOptions_HYPRE_BoomerAMG()
1309jac->Rtype || !jac->agg_nl, PetscObjectComm((PetscObject)pc), PETSC_ERR_ARG_INCOMP, "-pc_hypre_boo… in PCSetFromOptions_HYPRE_BoomerAMG()
1312 …ATIC_ARRAY_LENGTH(HYPREBoomerAMGInterpType), jac->interptype < 0 ? "unknown" : HYPREBoomerAMGInter… in PCSetFromOptions_HYPRE_BoomerAMG()
1313 if (flg) jac->interptype = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1320 jac->printstatistics = PETSC_TRUE; in PCSetFromOptions_HYPRE_BoomerAMG()
1321 PetscCallHYPRE(HYPRE_BoomerAMGSetPrintLevel(jac->hsolver, (HYPRE_Int)level)); in PCSetFromOptions_HYPRE_BoomerAMG()
1329 jac->printstatistics = PETSC_TRUE; in PCSetFromOptions_HYPRE_BoomerAMG()
1330 PetscCallHYPRE(HYPRE_BoomerAMGSetDebugFlag(jac->hsolver, (HYPRE_Int)level)); in PCSetFromOptions_HYPRE_BoomerAMG()
1336 …ramg_nodal_relaxation", "Nodal relaxation via Schwarz", "None", (HYPRE_Int)jac->nodal_relax_levels… in PCSetFromOptions_HYPRE_BoomerAMG()
1337 if (flg) jac->nodal_relax_levels = tmp_int; in PCSetFromOptions_HYPRE_BoomerAMG()
1338 PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothType(jac->hsolver, 6)); in PCSetFromOptions_HYPRE_BoomerAMG()
1339 PetscCallHYPRE(HYPRE_BoomerAMGSetDomainType(jac->hsolver, 1)); in PCSetFromOptions_HYPRE_BoomerAMG()
1340 PetscCallHYPRE(HYPRE_BoomerAMGSetOverlap(jac->hsolver, 0)); in PCSetFromOptions_HYPRE_BoomerAMG()
1341 …PetscCallHYPRE(HYPRE_BoomerAMGSetSmoothNumLevels(jac->hsolver, (HYPRE_Int)jac->nodal_relax_levels)… in PCSetFromOptions_HYPRE_BoomerAMG()
1344 …Avoid transpose matvecs in preconditioner application", "None", jac->keeptranspose, &jac->keeptran… in PCSetFromOptions_HYPRE_BoomerAMG()
1349 jac->symt = indx; in PCSetFromOptions_HYPRE_BoomerAMG()
1350 PetscCallHYPRE(HYPRE_BoomerAMGSetSym(jac->hsolver, (HYPRE_Int)jac->symt)); in PCSetFromOptions_HYPRE_BoomerAMG()
1359 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCApplyRichardson_HYPRE_BoomerAMG() local
1364 PetscCallHYPRE(HYPRE_BoomerAMGSetMaxIter(jac->hsolver, (HYPRE_Int)(its * jac->maxiter))); in PCApplyRichardson_HYPRE_BoomerAMG()
1365 PetscCallHYPRE(HYPRE_BoomerAMGSetTol(jac->hsolver, rtol)); in PCApplyRichardson_HYPRE_BoomerAMG()
1366 jac->applyrichardson = PETSC_TRUE; in PCApplyRichardson_HYPRE_BoomerAMG()
1368 jac->applyrichardson = PETSC_FALSE; in PCApplyRichardson_HYPRE_BoomerAMG()
1369 PetscCallHYPRE(HYPRE_BoomerAMGGetNumIterations(jac->hsolver, &oits)); in PCApplyRichardson_HYPRE_BoomerAMG()
1373 PetscCallHYPRE(HYPRE_BoomerAMGSetTol(jac->hsolver, jac->tol)); in PCApplyRichardson_HYPRE_BoomerAMG()
1374 PetscCallHYPRE(HYPRE_BoomerAMGSetMaxIter(jac->hsolver, (HYPRE_Int)jac->maxiter)); in PCApplyRichardson_HYPRE_BoomerAMG()
1380 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_BoomerAMG() local
1381 hypre_ParAMGData *amg_data = (hypre_ParAMGData *)jac->hsolver; in PCView_HYPRE_BoomerAMG()
1390 …PetscCall(PetscViewerASCIIPrintf(viewer, " Cycle type %s\n", HYPREBoomerAMGCycleType[jac->cycle… in PCView_HYPRE_BoomerAMG()
1391 …etscViewerASCIIPrintf(viewer, " Maximum number of levels %" PetscInt_FMT "\n", jac->maxlevels)); in PCView_HYPRE_BoomerAMG()
1392 …intf(viewer, " Maximum number of iterations PER hypre call %" PetscInt_FMT "\n", jac->maxiter)); in PCView_HYPRE_BoomerAMG()
1393 …PetscViewerASCIIPrintf(viewer, " Convergence tolerance PER hypre call %g\n", (double)jac->tol)); in PCView_HYPRE_BoomerAMG()
1394 …PetscCall(PetscViewerASCIIPrintf(viewer, " Threshold for strong coupling %g\n", (double)jac->st… in PCView_HYPRE_BoomerAMG()
1395 …scViewerASCIIPrintf(viewer, " Interpolation truncation factor %g\n", (double)jac->truncfactor)); in PCView_HYPRE_BoomerAMG()
1396 …ewerASCIIPrintf(viewer, " Interpolation: max elements per row %" PetscInt_FMT "\n", jac->pmax)); in PCView_HYPRE_BoomerAMG()
1397 …if (jac->interp_refine) PetscCall(PetscViewerASCIIPrintf(viewer, " Interpolation: number of ste… in PCView_HYPRE_BoomerAMG()
1398 …IPrintf(viewer, " Number of levels of aggressive coarsening %" PetscInt_FMT "\n", jac->agg_nl)); in PCView_HYPRE_BoomerAMG()
1399 …(viewer, " Number of paths for aggressive coarsening %" PetscInt_FMT "\n", jac->agg_num_paths)); in PCView_HYPRE_BoomerAMG()
1401 PetscCall(PetscViewerASCIIPrintf(viewer, " Maximum row sums %g\n", (double)jac->maxrowsum)); in PCView_HYPRE_BoomerAMG()
1403 …PetscCall(PetscViewerASCIIPrintf(viewer, " Sweeps down %" PetscInt_FMT "\n", jac->grids… in PCView_HYPRE_BoomerAMG()
1404 …PetscCall(PetscViewerASCIIPrintf(viewer, " Sweeps up %" PetscInt_FMT "\n", jac->grids… in PCView_HYPRE_BoomerAMG()
1405 …PetscCall(PetscViewerASCIIPrintf(viewer, " Sweeps on coarse %" PetscInt_FMT "\n", jac->grids… in PCView_HYPRE_BoomerAMG()
1407 …tf(viewer, " Relax down %s\n", jac->relaxtype[0] < 0 ? "not yet set" : HYPREBoomerAMGR… in PCView_HYPRE_BoomerAMG()
1408 …tf(viewer, " Relax up %s\n", jac->relaxtype[1] < 0 ? "not yet set" : HYPREBoomerAMGR… in PCView_HYPRE_BoomerAMG()
1409 …erASCIIPrintf(viewer, " Relax on coarse %s\n", HYPREBoomerAMGRelaxType[jac->relaxtype[2]])); in PCView_HYPRE_BoomerAMG()
1411 …PetscCall(PetscViewerASCIIPrintf(viewer, " Relax weight (all) %g\n", (double)jac->relaxwe… in PCView_HYPRE_BoomerAMG()
1412 …PetscCall(PetscViewerASCIIPrintf(viewer, " Outer relax weight (all) %g\n", (double)jac->outerre… in PCView_HYPRE_BoomerAMG()
1414 …etscViewerASCIIPrintf(viewer, " Maximum size of coarsest grid %" PetscInt_FMT "\n", jac->maxc)); in PCView_HYPRE_BoomerAMG()
1415 …etscViewerASCIIPrintf(viewer, " Minimum size of coarsest grid %" PetscInt_FMT "\n", jac->minc)); in PCView_HYPRE_BoomerAMG()
1417 if (jac->relaxorder == PETSC_DECIDE) { in PCView_HYPRE_BoomerAMG()
1419 } else if (jac->relaxorder) { in PCView_HYPRE_BoomerAMG()
1424 if (jac->smoothtype != -1) { in PCView_HYPRE_BoomerAMG()
1425 …erASCIIPrintf(viewer, " Smooth type %s\n", HYPREBoomerAMGSmoothType[jac->smoothtype])); in PCView_HYPRE_BoomerAMG()
1426 …PetscCall(PetscViewerASCIIPrintf(viewer, " Smooth num levels %" PetscInt_FMT "\n", jac->smoo… in PCView_HYPRE_BoomerAMG()
1427 …PetscCall(PetscViewerASCIIPrintf(viewer, " Smooth num sweeps %" PetscInt_FMT "\n", jac->smoo… in PCView_HYPRE_BoomerAMG()
1428 if (jac->smoothtype == 0) { in PCView_HYPRE_BoomerAMG()
1465 if (jac->smoothtype == 3) { in PCView_HYPRE_BoomerAMG()
1466 …PetscCall(PetscViewerASCIIPrintf(viewer, " Euclid ILU(k) levels %" PetscInt_FMT "\n", jac->eu_l… in PCView_HYPRE_BoomerAMG()
1467 …PetscCall(PetscViewerASCIIPrintf(viewer, " Euclid ILU(k) drop tolerance %g\n", (double)jac->eu_… in PCView_HYPRE_BoomerAMG()
1468 …etscViewerASCIIPrintf(viewer, " Euclid ILU use Block-Jacobi? %" PetscInt_FMT "\n", jac->eu_bj)); in PCView_HYPRE_BoomerAMG()
1470 …rASCIIPrintf(viewer, " Measure type %s\n", HYPREBoomerAMGMeasureType[jac->measuretype])); in PCView_HYPRE_BoomerAMG()
1471 …f(viewer, " Coarsen type %s\n", jac->coarsentype < 0 ? "not yet set" : HYPREBoomerAMGCoa… in PCView_HYPRE_BoomerAMG()
1472 … Interpolation type %s\n", jac->interptype != 100 ? (jac->interptype < 0 ? "not yet set" : HYPR… in PCView_HYPRE_BoomerAMG()
1473 … (jac->nodal_coarsening) PetscCall(PetscViewerASCIIPrintf(viewer, " Using nodal coarsening with… in PCView_HYPRE_BoomerAMG()
1474 if (jac->vec_interp_variant) { in PCView_HYPRE_BoomerAMG()
1475 …tf(viewer, " HYPRE_BoomerAMGSetInterpVecVariant() %" PetscInt_FMT "\n", jac->vec_interp_variant… in PCView_HYPRE_BoomerAMG()
1476 …Printf(viewer, " HYPRE_BoomerAMGSetInterpVecQMax() %" PetscInt_FMT "\n", jac->vec_interp_qmax)); in PCView_HYPRE_BoomerAMG()
1477 …werASCIIPrintf(viewer, " HYPRE_BoomerAMGSetSmoothInterpVectors() %d\n", jac->vec_interp_smooth)… in PCView_HYPRE_BoomerAMG()
1479 …if (jac->nodal_relax) PetscCall(PetscViewerASCIIPrintf(viewer, " Using nodal relaxation via Sch… in PCView_HYPRE_BoomerAMG()
1481 PetscCall(PetscViewerASCIIPrintf(viewer, " SpGEMM type %s\n", jac->spgemm_type)); in PCView_HYPRE_BoomerAMG()
1486 if (jac->Rtype) { in PCView_HYPRE_BoomerAMG()
1487 …CIIPrintf(viewer, " Using approximate ideal restriction type %" PetscInt_FMT "\n", jac->Rtype)); in PCView_HYPRE_BoomerAMG()
1488 …PetscCall(PetscViewerASCIIPrintf(viewer, " Threshold for R %g\n", (double)jac->Rstrongthresho… in PCView_HYPRE_BoomerAMG()
1489 …PetscCall(PetscViewerASCIIPrintf(viewer, " Filter for R %g\n", (double)jac->Rfilterthreshold)… in PCView_HYPRE_BoomerAMG()
1490 … PetscCall(PetscViewerASCIIPrintf(viewer, " A drop tolerance %g\n", (double)jac->Adroptol)); in PCView_HYPRE_BoomerAMG()
1491 …PetscCall(PetscViewerASCIIPrintf(viewer, " A drop type %" PetscInt_FMT "\n", jac->Adroptype)); in PCView_HYPRE_BoomerAMG()
1499 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_ParaSails() local
1506 …pc_hypre_parasails_nlevels", "Number of number of levels", "None", jac->nlevels, &jac->nlevels, 0)… in PCSetFromOptions_HYPRE_ParaSails()
1507 …tscOptionsReal("-pc_hypre_parasails_thresh", "Threshold", "None", jac->threshold, &jac->threshold,… in PCSetFromOptions_HYPRE_ParaSails()
1508 …if (flag) PetscCallHYPRE(HYPRE_ParaSailsSetParams(jac->hsolver, jac->threshold, (HYPRE_Int)jac->nl… in PCSetFromOptions_HYPRE_ParaSails()
1510 …PetscCall(PetscOptionsReal("-pc_hypre_parasails_filter", "filter", "None", jac->filter, &jac->filt… in PCSetFromOptions_HYPRE_ParaSails()
1511 if (flag) PetscCallHYPRE(HYPRE_ParaSailsSetFilter(jac->hsolver, jac->filter)); in PCSetFromOptions_HYPRE_ParaSails()
1513 …OptionsReal("-pc_hypre_parasails_loadbal", "Load balance", "None", jac->loadbal, &jac->loadbal, &f… in PCSetFromOptions_HYPRE_ParaSails()
1514 if (flag) PetscCallHYPRE(HYPRE_ParaSailsSetLoadbal(jac->hsolver, (HYPRE_Int)jac->loadbal)); in PCSetFromOptions_HYPRE_ParaSails()
1516 …rasails_logging", "Print info to screen", "None", (PetscBool)jac->logging, (PetscBool *)&jac->logg… in PCSetFromOptions_HYPRE_ParaSails()
1517 if (flag) PetscCallHYPRE(HYPRE_ParaSailsSetLogging(jac->hsolver, (HYPRE_Int)jac->logging)); in PCSetFromOptions_HYPRE_ParaSails()
1519 …"Reuse nonzero pattern in preconditioner", "None", (PetscBool)jac->ruse, (PetscBool *)&jac->ruse, … in PCSetFromOptions_HYPRE_ParaSails()
1520 if (flag) PetscCallHYPRE(HYPRE_ParaSailsSetReuse(jac->hsolver, (HYPRE_Int)jac->ruse)); in PCSetFromOptions_HYPRE_ParaSails()
1524 jac->symt = indx; in PCSetFromOptions_HYPRE_ParaSails()
1525 PetscCallHYPRE(HYPRE_ParaSailsSetSym(jac->hsolver, (HYPRE_Int)jac->symt)); in PCSetFromOptions_HYPRE_ParaSails()
1534 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_ParaSails() local
1542 PetscCall(PetscViewerASCIIPrintf(viewer, " nlevels %" PetscInt_FMT "\n", jac->nlevels)); in PCView_HYPRE_ParaSails()
1543 PetscCall(PetscViewerASCIIPrintf(viewer, " threshold %g\n", (double)jac->threshold)); in PCView_HYPRE_ParaSails()
1544 PetscCall(PetscViewerASCIIPrintf(viewer, " filter %g\n", (double)jac->filter)); in PCView_HYPRE_ParaSails()
1545 PetscCall(PetscViewerASCIIPrintf(viewer, " load balance %g\n", (double)jac->loadbal)); in PCView_HYPRE_ParaSails()
1546 …PetscCall(PetscViewerASCIIPrintf(viewer, " reuse nonzero structure %s\n", PetscBools[jac->ruse]… in PCView_HYPRE_ParaSails()
1547 …PetscCall(PetscViewerASCIIPrintf(viewer, " print info to screen %s\n", PetscBools[jac->logging]… in PCView_HYPRE_ParaSails()
1548 if (!jac->symt) symt = "nonsymmetric matrix and preconditioner"; in PCView_HYPRE_ParaSails()
1549 else if (jac->symt == 1) symt = "SPD matrix and preconditioner"; in PCView_HYPRE_ParaSails()
1550 else if (jac->symt == 2) symt = "nonsymmetric matrix but SPD preconditioner"; in PCView_HYPRE_ParaSails()
1551 …ct)pc), PETSC_ERR_ARG_WRONG, "Unknown HYPRE ParaSails symmetric option %" PetscInt_FMT, jac->symt); in PCView_HYPRE_ParaSails()
1559 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_AMS() local
1565 …_hypre_ams_print_level", "Debugging output level for AMS", "None", jac->as_print, &jac->as_print, … in PCSetFromOptions_HYPRE_AMS()
1566 if (flag) PetscCallHYPRE(HYPRE_AMSSetPrintLevel(jac->hsolver, (HYPRE_Int)jac->as_print)); in PCSetFromOptions_HYPRE_AMS()
1567 …imum number of AMS multigrid iterations within PCApply", "None", jac->as_max_iter, &jac->as_max_it… in PCSetFromOptions_HYPRE_AMS()
1568 if (flag) PetscCallHYPRE(HYPRE_AMSSetMaxIter(jac->hsolver, (HYPRE_Int)jac->as_max_iter)); in PCSetFromOptions_HYPRE_AMS()
1569 …_hypre_ams_cycle_type", "Cycle type for AMS multigrid", "None", jac->ams_cycle_type, &jac->ams_cyc… in PCSetFromOptions_HYPRE_AMS()
1570 if (flag) PetscCallHYPRE(HYPRE_AMSSetCycleType(jac->hsolver, (HYPRE_Int)jac->ams_cycle_type)); in PCSetFromOptions_HYPRE_AMS()
1571 …l("-pc_hypre_ams_tol", "Error tolerance for AMS multigrid", "None", jac->as_tol, &jac->as_tol, &fl… in PCSetFromOptions_HYPRE_AMS()
1572 if (flag) PetscCallHYPRE(HYPRE_AMSSetTol(jac->hsolver, jac->as_tol)); in PCSetFromOptions_HYPRE_AMS()
1573 …re_ams_relax_type", "Relaxation type for AMS smoother", "None", jac->as_relax_type, &jac->as_relax… in PCSetFromOptions_HYPRE_AMS()
1574 …_times", "Number of relaxation steps for AMS smoother", "None", jac->as_relax_times, &jac->as_rela… in PCSetFromOptions_HYPRE_AMS()
1575 …s_relax_weight", "Relaxation weight for AMS smoother", "None", jac->as_relax_weight, &jac->as_rela… in PCSetFromOptions_HYPRE_AMS()
1576 …-pc_hypre_ams_omega", "SSOR coefficient for AMS smoother", "None", jac->as_omega, &jac->as_omega, … in PCSetFromOptions_HYPRE_AMS()
1577 …E_AMSSetSmoothingOptions(jac->hsolver, (HYPRE_Int)jac->as_relax_type, (HYPRE_Int)jac->as_relax_tim… in PCSetFromOptions_HYPRE_AMS()
1578 …ld for strong coupling of vector Poisson AMG solver", "None", jac->as_amg_alpha_theta, &jac->as_am… in PCSetFromOptions_HYPRE_AMS()
1580 …pc_hypre_ams_amg_alpha_options", "AMG options for vector Poisson", "None", jac->as_amg_alpha_opts,… in PCSetFromOptions_HYPRE_AMS()
1582 …PetscCallHYPRE(HYPRE_AMSSetAlphaAMGOptions(jac->hsolver, (HYPRE_Int)jac->as_amg_alpha_opts[0], … in PCSetFromOptions_HYPRE_AMS()
1583 … (HYPRE_Int)jac->as_amg_alpha_opts[1], /* AMG agg_levels */ in PCSetFromOptions_HYPRE_AMS()
1584 … (HYPRE_Int)jac->as_amg_alpha_opts[2], /* AMG relax_type */ in PCSetFromOptions_HYPRE_AMS()
1585jac->as_amg_alpha_theta, (HYPRE_Int)jac->as_amg_alpha_opts[3], /* AMG interp_type */ in PCSetFromOptions_HYPRE_AMS()
1586 … (HYPRE_Int)jac->as_amg_alpha_opts[4])); /* AMG Pmax */ in PCSetFromOptions_HYPRE_AMS()
1588 …ld for strong coupling of scalar Poisson AMG solver", "None", jac->as_amg_beta_theta, &jac->as_amg… in PCSetFromOptions_HYPRE_AMS()
1590 …re_ams_amg_beta_options", "AMG options for scalar Poisson solver", "None", jac->as_amg_beta_opts, … in PCSetFromOptions_HYPRE_AMS()
1592 …PetscCallHYPRE(HYPRE_AMSSetBetaAMGOptions(jac->hsolver, (HYPRE_Int)jac->as_amg_beta_opts[0], … in PCSetFromOptions_HYPRE_AMS()
1593 … (HYPRE_Int)jac->as_amg_beta_opts[1], /* AMG agg_levels */ in PCSetFromOptions_HYPRE_AMS()
1594 … (HYPRE_Int)jac->as_amg_beta_opts[2], /* AMG relax_type */ in PCSetFromOptions_HYPRE_AMS()
1595jac->as_amg_beta_theta, (HYPRE_Int)jac->as_amg_beta_opts[3], /* AMG interp_type */ in PCSetFromOptions_HYPRE_AMS()
1596 … (HYPRE_Int)jac->as_amg_beta_opts[4])); /* AMG Pmax */ in PCSetFromOptions_HYPRE_AMS()
1598 … problems with zero conductivity regions is performed", "None", jac->ams_proj_freq, &jac->ams_proj… in PCSetFromOptions_HYPRE_AMS()
1600 PetscCallHYPRE(HYPRE_AMSSetProjectionFrequency(jac->hsolver, (HYPRE_Int)jac->ams_proj_freq)); in PCSetFromOptions_HYPRE_AMS()
1608 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_AMS() local
1615 …IIPrintf(viewer, " subspace iterations per application %" PetscInt_FMT "\n", jac->as_max_iter)); in PCView_HYPRE_AMS()
1616 …PetscCall(PetscViewerASCIIPrintf(viewer, " subspace cycle type %" PetscInt_FMT "\n", jac->ams_c… in PCView_HYPRE_AMS()
1617 …PetscCall(PetscViewerASCIIPrintf(viewer, " subspace iteration tolerance %g\n", (double)jac->as_… in PCView_HYPRE_AMS()
1618 …PetscCall(PetscViewerASCIIPrintf(viewer, " smoother type %" PetscInt_FMT "\n", jac->as_relax_ty… in PCView_HYPRE_AMS()
1619 …ewerASCIIPrintf(viewer, " number of smoothing steps %" PetscInt_FMT "\n", jac->as_relax_times)); in PCView_HYPRE_AMS()
1620 …PetscCall(PetscViewerASCIIPrintf(viewer, " smoother weight %g\n", (double)jac->as_relax_weight)… in PCView_HYPRE_AMS()
1621 PetscCall(PetscViewerASCIIPrintf(viewer, " smoother omega %g\n", (double)jac->as_omega)); in PCView_HYPRE_AMS()
1622 if (jac->alpha_Poisson) { in PCView_HYPRE_AMS()
1627 …CIIPrintf(viewer, " boomerAMG coarsening type %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_AMS()
1628 …, " boomerAMG levels of aggressive coarsening %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_AMS()
1629 …CIIPrintf(viewer, " boomerAMG relaxation type %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_AMS()
1630 …Printf(viewer, " boomerAMG interpolation type %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_AMS()
1631 …boomerAMG max nonzero elements in interpolation rows %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_AMS()
1632 …erASCIIPrintf(viewer, " boomerAMG strength threshold %g\n", (double)jac->as_amg_alpha_theta… in PCView_HYPRE_AMS()
1633 if (!jac->ams_beta_is_zero) { in PCView_HYPRE_AMS()
1634 if (jac->beta_Poisson) { in PCView_HYPRE_AMS()
1639 …CIIPrintf(viewer, " boomerAMG coarsening type %" PetscInt_FMT "\n", jac->as_amg_beta_opts[0… in PCView_HYPRE_AMS()
1640 …, " boomerAMG levels of aggressive coarsening %" PetscInt_FMT "\n", jac->as_amg_beta_opts[1… in PCView_HYPRE_AMS()
1641 …CIIPrintf(viewer, " boomerAMG relaxation type %" PetscInt_FMT "\n", jac->as_amg_beta_opts[2… in PCView_HYPRE_AMS()
1642 …Printf(viewer, " boomerAMG interpolation type %" PetscInt_FMT "\n", jac->as_amg_beta_opts[3… in PCView_HYPRE_AMS()
1643 …boomerAMG max nonzero elements in interpolation rows %" PetscInt_FMT "\n", jac->as_amg_beta_opts[4… in PCView_HYPRE_AMS()
1644 …erASCIIPrintf(viewer, " boomerAMG strength threshold %g\n", (double)jac->as_amg_beta_theta)… in PCView_HYPRE_AMS()
1645jac->ams_beta_is_zero_part) PetscCall(PetscViewerASCIIPrintf(viewer, " compatible subspace … in PCView_HYPRE_AMS()
1655 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE_ADS() local
1661 …_hypre_ads_print_level", "Debugging output level for ADS", "None", jac->as_print, &jac->as_print, … in PCSetFromOptions_HYPRE_ADS()
1662 if (flag) PetscCallHYPRE(HYPRE_ADSSetPrintLevel(jac->hsolver, (HYPRE_Int)jac->as_print)); in PCSetFromOptions_HYPRE_ADS()
1663 …imum number of ADS multigrid iterations within PCApply", "None", jac->as_max_iter, &jac->as_max_it… in PCSetFromOptions_HYPRE_ADS()
1664 if (flag) PetscCallHYPRE(HYPRE_ADSSetMaxIter(jac->hsolver, (HYPRE_Int)jac->as_max_iter)); in PCSetFromOptions_HYPRE_ADS()
1665 …_hypre_ads_cycle_type", "Cycle type for ADS multigrid", "None", jac->ads_cycle_type, &jac->ads_cyc… in PCSetFromOptions_HYPRE_ADS()
1666 if (flag) PetscCallHYPRE(HYPRE_ADSSetCycleType(jac->hsolver, (HYPRE_Int)jac->ads_cycle_type)); in PCSetFromOptions_HYPRE_ADS()
1667 …l("-pc_hypre_ads_tol", "Error tolerance for ADS multigrid", "None", jac->as_tol, &jac->as_tol, &fl… in PCSetFromOptions_HYPRE_ADS()
1668 if (flag) PetscCallHYPRE(HYPRE_ADSSetTol(jac->hsolver, jac->as_tol)); in PCSetFromOptions_HYPRE_ADS()
1669 …re_ads_relax_type", "Relaxation type for ADS smoother", "None", jac->as_relax_type, &jac->as_relax… in PCSetFromOptions_HYPRE_ADS()
1670 …_times", "Number of relaxation steps for ADS smoother", "None", jac->as_relax_times, &jac->as_rela… in PCSetFromOptions_HYPRE_ADS()
1671 …s_relax_weight", "Relaxation weight for ADS smoother", "None", jac->as_relax_weight, &jac->as_rela… in PCSetFromOptions_HYPRE_ADS()
1672 …-pc_hypre_ads_omega", "SSOR coefficient for ADS smoother", "None", jac->as_omega, &jac->as_omega, … in PCSetFromOptions_HYPRE_ADS()
1673 …E_ADSSetSmoothingOptions(jac->hsolver, (HYPRE_Int)jac->as_relax_type, (HYPRE_Int)jac->as_relax_tim… in PCSetFromOptions_HYPRE_ADS()
1674 …eshold for strong coupling of AMS solver inside ADS", "None", jac->as_amg_alpha_theta, &jac->as_am… in PCSetFromOptions_HYPRE_ADS()
1676 …c_hypre_ads_ams_options", "AMG options for AMS solver inside ADS", "None", jac->as_amg_alpha_opts,… in PCSetFromOptions_HYPRE_ADS()
1677 …ms_cycle_type", "Cycle type for AMS solver inside ADS", "None", jac->ams_cycle_type, &jac->ams_cyc… in PCSetFromOptions_HYPRE_ADS()
1679 …PetscCallHYPRE(HYPRE_ADSSetAMSOptions(jac->hsolver, (HYPRE_Int)jac->ams_cycle_type, … in PCSetFromOptions_HYPRE_ADS()
1680 … (HYPRE_Int)jac->as_amg_alpha_opts[0], /* AMG coarsen type */ in PCSetFromOptions_HYPRE_ADS()
1681 … (HYPRE_Int)jac->as_amg_alpha_opts[1], /* AMG agg_levels */ in PCSetFromOptions_HYPRE_ADS()
1682 … (HYPRE_Int)jac->as_amg_alpha_opts[2], /* AMG relax_type */ in PCSetFromOptions_HYPRE_ADS()
1683jac->as_amg_alpha_theta, (HYPRE_Int)jac->as_amg_alpha_opts[3], /* AMG interp_type */ in PCSetFromOptions_HYPRE_ADS()
1684 … (HYPRE_Int)jac->as_amg_alpha_opts[4])); /* AMG Pmax */ in PCSetFromOptions_HYPRE_ADS()
1686 …for strong coupling of vector AMG solver inside ADS", "None", jac->as_amg_beta_theta, &jac->as_amg… in PCSetFromOptions_HYPRE_ADS()
1688 …_ads_amg_options", "AMG options for vector AMG solver inside ADS", "None", jac->as_amg_beta_opts, … in PCSetFromOptions_HYPRE_ADS()
1690 …PetscCallHYPRE(HYPRE_ADSSetAMGOptions(jac->hsolver, (HYPRE_Int)jac->as_amg_beta_opts[0], … in PCSetFromOptions_HYPRE_ADS()
1691 … (HYPRE_Int)jac->as_amg_beta_opts[1], /* AMG agg_levels */ in PCSetFromOptions_HYPRE_ADS()
1692 … (HYPRE_Int)jac->as_amg_beta_opts[2], /* AMG relax_type */ in PCSetFromOptions_HYPRE_ADS()
1693jac->as_amg_beta_theta, (HYPRE_Int)jac->as_amg_beta_opts[3], /* AMG interp_type */ in PCSetFromOptions_HYPRE_ADS()
1694 … (HYPRE_Int)jac->as_amg_beta_opts[4])); /* AMG Pmax */ in PCSetFromOptions_HYPRE_ADS()
1702 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCView_HYPRE_ADS() local
1709 …IIPrintf(viewer, " subspace iterations per application %" PetscInt_FMT "\n", jac->as_max_iter)); in PCView_HYPRE_ADS()
1710 …PetscCall(PetscViewerASCIIPrintf(viewer, " subspace cycle type %" PetscInt_FMT "\n", jac->ads_c… in PCView_HYPRE_ADS()
1711 …PetscCall(PetscViewerASCIIPrintf(viewer, " subspace iteration tolerance %g\n", (double)jac->as_… in PCView_HYPRE_ADS()
1712 …PetscCall(PetscViewerASCIIPrintf(viewer, " smoother type %" PetscInt_FMT "\n", jac->as_relax_ty… in PCView_HYPRE_ADS()
1713 …ewerASCIIPrintf(viewer, " number of smoothing steps %" PetscInt_FMT "\n", jac->as_relax_times)); in PCView_HYPRE_ADS()
1714 …PetscCall(PetscViewerASCIIPrintf(viewer, " smoother weight %g\n", (double)jac->as_relax_weight)… in PCView_HYPRE_ADS()
1715 PetscCall(PetscViewerASCIIPrintf(viewer, " smoother omega %g\n", (double)jac->as_omega)); in PCView_HYPRE_ADS()
1717 …PetscCall(PetscViewerASCIIPrintf(viewer, " subspace cycle type %" PetscInt_FMT "\n", jac->a… in PCView_HYPRE_ADS()
1718 …PetscCall(PetscViewerASCIIPrintf(viewer, " coarsening type %" PetscInt_FMT "\n", jac->as_am… in PCView_HYPRE_ADS()
1719 …ntf(viewer, " levels of aggressive coarsening %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_ADS()
1720 …PetscCall(PetscViewerASCIIPrintf(viewer, " relaxation type %" PetscInt_FMT "\n", jac->as_am… in PCView_HYPRE_ADS()
1721 …PetscCall(PetscViewerASCIIPrintf(viewer, " interpolation type %" PetscInt_FMT "\n", jac->as… in PCView_HYPRE_ADS()
1722 … " max nonzero elements in interpolation rows %" PetscInt_FMT "\n", jac->as_amg_alpha_opts[… in PCView_HYPRE_ADS()
1723 …PetscCall(PetscViewerASCIIPrintf(viewer, " strength threshold %g\n", (double)jac->as_amg_al… in PCView_HYPRE_ADS()
1725 …PetscCall(PetscViewerASCIIPrintf(viewer, " coarsening type %" PetscInt_FMT "\n", jac->as_am… in PCView_HYPRE_ADS()
1726 …ntf(viewer, " levels of aggressive coarsening %" PetscInt_FMT "\n", jac->as_amg_beta_opts[1… in PCView_HYPRE_ADS()
1727 …PetscCall(PetscViewerASCIIPrintf(viewer, " relaxation type %" PetscInt_FMT "\n", jac->as_am… in PCView_HYPRE_ADS()
1728 …PetscCall(PetscViewerASCIIPrintf(viewer, " interpolation type %" PetscInt_FMT "\n", jac->as… in PCView_HYPRE_ADS()
1729 … " max nonzero elements in interpolation rows %" PetscInt_FMT "\n", jac->as_amg_beta_opts[4… in PCView_HYPRE_ADS()
1730 …PetscCall(PetscViewerASCIIPrintf(viewer, " strength threshold %g\n", (double)jac->as_amg_be… in PCView_HYPRE_ADS()
1737 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPRESetDiscreteGradient_HYPRE() local
1744 PetscCall(MatDestroy(&jac->G)); in PCHYPRESetDiscreteGradient_HYPRE()
1745 jac->G = G; in PCHYPRESetDiscreteGradient_HYPRE()
1747 PetscCall(MatDestroy(&jac->G)); in PCHYPRESetDiscreteGradient_HYPRE()
1748 PetscCall(MatConvert(G, MATHYPRE, MAT_INITIAL_MATRIX, &jac->G)); in PCHYPRESetDiscreteGradient_HYPRE()
1786 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPRESetDiscreteCurl_HYPRE() local
1793 PetscCall(MatDestroy(&jac->C)); in PCHYPRESetDiscreteCurl_HYPRE()
1794 jac->C = C; in PCHYPRESetDiscreteCurl_HYPRE()
1796 PetscCall(MatDestroy(&jac->C)); in PCHYPRESetDiscreteCurl_HYPRE()
1797 PetscCall(MatConvert(C, MATHYPRE, MAT_INITIAL_MATRIX, &jac->C)); in PCHYPRESetDiscreteCurl_HYPRE()
1838 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPRESetInterpolations_HYPRE() local
1843 PetscCall(MatDestroy(&jac->RT_PiFull)); in PCHYPRESetInterpolations_HYPRE()
1844 PetscCall(MatDestroy(&jac->ND_PiFull)); in PCHYPRESetInterpolations_HYPRE()
1846 PetscCall(MatDestroy(&jac->RT_Pi[i])); in PCHYPRESetInterpolations_HYPRE()
1847 PetscCall(MatDestroy(&jac->ND_Pi[i])); in PCHYPRESetInterpolations_HYPRE()
1850 jac->dim = dim; in PCHYPRESetInterpolations_HYPRE()
1855 jac->RT_PiFull = RT_PiFull; in PCHYPRESetInterpolations_HYPRE()
1857 PetscCall(MatConvert(RT_PiFull, MATHYPRE, MAT_INITIAL_MATRIX, &jac->RT_PiFull)); in PCHYPRESetInterpolations_HYPRE()
1866 jac->RT_Pi[i] = RT_Pi[i]; in PCHYPRESetInterpolations_HYPRE()
1868 PetscCall(MatConvert(RT_Pi[i], MATHYPRE, MAT_INITIAL_MATRIX, &jac->RT_Pi[i])); in PCHYPRESetInterpolations_HYPRE()
1877 jac->ND_PiFull = ND_PiFull; in PCHYPRESetInterpolations_HYPRE()
1879 PetscCall(MatConvert(ND_PiFull, MATHYPRE, MAT_INITIAL_MATRIX, &jac->ND_PiFull)); in PCHYPRESetInterpolations_HYPRE()
1888 jac->ND_Pi[i] = ND_Pi[i]; in PCHYPRESetInterpolations_HYPRE()
1890 PetscCall(MatConvert(ND_Pi[i], MATHYPRE, MAT_INITIAL_MATRIX, &jac->ND_Pi[i])); in PCHYPRESetInterpolations_HYPRE()
1961 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPRESetPoissonMatrix_HYPRE() local
1969 PetscCall(MatDestroy(&jac->alpha_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1970 jac->alpha_Poisson = A; in PCHYPRESetPoissonMatrix_HYPRE()
1975 jac->ams_beta_is_zero = PETSC_TRUE; in PCHYPRESetPoissonMatrix_HYPRE()
1977 PetscCall(MatDestroy(&jac->beta_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1978 jac->beta_Poisson = A; in PCHYPRESetPoissonMatrix_HYPRE()
1982 PetscCall(MatDestroy(&jac->alpha_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1983 PetscCall(MatConvert(A, MATHYPRE, MAT_INITIAL_MATRIX, &jac->alpha_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1986 PetscCall(MatDestroy(&jac->beta_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1987 PetscCall(MatConvert(A, MATHYPRE, MAT_INITIAL_MATRIX, &jac->beta_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1989 PetscCall(MatDestroy(&jac->beta_Poisson)); in PCHYPRESetPoissonMatrix_HYPRE()
1990 jac->ams_beta_is_zero = PETSC_TRUE; in PCHYPRESetPoissonMatrix_HYPRE()
2063 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPRESetEdgeConstantVectors_HYPRE() local
2067 PetscCall(VecHYPRE_IJVectorDestroy(&jac->constants[0])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2068 PetscCall(VecHYPRE_IJVectorDestroy(&jac->constants[1])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2069 PetscCall(VecHYPRE_IJVectorDestroy(&jac->constants[2])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2070 PetscCall(VecHYPRE_IJVectorCreate(ozz->map, &jac->constants[0])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2071 PetscCall(VecHYPRE_IJVectorCopy(ozz, jac->constants[0])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2072 PetscCall(VecHYPRE_IJVectorCreate(zoz->map, &jac->constants[1])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2073 PetscCall(VecHYPRE_IJVectorCopy(zoz, jac->constants[1])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2074 jac->dim = 2; in PCHYPRESetEdgeConstantVectors_HYPRE()
2076 PetscCall(VecHYPRE_IJVectorCreate(zzo->map, &jac->constants[2])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2077 PetscCall(VecHYPRE_IJVectorCopy(zzo, jac->constants[2])); in PCHYPRESetEdgeConstantVectors_HYPRE()
2078 jac->dim++; in PCHYPRESetEdgeConstantVectors_HYPRE()
2117 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPREAMSSetInteriorNodes_HYPRE() local
2120 PetscCall(VecHYPRE_IJVectorDestroy(&jac->interior)); in PCHYPREAMSSetInteriorNodes_HYPRE()
2121 PetscCall(VecHYPRE_IJVectorCreate(interior->map, &jac->interior)); in PCHYPREAMSSetInteriorNodes_HYPRE()
2122 PetscCall(VecHYPRE_IJVectorCopy(interior, jac->interior)); in PCHYPREAMSSetInteriorNodes_HYPRE()
2123 jac->ams_beta_is_zero_part = PETSC_TRUE; in PCHYPREAMSSetInteriorNodes_HYPRE()
2155 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetCoordinates_HYPRE() local
2161 PetscCall(VecHYPRE_IJVectorDestroy(&jac->coords[0])); in PCSetCoordinates_HYPRE()
2162 PetscCall(VecHYPRE_IJVectorDestroy(&jac->coords[1])); in PCSetCoordinates_HYPRE()
2163 PetscCall(VecHYPRE_IJVectorDestroy(&jac->coords[2])); in PCSetCoordinates_HYPRE()
2164 jac->dim = dim; in PCSetCoordinates_HYPRE()
2174 PetscCall(VecHYPRE_IJVectorCreate(tv->map, &jac->coords[i])); in PCSetCoordinates_HYPRE()
2178 PetscCall(VecHYPRE_IJVectorCopy(tv, jac->coords[i])); in PCSetCoordinates_HYPRE()
2186 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPREGetType_HYPRE() local
2189 *name = jac->hypre_type; in PCHYPREGetType_HYPRE()
2195 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCHYPRESetType_HYPRE() local
2199 if (jac->hypre_type) { in PCHYPRESetType_HYPRE()
2200 PetscCall(PetscStrcmp(jac->hypre_type, name, &flag)); in PCHYPRESetType_HYPRE()
2205 PetscCall(PetscFree(jac->hypre_type)); in PCHYPRESetType_HYPRE()
2206 PetscCall(PetscStrallocpy(name, &jac->hypre_type)); in PCHYPRESetType_HYPRE()
2208 jac->maxiter = PETSC_DEFAULT; in PCHYPRESetType_HYPRE()
2209 jac->tol = PETSC_DEFAULT; in PCHYPRESetType_HYPRE()
2210 jac->printstatistics = PetscLogPrintInfo; in PCHYPRESetType_HYPRE()
2212 PetscCall(PetscStrcmp("ilu", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2214 PetscCall(PetscCommGetComm(PetscObjectComm((PetscObject)pc), &jac->comm_hypre)); in PCHYPRESetType_HYPRE()
2215 PetscCallHYPRE(HYPRE_ILUCreate(&jac->hsolver)); in PCHYPRESetType_HYPRE()
2218 jac->destroy = HYPRE_ILUDestroy; in PCHYPRESetType_HYPRE()
2219 jac->setup = HYPRE_ILUSetup; in PCHYPRESetType_HYPRE()
2220 jac->solve = HYPRE_ILUSolve; in PCHYPRESetType_HYPRE()
2221 jac->factorrowsize = PETSC_DEFAULT; in PCHYPRESetType_HYPRE()
2225 PetscCall(PetscStrcmp("pilut", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2227 PetscCall(PetscCommGetComm(PetscObjectComm((PetscObject)pc), &jac->comm_hypre)); in PCHYPRESetType_HYPRE()
2228 PetscCallHYPRE(HYPRE_ParCSRPilutCreate(jac->comm_hypre, &jac->hsolver)); in PCHYPRESetType_HYPRE()
2231 jac->destroy = HYPRE_ParCSRPilutDestroy; in PCHYPRESetType_HYPRE()
2232 jac->setup = HYPRE_ParCSRPilutSetup; in PCHYPRESetType_HYPRE()
2233 jac->solve = HYPRE_ParCSRPilutSolve; in PCHYPRESetType_HYPRE()
2234 jac->factorrowsize = PETSC_DEFAULT; in PCHYPRESetType_HYPRE()
2237 PetscCall(PetscStrcmp("euclid", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2242 PetscCall(PetscCommGetComm(PetscObjectComm((PetscObject)pc), &jac->comm_hypre)); in PCHYPRESetType_HYPRE()
2243 PetscCallHYPRE(HYPRE_EuclidCreate(jac->comm_hypre, &jac->hsolver)); in PCHYPRESetType_HYPRE()
2246 jac->destroy = HYPRE_EuclidDestroy; in PCHYPRESetType_HYPRE()
2247 jac->setup = HYPRE_EuclidSetup; in PCHYPRESetType_HYPRE()
2248 jac->solve = HYPRE_EuclidSolve; in PCHYPRESetType_HYPRE()
2249 jac->factorrowsize = PETSC_DEFAULT; in PCHYPRESetType_HYPRE()
2250 jac->eu_level = PETSC_DEFAULT; /* default */ in PCHYPRESetType_HYPRE()
2253 PetscCall(PetscStrcmp("parasails", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2255 PetscCall(PetscCommGetComm(PetscObjectComm((PetscObject)pc), &jac->comm_hypre)); in PCHYPRESetType_HYPRE()
2256 PetscCallHYPRE(HYPRE_ParaSailsCreate(jac->comm_hypre, &jac->hsolver)); in PCHYPRESetType_HYPRE()
2259 jac->destroy = HYPRE_ParaSailsDestroy; in PCHYPRESetType_HYPRE()
2260 jac->setup = HYPRE_ParaSailsSetup; in PCHYPRESetType_HYPRE()
2261 jac->solve = HYPRE_ParaSailsSolve; in PCHYPRESetType_HYPRE()
2263 jac->nlevels = 1; in PCHYPRESetType_HYPRE()
2264 jac->threshold = .1; in PCHYPRESetType_HYPRE()
2265 jac->filter = .1; in PCHYPRESetType_HYPRE()
2266 jac->loadbal = 0; in PCHYPRESetType_HYPRE()
2267 if (PetscLogPrintInfo) jac->logging = (int)PETSC_TRUE; in PCHYPRESetType_HYPRE()
2268 else jac->logging = (int)PETSC_FALSE; in PCHYPRESetType_HYPRE()
2270 jac->ruse = (int)PETSC_FALSE; in PCHYPRESetType_HYPRE()
2271 jac->symt = 0; in PCHYPRESetType_HYPRE()
2272 PetscCallHYPRE(HYPRE_ParaSailsSetParams(jac->hsolver, jac->threshold, (HYPRE_Int)jac->nlevels)); in PCHYPRESetType_HYPRE()
2273 PetscCallHYPRE(HYPRE_ParaSailsSetFilter(jac->hsolver, jac->filter)); in PCHYPRESetType_HYPRE()
2274 PetscCallHYPRE(HYPRE_ParaSailsSetLoadbal(jac->hsolver, (HYPRE_Int)jac->loadbal)); in PCHYPRESetType_HYPRE()
2275 PetscCallHYPRE(HYPRE_ParaSailsSetLogging(jac->hsolver, (HYPRE_Int)jac->logging)); in PCHYPRESetType_HYPRE()
2276 PetscCallHYPRE(HYPRE_ParaSailsSetReuse(jac->hsolver, (HYPRE_Int)jac->ruse)); in PCHYPRESetType_HYPRE()
2277 PetscCallHYPRE(HYPRE_ParaSailsSetSym(jac->hsolver, (HYPRE_Int)jac->symt)); in PCHYPRESetType_HYPRE()
2280 PetscCall(PetscStrcmp("boomeramg", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2282 PetscCallHYPRE(HYPRE_BoomerAMGCreate(&jac->hsolver)); in PCHYPRESetType_HYPRE()
2291 jac->destroy = HYPRE_BoomerAMGDestroy; in PCHYPRESetType_HYPRE()
2292 jac->setup = HYPRE_BoomerAMGSetup; in PCHYPRESetType_HYPRE()
2293 jac->solve = HYPRE_BoomerAMGSolve; in PCHYPRESetType_HYPRE()
2294 jac->applyrichardson = PETSC_FALSE; in PCHYPRESetType_HYPRE()
2296 jac->cycletype = 1; in PCHYPRESetType_HYPRE()
2297 jac->maxlevels = 25; in PCHYPRESetType_HYPRE()
2298 jac->maxiter = 1; in PCHYPRESetType_HYPRE()
2299jac->tol = 0.0; /* tolerance of zero indicates use as preconditioner (suppresses conve… in PCHYPRESetType_HYPRE()
2300 jac->truncfactor = 0.0; in PCHYPRESetType_HYPRE()
2301 jac->strongthreshold = .25; in PCHYPRESetType_HYPRE()
2302 jac->maxrowsum = .9; in PCHYPRESetType_HYPRE()
2303 jac->measuretype = 0; in PCHYPRESetType_HYPRE()
2304 jac->gridsweeps[0] = jac->gridsweeps[1] = jac->gridsweeps[2] = 1; in PCHYPRESetType_HYPRE()
2305 jac->smoothtype = -1; /* Not set by default */ in PCHYPRESetType_HYPRE()
2306 jac->smoothnumlevels = 25; in PCHYPRESetType_HYPRE()
2307 jac->eu_level = 0; in PCHYPRESetType_HYPRE()
2308 jac->eu_droptolerance = 0; in PCHYPRESetType_HYPRE()
2309 jac->eu_bj = 0; in PCHYPRESetType_HYPRE()
2310 jac->relaxweight = 1.0; in PCHYPRESetType_HYPRE()
2311 jac->outerrelaxweight = 1.0; in PCHYPRESetType_HYPRE()
2312 jac->Rtype = 0; in PCHYPRESetType_HYPRE()
2313 jac->Rstrongthreshold = 0.25; in PCHYPRESetType_HYPRE()
2314 jac->Rfilterthreshold = 0.0; in PCHYPRESetType_HYPRE()
2315 jac->Adroptype = -1; in PCHYPRESetType_HYPRE()
2316 jac->Adroptol = 0.0; in PCHYPRESetType_HYPRE()
2317 jac->agg_nl = 0; in PCHYPRESetType_HYPRE()
2318 jac->pmax = 0; in PCHYPRESetType_HYPRE()
2319 jac->truncfactor = 0.0; in PCHYPRESetType_HYPRE()
2320 jac->agg_num_paths = 1; in PCHYPRESetType_HYPRE()
2321 jac->maxc = 9; in PCHYPRESetType_HYPRE()
2322 jac->minc = 1; in PCHYPRESetType_HYPRE()
2323 jac->nodal_coarsening = 0; in PCHYPRESetType_HYPRE()
2324 jac->nodal_coarsening_diag = 0; in PCHYPRESetType_HYPRE()
2325 jac->vec_interp_variant = 0; in PCHYPRESetType_HYPRE()
2326 jac->vec_interp_qmax = 0; in PCHYPRESetType_HYPRE()
2327 jac->vec_interp_smooth = PETSC_FALSE; in PCHYPRESetType_HYPRE()
2328 jac->interp_refine = 0; in PCHYPRESetType_HYPRE()
2329 jac->nodal_relax = PETSC_FALSE; in PCHYPRESetType_HYPRE()
2330 jac->nodal_relax_levels = 1; in PCHYPRESetType_HYPRE()
2331 jac->rap2 = 0; in PCHYPRESetType_HYPRE()
2332 PetscObjectParameterSetDefault(jac, relaxtype[2], 9); /* G.E. */ in PCHYPRESetType_HYPRE()
2338 PetscObjectParameterSetDefault(jac, relaxorder, PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2339 PetscObjectParameterSetDefault(jac, coarsentype, PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2340 PetscObjectParameterSetDefault(jac, interptype, PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2341 PetscObjectParameterSetDefault(jac, relaxtype[0], PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2342 PetscObjectParameterSetDefault(jac, relaxtype[1], PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2344 PetscObjectParameterSetDefault(jac, spgemm_type, "not yet set"); in PCHYPRESetType_HYPRE()
2347 PetscObjectParameterSetDefault(jac, keeptranspose, PETSC_BOOL3_UNKNOWN); in PCHYPRESetType_HYPRE()
2348 PetscObjectParameterSetDefault(jac, mod_rap2, PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2350 PetscObjectParameterSetDefault(jac, agg_interptype, PETSC_DECIDE); in PCHYPRESetType_HYPRE()
2353 PetscCall(PetscStrcmp("ams", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2355 PetscCallHYPRE(HYPRE_AMSCreate(&jac->hsolver)); in PCHYPRESetType_HYPRE()
2358 jac->destroy = HYPRE_AMSDestroy; in PCHYPRESetType_HYPRE()
2359 jac->setup = HYPRE_AMSSetup; in PCHYPRESetType_HYPRE()
2360 jac->solve = HYPRE_AMSSolve; in PCHYPRESetType_HYPRE()
2361 jac->coords[0] = NULL; in PCHYPRESetType_HYPRE()
2362 jac->coords[1] = NULL; in PCHYPRESetType_HYPRE()
2363 jac->coords[2] = NULL; in PCHYPRESetType_HYPRE()
2364 jac->interior = NULL; in PCHYPRESetType_HYPRE()
2366 jac->as_print = 0; in PCHYPRESetType_HYPRE()
2367 jac->as_max_iter = 1; /* used as a preconditioner */ in PCHYPRESetType_HYPRE()
2368 jac->as_tol = 0.; /* used as a preconditioner */ in PCHYPRESetType_HYPRE()
2369 jac->ams_cycle_type = 13; in PCHYPRESetType_HYPRE()
2371 jac->as_relax_type = 2; in PCHYPRESetType_HYPRE()
2372 jac->as_relax_times = 1; in PCHYPRESetType_HYPRE()
2373 jac->as_relax_weight = 1.0; in PCHYPRESetType_HYPRE()
2374 jac->as_omega = 1.0; in PCHYPRESetType_HYPRE()
2376 jac->as_amg_alpha_opts[0] = 10; in PCHYPRESetType_HYPRE()
2377 jac->as_amg_alpha_opts[1] = 1; in PCHYPRESetType_HYPRE()
2378 jac->as_amg_alpha_opts[2] = 6; in PCHYPRESetType_HYPRE()
2379 jac->as_amg_alpha_opts[3] = 6; in PCHYPRESetType_HYPRE()
2380 jac->as_amg_alpha_opts[4] = 4; in PCHYPRESetType_HYPRE()
2381 jac->as_amg_alpha_theta = 0.25; in PCHYPRESetType_HYPRE()
2383 jac->as_amg_beta_opts[0] = 10; in PCHYPRESetType_HYPRE()
2384 jac->as_amg_beta_opts[1] = 1; in PCHYPRESetType_HYPRE()
2385 jac->as_amg_beta_opts[2] = 6; in PCHYPRESetType_HYPRE()
2386 jac->as_amg_beta_opts[3] = 6; in PCHYPRESetType_HYPRE()
2387 jac->as_amg_beta_opts[4] = 4; in PCHYPRESetType_HYPRE()
2388 jac->as_amg_beta_theta = 0.25; in PCHYPRESetType_HYPRE()
2389 PetscCallHYPRE(HYPRE_AMSSetPrintLevel(jac->hsolver, (HYPRE_Int)jac->as_print)); in PCHYPRESetType_HYPRE()
2390 PetscCallHYPRE(HYPRE_AMSSetMaxIter(jac->hsolver, (HYPRE_Int)jac->as_max_iter)); in PCHYPRESetType_HYPRE()
2391 PetscCallHYPRE(HYPRE_AMSSetCycleType(jac->hsolver, (HYPRE_Int)jac->ams_cycle_type)); in PCHYPRESetType_HYPRE()
2392 PetscCallHYPRE(HYPRE_AMSSetTol(jac->hsolver, jac->as_tol)); in PCHYPRESetType_HYPRE()
2393 …E_AMSSetSmoothingOptions(jac->hsolver, (HYPRE_Int)jac->as_relax_type, (HYPRE_Int)jac->as_relax_tim… in PCHYPRESetType_HYPRE()
2394 …PetscCallHYPRE(HYPRE_AMSSetAlphaAMGOptions(jac->hsolver, (HYPRE_Int)jac->as_amg_alpha_opts[0], … in PCHYPRESetType_HYPRE()
2395 … (HYPRE_Int)jac->as_amg_alpha_opts[1], /* AMG agg_levels */ in PCHYPRESetType_HYPRE()
2396 … (HYPRE_Int)jac->as_amg_alpha_opts[2], /* AMG relax_type */ in PCHYPRESetType_HYPRE()
2397jac->as_amg_alpha_theta, (HYPRE_Int)jac->as_amg_alpha_opts[3], /* AMG interp_type */ in PCHYPRESetType_HYPRE()
2398 … (HYPRE_Int)jac->as_amg_alpha_opts[4])); /* AMG Pmax */ in PCHYPRESetType_HYPRE()
2399 …PetscCallHYPRE(HYPRE_AMSSetBetaAMGOptions(jac->hsolver, (HYPRE_Int)jac->as_amg_beta_opts[0], … in PCHYPRESetType_HYPRE()
2400 … (HYPRE_Int)jac->as_amg_beta_opts[1], /* AMG agg_levels */ in PCHYPRESetType_HYPRE()
2401 … (HYPRE_Int)jac->as_amg_beta_opts[2], /* AMG relax_type */ in PCHYPRESetType_HYPRE()
2402jac->as_amg_beta_theta, (HYPRE_Int)jac->as_amg_beta_opts[3], /* AMG interp_type */ in PCHYPRESetType_HYPRE()
2403 … (HYPRE_Int)jac->as_amg_beta_opts[4])); /* AMG Pmax */ in PCHYPRESetType_HYPRE()
2405 jac->ams_beta_is_zero = PETSC_FALSE; in PCHYPRESetType_HYPRE()
2406 jac->ams_beta_is_zero_part = PETSC_FALSE; in PCHYPRESetType_HYPRE()
2409 PetscCall(PetscStrcmp("ads", jac->hypre_type, &flag)); in PCHYPRESetType_HYPRE()
2411 PetscCallHYPRE(HYPRE_ADSCreate(&jac->hsolver)); in PCHYPRESetType_HYPRE()
2414 jac->destroy = HYPRE_ADSDestroy; in PCHYPRESetType_HYPRE()
2415 jac->setup = HYPRE_ADSSetup; in PCHYPRESetType_HYPRE()
2416 jac->solve = HYPRE_ADSSolve; in PCHYPRESetType_HYPRE()
2417 jac->coords[0] = NULL; in PCHYPRESetType_HYPRE()
2418 jac->coords[1] = NULL; in PCHYPRESetType_HYPRE()
2419 jac->coords[2] = NULL; in PCHYPRESetType_HYPRE()
2421 jac->as_print = 0; in PCHYPRESetType_HYPRE()
2422 jac->as_max_iter = 1; /* used as a preconditioner */ in PCHYPRESetType_HYPRE()
2423 jac->as_tol = 0.; /* used as a preconditioner */ in PCHYPRESetType_HYPRE()
2424 jac->ads_cycle_type = 13; in PCHYPRESetType_HYPRE()
2426 jac->as_relax_type = 2; in PCHYPRESetType_HYPRE()
2427 jac->as_relax_times = 1; in PCHYPRESetType_HYPRE()
2428 jac->as_relax_weight = 1.0; in PCHYPRESetType_HYPRE()
2429 jac->as_omega = 1.0; in PCHYPRESetType_HYPRE()
2431 jac->ams_cycle_type = 14; in PCHYPRESetType_HYPRE()
2432 jac->as_amg_alpha_opts[0] = 10; in PCHYPRESetType_HYPRE()
2433 jac->as_amg_alpha_opts[1] = 1; in PCHYPRESetType_HYPRE()
2434 jac->as_amg_alpha_opts[2] = 6; in PCHYPRESetType_HYPRE()
2435 jac->as_amg_alpha_opts[3] = 6; in PCHYPRESetType_HYPRE()
2436 jac->as_amg_alpha_opts[4] = 4; in PCHYPRESetType_HYPRE()
2437 jac->as_amg_alpha_theta = 0.25; in PCHYPRESetType_HYPRE()
2439 jac->as_amg_beta_opts[0] = 10; in PCHYPRESetType_HYPRE()
2440 jac->as_amg_beta_opts[1] = 1; in PCHYPRESetType_HYPRE()
2441 jac->as_amg_beta_opts[2] = 6; in PCHYPRESetType_HYPRE()
2442 jac->as_amg_beta_opts[3] = 6; in PCHYPRESetType_HYPRE()
2443 jac->as_amg_beta_opts[4] = 4; in PCHYPRESetType_HYPRE()
2444 jac->as_amg_beta_theta = 0.25; in PCHYPRESetType_HYPRE()
2445 PetscCallHYPRE(HYPRE_ADSSetPrintLevel(jac->hsolver, (HYPRE_Int)jac->as_print)); in PCHYPRESetType_HYPRE()
2446 PetscCallHYPRE(HYPRE_ADSSetMaxIter(jac->hsolver, (HYPRE_Int)jac->as_max_iter)); in PCHYPRESetType_HYPRE()
2447 PetscCallHYPRE(HYPRE_ADSSetCycleType(jac->hsolver, (HYPRE_Int)jac->ams_cycle_type)); in PCHYPRESetType_HYPRE()
2448 PetscCallHYPRE(HYPRE_ADSSetTol(jac->hsolver, jac->as_tol)); in PCHYPRESetType_HYPRE()
2449 …E_ADSSetSmoothingOptions(jac->hsolver, (HYPRE_Int)jac->as_relax_type, (HYPRE_Int)jac->as_relax_tim… in PCHYPRESetType_HYPRE()
2450 …PetscCallHYPRE(HYPRE_ADSSetAMSOptions(jac->hsolver, (HYPRE_Int)jac->ams_cycle_type, … in PCHYPRESetType_HYPRE()
2451 … (HYPRE_Int)jac->as_amg_alpha_opts[0], /* AMG coarsen type */ in PCHYPRESetType_HYPRE()
2452 … (HYPRE_Int)jac->as_amg_alpha_opts[1], /* AMG agg_levels */ in PCHYPRESetType_HYPRE()
2453 … (HYPRE_Int)jac->as_amg_alpha_opts[2], /* AMG relax_type */ in PCHYPRESetType_HYPRE()
2454jac->as_amg_alpha_theta, (HYPRE_Int)jac->as_amg_alpha_opts[3], /* AMG interp_type */ in PCHYPRESetType_HYPRE()
2455 … (HYPRE_Int)jac->as_amg_alpha_opts[4])); /* AMG Pmax */ in PCHYPRESetType_HYPRE()
2456 …PetscCallHYPRE(HYPRE_ADSSetAMGOptions(jac->hsolver, (HYPRE_Int)jac->as_amg_beta_opts[0], … in PCHYPRESetType_HYPRE()
2457 … (HYPRE_Int)jac->as_amg_beta_opts[1], /* AMG agg_levels */ in PCHYPRESetType_HYPRE()
2458 … (HYPRE_Int)jac->as_amg_beta_opts[2], /* AMG relax_type */ in PCHYPRESetType_HYPRE()
2459jac->as_amg_beta_theta, (HYPRE_Int)jac->as_amg_beta_opts[3], /* AMG interp_type */ in PCHYPRESetType_HYPRE()
2460 … (HYPRE_Int)jac->as_amg_beta_opts[4])); /* AMG Pmax */ in PCHYPRESetType_HYPRE()
2463 PetscCall(PetscFree(jac->hypre_type)); in PCHYPRESetType_HYPRE()
2465 jac->hypre_type = NULL; in PCHYPRESetType_HYPRE()
2478 PC_HYPRE *jac = (PC_HYPRE *)pc->data; in PCSetFromOptions_HYPRE() local
2487 if (!jac->hypre_type) PetscCall(PCHYPRESetType_HYPRE(pc, "boomeramg")); in PCSetFromOptions_HYPRE()
2684 PC_HYPRE *jac; in PCCreate_HYPRE() local
2687 PetscCall(PetscNew(&jac)); in PCCreate_HYPRE()
2689 pc->data = jac; in PCCreate_HYPRE()
2695 jac->hypre_type = NULL; in PCCreate_HYPRE()
2696 jac->comm_hypre = MPI_COMM_NULL; in PCCreate_HYPRE()
2838 PC_PFMG *jac = (PC_PFMG *)pc->data; in PCApplyRichardson_PFMG() local
2843 PetscCallHYPRE(HYPRE_StructPFMGSetMaxIter(jac->hsolver, (HYPRE_Int)(its * jac->its))); in PCApplyRichardson_PFMG()
2844 PetscCallHYPRE(HYPRE_StructPFMGSetTol(jac->hsolver, rtol)); in PCApplyRichardson_PFMG()
2847 PetscCallHYPRE(HYPRE_StructPFMGGetNumIterations(jac->hsolver, &oits)); in PCApplyRichardson_PFMG()
2851 PetscCallHYPRE(HYPRE_StructPFMGSetTol(jac->hsolver, jac->tol)); in PCApplyRichardson_PFMG()
2852 PetscCallHYPRE(HYPRE_StructPFMGSetMaxIter(jac->hsolver, (HYPRE_Int)jac->its)); in PCApplyRichardson_PFMG()
3092 PC_SysPFMG *jac = (PC_SysPFMG *)pc->data; in PCApplyRichardson_SysPFMG() local
3097 PetscCallHYPRE(HYPRE_SStructSysPFMGSetMaxIter(jac->ss_solver, (HYPRE_Int)(its * jac->its))); in PCApplyRichardson_SysPFMG()
3098 PetscCallHYPRE(HYPRE_SStructSysPFMGSetTol(jac->ss_solver, rtol)); in PCApplyRichardson_SysPFMG()
3100 PetscCallHYPRE(HYPRE_SStructSysPFMGGetNumIterations(jac->ss_solver, &oits)); in PCApplyRichardson_SysPFMG()
3104 PetscCallHYPRE(HYPRE_SStructSysPFMGSetTol(jac->ss_solver, jac->tol)); in PCApplyRichardson_SysPFMG()
3105 PetscCallHYPRE(HYPRE_SStructSysPFMGSetMaxIter(jac->ss_solver, (HYPRE_Int)jac->its)); in PCApplyRichardson_SysPFMG()
3273 PC_SMG *jac = (PC_SMG *)pc->data; in PCApplyRichardson_SMG() local
3278 PetscCallHYPRE(HYPRE_StructSMGSetMaxIter(jac->hsolver, (HYPRE_Int)(its * jac->its))); in PCApplyRichardson_SMG()
3279 PetscCallHYPRE(HYPRE_StructSMGSetTol(jac->hsolver, rtol)); in PCApplyRichardson_SMG()
3282 PetscCallHYPRE(HYPRE_StructSMGGetNumIterations(jac->hsolver, &oits)); in PCApplyRichardson_SMG()
3286 PetscCallHYPRE(HYPRE_StructSMGSetTol(jac->hsolver, jac->tol)); in PCApplyRichardson_SMG()
3287 PetscCallHYPRE(HYPRE_StructSMGSetMaxIter(jac->hsolver, (HYPRE_Int)jac->its)); in PCApplyRichardson_SMG()