14e47ed04SStefano Zampini static char help[] = "Test MatSetPreallocationCOO and MatSetValuesCOO\n\n"; 24e47ed04SStefano Zampini 34e47ed04SStefano Zampini #include <petscmat.h> 416406dc7SBarry Smith 59371c9d4SSatish Balay int main(int argc, char **args) { 64e47ed04SStefano Zampini Mat A, At, AAt; 74e47ed04SStefano Zampini Vec x, y, z; 8cbc6b225SStefano Zampini ISLocalToGlobalMapping rl2g, cl2g; 9cbc6b225SStefano Zampini IS is; 104e47ed04SStefano Zampini PetscLayout rmap, cmap; 11cbc6b225SStefano Zampini PetscInt *it, *jt; 124e47ed04SStefano Zampini PetscInt n1 = 11, n2 = 9; 13cbc6b225SStefano Zampini PetscInt i1[] = {7, 6, 2, 0, 4, 1, 1, 0, 2, 2, 1, -1, -1}; 14cbc6b225SStefano Zampini PetscInt j1[] = {1, 4, 3, 5, 3, 3, 4, 5, 0, 3, 1, -1, -1}; 15cbc6b225SStefano Zampini PetscInt i2[] = {7, 6, 2, 0, 4, 1, 1, 2, 1, -1, -1}; 16cbc6b225SStefano Zampini PetscInt j2[] = {1, 4, 3, 5, 3, 3, 4, 0, 1, -1, -1}; 17cbc6b225SStefano Zampini PetscScalar v1[] = {-1., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., PETSC_MAX_REAL, PETSC_MAX_REAL}; 18cbc6b225SStefano Zampini PetscScalar v2[] = {1., -1., -2., -3., -4., -5., -6., -7., -8., -9., -10., PETSC_MAX_REAL, PETSC_MAX_REAL}; 19cbc6b225SStefano Zampini PetscInt N = 6, m = 8, M, rstart, cstart, i; 204e47ed04SStefano Zampini PetscMPIInt size; 214e47ed04SStefano Zampini PetscBool loc = PETSC_FALSE; 22cbc6b225SStefano Zampini PetscBool locdiag = PETSC_TRUE; 23cbc6b225SStefano Zampini PetscBool localapi = PETSC_FALSE; 24cbc6b225SStefano Zampini PetscBool neg = PETSC_FALSE; 25cbc6b225SStefano Zampini PetscBool ismatis, ismpiaij; 264e47ed04SStefano Zampini 27327415f7SBarry Smith PetscFunctionBeginUser; 289566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &args, (char *)0, help)); 299566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-neg", &neg, NULL)); 309566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-loc", &loc, NULL)); 319566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-locdiag", &locdiag, NULL)); 329566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-localapi", &localapi, NULL)); 339566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); 344e47ed04SStefano Zampini if (loc) { 354e47ed04SStefano Zampini if (locdiag) { 369566063dSJacob Faibussowitsch PetscCall(MatSetSizes(A, m, N, PETSC_DECIDE, PETSC_DECIDE)); 374e47ed04SStefano Zampini } else { 389566063dSJacob Faibussowitsch PetscCall(MatSetSizes(A, m, m + N, PETSC_DECIDE, PETSC_DECIDE)); 394e47ed04SStefano Zampini } 404e47ed04SStefano Zampini } else { 419566063dSJacob Faibussowitsch PetscCall(MatSetSizes(A, m, PETSC_DECIDE, PETSC_DECIDE, N)); 424e47ed04SStefano Zampini } 439566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(A)); 449566063dSJacob Faibussowitsch PetscCall(MatGetLayouts(A, &rmap, &cmap)); 459566063dSJacob Faibussowitsch PetscCall(PetscLayoutSetUp(rmap)); 469566063dSJacob Faibussowitsch PetscCall(PetscLayoutSetUp(cmap)); 479566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetRange(rmap, &rstart, NULL)); 489566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetRange(cmap, &cstart, NULL)); 499566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetSize(rmap, &M)); 509566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetSize(cmap, &N)); 51cbc6b225SStefano Zampini 529566063dSJacob Faibussowitsch PetscCall(PetscObjectTypeCompare((PetscObject)A, MATIS, &ismatis)); 53cbc6b225SStefano Zampini 54cbc6b225SStefano Zampini /* create fake l2g maps to test the local API */ 559566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD, M - rstart, rstart, 1, &is)); 569566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingCreateIS(is, &rl2g)); 579566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 589566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD, N, 0, 1, &is)); 599566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingCreateIS(is, &cl2g)); 609566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 619566063dSJacob Faibussowitsch PetscCall(MatSetLocalToGlobalMapping(A, rl2g, cl2g)); 629566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingDestroy(&rl2g)); 639566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingDestroy(&cl2g)); 64cbc6b225SStefano Zampini 659566063dSJacob Faibussowitsch PetscCall(MatCreateVecs(A, &x, &y)); 669566063dSJacob Faibussowitsch PetscCall(MatCreateVecs(A, NULL, &z)); 679566063dSJacob Faibussowitsch PetscCall(VecSet(x, 1.)); 689566063dSJacob Faibussowitsch PetscCall(VecSet(z, 2.)); 699371c9d4SSatish Balay if (!localapi) 709371c9d4SSatish Balay for (i = 0; i < n1; i++) i1[i] += rstart; 719371c9d4SSatish Balay if (!localapi) 729371c9d4SSatish Balay for (i = 0; i < n2; i++) i2[i] += rstart; 734e47ed04SStefano Zampini if (loc) { 744e47ed04SStefano Zampini if (locdiag) { 754e47ed04SStefano Zampini for (i = 0; i < n1; i++) j1[i] += cstart; 764e47ed04SStefano Zampini for (i = 0; i < n2; i++) j2[i] += cstart; 774e47ed04SStefano Zampini } else { 784e47ed04SStefano Zampini for (i = 0; i < n1; i++) j1[i] += cstart + m; 794e47ed04SStefano Zampini for (i = 0; i < n2; i++) j2[i] += cstart + m; 804e47ed04SStefano Zampini } 814e47ed04SStefano Zampini } 829371c9d4SSatish Balay if (neg) { 839371c9d4SSatish Balay n1 += 2; 849371c9d4SSatish Balay n2 += 2; 859371c9d4SSatish Balay } 86cbc6b225SStefano Zampini /* MatSetPreallocationCOOLocal maps the indices! */ 879566063dSJacob Faibussowitsch PetscCall(PetscMalloc2(PetscMax(n1, n2), &it, PetscMax(n1, n2), &jt)); 884e47ed04SStefano Zampini /* test with repeated entries */ 89cbc6b225SStefano Zampini if (!localapi) { 909566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOO(A, n1, i1, j1)); 91cbc6b225SStefano Zampini } else { 929566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it, i1, n1)); 939566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt, j1, n1)); 949566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A, n1, it, jt)); 95cbc6b225SStefano Zampini } 969566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v1, ADD_VALUES)); 979566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 9816406dc7SBarry Smith PetscCall(MatView(A, NULL)); 9916406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1009566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, ADD_VALUES)); 1019566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A, x, y, y)); 10216406dc7SBarry Smith PetscCall(MatView(A, NULL)); 10316406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1049566063dSJacob Faibussowitsch PetscCall(MatTranspose(A, MAT_INITIAL_MATRIX, &At)); 105cbc6b225SStefano Zampini if (!ismatis) { 1069566063dSJacob Faibussowitsch PetscCall(MatMatMult(A, At, MAT_INITIAL_MATRIX, PETSC_DEFAULT, &AAt)); 10716406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1089566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 1099566063dSJacob Faibussowitsch PetscCall(MatMatMult(At, A, MAT_INITIAL_MATRIX, PETSC_DEFAULT, &AAt)); 11016406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1119566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 112cbc6b225SStefano Zampini } 1139566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 114cbc6b225SStefano Zampini 115e61fc153SStefano Zampini /* INSERT_VALUES will overwrite matrix entries but 116e61fc153SStefano Zampini still perform the sum of the repeated entries */ 1179566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, INSERT_VALUES)); 11816406dc7SBarry Smith PetscCall(MatView(A, NULL)); 1194e47ed04SStefano Zampini 1204e47ed04SStefano Zampini /* test with unique entries */ 1219566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it, i2, n2)); 1229566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt, j2, n2)); 123e8729f6fSJunchao Zhang if (!localapi) { 124e8729f6fSJunchao Zhang PetscCall(MatSetPreallocationCOO(A, n2, it, jt)); 125e8729f6fSJunchao Zhang } else { 1269566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A, n2, it, jt)); 127cbc6b225SStefano Zampini } 1289566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v1, ADD_VALUES)); 1299566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 13016406dc7SBarry Smith PetscCall(MatView(A, NULL)); 13116406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1329566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, ADD_VALUES)); 1339566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A, x, y, z)); 13416406dc7SBarry Smith PetscCall(MatView(A, NULL)); 13516406dc7SBarry Smith PetscCall(VecView(z, NULL)); 1369566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it, i2, n2)); 1379566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt, j2, n2)); 138e8729f6fSJunchao Zhang if (!localapi) { 139e8729f6fSJunchao Zhang PetscCall(MatSetPreallocationCOO(A, n2, it, jt)); 140e8729f6fSJunchao Zhang } else { 1419566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A, n2, it, jt)); 142cbc6b225SStefano Zampini } 1439566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v1, INSERT_VALUES)); 1449566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 14516406dc7SBarry Smith PetscCall(MatView(A, NULL)); 14616406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1479566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, INSERT_VALUES)); 1489566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A, x, y, z)); 14916406dc7SBarry Smith PetscCall(MatView(A, NULL)); 15016406dc7SBarry Smith PetscCall(VecView(z, NULL)); 1519566063dSJacob Faibussowitsch PetscCall(MatTranspose(A, MAT_INITIAL_MATRIX, &At)); 152cbc6b225SStefano Zampini if (!ismatis) { 1539566063dSJacob Faibussowitsch PetscCall(MatMatMult(A, At, MAT_INITIAL_MATRIX, PETSC_DEFAULT, &AAt)); 15416406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1559566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 1569566063dSJacob Faibussowitsch PetscCall(MatMatMult(At, A, MAT_INITIAL_MATRIX, PETSC_DEFAULT, &AAt)); 15716406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1589566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 159cbc6b225SStefano Zampini } 1609566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 1614e47ed04SStefano Zampini 162cbc6b225SStefano Zampini /* test providing diagonal first, then offdiagonal */ 1639566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)A), &size)); 1649566063dSJacob Faibussowitsch PetscCall(PetscObjectBaseTypeCompare((PetscObject)A, MATMPIAIJ, &ismpiaij)); 1654e47ed04SStefano Zampini if (ismpiaij && size > 1) { 1664e47ed04SStefano Zampini Mat lA, lB; 1674e47ed04SStefano Zampini const PetscInt *garray, *iA, *jA, *iB, *jB; 1684e47ed04SStefano Zampini const PetscScalar *vA, *vB; 1694e47ed04SStefano Zampini PetscScalar *coo_v; 1704e47ed04SStefano Zampini PetscInt *coo_i, *coo_j; 1714e47ed04SStefano Zampini PetscInt i, j, nA, nB, nnz; 1724e47ed04SStefano Zampini PetscBool flg; 1734e47ed04SStefano Zampini 1749566063dSJacob Faibussowitsch PetscCall(MatMPIAIJGetSeqAIJ(A, &lA, &lB, &garray)); 1759566063dSJacob Faibussowitsch PetscCall(MatSeqAIJGetArrayRead(lA, &vA)); 1769566063dSJacob Faibussowitsch PetscCall(MatSeqAIJGetArrayRead(lB, &vB)); 1779566063dSJacob Faibussowitsch PetscCall(MatGetRowIJ(lA, 0, PETSC_FALSE, PETSC_FALSE, &nA, &iA, &jA, &flg)); 1789566063dSJacob Faibussowitsch PetscCall(MatGetRowIJ(lB, 0, PETSC_FALSE, PETSC_FALSE, &nB, &iB, &jB, &flg)); 1794e47ed04SStefano Zampini nnz = iA[nA] + iB[nB]; 1809566063dSJacob Faibussowitsch PetscCall(PetscMalloc3(nnz, &coo_i, nnz, &coo_j, nnz, &coo_v)); 1814e47ed04SStefano Zampini nnz = 0; 1824e47ed04SStefano Zampini for (i = 0; i < nA; i++) { 1834e47ed04SStefano Zampini for (j = iA[i]; j < iA[i + 1]; j++, nnz++) { 1844e47ed04SStefano Zampini coo_i[nnz] = i + rstart; 1854e47ed04SStefano Zampini coo_j[nnz] = jA[j] + cstart; 1864e47ed04SStefano Zampini coo_v[nnz] = vA[j]; 1874e47ed04SStefano Zampini } 1884e47ed04SStefano Zampini } 1894e47ed04SStefano Zampini for (i = 0; i < nB; i++) { 1904e47ed04SStefano Zampini for (j = iB[i]; j < iB[i + 1]; j++, nnz++) { 1914e47ed04SStefano Zampini coo_i[nnz] = i + rstart; 1924e47ed04SStefano Zampini coo_j[nnz] = garray[jB[j]]; 1934e47ed04SStefano Zampini coo_v[nnz] = vB[j]; 1944e47ed04SStefano Zampini } 1954e47ed04SStefano Zampini } 1969566063dSJacob Faibussowitsch PetscCall(MatRestoreRowIJ(lA, 0, PETSC_FALSE, PETSC_FALSE, &nA, &iA, &jA, &flg)); 1979566063dSJacob Faibussowitsch PetscCall(MatRestoreRowIJ(lB, 0, PETSC_FALSE, PETSC_FALSE, &nB, &iB, &jB, &flg)); 1989566063dSJacob Faibussowitsch PetscCall(MatSeqAIJRestoreArrayRead(lA, &vA)); 1999566063dSJacob Faibussowitsch PetscCall(MatSeqAIJRestoreArrayRead(lB, &vB)); 2004e47ed04SStefano Zampini 2019566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOO(A, nnz, coo_i, coo_j)); 2029566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, coo_v, ADD_VALUES)); 2039566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 20416406dc7SBarry Smith PetscCall(MatView(A, NULL)); 20516406dc7SBarry Smith PetscCall(VecView(y, NULL)); 2069566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, coo_v, INSERT_VALUES)); 2079566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 20816406dc7SBarry Smith PetscCall(MatView(A, NULL)); 20916406dc7SBarry Smith PetscCall(VecView(y, NULL)); 2109566063dSJacob Faibussowitsch PetscCall(MatTranspose(A, MAT_INITIAL_MATRIX, &At)); 2119566063dSJacob Faibussowitsch PetscCall(MatMatMult(A, At, MAT_INITIAL_MATRIX, PETSC_DEFAULT, &AAt)); 21216406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 2139566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 2149566063dSJacob Faibussowitsch PetscCall(MatMatMult(At, A, MAT_INITIAL_MATRIX, PETSC_DEFAULT, &AAt)); 21516406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 2169566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 2179566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 2184e47ed04SStefano Zampini 2199566063dSJacob Faibussowitsch PetscCall(PetscFree3(coo_i, coo_j, coo_v)); 2204e47ed04SStefano Zampini } 2219566063dSJacob Faibussowitsch PetscCall(PetscFree2(it, jt)); 2229566063dSJacob Faibussowitsch PetscCall(VecDestroy(&z)); 2239566063dSJacob Faibussowitsch PetscCall(VecDestroy(&x)); 2249566063dSJacob Faibussowitsch PetscCall(VecDestroy(&y)); 2259566063dSJacob Faibussowitsch PetscCall(MatDestroy(&A)); 2269566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 227b122ec5aSJacob Faibussowitsch return 0; 2284e47ed04SStefano Zampini } 2294e47ed04SStefano Zampini 2304e47ed04SStefano Zampini /*TEST 2314e47ed04SStefano Zampini 2324e47ed04SStefano Zampini test: 2334e47ed04SStefano Zampini suffix: 1 2344e47ed04SStefano Zampini filter: grep -v type 2354e47ed04SStefano Zampini diff_args: -j 236cbc6b225SStefano Zampini args: -mat_type {{seqaij mpiaij}} -localapi {{0 1}} -neg {{0 1}} 2374e47ed04SStefano Zampini 2384e47ed04SStefano Zampini test: 2394e47ed04SStefano Zampini requires: cuda 2404e47ed04SStefano Zampini suffix: 1_cuda 2414e47ed04SStefano Zampini filter: grep -v type 2424e47ed04SStefano Zampini diff_args: -j 243cbc6b225SStefano Zampini args: -mat_type {{seqaijcusparse mpiaijcusparse}} -localapi {{0 1}} -neg {{0 1}} 244cbc6b225SStefano Zampini output_file: output/ex123_1.out 245cbc6b225SStefano Zampini 246cbc6b225SStefano Zampini test: 247*dcfd994dSJunchao Zhang requires: kokkos_kernels 248cbc6b225SStefano Zampini suffix: 1_kokkos 249cbc6b225SStefano Zampini filter: grep -v type 250cbc6b225SStefano Zampini diff_args: -j 251cbc6b225SStefano Zampini args: -mat_type {{seqaijkokkos mpiaijkokkos}} -localapi {{0 1}} -neg {{0 1}} 2524e47ed04SStefano Zampini output_file: output/ex123_1.out 2534e47ed04SStefano Zampini 2544e47ed04SStefano Zampini test: 2554e47ed04SStefano Zampini suffix: 2 2564e47ed04SStefano Zampini nsize: 7 2574e47ed04SStefano Zampini filter: grep -v type 2584e47ed04SStefano Zampini diff_args: -j 259cbc6b225SStefano Zampini args: -mat_type mpiaij -localapi {{0 1}} -neg {{0 1}} 2604e47ed04SStefano Zampini 2614e47ed04SStefano Zampini test: 2624e47ed04SStefano Zampini requires: cuda 2634e47ed04SStefano Zampini suffix: 2_cuda 2644e47ed04SStefano Zampini nsize: 7 2654e47ed04SStefano Zampini filter: grep -v type 2664e47ed04SStefano Zampini diff_args: -j 267cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -localapi {{0 1}} -neg {{0 1}} 268cbc6b225SStefano Zampini output_file: output/ex123_2.out 269cbc6b225SStefano Zampini 270cbc6b225SStefano Zampini test: 271*dcfd994dSJunchao Zhang requires: kokkos_kernels 272cbc6b225SStefano Zampini suffix: 2_kokkos 273cbc6b225SStefano Zampini nsize: 7 274cbc6b225SStefano Zampini filter: grep -v type 275cbc6b225SStefano Zampini diff_args: -j 276cbc6b225SStefano Zampini args: -mat_type mpiaijkokkos -localapi {{0 1}} -neg {{0 1}} 2774e47ed04SStefano Zampini output_file: output/ex123_2.out 2784e47ed04SStefano Zampini 2794e47ed04SStefano Zampini test: 2804e47ed04SStefano Zampini suffix: 3 2814e47ed04SStefano Zampini nsize: 3 2824e47ed04SStefano Zampini filter: grep -v type 2834e47ed04SStefano Zampini diff_args: -j 284cbc6b225SStefano Zampini args: -mat_type mpiaij -loc -localapi {{0 1}} -neg {{0 1}} 2854e47ed04SStefano Zampini 2864e47ed04SStefano Zampini test: 2874e47ed04SStefano Zampini requires: cuda 2884e47ed04SStefano Zampini suffix: 3_cuda 2894e47ed04SStefano Zampini nsize: 3 2904e47ed04SStefano Zampini filter: grep -v type 2914e47ed04SStefano Zampini diff_args: -j 292cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -loc -localapi {{0 1}} -neg {{0 1}} 2934e47ed04SStefano Zampini output_file: output/ex123_3.out 2944e47ed04SStefano Zampini 2954e47ed04SStefano Zampini test: 296*dcfd994dSJunchao Zhang requires: kokkos_kernels 29742550becSJunchao Zhang suffix: 3_kokkos 29842550becSJunchao Zhang nsize: 3 29942550becSJunchao Zhang filter: grep -v type 30042550becSJunchao Zhang diff_args: -j 301cbc6b225SStefano Zampini args: -mat_type aijkokkos -loc -localapi {{0 1}} -neg {{0 1}} 30242550becSJunchao Zhang output_file: output/ex123_3.out 30342550becSJunchao Zhang 30442550becSJunchao Zhang test: 305cbc6b225SStefano Zampini suffix: 4 306cbc6b225SStefano Zampini nsize: 4 307cbc6b225SStefano Zampini filter: grep -v type 308cbc6b225SStefano Zampini diff_args: -j 309cbc6b225SStefano Zampini args: -mat_type mpiaij -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 310cbc6b225SStefano Zampini 311cbc6b225SStefano Zampini test: 312cbc6b225SStefano Zampini requires: cuda 313cbc6b225SStefano Zampini suffix: 4_cuda 314cbc6b225SStefano Zampini nsize: 4 315cbc6b225SStefano Zampini filter: grep -v type 316cbc6b225SStefano Zampini diff_args: -j 317cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 318cbc6b225SStefano Zampini output_file: output/ex123_4.out 319cbc6b225SStefano Zampini 320cbc6b225SStefano Zampini test: 321*dcfd994dSJunchao Zhang requires: kokkos_kernels 32242550becSJunchao Zhang suffix: 4_kokkos 32342550becSJunchao Zhang nsize: 4 32442550becSJunchao Zhang filter: grep -v type 32542550becSJunchao Zhang diff_args: -j 326cbc6b225SStefano Zampini args: -mat_type aijkokkos -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 32742550becSJunchao Zhang output_file: output/ex123_4.out 32842550becSJunchao Zhang 329cbc6b225SStefano Zampini test: 330cbc6b225SStefano Zampini suffix: matis 331cbc6b225SStefano Zampini nsize: 3 332cbc6b225SStefano Zampini filter: grep -v type 333cbc6b225SStefano Zampini diff_args: -j 334cbc6b225SStefano Zampini args: -mat_type is -localapi {{0 1}} -neg {{0 1}} 335cbc6b225SStefano Zampini 3364e47ed04SStefano Zampini TEST*/ 337