Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

rf_mesh_interface Class Reference

Mesh implementations must specify this interface. More...

#include <rf_mesh_interface.h>

Inheritance diagram for rf_mesh_interface:

base_interface blocking_mesh_interface gateway_mesh openMesh rfmi_base_interface blockingExtMesh_impl OpenGatewayBase openMeshVertexInfo exmesh openBlocking med_impl OpenGateway med_unsstr_impl List of all members.

Public Methods

 rf_mesh_interface (RFConnOrder iOrd=connect_no_order)
 Sets connectivity order maps for all known orders. More...

 rf_mesh_interface (const RFConnectivityMap *iMap)
 Defines the connectivity using given connectivity map. More...

 rf_mesh_interface (const rf_mesh_interface &i)
 Invoke base_interface constructor and equality operator.

rf_mesh_interface& operator= (const rf_mesh_interface &i)
 No action beyond invoking base_interface equality operator.

 ~rf_mesh_interface ()
 Release user specified connectivity maps if specified. More...

virtual const RFConnectivityMapGetConnectivityMap () const
 Return the current connectivity map.

virtual void SetConnectivityMap (const RFConnectivityMap *iMap)
 Set the connectivity map. More...

virtual void InitConnectivityMap ()
 Initialize the connectivity map data structure.

rf_mesh_newnum copy_str_from (const rf_mesh_interface *mi)
 Copy the structured mesh. More...

size_t copy_unstr_vertices (const rf_mesh_interface *mi, RFLongestSignedList& mapVerts)
 Copy just the unstructured vertices from one mesh rep to another. More...

size_t copy_unstr_elements (const rf_mesh_interface *mi, const RFLongestSignedList& mapVerts, RFLongestSignedList& mapEles, int eltype, const RFLongestSignedList& famstocopy, int dohint=1)
 Copy just the unstructured elements from one mesh rep to another. More...

rf_mesh_newnum copy_unstr_from (const rf_mesh_interface *mi, RFLongestSignedList& mapVerts, RFLongestSignedList& mapEles)
 Copy the unstructured mesh. More...

rf_two_newnum copy_mesh_from (const rf_mesh_interface *mi, RFLongestSignedList& mapVerts, RFLongestSignedList& mapEles)
 Copy both the structured and unstrucured meshes from given mesh. More...

size_t NodesPerElement (int iType) const
int ElementDimension (int iType) const
int FacesPerElement (int iType) const
int EdgesPerElement (int iType) const
virtual rf_mesh_interface* newImpl () const = 0
 Create an empty copy of current implementation. More...

virtual size_t NumberElementTypes () const
 Return the number of element types for this rep. More...

virtual int is_empty () const
 If the mesh is empty, implementations should return 0. More...

virtual int create_mesh ()
 Implemenations generally need only concern themselves with create_unstrmesh() and create_strmesh(). More...

virtual int create_unstrmesh () = 0
 Create new unstructured mesh. More...

virtual int delete_mesh ()
 Delete mesh. More...

virtual int create_strmesh () = 0
 Create new structured mesh. More...

virtual int delete_unstrmesh () = 0
 Delete unstructured mesh. More...

virtual int delete_strmesh () = 0
 Create new structured mesh. More...

virtual int clear_mesh ()
 Empty mesh. More...

virtual int suspend_undo ()
 Suspend undo action for those mesh reps that have such a concept. More...

virtual int resume_undo ()
 Resume undo action for those mesh reps that have such a concept. More...

virtual RFPrecType get_prec () const
 If representation can handle both double and float precisions for vertex coordinates, then this method can be implemented. More...

virtual int set_prec (RFPrecType prec)
 If representation can handle both double and float precisions for vertex coordinates, then this method must be implemented. More...

virtual int allocate_vertex_memory (size_t nverts, RFPrecType prec)
 Can only be called before loading all vertices (unstruct first followed by struct). More...

virtual int allocate_strvertex_memory (size_t dom=0)
 Allocate memory for coordinates of specified structured domain. More...

virtual RFConnOrder GetInternalOrder () const = 0
 Return the internal connection order of the mesh representation. More...

RFConnOrder get_conn_order () const
 
Deprecated:
Use GetInternalOrder() instead.


virtual int SetInternalOrder (RFConnOrder order)
 Set order of storage (if can change the order). More...

int set_conn_order (RFConnOrder iOrder)
 
Deprecated:
Use SetInternalOrder() instead.


int SetKnownOrder (RFConnOrder iOrd)
 Set a known order. More...

int SetICEMCFDOrder ()
 Set connectivity, face and edge orders for ICEMCFD. More...

int SetNASTRANOrder ()
 Set connectivity, face and edge orders for NASTRAN. More...

int SetVisual3Order ()
 Set connectivity, face and edge orders for Visual3. More...

virtual int SetUserOrder ()
 Set the connectivity and face information for the subclass. More...

