moab
iMesh_extensions.h
Go to the documentation of this file.
00001 #ifndef IMESH_REC_CBIND_H__
00002 #define IMESH_REC_CBIND_H__
00003 
00004 #include "iMesh.h"
00005 #include "iMesh_extensions_protos.h"
00006 #ifdef USE_MPI
00007 #include "iMeshP.h"
00008 #include "moab_mpi.h"
00009 #endif
00010 
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014 
00035   void iMesh_getEntitiesRec(iMesh_Instance instance,
00036                             /*in*/ const iBase_EntitySetHandle entity_set_handle,
00037                             /*in*/ const int entity_type,
00038                             /*in*/ const int entity_topology,
00039                             /*in*/ const int recursive,
00040                             /*out*/ iBase_EntityHandle** entity_handles,
00041                             /*out*/ int* entity_handles_allocated,
00042                             /*out*/ int* entity_handles_size,
00043                             /*out*/ int *err);
00044 
00060   void iMesh_getNumOfTypeRec(iMesh_Instance instance,
00061                              /*in*/ const iBase_EntitySetHandle entity_set_handle,
00062                              /*in*/ const int entity_type,
00063                              /*in*/ const int recursive,
00064                              /*out*/ int *num_type, 
00065                              /*out*/ int *err);
00066 
00082   void iMesh_getNumOfTopoRec(iMesh_Instance instance,
00083                              /*in*/ const iBase_EntitySetHandle entity_set_handle,
00084                              /*in*/ const int entity_topology,
00085                              /*in*/ const int recursive,
00086                              /*out*/ int *num_topo, 
00087                              /*out*/ int *err);
00088 
00089 
00110   void iMesh_getEntsByTagsRec(iMesh_Instance instance,
00111                               /*in*/ const iBase_EntitySetHandle entity_set_handle,
00112                               /*in*/ const int entity_type,
00113                               /*in*/ const int entity_topology,
00114                               /*in*/ const iBase_TagHandle *tag_handles,
00115                               /*in*/ const char * const *tag_vals,
00116                               /*in*/ const int num_tags_vals,
00117                               /*in*/ const int recursive,
00118                               /*out*/ iBase_EntityHandle** entity_handles,
00119                               /*out*/ int* entity_handles_allocated,
00120                               /*out*/ int* entity_handles_size,
00121                               /*out*/ int *err);
00122 
00141   void iMesh_getEntSetsByTagsRec(iMesh_Instance instance,
00142                                  /*in*/ const iBase_EntitySetHandle entity_set_handle,
00143                                  /*in*/ const iBase_TagHandle *tag_handles,
00144                                  /*in*/ const char * const *tag_vals,
00145                                  /*in*/ const int num_tags_vals,
00146                                  /*in*/ const int recursive,
00147                                  /*out*/ iBase_EntitySetHandle** set_handles,
00148                                  /*out*/ int* set_handles_allocated,
00149                                  /*out*/ int* set_handles_size,
00150                                  /*out*/ int *err);
00151 
00161   void iMesh_MBCNType(/*in*/ const int imesh_entity_topology,
00162                       /*out*/ int *mbcn_type);
00163     
00164 
00185   void iMesh_tagIterate(iMesh_Instance instance,
00187                         const iBase_TagHandle tag_handle,
00189                         iBase_EntityArrIterator entArr_iterator, 
00191                         void* tag_value, 
00193                         int* count,
00195                         int* err  
00197                         );
00198 
00205   void iMesh_connectIterate(iMesh_Instance instance,
00207                             iBase_EntityArrIterator entArr_iterator, 
00209                             iBase_EntityHandle **connect,
00211                             int* verts_per_entity,
00213                             int* count,
00215                             int* err  
00217                             );
00218 
00225   void iMesh_coordsIterate(iMesh_Instance instance,
00227                            iBase_EntityArrIterator entArr_iterator, 
00229                            double **coordsx,
00231                            double **coordsy,
00233                            double **coordsz,
00235                            int* count,
00237                            int* err  
00239                            );
00240 
00241 /***************************************************************************/
00250 void iMesh_stepEntIter(
00251     iMesh_Instance instance, 
00253     iBase_EntityIterator ent_iterator, 
00255     int step_length, 
00257     int* at_end, 
00259     int* err  
00261 );
00262 
00263 void iMesh_stepEntArrIter(
00264     iMesh_Instance instance, 
00266     iBase_EntityArrIterator entArr_iterator, 
00268     int step_length, 
00270     int* at_end, 
00272     int* err  
00274 );
00275 
00276 /***************************************************************************/
00291 void iMesh_initEntArrIterRec(
00292     iMesh_Instance instance, 
00294     const iBase_EntitySetHandle entity_set_handle, 
00296     const int requested_entity_type, 
00298     const int requested_entity_topology, 
00300     const int requested_array_size, 
00303     const int resilient,
00306     const int recursive,
00308     iBase_EntityArrIterator* entArr_iterator, 
00310     int* err  
00312 );
00313 
00314 /***************************************************************************/
00321 void iMesh_getAllIfaceTags(iMesh_Instance instance,
00322                            /*inout*/ iBase_TagHandle **tag_handles,
00323                            /*inout*/ int *tag_handles_allocated,
00324                            /*out*/ int *tag_handles_size,
00325                            /*out*/ int *err
00326 );
00327 
00328 /***************************************************************************/
00338 void iMesh_createTagWithOptions(iMesh_Instance instance,
00340                                   /*in*/ const char* tag_name,
00342                                   /*in*/ const char* tmp_tag_options,
00344                                   /*in*/ const int tag_size,
00346                                   /*in*/ const int tag_type,
00348                                   /*out*/ iBase_TagHandle* tag_handle, 
00350                                   /*out*/ int *err,
00352                                   /*in*/ const int tag_name_len,
00354                                   /*in*/ const int tag_options_len);
00357 /***************************************************************************/
00367 void iMesh_createStructuredMesh(
00368         iMesh_Instance instance,
00370         int *local_dims,
00373         int *global_dims,
00376         double *i_vals,
00378         double *j_vals,
00380         double *k_vals,
00382         int resolve_shared,
00384         int ghost_dim,
00386         int bridge_dim,
00388         int num_layers,
00390         int addl_ents,
00392         int vert_gids,
00394         int elem_gids,
00396         iBase_EntitySetHandle* set_handle, 
00399         int *err
00401 );
00402 /***************************************************************************/
00407 void iMesh_freeMemory(
00408         iMesh_Instance instance,
00410          void ** ptrToMem);
00411 
00412 /***************************************************************************/
00417 /***************************************************************************/
00422 #ifdef __cplusplus
00423 }
00424 #endif
00425 
00426 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines