Lines Matching refs:shell_ctx

71   NullSpaceCorrection_ctx shell_ctx;  in PCBDDCNullSpaceAssembleCorrection()  local
91 PetscCall(PetscNew(&shell_ctx)); in PCBDDCNullSpaceAssembleCorrection()
92 shell_ctx->scale = 1.0; in PCBDDCNullSpaceAssembleCorrection()
94 shell_ctx->basis_mat = dmat; in PCBDDCNullSpaceAssembleCorrection()
96 shell_ctx->evapply = PC_BDDC_ApproxApply[pcbddc->current_level]; in PCBDDCNullSpaceAssembleCorrection()
98 PetscCall(MatIsSymmetric(local_mat, 0.0, &shell_ctx->symm)); in PCBDDCNullSpaceAssembleCorrection()
102 …if (iscusp) PetscCall(MatConvert(shell_ctx->basis_mat, MATSEQDENSECUDA, MAT_INPLACE_MATRIX, &shell… in PCBDDCNullSpaceAssembleCorrection()
103 …PetscCall(MatMatMult(local_mat, shell_ctx->basis_mat, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &Kbasis… in PCBDDCNullSpaceAssembleCorrection()
104 …PetscCall(MatTransposeMatMult(Kbasis_mat, shell_ctx->basis_mat, MAT_INITIAL_MATRIX, PETSC_DETERMIN… in PCBDDCNullSpaceAssembleCorrection()
106 PetscCall(MatBindToCPU(shell_ctx->inv_smat, PETSC_TRUE)); in PCBDDCNullSpaceAssembleCorrection()
107 PetscCall(MatFindZeroRows(shell_ctx->inv_smat, &zerorows)); in PCBDDCNullSpaceAssembleCorrection()
114 …for (i = 0; i < nz; i++) PetscCall(MatSetValue(shell_ctx->inv_smat, idxs[i], idxs[i], 1.0, INSERT_… in PCBDDCNullSpaceAssembleCorrection()
116 PetscCall(MatAssemblyBegin(shell_ctx->inv_smat, MAT_FINAL_ASSEMBLY)); in PCBDDCNullSpaceAssembleCorrection()
117 PetscCall(MatAssemblyEnd(shell_ctx->inv_smat, MAT_FINAL_ASSEMBLY)); in PCBDDCNullSpaceAssembleCorrection()
119 PetscCall(MatLUFactor(shell_ctx->inv_smat, NULL, NULL, NULL)); in PCBDDCNullSpaceAssembleCorrection()
120 PetscCall(MatSeqDenseInvertFactors_Private(shell_ctx->inv_smat)); in PCBDDCNullSpaceAssembleCorrection()
127 …for (i = 0; i < nz; i++) PetscCall(MatSetValue(shell_ctx->inv_smat, idxs[i], idxs[i], 0.0, INSERT_… in PCBDDCNullSpaceAssembleCorrection()
129 PetscCall(MatAssemblyBegin(shell_ctx->inv_smat, MAT_FINAL_ASSEMBLY)); in PCBDDCNullSpaceAssembleCorrection()
130 PetscCall(MatAssemblyEnd(shell_ctx->inv_smat, MAT_FINAL_ASSEMBLY)); in PCBDDCNullSpaceAssembleCorrection()
135 PetscCall(MatCreateVecs(shell_ctx->inv_smat, &v, NULL)); in PCBDDCNullSpaceAssembleCorrection()
136 PetscCall(KSPCreateVecs(local_ksp, 1, &shell_ctx->fw, 0, NULL)); in PCBDDCNullSpaceAssembleCorrection()
137 PetscCall(VecDuplicateVecs(v, 3, &shell_ctx->sw)); in PCBDDCNullSpaceAssembleCorrection()
141 PetscCall(KSPSetPreSolve(local_ksp, PCBDDCNullSpaceCorrPreSolve, shell_ctx)); in PCBDDCNullSpaceAssembleCorrection()
142 PetscCall(KSPSetPostSolve(local_ksp, PCBDDCNullSpaceCorrPostSolve, shell_ctx)); in PCBDDCNullSpaceAssembleCorrection()
143 …ectContainerCompose((PetscObject)local_ksp, "_PCBDDC_Null_PrePost_ctx", shell_ctx, PCBDDCNullSpace… in PCBDDCNullSpaceAssembleCorrection()
155 PetscCall(VecDuplicate(shell_ctx->fw[0], &work1)); in PCBDDCNullSpaceAssembleCorrection()
156 PetscCall(VecDuplicate(shell_ctx->fw[0], &work2)); in PCBDDCNullSpaceAssembleCorrection()
168 PetscCall(KSPSetPreSolve(check_ksp, PCBDDCNullSpaceCorrPreSolve, shell_ctx)); in PCBDDCNullSpaceAssembleCorrection()
169 PetscCall(KSPSetPostSolve(check_ksp, PCBDDCNullSpaceCorrPostSolve, shell_ctx)); in PCBDDCNullSpaceAssembleCorrection()
193 if (needscaling) shell_ctx->scale = 1.0 / lambda_max; in PCBDDCNullSpaceAssembleCorrection()
217 …Int_FMT ", eigs %1.6e %1.6e)\n", PetscGlobalRank, (double)PetscRealPart(shell_ctx->scale), (double… in PCBDDCNullSpaceAssembleCorrection()
219 …Int_FMT ", eigs %1.6e %1.6e)\n", PetscGlobalRank, (double)PetscRealPart(shell_ctx->scale), (double… in PCBDDCNullSpaceAssembleCorrection()
234 PetscCall(VecDuplicate(shell_ctx->fw[0], &work1)); in PCBDDCNullSpaceAssembleCorrection()
235 PetscCall(VecDuplicate(shell_ctx->fw[0], &work2)); in PCBDDCNullSpaceAssembleCorrection()
236 PetscCall(VecDuplicate(shell_ctx->fw[0], &work3)); in PCBDDCNullSpaceAssembleCorrection()
237 PetscCall(VecSetRandom(shell_ctx->sw[0], NULL)); in PCBDDCNullSpaceAssembleCorrection()
238 PetscCall(MatMult(shell_ctx->basis_mat, shell_ctx->sw[0], work1)); in PCBDDCNullSpaceAssembleCorrection()