DMNetworkAddComponent#
Adds a network component and number of variables at the given point (vertex/edge)
Synopsis#
#include "petscdmnetwork.h"
PetscErrorCode DMNetworkAddComponent(DM dm, PetscInt p, PetscInt componentkey, void *compvalue, PetscInt nvar)
Collective
Input Parameters#
dm - the DMNetwork
p - the vertex/edge point. These points are local indices provided by
DMNetworkGetSubnetwork()componentkey - component key returned while registering the component with
DMNetworkRegisterComponent()compvalue - pointer to the data structure for the component, or
NULLif the component does not require data, this data is not copied so you cannot free this space until afterDMSetUp()is called.nvar - number of variables for the component at the vertex/edge point, zero if the component does not introduce any degrees of freedom at the point
Notes#
The owning rank and any other ranks that have this point as a ghost location must call this routine to add a component and number of variables in the same order at the given point.
DMNetworkLayoutSetUp() must be called before this routine.
Developer Notes#
The requirement that all the ranks with access to a vertex (as owner or as ghost) add all the components comes from a limitation of the underlying implementation based on DMPLEX.
See Also#
DM, DMNETWORK, DMNetworkGetComponent(), DMNetworkGetSubnetwork(), DMNetworkIsGhostVertex(), DMNetworkLayoutSetUp()
Level#
beginner
Location#
src/dm/impls/network/network.c
Index of all DMNetwork routines
Table of Contents for all manual pages
Index of all manual pages