[MOAB-dev] AdaptiveKDTree and ElemEvaluator - problem with MBHEX

Lukasz Kaczmarczyk Lukasz.Kaczmarczyk at glasgow.ac.uk
Thu May 11 07:07:13 CDT 2017


Hello,

I working with AdaptiveKDTree and ElemEvaluator it works ok for MBTET, however, I get a segmentation fault for MBHEX.  

The error is not critical for me I can work with the leaf, however, it will be good to know if you aware of this. In some time I can look for a fix in moab assuming that I do nothing wrong.

It could be a problem that I have hex with HO node in the middle of volume? Although, It works for tetrahedrons.

My code is,

 rval = myTree->build_tree(level3D,&treeRoot); CHKERRQ_MOAB(rval);
 boost::shared_ptr<ElemEvaluator> elemEval(myTree,new ElemEvaluator(&mwlsMoab));
  myTree->set_eval(elemEval.get());
 
and then 

CartVect params(material_coords);
EntityHandle leaf_out;
      rval = myTree->point_search(
        material_coords,leaf_out,maxEdgeL*1e-5,maxEdgeL*1e-3,NULL,NULL,&params
 ); CHKERRQ_MOAB(rval); 

Trace of error is here,
libMOAB.0.dylib`moab::ElemEvaluator::find_containing_entity:
    0x104b1b2b0 <+320>: testl  %eax, %eax
    0x104b1b2b2 <+322>: je     0x104b1b1e0               ; <+112>
    0x104b1b2b8 <+328>: jmp    0x104b1b2e1               ; <+369>
    0x104b1b2ba <+330>: xorl   %eax, %eax

error: libMOAB.0.dylib debug map object file '/Users/likask/MyBuild/moab-bitbucket/src/.libs/Range.o' has changed (actual time is 0x585d90e8, debug map time is 0x585d2e31) since this executable was linked, file will be ignored
frame #2: 0x000000010473bba1 libMOAB.0.dylib`moab::AdaptiveKDTree::point_search(double const*, unsigned long&, double, double, bool*, unsigned long*, moab::CartVect*) + 785
libMOAB.0.dylib`moab::AdaptiveKDTree::point_search:
    0x10473bba1 <+785>: movl   %eax, %r13d
    0x10473bba4 <+788>: leaq   -0x70(%rbp), %rdi
    0x10473bba8 <+792>: callq  0x10481e590               ; moab::Range::clear()
    0x10473bbad <+797>: testl  %r13d, %r13d

frame #3: 0x00000001000f3692 mwls`CrackPropagation::MWLSApprox::getInfluenceNodes(this=0x00007fff5fbfc138, material_coords=0x00007fff5fbfb890, search_point=true) + 946 at CrackPropagation.cpp:4173
   4170	      // Find 3DENT clase to location
   4171	      CartVect params(material_coords);
   4172	      EntityHandle leaf_out;
-> 4173	      rval = myTree->point_search(
   4174	        material_coords,leaf_out,maxEdgeL*1e-5,maxEdgeL*1e-3,NULL,NULL,&params
   4175	      ); CHKERRQ_MOAB(rval);


Kind regards,
Lukasz





More information about the moab-dev mailing list