#include <ConnectivityBuilder.hpp>
Public Member Functions | |
| template<typename MeshType> | |
| BorderLinker (const MeshType &m, ConnectivityBuilder< MeshType > &connectivityBuilder, ReferenceCounting< typename MeshType::BorderMeshType > border) | |
Definition at line 615 of file ConnectivityBuilder.hpp.
| BorderLinker< Mesh::volume >::BorderLinker | ( | const MeshType & | m, | |
| ConnectivityBuilder< MeshType > & | connectivityBuilder, | |||
| ReferenceCounting< typename MeshType::BorderMeshType > | border | |||
| ) | [inline] |
Definition at line 618 of file ConnectivityBuilder.hpp.
References ConnectivityBuilder< MeshType >::__faceToCells, ConnectivityBuilder< MeshType >::__faceToCellsConstruction(), ffout(), ErrorHandler::normal, and stringify().
00621 { 00622 if (border != 0) { 00623 connectivityBuilder.__faceToCellsConstruction(); 00624 00625 ffout(3) << "- Connecting border mesh\n"; 00626 const typename ConnectivityBuilder<MeshType>::FaceToCellMapping& 00627 faceToCells = connectivityBuilder.__faceToCells; 00628 00629 for (typename MeshType::BorderMeshType::iterator i(*border); 00630 not(i.end()); ++i) { 00631 std::set<size_t> verticesSet; 00632 for (size_t k=0; k<ConnectivityBuilder<MeshType>::FaceType::NumberOfVertices; ++k) { 00633 const size_t vertexNumber = m.vertexNumber((*i)(k)); 00634 verticesSet.insert(m.correspondance(vertexNumber)); 00635 } 00636 size_t k=0; 00637 typename ConnectivityBuilder<MeshType>::FaceVerticesList vertices; 00638 for (std::set<size_t>::iterator n=verticesSet.begin(); 00639 n != verticesSet.end(); ++n) { 00640 vertices[k++]=*n; 00641 } 00642 typename ConnectivityBuilder<MeshType>::FaceToCellMapping 00643 ::const_iterator icell = faceToCells.find(vertices); 00644 if (icell != faceToCells.end()) { 00645 (*i).setMother(icell->second.begin()->first, icell->second.begin()->second); 00646 } else { 00647 const std::string errorMsg 00648 = "boundary element number "+stringify(border->cellNumber(*i)) 00649 +" is not related to any cell of the mesh\n"; 00650 throw ErrorHandler(__FILE__,__LINE__, 00651 errorMsg, 00652 ErrorHandler::normal); // error might come from external mesher 00653 00654 } 00655 } 00656 } 00657 }

1.5.6