Matrix 
AC3D8HexWithSensitivity::getFaceNodalCoords(int face_num)
{
  int nodes_in_face = 8;
  Matrix N_coord(nodes_in_face,dim);
  
  if (face_num < 1 || face_num > 6) {
    opserr << "invalid face number!\n";
    return N_coord;
  }

  ID face_nodes(nodes_in_face);
  localFaceMapping(face_num, face_nodes);
  
  int i;
  for(i = 0; i < nodes_in_face; i++) {
    const Vector &ndCrds = theNodes[face_nodes(i)]->getCrds();
    
    N_coord(i,0) = ndCrds(0);
    N_coord(i,1) = ndCrds(1);
    N_coord(i,2) = ndCrds(2);
  }
  
  return N_coord;
}
tensor TotalLagrangianFD8NodeBrick::getNodesCrds(void) 

{

    const int dimensions[] = {NumNodes, NumDof};

    tensor N_coord(2, dimensions, 0.0);



    int i, j;

    for (i=0; i<NumNodes; i++) {

	  const Vector &TNodesCrds = theNodes[i]->getCrds();

      for (j=0; j<NumDof; j++) {

        N_coord.val(i+1, j+1) = TNodesCrds(j);

	  }		    

    }

    

    return N_coord;

}
//======================================================================
tensor EightNode_Brick_u_p::getNodesCrds(void)
{
  int i,j;
  int dimXU[] = {Num_Nodes,Num_Dim};
  tensor N_coord(2, dimXU, 0.0);

  for (i=0; i<Num_Nodes; i++) {
    const Vector &TNodesCrds = theNodes[i]->getCrds();
    for (j=0; j<Num_Dim; j++) {
      N_coord.val(i+1, j+1) = TNodesCrds(j);
    }
  }

  return N_coord;
}