SNESMultiblockSetFields#

Sets the fields for one particular block in a SNESMULTIBLOCK solver

Synopsis#

#include "petscsnes.h" 
PetscErrorCode SNESMultiblockSetFields(SNES snes, const char name[], PetscInt n, const PetscInt *fields)

Logically Collective

Input Parameters#

  • snes - the solver

  • name - name of this block, if NULL the number of the block is used

  • n - the number of fields in this block

  • fields - the fields in this block

Notes#

Use SNESMultiblockSetIS() to set a completely general set of row indices as a block.

The SNESMultiblockSetFields() is for defining blocks as a group of strided indices, or fields. For example, if the vector block size is three then one can define a block as field 0, or 1 or 2, or field 0,1 or 0,2 or 1,2 which means 0xx3xx6xx9xx12 … x1xx4xx7xx … xx2xx5xx8xx.. 01x34x67x… 0x1x3x5x7.. x12x45x78x…. where the numbered entries indicate what is in the block.

This function is called once per block (it creates a new block each time). Solve options for this block will be available under the prefix -multiblock_BLOCKNAME_.

See Also#

SNES: Nonlinear Solvers, SNES, SNESMULTIBLOCK, SNESMultiblockGetSubSNES(), SNESMultiblockSetBlockSize(), SNESMultiblockSetIS()

Level#

intermediate

Location#

src/snes/impls/multiblock/multiblock.c

Implementations#

SNESMultiblockSetFields_Default() in src/snes/impls/multiblock/multiblock.c


Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages