Lines Matching refs:B
12 Mat B; member
63 PetscErrorCode PCLMVMSetMatLMVM(PC pc, Mat B) in PCLMVMSetMatLMVM() argument
70 PetscValidHeaderSpecific(B, MAT_CLASSID, 2); in PCLMVMSetMatLMVM()
73 PetscCall(PetscObjectBaseTypeCompare((PetscObject)B, MATLMVM, &same)); in PCLMVMSetMatLMVM()
76 PetscCall(PetscObjectReference((PetscObject)B)); in PCLMVMSetMatLMVM()
77 PetscCall(MatDestroy(&ctx->B)); in PCLMVMSetMatLMVM()
78 ctx->B = B; in PCLMVMSetMatLMVM()
95 PetscErrorCode PCLMVMGetMatLMVM(PC pc, Mat *B) in PCLMVMGetMatLMVM() argument
105 if (!ctx->B) { in PCLMVMGetMatLMVM()
111 if (same) *B = J; in PCLMVMGetMatLMVM()
116 PetscCall(MatCreate(PetscObjectComm((PetscObject)pc), &ctx->B)); in PCLMVMGetMatLMVM()
117 PetscCall(MatSetOptionsPrefix(ctx->B, prefix)); in PCLMVMGetMatLMVM()
118 PetscCall(MatAppendOptionsPrefix(ctx->B, "pc_lmvm_")); in PCLMVMGetMatLMVM()
119 PetscCall(MatSetType(ctx->B, MATLMVMBFGS)); in PCLMVMGetMatLMVM()
120 PetscCall(PetscObjectIncrementTabLevel((PetscObject)ctx->B, (PetscObject)pc, 1)); in PCLMVMGetMatLMVM()
121 *B = ctx->B; in PCLMVMGetMatLMVM()
123 } else *B = ctx->B; in PCLMVMGetMatLMVM()
186 Mat B = ctx->B ? ctx->B : (pc->useAmat ? pc->mat : pc->pmat); in PCApply_LMVM() local
190 if (!ctx->xwork) PetscCall(MatCreateVecs(B, &ctx->xwork, &ctx->ywork)); in PCApply_LMVM()
198 PetscCall(MatSolve(B, Bx, By)); in PCApply_LMVM()
221 Mat B; in PCSetUp_LMVM() local
225 PetscCall(PCLMVMGetMatLMVM(pc, &B)); in PCSetUp_LMVM()
226 PetscCall(MatLMVMIsAllocated(B, &allocated)); in PCSetUp_LMVM()
233 PetscCall(MatSetSizes(B, n, n, N, N)); in PCSetUp_LMVM()
234 PetscCall(MatLMVMAllocate(B, t1, t2)); in PCSetUp_LMVM()
239 if (B == ctx->B && ctx->setfromoptionscalled) PetscCall(MatSetFromOptions(ctx->B)); in PCSetUp_LMVM()
251 if (isascii && ctx->B && ctx->B->assembled) { in PCView_LMVM()
253 PetscCall(MatView(ctx->B, viewer)); in PCView_LMVM()
274 …if (ctx->X && ctx->B) { /* Perform update only if requested. Otherwise we assume the user, e.g. TA… in PCPreSolve_LMVM()
278 if (ctx->Xstate != Xstate) PetscCall(MatLMVMUpdate(ctx->B, ctx->X, F)); in PCPreSolve_LMVM()
293 PetscCall(MatDestroy(&ctx->B)); in PCDestroy_LMVM()