const int* GetConnectivityNASTRANOrder (int iType) const
 Return the internal numbering to NASTRAN map for the specified element type. More...

const int* GetConnectivityICEMCFDOrder (int iType) const
 Mapping to ICEMCFD. More...

const int* GetInvConnectivityNASTRANOrder (int iType) const
 Return the map of NASTRAN to internal numbering for specified type. More...

const int* GetInvConnectivityICEMCFDOrder (int iType) const
 Mapping from ICEMCFD. More...

int SetConnectivityNASTRANOrder (int iType, ...)
 Set the map of user element connectivity to internal mesh connectivity for specified type. More...

int SetConnectivityNASTRANOrder (int iType, va_list iAP)
int SetConnectivityNASTRANOrder (int iType, const int *iConn)
 Specify the type and the map. More...

virtual int set_vtxconn_offset (RF_SIGNED_LONG vtx_offset)
 Set current vertex offset. More...

virtual int allocate_element_memory (const size_t *nele)
 Hint of how many elements of each type to allocate. More...

virtual const void* vertex_coords (RFPrecType *prec) const
 Return the pointer to the start of the vertex memory if mesh representation holds coordinate memory in contiguious block. More...

virtual const int* connectivity (int t, RFConnOrder *ord, int *vo) const
 Return the element connectivity memory if mesh representation can hold element connectivity in a contiguious block of memory. More...

virtual RF_SIGNED_LONG get_vtxconn_offset () const
 Return current vertex offset. More...

virtual size_t add_domain (const int *dmax) = 0
 Add structured domain with node range (1, 1, 1) to dmax. More...

virtual size_t add_domain (str_domain_handle& dom) = 0
 Add structured domain specified by given domain interface. More...

virtual vertex_handle new_vertex () = 0
 Create a new vertex of specified type. More...

virtual int legal_element (int type) const
 Is the element type legal? More...

virtual element_handle new_element (int type) = 0
 Create a new element of specified type. More...

virtual element_handle propose_connect (int eltype, const int *connect, size_t nid, int famid)
 Only connect if some criteria is specified. More...

virtual int ConnectIntOrder (element_handle& ele, const int *connect, size_t nid, int famid) = 0
 Specify newly created element ele (new_element()) has connectivity specified by connect. More...

virtual int ConnectIntOrder_l (element_handle& ele, const RF_SIGNED_LONG *connect, size_t nid, int famid)
virtual int ConnectSpecifiedOrder (element_handle& ele, const int *connect, size_t nid, int famid, RFConnOrder iOrder)
 Specify the connection order. More...

virtual int ConnectSpecifiedOrder_l (element_handle& ele, const RF_SIGNED_LONG *connect, size_t nid, int famid, RFConnOrder iOrder)
virtual int ConnectNASTRANOrder (element_handle& ele, const int *connect, size_t nid, int famid)
 element connectivity array in NASTRAN order. More...

virtual int ConnectNASTRANOrder_l (element_handle& ele, const RF_SIGNED_LONG *connect, size_t nid, int famid)
virtual int ConnectICEMCFDOrder (element_handle& ele, const int *connect, size_t nid, int famid)
 element connectivity array in ICEMCFD order. More...

virtual int ConnectICEMCFDOrder_l (element_handle& ele, const RF_SIGNED_LONG *connect, size_t nid, int famid)
int connect (element_handle& ele, const int *connect, size_t nid, int famid)
 
Deprecated:
Use ConnectICEMCFDOrder() instead.


int connect (element_handle& ele, const RF_SIGNED_LONG *connect, size_t nid, int famid)
 
Deprecated:
Use ConnectICEMCFDOrder_l() instead.


virtual int disconnect (element_handle& ele) = 0
 Disconnect element ele from the mesh. More...

virtual int reconnect_vid (element_handle& ele, const int *newv)
 Change the connectivity of element ele to the connectivity specified in the array newv. More...

virtual int reconnect_vid (element_handle& ele, const RF_SIGNED_LONG *newv)
virtual int reconnect (element_handle& ele, vertex_handle *nvv) = 0
 Change the connectivity of element ele to the connectivity specified in the array of vertex handles newv. More...

virtual int replace_vid (element_handle& ele, RF_SIGNED_LONG oldv, RF_SIGNED_LONG newv)
 Change node number oldv to newv in element. More...

virtual int replace (element_handle& ele, vertex_handle& oldv, vertex_handle& newv) = 0
 Change node oldv to newv in element. More...

virtual int merge_unstr_nodes (const RFMergeVtxList& list)
 Merge the nodes specified by the list. More...

virtual int must_remove_degeneracy () const
 Each mesh representation must return whether or not it can tolerate degenerate elements. More...

virtual int stored_vertex_dimension () const
 Does the mesh representation store the vertex dimension? By default the answer is no (0). More...

virtual int delete_vertex (RF_SIGNED_LONG vid)
 Delete specified vertex id. More...

virtual int delete_vertex (vertex_handle& vtx) = 0
 Delete the specified vertex. More...

