Lines Matching refs:pcis
42 PC_IS *pcis = (PC_IS *)pc->data; in PCApply_NN() local
44 Vec w = pcis->vec1_global; in PCApply_NN()
52 PetscCall(VecScatterBegin(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_NN()
53 PetscCall(VecScatterEnd(pcis->global_to_D, r, pcis->vec1_D, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_NN()
54 PetscCall(KSPSolve(pcis->ksp_D, pcis->vec1_D, pcis->vec2_D)); in PCApply_NN()
60 PetscCall(MatMult(pcis->A_BI, pcis->vec2_D, pcis->vec1_B)); in PCApply_NN()
61 PetscCall(VecScale(pcis->vec1_B, m_one)); in PCApply_NN()
63 PetscCall(VecScatterBegin(pcis->global_to_B, pcis->vec1_B, w, ADD_VALUES, SCATTER_REVERSE)); in PCApply_NN()
64 PetscCall(VecScatterEnd(pcis->global_to_B, pcis->vec1_B, w, ADD_VALUES, SCATTER_REVERSE)); in PCApply_NN()
69 …Preconditioner(pc, w, z, pcis->work_N, pcis->vec1_B, pcis->vec2_B, pcis->vec3_B, pcis->vec1_D, pci… in PCApply_NN()
75 PetscCall(VecScatterBegin(pcis->global_to_B, z, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_NN()
76 PetscCall(VecScatterEnd(pcis->global_to_B, z, pcis->vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCApply_NN()
77 PetscCall(MatMult(pcis->A_IB, pcis->vec1_B, pcis->vec1_D)); in PCApply_NN()
84 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec2_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_NN()
85 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec2_D, z, INSERT_VALUES, SCATTER_REVERSE)); in PCApply_NN()
86 PetscCall(KSPSolve(pcis->ksp_D, pcis->vec1_D, pcis->vec2_D)); in PCApply_NN()
87 PetscCall(VecScale(pcis->vec2_D, m_one)); in PCApply_NN()
88 PetscCall(VecScatterBegin(pcis->global_to_D, pcis->vec2_D, z, ADD_VALUES, SCATTER_REVERSE)); in PCApply_NN()
89 PetscCall(VecScatterEnd(pcis->global_to_D, pcis->vec2_D, z, ADD_VALUES, SCATTER_REVERSE)); in PCApply_NN()
205 PC_IS *pcis = (PC_IS *)pc->data; in PCNNCreateCoarseMatrix() local
207 PetscInt *neigh = pcis->neigh; in PCNNCreateCoarseMatrix()
208 PetscInt *n_shared = pcis->n_shared; in PCNNCreateCoarseMatrix()
209 PetscInt **shared = pcis->shared; in PCNNCreateCoarseMatrix()
214 PetscCall(PetscMPIIntCast(pcis->n_neigh, &n_neigh)); in PCNNCreateCoarseMatrix()
237 PetscCall(PCISScatterArrayNToVecB(pc, pcis->work_N, pcis->D, INSERT_VALUES, SCATTER_REVERSE)); in PCNNCreateCoarseMatrix()
239 for (j = 0; j < n_shared[i]; j++) DZ_OUT[i][j] = pcis->work_N[shared[i][j]]; in PCNNCreateCoarseMatrix()
259 for (j = 0; j < n_shared[0]; j++) DZ_IN[0][j] = pcis->work_N[shared[0][j]]; in PCNNCreateCoarseMatrix()
265 …ToChunk(pc, n_shared[0], shared[0], DZ_IN[0], pcis->work_N, pcis->vec1_B, pcis->vec2_B, pcis->vec1… in PCNNCreateCoarseMatrix()
276 …for (k = 0; k < n_shared[ind]; k++) mat[ind * n_neigh + 0] += DZ_IN[ind][k] * pcis->work_N[shared[… in PCNNCreateCoarseMatrix()
281 …ToChunk(pc, n_shared[j], shared[j], DZ_IN[j], pcis->work_N, pcis->vec1_B, pcis->vec2_B, pcis->vec1… in PCNNCreateCoarseMatrix()
284 …for (k = 0; k < n_shared[i]; k++) mat[i * n_neigh + j] += DZ_IN[i][k] * pcis->work_N[shared[i][k]]; in PCNNCreateCoarseMatrix()
329 …if (pcis->pure_neumann) { /* does NOT zero the row; create an empty index set. The reason is that … in PCNNCreateCoarseMatrix()
376 pcnn->factor_coarse_rhs = (pcis->pure_neumann) ? 1.0 : 0.0; in PCNNCreateCoarseMatrix()
402 PC_IS *pcis = (PC_IS *)pc->data; in PCNNApplySchurToChunk() local
405 PetscCall(PetscArrayzero(array_N, pcis->n)); in PCNNApplySchurToChunk()
436 PC_IS *pcis = (PC_IS *)pc->data; in PCNNApplyInterfacePreconditioner() local
455 PetscCall(VecScatterBegin(pcis->global_to_B, z, vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNApplyInterfacePreconditioner()
456 PetscCall(VecScatterEnd(pcis->global_to_B, z, vec1_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNApplyInterfacePreconditioner()
457 PetscCall(VecPointwiseMult(vec2_B, pcis->D, vec1_B)); in PCNNApplyInterfacePreconditioner()
471 PetscCall(VecPointwiseMult(vec2_B, pcis->D, vec1_B)); in PCNNApplyInterfacePreconditioner()
473 PetscCall(VecScatterBegin(pcis->global_to_B, vec2_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNApplyInterfacePreconditioner()
474 PetscCall(VecScatterEnd(pcis->global_to_B, vec2_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNApplyInterfacePreconditioner()
508 PC_IS *pcis = (PC_IS *)pc->data; in PCNNBalancing() local
514 PetscCall(VecPointwiseMult(vec1_B, pcis->D, u)); in PCNNBalancing()
516 PetscCall(VecScatterBegin(pcis->global_to_B, vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
517 PetscCall(VecScatterEnd(pcis->global_to_B, vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
518 PetscCall(VecScatterBegin(pcis->global_to_B, z, vec2_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNBalancing()
519 PetscCall(VecScatterEnd(pcis->global_to_B, z, vec2_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNBalancing()
523 PetscCall(VecScatterBegin(pcis->global_to_B, vec3_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
524 PetscCall(VecScatterEnd(pcis->global_to_B, vec3_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
528 PetscCall(VecScatterBegin(pcis->global_to_B, z, vec2_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNBalancing()
529 PetscCall(VecScatterEnd(pcis->global_to_B, z, vec2_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNBalancing()
531 …for (k = 0, value = 0.0; k < pcis->n_shared[0]; k++) value += pcnn->DZ_IN[0][k] * work_N[pcis->sha… in PCNNBalancing()
547 for (k = 0; k < pcis->n_shared[0]; k++) work_N[pcis->shared[0][k]] = *lambda * pcnn->DZ_IN[0][k]; in PCNNBalancing()
551 PetscCall(VecScatterBegin(pcis->global_to_B, vec2_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
552 PetscCall(VecScatterEnd(pcis->global_to_B, vec2_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
554 PetscCall(VecScatterBegin(pcis->global_to_B, z, vec2_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNBalancing()
555 PetscCall(VecScatterEnd(pcis->global_to_B, z, vec2_B, INSERT_VALUES, SCATTER_FORWARD)); in PCNNBalancing()
559 PetscCall(VecScatterBegin(pcis->global_to_B, vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()
560 PetscCall(VecScatterEnd(pcis->global_to_B, vec1_B, z, ADD_VALUES, SCATTER_REVERSE)); in PCNNBalancing()