/*! Displays interface information to an output stream \param[in] out is the output stream \param[in] indent is the number of trailing spaces to prepend when writing the information */ void Interface::display(std::ostream &out, unsigned short int indent) const { std::string t_s = std::string(indent, ' '); // If the type is unknown there are no information to display if (getType() == ElementInfo::UNDEFINED) { out << t_s << "interface type: (unknown)" << std::endl; return; } // General info ----------------------------------------------------- // out << t_s << "interface type: " << getType() << std::endl; out << t_s << "ID: " << getId() << std::endl; out << t_s << "is border: "; if (getNeigh() >= 0) { out << "(false)"; } else { out << "(true)"; } out << std::endl; // Connectivity infos --------------------------------------------------- // int nVertices = getVertexCount(); out << t_s << "connectivity: [ "; for (int i = 0; i < nVertices - 1; ++i) { out << getVertex(i) << ", "; } //next i out << getVertex(nVertices - 1) << " ]" << std::endl; // Onwer infos ---------------------------------------------------------- // out << t_s << "onwer ID: " << getOwner() << std::endl; out << t_s << "owner face: " << getOwnerFace() << std::endl; // Onwer infos ---------------------------------------------------------- // if (getNeigh() >= 0) { out << t_s << "neighbour ID: " << getNeigh() << std::endl; out << t_s << "neighbour face: " << getNeighFace() << std::endl; } }
void SimpleFoamWriter::createFaces() { l2g_t cells = getPartCells(); m_LFaces.clear(); EG_VTKDCC(vtkIntArray, cell_code, m_Grid, "cell_code"); m_BC = cell_code; m_Eg2Of.fill(-1,cells.size()); int Nvol = 0; foreach(int i_cells, cells) { vtkIdType *pts; vtkIdType Npts; m_Grid->GetCellPoints(cells[i_cells], Npts, pts); vtkIdType type_cell = m_Grid->GetCellType(cells[i_cells]); vtkIdType id_cell = cells[i_cells]; // tetras // if (type_cell == VTK_TETRA) { m_Eg2Of[id_cell] = Nvol++; { face_t F(3,id_cell,getNeigh(i_cells,0)); F.node[0] = pts[2]; F.node[1] = pts[1]; F.node[2] = pts[0]; addFace(F); } { face_t F(3,id_cell,getNeigh(i_cells,1)); F.node[0] = pts[0]; F.node[1] = pts[1]; F.node[2] = pts[3]; addFace(F); } { face_t F(3,id_cell,getNeigh(i_cells,2)); F.node[0] = pts[0]; F.node[1] = pts[3]; F.node[2] = pts[2]; addFace(F); } { face_t F(3,id_cell,getNeigh(i_cells,3)); F.node[0] = pts[1]; F.node[1] = pts[2]; F.node[2] = pts[3]; addFace(F); } } // prisms // if (type_cell == VTK_WEDGE) { m_Eg2Of[id_cell] = Nvol++; { face_t F(3,id_cell,getNeigh(i_cells,0)); F.node[0] = pts[0]; F.node[1] = pts[1]; F.node[2] = pts[2]; addFace(F); } { face_t F(3,id_cell,getNeigh(i_cells,1)); F.node[0] = pts[3]; F.node[1] = pts[5]; F.node[2] = pts[4]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,2)); F.node[0] = pts[3]; F.node[1] = pts[4]; F.node[2] = pts[1]; F.node[3] = pts[0]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,3)); F.node[0] = pts[1]; F.node[1] = pts[4]; F.node[2] = pts[5]; F.node[3] = pts[2]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,4)); F.node[0] = pts[0]; F.node[1] = pts[2]; F.node[2] = pts[5]; F.node[3] = pts[3]; addFace(F); } } // hexes // if (type_cell == VTK_HEXAHEDRON) { m_Eg2Of[id_cell] = Nvol++; { face_t F(4,id_cell,getNeigh(i_cells,0),0); F.node[0] = pts[3]; F.node[1] = pts[2]; F.node[2] = pts[1]; F.node[3] = pts[0]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,1),0); F.node[0] = pts[4]; F.node[1] = pts[5]; F.node[2] = pts[6]; F.node[3] = pts[7]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,2),0); F.node[0] = pts[0]; F.node[1] = pts[1]; F.node[2] = pts[5]; F.node[3] = pts[4]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,3),0); F.node[0] = pts[3]; F.node[1] = pts[7]; F.node[2] = pts[6]; F.node[3] = pts[2]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,4),0); F.node[0] = pts[0]; F.node[1] = pts[4]; F.node[2] = pts[7]; F.node[3] = pts[3]; addFace(F); } { face_t F(4,id_cell,getNeigh(i_cells,5),0); F.node[0] = pts[1]; F.node[1] = pts[2]; F.node[2] = pts[6]; F.node[3] = pts[5]; addFace(F); } } }