MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include "TestUtil.hpp"
#include "moab/Core.hpp"
#include "moab/ReadUtilIface.hpp"
#include "TagInfo.hpp"
#include "MBTagConventions.hpp"
Go to the source code of this file.
Functions | |
void | test_read_all () |
void | test_read_onevar () |
void | test_read_onetimestep () |
void | test_read_nomesh () |
void | test_read_novars () |
void | test_read_coord_vars () |
void | test_gather_onevar () |
void | test_read_conn () |
void | get_options (std::string &opts) |
int | main (int argc, char *argv[]) |
Variables | |
std::string | example = "unittest/io/homme3x3458.t.3.nc" |
std::string | conn_fname = "unittest/io/HommeMapping.nc" |
const int | levels = 3 |
void get_options | ( | std::string & | opts | ) |
int main | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 30 of file read_ucd_nc.cpp.
References moab::fail(), RUN_TEST, test_gather_onevar(), test_read_all(), test_read_conn(), test_read_coord_vars(), test_read_nomesh(), test_read_novars(), test_read_onetimestep(), and test_read_onevar().
{ int result = 0; #ifdef MOAB_HAVE_MPI int fail = MPI_Init( &argc, &argv ); if( fail ) return 1; #else argv[0] = argv[argc - argc]; // To remove the warnings in serial mode about unused variables #endif result += RUN_TEST( test_read_all ); result += RUN_TEST( test_read_onevar ); result += RUN_TEST( test_read_onetimestep ); result += RUN_TEST( test_read_nomesh ); result += RUN_TEST( test_read_novars ); result += RUN_TEST( test_read_coord_vars ); result += RUN_TEST( test_gather_onevar ); result += RUN_TEST( test_read_conn ); #ifdef MOAB_HAVE_MPI fail = MPI_Finalize(); if( fail ) return 1; #endif return result; }
void test_gather_onevar | ( | ) |
void test_read_all | ( | ) |
void test_read_conn | ( | ) |
Definition at line 363 of file read_ucd_nc.cpp.
References CHECK_EQUAL, CHECK_ERR, conn_fname, ErrorCode, moab::Interface::get_entities_by_type(), get_options(), moab::ParallelComm::get_pcomm(), moab::Interface::load_file(), MBQUAD, MBVERTEX, moab::ParallelComm::proc_config(), moab::ProcConfig::proc_size(), and moab::Range::size().
Referenced by main().
{ Core moab; Interface& mb = moab; std::string opts; get_options( opts ); ErrorCode rval = mb.load_file( conn_fname.c_str(), NULL, opts.c_str() );CHECK_ERR( rval ); #ifdef MOAB_HAVE_MPI ParallelComm* pcomm = ParallelComm::get_pcomm( &mb, 0 ); int procs = pcomm->proc_config().proc_size(); #else int procs = 1; #endif // Make check runs this test on one processor if( 1 == procs ) { // Get vertices Range verts; rval = mb.get_entities_by_type( 0, MBVERTEX, verts );CHECK_ERR( rval ); CHECK_EQUAL( (size_t)3458, verts.size() ); // Get cells Range cells; rval = mb.get_entities_by_type( 0, MBQUAD, cells );CHECK_ERR( rval ); CHECK_EQUAL( (size_t)3456, cells.size() ); } }
void test_read_coord_vars | ( | ) |
Definition at line 212 of file read_ucd_nc.cpp.
References CHECK_EQUAL, CHECK_ERR, CHECK_REAL_EQUAL, moab::Interface::create_meshset(), eps, ErrorCode, example, get_options(), levels, moab::Interface::load_file(), MB_TAG_SPARSE, MB_TAG_VARLEN, MB_TYPE_DOUBLE, MB_TYPE_INTEGER, MB_TYPE_OPAQUE, MESHSET_SET, moab::Interface::tag_get_by_ptr(), and moab::Interface::tag_get_handle().
Referenced by main().
{ Core moab; Interface& mb = moab; EntityHandle file_set; ErrorCode rval = mb.create_meshset( MESHSET_SET, file_set );CHECK_ERR( rval ); std::string orig, opts; get_options( orig ); opts = orig + std::string( ";NOMESH;VARIABLE=" ); rval = mb.load_file( example.c_str(), &file_set, opts.c_str() );CHECK_ERR( rval ); std::string tag_name; int var_len; Tag var_tag; const void* var_data; // Check tag for regular coordinate variable lev tag_name = "lev"; var_len = 0; rval = mb.tag_get_handle( tag_name.c_str(), var_len, MB_TYPE_OPAQUE, var_tag, MB_TAG_SPARSE | MB_TAG_VARLEN );CHECK_ERR( rval ); CHECK_EQUAL( true, var_tag->variable_length() ); CHECK_EQUAL( MB_TYPE_DOUBLE, var_tag->get_data_type() ); // Check lev tag size and values on file_set rval = mb.tag_get_by_ptr( var_tag, &file_set, 1, &var_data, &var_len );CHECK_ERR( rval ); CHECK_EQUAL( levels, var_len ); double* lev_val = (double*)var_data; const double eps = 1e-10; CHECK_REAL_EQUAL( 3.54463800000002, lev_val[0], eps ); CHECK_REAL_EQUAL( 13.9672100000001, lev_val[levels - 1], eps ); // Check tag for dummy coordinate variable ncol tag_name = "ncol"; var_len = 0; rval = mb.tag_get_handle( tag_name.c_str(), var_len, MB_TYPE_OPAQUE, var_tag, MB_TAG_SPARSE | MB_TAG_VARLEN );CHECK_ERR( rval ); CHECK_EQUAL( true, var_tag->variable_length() ); CHECK_EQUAL( MB_TYPE_INTEGER, var_tag->get_data_type() ); // Check ncol tag size and values on file_set rval = mb.tag_get_by_ptr( var_tag, &file_set, 1, &var_data, &var_len );CHECK_ERR( rval ); CHECK_EQUAL( 1, var_len ); int* ncol_val = (int*)var_data; CHECK_EQUAL( 3458, ncol_val[0] ); // Create another file set EntityHandle file_set2; rval = mb.create_meshset( MESHSET_SET, file_set2 );CHECK_ERR( rval ); // Read file again with file_set2 rval = mb.load_file( example.c_str(), &file_set2, opts.c_str() );CHECK_ERR( rval ); // Check tag for regular coordinate lev tag_name = "lev"; var_len = 0; rval = mb.tag_get_handle( tag_name.c_str(), var_len, MB_TYPE_OPAQUE, var_tag, MB_TAG_SPARSE | MB_TAG_VARLEN );CHECK_ERR( rval ); CHECK_EQUAL( true, var_tag->variable_length() ); CHECK_EQUAL( MB_TYPE_DOUBLE, var_tag->get_data_type() ); // Check lev tag size and values on file_set2 rval = mb.tag_get_by_ptr( var_tag, &file_set2, 1, &var_data, &var_len );CHECK_ERR( rval ); CHECK_EQUAL( levels, var_len ); lev_val = (double*)var_data; CHECK_REAL_EQUAL( 3.54463800000002, lev_val[0], eps ); CHECK_REAL_EQUAL( 13.9672100000001, lev_val[levels - 1], eps ); // Check tag for dummy coordinate variable ncol tag_name = "ncol"; var_len = 0; rval = mb.tag_get_handle( tag_name.c_str(), var_len, MB_TYPE_OPAQUE, var_tag, MB_TAG_SPARSE | MB_TAG_VARLEN );CHECK_ERR( rval ); CHECK_EQUAL( true, var_tag->variable_length() ); CHECK_EQUAL( MB_TYPE_INTEGER, var_tag->get_data_type() ); // Check ncol tag size and values on file_set2 rval = mb.tag_get_by_ptr( var_tag, &file_set2, 1, &var_data, &var_len );CHECK_ERR( rval ); CHECK_EQUAL( 1, var_len ); ncol_val = (int*)var_data; CHECK_EQUAL( 3458, ncol_val[0] ); }
void test_read_nomesh | ( | ) |
void test_read_novars | ( | ) |
void test_read_onetimestep | ( | ) |
void test_read_onevar | ( | ) |
std::string conn_fname = "unittest/io/HommeMapping.nc" |
Definition at line 10 of file read_ucd_nc.cpp.
Referenced by moab::NCHelperHOMME::create_mesh(), and test_read_conn().
std::string example = "unittest/io/homme3x3458.t.3.nc" |
Definition at line 9 of file read_ucd_nc.cpp.
const int levels = 3 |
Definition at line 28 of file read_ucd_nc.cpp.