virtual int delete_element (element_handle& ele)
 Delete the element specified. More...

virtual int compress_mesh ()
 Mesh representations that can return vertex coordinates and/or element connectivity in a block, should try and implement this method. More...

const int* GetFaceInfoInt (int iType) const
 Retrieve the face using user definition in internally defined order. More...

const int* GetFaceInfoICEMCFD (int iType) const
 Retrieve the face using user definition but using ICEMCFD connectivity order. More...

int DecodeFaceIntOrder (int iType, int& oNFaces, const int **oFaces, int *oNVtxFace) const
 Decode the inernal face order for the internally defined faces into number of faces, faces and nvertex per face arrays. More...

int DecodeFaceICEMCFDOrder (int iType, int& oNFaces, const int **oFaces, int *oNVtxFace) const
 Decode the ICEMCFD face order. More...

int decode_face_order (int type, int *nfaces, const int **faces, int *nvtxface) const
 
Deprecated:
Use DecodeFaceICEMCFDOrder() instead.


const int* get_face_order (int iType) const
 
Deprecated:
Use GetFaceICEMCFDOrder instead.


const int* GetOppfaceInfoInt (int iType) const
 Get opposite face definition for specified element type. More...

int DecodeOppfaceIntOrder (int iType, int& oNfaces, int *oOppositeFaces, const int **oOppFIdx, int *oNVtxface) const
 Decode opposite face order information. More...

int GetOppositeFaceInt (int iType, unsigned int iFaceNum, int& oNvtxface, const int *& oOppFIdx) const
 Return the face number opposite of given face number for given element type. More...

const int* get_oppface_order (int type) const
 
Deprecated:
Use GetOppfaceInfoInt() instead.


int get_opposite_face (int iType, unsigned int iFaceNum) const
 Use GetOppositeFaceInt() instead.

const int* GetEdgeInfoInt (int iType) const
 Retrieve the edge using user definition in internally defined order. More...

const int* GetEdgeInfoICEMCFD (int iType) const
 Retrieve the edge using user definition but using ICEMCFD order. More...

int DecodeEdgeIntOrder (int iType, int& oNEdges, const int **oEdges, int *oNVtxEdge) const
 Decode the inernal edge order for the internally defined edges into number of edges, edges and nvertex per edge arrays. More...

int DecodeEdgeICEMCFDOrder (int iType, int& oNEdges, const int **oEdges, int *oNVtxEdge) const
 Decode the ICEMCFD edge order. More...

int decode_edge_order (int type, int *nedges, const int **edges, int *nvtxedge) const
 
Deprecated:
Use DecodeICEMCFDOrder instead.


const int* get_edge_order (int type) const
 
Deprecated:
Use GetEdgeICEMCFDOrder instead.


int set_face_order (int iType, ...)
 
Deprecated:
Use SetFaceIntOrder instead.


int set_face_order (int iType, va_list ap)
int set_face_order (int iType, const int *iOrder)
int SetFaceIntOrder (int iType, ...)
 Change face definition for specified element types. More...

int SetFaceIntOrder (int iType, va_list ap)
int SetFaceIntOrder (int iType, const int *iOrder)
 Set the face order for a specified element type. More...

int set_oppface_order (int iType, ...)
 Change opposite face definition for specified element types. More...

int set_oppface_order (int iType, va_list ap)
int set_oppface_order (int iType, const int *iOrder)
 Set the opposite face order for a specified element type. More...

int set_edge_order (int iType, ...)
 
Deprecated:
Use SetEdgeIntOrder() instead.


int set_edge_order (int iType, va_list ap)
int set_edge_order (int iType, const int *iOrder)
int SetEdgeIntOrder (int iType, ...)
 Change edge definition for specified element types. More...

int SetEdgeIntOrder (int iType, va_list ap)
int SetEdgeIntOrder (int iType, const int *iOrder)
 Set the edge order for a specified element type. More...

virtual vertex_handle first_vertex (void **cur) = 0
 Enumerate vertices but use iterator style. More...

vertex_handle first_vertex (void **cur) const
virtual vertex_handle next_vertex (void **cur) = 0
 Enumerate elements but use iterator style. More...

vertex_handle next_vertex (void **cur) const
virtual int enumerate_vertices (enum_vertex_int_func f, void *data)
 Loop over all vertices in the mesh and invoke function f on each one. More...

virtual element_handle first_el (void **cur, int eltype=0) = 0
 Enumerate elements but use iterator style. More...

element_handle first_el (void **cur, int eltype=0) const
virtual element_handle next_el (void **cur, int eltype=0) = 0
 Enumerate elements but use iterator style. More...

element_handle next_el (void **cur, int eltype=0) const
virtual int enumerate_elements (int eltype, enum_element_int_func f, void *data)
 Loop over all elements of type eltype in the mesh and invoke function f on each one. More...

