petsc-3.7.1 2016-05-15
Report Typos and Errors

PCFieldSplitSetFields

Sets the fields for one particular split in the field split preconditioner

Synopsis

#include "petscpc.h" 
PetscErrorCode  PCFieldSplitSetFields(PC pc,const char splitname[],PetscInt n,const PetscInt *fields,const PetscInt *fields_col)
Logically Collective on PC Many br

Input Parameters

pc - the preconditioner context Many br
splitname - name of this split, if NULL the number of the split is used Many br
n - the number of fields in this split Many br
fields - the fields in this split Many br

Many br

Notes: Use PCFieldSplitSetIS() to set a completely general set of indices as a field. Many br

The PCFieldSplitSetFields() is for defining fields as strided blocks. For example, if the block Many brsize is three then one can define a field as 0, or 1 or 2 or 0,1 or 0,2 or 1,2 which mean Many br0xx3xx6xx9xx12 ... x1xx4xx7xx ... xx2xx5xx8xx.. 01x34x67x... 0x1x3x5x7.. x12x45x78x.... Many brwhere the numbered entries indicate what is in the field. Many br

This function is called once per split (it creates a new split each time). Solve options Many brfor this split will be available under the prefix -fieldsplit_SPLITNAME_. Many br

Developer Note: This routine does not actually create the IS representing the split, that is delayed Many bruntil PCSetUp_FieldSplit(), because information about the vector/matrix layouts may not be Many bravailable when this routine is called. Many br

See Also

PCFieldSplitGetSubKSP(), PCFIELDSPLIT, PCFieldSplitSetBlockSize(), PCFieldSplitSetIS()

Level:intermediate
Location:
src/ksp/pc/impls/fieldsplit/fieldsplit.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

Examples

src/ksp/ksp/examples/tutorials/ex42.c.html
src/ksp/ksp/examples/tutorials/ex43.c.html