Lines Matching refs:hmg

94   PC_HMG          *hmg = (PC_HMG *)mg->innerctx;  in PCSetUp_HMG()  local
106 if (hmg->reuseinterp) { in PCSetUp_HMG()
122 if (!hmg->innerpc) { in PCSetUp_HMG()
123 PetscCall(PCCreate(comm, &hmg->innerpc)); in PCSetUp_HMG()
125 if (!hmg->innerpctype) { in PCSetUp_HMG()
128 PetscCall(PetscStrallocpy(PCHYPRE, &hmg->innerpctype)); in PCSetUp_HMG()
130 PetscCall(PetscStrallocpy(PCGAMG, &hmg->innerpctype)); in PCSetUp_HMG()
133 PetscCall(PCSetType(hmg->innerpc, hmg->innerpctype)); in PCSetUp_HMG()
138 if (blocksize <= 1) hmg->subcoarsening = PETSC_FALSE; in PCSetUp_HMG()
140 if (hmg->subcoarsening) { in PCSetUp_HMG()
141 …PetscCall(PCHMGExtractSubMatrix_Private(PA, &submat, MAT_INITIAL_MATRIX, hmg->component, blocksize… in PCSetUp_HMG()
144 PetscCall(PCSetOperators(hmg->innerpc, PA, PA)); in PCSetUp_HMG()
145 if (hmg->subcoarsening) PetscCall(MatDestroy(&PA)); in PCSetUp_HMG()
147 PetscCall(PCSetUseAmat(hmg->innerpc, PETSC_FALSE)); in PCSetUp_HMG()
149 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)hmg->innerpc, prefix)); in PCSetUp_HMG()
150 PetscCall(PetscObjectAppendOptionsPrefix((PetscObject)hmg->innerpc, "hmg_inner_")); in PCSetUp_HMG()
151 PetscCall(PCSetFromOptions(hmg->innerpc)); in PCSetUp_HMG()
152 PetscCall(PCSetUp(hmg->innerpc)); in PCSetUp_HMG()
155 PetscCall(PCGetInterpolations(hmg->innerpc, &num_levels, &interpolations)); in PCSetUp_HMG()
157 if (!hmg->subcoarsening) PetscCall(PCGetCoarseOperators(hmg->innerpc, &num_levels, &operators)); in PCSetUp_HMG()
159 PetscCall(PCDestroy(&hmg->innerpc)); in PCSetUp_HMG()
160 hmg->innerpc = NULL; in PCSetUp_HMG()
166 if (hmg->subcoarsening) { in PCSetUp_HMG()
167 if (hmg->usematmaij) { in PCSetUp_HMG()
183 if ((level - 1) >= 0 && !hmg->subcoarsening) { in PCSetUp_HMG()
199 if (!hmg->subcoarsening) PetscCall(PetscFree(operators)); in PCSetUp_HMG()
201 PetscCall(PCMGSetGalerkin(pc, hmg->subcoarsening ? PC_MG_GALERKIN_PMAT : PC_MG_GALERKIN_NONE)); in PCSetUp_HMG()
214 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCDestroy_HMG() local
217 PetscCall(PCDestroy(&hmg->innerpc)); in PCDestroy_HMG()
218 PetscCall(PetscFree(hmg->innerpctype)); in PCDestroy_HMG()
219 PetscCall(PetscFree(hmg)); in PCDestroy_HMG()
233 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCView_HMG() local
239 …PetscCall(PetscViewerASCIIPrintf(viewer, " Reuse interpolation: %s\n", hmg->reuseinterp ? "true" :… in PCView_HMG()
240 …PetscCall(PetscViewerASCIIPrintf(viewer, " Use subspace coarsening: %s\n", hmg->subcoarsening ? "t… in PCView_HMG()
241 …PetscCall(PetscViewerASCIIPrintf(viewer, " Coarsening component: %" PetscInt_FMT " \n", hmg->compo… in PCView_HMG()
242 …PetscCall(PetscViewerASCIIPrintf(viewer, " Use MatMAIJ: %s \n", hmg->usematmaij ? "true" : "false"… in PCView_HMG()
243 PetscCall(PetscViewerASCIIPrintf(viewer, " Inner PC type: %s \n", hmg->innerpctype)); in PCView_HMG()
252 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCSetFromOptions_HMG() local
256 …hen matrix entries change a lot)", "PCHMGSetReuseInterpolation", hmg->reuseinterp, &hmg->reuseinte… in PCSetFromOptions_HMG()
257 …o compute the interpolations", "PCHMGSetUseSubspaceCoarsening", hmg->subcoarsening, &hmg->subcoars… in PCSetFromOptions_HMG()
258 …IJ store interpolation for saving memory", "PCHMGSetInnerPCType", hmg->usematmaij, &hmg->usematmai… in PCSetFromOptions_HMG()
259 …space-based coarsening algorithm", "PCHMGSetCoarseningComponent", hmg->component, &hmg->component,… in PCSetFromOptions_HMG()
267 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCHMGSetReuseInterpolation_HMG() local
270 hmg->reuseinterp = reuse; in PCHMGSetReuseInterpolation_HMG()
304 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCHMGSetUseSubspaceCoarsening_HMG() local
307 hmg->subcoarsening = subspace; in PCHMGSetUseSubspaceCoarsening_HMG()
338 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCHMGSetInnerPCType_HMG() local
341 PetscCall(PetscStrallocpy(type, &hmg->innerpctype)); in PCHMGSetInnerPCType_HMG()
373 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCHMGSetCoarseningComponent_HMG() local
376 hmg->component = component; in PCHMGSetCoarseningComponent_HMG()
410 PC_HMG *hmg = (PC_HMG *)mg->innerctx; in PCHMGUseMatMAIJ_HMG() local
413 hmg->usematmaij = usematmaij; in PCHMGUseMatMAIJ_HMG()
462 PC_HMG *hmg; in PCCreate_HMG() local
473 PetscCall(PetscNew(&hmg)); in PCCreate_HMG()
476 mg->innerctx = hmg; in PCCreate_HMG()
477 hmg->reuseinterp = PETSC_FALSE; in PCCreate_HMG()
478 hmg->subcoarsening = PETSC_FALSE; in PCCreate_HMG()
479 hmg->usematmaij = PETSC_TRUE; in PCCreate_HMG()
480 hmg->component = 0; in PCCreate_HMG()
481 hmg->innerpc = NULL; in PCCreate_HMG()