# DMCreateFieldIS#

Creates a set of IS objects with the global indices of dofs for each field defined with DMAddField()

## Synopsis#

#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMCreateFieldIS(DM dm, PetscInt *numFields, char ***fieldNames, IS **fields)


Not collective

## Input Parameter#

• dm - the DM object

## Output Parameters#

• numFields - The number of fields (or NULL if not requested)

• fieldNames - The number of each field (or NULL if not requested)

• fields - The global indices for each field (or NULL if not requested)

## Note#

The user is responsible for freeing all requested arrays. In particular, every entry of names should be freed with PetscFree(), every entry of fields should be destroyed with ISDestroy(), and both arrays should be freed with PetscFree().

## Fortran Note#

Not available in Fortran.

## Developer Note#

It is not clear why both this function and DMCreateFieldDecomposition() exist. Having two seems redundant and confusing. This function should likely be removed.

DMAddField(), DMGetField(), DMDestroy(), DMView(), DMCreateInterpolation(), DMCreateColoring(), DMCreateMatrix(), DMCreateFieldDecomposition()

intermediate

## Location#

src/dm/interface/dm.c

Edit on GitLab