33 #include "EntityMap.h" 34 #include "preprocessor/multi_block_topology/entities/2d/Face.h" 50 typedef std::list<vertex_type> vertex_list;
51 typedef std::map<vertex_type, vertex_list > graph_container;
52 typedef std::pair<vertex_type, vertex_list> map_pair;
54 graph_container edges;
56 typedef graph_container::iterator iterator;
57 typedef graph_container::const_iterator const_iterator;
59 const_iterator find(
const vertex_type &v)
const 60 {
return edges.find(v); }
61 const_iterator begin(
void)
const 62 {
return edges.begin(); }
63 const_iterator end(
void)
const 64 {
return edges.end(); }
65 void add_vertex(
const Edge *);
66 void add_edge(vertex_type v,vertex_type w)
68 edges[v].push_back(w);
69 edges[w].push_back(v);
72 std::set<const Edge *> breadth_first_search(vertex_type s)
const 74 std::set<const Edge *> retval;
75 std::map<vertex_type,bool> visited;
76 std::list<vertex_type> q;
84 const_iterator i_edges= find(s);
85 for(
auto i : i_edges->second)
100 void add_graph_vertex(
const Edge *e);
101 void updateGraph(
const Face &);
102 void updateSets(
Face *)
const;
117 Face *
New(
const size_t &,
const std::string &);
130 boost::python::dict
getPyDict(
void)
const;
131 void setPyDict(
const boost::python::dict &);
143 retval=
new F(preprocessor);
146 retval->
Name()=
"f"+boost::lexical_cast<std::string>(getTag());
147 (*this)[getTag()]= retval;
159 size_t old_tag= getTag();
160 Face *retval=
nullptr;
162 retval=
busca(getTag());
166 <<
"; surface with identifier: " << tag
167 <<
" already exists. Command ignored." << std::endl;
170 { retval= New<F>(); }
Definition: SurfaceMap.h:46
QuadSurface * newQuadSurfaceLines(const size_t &, const size_t &, const size_t &, const size_t &)
New quadrilateral surface.
Definition: SurfaceMap.cc:214
Base class for one-dimensional geometry objects.
Definition: Edge.h:48
Geometric entities container (points, lines, surfaces,...).
Definition: EntityMap.h:43
Polygonal face defined by an arbitrary number of vertices.
Definition: PolygonalFace.h:45
std::set< const XC::Edge * > getHomologousSides(const Edge *) const
Return the homologous sides to that passed as a parameter.
Definition: SurfaceMap.cc:151
Finite element model generation tools.
Definition: Preprocessor.h:59
std::deque< const Edge * > getNDivErrors(void) const
Returns a list with the edges that have an incompatible number of divisions.
Definition: SurfaceMap.cc:99
bool checkNDivs(void) const
Verifies that number of divisions of the edges are compatible.
Definition: SurfaceMap.cc:141
Model geometry manager.
Definition: MultiBlockTopology.h:68
PolygonalFace * newPolygonalFacePointsPy(const boost::python::list &)
New polygonalr face.
Definition: SurfaceMap.cc:245
boost::python::list getNDivErrorTagsPy(void) const
Returns the indentifiers of the edges that have an incompatible number of divisions.
Definition: SurfaceMap.cc:127
Model points container.
Definition: SurfaceMap.h:43
Vector of integers.
Definition: ID.h:95
void reverse(void)
Reverse the orientation of the surfaces.
Definition: SurfaceMap.cc:265
std::string & Name(void)
Return a reference to the object name.
Definition: NamedEntity.h:52
bool conciliaNDivs(void)
Conciliate the number of divisions of the lines.
Definition: SurfaceMap.cc:92
virtual std::string getClassName(void) const
Returns demangled class name.
Definition: EntityWithOwner.cc:90
Quadrangle defined by its four vertices.
Definition: QuadSurface.h:41
Point (KPoint).
Definition: Pnt.h:50
Face * findOrCreateFace(Pnt *, Pnt *, Pnt *, Pnt *)
Find a face between the points or creates a new one.
Definition: SurfaceMap.cc:166
const Preprocessor * getPreprocessor(void) const
Return a pointer to preprocessor.
Definition: ModelComponentContainerBase.cc:54
Face * New(void)
Creates a new surface.
Definition: SurfaceMap.h:137
boost::python::dict getPyDict(void) const
Return a Python dictionary with the object members values.
Definition: SurfaceMap.cc:272
PolygonalFace * newPolygonalFacePoints(const ID &)
New polygonalr face.
Definition: SurfaceMap.cc:236
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
SurfaceMap(MultiBlockTopology *mbt=nullptr)
Constructor.
Definition: SurfaceMap.cc:42
QuadSurface * newQuadSurfaceGridPoints(const boost::python::list &)
New quadrilateral surface.
Definition: SurfaceMap.cc:226
QuadSurface * newQuadSurfacePts(const size_t &, const size_t &, const size_t &, const size_t &)
New quadrilateral surface.
Definition: SurfaceMap.cc:202
std::deque< int > getNDivErrorTags(void) const
Returns the indentifiers of the edges that have an incompatible number of divisions.
Definition: SurfaceMap.cc:114
Surface.
Definition: Face.h:45
double getAverageArea(void) const
Return the average area of the surfaces.
Definition: SurfaceMap.cc:255
Face * busca(const Indice &)
Return a pointer to the geometry entity whose identifier is passed as parameter.
Definition: ModelComponentContainer.h:78
void setPyDict(const boost::python::dict &)
Set the values of the object members from a Python dictionary.
Definition: SurfaceMap.cc:288