MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include <iostream>
#include "moab/Interface.hpp"
#include "TestUtil.hpp"
#include "Internals.hpp"
#include "moab/Core.hpp"
#include "moab/GeomQueryTool.hpp"
#include "DagMC.hpp"
Go to the source code of this file.
Defines | |
#define | IS_BUILDING_MB |
#define | CHKERR(A) |
Functions | |
void | dagmc_setup_test () |
void | dagmc_origin_face_rayfire () |
void | dagmc_outside_face_rayfire () |
void | dagmc_outside_face_rayfire_orient_exit () |
void | dagmc_outside_face_rayfire_orient_entrance () |
void | dagmc_outside_face_rayfire_history_fail () |
void | dagmc_outside_face_rayfire_history () |
int | main (int, char **) |
Variables | |
DagMC * | DAG |
std::string | input_file = "unittest/test_geom.h5m" |
double | eps = 1.0e-6 |
#define CHKERR | ( | A | ) |
do \ { \ if( MB_SUCCESS != ( A ) ) \ { \ std::cerr << "Failure (error code " << ( A ) << ") at " __FILE__ ":" << __LINE__ << std::endl; \ return A; \ } \ } while( false )
Definition at line 19 of file dagmc_rayfire_test.cpp.
#define IS_BUILDING_MB |
Definition at line 4 of file dagmc_rayfire_test.cpp.
void dagmc_origin_face_rayfire | ( | ) |
Definition at line 49 of file dagmc_rayfire_test.cpp.
References CHECK_REAL_EQUAL, DAG, eps, and origin.
Referenced by main().
{ int vol_idx = 1; EntityHandle vol_h = DAG->entity_by_index( 3, vol_idx ); double dir[3] = { -1.0, 0.0, 0.0 }; double origin[3] = { 0.0, 0.0, 0.0 }; double next_surf_dist; EntityHandle next_surf; DAG->ray_fire( vol_h, origin, dir, next_surf, next_surf_dist ); double expected_next_surf_dist = 5.0; CHECK_REAL_EQUAL( expected_next_surf_dist, next_surf_dist, eps ); }
void dagmc_outside_face_rayfire | ( | ) |
Definition at line 62 of file dagmc_rayfire_test.cpp.
References CHECK_REAL_EQUAL, DAG, eps, and origin.
Referenced by main().
{ int vol_idx = 1; EntityHandle vol_h = DAG->entity_by_index( 3, vol_idx ); double dir[3] = { 1.0, 0.0, 0.0 }; // ray along x direction double origin[3] = { -10.0, 0.0, 0.0 }; // origin at -10 0 0 double next_surf_dist; EntityHandle next_surf; DAG->ray_fire( vol_h, origin, dir, next_surf, next_surf_dist ); std::cout << next_surf_dist << std::endl; double expected_next_surf_dist = 15.0; CHECK_REAL_EQUAL( expected_next_surf_dist, next_surf_dist, eps ); }
void dagmc_outside_face_rayfire_history | ( | ) |
Definition at line 134 of file dagmc_rayfire_test.cpp.
References CHECK_EQUAL, DAG, and origin.
Referenced by main().
{ DagMC::RayHistory history; int vol_idx = 1; EntityHandle vol_h = DAG->entity_by_index( 3, vol_idx ); double dir[3] = { 1.0, 0.0, 0.0 }; // ray along x direction double origin[3] = { -10.0, 0.0, 0.0 }; // origin at -10 0 0 double xyz[3]; double next_surf_dist; EntityHandle next_surf; history.reset(); // first ray fire with history DAG->ray_fire( vol_h, origin, dir, next_surf, next_surf_dist, &history, 0, 1 ); std::cout << next_surf << " " << history.size() << std::endl; // second ray fire with history xyz[0] = origin[0] + ( next_surf_dist * dir[0] ); xyz[1] = origin[1] + ( next_surf_dist * dir[1] ); xyz[2] = origin[2] + ( next_surf_dist * dir[2] ); // ray fired execacyl DAG->ray_fire( vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1 ); DAG->ray_fire( vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1 ); // using history with this geom, there should be no next surface, i.e. 0 EntityHandle ZERO = 0; CHECK_EQUAL( ZERO, next_surf ); }
Definition at line 106 of file dagmc_rayfire_test.cpp.
References CHECK_EQUAL, DAG, and origin.
Referenced by main().
{ DagMC::RayHistory history; int vol_idx = 1; EntityHandle vol_h = DAG->entity_by_index( 3, vol_idx ); double dir[3] = { 1.0, 0.0, 0.0 }; // ray along x direction double origin[3] = { -10.0, 0.0, 0.0 }; // origin at -10 0 0 double xyz[3]; double next_surf_dist; EntityHandle next_surf; history.reset(); // ray fired exactly along boundary shared by 2 facets on a single surface, // needs two ray_fires to cross, this is expected and ok // first ray fire with history DAG->ray_fire( vol_h, origin, dir, next_surf, next_surf_dist, &history, 0, 1 ); // second ray fire with history DAG->ray_fire( vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1 ); // this fire should hit graveyard, i.e. next_surf = 0 DAG->ray_fire( vol_h, xyz, dir, next_surf, next_surf_dist, &history, 0, 1 ); // using history with this geom, there should be no next surface, i.e. 0 EntityHandle ZERO = 0; CHECK_EQUAL( ZERO, next_surf ); }
Definition at line 91 of file dagmc_rayfire_test.cpp.
References CHECK_REAL_EQUAL, DAG, eps, and origin.
Referenced by main().
{ DagMC::RayHistory history; int vol_idx = 1; EntityHandle vol_h = DAG->entity_by_index( 3, vol_idx ); double dir[3] = { 1.0, 0.0, 0.0 }; // ray along x direction double origin[3] = { -10.0, 0.0, 0.0 }; // origin at -10 0 0 double next_surf_dist; EntityHandle next_surf; DAG->ray_fire( vol_h, origin, dir, next_surf, next_surf_dist, &history, 0.0, -1 ); std::cout << next_surf_dist << std::endl; double expected_next_surf_dist = 5.0; CHECK_REAL_EQUAL( expected_next_surf_dist, next_surf_dist, eps ); }
Definition at line 76 of file dagmc_rayfire_test.cpp.
References CHECK_REAL_EQUAL, DAG, eps, and origin.
Referenced by main().
{ DagMC::RayHistory history; int vol_idx = 1; EntityHandle vol_h = DAG->entity_by_index( 3, vol_idx ); double dir[3] = { 1.0, 0.0, 0.0 }; // ray along x direction double origin[3] = { -10.0, 0.0, 0.0 }; // origin at -10 0 0 double next_surf_dist; EntityHandle next_surf; DAG->ray_fire( vol_h, origin, dir, next_surf, next_surf_dist, &history, 0, 1 ); std::cout << next_surf_dist << std::endl; double expected_next_surf_dist = 15.0; CHECK_REAL_EQUAL( expected_next_surf_dist, next_surf_dist, eps ); }
void dagmc_setup_test | ( | ) |
Definition at line 33 of file dagmc_rayfire_test.cpp.
References CHECK_ERR, DAG, ErrorCode, and input_file.
{ ErrorCode rval = DAG->load_file( input_file.c_str() ); // open the Dag file CHECK_ERR( rval ); rval = DAG->init_OBBTree();CHECK_ERR( rval ); /* int num_vols = DAG->num_entities(3); EntityHandle vol_h; for (int i = 0; i < num_vols; i++) vol_h = DAG->entity_by_index(3, i); */ // EntityHandle volume = 12682136550675316765; // CHECK_EQUAL(volume, vol); }
int main | ( | int | , |
char ** | |||
) |
Definition at line 166 of file dagmc_rayfire_test.cpp.
References DAG, dagmc_origin_face_rayfire(), dagmc_outside_face_rayfire(), dagmc_outside_face_rayfire_history(), dagmc_outside_face_rayfire_history_fail(), dagmc_outside_face_rayfire_orient_entrance(), dagmc_outside_face_rayfire_orient_exit(), dagmc_setup_test(), and RUN_TEST.
{ int result = 0; DAG = new DagMC(); result += RUN_TEST( dagmc_setup_test ); // setup problem // rays fired along cardinal directions result += RUN_TEST( dagmc_origin_face_rayfire ); // point in centre result += RUN_TEST( dagmc_outside_face_rayfire ); result += RUN_TEST( dagmc_outside_face_rayfire_orient_exit ); // fire ray from point outside volume // looking for exit intersections result += RUN_TEST( dagmc_outside_face_rayfire_orient_entrance ); // fire ray from point outside volume looking // for entrance intersection result += RUN_TEST( dagmc_outside_face_rayfire_history_fail ); // fire ray from point outside // geometry using ray history result += RUN_TEST( dagmc_outside_face_rayfire_history ); // fire ray from point outside // geometry using ray history delete DAG; return result; }
DagMC* DAG |
Definition at line 17 of file dagmc_rayfire_test.cpp.
double eps = 1.0e-6 |
Definition at line 31 of file dagmc_rayfire_test.cpp.
Referenced by moab::AdaptiveKDTree::best_vertex_median_plane(), check_equal_eigvect(), dagmc_closest_to(), dagmc_origin_face_rayfire(), dagmc_outside_face_rayfire(), dagmc_outside_face_rayfire_orient_entrance(), dagmc_outside_face_rayfire_orient_exit(), dagmc_rayfire(), dagmc_test_obb_retreval_rayfire(), gather_one_cell_var(), gqt_closest_to(), gqt_origin_face_rayfire(), gqt_outside_face_rayfire(), gqt_outside_face_rayfire_orient_entrance(), gqt_outside_face_rayfire_orient_exit(), gqt_rayfire(), gqt_test_obb_retreval_rayfire(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::ReadCGNS::load_file(), multiple_loads_of_same_file(), read_one_cell_var(), run_quality_optimizer(), moab::Intx2Mesh::set_error_tolerance(), moab::ParallelMergeMesh::SortTuplesByReal(), test_eul_check_across_files(), test_eul_check_append(), test_eul_check_T(), test_eul_check_timestep(), test_fv_check_T(), test_gather_onevar(), test_gcrm_check_vars(), test_homme_check_T(), test_mpas_check_vars(), test_read_all(), test_read_coord_vars(), test_read_eul_onevar(), test_read_fv_onevar(), test_read_no_mixed_elements(), test_read_nodes(), test_read_novars(), and test_read_onevar().
std::string input_file = "unittest/test_geom.h5m" |
Definition at line 29 of file dagmc_rayfire_test.cpp.