PETSc version 3.17.4
Fix/Edit manual page

# SNESMultiblockSetFields

Sets the fields for one particular block in the solver

### Synopsis

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

Logically Collective on SNES

### 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

SNESMultiblockGetSubSNES(), SNESMULTIBLOCK, 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