r4487 - MOAB/trunk/tools/dagmc
Author: bmsmith Date: 2011-02-10 18:44:56 -0600 (Thu, 10 Feb 2011) New Revision: 4487 Modified: MOAB/trunk/tools/dagmc/DagMC.cpp Log: -Fix incorrect comments in point_in_volume test. Code was correct but comments were wrong. -Simplify negative ray length used for overlapping geometry. -Consistently use nonneg_ray_length and neg_ray_length in ray_fire. Passes make check. Better tests of overlap logic are in progress. Modified: MOAB/trunk/tools/dagmc/DagMC.cpp =================================================================== --- MOAB/trunk/tools/dagmc/DagMC.cpp 2011-02-08 19:51:57 UTC (rev 4486) +++ MOAB/trunk/tools/dagmc/DagMC.cpp 2011-02-11 00:44:56 UTC (rev 4487) @@ -67,11 +67,9 @@ of results Overlap Thickness: - This tolerance is the maximum normal distance between two overlapping - volumes. This should be zero unless geometry has overlaps. User must provide - guidance about the magnitude of overlaps. Overlap thickness depends upon - geometric model and must be small enough not to significantly affect physics. - For CAD models, 0.1 cm is suggested. + This tolerance is the maximum distance across an overlap. It should be zero + unless the geometry has overlaps. The overlap thickness is set using the dagmc + card. Overlaps must be small enough not to significantly affect physics. Performance: increasing tolerance decreases performance Robustness: increasing tolerance increases robustness Knowledge: user must have intuition of overlap thickness @@ -583,48 +581,28 @@ prev_facets.clear(); } + // check behind the ray origin for intersections double neg_ray_len; - // no overlaps if(0 == overlapThickness) { neg_ray_len = -numericalPrecision; - - // overlaps } else { - // If the previous facet (surface) is unknown, use large neg_ray_len. - // Although an overlap does not occur after a collision, it may occur after - // a particle starts on a surface (cell-based weight windows). - if(prev_facets.empty()) { - neg_ray_len = -100*overlapThickness; - - // if the previous facet is known, use the angle made with the normal - } else { - // get coords of prev facet - const EntityHandle* conn; - int len; - CartVect coords[3], normal; - rval = MBI->get_connectivity( prev_facets.back(), conn, len ); - if (MB_SUCCESS != rval || len != 3) return MB_FAILURE; - rval = MBI->get_coords( conn, len, coords[0].array() ); - if (MB_SUCCESS != rval) return rval; - // get normal of prev facet - coords[1] -= coords[0]; - coords[2] -= coords[0]; - normal = coords[1] * coords[2];
participants (1)
-
bmsmith6@wisc.edu