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
NULL
if 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