14e47ed04SStefano Zampini static char help[] = "Test MatSetPreallocationCOO and MatSetValuesCOO\n\n"; 24e47ed04SStefano Zampini 34e47ed04SStefano Zampini #include <petscmat.h> 416406dc7SBarry Smith 5d71ae5a4SJacob Faibussowitsch int main(int argc, char **args) 6d71ae5a4SJacob Faibussowitsch { 7651b1cf9SStefano Zampini Mat A, At, AAt, T = NULL; 84e47ed04SStefano Zampini Vec x, y, z; 9cbc6b225SStefano Zampini ISLocalToGlobalMapping rl2g, cl2g; 10cbc6b225SStefano Zampini IS is; 114e47ed04SStefano Zampini PetscLayout rmap, cmap; 12cbc6b225SStefano Zampini PetscInt *it, *jt; 134e47ed04SStefano Zampini PetscInt n1 = 11, n2 = 9; 14cbc6b225SStefano Zampini PetscInt i1[] = {7, 6, 2, 0, 4, 1, 1, 0, 2, 2, 1, -1, -1}; 15cbc6b225SStefano Zampini PetscInt j1[] = {1, 4, 3, 5, 3, 3, 4, 5, 0, 3, 1, -1, -1}; 16cbc6b225SStefano Zampini PetscInt i2[] = {7, 6, 2, 0, 4, 1, 1, 2, 1, -1, -1}; 17cbc6b225SStefano Zampini PetscInt j2[] = {1, 4, 3, 5, 3, 3, 4, 0, 1, -1, -1}; 18cbc6b225SStefano Zampini PetscScalar v1[] = {-1., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., PETSC_MAX_REAL, PETSC_MAX_REAL}; 19cbc6b225SStefano Zampini PetscScalar v2[] = {1., -1., -2., -3., -4., -5., -6., -7., -8., -9., -10., PETSC_MAX_REAL, PETSC_MAX_REAL}; 20cbc6b225SStefano Zampini PetscInt N = 6, m = 8, M, rstart, cstart, i; 214e47ed04SStefano Zampini PetscMPIInt size; 224e47ed04SStefano Zampini PetscBool loc = PETSC_FALSE; 23cbc6b225SStefano Zampini PetscBool locdiag = PETSC_TRUE; 24cbc6b225SStefano Zampini PetscBool localapi = PETSC_FALSE; 25cbc6b225SStefano Zampini PetscBool neg = PETSC_FALSE; 26651b1cf9SStefano Zampini PetscBool ismatis, ismpiaij, ishypre; 274e47ed04SStefano Zampini 28327415f7SBarry Smith PetscFunctionBeginUser; 29*c8025a54SPierre Jolivet PetscCall(PetscInitialize(&argc, &args, NULL, help)); 309566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-neg", &neg, NULL)); 319566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-loc", &loc, NULL)); 329566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-locdiag", &locdiag, NULL)); 339566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetBool(NULL, NULL, "-localapi", &localapi, NULL)); 349566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &A)); 354e47ed04SStefano Zampini if (loc) { 364e47ed04SStefano Zampini if (locdiag) { 379566063dSJacob Faibussowitsch PetscCall(MatSetSizes(A, m, N, PETSC_DECIDE, PETSC_DECIDE)); 384e47ed04SStefano Zampini } else { 399566063dSJacob Faibussowitsch PetscCall(MatSetSizes(A, m, m + N, PETSC_DECIDE, PETSC_DECIDE)); 404e47ed04SStefano Zampini } 414e47ed04SStefano Zampini } else { 429566063dSJacob Faibussowitsch PetscCall(MatSetSizes(A, m, PETSC_DECIDE, PETSC_DECIDE, N)); 434e47ed04SStefano Zampini } 449566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(A)); 459566063dSJacob Faibussowitsch PetscCall(MatGetLayouts(A, &rmap, &cmap)); 469566063dSJacob Faibussowitsch PetscCall(PetscLayoutSetUp(rmap)); 479566063dSJacob Faibussowitsch PetscCall(PetscLayoutSetUp(cmap)); 489566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetRange(rmap, &rstart, NULL)); 499566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetRange(cmap, &cstart, NULL)); 509566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetSize(rmap, &M)); 519566063dSJacob Faibussowitsch PetscCall(PetscLayoutGetSize(cmap, &N)); 52cbc6b225SStefano Zampini 539566063dSJacob Faibussowitsch PetscCall(PetscObjectTypeCompare((PetscObject)A, MATIS, &ismatis)); 54651b1cf9SStefano Zampini PetscCall(PetscObjectTypeCompare((PetscObject)A, MATHYPRE, &ishypre)); 55cbc6b225SStefano Zampini 56cbc6b225SStefano Zampini /* create fake l2g maps to test the local API */ 579566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD, M - rstart, rstart, 1, &is)); 589566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingCreateIS(is, &rl2g)); 599566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 609566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD, N, 0, 1, &is)); 619566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingCreateIS(is, &cl2g)); 629566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 639566063dSJacob Faibussowitsch PetscCall(MatSetLocalToGlobalMapping(A, rl2g, cl2g)); 649566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingDestroy(&rl2g)); 659566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingDestroy(&cl2g)); 66cbc6b225SStefano Zampini 679566063dSJacob Faibussowitsch PetscCall(MatCreateVecs(A, &x, &y)); 689566063dSJacob Faibussowitsch PetscCall(MatCreateVecs(A, NULL, &z)); 699566063dSJacob Faibussowitsch PetscCall(VecSet(x, 1.)); 709566063dSJacob Faibussowitsch PetscCall(VecSet(z, 2.)); 719371c9d4SSatish Balay if (!localapi) 729371c9d4SSatish Balay for (i = 0; i < n1; i++) i1[i] += rstart; 739371c9d4SSatish Balay if (!localapi) 749371c9d4SSatish Balay for (i = 0; i < n2; i++) i2[i] += rstart; 754e47ed04SStefano Zampini if (loc) { 764e47ed04SStefano Zampini if (locdiag) { 774e47ed04SStefano Zampini for (i = 0; i < n1; i++) j1[i] += cstart; 784e47ed04SStefano Zampini for (i = 0; i < n2; i++) j2[i] += cstart; 794e47ed04SStefano Zampini } else { 804e47ed04SStefano Zampini for (i = 0; i < n1; i++) j1[i] += cstart + m; 814e47ed04SStefano Zampini for (i = 0; i < n2; i++) j2[i] += cstart + m; 824e47ed04SStefano Zampini } 834e47ed04SStefano Zampini } 849371c9d4SSatish Balay if (neg) { 859371c9d4SSatish Balay n1 += 2; 869371c9d4SSatish Balay n2 += 2; 879371c9d4SSatish Balay } 88cbc6b225SStefano Zampini /* MatSetPreallocationCOOLocal maps the indices! */ 899566063dSJacob Faibussowitsch PetscCall(PetscMalloc2(PetscMax(n1, n2), &it, PetscMax(n1, n2), &jt)); 904e47ed04SStefano Zampini /* test with repeated entries */ 91cbc6b225SStefano Zampini if (!localapi) { 929566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOO(A, n1, i1, j1)); 93cbc6b225SStefano Zampini } else { 949566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it, i1, n1)); 959566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt, j1, n1)); 969566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A, n1, it, jt)); 97cbc6b225SStefano Zampini } 989566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v1, ADD_VALUES)); 999566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 10016406dc7SBarry Smith PetscCall(MatView(A, NULL)); 10116406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1029566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, ADD_VALUES)); 1039566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A, x, y, y)); 10416406dc7SBarry Smith PetscCall(MatView(A, NULL)); 10516406dc7SBarry Smith PetscCall(VecView(y, NULL)); 106651b1cf9SStefano Zampini T = A; 107651b1cf9SStefano Zampini if (ishypre) PetscCall(MatConvert(A, MATAIJ, MAT_INITIAL_MATRIX, &T)); 108651b1cf9SStefano Zampini PetscCall(MatTranspose(T, MAT_INITIAL_MATRIX, &At)); 109cbc6b225SStefano Zampini if (!ismatis) { 110fb842aefSJose E. Roman PetscCall(MatMatMult(T, At, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &AAt)); 11116406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1129566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 113fb842aefSJose E. Roman PetscCall(MatMatMult(At, T, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &AAt)); 11416406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1159566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 116cbc6b225SStefano Zampini } 1179566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 118651b1cf9SStefano Zampini if (ishypre) PetscCall(MatDestroy(&T)); 119cbc6b225SStefano Zampini 120e61fc153SStefano Zampini /* INSERT_VALUES will overwrite matrix entries but 121e61fc153SStefano Zampini still perform the sum of the repeated entries */ 1229566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, INSERT_VALUES)); 12316406dc7SBarry Smith PetscCall(MatView(A, NULL)); 1244e47ed04SStefano Zampini 1254e47ed04SStefano Zampini /* test with unique entries */ 1269566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it, i2, n2)); 1279566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt, j2, n2)); 128e8729f6fSJunchao Zhang if (!localapi) { 129e8729f6fSJunchao Zhang PetscCall(MatSetPreallocationCOO(A, n2, it, jt)); 130e8729f6fSJunchao Zhang } else { 1319566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A, n2, it, jt)); 132cbc6b225SStefano Zampini } 1339566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v1, ADD_VALUES)); 1349566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 13516406dc7SBarry Smith PetscCall(MatView(A, NULL)); 13616406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1379566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, ADD_VALUES)); 1389566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A, x, y, z)); 13916406dc7SBarry Smith PetscCall(MatView(A, NULL)); 14016406dc7SBarry Smith PetscCall(VecView(z, NULL)); 1419566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it, i2, n2)); 1429566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt, j2, n2)); 143e8729f6fSJunchao Zhang if (!localapi) { 144e8729f6fSJunchao Zhang PetscCall(MatSetPreallocationCOO(A, n2, it, jt)); 145e8729f6fSJunchao Zhang } else { 1469566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A, n2, it, jt)); 147cbc6b225SStefano Zampini } 1489566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v1, INSERT_VALUES)); 1499566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 15016406dc7SBarry Smith PetscCall(MatView(A, NULL)); 15116406dc7SBarry Smith PetscCall(VecView(y, NULL)); 1529566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, v2, INSERT_VALUES)); 1539566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A, x, y, z)); 15416406dc7SBarry Smith PetscCall(MatView(A, NULL)); 15516406dc7SBarry Smith PetscCall(VecView(z, NULL)); 156651b1cf9SStefano Zampini T = A; 157651b1cf9SStefano Zampini if (ishypre) PetscCall(MatConvert(A, MATAIJ, MAT_INITIAL_MATRIX, &T)); 158651b1cf9SStefano Zampini PetscCall(MatTranspose(T, MAT_INITIAL_MATRIX, &At)); 159cbc6b225SStefano Zampini if (!ismatis) { 160fb842aefSJose E. Roman PetscCall(MatMatMult(T, At, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &AAt)); 16116406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1629566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 163fb842aefSJose E. Roman PetscCall(MatMatMult(At, T, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &AAt)); 16416406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 1659566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 166cbc6b225SStefano Zampini } 1679566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 168651b1cf9SStefano Zampini if (ishypre) PetscCall(MatDestroy(&T)); 1694e47ed04SStefano Zampini 1704cf0e950SBarry Smith /* test providing diagonal first, then off-diagonal */ 1719566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)A), &size)); 1729566063dSJacob Faibussowitsch PetscCall(PetscObjectBaseTypeCompare((PetscObject)A, MATMPIAIJ, &ismpiaij)); 173651b1cf9SStefano Zampini if ((ismpiaij || ishypre) && size > 1) { 1744e47ed04SStefano Zampini Mat lA, lB; 1754e47ed04SStefano Zampini const PetscInt *garray, *iA, *jA, *iB, *jB; 1764e47ed04SStefano Zampini const PetscScalar *vA, *vB; 1774e47ed04SStefano Zampini PetscScalar *coo_v; 1784e47ed04SStefano Zampini PetscInt *coo_i, *coo_j; 1794e47ed04SStefano Zampini PetscInt i, j, nA, nB, nnz; 1804e47ed04SStefano Zampini PetscBool flg; 1814e47ed04SStefano Zampini 182651b1cf9SStefano Zampini T = A; 183651b1cf9SStefano Zampini if (ishypre) PetscCall(MatConvert(A, MATAIJ, MAT_INITIAL_MATRIX, &T)); 184651b1cf9SStefano Zampini PetscCall(MatMPIAIJGetSeqAIJ(T, &lA, &lB, &garray)); 1859566063dSJacob Faibussowitsch PetscCall(MatSeqAIJGetArrayRead(lA, &vA)); 1869566063dSJacob Faibussowitsch PetscCall(MatSeqAIJGetArrayRead(lB, &vB)); 1879566063dSJacob Faibussowitsch PetscCall(MatGetRowIJ(lA, 0, PETSC_FALSE, PETSC_FALSE, &nA, &iA, &jA, &flg)); 1889566063dSJacob Faibussowitsch PetscCall(MatGetRowIJ(lB, 0, PETSC_FALSE, PETSC_FALSE, &nB, &iB, &jB, &flg)); 1894e47ed04SStefano Zampini nnz = iA[nA] + iB[nB]; 1909566063dSJacob Faibussowitsch PetscCall(PetscMalloc3(nnz, &coo_i, nnz, &coo_j, nnz, &coo_v)); 1914e47ed04SStefano Zampini nnz = 0; 1924e47ed04SStefano Zampini for (i = 0; i < nA; i++) { 1934e47ed04SStefano Zampini for (j = iA[i]; j < iA[i + 1]; j++, nnz++) { 1944e47ed04SStefano Zampini coo_i[nnz] = i + rstart; 1954e47ed04SStefano Zampini coo_j[nnz] = jA[j] + cstart; 1964e47ed04SStefano Zampini coo_v[nnz] = vA[j]; 1974e47ed04SStefano Zampini } 1984e47ed04SStefano Zampini } 1994e47ed04SStefano Zampini for (i = 0; i < nB; i++) { 2004e47ed04SStefano Zampini for (j = iB[i]; j < iB[i + 1]; j++, nnz++) { 2014e47ed04SStefano Zampini coo_i[nnz] = i + rstart; 2024e47ed04SStefano Zampini coo_j[nnz] = garray[jB[j]]; 2034e47ed04SStefano Zampini coo_v[nnz] = vB[j]; 2044e47ed04SStefano Zampini } 2054e47ed04SStefano Zampini } 2069566063dSJacob Faibussowitsch PetscCall(MatRestoreRowIJ(lA, 0, PETSC_FALSE, PETSC_FALSE, &nA, &iA, &jA, &flg)); 2079566063dSJacob Faibussowitsch PetscCall(MatRestoreRowIJ(lB, 0, PETSC_FALSE, PETSC_FALSE, &nB, &iB, &jB, &flg)); 2089566063dSJacob Faibussowitsch PetscCall(MatSeqAIJRestoreArrayRead(lA, &vA)); 2099566063dSJacob Faibussowitsch PetscCall(MatSeqAIJRestoreArrayRead(lB, &vB)); 210651b1cf9SStefano Zampini if (ishypre) PetscCall(MatDestroy(&T)); 2114e47ed04SStefano Zampini 2129566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOO(A, nnz, coo_i, coo_j)); 2139566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, coo_v, ADD_VALUES)); 2149566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 21516406dc7SBarry Smith PetscCall(MatView(A, NULL)); 21616406dc7SBarry Smith PetscCall(VecView(y, NULL)); 2179566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A, coo_v, INSERT_VALUES)); 2189566063dSJacob Faibussowitsch PetscCall(MatMult(A, x, y)); 21916406dc7SBarry Smith PetscCall(MatView(A, NULL)); 22016406dc7SBarry Smith PetscCall(VecView(y, NULL)); 221651b1cf9SStefano Zampini 222651b1cf9SStefano Zampini T = A; 223651b1cf9SStefano Zampini if (ishypre) PetscCall(MatConvert(A, MATAIJ, MAT_INITIAL_MATRIX, &T)); 224651b1cf9SStefano Zampini PetscCall(MatTranspose(T, MAT_INITIAL_MATRIX, &At)); 225fb842aefSJose E. Roman PetscCall(MatMatMult(T, At, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &AAt)); 22616406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 2279566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 228fb842aefSJose E. Roman PetscCall(MatMatMult(At, T, MAT_INITIAL_MATRIX, PETSC_DETERMINE, &AAt)); 22916406dc7SBarry Smith PetscCall(MatView(AAt, NULL)); 2309566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 2319566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 232651b1cf9SStefano Zampini if (ishypre) PetscCall(MatDestroy(&T)); 2334e47ed04SStefano Zampini 2349566063dSJacob Faibussowitsch PetscCall(PetscFree3(coo_i, coo_j, coo_v)); 2354e47ed04SStefano Zampini } 2369566063dSJacob Faibussowitsch PetscCall(PetscFree2(it, jt)); 2379566063dSJacob Faibussowitsch PetscCall(VecDestroy(&z)); 2389566063dSJacob Faibussowitsch PetscCall(VecDestroy(&x)); 2399566063dSJacob Faibussowitsch PetscCall(VecDestroy(&y)); 2409566063dSJacob Faibussowitsch PetscCall(MatDestroy(&A)); 2419566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 242b122ec5aSJacob Faibussowitsch return 0; 2434e47ed04SStefano Zampini } 2444e47ed04SStefano Zampini 2454e47ed04SStefano Zampini /*TEST 2464e47ed04SStefano Zampini 2474e47ed04SStefano Zampini test: 2484e47ed04SStefano Zampini suffix: 1 249651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 2504e47ed04SStefano Zampini diff_args: -j 251cbc6b225SStefano Zampini args: -mat_type {{seqaij mpiaij}} -localapi {{0 1}} -neg {{0 1}} 2524e47ed04SStefano Zampini 2534e47ed04SStefano Zampini test: 25406977982Sstefanozampini requires: hypre 255651b1cf9SStefano Zampini suffix: 1_hypre 256651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 257651b1cf9SStefano Zampini diff_args: -j 258651b1cf9SStefano Zampini args: -mat_type hypre -localapi {{0 1}} -neg {{0 1}} 259651b1cf9SStefano Zampini output_file: output/ex123_1.out 260651b1cf9SStefano Zampini 261651b1cf9SStefano Zampini test: 2624e47ed04SStefano Zampini requires: cuda 2634e47ed04SStefano Zampini suffix: 1_cuda 264651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 2654e47ed04SStefano Zampini diff_args: -j 266cbc6b225SStefano Zampini args: -mat_type {{seqaijcusparse mpiaijcusparse}} -localapi {{0 1}} -neg {{0 1}} 267cbc6b225SStefano Zampini output_file: output/ex123_1.out 268cbc6b225SStefano Zampini 269cbc6b225SStefano Zampini test: 270dcfd994dSJunchao Zhang requires: kokkos_kernels 271cbc6b225SStefano Zampini suffix: 1_kokkos 272651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 273cbc6b225SStefano Zampini diff_args: -j 274cbc6b225SStefano Zampini args: -mat_type {{seqaijkokkos mpiaijkokkos}} -localapi {{0 1}} -neg {{0 1}} 2754e47ed04SStefano Zampini output_file: output/ex123_1.out 2764e47ed04SStefano Zampini 2774e47ed04SStefano Zampini test: 2784e47ed04SStefano Zampini suffix: 2 2794e47ed04SStefano Zampini nsize: 7 280651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 2814e47ed04SStefano Zampini diff_args: -j 282cbc6b225SStefano Zampini args: -mat_type mpiaij -localapi {{0 1}} -neg {{0 1}} 2834e47ed04SStefano Zampini 2844e47ed04SStefano Zampini test: 28506977982Sstefanozampini requires: hypre 286651b1cf9SStefano Zampini suffix: 2_hypre 287651b1cf9SStefano Zampini nsize: 7 288651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 289651b1cf9SStefano Zampini diff_args: -j 290651b1cf9SStefano Zampini args: -mat_type hypre -localapi {{0 1}} -neg {{0 1}} 291651b1cf9SStefano Zampini output_file: output/ex123_2.out 292651b1cf9SStefano Zampini 293651b1cf9SStefano Zampini test: 2944e47ed04SStefano Zampini requires: cuda 2954e47ed04SStefano Zampini suffix: 2_cuda 2964e47ed04SStefano Zampini nsize: 7 297651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 2984e47ed04SStefano Zampini diff_args: -j 299cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -localapi {{0 1}} -neg {{0 1}} 300cbc6b225SStefano Zampini output_file: output/ex123_2.out 301cbc6b225SStefano Zampini 302cbc6b225SStefano Zampini test: 303dcfd994dSJunchao Zhang requires: kokkos_kernels 304cbc6b225SStefano Zampini suffix: 2_kokkos 305cbc6b225SStefano Zampini nsize: 7 306651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 307cbc6b225SStefano Zampini diff_args: -j 308cbc6b225SStefano Zampini args: -mat_type mpiaijkokkos -localapi {{0 1}} -neg {{0 1}} 3094e47ed04SStefano Zampini output_file: output/ex123_2.out 3104e47ed04SStefano Zampini 3114e47ed04SStefano Zampini test: 3124e47ed04SStefano Zampini suffix: 3 3134e47ed04SStefano Zampini nsize: 3 314651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 3154e47ed04SStefano Zampini diff_args: -j 316cbc6b225SStefano Zampini args: -mat_type mpiaij -loc -localapi {{0 1}} -neg {{0 1}} 3174e47ed04SStefano Zampini 3184e47ed04SStefano Zampini test: 31906977982Sstefanozampini requires: hypre 320651b1cf9SStefano Zampini suffix: 3_hypre 321651b1cf9SStefano Zampini nsize: 3 322651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 323651b1cf9SStefano Zampini diff_args: -j 324651b1cf9SStefano Zampini args: -mat_type hypre -loc -localapi {{0 1}} -neg {{0 1}} 325651b1cf9SStefano Zampini output_file: output/ex123_3.out 326651b1cf9SStefano Zampini 327651b1cf9SStefano Zampini test: 3284e47ed04SStefano Zampini requires: cuda 3294e47ed04SStefano Zampini suffix: 3_cuda 3304e47ed04SStefano Zampini nsize: 3 331651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 3324e47ed04SStefano Zampini diff_args: -j 333cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -loc -localapi {{0 1}} -neg {{0 1}} 3344e47ed04SStefano Zampini output_file: output/ex123_3.out 3354e47ed04SStefano Zampini 3364e47ed04SStefano Zampini test: 337dcfd994dSJunchao Zhang requires: kokkos_kernels 33842550becSJunchao Zhang suffix: 3_kokkos 33942550becSJunchao Zhang nsize: 3 340651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 34142550becSJunchao Zhang diff_args: -j 342cbc6b225SStefano Zampini args: -mat_type aijkokkos -loc -localapi {{0 1}} -neg {{0 1}} 34342550becSJunchao Zhang output_file: output/ex123_3.out 34442550becSJunchao Zhang 34542550becSJunchao Zhang test: 346cbc6b225SStefano Zampini suffix: 4 347cbc6b225SStefano Zampini nsize: 4 348651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 349cbc6b225SStefano Zampini diff_args: -j 350cbc6b225SStefano Zampini args: -mat_type mpiaij -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 351cbc6b225SStefano Zampini 352cbc6b225SStefano Zampini test: 35306977982Sstefanozampini requires: hypre 354651b1cf9SStefano Zampini suffix: 4_hypre 355651b1cf9SStefano Zampini nsize: 4 356651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 357651b1cf9SStefano Zampini diff_args: -j 358651b1cf9SStefano Zampini args: -mat_type hypre -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 359651b1cf9SStefano Zampini output_file: output/ex123_4.out 360651b1cf9SStefano Zampini 361651b1cf9SStefano Zampini test: 362cbc6b225SStefano Zampini requires: cuda 363cbc6b225SStefano Zampini suffix: 4_cuda 364cbc6b225SStefano Zampini nsize: 4 365651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 366cbc6b225SStefano Zampini diff_args: -j 367cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 368cbc6b225SStefano Zampini output_file: output/ex123_4.out 369cbc6b225SStefano Zampini 370cbc6b225SStefano Zampini test: 371dcfd994dSJunchao Zhang requires: kokkos_kernels 37242550becSJunchao Zhang suffix: 4_kokkos 37342550becSJunchao Zhang nsize: 4 374651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 37542550becSJunchao Zhang diff_args: -j 376cbc6b225SStefano Zampini args: -mat_type aijkokkos -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 37742550becSJunchao Zhang output_file: output/ex123_4.out 37842550becSJunchao Zhang 379cbc6b225SStefano Zampini test: 380cbc6b225SStefano Zampini suffix: matis 381cbc6b225SStefano Zampini nsize: 3 382651b1cf9SStefano Zampini filter: grep -v type | grep -v "Mat Object" 383cbc6b225SStefano Zampini diff_args: -j 384cbc6b225SStefano Zampini args: -mat_type is -localapi {{0 1}} -neg {{0 1}} 385cbc6b225SStefano Zampini 3864e47ed04SStefano Zampini TEST*/ 387