| /petsc/src/mat/impls/aij/seq/mkl_pardiso/ |
| H A D | mkl_pardiso.c | 91 PetscScalar *schur; member 305 PetscCall(MatDestroy(&F->schur)); in MatFactorSetSchurIS_MKL_PARDISO() 306 PetscCall(MatCreateSeqDense(PETSC_COMM_SELF, size, size, NULL, &F->schur)); in MatFactorSetSchurIS_MKL_PARDISO() 307 PetscCall(MatDenseGetArrayRead(F->schur, &arr)); in MatFactorSetSchurIS_MKL_PARDISO() 308 mpardiso->schur = (PetscScalar *)arr; in MatFactorSetSchurIS_MKL_PARDISO() 310 PetscCall(MatDenseRestoreArrayRead(F->schur, &arr)); in MatFactorSetSchurIS_MKL_PARDISO() 311 if (mpardiso->mtype == 2) PetscCall(MatSetOption(F->schur, MAT_SPD, PETSC_TRUE)); in MatFactorSetSchurIS_MKL_PARDISO() 353 …rSchur_Private(Mat_MKL_PARDISO *mpardiso, PetscScalar *whole, PetscScalar *schur, PetscBool reduce) in MatMKLPardisoScatterSchur_Private() argument 360 for (j = 0; j < mpardiso->schur_size; j++) schur[p + j] = whole[m + mpardiso->schur_idxs[j]]; in MatMKLPardisoScatterSchur_Private() 368 for (j = 0; j < mpardiso->schur_size; j++) whole[m + mpardiso->schur_idxs[j]] = schur[p + j]; in MatMKLPardisoScatterSchur_Private() [all …]
|
| /petsc/src/snes/tutorials/output/ |
| H A D | ex19_parms.out | 51 amount of fill-in for schur: 20 54 drop tolerance for schur complement at each level: 0.001 55 drop tolerance for ILUT in last level schur complement: 0.001
|
| H A D | ex19_parms_alt.out | 52 amount of fill-in for schur: 20 55 drop tolerance for schur complement at each level: 0.001 56 drop tolerance for ILUT in last level schur complement: 0.001
|
| H A D | ex19_parms_alt_2.out | 50 amount of fill-in for schur: 20 53 drop tolerance for schur complement at each level: 0.001 54 drop tolerance for ILUT in last level schur complement: 0.001
|
| /petsc/src/mat/tests/output/ |
| H A D | ex192_mumps_3.out | 1 Solving with mumps: nrhs 2, sym 1, herm 1, size schur 5, size mat 12
|
| H A D | ex192_mkl_pardiso.out | 1 Solving with mkl_pardiso: nrhs 2, sym 0, herm 0, size schur 5, size mat 12
|
| H A D | ex192_mumps.out | 1 Solving with mumps: nrhs 2, sym 0, herm 0, size schur 5, size mat 12
|
| H A D | ex192_mkl_pardiso_1.out | 1 Solving with mkl_pardiso: nrhs 2, sym 1, herm 0, size schur 5, size mat 12
|
| H A D | ex192_mumps_2.out | 1 Solving with mumps: nrhs 2, sym 1, herm 0, size schur 5, size mat 12
|
| H A D | ex192_mkl_pardiso_3.out | 1 Solving with mkl_pardiso: nrhs 2, sym 1, herm 1, size schur 5, size mat 12
|
| /petsc/src/ksp/pc/impls/fieldsplit/ |
| H A D | fieldsplit.c | 52 …Mat schur; /* The Schur complement S = A11 - A10 A00^{-1} A01, the KSP … member 95 return jac->schur; in FieldSplitSchurPre() 189 if (jac->schur) { in PCView_FieldSplit_Schur() 190 PetscCall(MatSchurComplementGetAinvType(jac->schur, &atype)); in PCView_FieldSplit_Schur() 859 if (jac->schur) { in PCSetUp_FieldSplit() 869 PetscCall(MatSchurComplementGetKSP(jac->schur, &kspInner)); in PCSetUp_FieldSplit() 879 …PetscCall(MatSchurComplementUpdateSubMatrices(jac->schur, jac->mat[0], jac->pmat[0], jac->B, jac->… in PCSetUp_FieldSplit() 882 PetscCall(MatSchurComplementGetPmat(jac->schur, MAT_INITIAL_MATRIX, &jac->schurp)); in PCSetUp_FieldSplit() 885 PetscCall(MatSchurComplementComputeExplicitOperator(jac->schur, &jac->schur_user)); in PCSetUp_FieldSplit() 889 PetscCall(KSPSetOperators(jac->kspschur, jac->schur, FieldSplitSchurPre(jac))); in PCSetUp_FieldSplit() [all …]
|
| /petsc/src/snes/impls/multiblock/ |
| H A D | multiblock.c | 289 if (jac->schur) { in SNESSetUp_Multiblock() 298 …PetscCall(MatSchurComplementUpdateSubMatrices(jac->schur,jac->mat[0],jac->pmat[0],jac->B,jac->C,ja… in SNESSetUp_Multiblock() 299 PetscCall(KSPSetOperators(jac->kspschur,jac->schur,FieldSplitSchurPre(jac),pc->flag)); in SNESSetUp_Multiblock() 315 …etscCall(MatCreateSchurComplement(jac->mat[0],jac->pmat[0],jac->B,jac->C,jac->mat[1],&jac->schur)); in SNESSetUp_Multiblock() 317 PetscCall(MatSchurComplementGetKSP(jac->schur,&ksp)); in SNESSetUp_Multiblock() 321 PetscCall(MatSetFromOptions(jac->schur)); in SNESSetUp_Multiblock() 325 PetscCall(KSPSetOperators(jac->kspschur,jac->schur,FieldSplitSchurPre(jac))); in SNESSetUp_Multiblock()
|
| /petsc/src/ksp/ksp/utils/schurm/ |
| H A D | schurm.c | 741 Mat_SchurComplement *schur; in MatSchurComplementSetAinvType() local 748 schur = (Mat_SchurComplement *)S->data; in MatSchurComplementSetAinvType() 750 schur->ainvtype = ainvtype; in MatSchurComplementSetAinvType() 773 Mat_SchurComplement *schur; in MatSchurComplementGetAinvType() local 779 schur = (Mat_SchurComplement *)S->data; in MatSchurComplementGetAinvType() 780 if (ainvtype) *ainvtype = schur->ainvtype; in MatSchurComplementGetAinvType() 887 Mat_SchurComplement *schur = (Mat_SchurComplement *)S->data; in MatSchurComplementGetPmat_Basic() local 894 …if (schur->ainvtype != MAT_SCHUR_COMPLEMENT_AINV_FULL) PetscCall(MatCreateSchurComplementPmat(A, B… in MatSchurComplementGetPmat_Basic()
|
| /petsc/src/mat/impls/aij/mpi/mumps/ |
| H A D | mumps.c | 170 void *schur; // MumpsScalar member 227 PetscCall(PetscFree(inner->schur)); \ 458 inner->schur = (mumpsscalar *)outer->schur; \ 2519 if (F->schur) { in MatFactorNumeric_MUMPS() 2522 PetscCall(MatDenseGetArrayRead(F->schur, &array)); in MatFactorNumeric_MUMPS() 2523 …ray(PETSC_FALSE, size * size, array, mumps->id.precision, &mumps->id.schur_len, &mumps->id.schur)); in MatFactorNumeric_MUMPS() 2524 PetscCall(MatDenseRestoreArrayRead(F->schur, &array)); in MatFactorNumeric_MUMPS() 2550 if (F->schur) { /* reset Schur status to unfactored */ in MatFactorNumeric_MUMPS() 2552 F->schur->offloadmask = PETSC_OFFLOAD_CPU; in MatFactorNumeric_MUMPS() 2555 PetscCall(MatDenseGetArray(F->schur, &array)); in MatFactorNumeric_MUMPS() [all …]
|
| /petsc/src/mat/interface/ |
| H A D | matrix.c | 1473 PetscCall(MatDestroy(&(*A)->schur)); in MatDestroy() 9747 PetscCall(MatDestroy(&mat->schur)); in MatFactorSetSchurIS() 9749 …PetscCheck(mat->schur, PetscObjectComm((PetscObject)mat), PETSC_ERR_PLIB, "Schur complement has no… in MatFactorSetSchurIS() 9797 PetscCall(MatDuplicate(F->schur, MAT_COPY_VALUES, S)); in MatFactorCreateSchurComplement() 9839 *S = F->schur; in MatFactorGetSchurComplement() 9850 Mat S = F->schur; in MatFactorUpdateSchurStatus_Private() 9934 PetscCall(MatSolveTranspose(F->schur, rhs, sol)); in MatFactorSolveSchurComplementTranspose() 9937 PetscCall(MatMultTranspose(F->schur, rhs, sol)); in MatFactorSolveSchurComplementTranspose() 9978 PetscCall(MatSolve(F->schur, rhs, sol)); in MatFactorSolveSchurComplement() 9981 PetscCall(MatMult(F->schur, rhs, sol)); in MatFactorSolveSchurComplement() [all …]
|
| /petsc/doc/manual/ |
| H A D | ksp.md | 2032 …- `-pc_fieldsplit_type` \<additive|multiplicative|symmetric_multiplicative|schur|gkb:multiplicativ… 2034 …to apply but provides the worst convergence. `schur` requires either a good preconditioner for the… 2042 `schur` 2284 The preconditioner is accessed with `-pc_fieldsplit_type` `schur` and is 2369 complement with `-pc_fieldsplit_type schur -fieldsplit_1_pc_type lsc`.
|
| /petsc/include/petsc/private/ |
| H A D | matimpl.h | 496 Mat schur; /* Schur complement matrix */ member
|
| /petsc/src/ksp/pc/impls/hpddm/ |
| H A D | pchpddm.cxx | 1610 if (A->schur) { in PCApply_Nest()
|
| /petsc/doc/faq/ |
| H A D | index.md | 1567 -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_detect_saddle_point
|