Lines Matching refs:loTriFactor

311 …Mat_SeqAIJCUSPARSETriFactorStruct *loTriFactor        = (Mat_SeqAIJCUSPARSETriFactorStruct *)cuspa…  in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()  local
323 if (!loTriFactor) { in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
360 PetscCall(PetscNew(&loTriFactor)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
361 loTriFactor->solvePolicy = CUSPARSE_SOLVE_POLICY_USE_LEVEL; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
363 PetscCallCUSPARSE(cusparseCreateMatDescr(&loTriFactor->descr)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
364 PetscCallCUSPARSE(cusparseSetMatIndexBase(loTriFactor->descr, CUSPARSE_INDEX_BASE_ZERO)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
366 PetscCallCUSPARSE(cusparseSetMatType(loTriFactor->descr, CUSPARSE_MATRIX_TYPE_GENERAL)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
368 PetscCallCUSPARSE(cusparseSetMatType(loTriFactor->descr, CUSPARSE_MATRIX_TYPE_TRIANGULAR)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
370 PetscCallCUSPARSE(cusparseSetMatFillMode(loTriFactor->descr, CUSPARSE_FILL_MODE_LOWER)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
371 PetscCallCUSPARSE(cusparseSetMatDiagType(loTriFactor->descr, CUSPARSE_DIAG_TYPE_UNIT)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
374 loTriFactor->solveOp = CUSPARSE_OPERATION_NON_TRANSPOSE; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
377 loTriFactor->csrMat = new CsrMatrix; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
378 loTriFactor->csrMat->num_rows = n; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
379 loTriFactor->csrMat->num_cols = n; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
380 loTriFactor->csrMat->num_entries = nzLower; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
382 loTriFactor->csrMat->row_offsets = new THRUSTINTARRAY32(n + 1); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
383 loTriFactor->csrMat->row_offsets->assign(AiLo, AiLo + n + 1); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
385 loTriFactor->csrMat->column_indices = new THRUSTINTARRAY32(nzLower); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
386 loTriFactor->csrMat->column_indices->assign(AjLo, AjLo + nzLower); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
388 loTriFactor->csrMat->values = new THRUSTARRAY(nzLower); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
389 loTriFactor->csrMat->values->assign(AALo, AALo + nzLower); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
393 PetscCallCUSPARSE(cusparseCreateCsrsvInfo(&loTriFactor->solveInfo)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
395 …Factors->handle, loTriFactor->solveOp, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_ent… in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
396loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
397 PetscCallCUDA(cudaMalloc(&loTriFactor->solveBuffer, loTriFactor->solveBufferSize)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
401 …Factors->handle, loTriFactor->solveOp, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_ent… in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
402loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
407 ((Mat_SeqAIJCUSPARSETriFactors *)A->spptr)->loTriFactorPtr = loTriFactor; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
408 loTriFactor->AA_h = AALo; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
413 …if (!loTriFactor->AA_h) PetscCallCUDA(cudaMallocHost((void **)&loTriFactor->AA_h, nzLower * sizeof… in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
415 loTriFactor->AA_h[0] = 1.0; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
421 PetscCall(PetscArraycpy(&loTriFactor->AA_h[offset], v, nz)); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
423 loTriFactor->AA_h[offset] = 1.0; in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
427 loTriFactor->csrMat->values->assign(loTriFactor->AA_h, loTriFactor->AA_h + nzLower); in MatSeqAIJCUSPARSEBuildILULowerTriMatrix()
777 …Mat_SeqAIJCUSPARSETriFactorStruct *loTriFactor = (Mat_SeqAIJCUSPARSETriFactorStruct *)cuspa… in MatSeqAIJCUSPARSEBuildICCTriMatrices() local
793 if (!upTriFactor && !loTriFactor) { in MatSeqAIJCUSPARSEBuildICCTriMatrices()
879 PetscCall(PetscNew(&loTriFactor)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
880 loTriFactor->solvePolicy = CUSPARSE_SOLVE_POLICY_USE_LEVEL; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
883 PetscCallCUSPARSE(cusparseCreateMatDescr(&loTriFactor->descr)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
884 PetscCallCUSPARSE(cusparseSetMatIndexBase(loTriFactor->descr, CUSPARSE_INDEX_BASE_ZERO)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
886 PetscCallCUSPARSE(cusparseSetMatType(loTriFactor->descr, CUSPARSE_MATRIX_TYPE_GENERAL)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
888 PetscCallCUSPARSE(cusparseSetMatType(loTriFactor->descr, CUSPARSE_MATRIX_TYPE_TRIANGULAR)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
890 PetscCallCUSPARSE(cusparseSetMatFillMode(loTriFactor->descr, CUSPARSE_FILL_MODE_UPPER)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
891 PetscCallCUSPARSE(cusparseSetMatDiagType(loTriFactor->descr, CUSPARSE_DIAG_TYPE_NON_UNIT)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
894 loTriFactor->solveOp = CUSPARSE_OPERATION_TRANSPOSE; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
897 loTriFactor->csrMat = new CsrMatrix; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
898 loTriFactor->csrMat->num_rows = A->rmap->n; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
899 loTriFactor->csrMat->num_cols = A->cmap->n; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
900 loTriFactor->csrMat->num_entries = a->nz; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
902 loTriFactor->csrMat->row_offsets = new THRUSTINTARRAY32(A->rmap->n + 1); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
903 loTriFactor->csrMat->row_offsets->assign(AiUp, AiUp + A->rmap->n + 1); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
905 loTriFactor->csrMat->column_indices = new THRUSTINTARRAY32(a->nz); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
906 loTriFactor->csrMat->column_indices->assign(AjUp, AjUp + a->nz); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
908 loTriFactor->csrMat->values = new THRUSTARRAY(a->nz); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
909 loTriFactor->csrMat->values->assign(AALo, AALo + a->nz); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
913 PetscCallCUSPARSE(cusparseCreateCsrsvInfo(&loTriFactor->solveInfo)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
915 …Factors->handle, loTriFactor->solveOp, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_ent… in MatSeqAIJCUSPARSEBuildICCTriMatrices()
916loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSeqAIJCUSPARSEBuildICCTriMatrices()
917 PetscCallCUDA(cudaMalloc(&loTriFactor->solveBuffer, loTriFactor->solveBufferSize)); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
921 …Factors->handle, loTriFactor->solveOp, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_ent… in MatSeqAIJCUSPARSEBuildICCTriMatrices()
922loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSeqAIJCUSPARSEBuildICCTriMatrices()
928 ((Mat_SeqAIJCUSPARSETriFactors *)A->spptr)->loTriFactorPtr = loTriFactor; in MatSeqAIJCUSPARSEBuildICCTriMatrices()
956 PetscCheck(loTriFactor, PETSC_COMM_SELF, PETSC_ERR_COR, "Missing cusparseTriFactors"); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
958 loTriFactor->csrMat->values->assign(AALo, AALo + a->nz); in MatSeqAIJCUSPARSEBuildICCTriMatrices()
1050 …Mat_SeqAIJCUSPARSETriFactorStruct *loTriFactor = (Mat_SeqAIJCUSPARSETriFactorStruct *)cuspa… in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve() local
1065 matrixType = cusparseGetMatType(loTriFactor->descr); in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1066 indexBase = cusparseGetMatIndexBase(loTriFactor->descr); in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1067 …fillMode = cusparseGetMatFillMode(loTriFactor->descr) == CUSPARSE_FILL_MODE_UPPER ? CUSPARSE_FIL… in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1068 diagType = cusparseGetMatDiagType(loTriFactor->descr); in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1082 loTriFactorT->csrMat->num_rows = loTriFactor->csrMat->num_cols; in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1083 loTriFactorT->csrMat->num_cols = loTriFactor->csrMat->num_rows; in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1084 loTriFactorT->csrMat->num_entries = loTriFactor->csrMat->num_entries; in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1091 …rseTriFactors->handle, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_cols, loTriFactor->… in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1092loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1093 …calartype, CUSPARSE_ACTION_NUMERIC, indexBase, CUSPARSE_CSR2CSC_ALG1, &loTriFactor->csr2cscBufferS… in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1094 PetscCallCUDA(cudaMalloc(&loTriFactor->csr2cscBuffer, loTriFactor->csr2cscBufferSize)); in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1100loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_cols, loTriFactor->csrMat->num_entries, l… in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1101loTriFactor->csrMat->column_indices->data().get(), loTriFactorT->csrMat->values->data().get(), in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1103 …scalartype, CUSPARSE_ACTION_NUMERIC, indexBase, CUSPARSE_CSR2CSC_ALG1, loTriFactor->csr2cscBuffer); in MatSeqAIJCUSPARSEAnalyzeTransposeForSolve()
1631 …Mat_SeqAIJCUSPARSETriFactorStruct *loTriFactor = (Mat_SeqAIJCUSPARSETriFactorStruct *)cu… in MatSolve_SeqAIJCUSPARSE() local
1647 …andle, loTriFactor->solveOp, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_entries, &PET… in MatSolve_SeqAIJCUSPARSE()
1648loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSolve_SeqAIJCUSPARSE()
1669 …Mat_SeqAIJCUSPARSETriFactorStruct *loTriFactor = (Mat_SeqAIJCUSPARSETriFactorStruct *)cuspa… in MatSolve_SeqAIJCUSPARSE_NaturalOrdering() local
1680 …andle, loTriFactor->solveOp, loTriFactor->csrMat->num_rows, loTriFactor->csrMat->num_entries, &PET… in MatSolve_SeqAIJCUSPARSE_NaturalOrdering()
1681loTriFactor->csrMat->row_offsets->data().get(), loTriFactor->csrMat->column_indices->data().get(),… in MatSolve_SeqAIJCUSPARSE_NaturalOrdering()