I'm looping over nodes in a mesh. My mesh has HEX20 elements to 
accommodate 2nd-order approximation, but currently my approximation is 
1st order. What's the proper way to loop over the nodes in the mesh (to 
get the dof indices) in this case?

Currently I'm doing

for( MeshBase::node_iterator node_it = get_mesh().nodes_begin(); node_it 
!= node_end; node_it++)
{
      Node* node = *node_it;

      int index = node->dof_number(0, d, 0);

      if (index > 0)
         do_something_with_index(index);
}

and this works fine. However if I run in devel or debug mode the line 
node->dof_number(0,d,0) triggers an assert:

Assertion `comp < this->n_comp(s,var)' failed.
comp = 0
this->n_comp(s,var) = 0
Stack frames: 5
...
[0] 
/home/eftang/dev_software/libmesh_install/include/libmesh/dof_object.h, 
line 715, compiled Feb 18 2013 at 23:14:44

So is there another way to check whether the node actually corresponds 
to a dof index than to request the dof_number ?



Best,
Jens


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to