/******************************************************************** ****** Functions to Support Parallel Adaptivity ****** ********************************************************************/ /*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ /* Partition Functionality */ /*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ // IMPL LEVEL: INTERMEDIATE void iMeshP_createPartitionAll(); // IMPL LEVEL: INTERMEDIATE void iMeshP_destroyPartitionAll(); // IMPL LEVEL: INTERMEDIATE void iMeshP_getPartitionComm(); // IMPL LEVEL: INTERMEDIATE void iMeshP_syncPartitionAll(); //****** Here ignore 2 functions for multi_partitions // IMPL LEVEL: EASY void iMeshP_getNumParts(); // IMPL LEVEL: EASY void iMeshP_getRankOfPart(); // IMPL LEVEL: EASY void iMeshP_getRankOfPartArr(); //****** Here ignore 4 functions for multi_parts_per_process, and 2 functions for entity_sets /*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ /* Part Functionality */ /*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ // IMPL LEVEL: INTERMEDIATE void iMeshP_createPart(); // IMPL LEVEL: INTERMEDIATE void iMeshP_destroyPart(); // IMPL LEVEL: INTERMEDIATE void iMeshP_testPart(); // IMPL LEVEL: INTERMEDIATE void iMeshP_getNumPartNbors(); // IMPL LEVEL: INTERMEDIATE void iMeshP_getNumPartNborsArr(); // IMPL LEVEL: INTERMEDIATE void iMeshP_getPartNbors(); // IMPL LEVEL: INTERMEDIATE void iMeshP_getPartNborsArr(); // IMPL LEVEL: EASY void iMeshP_getNumPartBdryEnts(); // IMPL LEVEL: EASY void iMeshP_getPartBdryEnts(); // IMPL LEVEL: EASY void iMeshP_initPartBdryEntIter(); // IMPL LEVEL: EASY void iMeshP_initPartBdryEntArrIter(); //****** Here ignore 8 functions for entity_sets /*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ /* Entity Functionality */ /*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ // IMPL LEVEL: EASY void iMeshP_getEntOwnerPart(); // IMPL LEVEL: EASY void iMeshP_getEntOwnerPartArr(); // IMPL LEVEL: EASY void iMeshP_isEntOwner(); // IMPL LEVEL: EASY void iMeshP_isEntOwnerArr(); // IMPL LEVEL: EASY void iMeshP_getEntStatus(); // DON'T CONSIDER GHOST HERE // IMPL LEVEL: EASY void iMeshP_getEntStatusArr(); // DON'T CONSIDER GHOST HERE // IMPL LEVEL: EASY void iMeshP_getNumCopies(); // IMPL LEVEL: EASY void iMeshP_getCopyParts(); // IMPL LEVEL: EASY void iMeshP_getCopies(); // IMPL LEVEL: EASY void iMeshP_getCopyOnPart(); // IMPL LEVEL: EASY void iMeshP_getOwnerCopy(); /************************************************* ******* COMMUNICATION ********** *************************************************/ // IMPL LEVEL: INTERMEDIATE void iMeshP_Wait(); // IMPL LEVEL: INTERMEDIATE void iMeshP_WaitAny(); // IMPL LEVEL: INTERMEDIATE void iMeshP_WaitAll(); // IMPL LEVEL: INTERMEDIATE void iMeshP_WaitEnt(); // IMPL LEVEL: INTERMEDIATE void iMeshP_Test(); // IMPL LEVEL: HARD void iMeshP_pollForRequests(); /******************************************************************** ******* Requests for off-processor mesh modification ****** ********************************************************************/ // IMPL LEVEL: HARD void iMeshP_exchEntArrToPartsAll(); // DON'T CONSIDER GHOST HERE // IMPL LEVEL: HARD void iMeshP_migrateEntity(); // IMPL LEVEL: INTERMEDIATE void iMeshP_updateVtxCoords(); // IMPL LEVEL: INTERMEDIATE void iMeshP_replaceOnPartBdry(); // IMPL LEVEL: HARD void iMeshP_syncMeshAll(); // DON'T CONSIDER GHOST HERE //****** Here ignore 2 functions for ghosting, and 4 functions for tag stuff /******************************************************************** ****** Maybe Missing Functions to Support Mesh Adaptivity PROBLEMS: 1. Need extra type definitions for iMeshP_PartitionHandle, iMeshP_PartHandle, iMeshP_RequestHandle, iMeshP_Status and etc. 2. Maybe typos: iMeshP_Wait(... iMeshP_Status (*)stat...); iMeshP_WaitAll(... iMeshP_Status (*)*stat...); ****** ********************************************************************/ void iMeshP_load(); // PARALLEL FILE I/O void iMeshP_write(); /******************************************************************** ******* Multi Parts Per Process DON'T CONSIDER NOW ****** ********************************************************************/ void iMeshP_getNumPartsOnRank(); void iMeshP_getNumPartsArrOnRank(); void iMeshP_getPartsOnRank(); void iMeshP_getPartsArrOnRank(); /******************************************************************** ******* Multiple Partitions in One Mesh DON'T CONSIDER NOW ****** ********************************************************************/ void iMeshP_getNumPartitions(); void iMeshP_getPartitions(); /******************************************************************** ******* GHOST STUFF DON'T CONSIDER NOW ****** ********************************************************************/ void iMeshP_addGhostOf(); void iMeshP_rmvGhostOf(); /******************************************************************** ******* TAG STUFF DON'T CONSIDER NOW ****** ********************************************************************/ void iMeshP_ExchTags(); void iMeshP_ExchTagsEnt(); void iMeshP_IExchTags(); void iMeshP_IExchTagsEnt(); /******************************************************************** ******* Entity Sets DON'T CONSIDER NOW ****** ********************************************************************/ void iMeshP_getNumOfTypeAll(); void iMeshP_getNumOfTopoAll(); void iMeshP_getNumOfType(); void iMeshP_getNumOfTopo(); void iMeshP_getAllVtxCoords(); void iMeshP_getVtxCoordIndex(); void iMeshP_getEntities(); void iMeshP_getAdjEntities(); void iMeshP_initEntIter(); void iMeshP_initEntArrIter();