<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: times new roman,new york,times,serif; font-size: 12pt; color: #000000'>Hi Chris,<br>Then my second guess is that you use 4.6.2<br>There is an issue with adjacencies with MBPOLYGON in 462;<br>Can you use MBQUAD for type? Or upgrade to current version?<br>Thanks,<br>Iulian<br><br><hr id="zwchr"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr"><div><div>Tim:<br><br>I tried your code:<br><br>Range faces, edges;<br>
result = iface->get_entities_by_dimension(0, 2, faces);<br><div id=":3up">
result = iface->get_adjacencies(faces, 1, true, edges, Interface::UNION);<br></div><div id=":3up"><br>and it didn't solve the problem.<br><br></div><span class="">Iulian:</span><br>My element creation code is:<br>
<br>//! read/create elements<br>ErrorCode create_elements(int nx, int ny, int num_elems, EntityHandle start_vertex, EntityHandle &start_elem, Range &read_ents) <br>{<br>    // get the entity type being read<br>  EntityType ent_type = MBPOLYGON;<br>
<br>    // get the number of vertices per entity<br>  int verts_per_elem = 4;<br>  <br>    // Create the element sequence; passes back a pointer to the internal storage for connectivity and the<br>    // starting entity handle<br>
  EntityHandle* conn_array;<br>  ErrorCode result = readiface->get_element_connect( num_elems, verts_per_elem, ent_type,1, start_elem, conn_array );<br>      if (MB_SUCCESS != result) return result;<br><br>    // read connectivity into conn_array directly<br>
     for (int i=0 ; i<nx ; i++) {<br>    for (int j=0 ; j<ny ; j++) {<br>    int l = SCONV(j,ny)*nx + SCONV(i,nx) ;<br>    conn_array[verts_per_elem*l] = start_vertex + SCONV(j,ny)*nx + SCONV(i,nx);<br>    conn_array[verts_per_elem*l+1] = start_vertex + SCONV(j,ny)*nx + SCONV(i-1,nx);<br>
    conn_array[verts_per_elem*l+2] = start_vertex + SCONV(j-1,ny)*nx + SCONV(i-1,nx);<br>    conn_array[verts_per_elem*l+3] = start_vertex + SCONV(j-1,ny)*nx + SCONV(i,nx);<br>    }}<br>  <br>    // notify MOAB of the new elements<br>
  result = readiface->update_adjacencies(start_elem, num_elems, verts_per_elem, conn_array);<br>  if (MB_SUCCESS != result) return result;<br><br>    // add elements to read_ents<br>  if (num_elems) read_ents.insert(start_elem, start_elem+num_elems-1);<br>
  <br>  return MB_SUCCESS;<br>}<br><br></div>This does call update_adjacencies (readiface is my instance of ReadUtilIface).<br><br></div>-Chris<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Oct 14, 2013 at 3:21 PM, Iulian Grindeanu <span dir="ltr"><<a href="mailto:iulian@mcs.anl.gov" target="_blank">iulian@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:times new roman,new york,times,serif">Hello,<br>Did you call ReadUtil::update_adjacencies?<br>
If you create some elements, when you do the first adjacency call, the internal adjacencies are created. <br>If you create more elements after the first adjacency call, you have to call "update_adjacencies" for the new elements created, otherwise the up-vertex adjacencies are not updated.<br>
<br>This is my guess, it is hard to figure why it is not working for you with the limited info you sent :(<br><br>Best Regards,<br>Iulian<br><br><hr><div><div class="h5"><blockquote style="padding-left:5px;font-size:12pt;font-style:normal;margin-left:5px;font-family:Helvetica,Arial,sans-serif;text-decoration:none;font-weight:normal;border-left:2px solid #1010ff">
<div dir="ltr"><div>Hey MOAB-Dev,<br><br>I am having trouble creating AEntities for a simple 2D planar mesh. I adapted ReadTemplate.cpp to create a mesh generator and it appears to be working fine (vertices are all present with correct vertex-vertex and vertex-face adjacencies and positions, faces are all present with correct vertex connectivity). However, when I try to create AEntities (ie edges) using the following code (iface is my Core instance):<br>

<br>  Range verts;<br>  result = iface->get_entities_by_type(0, MBVERTEX, verts);<br>  if (MB_SUCCESS != result) return result;<br>  result = MeshTopoUtil(iface).construct_aentities(verts);<br>  if (MB_SUCCESS != result) return result;<br>

<br>  //get edge entities, by type<br>  Range edges;<br>  rval = iface->get_entities_by_type(0, MBEDGE, edges);<br>  assert(rval == MB_SUCCESS);<br><br>  cout << "Number of edges is " << edges.size() <<  endl;<br>

<br>I get the following output:<br><br clear="all">Number of edges is 0<br><br>Also, attempting to get vertex-edge adjacencies or bridge adjacencies through edges returns null sets.<br><br></div><div>Any ideas as to what is going wrong?<br>

<br></div><div>-Chris<br><br></div><div>-- <br>Chris Eldred<br>DOE Computational Science Graduate Fellow<br>Graduate Student, Atmospheric Science, Colorado State University<br>B.S. Applied Computational Physics, Carnegie Mellon University, 2009<br>

<a href="mailto:chris.eldred@gmail.com" target="_blank">chris.eldred@gmail.com</a> / <a href="mailto:celdred@atmos.colostate.edu" target="_blank">celdred@atmos.colostate.edu</a> 
</div></div>
</blockquote><br></div></div></div></div></blockquote></div><br><br clear="all"><br>-- <br>Chris Eldred<br>DOE Computational Science Graduate Fellow<br>Graduate Student, Atmospheric Science, Colorado State University<br>
B.S. Applied Computational Physics, Carnegie Mellon University, 2009<br><a href="mailto:chris.eldred@gmail.com" target="_blank">chris.eldred@gmail.com</a> / <a href="mailto:celdred@atmos.colostate.edu" target="_blank">celdred@atmos.colostate.edu</a> 
</div>
</blockquote><br></div></body></html>