Lines Matching refs:U
7 Mat U, V; /* dense tall-skinny matrices */ member
17 Mat U, V; in MatMult_LRC_kernel() local
20 U = transpose ? Na->V : Na->U; in MatMult_LRC_kernel()
21 V = transpose ? Na->U : Na->V; in MatMult_LRC_kernel()
32 PetscCall(MatMultAdd(U, Na->work1, y, y)); in MatMult_LRC_kernel()
34 PetscCall(MatMult(U, Na->work1, y)); in MatMult_LRC_kernel()
46 PetscCall(MatDenseGetLocalMatrix(U, &Uloc)); in MatMult_LRC_kernel()
106 PetscCall(MatDestroy(&Na->U)); in MatDestroy_LRC()
119 static PetscErrorCode MatLRCGetMats_LRC(Mat N, Mat *A, Mat *U, Vec *c, Mat *V) in MatLRCGetMats_LRC() argument
125 if (U) *U = Na->U; in MatLRCGetMats_LRC()
131 static PetscErrorCode MatLRCSetMats_LRC(Mat N, Mat A, Mat U, Vec c, Mat V) in MatLRCSetMats_LRC() argument
137 PetscCall(PetscObjectReference((PetscObject)U)); in MatLRCSetMats_LRC()
141 PetscCall(MatDestroy(&Na->U)); in MatLRCSetMats_LRC()
145 Na->U = U; 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
207 PetscValidHeaderSpecific(U, MAT_CLASSID, 3); in MatLRCSetMats()
211 PetscCheckSameComm(U, 3, V, 5); in MatLRCSetMats()
213 if (A) PetscCheckSameComm(A, 2, U, 3); in MatLRCSetMats()
214 if (!V) V = U; in MatLRCSetMats()
215 PetscCall(PetscObjectBaseTypeCompareAny((PetscObject)U, &match, MATSEQDENSE, MATMPIDENSE, "")); in MatLRCSetMats()
216 …(match, PetscObjectComm((PetscObject)U), PETSC_ERR_SUP, "Matrix U must be of type dense, found %s"… in MatLRCSetMats()
218 …PetscCheck(match, PetscObjectComm((PetscObject)U), PETSC_ERR_SUP, "Matrix V must be of type dense,… in MatLRCSetMats()
219 PetscCall(PetscStrcmp(U->defaultvectype, V->defaultvectype, &match)); in MatLRCSetMats()
220 …match, PetscObjectComm((PetscObject)U), PETSC_ERR_ARG_WRONG, "Matrix U and V must have the same Ve… in MatLRCSetMats()
222 PetscCall(PetscStrcmp(A->defaultvectype, U->defaultvectype, &match)); in MatLRCSetMats()
223 …tscObjectComm((PetscObject)U), PETSC_ERR_ARG_WRONG, "Matrix A and U must have the same VecType %s … in MatLRCSetMats()
225 PetscCall(MatGetSize(U, NULL, &k)); in MatLRCSetMats()
227 …PetscCheck(k == k1, PetscObjectComm((PetscObject)U), PETSC_ERR_ARG_INCOMP, "U and V have different… in MatLRCSetMats()
228 PetscCall(MatGetLocalSize(U, &m, NULL)); in MatLRCSetMats()
238 PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)U), &size)); in MatLRCSetMats()
246 PetscUseMethod(N, "MatLRCSetMats_C", (Mat, Mat, Mat, Vec, Mat), (N, A, U, c, V)); in MatLRCSetMats()
254 Mat U = Na->U; in MatSetUp_LRC() local
259 PetscBool sym = (PetscBool)(U == V), dummy; in MatSetUp_LRC()
262 PetscCall(MatSetVecType(N, U->defaultvectype)); in MatSetUp_LRC()
266 PetscCall(MatDenseGetLocalMatrix(Na->U, &Uloc)); in MatSetUp_LRC()
269 PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)U), &size)); in MatSetUp_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()
378 PetscCall(MatLRCSetMats(*N, A, U, c, V)); in MatCreateLRC()