virtual element_handle init_element_iterator (const vertex_handle& v, RF_SIGNED_LONG *next_idx) const = 0
 Initialize the element loop when looping over all elements on a node. More...

virtual element_handle next_element (const vertex_handle& v, RF_SIGNED_LONG *next_idx, const element_handle& cur_el) const = 0
 Go to next element in link list of elements on a node. More...

virtual int enumerate_faces (const element_handle& el, enum_face_int_func func, void *data)
 Enumerate the faces of element. More...

virtual int enumerate_faces (const element_handle& el, enum_face_int_func func, void *data) const
virtual int enumerate_faces_vtx (const element_handle& el, enum_face_int_vtx_func func, void *data)
 Callback function gets vertex indices instead of handles. More...

virtual int enumerate_faces_vtx (const element_handle& el, enum_face_int_vtx_func func, void *data) const
virtual int enumerate_edges (const element_handle& el, enum_edge_int_func func, void *data)
 Enumerate the edges of this function. More...

virtual int enumerate_edges (const element_handle& el, enum_edge_int_func func, void *data) const
virtual int match_face (const element_handle& el, int nvf, const int *face, int ordf, int *ele_face) const
 Try to match given face in this element. More...

virtual int match_face (const element_handle& el, int nvf, const RF_SIGNED_LONG *face, int ordf, RF_SIGNED_LONG *ele_face) const
size_t celloffset_on_node (unsigned int **offset) const
 Create offset array for cells on node. More...

size_t celloffset_on_node (unsigned int *offset) const
 Fill offset array for cells on node. More...

virtual size_t cellcount_on_node (unsigned int *offset) const
virtual const FacesOnNodegetFaceConn () const
 Representations that can build the FaceConn structure should return a pointer to it. More...

size_t nfaces_on_vertex (const vertex_handle& v) const
 Return the number of faces on a vertex for those representations that create FaceConn data structure. More...

virtual size_t nfaces_on_vertex (int vidx) const
size_t neles_on_face (const vertex_handle& v, size_t fidx) const
 Return the number of elements on a face specified by the vertex and index of the face on the vertex. More...

virtual size_t neles_on_face (int vidx, size_t fidx) const
size_t ndim_on_face (const vertex_handle& v, size_t fidx, int dim) const
 Return the number of elements matching specified dimension on the face specified by vertex and face index of vertex. More...

virtual size_t ndim_on_face (int vidx, size_t fidx, int dim) const
size_t face_on_vertex (const vertex_handle& v, size_t fidx, int *fvtxs) const
 Return the vertices of face specified by the vertex and index of the face on the vertex. More...

virtual size_t face_on_vertex (int vi, size_t fi, int *fvtxs) const
element_handle ele_on_face (const vertex_handle& v, size_t fidx, size_t elidx) const
 Return the element specified by the vertex, index of the face and the index of the element. More...

virtual element_handle ele_on_face (int vi, size_t fi, size_t ei) const
virtual int incident_elements_face (int nvf, const int *fverts, int ordf, int max_return, element_handle *elements, int *face_numbers) const
 Return all elements on face specified by the face vertices. More...

virtual int incident_elements_face (int nvf, const int *fverts, int ordf, element_handle_list& elements, int *face_numbers) const
 Return can be artitrary number of elements on a face. More...

virtual int incident_elements (int nvf, vertex_handle *fverts, int ordf, int max_return, element_handle *elements, int *face_numbers) const = 0
 All representations should implement this method. More...

virtual int incident_elements (int nvf, vertex_handle *fverts, int ordf, element_handle_list& elements, int *face_numbers) const
 Default method invokes array method. More...

int has_edge (const element_handle& eh, const vertex_handle& v0, const vertex_handle& v1) const
 Does this element hold this edge? More...

int elements_adjacent_to_edge (const vertex_handle& v0, const vertex_handle& v1, element_handle *els, int maxret) const
 Find all elements that share this edge up to maxret. More...

