Compose a new PetscSF by putting the second SF under the first one in a top (roots) down (leaves) view


#include "petscsf.h" 
PetscErrorCode PetscSFCompose(PetscSF sfA,PetscSF sfB,PetscSF *sfBA)

Input Parameters

sfA - The first PetscSF
sfB - The second PetscSF

Output Parameters

sfBA - The composite SF

Level: developer


Currently, the two SFs must be defined on congruent communicators and they must be true star forests, i.e. the same leaf is not connected with different roots.

sfA's leaf space and sfB's root space might be partially overlapped. The composition builds a graph with sfA's roots and sfB's leaves only when there is a path between them. Unconnected nodes (roots or leaves) are not in sfBA. Doing a Bcast on the new SF is equivalent to doing a Bcast on sfA, then a Bcast on sfB, on connected nodes.

See Also

PetscSF, PetscSFComposeInverse(), PetscSFGetGraph(), PetscSFSetGraph()