Lines Matching refs:F
111 static PetscErrorCode MatSolve_SPQR_Internal(Mat F, cholmod_dense *cholB, cholmod_dense **_Y_handle)
113 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
119 PetscCheck(QTB_handle, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SuiteSparseQR_C_qmult failed");
121 PetscCheck(Y_handle, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SuiteSparseQR_C_solve failed");
124 PetscCheck(Z_handle, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SuiteSparseQR_C_solve failed");
126 PetscCheck(Y_handle, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SuiteSparseQR_C_solve failed");
134 static PetscErrorCode MatSolve_SPQR(Mat F, Vec B, Vec X)
136 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
143 PetscCall(MatSolve_SPQR_Internal(F, &cholB, &Y_handle));
154 static PetscErrorCode MatMatSolve_SPQR(Mat F, Mat B, Mat X)
156 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
163 PetscCall(MatSolve_SPQR_Internal(F, &cholB, &Y_handle));
178 static PetscErrorCode MatSolveTranspose_SPQR_Internal(Mat F, cholmod_dense *cholB, cholmod_dense **_Y_handle)
180 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
185 PetscCheck(RTB_handle, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SuiteSparseQR_C_solve failed");
187 PetscCheck(Y_handle, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SuiteSparseQR_C_qmult failed");
193 static PetscErrorCode MatSolveTranspose_SPQR(Mat F, Vec B, Vec X)
195 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
202 PetscCall(MatSolveTranspose_SPQR_Internal(F, &cholB, &Y_handle));
212 static PetscErrorCode MatMatSolveTranspose_SPQR(Mat F, Mat B, Mat X)
214 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
221 PetscCall(MatSolveTranspose_SPQR_Internal(F, &cholB, &Y_handle));
235 static PetscErrorCode MatQRFactorNumeric_SPQR(Mat F, Mat A, const MatFactorInfo *info)
237 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
247 PetscCheck(!err, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SPQR factorization failed with status %d", chol->common->status);
252 F->ops->solve = MatSolve_SPQR;
253 F->ops->matsolve = MatMatSolve_SPQR;
258 F->ops->solvetranspose = MatSolve_SPQR;
259 F->ops->matsolvetranspose = MatMatSolve_SPQR;
262 F->ops->solvetranspose = MatSolveTranspose_SPQR;
263 F->ops->matsolvetranspose = MatMatSolveTranspose_SPQR;
269 PETSC_INTERN PetscErrorCode MatQRFactorSymbolic_SPQR(Mat F, Mat A, IS perm, const MatFactorInfo *info)
271 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
282 PetscCheck(chol->spqrfact, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "CHOLMOD analysis failed using internal ordering with status %d", chol->common->status);
287 PetscCall(PetscObjectComposeFunction((PetscObject)F, "MatQRFactorNumeric_C", MatQRFactorNumeric_SPQR));
307 PETSC_INTERN PetscErrorCode MatGetFactor_seqaij_spqr(Mat A, MatFactorType ftype, Mat *F)
315 /* Create the factorization matrix F */
343 *F = B;