14e47ed04SStefano Zampini static char help[] = "Test MatSetPreallocationCOO and MatSetValuesCOO\n\n"; 24e47ed04SStefano Zampini 34e47ed04SStefano Zampini #include <petscmat.h> 4*16406dc7SBarry Smith 54e47ed04SStefano Zampini int main(int argc,char **args) 64e47ed04SStefano Zampini { 74e47ed04SStefano Zampini Mat A,At,AAt; 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; 26cbc6b225SStefano Zampini PetscBool ismatis, ismpiaij; 274e47ed04SStefano Zampini 28327415f7SBarry Smith PetscFunctionBeginUser; 299566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc,&args,(char*)0,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)); 54cbc6b225SStefano Zampini 55cbc6b225SStefano Zampini /* create fake l2g maps to test the local API */ 569566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD,M-rstart,rstart,1,&is)); 579566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingCreateIS(is,&rl2g)); 589566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 599566063dSJacob Faibussowitsch PetscCall(ISCreateStride(PETSC_COMM_WORLD,N,0,1,&is)); 609566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingCreateIS(is,&cl2g)); 619566063dSJacob Faibussowitsch PetscCall(ISDestroy(&is)); 629566063dSJacob Faibussowitsch PetscCall(MatSetLocalToGlobalMapping(A,rl2g,cl2g)); 639566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingDestroy(&rl2g)); 649566063dSJacob Faibussowitsch PetscCall(ISLocalToGlobalMappingDestroy(&cl2g)); 65cbc6b225SStefano Zampini 669566063dSJacob Faibussowitsch PetscCall(MatCreateVecs(A,&x,&y)); 679566063dSJacob Faibussowitsch PetscCall(MatCreateVecs(A,NULL,&z)); 689566063dSJacob Faibussowitsch PetscCall(VecSet(x,1.)); 699566063dSJacob Faibussowitsch PetscCall(VecSet(z,2.)); 70cbc6b225SStefano Zampini if (!localapi) for (i = 0; i < n1; i++) i1[i] += rstart; 71cbc6b225SStefano Zampini if (!localapi) for (i = 0; i < n2; i++) i2[i] += rstart; 724e47ed04SStefano Zampini if (loc) { 734e47ed04SStefano Zampini if (locdiag) { 744e47ed04SStefano Zampini for (i = 0; i < n1; i++) j1[i] += cstart; 754e47ed04SStefano Zampini for (i = 0; i < n2; i++) j2[i] += cstart; 764e47ed04SStefano Zampini } else { 774e47ed04SStefano Zampini for (i = 0; i < n1; i++) j1[i] += cstart + m; 784e47ed04SStefano Zampini for (i = 0; i < n2; i++) j2[i] += cstart + m; 794e47ed04SStefano Zampini } 804e47ed04SStefano Zampini } 81cbc6b225SStefano Zampini if (neg) { n1 += 2; n2 += 2; } 82cbc6b225SStefano Zampini /* MatSetPreallocationCOOLocal maps the indices! */ 839566063dSJacob Faibussowitsch PetscCall(PetscMalloc2(PetscMax(n1,n2),&it,PetscMax(n1,n2),&jt)); 844e47ed04SStefano Zampini /* test with repeated entries */ 85cbc6b225SStefano Zampini if (!localapi) { 869566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOO(A,n1,i1,j1)); 87cbc6b225SStefano Zampini } else { 889566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it,i1,n1)); 899566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt,j1,n1)); 909566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A,n1,it,jt)); 91cbc6b225SStefano Zampini } 929566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v1,ADD_VALUES)); 939566063dSJacob Faibussowitsch PetscCall(MatMult(A,x,y)); 94*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 95*16406dc7SBarry Smith PetscCall(VecView(y,NULL)); 969566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v2,ADD_VALUES)); 979566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A,x,y,y)); 98*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 99*16406dc7SBarry Smith PetscCall(VecView(y,NULL)); 1009566063dSJacob Faibussowitsch PetscCall(MatTranspose(A,MAT_INITIAL_MATRIX,&At)); 101cbc6b225SStefano Zampini if (!ismatis) { 1029566063dSJacob Faibussowitsch PetscCall(MatMatMult(A,At,MAT_INITIAL_MATRIX,PETSC_DEFAULT,&AAt)); 103*16406dc7SBarry Smith PetscCall(MatView(AAt,NULL)); 1049566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 1059566063dSJacob Faibussowitsch PetscCall(MatMatMult(At,A,MAT_INITIAL_MATRIX,PETSC_DEFAULT,&AAt)); 106*16406dc7SBarry Smith PetscCall(MatView(AAt,NULL)); 1079566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 108cbc6b225SStefano Zampini } 1099566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 110cbc6b225SStefano Zampini 111e61fc153SStefano Zampini /* INSERT_VALUES will overwrite matrix entries but 112e61fc153SStefano Zampini still perform the sum of the repeated entries */ 1139566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v2,INSERT_VALUES)); 114*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 1154e47ed04SStefano Zampini 1164e47ed04SStefano Zampini /* test with unique entries */ 1179566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it,i2,n2)); 1189566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt,j2,n2)); 119e8729f6fSJunchao Zhang if (!localapi) { 120e8729f6fSJunchao Zhang PetscCall(MatSetPreallocationCOO(A,n2,it,jt)); 121e8729f6fSJunchao Zhang } else { 1229566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A,n2,it,jt)); 123cbc6b225SStefano Zampini } 1249566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v1,ADD_VALUES)); 1259566063dSJacob Faibussowitsch PetscCall(MatMult(A,x,y)); 126*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 127*16406dc7SBarry Smith PetscCall(VecView(y,NULL)); 1289566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v2,ADD_VALUES)); 1299566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A,x,y,z)); 130*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 131*16406dc7SBarry Smith PetscCall(VecView(z,NULL)); 1329566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(it,i2,n2)); 1339566063dSJacob Faibussowitsch PetscCall(PetscArraycpy(jt,j2,n2)); 134e8729f6fSJunchao Zhang if (!localapi) { 135e8729f6fSJunchao Zhang PetscCall(MatSetPreallocationCOO(A,n2,it,jt)); 136e8729f6fSJunchao Zhang } else { 1379566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOOLocal(A,n2,it,jt)); 138cbc6b225SStefano Zampini } 1399566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v1,INSERT_VALUES)); 1409566063dSJacob Faibussowitsch PetscCall(MatMult(A,x,y)); 141*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 142*16406dc7SBarry Smith PetscCall(VecView(y,NULL)); 1439566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,v2,INSERT_VALUES)); 1449566063dSJacob Faibussowitsch PetscCall(MatMultAdd(A,x,y,z)); 145*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 146*16406dc7SBarry Smith PetscCall(VecView(z,NULL)); 1479566063dSJacob Faibussowitsch PetscCall(MatTranspose(A,MAT_INITIAL_MATRIX,&At)); 148cbc6b225SStefano Zampini if (!ismatis) { 1499566063dSJacob Faibussowitsch PetscCall(MatMatMult(A,At,MAT_INITIAL_MATRIX,PETSC_DEFAULT,&AAt)); 150*16406dc7SBarry Smith PetscCall(MatView(AAt,NULL)); 1519566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 1529566063dSJacob Faibussowitsch PetscCall(MatMatMult(At,A,MAT_INITIAL_MATRIX,PETSC_DEFAULT,&AAt)); 153*16406dc7SBarry Smith PetscCall(MatView(AAt,NULL)); 1549566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 155cbc6b225SStefano Zampini } 1569566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 1574e47ed04SStefano Zampini 158cbc6b225SStefano Zampini /* test providing diagonal first, then offdiagonal */ 1599566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)A),&size)); 1609566063dSJacob Faibussowitsch PetscCall(PetscObjectBaseTypeCompare((PetscObject)A,MATMPIAIJ,&ismpiaij)); 1614e47ed04SStefano Zampini if (ismpiaij && size > 1) { 1624e47ed04SStefano Zampini Mat lA,lB; 1634e47ed04SStefano Zampini const PetscInt *garray,*iA,*jA,*iB,*jB; 1644e47ed04SStefano Zampini const PetscScalar *vA,*vB; 1654e47ed04SStefano Zampini PetscScalar *coo_v; 1664e47ed04SStefano Zampini PetscInt *coo_i,*coo_j; 1674e47ed04SStefano Zampini PetscInt i,j,nA,nB,nnz; 1684e47ed04SStefano Zampini PetscBool flg; 1694e47ed04SStefano Zampini 1709566063dSJacob Faibussowitsch PetscCall(MatMPIAIJGetSeqAIJ(A,&lA,&lB,&garray)); 1719566063dSJacob Faibussowitsch PetscCall(MatSeqAIJGetArrayRead(lA,&vA)); 1729566063dSJacob Faibussowitsch PetscCall(MatSeqAIJGetArrayRead(lB,&vB)); 1739566063dSJacob Faibussowitsch PetscCall(MatGetRowIJ(lA,0,PETSC_FALSE,PETSC_FALSE,&nA,&iA,&jA,&flg)); 1749566063dSJacob Faibussowitsch PetscCall(MatGetRowIJ(lB,0,PETSC_FALSE,PETSC_FALSE,&nB,&iB,&jB,&flg)); 1754e47ed04SStefano Zampini nnz = iA[nA] + iB[nB]; 1769566063dSJacob Faibussowitsch PetscCall(PetscMalloc3(nnz,&coo_i,nnz,&coo_j,nnz,&coo_v)); 1774e47ed04SStefano Zampini nnz = 0; 1784e47ed04SStefano Zampini for (i=0;i<nA;i++) { 1794e47ed04SStefano Zampini for (j=iA[i];j<iA[i+1];j++,nnz++) { 1804e47ed04SStefano Zampini coo_i[nnz] = i+rstart; 1814e47ed04SStefano Zampini coo_j[nnz] = jA[j]+cstart; 1824e47ed04SStefano Zampini coo_v[nnz] = vA[j]; 1834e47ed04SStefano Zampini } 1844e47ed04SStefano Zampini } 1854e47ed04SStefano Zampini for (i=0;i<nB;i++) { 1864e47ed04SStefano Zampini for (j=iB[i];j<iB[i+1];j++,nnz++) { 1874e47ed04SStefano Zampini coo_i[nnz] = i+rstart; 1884e47ed04SStefano Zampini coo_j[nnz] = garray[jB[j]]; 1894e47ed04SStefano Zampini coo_v[nnz] = vB[j]; 1904e47ed04SStefano Zampini } 1914e47ed04SStefano Zampini } 1929566063dSJacob Faibussowitsch PetscCall(MatRestoreRowIJ(lA,0,PETSC_FALSE,PETSC_FALSE,&nA,&iA,&jA,&flg)); 1939566063dSJacob Faibussowitsch PetscCall(MatRestoreRowIJ(lB,0,PETSC_FALSE,PETSC_FALSE,&nB,&iB,&jB,&flg)); 1949566063dSJacob Faibussowitsch PetscCall(MatSeqAIJRestoreArrayRead(lA,&vA)); 1959566063dSJacob Faibussowitsch PetscCall(MatSeqAIJRestoreArrayRead(lB,&vB)); 1964e47ed04SStefano Zampini 1979566063dSJacob Faibussowitsch PetscCall(MatSetPreallocationCOO(A,nnz,coo_i,coo_j)); 1989566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,coo_v,ADD_VALUES)); 1999566063dSJacob Faibussowitsch PetscCall(MatMult(A,x,y)); 200*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 201*16406dc7SBarry Smith PetscCall(VecView(y,NULL)); 2029566063dSJacob Faibussowitsch PetscCall(MatSetValuesCOO(A,coo_v,INSERT_VALUES)); 2039566063dSJacob Faibussowitsch PetscCall(MatMult(A,x,y)); 204*16406dc7SBarry Smith PetscCall(MatView(A,NULL)); 205*16406dc7SBarry Smith PetscCall(VecView(y,NULL)); 2069566063dSJacob Faibussowitsch PetscCall(MatTranspose(A,MAT_INITIAL_MATRIX,&At)); 2079566063dSJacob Faibussowitsch PetscCall(MatMatMult(A,At,MAT_INITIAL_MATRIX,PETSC_DEFAULT,&AAt)); 208*16406dc7SBarry Smith PetscCall(MatView(AAt,NULL)); 2099566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 2109566063dSJacob Faibussowitsch PetscCall(MatMatMult(At,A,MAT_INITIAL_MATRIX,PETSC_DEFAULT,&AAt)); 211*16406dc7SBarry Smith PetscCall(MatView(AAt,NULL)); 2129566063dSJacob Faibussowitsch PetscCall(MatDestroy(&AAt)); 2139566063dSJacob Faibussowitsch PetscCall(MatDestroy(&At)); 2144e47ed04SStefano Zampini 2159566063dSJacob Faibussowitsch PetscCall(PetscFree3(coo_i,coo_j,coo_v)); 2164e47ed04SStefano Zampini } 2179566063dSJacob Faibussowitsch PetscCall(PetscFree2(it,jt)); 2189566063dSJacob Faibussowitsch PetscCall(VecDestroy(&z)); 2199566063dSJacob Faibussowitsch PetscCall(VecDestroy(&x)); 2209566063dSJacob Faibussowitsch PetscCall(VecDestroy(&y)); 2219566063dSJacob Faibussowitsch PetscCall(MatDestroy(&A)); 2229566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 223b122ec5aSJacob Faibussowitsch return 0; 2244e47ed04SStefano Zampini } 2254e47ed04SStefano Zampini 2264e47ed04SStefano Zampini /*TEST 2274e47ed04SStefano Zampini 2284e47ed04SStefano Zampini test: 2294e47ed04SStefano Zampini suffix: 1 2304e47ed04SStefano Zampini filter: grep -v type 2314e47ed04SStefano Zampini diff_args: -j 232cbc6b225SStefano Zampini args: -mat_type {{seqaij mpiaij}} -localapi {{0 1}} -neg {{0 1}} 2334e47ed04SStefano Zampini 2344e47ed04SStefano Zampini test: 2354e47ed04SStefano Zampini requires: cuda 2364e47ed04SStefano Zampini suffix: 1_cuda 2374e47ed04SStefano Zampini filter: grep -v type 2384e47ed04SStefano Zampini diff_args: -j 239cbc6b225SStefano Zampini args: -mat_type {{seqaijcusparse mpiaijcusparse}} -localapi {{0 1}} -neg {{0 1}} 240cbc6b225SStefano Zampini output_file: output/ex123_1.out 241cbc6b225SStefano Zampini 242cbc6b225SStefano Zampini test: 243cbc6b225SStefano Zampini requires: kokkos_kernels !sycl 244cbc6b225SStefano Zampini suffix: 1_kokkos 245cbc6b225SStefano Zampini filter: grep -v type 246cbc6b225SStefano Zampini diff_args: -j 247cbc6b225SStefano Zampini args: -mat_type {{seqaijkokkos mpiaijkokkos}} -localapi {{0 1}} -neg {{0 1}} 2484e47ed04SStefano Zampini output_file: output/ex123_1.out 2494e47ed04SStefano Zampini 2504e47ed04SStefano Zampini test: 2514e47ed04SStefano Zampini suffix: 2 2524e47ed04SStefano Zampini nsize: 7 2534e47ed04SStefano Zampini filter: grep -v type 2544e47ed04SStefano Zampini diff_args: -j 255cbc6b225SStefano Zampini args: -mat_type mpiaij -localapi {{0 1}} -neg {{0 1}} 2564e47ed04SStefano Zampini 2574e47ed04SStefano Zampini test: 2584e47ed04SStefano Zampini requires: cuda 2594e47ed04SStefano Zampini suffix: 2_cuda 2604e47ed04SStefano Zampini nsize: 7 2614e47ed04SStefano Zampini filter: grep -v type 2624e47ed04SStefano Zampini diff_args: -j 263cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -localapi {{0 1}} -neg {{0 1}} 264cbc6b225SStefano Zampini output_file: output/ex123_2.out 265cbc6b225SStefano Zampini 266cbc6b225SStefano Zampini test: 267cbc6b225SStefano Zampini requires: kokkos_kernels !sycl 268cbc6b225SStefano Zampini suffix: 2_kokkos 269cbc6b225SStefano Zampini nsize: 7 270cbc6b225SStefano Zampini filter: grep -v type 271cbc6b225SStefano Zampini diff_args: -j 272cbc6b225SStefano Zampini args: -mat_type mpiaijkokkos -localapi {{0 1}} -neg {{0 1}} 2734e47ed04SStefano Zampini output_file: output/ex123_2.out 2744e47ed04SStefano Zampini 2754e47ed04SStefano Zampini test: 2764e47ed04SStefano Zampini suffix: 3 2774e47ed04SStefano Zampini nsize: 3 2784e47ed04SStefano Zampini filter: grep -v type 2794e47ed04SStefano Zampini diff_args: -j 280cbc6b225SStefano Zampini args: -mat_type mpiaij -loc -localapi {{0 1}} -neg {{0 1}} 2814e47ed04SStefano Zampini 2824e47ed04SStefano Zampini test: 2834e47ed04SStefano Zampini requires: cuda 2844e47ed04SStefano Zampini suffix: 3_cuda 2854e47ed04SStefano Zampini nsize: 3 2864e47ed04SStefano Zampini filter: grep -v type 2874e47ed04SStefano Zampini diff_args: -j 288cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -loc -localapi {{0 1}} -neg {{0 1}} 2894e47ed04SStefano Zampini output_file: output/ex123_3.out 2904e47ed04SStefano Zampini 2914e47ed04SStefano Zampini test: 29242550becSJunchao Zhang requires: !sycl kokkos_kernels 29342550becSJunchao Zhang suffix: 3_kokkos 29442550becSJunchao Zhang nsize: 3 29542550becSJunchao Zhang filter: grep -v type 29642550becSJunchao Zhang diff_args: -j 297cbc6b225SStefano Zampini args: -mat_type aijkokkos -loc -localapi {{0 1}} -neg {{0 1}} 29842550becSJunchao Zhang output_file: output/ex123_3.out 29942550becSJunchao Zhang 30042550becSJunchao Zhang test: 301cbc6b225SStefano Zampini suffix: 4 302cbc6b225SStefano Zampini nsize: 4 303cbc6b225SStefano Zampini filter: grep -v type 304cbc6b225SStefano Zampini diff_args: -j 305cbc6b225SStefano Zampini args: -mat_type mpiaij -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 306cbc6b225SStefano Zampini 307cbc6b225SStefano Zampini test: 308cbc6b225SStefano Zampini requires: cuda 309cbc6b225SStefano Zampini suffix: 4_cuda 310cbc6b225SStefano Zampini nsize: 4 311cbc6b225SStefano Zampini filter: grep -v type 312cbc6b225SStefano Zampini diff_args: -j 313cbc6b225SStefano Zampini args: -mat_type mpiaijcusparse -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 314cbc6b225SStefano Zampini output_file: output/ex123_4.out 315cbc6b225SStefano Zampini 316cbc6b225SStefano Zampini test: 31742550becSJunchao Zhang requires: !sycl kokkos_kernels 31842550becSJunchao Zhang suffix: 4_kokkos 31942550becSJunchao Zhang nsize: 4 32042550becSJunchao Zhang filter: grep -v type 32142550becSJunchao Zhang diff_args: -j 322cbc6b225SStefano Zampini args: -mat_type aijkokkos -loc -locdiag 0 -localapi {{0 1}} -neg {{0 1}} 32342550becSJunchao Zhang output_file: output/ex123_4.out 32442550becSJunchao Zhang 325cbc6b225SStefano Zampini test: 326cbc6b225SStefano Zampini suffix: matis 327cbc6b225SStefano Zampini nsize: 3 328cbc6b225SStefano Zampini filter: grep -v type 329cbc6b225SStefano Zampini diff_args: -j 330cbc6b225SStefano Zampini args: -mat_type is -localapi {{0 1}} -neg {{0 1}} 331cbc6b225SStefano Zampini 3324e47ed04SStefano Zampini TEST*/ 333