Lines Matching refs:A

21   Mat         A = NULL, B = NULL;  in MatShift_Basic()  local
29 if (isSeqAIJDerived) A = Y; in MatShift_Basic()
32 A = mpiaij->A; in MatShift_Basic()
36 if (A) { in MatShift_Basic()
37 oldValA = ((Mat_SeqAIJ *)A->data)->nonew; in MatShift_Basic()
38 ((Mat_SeqAIJ *)A->data)->nonew = 0; // so that new nonzero locations are allowed in MatShift_Basic()
52 if (A) ((Mat_SeqAIJ *)A->data)->nonew = oldValA; in MatShift_Basic()
95 PetscErrorCode MatCreate(MPI_Comm comm, Mat *A) in MatCreate() argument
100 PetscAssertPointer(A, 2); in MatCreate()
121 *A = B; in MatCreate()
153 …Comm comm, const char *prefix, PetscInt bs, PetscInt m, PetscInt n, PetscInt M, PetscInt N, Mat *A) in MatCreateFromOptions() argument
156 PetscAssertPointer(A, 8); in MatCreateFromOptions()
157 PetscCall(MatCreate(comm, A)); in MatCreateFromOptions()
158 if (prefix) PetscCall(MatSetOptionsPrefix(*A, prefix)); in MatCreateFromOptions()
159 PetscCall(MatSetBlockSize(*A, bs)); in MatCreateFromOptions()
160 PetscCall(MatSetSizes(*A, m, n, M, N)); in MatCreateFromOptions()
161 PetscCall(MatSetFromOptions(*A)); in MatCreateFromOptions()
225 PetscErrorCode MatSetSizes(Mat A, PetscInt m, PetscInt n, PetscInt M, PetscInt N) in MatSetSizes() argument
228 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatSetSizes()
229 PetscValidLogicalCollectiveInt(A, M, 4); in MatSetSizes()
230 PetscValidLogicalCollectiveInt(A, N, 5); in MatSetSizes()
233 …PetscCheck((A->rmap->n < 0 || A->rmap->N < 0) || (A->rmap->n == m && (M <= 0 || A->rmap->N == M)),… in MatSetSizes()
234 A->rmap->n, A->rmap->N); in MatSetSizes()
235 …PetscCheck((A->cmap->n < 0 || A->cmap->N < 0) || (A->cmap->n == n && (N <= 0 || A->cmap->N == N)),… in MatSetSizes()
236 A->cmap->n, A->cmap->N); in MatSetSizes()
237 A->rmap->n = m; in MatSetSizes()
238 A->cmap->n = n; in MatSetSizes()
239 A->rmap->N = M > -1 ? M : A->rmap->N; in MatSetSizes()
240 A->cmap->N = N > -1 ? N : A->cmap->N; in MatSetSizes()
353 PetscErrorCode MatXAIJSetPreallocation(Mat A, PetscInt bs, const PetscInt dnnz[], const PetscInt on… in MatXAIJSetPreallocation() argument
360 PetscCall(MatSetBlockSize(A, bs)); in MatXAIJSetPreallocation()
362 PetscCall(PetscLayoutSetUp(A->rmap)); in MatXAIJSetPreallocation()
363 PetscCall(PetscLayoutSetUp(A->cmap)); in MatXAIJSetPreallocation()
364 PetscCall(MatGetBlockSizes(A, &bs, &cbs)); in MatXAIJSetPreallocation()
366 PetscCall(MatSeqBAIJSetPreallocation(A, bs, 0, dnnz)); in MatXAIJSetPreallocation()
367 PetscCall(MatMPIBAIJSetPreallocation(A, bs, 0, dnnz, 0, onnz)); in MatXAIJSetPreallocation()
368 PetscCall(MatSeqSBAIJSetPreallocation(A, bs, 0, dnnzu)); in MatXAIJSetPreallocation()
369 PetscCall(MatMPISBAIJSetPreallocation(A, bs, 0, dnnzu, 0, onnzu)); in MatXAIJSetPreallocation()
374 PetscCall(PetscObjectHasFunction((PetscObject)A, "MatMPIAIJSetPreallocation_C", &aij)); in MatXAIJSetPreallocation()
375 PetscCall(PetscObjectHasFunction((PetscObject)A, "MatISSetPreallocation_C", &is)); in MatXAIJSetPreallocation()
376 PetscCall(PetscObjectHasFunction((PetscObject)A, "MatHYPRESetPreallocation_C", &hyp)); in MatXAIJSetPreallocation()
377 …if (!aij && !is && !hyp) PetscCall(PetscObjectHasFunction((PetscObject)A, "MatSeqAIJSetPreallocati… in MatXAIJSetPreallocation()
380 PetscCall(MatSeqAIJSetPreallocation(A, 0, dnnz)); in MatXAIJSetPreallocation()
381 PetscCall(MatMPIAIJSetPreallocation(A, 0, dnnz, 0, onnz)); in MatXAIJSetPreallocation()
382 PetscCall(MatISSetPreallocation(A, 0, dnnz, 0, onnz)); in MatXAIJSetPreallocation()
384 PetscCall(MatHYPRESetPreallocation(A, 0, dnnz, 0, onnz)); in MatXAIJSetPreallocation()
388 PetscCall(MatGetLocalSize(A, &m, NULL)); in MatXAIJSetPreallocation()
394 PetscCall(MatSeqAIJSetPreallocation(A, 0, dnnz ? sdnnz : NULL)); in MatXAIJSetPreallocation()
395 PetscCall(MatMPIAIJSetPreallocation(A, 0, dnnz ? sdnnz : NULL, 0, onnz ? sonnz : NULL)); in MatXAIJSetPreallocation()
396 PetscCall(MatISSetPreallocation(A, 0, dnnz ? sdnnz : NULL, 0, onnz ? sonnz : NULL)); in MatXAIJSetPreallocation()
398 PetscCall(MatHYPRESetPreallocation(A, 0, dnnz ? sdnnz : NULL, 0, onnz ? sonnz : NULL)); in MatXAIJSetPreallocation()
427 PetscErrorCode MatHeaderMerge(Mat A, Mat *C) in MatHeaderMerge() argument
440 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatHeaderMerge()
442 if (A == *C) PetscFunctionReturn(PETSC_SUCCESS); in MatHeaderMerge()
443 PetscCheckSameTypeAndComm(A, 1, *C, 2); in MatHeaderMerge()
445 Abops = ((PetscObject)A)->bops[0]; in MatHeaderMerge()
446 Aops = A->ops[0]; in MatHeaderMerge()
447 refct = ((PetscObject)A)->refct; in MatHeaderMerge()
448 mtype = ((PetscObject)A)->type_name; in MatHeaderMerge()
449 mname = ((PetscObject)A)->name; in MatHeaderMerge()
450 state = ((PetscObject)A)->state; in MatHeaderMerge()
451 mprefix = ((PetscObject)A)->prefix; in MatHeaderMerge()
452 product = A->product; in MatHeaderMerge()
453 redundant = A->redundant; in MatHeaderMerge()
454 qlist = ((PetscObject)A)->qlist; in MatHeaderMerge()
455 olist = ((PetscObject)A)->olist; in MatHeaderMerge()
458 ((PetscObject)A)->type_name = NULL; in MatHeaderMerge()
459 ((PetscObject)A)->name = NULL; in MatHeaderMerge()
460 ((PetscObject)A)->qlist = NULL; in MatHeaderMerge()
461 ((PetscObject)A)->olist = NULL; in MatHeaderMerge()
468 PetscTryTypeMethod(A, destroy); in MatHeaderMerge()
470 PetscCall(PetscFree(A->defaultvectype)); in MatHeaderMerge()
471 PetscCall(PetscFree(A->defaultrandtype)); in MatHeaderMerge()
472 PetscCall(PetscLayoutDestroy(&A->rmap)); in MatHeaderMerge()
473 PetscCall(PetscLayoutDestroy(&A->cmap)); in MatHeaderMerge()
474 PetscCall(PetscComposedQuantitiesDestroy((PetscObject)A)); in MatHeaderMerge()
477 PetscCall(PetscFree(A->factorprefix)); in MatHeaderMerge()
478 PetscCall(PetscMemcpy(A, *C, sizeof(struct _p_Mat))); in MatHeaderMerge()
481 ((PetscObject)A)->bops[0] = Abops; in MatHeaderMerge()
482 A->ops[0] = Aops; in MatHeaderMerge()
483 ((PetscObject)A)->refct = refct; in MatHeaderMerge()
484 ((PetscObject)A)->type_name = mtype; in MatHeaderMerge()
485 ((PetscObject)A)->name = mname; in MatHeaderMerge()
486 ((PetscObject)A)->prefix = mprefix; in MatHeaderMerge()
487 ((PetscObject)A)->state = state + 1; in MatHeaderMerge()
488 A->product = product; in MatHeaderMerge()
489 A->redundant = redundant; in MatHeaderMerge()
492 PetscCall(PetscFunctionListDuplicate(qlist, &((PetscObject)A)->qlist)); in MatHeaderMerge()
493 PetscCall(PetscObjectListDuplicate(olist, &((PetscObject)A)->olist)); in MatHeaderMerge()
531 PetscErrorCode MatHeaderReplace(Mat A, Mat *C) in MatHeaderReplace() argument
539 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatHeaderReplace()
541 if (A == *C) PetscFunctionReturn(PETSC_SUCCESS); in MatHeaderReplace()
542 PetscCheckSameComm(A, 1, *C, 2); in MatHeaderReplace()
546 refct = ((PetscObject)A)->refct; in MatHeaderReplace()
547 state = ((PetscObject)A)->state; in MatHeaderReplace()
548 stencil = A->stencil; in MatHeaderReplace()
549 PetscCall(PetscMemcpy(&buffer, A, sizeof(struct _p_Mat))); in MatHeaderReplace()
550 PetscCall(PetscMemcpy(A, *C, sizeof(struct _p_Mat))); in MatHeaderReplace()
552 ((PetscObject)A)->refct = refct; in MatHeaderReplace()
553 ((PetscObject)A)->state = state + 1; in MatHeaderReplace()
554 A->stencil = stencil; in MatHeaderReplace()
574 PetscErrorCode MatBindToCPU(Mat A, PetscBool flg) in MatBindToCPU() argument
577 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatBindToCPU()
578 PetscValidLogicalCollectiveBool(A, flg, 2); in MatBindToCPU()
580 if (A->boundtocpu == flg) PetscFunctionReturn(PETSC_SUCCESS); in MatBindToCPU()
581 A->boundtocpu = flg; in MatBindToCPU()
582 PetscTryTypeMethod(A, bindtocpu, flg); in MatBindToCPU()
600 PetscErrorCode MatBoundToCPU(Mat A, PetscBool *flg) in MatBoundToCPU() argument
603 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatBoundToCPU()
606 *flg = A->boundtocpu; in MatBoundToCPU()
613 PetscErrorCode MatSetValuesCOO_Basic(Mat A, const PetscScalar coo_v[], InsertMode imode) in MatSetValuesCOO_Basic() argument
621 PetscCall(PetscObjectQuery((PetscObject)A, "__PETSc_coo_i", (PetscObject *)&is_coo_i)); in MatSetValuesCOO_Basic()
622 PetscCall(PetscObjectQuery((PetscObject)A, "__PETSc_coo_j", (PetscObject *)&is_coo_j)); in MatSetValuesCOO_Basic()
623 PetscCheck(is_coo_i, PetscObjectComm((PetscObject)A), PETSC_ERR_COR, "Missing coo_i IS"); in MatSetValuesCOO_Basic()
624 PetscCheck(is_coo_j, PetscObjectComm((PetscObject)A), PETSC_ERR_COR, "Missing coo_j IS"); in MatSetValuesCOO_Basic()
630 if (imode != ADD_VALUES) PetscCall(MatZeroEntries(A)); in MatSetValuesCOO_Basic()
631 …for (n = 0; n < n_i; n++) PetscCall(MatSetValue(A, coo_i[n], coo_j[n], coo_v ? coo_v[n] : zero, AD… in MatSetValuesCOO_Basic()
637 PetscErrorCode MatSetPreallocationCOO_Basic(Mat A, PetscCount ncoo, PetscInt coo_i[], PetscInt coo_… in MatSetPreallocationCOO_Basic() argument
646 PetscCall(PetscLayoutSetUp(A->rmap)); in MatSetPreallocationCOO_Basic()
647 PetscCall(PetscLayoutSetUp(A->cmap)); in MatSetPreallocationCOO_Basic()
648 PetscCall(MatCreate(PetscObjectComm((PetscObject)A), &preallocator)); in MatSetPreallocationCOO_Basic()
650 PetscCall(MatSetSizes(preallocator, A->rmap->n, A->cmap->n, A->rmap->N, A->cmap->N)); in MatSetPreallocationCOO_Basic()
651 PetscCall(MatSetLayouts(preallocator, A->rmap, A->cmap)); in MatSetPreallocationCOO_Basic()
656 PetscCall(MatPreallocatorPreallocate(preallocator, PETSC_TRUE, A)); in MatSetPreallocationCOO_Basic()
660 PetscCall(PetscObjectCompose((PetscObject)A, "__PETSc_coo_i", (PetscObject)is_coo_i)); in MatSetPreallocationCOO_Basic()
661 PetscCall(PetscObjectCompose((PetscObject)A, "__PETSc_coo_j", (PetscObject)is_coo_j)); in MatSetPreallocationCOO_Basic()
697 PetscErrorCode MatSetPreallocationCOO(Mat A, PetscCount ncoo, PetscInt coo_i[], PetscInt coo_j[]) in MatSetPreallocationCOO() argument
702 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatSetPreallocationCOO()
703 PetscValidType(A, 1); in MatSetPreallocationCOO()
706 PetscCall(PetscLayoutSetUp(A->rmap)); in MatSetPreallocationCOO()
707 PetscCall(PetscLayoutSetUp(A->cmap)); in MatSetPreallocationCOO()
708 PetscCall(PetscObjectQueryFunction((PetscObject)A, "MatSetPreallocationCOO_C", &f)); in MatSetPreallocationCOO()
710 PetscCall(PetscLogEventBegin(MAT_PreallCOO, A, 0, 0, 0)); in MatSetPreallocationCOO()
712 PetscCall((*f)(A, ncoo, coo_i, coo_j)); in MatSetPreallocationCOO()
714 PetscCall(MatSetPreallocationCOO_Basic(A, ncoo, coo_i, coo_j)); in MatSetPreallocationCOO()
716 PetscCall(PetscLogEventEnd(MAT_PreallCOO, A, 0, 0, 0)); in MatSetPreallocationCOO()
717 A->preallocated = PETSC_TRUE; in MatSetPreallocationCOO()
718 A->nonzerostate++; in MatSetPreallocationCOO()
751 PetscErrorCode MatSetPreallocationCOOLocal(Mat A, PetscCount ncoo, PetscInt coo_i[], PetscInt coo_j… in MatSetPreallocationCOOLocal() argument
756 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatSetPreallocationCOOLocal()
757 PetscValidType(A, 1); in MatSetPreallocationCOOLocal()
760 PetscCall(PetscLayoutSetUp(A->rmap)); in MatSetPreallocationCOOLocal()
761 PetscCall(PetscLayoutSetUp(A->cmap)); in MatSetPreallocationCOOLocal()
763 PetscCall(PetscObjectQueryFunction((PetscObject)A, "MatSetPreallocationCOOLocal_C", &f)); in MatSetPreallocationCOOLocal()
765 PetscCall((*f)(A, ncoo, coo_i, coo_j)); in MatSetPreallocationCOOLocal()
766 A->nonzerostate++; in MatSetPreallocationCOOLocal()
771 PetscCall(MatGetLocalToGlobalMapping(A, &ltog_row, &ltog_col)); in MatSetPreallocationCOOLocal()
780 PetscCall(MatSetPreallocationCOO(A, ncoo, coo_i, coo_j)); in MatSetPreallocationCOOLocal()
782 A->preallocated = PETSC_TRUE; in MatSetPreallocationCOOLocal()
808 PetscErrorCode MatSetValuesCOO(Mat A, const PetscScalar coo_v[], InsertMode imode) in MatSetValuesCOO() argument
814 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatSetValuesCOO()
815 PetscValidType(A, 1); in MatSetValuesCOO()
816 MatCheckPreallocated(A, 1); in MatSetValuesCOO()
817 PetscValidLogicalCollectiveEnum(A, imode, 3); in MatSetValuesCOO()
818 PetscCall(PetscObjectQueryFunction((PetscObject)A, "MatSetValuesCOO_C", &f)); in MatSetValuesCOO()
819 PetscCall(PetscLogEventBegin(MAT_SetVCOO, A, 0, 0, 0)); in MatSetValuesCOO()
821 …PetscCall((*f)(A, coo_v, imode)); // all known COO implementations do not use MatStash. They do th… in MatSetValuesCOO()
822 PetscCall(MatGetOption(A, MAT_NO_OFF_PROC_ENTRIES, &oldFlg)); in MatSetValuesCOO()
823 …PetscCall(MatSetOption(A, MAT_NO_OFF_PROC_ENTRIES, PETSC_TRUE)); // set A->nooffprocentries to avo… in MatSetValuesCOO()
825 …PetscCall(MatSetValuesCOO_Basic(A, coo_v, imode)); // fall back to MatSetValues, which might use M… in MatSetValuesCOO()
827 PetscCall(MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY)); in MatSetValuesCOO()
828 PetscCall(MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY)); in MatSetValuesCOO()
829 if (f) PetscCall(MatSetOption(A, MAT_NO_OFF_PROC_ENTRIES, oldFlg)); in MatSetValuesCOO()
830 PetscCall(PetscLogEventEnd(MAT_SetVCOO, A, 0, 0, 0)); in MatSetValuesCOO()
856 PetscErrorCode MatSetBindingPropagates(Mat A, PetscBool flg) in MatSetBindingPropagates() argument
859 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatSetBindingPropagates()
861 A->bindingpropagates = flg; in MatSetBindingPropagates()
879 PetscErrorCode MatGetBindingPropagates(Mat A, PetscBool *flg) in MatGetBindingPropagates() argument
882 PetscValidHeaderSpecific(A, MAT_CLASSID, 1); in MatGetBindingPropagates()
885 *flg = A->bindingpropagates; in MatGetBindingPropagates()