Lines Matching refs:matmat
438 MatShellMatFunctionList matmat; in MatDestroy_Shell() local
460 matmat = shell->matmat; in MatDestroy_Shell()
461 while (matmat) { in MatDestroy_Shell()
462 MatShellMatFunctionList next = matmat->next; in MatDestroy_Shell()
464 PetscCall(PetscObjectComposeFunction((PetscObject)mat, matmat->composedname, NULL)); in MatDestroy_Shell()
465 PetscCall(PetscFree(matmat->composedname)); in MatDestroy_Shell()
466 PetscCall(PetscFree(matmat->resultname)); in MatDestroy_Shell()
467 PetscCall(PetscFree(matmat)); in MatDestroy_Shell()
468 matmat = next; in MatDestroy_Shell()
679 MatShellMatFunctionList matmat; in MatProductSymbolic_Shell_X() local
692 matmat = shell->matmat; in MatProductSymbolic_Shell_X()
694 while (matmat) { in MatProductSymbolic_Shell_X()
695 PetscCall(PetscStrcmp(composedname, matmat->composedname, &flg)); in MatProductSymbolic_Shell_X()
696 flg = (PetscBool)(flg && (matmat->ptype == product->type)); in MatProductSymbolic_Shell_X()
698 matmat = matmat->next; in MatProductSymbolic_Shell_X()
721 if (matmat->resultname) { in MatProductSymbolic_Shell_X()
722 PetscCall(PetscObjectBaseTypeCompare((PetscObject)D, matmat->resultname, &flg)); in MatProductSymbolic_Shell_X()
723 if (!flg) PetscCall(MatSetType(D, matmat->resultname)); in MatProductSymbolic_Shell_X()
730 mdata->numeric = matmat->numeric; in MatProductSymbolic_Shell_X()
731 mdata->destroy = matmat->destroy; in MatProductSymbolic_Shell_X()
732 if (matmat->symbolic) { in MatProductSymbolic_Shell_X()
733 PetscCall((*matmat->symbolic)(A, B, D, &mdata->ctx)); in MatProductSymbolic_Shell_X()
751 MatShellMatFunctionList matmat; in MatProductSetFromOptions_Shell_X() local
764 matmat = shell->matmat; in MatProductSetFromOptions_Shell_X()
766 while (matmat) { in MatProductSetFromOptions_Shell_X()
767 PetscCall(PetscStrcmp(composedname, matmat->composedname, &flg)); in MatProductSetFromOptions_Shell_X()
768 flg = (PetscBool)(flg && (matmat->ptype == product->type)); in MatProductSetFromOptions_Shell_X()
770 matmat = matmat->next; in MatProductSetFromOptions_Shell_X()
782 MatShellMatFunctionList matmat; in MatShellSetMatProductOperation_Private() local
790 matmat = shell->matmat; in MatShellSetMatProductOperation_Private()
791 if (!matmat) { in MatShellSetMatProductOperation_Private()
792 PetscCall(PetscNew(&shell->matmat)); in MatShellSetMatProductOperation_Private()
793 matmat = shell->matmat; in MatShellSetMatProductOperation_Private()
795 MatShellMatFunctionList entry = matmat; in MatShellSetMatProductOperation_Private()
799 matmat = entry; in MatShellSetMatProductOperation_Private()
803 PetscCall(PetscNew(&matmat->next)); in MatShellSetMatProductOperation_Private()
804 matmat = matmat->next; in MatShellSetMatProductOperation_Private()
808 matmat->symbolic = symbolic; in MatShellSetMatProductOperation_Private()
809 matmat->numeric = numeric; in MatShellSetMatProductOperation_Private()
810 matmat->destroy = destroy; in MatShellSetMatProductOperation_Private()
811 matmat->ptype = ptype; in MatShellSetMatProductOperation_Private()
812 PetscCall(PetscFree(matmat->composedname)); in MatShellSetMatProductOperation_Private()
813 PetscCall(PetscFree(matmat->resultname)); in MatShellSetMatProductOperation_Private()
814 PetscCall(PetscStrallocpy(composedname, &matmat->composedname)); in MatShellSetMatProductOperation_Private()
815 PetscCall(PetscStrallocpy(resultname, &matmat->resultname)); in MatShellSetMatProductOperation_Private()
816 … product type %s with result %s\n", matmat->composedname, MatProductTypes[matmat->ptype], matmat->… in MatShellSetMatProductOperation_Private()
817 …PetscCall(PetscObjectComposeFunction((PetscObject)A, matmat->composedname, MatProductSetFromOption… in MatShellSetMatProductOperation_Private()
963 matmatA = shellA->matmat; in MatCopy_Shell()