# PetscSFCreateSectionSF
Create an expanded `PetscSF` of dofs, assuming the input `PetscSF` relates points
## Synopsis
```
#include "petscsf.h"
PetscErrorCode PetscSFCreateSectionSF(PetscSF sf, PetscSection rootSection, PetscInt remoteOffsets[], PetscSection leafSection, PetscSF *sectionSF)
```
Collective
## Input Parameters
- ***sf -*** The `PetscSF`
- ***rootSection -*** Data layout of remote points for outgoing data (this is usually the serial section)
- ***remoteOffsets -*** Offsets for point data on remote processes (these are offsets from the root section), or NULL
- ***leafSection -*** Data layout of local points for incoming data (this is the distributed section)
## Output Parameters
- ***sectionSF -*** The new `PetscSF`
## Note
Either rootSection or remoteOffsets can be specified
## See Also
`PetscSF`, `PetscSFCreate()`
## Level
advanced
## Location
src/vec/is/sf/utils/sfutils.c
## Examples
src/dm/impls/plex/tutorials/ex14.c.html
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/sf/utils/sfutils.c)
[Index of all PetscSF routines](index.md)
[Table of Contents for all manual pages](/docs/manualpages/index.md)
[Index of all manual pages](/docs/manualpages/singleindex.md)