int is_external_shell (const element_handle& eh) const
 Is this shell element an internal shell (2 or more volume elements connected to it? More...

int is_on_boundary (const vertex_handle& v) const
 Is this vertex on a boundary? More...

int is_on_boundary (const element_handle& eh) const
 Is this element on a boundary? More...

int is_boundary_shell (const element_handle& eh) const
 Is this element a shell element on a boundary? More...

virtual int release_connectivity_info ()
 Release the connectivity information (if it can be safely released). More...

virtual size_t n_unstr_vertices () const = 0
 Return number of unstructured vertices created. More...

virtual size_t n_unstr_elements (int type) const = 0
 Return number of unstructured elements of specified type created. More...

virtual size_t n_unstr_vertices_actual () const
 Return current number of vertices in mesh. More...

virtual size_t n_unstr_elements_actual (int type) const
 Return current number of unstructured elements of specified type in mesh. More...

virtual size_t count_unstr_elements (int type, size_t *start) const
 Return current number of unstructured elements of specified type in mesh. More...

size_t ntot_unstr_elements () const
 Return total number of unstructured elements in mesh that have been created. More...

size_t ntot_unstr_elements_actual () const
 Return current total number of unstructured elements in mesh. More...

int elements_exist_dim (int dim) const
 Do any elements exist of specified dimension? More...

int volume_elements_exist () const
 Any dimension 3 elements exist or not? More...

int shell_elements_exist () const
 Any dimension 2 elements exist or not? More...

int bar_elements_exist () const
 Any dimension 1 elements exist or not? More...

int node_elements_exist () const
 Any dimension 0 elements exist or not? More...

int is_volume_mesh () const
 Synonym for volume_elements_exist.

int is_surface_mesh () const
 Mesh with surface elements and no volume elements. More...

int is_quad_dominant_surface_mesh () const
 Is mesh QUAD dominant over tri's?. More...

virtual RF_SIGNED_LONG getNumber (const vertex_handle& v) const = 0
 Return invariant id number of specified vertex. More...

int isEqual (const vertex_handle& v0, const vertex_handle& v1) const
 Return if two vertices are equal. More...

virtual vertex_handle lookup_vertex (RF_SIGNED_LONG vid) const = 0
 Return vertex given invariant id number. More...

virtual int get_location (const vertex_handle& v, float loc[3]) const = 0
 Return the location of specified vertex. More...

virtual int get_location (const vertex_handle& v, double loc[3]) const = 0
virtual int get_dimension (const vertex_handle& iVtx) const = 0
 Get the dimension of the vertex. More...

virtual int get_dimension (RF_SIGNED_LONG iVtx) const
virtual int get_ptwin (const vertex_handle& iVtx) const = 0
 Get the periodic twin of the specified vertex. More...

virtual int get_ptwin (RF_SIGNED_LONG iVtx) const
virtual int propose_move (vertex_handle& v, const float loc[3])
 Set the vertex location only if location obeys some criteria. More...

virtual int propose_move (vertex_handle& v, const double loc[3])
virtual int set_location (vertex_handle& v, const float loc[3]) = 0
 Set the location of specified vertex. More...

virtual int set_location (vertex_handle& v, const double loc[3]) = 0
 Set the location of specified vertex. More...

virtual int set_dimension (vertex_handle& iVtx, int iDim) = 0
 Set the dimension of the vertex. More...

virtual int set_dimension (RF_SIGNED_LONG iVtx, int iDim)
virtual int set_ptwin (const vertex_handle& iVtx, RF_SIGNED_LONG iPtwin) = 0
 Get the periodic twin of the specified vertex. More...

virtual int set_ptwin (RF_SIGNED_LONG iVtx, RF_SIGNED_LONG iPtwin)
virtual int has_element_on (RF_SIGNED_LONG vid) const
 Does specified vertex have an element on it? More...

virtual int has_element_on (const vertex_handle& v) const = 0
virtual RF_SIGNED_LONG getNumber (const element_handle& ele) const
 Return the invariant element number. More...

virtual element_handle lookup_element (RF_SIGNED_LONG iEid) const = 0
 Return element given invariant id number. More...

virtual int isEqual (const element_handle& e0, const element_handle& e1) const
 Return if two elements are equal. More...

virtual int BaseVerticesIntOrder (const element_handle& ele, vertex_handle *vv) const
 Return the vertex handles for the element in user specified order. More...

virtual int BaseVerticesSpecifiedOrder (const element_handle& ele, vertex_handle *vv, RFConnOrder iOrder) const
 Return vertices in specified order. More...

virtual int BaseVerticesNASTRANOrder (const element_handle& ele, vertex_handle *vv) const
 Return vertices in NASTRAN order. More...

virtual int BaseVerticesICEMCFDOrder (const element_handle& ele, vertex_handle *vv) const
 Return vertices in ICEMCFD order. More...

int base_vertices (const element_handle& ele, vertex_handle *vv) const
 
Deprecated:
Use BaseVerticesICEMCFDOrder instead.


virtual int GetConnectivityIntOrder (const element_handle& iEle, int *oVtxs) const = 0
 Return the connectivity of the element as vertex indices in the internal order of the mesh representation. More...

virtual int GetConnectivityIntOrder_l (const element_handle& iEle, RF_SIGNED_LONG *oVtxs) const
int GetConnectivitySpecifiedOrder (const element_handle& iEle, int *oVtxs, RFConnOrder iOrder) const
 Specify the return order of elements. More...

int GetConnectivitySpecifiedOrder_l (const element_handle& iEle, RF_SIGNED_LONG *oVtxs, RFConnOrder iOrder) const
virtual int GetConnectivityNASTRANOrder (const element_handle& iEle, int *oVtxs) const
 Return NASTRAN order. More...

virtual int GetConnectivityNASTRANOrder_l (const element_handle& iEle, RF_SIGNED_LONG *oVtxs) const
virtual int GetConnectivityICEMCFDOrder (const element_handle& iEle, int *oVtxs) const
 Return ICEMCFD order. More...

virtual int GetConnectivityICEMCFDOrder_l (const element_handle& iEle, RF_SIGNED_LONG *oVtxs) const
int get_connectivity (const element_handle& iEle, int *oVtxs) const
 
Deprecated:
Use GetConnectivityICEMCFDOrder() instead.


int get_connectivity (const element_handle& iEle, RF_SIGNED_LONG *oVtxs) const
 
Deprecated:
Use GetConnectivityICEMCFDOrder_l() instead.


virtual int GetPtwinIntOrder (const element_handle& ele, int *vv) const
 Return the vertex indices of the periodic twins of the element in internal connectivity order. More...

virtual int GetPtwinIntOrder_l (const element_handle& ele, RF_SIGNED_LONG *vv) const
virtual int GetPtwinSpecifiedOrder (const element_handle& ele, int *vv, RFConnOrder iOrd) const
 Specify the order. More...

virtual int GetPtwinSpecifiedOrder_l (const element_handle& ele, RF_SIGNED_LONG *vv, RFConnOrder iOrd) const
virtual int GetPtwinICEMCFDOrder (const element_handle& ele, int *vv) const
 Retrun in ICEMCFD order. More...

virtual int GetPtwinICEMCFDOrder_l (const element_handle& ele, RF_SIGNED_LONG *vv) const
int get_ptwin (const element_handle& ele, int *vv) const
 
Deprecated:
Use GetPtwinICEMCFDOrder instead.


int get_ptwin (const element_handle& ele, RF_SIGNED_LONG *vv) const
 
Deprecated:
Use GetPtwinICEMCFDOrder_l instead.


size_t hash (const element_handle& ele) const
 Default hash value carries out an algorithm similar to the string algorithm from the Dragon book. More...

element_handle existing_duplicate (int type, int nv, vertex_handle *vv) const
 See if there is a duplicate element of specified type and the specified vertices in the mesh. More...

int index_of_vert_on_element (const vertex_handle& v, const element_handle& e) const
 Return the index of vertex v in element e using internal mesh element ordering. More...

vertex_handle first_unshared_vert (const element_handle& el1, const element_handle& el2) const
 Return first unshared vertex between elements el1 and el2. More...

vertex_handle first_shared_vert (const element_handle& el1, const element_handle& el2) const
 Return first shared vertex between elements el1 and el2. More...

virtual int connectivity_coords (const element_handle& ele, float vv[][3]) const
 Return the location of all vertices on element of the element as vertex indices. More...

virtual int connectivity_coords (const element_handle& ele, double vv[][3]) const
double min_coords_sum (const element_handle& el) const
 Return the minimum sum of the vertex coords for an element. More...

double sphere (const element_handle& el, double cent[3]) const
 Return the maximum radius and centroid of the element. More...

vertex_handle closest_vert (const element_handle& eh, const float loc[3], int *index, float *distance, int min_dim) const
 Find the closest vertex on el to the specified location. More...

vertex_handle closest_vert (const element_handle& eh, const double loc[3], int *index, double *distance, int min_dim) const
int opposite_quad_edge (int indv[4], int nv, const vertex_handle *vv, const vertex_handle& v1, const vertex_handle& v2) const
 Fill the indv array with the indices of the quads on opposite edge of given edge. More...

int two_tri_coords (const element_handle& el, float tri1[3][3], float tri2[3][3]) const
 Get two triangles representing a QUAD element el. More...

int two_tri_coords (const element_handle& el, double tri1[3][3], double tri2[3][3]) const
float normal (const vertex_handle *vv, int nv, float norm[3]) const
 Find the normal of the element specified by the vertex handles. More...

double normal (const vertex_handle *vv, int nv, double norm[3]) const
double normal (const element_handle& e, double norm[3]) const
 Find the normal of the element specified by the vertex handles. More...

int normal (const vertex_handle& v, double norm[3]) const
 Determine the normal of the vertex. More...

int normal (const vertex_handle& v, int pid, double norm[3]) const
virtual int geometric_edges (const element_handle& ele, float edgev[][2][3]) const
 Return the geometric edges of the element. More...

virtual int geometric_edges (const element_handle& ele, double edgev[][2][3]) const
int falls_on_edge (const element_handle& ele, const float loc[3], float tol) const
 Does the specified location fall within tolerance of an edge? More...

int falls_on_edge (const element_handle& ele, const double loc[3], double tol) const
virtual int falls_on_edge (const float loc[3], const float edge[2][3], const char *family, float tol) const
 If not within tolerance of edge, see if projecting to the specified family lies within specified tolerance. More...

virtual int falls_on_edge (const double loc[3], const double edge[2][3], const char *family, double tol) const
double edge_length (const vertex_handle& loc0, const vertex_handle& loc1) const
 Length of edge. More...

virtual int intersect_triangles (const float tri1[3][3], const float tri2[3][3]) const
 Intersect two triangles given by coordinates. More...

virtual int intersect_triangles (const double tri1[3][3], const double tri2[3][3]) const
 Base class method invokes floating point method. More...

int intersect_elements (const element_handle& el1, const element_handle& el2) const
 Intersect 2 quads, 2 tris or 1 quad and 1 tri. More...

int intersect_two_tris (const element_handle& tri1, const element_handle& tri2) const
 Intersect 2 tris. More...

int intersect_quad_tri (const element_handle& quad, const element_handle& tri) const
 Intersect a quad and a tri. More...

int intersect_two_quads (const element_handle& quad1, const element_handle& quad2) const
 Intersect 2 quads. More...

int centroid_crosses_edge (const element_handle& el, const float loc[3]) const
 Compute whether or not the line between the centroid and the specified location crosses an edge of the element. More...

int centroid_crosses_edge (const element_handle& el, const double loc[3]) const
element_handle nearest_element (const float loc[3], const char *family, int dimension, int check_edge_crossing=1) const
 Determine the nearest element to specified location. More...

element_handle nearest_element (const double loc[3], const char *family, int dimension, int check_edge_crossing=1) const
virtual double aspect_ratio_quad (const float locs[][3]) const
 Compute aspect ratio for a quad element. More...

virtual double aspect_ratio_quad (const double locs[][3]) const
 Base class method invokes floating method. More...

double aspect_ratio_quad (const element_handle& el) const
virtual double aspect_ratio_tri (const float locs[][3]) const
 Compute aspect ratio for a tri element. More...

virtual double aspect_ratio_tri (const double locs[][3]) const
double aspect_ratio_tri (const element_handle& el) const
 Base class method invokes floating method. More...

virtual double aspect_ratio (const element_handle& el) const
 Compute aspect ratio of element. More...

virtual int project_to_curves (const float loc[3], float proj[3], float tangent[3], int *famid) const
 Project the point to the curves in the CAD model. More...

virtual int project_to_curves (const double loc[3], double proj[3], double tangent[3], int *famid) const
virtual int can_collapse_edge (int nv, vertex_handle& v1, vertex_handle& v2) const
 Can collapse the specified edge. More...

virtual int max_pid () const = 0
 Return the maximum family id in the mesh. More...

virtual int family_pid (const char *name) const = 0
 Return the family id for given name. More...

virtual const char* family_name (int famid) const = 0
 Return the family name for given family id. More...

virtual int delete_family (const char *name) = 0
 Delete family. More...

virtual int set_family (int famid, const char *name)
 Set the family name for given family id. More...

virtual int set_family_by_name (int famid, const char *name)
 Reset the family id for given name. More...

virtual int get_centroid (const element_handle& ele, double loc[3]) const
 Compute the centroid of the element. More...

virtual int get_centroid (const element_handle& ele, float loc[3]) const
int get_centroid_vertices (unsigned int iNverts, const vertex_handle *iVerts, double oLoc[3]) const
 Get the centroid of a number of vertices.

int get_centroid_vertices_f (unsigned int iNverts, const vertex_handle *iVerts, float oLoc[3]) const
virtual int bounding_box (double bbox_min[3], double bbox_max[3]) const
 Compute the bounding box of all vertices.

virtual int bounding_box_f (float bbox_min[3], float bbox_max[3]) const
virtual int get_bbox (const element_handle& ele, double bbox_min[3], double bbox_max[3]) const
 Compute the bounding box of the element. More...

virtual int get_bbox (const element_handle& ele, float bbox_min[3], float bbox_max[3]) const
virtual size_t n_domains () const = 0
 Return number of structured domains. More...

virtual str_domain_handle get_domain (size_t i) = 0
 Return the ith structured domain. More...

virtual str_domain_handle get_domain (size_t i) const = 0
virtual int ijk_of_domain (size_t i, int ijk[3]) const
 Return the ijk range (1-n) for ith structured domain. More...

virtual size_t n_str_vertices () const
 Return the number of structured vertices in the mesh. More...

virtual size_t n_str_volelements () const
 Return the number of structured volume elements in the mesh. More...

virtual size_t n_str_faceelements () const
 Return the number of structured face elements in the mesh. More...

virtual int set_basic_topo () = 0
 Set the basic topology of a set of structured domains. More...

virtual int setDegree (int degree) = 0
 Set the degree of the structured mesh (2 or 3D). More...

virtual int getDegree () const = 0
 Return the degree of the structured mesh (2 or 3D). More...

virtual int set_strdomain_name (size_t i, const char *name)
 Set the name of the ith structured domain. More...

virtual int set_strdomain_family (size_t i, const char *fam)
 Set the family name of the ith structured domain. More...


Static Public Methods

void SortElement (unsigned int iNV, int *ioVV)
 Sort specified element. More...

void SortElement (unsigned int iNV, RF_SIGNED_LONG *ioVV)
void SortElement (unsigned int iNV, const int *iVV, int *oSVV)
 Input remains fixed and emit sorted output. More...

void SortElement (unsigned int iNV, const RF_SIGNED_LONG *iVV, RF_SIGNED_LONG *oSVV)
unsigned int SortAndRemove (unsigned int iNV, int *ioVV)
 Sort specified element and remove all degenerate nodes and nodes < 0. More...

unsigned int SortAndRemove (unsigned int iNV, RF_SIGNED_LONG *ioVV)
unsigned int SortAndRemove (unsigned int iNV, const int *iVV, int *oSVV)
 Input remains fixed and emit sorted output. More...

unsigned int SortAndRemove (unsigned int iNV, const RF_SIGNED_LONG *iVV, RF_SIGNED_LONG *oSVV)
const int* GetFaceInfoNASTRAN (int iType)
 Return NASTRAN face definition. More...

int DecodeFaceNASTRANOrder (int iType, int& oNFaces, const int **oFaces, int *oNVtxFace)
 Return NASTRAN face definition. More...

const int* GetOppfaceInfoNASTRAN (int iType)
 Get the NASTRAN definition. More...

int DecodeOppfaceNASTRANOrder (int iType, int& oNfaces, int *oOppositeFaces, const int **oOppFIdx, int *oNVtxface)
 Decode NASTRAN information. More...

int GetOppositeFaceNASTRAN (int iType, unsigned int iFaceNum, int& oNvtxface, const int *& oOppFIdx)
 Return opposite face information for NASTRAN. More...

const int* GetEdgeInfoNASTRAN (int iType)
 Return NASTRAN edge definition. More...

int DecodeEdgeNASTRANOrder (int iType, int& oNEdges, const int **oEdges, int *oNVtxEdge)
 Return NASTRAN edge definition. More...

size_t hash (size_t nv, const int *vv)
 All applications that can include rf_mesh_interface have access to this function. More...

size_t hash (size_t nv, const RF_SIGNED_LONG *vv)

Protected Methods

void ReleaseConnectivityMap ()
 Release the element connectivity order maps. More...


Protected Attributes

RFConnectivityMap_map
 Connectivity map for mesh.


Detailed Description

Mesh implementations must specify this interface.

They also should define their connectivity information on construction.

See also:
rf_mesh_interface::SetInternalOrder() , rf_mesh_interface::SetKnownOrder() , rf_mesh_interface::SetConnectivityNASTRANOrder()
Examples:

exmesh_impl.cxx, exuns_impl.h, iteration_com.cxx, iteration_exmesh.cxx, med_impl.C, OpenGateway.C, and rf_exuns_impl.cxx.


Constructor & Destructor Documentation

rf_mesh_interface::rf_mesh_interface ( RFConnOrder iOrd = connect_no_order )
 

Sets connectivity order maps for all known orders.

If order specified as a user order, Uses the user specified method SetUserOrder. If no order is specified (default), invoker must manually set the order. Uses default connectivity map implementation.

See also:
SetKnownOrder()

rf_mesh_interface::rf_mesh_interface ( const RFConnectivityMap * iMap )
 

Defines the connectivity using given connectivity map.

See also:
SetConnectivityMap()

rf_mesh_interface::~rf_mesh_interface ( )
 

Release user specified connectivity maps if specified.

See also:
ReleaseElementMaps


Member Function Documentation

void rf_mesh_interface::ReleaseConnectivityMap ( ) [protected]
 

Release the element connectivity order maps.

Decrement the ownership count.

void rf_mesh_interface::SetConnectivityMap ( const RFConnectivityMap * iMap ) [virtual]
 

Set the connectivity map.

Mesh interface takes ownership by incrementing ownership count.

Reimplemented in OpenGateway, and blockingExtMesh_impl.

Examples:
OpenGateway.C.

rf_mesh_newnum rf_mesh_interface::copy_str_from ( const rf_mesh_interface * mi )
 

Copy the structured mesh.

Parameters:
mi   interface to implementation to be copied.
Returns:
number of added structured nodes and elements copied from mi.

size_t rf_mesh_interface::copy_unstr_vertices ( const rf_mesh_interface * mi,
RFLongestSignedList & mapVerts )
 

Copy just the unstructured vertices from one mesh rep to another.

Broke this out of copy_unstr_from() for CATIA V5.

Parameters:
mi   mesh rep to copy from.
mapVerts   vertex mapping from mi to current mesh. This allows this operation to append a mesh.
Returns:
number of new vertices added to the mesh.

size_t rf_mesh_interface::copy_unstr_elements ( const rf_mesh_interface * mi,
const RFLongestSignedList & mapVerts,
RFLongestSignedList & mapEles,
int eltype,
const RFLongestSignedList & famstocopy,
int dohint = 1 )
 

Copy just the unstructured elements from one mesh rep to another.

Broke this out of copy_unstr_from() for CATIA V5. If eltype is MIXED (0), copy all element types. If list of families to copy is empty, copy all families.