SNESMultiblockSetFields#
Sets the fields for one particular block in a SNESMULTBLOCK
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#
SNESMULTBLOCK
, SNESMultiblockGetSubSNES()
, SNESMULTIBLOCK
, SNESMultiblockSetBlockSize()
, SNESMultiblockSetIS()
Level#
intermediate
Location#
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