next up previous
Next: pmdb_dref_numb_own_gen Up: PMDB User's Manual Previous: Partition Boundary Queries

Partition Boundary Updates

 


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_enlocal entity address.
pidoff-processor id.
off_p_enoff-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.





next up previous
Next: pmdb_dref_numb_own_gen Up: PMDB User's Manual Previous: Partition Boundary Queries



Jim Teresco
Mon Oct 16 11:07:26 EDT 1995