14e47ed04SStefano Zampini static char help[] = "Test MatSetPreallocationCOO and MatSetValuesCOO\n\n";
24e47ed04SStefano Zampini
34e47ed04SStefano Zampini #include <petscmat.h>
416406dc7SBarry Smith
main(int argc,char ** args)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