MOAB: Mesh Oriented datABase  (version 5.5.0)
EntityCount Class Reference

Public Member Functions

 EntityCount ()
 
ErrorCode get_counts ()
 
ErrorCode create_adjacencies (Range &entities, int adj_dim)
 
void copy_counts (EntityCount &count)
 
void print ()
 

Public Attributes

unsigned int node
 
unsigned int edge
 
unsigned int quad
 
unsigned int tri
 
unsigned int hex
 
unsigned int tet
 

Detailed Description

Definition at line 13 of file merge_test.cpp.

Constructor & Destructor Documentation

◆ EntityCount()

EntityCount::EntityCount ( )

Definition at line 31 of file merge_test.cpp.

32 {
33  node = 0;
34  edge = 0;
35  quad = 0;
36  tri = 0;
37  hex = 0;
38  tet = 0;
39 }

Member Function Documentation

◆ copy_counts()

void EntityCount::copy_counts ( EntityCount count)

Definition at line 41 of file merge_test.cpp.

42 {
43  node = count.node;
44  edge = count.edge;
45  quad = count.quad;
46  tri = count.tri;
47  hex = count.hex;
48  tet = count.tet;
49 }

References edge, hex, node, quad, tet, and tri.

Referenced by process_bu_auto_merge(), process_merge(), process_mo_auto_merge(), and process_td_auto_merge().

◆ create_adjacencies()

ErrorCode EntityCount::create_adjacencies ( Range entities,
int  adj_dim 
)

Definition at line 101 of file merge_test.cpp.

102 {
103  ErrorCode result;
104  Range::iterator iter;
105  std::vector< EntityHandle > adjacencies;
106 
107  for( iter = entities.begin(); iter != entities.end(); ++iter )
108  {
109  result = gMB->get_adjacencies( &*iter, 1, adj_dim, true, adjacencies );
110  if( result != MB_SUCCESS ) break;
111  }
112 
113  return result;
114 }

References entities, ErrorCode, moab::Interface::get_adjacencies(), gMB, and MB_SUCCESS.

◆ get_counts()

ErrorCode EntityCount::get_counts ( )

Definition at line 51 of file merge_test.cpp.

52 {
54  int do_create = edge == 0;
55 
56  if( gMB->get_entities_by_type( 0, MBVERTEX, entities ) != MB_SUCCESS ) return MB_FAILURE;
57  node = entities.size();
58 
59  entities.clear();
60  if( gMB->get_entities_by_type( 0, MBHEX, entities ) != MB_SUCCESS ) return MB_FAILURE;
61  hex = entities.size();
62  if( hex > 0 && do_create )
63  {
64  if( create_adjacencies( entities, 2 ) != MB_SUCCESS ) return MB_FAILURE;
65  if( create_adjacencies( entities, 1 ) != MB_SUCCESS ) return MB_FAILURE;
66  }
67 
68  entities.clear();
69  if( gMB->get_entities_by_type( 0, MBQUAD, entities ) != MB_SUCCESS ) return MB_FAILURE;
70  quad = entities.size();
71  if( quad > 0 && do_create )
72  {
73 
74  if( create_adjacencies( entities, 1 ) != MB_SUCCESS ) return MB_FAILURE;
75  }
76 
77  entities.clear();
78  if( gMB->get_entities_by_type( 0, MBTET, entities ) != MB_SUCCESS ) return MB_FAILURE;
79  tet = entities.size();
80  if( tet > 0 && do_create )
81  {
82  if( create_adjacencies( entities, 2 ) != MB_SUCCESS ) return MB_FAILURE;
83  if( create_adjacencies( entities, 1 ) != MB_SUCCESS ) return MB_FAILURE;
84  }
85 
86  entities.clear();
87  if( gMB->get_entities_by_type( 0, MBTRI, entities ) != MB_SUCCESS ) return MB_FAILURE;
88  tri = entities.size();
89  if( tri > 0 && do_create )
90  {
91  if( create_adjacencies( entities, 1 ) != MB_SUCCESS ) return MB_FAILURE;
92  }
93 
94  entities.clear();
95  if( gMB->get_entities_by_type( 0, MBEDGE, entities ) != MB_SUCCESS ) return MB_FAILURE;
96  edge = entities.size();
97 
98  return MB_SUCCESS;
99 }

References entities, moab::Interface::get_entities_by_type(), gMB, MB_SUCCESS, MBEDGE, MBHEX, MBQUAD, MBTET, MBTRI, and MBVERTEX.

Referenced by merge_2D_elem(), merge_3D_elem(), merge_edges(), merge_nodes(), merge_top_down(), process_bu_auto_merge(), process_merge(), process_mo_auto_merge(), process_td_auto_merge(), and read_file().

◆ print()

void EntityCount::print ( )

Definition at line 116 of file merge_test.cpp.

117 {
118  std::cout << " Vertices: " << node << std::endl;
119  cout << " Edges: " << edge << endl;
120  if( quad > 0 ) cout << " Quad Elements: " << quad << endl;
121  if( hex > 0 ) cout << " Hex Elements: " << hex << endl;
122  if( tri > 0 ) cout << " Tri Elements: " << tri << endl;
123  if( tet > 0 ) cout << " Tet Elements: " << tet << endl;
124 }

Referenced by process_bu_auto_merge(), process_merge(), process_mo_auto_merge(), and process_td_auto_merge().

Member Data Documentation

◆ edge

◆ hex

◆ node

◆ quad

◆ tet

◆ tri


The documentation for this class was generated from the following file: