Maybe it is good to be:
```c++ 
for (std::size_t k=0; k<nnodes; k++)
 {
      const double *xyz = _ele->getNode(k);
      for (std::size_t i_r=0; i_r<dim; i_r++) 
      {
          for (std::size_t j_x=0; j_x<dim; j_x++) 
          {
                prop.J(i_r,j_x) += prop.dNdr(i_r, k) * xyz[j_x];
           }
       }
   } 
```