Lines Matching refs:akok

313   Mat_SeqAIJKokkos *akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr);
315 KokkosCsrMatrix &T = akok->csrmatT;
318 PetscCheck(akok, PETSC_COMM_WORLD, PETSC_ERR_PLIB, "Unexpected NULL (Mat_SeqAIJKokkos*)A->spptr");
319 PetscCall(KokkosDualViewSyncDevice(akok->a_dual, PetscGetKokkosExecutionSpace())); // Sync A's values since we are going to access them on device
321 const auto &Aa = akok->a_dual.view_device();
324 *csrmatT = akok->csrmat;
328 if (!akok->transpose_updated) { // if the value is out of date, update the cached version
329 const auto &perm = akok->transpose_perm; // get the permutation array
338 akok->transpose_perm = perm; // cache the perm in this matrix for reuse
341 akok->transpose_updated = PETSC_TRUE;
342 *csrmatT = akok->csrmatT;
351 Mat_SeqAIJKokkos *akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr);
353 KokkosCsrMatrix &T = akok->csrmatH;
356 PetscCheck(akok, PETSC_COMM_WORLD, PETSC_ERR_PLIB, "Unexpected NULL (Mat_SeqAIJKokkos*)A->spptr");
357 PetscCall(KokkosDualViewSyncDevice(akok->a_dual, PetscGetKokkosExecutionSpace())); // Sync A's values since we are going to access them on device
359 const auto &Aa = akok->a_dual.view_device();
362 *csrmatH = akok->csrmat;
366 if (!akok->hermitian_updated) { // if the value is out of date, update the cached version
367 const auto &perm = akok->transpose_perm; // get the permutation array
376 akok->transpose_perm = perm; // cache the perm in this matrix for reuse
379 akok->hermitian_updated = PETSC_TRUE;
380 *csrmatH = akok->csrmatH;
602 Mat_SeqAIJKokkos *akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr), *bkok;
615 if (akok->a_dual.need_sync_device()) {
616 Kokkos::deep_copy(bkok->a_dual.view_host(), akok->a_dual.view_host());
619 Kokkos::deep_copy(bkok->a_dual.view_device(), akok->a_dual.view_device());
714 Mat_SeqAIJKokkos *akok, *bkok, *ckok;
733 akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr);
735 aa = akok->a_dual.view_device();
736 ai = akok->i_dual.view_device();
744 aj = akok->j_dual.view_device();
806 Mat_SeqAIJKokkos *akok, *bkok, *ckok;
845 akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr);
851 csrmatA = akok->csrmat;
892 Mat_SeqAIJKokkos *akok, *bkok, *ckok;
905 akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr);
907 csrmatA = akok->csrmat;
1249 Mat_SeqAIJKokkos *akok;
1252 PetscCallCXX(akok = new Mat_SeqAIJKokkos(m, n, j_d.extent(0), i_d, j_d, a_d));
1254 PetscCall(MatSetSeqAIJKokkosWithCSRMatrix(*A, akok));
1369 Mat_SeqAIJKokkos *akok;
1378 akok = static_cast<Mat_SeqAIJKokkos *>(mat->spptr);
1379 delete akok;
1380 mat->spptr = akok = new Mat_SeqAIJKokkos(mat, mat->rmap->n, mat->cmap->n, aseq, mat->nonzerostate + 1, PETSC_FALSE);
1494 Mat_SeqAIJKokkos *akok = static_cast<Mat_SeqAIJKokkos *>(A->spptr);
1501 auto Aa = akok->a_dual.view_device();
1502 auto Ai = akok->i_dual.view_device();
1503 auto Aj = akok->j_dual.view_device();
1504 auto Adiag = akok->diag_dual.view_device();
1553 PETSC_INTERN PetscErrorCode MatSetSeqAIJKokkosWithCSRMatrix(Mat A, Mat_SeqAIJKokkos *akok)
1562 m = akok->nrows();
1563 n = akok->ncols();
1571 PetscCall(KokkosDualViewSyncHost(akok->i_dual, exec)); /* We always need sync'ed i, j on host */
1572 PetscCall(KokkosDualViewSyncHost(akok->j_dual, exec));
1574 aseq->i = akok->i_host_data();
1575 aseq->j = akok->j_host_data();
1576 aseq->a = akok->a_host_data();
1580 aseq->nz = akok->nnz();
1588 akok->nonzerostate = A->nonzerostate;
1589 A->spptr = akok; /* Set A->spptr before MatAssembly so that A->spptr won't be allocated again there */
1605 Mat_SeqAIJKokkos *akok;
1608 PetscCallCXX(akok = new Mat_SeqAIJKokkos(csr));
1610 PetscCall(MatSetSeqAIJKokkosWithCSRMatrix(*A, akok));
1618 PETSC_INTERN PetscErrorCode MatCreateSeqAIJKokkosWithCSRMatrix(MPI_Comm comm, Mat_SeqAIJKokkos *akok, Mat *A)
1622 PetscCall(MatSetSeqAIJKokkosWithCSRMatrix(*A, akok));