Lines Matching refs:aux
37 PetscCall(MatDestroy(&data->aux));
95 PetscCall(MatDestroy(&data->aux));
96 data->aux = A;
122 Mat *splitting[2] = {}, aux;
155 PetscCall(MatTransposeMatMult(conjugate, *splitting[0], MAT_INITIAL_MATRIX, PETSC_DETERMINE, &aux));
158 PetscCall(MatNorm(aux, NORM_FROBENIUS, &norm));
159 PetscCall(MatSetOption(aux, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE));
175 PetscCall(MatDiagonalSet(aux, d, ADD_VALUES));
179 if (!diagonal) PetscCall(MatShift(aux, PETSC_SMALL * norm));
180 PetscCall(MatEliminateZeros(aux, PETSC_TRUE));
191 if (flg) PetscCall(MatCreateNormal(*splitting[0], &aux));
192 else PetscCall(MatCreateNormalHermitian(*splitting[0], &aux));
195 PetscCall(PCHPDDMSetAuxiliaryMat(pc, *is, aux, nullptr, nullptr));
198 PetscCall(MatDestroy(&aux));
618 Mat aux[2];
632 if (data->aux) {
633 PetscCall(MatGetSize(data->aux, &m, &n));
634 PetscCall(MatCreate(PetscObjectComm((PetscObject)pc), aux));
635 PetscCall(MatSetSizes(aux[0], m, n, PETSC_DETERMINE, PETSC_DETERMINE));
636 PetscCall(PetscObjectBaseTypeCompare((PetscObject)data->aux, MATSEQAIJ, &flg));
637 if (flg) PetscCall(MatSetType(aux[0], MATMPIAIJ));
639 PetscCall(PetscObjectBaseTypeCompare((PetscObject)data->aux, MATSEQBAIJ, &flg));
640 if (flg) PetscCall(MatSetType(aux[0], MATMPIBAIJ));
642 PetscCall(PetscObjectBaseTypeCompare((PetscObject)data->aux, MATSEQSBAIJ, &flg));
643 PetscCheck(flg, PetscObjectComm((PetscObject)pc), PETSC_ERR_SUP, "MatType of auxiliary Mat (%s) is not any of the following: MATSEQAIJ, MATSEQBAIJ, or MATSEQSBAIJ", ((PetscObject)data->aux)->type_name);
644 PetscCall(MatSetType(aux[0], MATMPISBAIJ));
647 PetscCall(MatSetBlockSizesFromMats(aux[0], data->aux, data->aux));
648 PetscCall(MatAssemblyBegin(aux[0], MAT_FINAL_ASSEMBLY));
649 PetscCall(MatAssemblyEnd(aux[0], MAT_FINAL_ASSEMBLY));
650 PetscCall(MatGetDiagonalBlock(aux[0], aux + 1));
651 PetscCall(MatCopy(data->aux, aux[1], DIFFERENT_NONZERO_PATTERN));
653 PetscCall(MatView(aux[0], subviewer));
655 PetscCall(MatDestroy(aux));
1263 PetscCallBack("PCHPDDM Neumann callback", (*data->setup)(data->aux, t, x, xt, s, data->is, data->setup_ctx));
1531 Mat aux;
1536 PetscCall(MatDuplicate((*sub)[0], MAT_COPY_VALUES, &aux));
1537 PetscCall(MatSetOption(aux, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE));
1541 PetscCall(MatCreateVecs(aux, sum, sum + 1));
1543 PetscCall(MatGetRowSum(aux, sum[1]));
1547 PetscCall(MatDiagonalSet(aux, sum[0], ADD_VALUES));
1564 PetscCall(MatCreateDense(PETSC_COMM_SELF, aux->cmap->n, bs, aux->cmap->n, bs, ptr, &ones));
1566 PetscCall(MatMatMult(aux, ones, MAT_INITIAL_MATRIX, PETSC_CURRENT, sum + 1));
1578 for (PetscInt n = 0; n < aux->cmap->n / bs; ++n) PetscCall(MatSetValuesBlocked(aux, 1, &n, 1, &n, ptr + n * bs * bs, ADD_VALUES));
1579 PetscCall(MatAssemblyBegin(aux, MAT_FINAL_ASSEMBLY));
1580 PetscCall(MatAssemblyEnd(aux, MAT_FINAL_ASSEMBLY));
1584 PetscCall(MatSetOption(aux, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_TRUE));
1586 PetscCall(PetscObjectCompose((PetscObject)(*sub)[0], "_PCHPDDM_Neumann_Mat", (PetscObject)aux));
1891 PetscCall(MatDestroy(&data->aux));
1898 PetscCall(MatDestroy(&data->aux));
2001 if (!data->aux) {
2018 PetscCall(PetscInfo(pc, "A11 block is likely zero so the PC will build an auxiliary Mat (which was%s initially provided by the user)\n", data->aux ? "" : " not"));
2019 PetscCall(MatDestroy(&data->aux));
2023 if (!data->aux) { /* if A11 is near zero, e.g., Stokes equation, or diagonal, build an auxiliary (Neumann) Mat which is a (possibly slightly shifted) diagonal weighted by the inverse of the multiplicity */
2028 PetscCall(MatDestroy(&data->aux));
2058 PetscCall(MatCreateDiagonal(v, &data->aux));
2062 uaux = data->aux;
2119 PetscCall(MatGetDiagonalBlock(A11, &data->aux));
2120 PetscCall(PetscObjectReference((PetscObject)data->aux));
2212 PetscCall(PetscObjectTypeCompare((PetscObject)data->aux, MATSEQAIJ, &flg));
2253 if (data->aux) PetscCall(MatDuplicate(data->aux, MAT_COPY_VALUES, &daux));
2321 if ((ctx || data->N > 1) && (data->aux || ismatis || algebraic)) {
2345 PetscCall(PetscObjectQuery((PetscObject)sub[0], "_PCHPDDM_Neumann_Mat", (PetscObject *)&data->aux));
2350 if (PetscBool3ToBool(data->Neumann)) sub = &data->aux;
2526 PetscCall(MatCreateShell(PETSC_COMM_SELF, P->rmap->n, n[1] - n[0], P->rmap->n, n[1] - n[0], h, &data->aux));
2529 PetscCall(MatShellSetOperation(data->aux, MATOP_MULT, (PetscErrorCodeFn *)MatMult_Harmonic));
2530 PetscCall(MatShellSetOperation(data->aux, MATOP_MULT_TRANSPOSE, (PetscErrorCodeFn *)MatMultTranspose_Harmonic));
2531 PetscCall(MatShellSetMatProductOperation(data->aux, MATPRODUCT_AB, nullptr, MatProduct_AB_Harmonic, nullptr, MATDENSE, MATDENSE));
2532 PetscCall(MatShellSetMatProductOperation(data->aux, MATPRODUCT_AtB, nullptr, MatProduct_AtB_Harmonic, nullptr, MATDENSE, MATDENSE));
2533 PetscCall(MatShellSetOperation(data->aux, MATOP_DESTROY, (PetscErrorCodeFn *)MatDestroy_Harmonic));
2598 if (!block && !ctx) PetscCall(PCHPDDMPermute_Private(unsorted, data->is, &uis, PetscBool3ToBool(data->Neumann) ? sub[0] : data->aux, &C, &perm));
2628 PetscCall(MatAXPY(D, 1.0, data->aux, structure));
2646 std::swap(C, data->aux);
2671 PetscCall(PCHPDDMPermute_Private(unsorted, data->is, &uis, data->aux, &C, nullptr)); /* permute since PCASM works with a sorted IS */
2672 std::swap(C, data->aux);
2719 b[3] = data->aux;
2814 PetscCall(data->levels[0]->P->structure(loc, data->is, !ctx ? sub[0] : nullptr, ismatis ? C : data->aux, data->levels));
2818 if (data->deflation || overlap != -1) weighted = data->aux;
2856 PetscCall((*loadedSym)(data->levels[0]->P, data->is, ismatis ? C : (algebraic && !block && overlap == -1 ? sub[0] : (!ctx ? data->aux : S)), weighted, data->B, initial, data->levels));
2867 else N = data->aux;
3002 std::swap(C, data->aux);
3007 if (algebraic) PetscCall(MatDestroy(&data->aux));
3019 PetscCheck((data->aux && daux) || (!data->aux && !daux), PETSC_COMM_SELF, PETSC_ERR_PLIB, "A Mat pointer is NULL but not the other: input Mat pointer (%p) v. output Mat pointer (%p)", (void *)daux, (void *)data->aux);
3020 if (data->aux) {
3021 PetscCall(MatMultEqual(data->aux, daux, 20, &flg));