Lines Matching refs:D
6 Mat B, D; member
20 PetscCall(PetscObjectQuery((PetscObject)data->D, "MatProductCtx_HT", (PetscObject *)&container)); in MatProductCtxDestroy_HT()
22 PetscCall(PetscObjectCompose((PetscObject)data->D, "MatProductCtx_HT", NULL)); in MatProductCtxDestroy_HT()
27 static PetscErrorCode MatProductNumeric_HT(Mat D) in MatProductNumeric_HT() argument
35 MatCheckProduct(D, 1); in MatProductNumeric_HT()
36 …PetscCheck(D->product->data, PetscObjectComm((PetscObject)D), PETSC_ERR_PLIB, "Product data empty"… in MatProductNumeric_HT()
37 product = D->product; in MatProductNumeric_HT()
38 PetscCall(PetscObjectQuery((PetscObject)D, "MatProductCtx_HT", (PetscObject *)&container)); in MatProductNumeric_HT()
39 …PetscCheck(container, PetscObjectComm((PetscObject)D), PETSC_ERR_PLIB, "MatProductCtx_HT missing"); in MatProductNumeric_HT()
49 PetscCall((*data->numeric)(D)); in MatProductNumeric_HT()
51 PetscCall(MatConjugate(D)); in MatProductNumeric_HT()
54 PetscCall(MatScale(D, data->scale)); in MatProductNumeric_HT()
59 static PetscErrorCode MatProductSymbolic_HT(Mat D) in MatProductSymbolic_HT() argument
67 MatCheckProduct(D, 1); in MatProductSymbolic_HT()
68 product = D->product; in MatProductSymbolic_HT()
70 if (D->ops->productsymbolic == MatProductSymbolic_HT) { in MatProductSymbolic_HT()
71 …PetscCheck(!product->data, PetscObjectComm((PetscObject)D), PETSC_ERR_PLIB, "Product data not empt… in MatProductSymbolic_HT()
72 PetscCall(PetscObjectQuery((PetscObject)D, "MatProductCtx_HT", (PetscObject *)&container)); in MatProductSymbolic_HT()
73 …PetscCheck(container, PetscObjectComm((PetscObject)D), PETSC_ERR_PLIB, "MatProductCtx_HT missing"); in MatProductSymbolic_HT()
75 PetscCall(MatProductSetFromOptions(D)); in MatProductSymbolic_HT()
80 PetscCall(MatProductSymbolic(D)); in MatProductSymbolic_HT()
81 data->numeric = D->ops->productnumeric; in MatProductSymbolic_HT()
84 D->ops->productnumeric = MatProductNumeric_HT; in MatProductSymbolic_HT()
92 static PetscErrorCode MatProductSetFromOptions_HT(Mat D) in MatProductSetFromOptions_HT() argument
103 MatCheckProduct(D, 1); in MatProductSetFromOptions_HT()
104 A = D->product->A; in MatProductSetFromOptions_HT()
105 B = D->product->B; in MatProductSetFromOptions_HT()
106 C = D->product->C; in MatProductSetFromOptions_HT()
110 …PetscCheck(Aistrans || Bistrans || Cistrans, PetscObjectComm((PetscObject)D), PETSC_ERR_PLIB, "Thi… in MatProductSetFromOptions_HT()
142 ptype = D->product->type; /* same product type by default */ in MatProductSetFromOptions_HT()
150 PetscCall(PetscObjectQuery((PetscObject)D, "MatProductCtx_HT", (PetscObject *)&container)); in MatProductSetFromOptions_HT()
152 PetscCall(PetscContainerCreate(PetscObjectComm((PetscObject)D), &container)); in MatProductSetFromOptions_HT()
155 PetscCall(PetscObjectCompose((PetscObject)D, "MatProductCtx_HT", (PetscObject)container)); in MatProductSetFromOptions_HT()
159 data->D = D; in MatProductSetFromOptions_HT()
162 switch (D->product->type) { in MatProductSetFromOptions_HT()
208 …SETERRQ(PetscObjectComm((PetscObject)D), PETSC_ERR_SUP, "ProductType %s is not supported", MatProd… in MatProductSetFromOptions_HT()
211 PetscCall(MatProductReplaceMats(Ain, Bin, Cin, D)); in MatProductSetFromOptions_HT()
212 PetscCall(MatProductSetType(D, ptype)); in MatProductSetFromOptions_HT()
213 if (container) D->ops->productsymbolic = MatProductSymbolic_HT; in MatProductSetFromOptions_HT()
214 else PetscCall(MatProductSetFromOptions(D)); in MatProductSetFromOptions_HT()