Lines Matching refs:op_apply_ctx

225   OperatorApplyContext op_apply_ctx;  in MatMult_Mass()  local
230 PetscCall(MatShellGetContext(A, &op_apply_ctx)); in MatMult_Mass()
233 …PetscCall(VecScatterBegin(op_apply_ctx->l_to_g, X, op_apply_ctx->X_loc, INSERT_VALUES, SCATTER_REV… in MatMult_Mass()
234 …PetscCall(VecScatterEnd(op_apply_ctx->l_to_g, X, op_apply_ctx->X_loc, INSERT_VALUES, SCATTER_REVER… in MatMult_Mass()
237 PetscCall(VecGetArrayReadAndMemType(op_apply_ctx->X_loc, (const PetscScalar **)&x, &x_mem_type)); in MatMult_Mass()
238 PetscCall(VecGetArrayAndMemType(op_apply_ctx->Y_loc, &y, &y_mem_type)); in MatMult_Mass()
239 CeedVectorSetArray(op_apply_ctx->x_ceed, MemTypeP2C(x_mem_type), CEED_USE_POINTER, x); in MatMult_Mass()
240 CeedVectorSetArray(op_apply_ctx->y_ceed, MemTypeP2C(y_mem_type), CEED_USE_POINTER, y); in MatMult_Mass()
243 …CeedOperatorApply(op_apply_ctx->op, op_apply_ctx->x_ceed, op_apply_ctx->y_ceed, CEED_REQUEST_IMMED… in MatMult_Mass()
246 CeedVectorTakeArray(op_apply_ctx->x_ceed, MemTypeP2C(x_mem_type), NULL); in MatMult_Mass()
247 CeedVectorTakeArray(op_apply_ctx->y_ceed, MemTypeP2C(y_mem_type), NULL); in MatMult_Mass()
248 PetscCall(VecRestoreArrayReadAndMemType(op_apply_ctx->X_loc, (const PetscScalar **)&x)); in MatMult_Mass()
249 PetscCall(VecRestoreArrayAndMemType(op_apply_ctx->Y_loc, &y)); in MatMult_Mass()
254 …PetscCall(VecScatterBegin(op_apply_ctx->l_to_g, op_apply_ctx->Y_loc, Y, ADD_VALUES, SCATTER_FORWAR… in MatMult_Mass()
255 …PetscCall(VecScatterEnd(op_apply_ctx->l_to_g, op_apply_ctx->Y_loc, Y, ADD_VALUES, SCATTER_FORWARD)… in MatMult_Mass()
262 OperatorApplyContext op_apply_ctx; in MatMult_Diff() local
267 PetscCall(MatShellGetContext(A, &op_apply_ctx)); in MatMult_Diff()
270 …PetscCall(VecScatterBegin(op_apply_ctx->l_to_g_0, X, op_apply_ctx->X_loc, INSERT_VALUES, SCATTER_R… in MatMult_Diff()
271 …PetscCall(VecScatterEnd(op_apply_ctx->l_to_g_0, X, op_apply_ctx->X_loc, INSERT_VALUES, SCATTER_REV… in MatMult_Diff()
274 PetscCall(VecGetArrayReadAndMemType(op_apply_ctx->X_loc, (const PetscScalar **)&x, &x_mem_type)); in MatMult_Diff()
275 PetscCall(VecGetArrayAndMemType(op_apply_ctx->Y_loc, &y, &y_mem_type)); in MatMult_Diff()
276 CeedVectorSetArray(op_apply_ctx->x_ceed, MemTypeP2C(x_mem_type), CEED_USE_POINTER, x); in MatMult_Diff()
277 CeedVectorSetArray(op_apply_ctx->y_ceed, MemTypeP2C(y_mem_type), CEED_USE_POINTER, y); in MatMult_Diff()
280 …CeedOperatorApply(op_apply_ctx->op, op_apply_ctx->x_ceed, op_apply_ctx->y_ceed, CEED_REQUEST_IMMED… in MatMult_Diff()
283 CeedVectorTakeArray(op_apply_ctx->x_ceed, MemTypeP2C(x_mem_type), NULL); in MatMult_Diff()
284 CeedVectorTakeArray(op_apply_ctx->y_ceed, MemTypeP2C(y_mem_type), NULL); in MatMult_Diff()
285 PetscCall(VecRestoreArrayReadAndMemType(op_apply_ctx->X_loc, (const PetscScalar **)&x)); in MatMult_Diff()
286 PetscCall(VecRestoreArrayAndMemType(op_apply_ctx->Y_loc, &y)); in MatMult_Diff()
290 PetscCall(VecScatterBegin(op_apply_ctx->g_to_g_D, X, Y, INSERT_VALUES, SCATTER_FORWARD)); in MatMult_Diff()
291 PetscCall(VecScatterEnd(op_apply_ctx->g_to_g_D, X, Y, INSERT_VALUES, SCATTER_FORWARD)); in MatMult_Diff()
292 …PetscCall(VecScatterBegin(op_apply_ctx->l_to_g_0, op_apply_ctx->Y_loc, Y, ADD_VALUES, SCATTER_FORW… in MatMult_Diff()
293 …PetscCall(VecScatterEnd(op_apply_ctx->l_to_g_0, op_apply_ctx->Y_loc, Y, ADD_VALUES, SCATTER_FORWAR… in MatMult_Diff()
298 static PetscErrorCode ComputeErrorMax(OperatorApplyContext op_apply_ctx, CeedOperator op_error, Vec… in ComputeErrorMax() argument
306 CeedVectorCreate(op_apply_ctx->ceed, length, &collocated_error); in ComputeErrorMax()
309 …PetscCall(VecScatterBegin(op_apply_ctx->l_to_g, X, op_apply_ctx->X_loc, INSERT_VALUES, SCATTER_REV… in ComputeErrorMax()
310 …PetscCall(VecScatterEnd(op_apply_ctx->l_to_g, X, op_apply_ctx->X_loc, INSERT_VALUES, SCATTER_REVER… in ComputeErrorMax()
313 PetscCall(VecGetArrayReadAndMemType(op_apply_ctx->X_loc, (const PetscScalar **)&x, &mem_type)); in ComputeErrorMax()
314 CeedVectorSetArray(op_apply_ctx->x_ceed, MemTypeP2C(mem_type), CEED_USE_POINTER, x); in ComputeErrorMax()
317 CeedOperatorApply(op_error, op_apply_ctx->x_ceed, collocated_error, CEED_REQUEST_IMMEDIATE); in ComputeErrorMax()
320 CeedVectorTakeArray(op_apply_ctx->x_ceed, MemTypeP2C(mem_type), NULL); in ComputeErrorMax()
321 PetscCall(VecRestoreArrayReadAndMemType(op_apply_ctx->X_loc, (const PetscScalar **)&x)); in ComputeErrorMax()
331 PetscCall(MPI_Allreduce(MPI_IN_PLACE, max_error, 1, MPIU_REAL, MPIU_MAX, op_apply_ctx->comm)); in ComputeErrorMax()
353 OperatorApplyContext op_apply_ctx; in main() local
643 PetscCall(PetscMalloc1(1, &op_apply_ctx)); in main()
644 op_apply_ctx->comm = comm; in main()
645 op_apply_ctx->l_to_g = l_to_g; in main()
647 op_apply_ctx->l_to_g_0 = l_to_g_0; in main()
648 op_apply_ctx->g_to_g_D = g_to_g_D; in main()
650 op_apply_ctx->X_loc = X_loc; in main()
651 PetscCall(VecDuplicate(X_loc, &op_apply_ctx->Y_loc)); in main()
652 CeedVectorCreate(ceed, l_size * num_comp_u, &op_apply_ctx->x_ceed); in main()
653 CeedVectorCreate(ceed, l_size * num_comp_u, &op_apply_ctx->y_ceed); in main()
654 op_apply_ctx->op = op_apply; in main()
655 op_apply_ctx->q_data = q_data; in main()
656 op_apply_ctx->ceed = ceed; in main()
659 PETSC_DECIDE, op_apply_ctx, &mat)); in main()
757 PetscCall(ComputeErrorMax(op_apply_ctx, op_error, X, target, &max_error)); in main()
787 PetscCall(VecDestroy(&op_apply_ctx->X_loc)); in main()
788 PetscCall(VecDestroy(&op_apply_ctx->Y_loc)); in main()
795 CeedVectorDestroy(&op_apply_ctx->x_ceed); in main()
796 CeedVectorDestroy(&op_apply_ctx->y_ceed); in main()
797 CeedVectorDestroy(&op_apply_ctx->q_data); in main()
815 PetscCall(PetscFree(op_apply_ctx)); in main()