Lines Matching refs:mb

28   SNES_Multiblock *mb     = (SNES_Multiblock *)snes->data;  in SNESReset_Multiblock()  local
29 BlockDesc blocks = mb->blocks, next; in SNESReset_Multiblock()
55 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESDestroy_Multiblock() local
56 BlockDesc blocks = mb->blocks, next; in SNESDestroy_Multiblock()
75 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockSetFieldsRuntime_Private() local
82 PetscCall(PetscMalloc1(mb->bs, &ifields)); in SNESMultiblockSetFieldsRuntime_Private()
86 nfields = mb->bs; in SNESMultiblockSetFieldsRuntime_Private()
96 mb->defined = PETSC_TRUE; in SNESMultiblockSetFieldsRuntime_Private()
104 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockSetDefaults() local
105 BlockDesc blocks = mb->blocks; in SNESMultiblockSetDefaults()
134 if (mb->bs <= 0) { in SNESMultiblockSetDefaults()
135 if (snes->jacobian_pre) PetscCall(MatGetBlockSize(snes->jacobian_pre, &mb->bs)); in SNESMultiblockSetDefaults()
136 else mb->bs = 1; in SNESMultiblockSetDefaults()
157 … if (mb->defined) PetscCall(PetscInfo(snes, "Blocks defined using the options database\n")); in SNESMultiblockSetDefaults()
159 if (flg || !mb->defined) { in SNESMultiblockSetDefaults()
161 for (i = 0; i < mb->bs; ++i) { in SNESMultiblockSetDefaults()
167 mb->defaultblocks = PETSC_TRUE; in SNESMultiblockSetDefaults()
171 } else if (mb->numBlocks == 1) { in SNESMultiblockSetDefaults()
181 …PetscCheck(mb->numBlocks >= 2, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Unhandled case, must have at leas… in SNESMultiblockSetDefaults()
187 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESSetUp_Multiblock() local
193 numBlocks = mb->numBlocks; in SNESSetUp_Multiblock()
194 blocks = mb->blocks; in SNESSetUp_Multiblock()
197 if (!mb->issetup) { in SNESSetUp_Multiblock()
201 mb->issetup = PETSC_TRUE; in SNESSetUp_Multiblock()
202 bs = mb->bs; in SNESSetUp_Multiblock()
207 if (mb->defaultblocks) { in SNESSetUp_Multiblock()
279 if (mb->type == PC_COMPOSITE_SCHUR) { in SNESSetUp_Multiblock()
348 blocks = mb->blocks; in SNESSetUp_Multiblock()
364 if (!mb->blocks->sctx) { in SNESSetUp_Multiblock()
367 blocks = mb->blocks; in SNESSetUp_Multiblock()
388 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESSetFromOptions_Multiblock() local
395 …_size", "Blocksize that defines number of fields", "PCFieldSplitSetBlockSize", mb->bs, &bs, &flg)); in SNESSetFromOptions_Multiblock()
397 …"Type of composition", "PCFieldSplitSetType", PCCompositeTypes, (PetscEnum)mb->type, (PetscEnum *)… in SNESSetFromOptions_Multiblock()
400 if ((mb->bs > 0) && (mb->numBlocks == 0)) { in SNESSetFromOptions_Multiblock()
403 if (mb->defined) PetscCall(PetscInfo(snes, "Blocks defined using the options database\n")); in SNESSetFromOptions_Multiblock()
411 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESView_Multiblock() local
412 BlockDesc blocks = mb->blocks; in SNESView_Multiblock()
418 …scInt_FMT ", blocksize = %" PetscInt_FMT "\n", PCCompositeTypes[mb->type], mb->numBlocks, mb->bs)); in SNESView_Multiblock()
446 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESSolve_Multiblock() local
461 PetscCall(VecSetBlockSize(X, mb->bs)); in SNESSolve_Multiblock()
462 PetscCall(VecSetBlockSize(Y, mb->bs)); in SNESSolve_Multiblock()
463 PetscCall(VecSetBlockSize(F, mb->bs)); in SNESSolve_Multiblock()
488 if (mb->type == PC_COMPOSITE_ADDITIVE) { in SNESSolve_Multiblock()
489 BlockDesc blocks = mb->blocks; in SNESSolve_Multiblock()
491 if (mb->defaultblocks) { in SNESSolve_Multiblock()
509 …ectComm((PetscObject)snes), PETSC_ERR_SUP, "Unsupported or unknown composition %d", (int)mb->type); in SNESSolve_Multiblock()
536 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockSetFields_Default() local
537 BlockDesc newblock, next = mb->blocks; in SNESMultiblockSetFields_Default()
542 if (mb->defined) { in SNESMultiblockSetFields_Default()
547 …lds[i] < mb->bs, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Field %" PetscInt_FMT " requested but… in SNESMultiblockSetFields_Default()
554 PetscInt len = floor(log10(mb->numBlocks)) + 1; in SNESMultiblockSetFields_Default()
557 PetscCall(PetscSNPrintf(newblock->name, len, "%" PetscInt_FMT, mb->numBlocks)); in SNESMultiblockSetFields_Default()
573 mb->blocks = newblock; in SNESMultiblockSetFields_Default()
580 mb->numBlocks++; in SNESMultiblockSetFields_Default()
586 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockSetIS_Default() local
587 BlockDesc newblock, next = mb->blocks; in SNESMultiblockSetIS_Default()
591 if (mb->defined) { in SNESMultiblockSetIS_Default()
599 PetscInt len = floor(log10(mb->numBlocks)) + 1; in SNESMultiblockSetIS_Default()
602 PetscCall(PetscSNPrintf(newblock->name, len, "%" PetscInt_FMT, mb->numBlocks)); in SNESMultiblockSetIS_Default()
617 mb->blocks = newblock; in SNESMultiblockSetIS_Default()
624 mb->numBlocks++; in SNESMultiblockSetIS_Default()
630 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockSetBlockSize_Default() local
634mb->bs <= 0 || mb->bs == bs, PetscObjectComm((PetscObject)snes), PETSC_ERR_ARG_WRONGSTATE, "Cannot… in SNESMultiblockSetBlockSize_Default()
635 mb->bs = bs; in SNESMultiblockSetBlockSize_Default()
641 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockGetSubSNES_Default() local
642 BlockDesc blocks = mb->blocks; in SNESMultiblockGetSubSNES_Default()
646 PetscCall(PetscMalloc1(mb->numBlocks, subsnes)); in SNESMultiblockGetSubSNES_Default()
651mb->numBlocks, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Corrupt SNESMULTIBLOCK object: number of blocks i… in SNESMultiblockGetSubSNES_Default()
653 if (n) *n = mb->numBlocks; in SNESMultiblockGetSubSNES_Default()
659 SNES_Multiblock *mb = (SNES_Multiblock *)snes->data; in SNESMultiblockSetType_Default() local
662 mb->type = type; in SNESMultiblockSetType_Default()
847 SNES_Multiblock *mb; in SNESCreate_Multiblock() local
864 PetscCall(PetscNew(&mb)); in SNESCreate_Multiblock()
865 snes->data = (void *)mb; in SNESCreate_Multiblock()
866 mb->defined = PETSC_FALSE; in SNESCreate_Multiblock()
867 mb->numBlocks = 0; in SNESCreate_Multiblock()
868 mb->bs = -1; in SNESCreate_Multiblock()
869 mb->type = PC_COMPOSITE_MULTIPLICATIVE; in SNESCreate_Multiblock()