Lines Matching refs:Fd
125 KokkosCsrMatrix Fd, Fo; // F in split form
127 KernelHandle kh1; // compute C1, add C1+C3 or C1+Fd
148 PetscIntKokkosView F_NzLeft; // plans to split F (in leafbuf) into Fd, Fo
154 MatColIdxKokkosView Fdjmap; // plans to reduce data in rootBuf to Fd, Fo
336 - mm - contains various info, such as garray2[], F (Fd, Fo) etc.
465 // With recvCol[], we do a series of analysis to get i, j of Fd, Fo, and build plans to reduce nonzeros in recv buffers to Fd and Fo
477 PetscInt FnzDups = 0, Fdnz = 0, FdnzDups = 0, Fonz = 0, FonzDups = 0; // nz (with or without dups) in F, Fd, Fo
508 // Scan column indices (in jbuf[0,nz), might have dups) of this row, and see how many go to Fd and how many go to Fo
539 // Allocate j, jmap, jperm for Fd and Fo
547 // Scan recvColSorted[] again, and fill j, jmap, jperm for Fd and Fo
566 // Scan columns (in jbuf[0,nz) of this row, copy them and their permutation to j[] and jperm[] of Fd and Fo
609 // Output Fd and Fo in KokkosCsrMatrix format
617 PetscCallCXX(mm->Fd = KokkosCsrMatrix("Fd", Fm, cend - cstart, Fdnz, Fda_d, Fdi_d, Fdj_d));
678 auto &Fda = mm->Fd.values;
681 auto Fdnz = mm->Fd.nnz();
691 // Reduce data in rootBuf to Fd and Fo
719 Conceptually F has global column indices. In this routine, we spit F into diagonal Fd and off-diagonal Fo.
720 Fd uses local column indices, which are easy to compute. We just need to subtract the "local column range start" from the global indices.
733 - mm - contains various info, such as garray2[], Fd, Fo, etc.
860 // Build a plan (i.e., F_NzLeft) to split F into Fd and Fo
861 MatRowMapKokkosViewHost Fdi_h(NoInit("Fdi_h"), Fm + 1), Foi_h(NoInit("Foi_h"), Fm + 1); // row pointer of Fd, Fo
883 // Fill Fdj[] and Foj[], i.e., columns of Fd and Fo. Fdj[] are local, but Foj[] are not yet.
923 // Output Fd and Fo in KokkosCsrMatrix format
930 PetscCallCXX(mm->Fd = KokkosCsrMatrix("Fd", Fm, cend - cstart, Fdnz, Fda_d, Fdi_d, Fdj_d));
1004 const auto &Fd = mm->Fd;
1006 const auto &Fdi = Fd.graph.row_map;
1008 auto &Fda = Fd.values;
1010 auto Fm = Fd.numRows();
1118 // C = (C1+Fd, C2+Fo)
1119 PetscCallCXX(mm->kh1.create_spadd_handle(true)); // C1, Fd are sorted
1121 PetscCallCXX(KokkosSparse::spadd_symbolic(&mm->kh1, mm->C1, mm->Fd, mm->Cd));
1123 PetscCallCXX(KokkosSparse::spadd_numeric(&mm->kh1, 1.0, mm->C1, 1.0, mm->Fd, mm->Cd));
1155 // C = (C1+Fd, C2+Fo)
1156 PetscCallCXX(KokkosSparse::spadd_numeric(&mm->kh1, 1.0, mm->C1, 1.0, mm->Fd, mm->Cd));
1215 PetscCallCXX(KokkosSparse::spgemm_symbolic(mm->kh3, Ao, false, mm->Fd, false, mm->C3));
1216 PetscCallCXX(KokkosSparse::spgemm_numeric(mm->kh3, Ao, false, mm->Fd, false, mm->C3));
1262 PetscCallCXX(KokkosSparse::spgemm_numeric(mm->kh3, Ao, false, mm->Fd, false, mm->C3));