|
MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include "TestUtil.hpp"#include "moab/Core.hpp"#include "moab/Range.hpp"#include "MBTagConventions.hpp"#include <cmath>#include <algorithm>
Include dependency graph for gmsh_test.cpp:Go to the source code of this file.
Functions | |
| void | test_read_nodes () |
| void | test_read_quads () |
| void | test_read_material_set () |
| void | test_read_material_on_nodes () |
| void | test_read_geom_set () |
| void | test_read_airfoil () |
| void | test_read_t1 () |
| void | test_read_fgh () |
| void | read_file (Interface &moab, const char *input_file) |
| int | main () |
Variables | |
| static const char | example [] = "gmsh2.msh" |
| static const char | example2 [] = "airfoil_exterior.msh" |
| static const char | example3 [] = "t1.msh" |
| static const char | example4 [] = "ghosts.msh" |
| static const char | example5 [] = "gmsh3.msh" |
| int main | ( | ) |
Definition at line 39 of file gmsh_test.cpp.
References RUN_TEST, test_read_airfoil(), test_read_fgh(), test_read_geom_set(), test_read_material_on_nodes(), test_read_material_set(), test_read_nodes(), test_read_quads(), and test_read_t1().
{
int result = 0;
result += RUN_TEST( test_read_nodes );
result += RUN_TEST( test_read_quads );
result += RUN_TEST( test_read_material_set );
result += RUN_TEST( test_read_material_on_nodes );
result += RUN_TEST( test_read_geom_set );
result += RUN_TEST( test_read_airfoil );
result += RUN_TEST( test_read_t1 );
result += RUN_TEST( test_read_fgh );
return result;
}
| void test_read_airfoil | ( | ) |
Definition at line 254 of file gmsh_test.cpp.
References example2, and read_file().
Referenced by main().
| void test_read_fgh | ( | ) |
Definition at line 266 of file gmsh_test.cpp.
References CHECK_EQUAL, CHECK_ERR, ErrorCode, example4, moab::Core::get_entities_by_handle(), moab::Core::get_entities_by_type_and_tag(), MBENTITYSET, read_file(), moab::Range::size(), and moab::Core::tag_get_handle().
Referenced by main().
{
Core moab;
read_file( moab, example4 ); // it should find 3 partitions
// read partition sets
Tag ptag;
ErrorCode rval = moab.tag_get_handle( "PARALLEL_PARTITION", ptag );CHECK_ERR( rval );
Range psets;
rval = moab.get_entities_by_type_and_tag( 0, MBENTITYSET, &ptag, 0, 1, psets );CHECK_ERR( rval );
CHECK_EQUAL( 3, (int)psets.size() );
Range ents_first_set;
rval = moab.get_entities_by_handle( psets[0], ents_first_set );CHECK_ERR( rval );
CHECK_EQUAL( (int)ents_first_set.size(), 98 );
}
| void test_read_geom_set | ( | ) |
Definition at line 222 of file gmsh_test.cpp.
References CHECK_EQUAL, CHECK_ERR, dim, dim_tag, ErrorCode, example, moab::Range::front(), GEOM_DIMENSION_TAG_NAME, moab::Interface::get_entities_by_handle(), moab::Interface::get_entities_by_type(), moab::Interface::get_entities_by_type_and_tag(), moab::Interface::globalId_tag(), id_tag, mb, MB_TYPE_INTEGER, MBENTITYSET, MBQUAD, read_file(), moab::Range::size(), moab::Interface::tag_get_data(), and moab::Interface::tag_get_handle().
Referenced by main().
{
ErrorCode rval;
Core moab;
Interface& mb = moab;
read_file( moab, example );
Tag dim_tag, id_tag;
rval = mb.tag_get_handle( GEOM_DIMENSION_TAG_NAME, 1, MB_TYPE_INTEGER, dim_tag );CHECK_ERR( rval );
id_tag = mb.globalId_tag();
Range sets;
rval = mb.get_entities_by_type_and_tag( 0, MBENTITYSET, &dim_tag, 0, 1, sets );CHECK_ERR( rval );
CHECK_EQUAL( 1, (int)sets.size() );
EntityHandle set = sets.front();
int dim;
rval = mb.tag_get_data( dim_tag, &set, 1, &dim );CHECK_ERR( rval );
CHECK_EQUAL( 2, dim );
int id;
rval = mb.tag_get_data( id_tag, &set, 1, &id );CHECK_ERR( rval );
CHECK_EQUAL( 3, id );
std::vector< EntityHandle > quads, contents;
rval = mb.get_entities_by_type( 0, MBQUAD, quads );CHECK_ERR( rval );
rval = mb.get_entities_by_handle( set, contents );CHECK_ERR( rval );
std::sort( quads.begin(), quads.end() );
std::sort( contents.begin(), contents.end() );
CHECK_EQUAL( quads, contents );
}
| void test_read_material_on_nodes | ( | ) |
Definition at line 197 of file gmsh_test.cpp.
References moab::Range::back(), CHECK_EQUAL, CHECK_ERR, ErrorCode, example5, moab::Range::front(), moab::Interface::get_entities_by_type_and_tag(), MATERIAL_SET_TAG_NAME, mb, MB_TYPE_INTEGER, MBENTITYSET, read_file(), moab::Range::size(), moab::Interface::tag_get_data(), and moab::Interface::tag_get_handle().
Referenced by main().
{
ErrorCode rval;
Core moab;
Interface& mb = moab;
read_file( moab, example5 );
Tag mat_tag;
rval = mb.tag_get_handle( MATERIAL_SET_TAG_NAME, 1, MB_TYPE_INTEGER, mat_tag );CHECK_ERR( rval );
Range sets;
rval = mb.get_entities_by_type_and_tag( 0, MBENTITYSET, &mat_tag, 0, 1, sets );CHECK_ERR( rval );
CHECK_EQUAL( 2, (int)sets.size() );
EntityHandle set_101 = sets.front();
EntityHandle set_102 = sets.back();
int id;
rval = mb.tag_get_data( mat_tag, &set_101, 1, &id );CHECK_ERR( rval );
CHECK_EQUAL( 101, id );
rval = mb.tag_get_data( mat_tag, &set_102, 1, &id );CHECK_ERR( rval );
CHECK_EQUAL( 102, id );
}
| void test_read_material_set | ( | ) |
Definition at line 170 of file gmsh_test.cpp.
References CHECK_EQUAL, CHECK_ERR, ErrorCode, example, moab::Range::front(), moab::Interface::get_entities_by_handle(), moab::Interface::get_entities_by_type(), moab::Interface::get_entities_by_type_and_tag(), MATERIAL_SET_TAG_NAME, mb, MB_TYPE_INTEGER, MBENTITYSET, MBQUAD, read_file(), moab::Range::size(), moab::Interface::tag_get_data(), and moab::Interface::tag_get_handle().
Referenced by main().
{
ErrorCode rval;
Core moab;
Interface& mb = moab;
read_file( moab, example );
Tag mat_tag;
rval = mb.tag_get_handle( MATERIAL_SET_TAG_NAME, 1, MB_TYPE_INTEGER, mat_tag );CHECK_ERR( rval );
Range sets;
rval = mb.get_entities_by_type_and_tag( 0, MBENTITYSET, &mat_tag, 0, 1, sets );CHECK_ERR( rval );
CHECK_EQUAL( 1, (int)sets.size() );
EntityHandle set = sets.front();
int id;
rval = mb.tag_get_data( mat_tag, &set, 1, &id );CHECK_ERR( rval );
CHECK_EQUAL( 99, id );
std::vector< EntityHandle > quads, contents;
rval = mb.get_entities_by_type( 0, MBQUAD, quads );CHECK_ERR( rval );
rval = mb.get_entities_by_handle( set, contents );CHECK_ERR( rval );
std::sort( quads.begin(), quads.end() );
std::sort( contents.begin(), contents.end() );
CHECK_EQUAL( quads, contents );
}
| void test_read_nodes | ( | ) |
Definition at line 61 of file gmsh_test.cpp.
References CHECK_EQUAL, CHECK_ERR, CHECK_REAL_EQUAL, eps, ErrorCode, example, moab::Interface::get_coords(), moab::Interface::get_entities_by_type(), moab::Interface::globalId_tag(), id_tag, mb, MBVERTEX, read_file(), and moab::Interface::tag_get_data().
Referenced by main().
{
const double eps = 1e-100;
ErrorCode rval;
Core moab;
Interface& mb = moab;
read_file( moab, example );
std::vector< EntityHandle > nodes;
rval = mb.get_entities_by_type( 0, MBVERTEX, nodes );CHECK_ERR( rval );
CHECK_EQUAL( (size_t)6, nodes.size() );
Tag id_tag = mb.globalId_tag();
std::vector< int > ids( nodes.size() );
rval = mb.tag_get_data( id_tag, &nodes[0], nodes.size(), &ids[0] );CHECK_ERR( rval );
std::vector< int > sorted_ids( ids );
std::sort( sorted_ids.begin(), sorted_ids.end() );
std::vector< double > coords( 3 * nodes.size() );
rval = mb.get_coords( &nodes[0], nodes.size(), &coords[0] );CHECK_ERR( rval );
int idx, pos = 0;
CHECK_EQUAL( pos + 1, sorted_ids[pos] );
idx = std::find( ids.begin(), ids.end(), pos + 1 ) - ids.begin();
CHECK_REAL_EQUAL( coords[3 * idx + 0], 0.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 1], 0.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 2], 0.0, eps );
++pos;
CHECK_EQUAL( pos + 1, sorted_ids[pos] );
idx = std::find( ids.begin(), ids.end(), pos + 1 ) - ids.begin();
CHECK_REAL_EQUAL( coords[3 * idx + 0], 1.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 1], 0.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 2], 0.0, eps );
++pos;
CHECK_EQUAL( pos + 1, sorted_ids[pos] );
idx = std::find( ids.begin(), ids.end(), pos + 1 ) - ids.begin();
CHECK_REAL_EQUAL( coords[3 * idx + 0], 1.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 1], 1.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 2], 0.0, eps );
++pos;
CHECK_EQUAL( pos + 1, sorted_ids[pos] );
idx = std::find( ids.begin(), ids.end(), pos + 1 ) - ids.begin();
CHECK_REAL_EQUAL( coords[3 * idx + 0], 0.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 1], 1.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 2], 0.0, eps );
++pos;
CHECK_EQUAL( pos + 1, sorted_ids[pos] );
idx = std::find( ids.begin(), ids.end(), pos + 1 ) - ids.begin();
CHECK_REAL_EQUAL( coords[3 * idx + 0], 2.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 1], 0.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 2], 0.0, eps );
++pos;
CHECK_EQUAL( pos + 1, sorted_ids[pos] );
idx = std::find( ids.begin(), ids.end(), pos + 1 ) - ids.begin();
CHECK_REAL_EQUAL( coords[3 * idx + 0], 2.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 1], 1.0, eps );
CHECK_REAL_EQUAL( coords[3 * idx + 2], 0.0, eps );
}
| void test_read_quads | ( | ) |
Definition at line 127 of file gmsh_test.cpp.
References CHECK_ARRAYS_EQUAL, CHECK_EQUAL, CHECK_ERR, ErrorCode, example, moab::Interface::get_connectivity(), moab::Interface::get_entities_by_type(), moab::Interface::globalId_tag(), id_tag, mb, MBQUAD, read_file(), swap(), and moab::Interface::tag_get_data().
Referenced by main().
{
ErrorCode rval;
Core moab;
Interface& mb = moab;
read_file( moab, example );
std::vector< EntityHandle > quads;
rval = mb.get_entities_by_type( 0, MBQUAD, quads );CHECK_ERR( rval );
CHECK_EQUAL( (size_t)2, quads.size() );
Tag id_tag = mb.globalId_tag();
std::vector< int > ids( quads.size() );
rval = mb.tag_get_data( id_tag, &quads[0], quads.size(), &ids[0] );CHECK_ERR( rval );
if( ids[0] != 1 )
{
std::swap( ids[0], ids[1] );
std::swap( quads[0], quads[1] );
}
int vtx_ids[4];
const EntityHandle* conn;
int len;
const int conn1[] = { 1, 2, 3, 4 };
int pos = 0;
CHECK_EQUAL( pos + 1, ids[pos] );
rval = mb.get_connectivity( quads[pos], conn, len );CHECK_ERR( rval );
CHECK_EQUAL( 4, len );
rval = mb.tag_get_data( id_tag, conn, len, vtx_ids );CHECK_ERR( rval );
CHECK_ARRAYS_EQUAL( conn1, 4, vtx_ids, len );
const int conn2[] = { 2, 5, 6, 3 };
++pos;
CHECK_EQUAL( pos + 1, ids[pos] );
rval = mb.get_connectivity( quads[pos], conn, len );CHECK_ERR( rval );
CHECK_EQUAL( 4, len );
rval = mb.tag_get_data( id_tag, conn, len, vtx_ids );CHECK_ERR( rval );
CHECK_ARRAYS_EQUAL( conn2, 4, vtx_ids, len );
}
| void test_read_t1 | ( | ) |
Definition at line 260 of file gmsh_test.cpp.
References example3, and read_file().
Referenced by main().
const char example[] = "gmsh2.msh" [static] |
Definition at line 21 of file gmsh_test.cpp.
Referenced by gather_one_cell_var(), multiple_loads_of_same_file(), read_mesh_parallel(), read_one_cell_var(), test_gather_onevar(), test_intx_in_parallel_elem_based(), test_intx_mpas(), test_new_pcomm_instance(), test_read_all(), test_read_coord_vars(), test_read_geom_set(), test_read_hexes(), test_read_material_set(), test_read_material_set1(), test_read_material_set2(), test_read_no_edges(), test_read_no_mixed_elements(), test_read_nodes(), test_read_nomesh(), test_read_novars(), test_read_onetimestep(), test_read_onevar(), test_read_parallel(), test_read_physical_set(), test_read_prisms(), test_read_quads(), test_read_tets(), and test_read_triangles().
const char example2[] = "airfoil_exterior.msh" [static] |
Definition at line 22 of file gmsh_test.cpp.
Referenced by test_read_airfoil().
const char example3[] = "t1.msh" [static] |
Definition at line 23 of file gmsh_test.cpp.
Referenced by test_read_t1().
const char example4[] = "ghosts.msh" [static] |
Definition at line 24 of file gmsh_test.cpp.
Referenced by test_read_fgh().
const char example5[] = "gmsh3.msh" [static] |
Definition at line 25 of file gmsh_test.cpp.
Referenced by test_read_material_on_nodes().