void pmdb_del_all_en_iplinks( pMeshPB pmeshpb, /* IN */ pEntity entity) /* IN */
Deletes all the inter processor links from the partition boundary entity. Note that when this operator is used only the links are deleted and the end result is an entity on the partition boundary with no links. pmdb_en_num_iplinks()
will return 0 after this operator is applied to the entity in question. To remove the entity from the boundary use: pmdb_remove_ip_link() .
int pmdb_del_iplink( pMeshPB pmeshpb, /* IN */ pEntity entity, /* IN */ int pid) /* IN */
Given a processor id pid
, this routine deletes the corresponding
inter-processor link for the partition boundary entity.
It returns 1 if successfully deleted and 0 if not found and
therefore not deleted.
void pmdb_geom_setuplinks( pMeshPB pmeshpb) /* IN */
If submeshes are loaded on processors with absolutely no links
which connect the partition boundaries (for example meshes which has
been broken into more than one submesh by the split
utility),
this routine can be used to initialize the PMDB structures and set up
the links. To do this, each processor executing this routine
first compute the centroid of each entity on the boundary of the submesh
they own. The centroids are then sorted and passed in a ring of processors
together with the addresses of entities. At every processor, a
linear merge operation of sorted centroids take place. During
merging, if the same entity is found, then the link is setup by storing
the address of the shared entity.
void pmdb_insert_iplink( pMeshPB pmeshpb, pEntity loc_p_en, int pid, pEntity off_p_en)
This function inserts an ip-link into the list of links maintained by a partition boundary entity.
loc_p_en | local entity address. |
pid | off-processor id. |
off_p_en | off-processor shared entity address. |
int pmdb_remove_iplink( pMeshPB pmeshpb, /* IN */ pEntity entity) /* IN */
This function removes all the ip-links from the entity. At the end, the entity is also removed from the list of partition boundary entities. Hence traversal for example by: pmdb_all_next_en will no longer have it. Also pmdb_en_num_iplink will also return -1 for this entity. This function returns 1 if the entity is successfully removed. It will return 0 if the entity is not on the partition boundary and hence it is not removed.
int pmdb_set_owner( pEntity entity, /* IN */ int pid) /* IN */
This function sets the processor with id pid
to be the owner
of the entity. Note that pid
should be in the list of processors
sharing the entity.