Lines Matching refs:N

13 static PetscErrorCode MatMult_LRC_kernel(Mat N, Vec x, Vec y, PetscBool transpose)  in MatMult_LRC_kernel()  argument
15 Mat_LRC *Na = (Mat_LRC *)N->data; in MatMult_LRC_kernel()
22 PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)N), &size)); in MatMult_LRC_kernel()
59 …etscCallMPI(MPIU_Allreduce(w1, w2, nwork, MPIU_SCALAR, MPIU_SUM, PetscObjectComm((PetscObject)N))); in MatMult_LRC_kernel()
86 static PetscErrorCode MatMult_LRC(Mat N, Vec x, Vec y) in MatMult_LRC() argument
89 PetscCall(MatMult_LRC_kernel(N, x, y, PETSC_FALSE)); in MatMult_LRC()
93 static PetscErrorCode MatMultTranspose_LRC(Mat N, Vec x, Vec y) in MatMultTranspose_LRC() argument
96 PetscCall(MatMult_LRC_kernel(N, x, y, PETSC_TRUE)); in MatMultTranspose_LRC()
100 static PetscErrorCode MatDestroy_LRC(Mat N) in MatDestroy_LRC() argument
102 Mat_LRC *Na = (Mat_LRC *)N->data; in MatDestroy_LRC()
113 PetscCall(PetscFree(N->data)); in MatDestroy_LRC()
114 PetscCall(PetscObjectComposeFunction((PetscObject)N, "MatLRCGetMats_C", NULL)); in MatDestroy_LRC()
115 PetscCall(PetscObjectComposeFunction((PetscObject)N, "MatLRCSetMats_C", NULL)); in MatDestroy_LRC()
119 static PetscErrorCode MatLRCGetMats_LRC(Mat N, Mat *A, Mat *U, Vec *c, Mat *V) in MatLRCGetMats_LRC() argument
121 Mat_LRC *Na = (Mat_LRC *)N->data; in MatLRCGetMats_LRC()
131 static PetscErrorCode MatLRCSetMats_LRC(Mat N, Mat A, Mat U, Vec c, Mat V) in MatLRCSetMats_LRC() argument
133 Mat_LRC *Na = (Mat_LRC *)N->data; in MatLRCSetMats_LRC()
174 PetscErrorCode MatLRCGetMats(Mat N, Mat *A, Mat *U, Vec *c, Mat *V) in MatLRCGetMats() argument
177 PetscUseMethod(N, "MatLRCGetMats_C", (Mat, Mat *, Mat *, Vec *, Mat *), (N, A, U, c, V)); in MatLRCGetMats()
200 PetscErrorCode MatLRCSetMats(Mat N, Mat A, Mat U, Vec c, Mat V) in MatLRCSetMats() argument
244 PetscCall(MatSetSizes(N, m, n, PETSC_DECIDE, PETSC_DECIDE)); in MatLRCSetMats()
246 PetscUseMethod(N, "MatLRCSetMats_C", (Mat, Mat, Mat, Vec, Mat), (N, A, U, c, V)); in MatLRCSetMats()
250 static PetscErrorCode MatSetUp_LRC(Mat N) in MatSetUp_LRC() argument
252 Mat_LRC *Na = (Mat_LRC *)N->data; in MatSetUp_LRC()
262 PetscCall(MatSetVecType(N, U->defaultvectype)); in MatSetUp_LRC()
265 PetscCall(MatSetOption(N, MAT_SYMMETRIC, sym)); in MatSetUp_LRC()
304 N->assembled = PETSC_TRUE; in MatSetUp_LRC()
305 N->preallocated = PETSC_TRUE; in MatSetUp_LRC()
309 PETSC_EXTERN PetscErrorCode MatCreate_LRC(Mat N) in MatCreate_LRC() argument
314 PetscCall(PetscObjectChangeTypeName((PetscObject)N, MATLRC)); in MatCreate_LRC()
316 N->data = (void *)Na; in MatCreate_LRC()
317 N->ops->destroy = MatDestroy_LRC; in MatCreate_LRC()
318 N->ops->setup = MatSetUp_LRC; in MatCreate_LRC()
319 N->ops->mult = MatMult_LRC; in MatCreate_LRC()
320 N->ops->multtranspose = MatMultTranspose_LRC; in MatCreate_LRC()
322 PetscCall(PetscObjectComposeFunction((PetscObject)N, "MatLRCGetMats_C", MatLRCGetMats_LRC)); in MatCreate_LRC()
323 PetscCall(PetscObjectComposeFunction((PetscObject)N, "MatLRCSetMats_C", MatLRCSetMats_LRC)); in MatCreate_LRC()
373 PetscErrorCode MatCreateLRC(Mat A, Mat U, Vec c, Mat V, Mat *N) in MatCreateLRC() argument
376 PetscCall(MatCreate(PetscObjectComm((PetscObject)U), N)); in MatCreateLRC()
377 PetscCall(MatSetType(*N, MATLRC)); in MatCreateLRC()
378 PetscCall(MatLRCSetMats(*N, A, U, c, V)); in MatCreateLRC()
379 PetscCall(MatSetUp(*N)); in MatCreateLRC()