Lines Matching +full:- +full:m

12   Mat         M;
13 Mat_MPIAIJ *mpimat = (Mat_MPIAIJ *)A->data;
15 PetscInt m, n, lm, ln, bs = A->rmap->bs;
19 const PetscBool3 symmetric = A->symmetric, hermitian = A->hermitian, spd = A->spd;
22 PetscCall(MatGetSize(A, &m, &n));
24 PetscCall(MatConvert_SeqAIJ_SeqSBAIJ_Preallocate(mpimat->A, &d_nnz));
25 PetscCall(MatConvert_SeqAIJ_SeqBAIJ_Preallocate(mpimat->B, &o_nnz));
26 PetscCall(MatCreate(PetscObjectComm((PetscObject)A), &M));
27 PetscCall(MatSetSizes(M, lm, ln, m, n));
28 PetscCall(MatSetType(M, MATMPISBAIJ));
29 PetscCall(MatSeqSBAIJSetPreallocation(M, bs, 0, d_nnz));
30 PetscCall(MatMPISBAIJSetPreallocation(M, bs, 0, d_nnz, 0, o_nnz));
38 } else M = *newmat;
43 PetscCall(MatConvert_Basic(A, newtype, MAT_REUSE_MATRIX, &M));
45 if (reuse == MAT_INPLACE_MATRIX) PetscCall(MatHeaderReplace(A, &M));
46 else *newmat = M;
53 Mat M;
54 Mat_MPIBAIJ *mpimat = (Mat_MPIBAIJ *)A->data;
55 Mat_SeqBAIJ *Aa = (Mat_SeqBAIJ *)mpimat->A->data, *Ba = (Mat_SeqBAIJ *)mpimat->B->data;
58 PetscInt m, n, lm, ln;
62 PetscInt bs = A->rmap->bs;
67 PetscCall(MatGetSize(A, &m, &n));
71 PetscCall(MatGetDiagonalMarkers_SeqBAIJ(mpimat->A, &adiag, NULL));
73 d_nnz[i] = Aa->i[i + 1] - adiag[i];
74 o_nnz[i] = Ba->i[i + 1] - Ba->i[i];
77 PetscCall(MatCreate(PetscObjectComm((PetscObject)A), &M));
78 PetscCall(MatSetSizes(M, lm, ln, m, n));
79 PetscCall(MatSetType(M, MATMPISBAIJ));
80 PetscCall(MatSeqSBAIJSetPreallocation(M, bs, 0, d_nnz));
81 PetscCall(MatMPISBAIJSetPreallocation(M, bs, 0, d_nnz, 0, o_nnz));
84 } else M = *newmat;
87 PetscCall(MatSetOption(M, MAT_IGNORE_LOWER_TRIANGULAR, PETSC_TRUE));
90 PetscCall(MatSetValues(M, 1, &i, nz, cwork, vwork, INSERT_VALUES));
93 PetscCall(MatAssemblyBegin(M, MAT_FINAL_ASSEMBLY));
94 PetscCall(MatAssemblyEnd(M, MAT_FINAL_ASSEMBLY));
96 if (reuse == MAT_INPLACE_MATRIX) PetscCall(MatHeaderReplace(A, &M));
97 else *newmat = M;