52 std::set<const Face *> sups_linea;
57 virtual Pnt *
P1(
void);
58 virtual Pnt *
P2(
void);
62 Edge(
const std::string &nombre=
"",
Preprocessor *m=
nullptr,
const size_t &nd= 4);
67 virtual const Pnt *
P1(
void)
const;
68 virtual const Pnt *
P2(
void)
const;
73 virtual double getLongitud(
void)
const= 0;
75 virtual const Pnt *GetVertice(
const size_t &i)
const= 0;
76 virtual void SetVertice(
const size_t &,
Pnt *)= 0;
80 virtual void SetNDiv(
const size_t &);
81 inline virtual size_t NDiv(
void)
const 84 std::set<const XC::Edge *>
GetLadosHomologos(
const std::set<const XC::Edge *> &)
const;
89 {
return sups_linea; }
95 virtual BND3d Bnd(
void)
const= 0;
97 virtual void genMesh(meshing_dir dm);
99 virtual MatrizPos3d get_posiciones(
void)
const= 0;
102 virtual Node *
GetNodo(
const size_t &i1,
const size_t &j,
const size_t &k=1);
103 virtual const Node *
GetNodo(
const size_t &i,
const size_t &j,
const size_t &k=1)
const;
105 virtual const Node *
GetNodo(
const size_t &i)
const;
120 std::set<SetBase *>
get_sets(
void)
const;
Base class for one-dimensional geometry objects.
Definition: Edge.h:46
Surface.
Definition: Face.h:41
Six-faced solid.
Definition: Body.h:64
Multiblock topology object (point, line, face, block,...).
Definition: EntMdlr.h:53
void add_to_sets(std::set< SetBase * > &)
Add the «edge» to the sets passed as parameters.
Definition: Edge.cc:488
const std::set< const Face * > & SupsTocan(void) const
Return the surfaces that touch the line.
Definition: Edge.h:88
virtual MatrizPos3d get_pos_nodes(void) const
Return a matrix of positions along the line.
Definition: Edge.cc:364
void divide(void)
Create points along the line.
Definition: Edge.cc:150
virtual void genMesh(meshing_dir dm)
Trigger mesh generation.
Definition: Edge.cc:453
std::set< SetBase * > get_sets(void) const
Return the sets to wich this edge belongs.
Definition: Edge.cc:472
bool Toca(const Face &s) const
Return true if the line touches the surface (neighbor).
Definition: Edge.cc:341
void inserta_surf(Face *s)
Insert a surface in contact with the line (neighbour).
Definition: Edge.cc:56
size_t calcula_ndiv_lados(const std::set< const XC::Edge * > &)
Compute the number of divisions for each line to make it compatible with adjacent surface meshing...
Definition: Edge.cc:332
MatrizPos3d GetPosNodosDir(void) const
Return the positions of the nodes in forward order.
Definition: Edge.cc:261
Mesh node.
Definition: Node.h:99
std::set< const Eje * > GetLineasTocan(const Spot &p)
Returns the set of lines that touch the point being passed as parameter.
Definition: Eje.cc:92
MatrizPos3d GetPosNodosInv(void) const
Return the positions of the nodes in reverse order.
Definition: Edge.cc:271
virtual const Vector & getTang(const double &) const
Return a vector tangent to the line in point at parameter s.
Definition: Edge.cc:464
virtual Pnt * P2(void)
Return a pointer to the edge's start point.
Definition: Edge.cc:83
const std::string & NombresSupsTocan(void) const
Return the surface names that touch the line.
Definition: Edge.cc:281
bool Extremo(const Pnt &) const
Return true if it is an end point of the line.
Definition: Edge.cc:356
Finite element model generation tools.
Definition: Preprocessor.h:58
Node * GetNodoDir(const size_t &i)
Returns the node whose ordinal index is passed as parameter, starting from the beginning.
Definition: Edge.cc:173
Punto (KPoint).
Definition: Pnt.h:49
Edge(Preprocessor *m, const size_t &nd=4)
Constructor.
Definition: Edge.cc:45
Node * GetPrimerNodo(void)
Return the first node of the line.
Definition: Edge.cc:202
Node * GetNodoInv(const size_t &i)
Return the node whose ordinal index is passed as parameter, starting from the end.
Definition: Edge.cc:181
Node * GetUltimoNodo(void)
Return the last node of the line.
Definition: Edge.cc:228
virtual void create_nodes(void)
Create nodes on objects.
Definition: Edge.cc:406
std::set< const XC::Edge * > GetLadosHomologos(const std::set< const XC::Edge * > &) const
Return the homologous sides to that passed as a parameter.
Definition: Edge.cc:297
std::vector< int > GetTagsNodosDir(void) const
Return the IDs of the nodes in forward order.
Definition: Edge.cc:241
virtual size_t NumVertices(void) const =0
Return the number of vertices.
void SetElemSize(const double &sz)
Compute the number of divisions necessary to get the element size passed as parameter.
Definition: Edge.cc:142
virtual Pnt * P1(void)
Return a pointer to the edge's start point.
Definition: Edge.cc:67
std::vector< int > GetTagsNodosInv(void) const
Return the IDs of the nodes in reverse order.
Definition: Edge.cc:251
void create_nodes_en_extremos(void)
Create the nodes for both end points of the edge.
Definition: Edge.cc:368
Compound line.
Definition: CmbEdge.h:42
bool ExtremosEn(const Pnt *, const Pnt *) const
Returns true if the points passed as parameters are the ends of the edge.
Definition: Edge.cc:100
virtual Node * GetNodo(const size_t &i1, const size_t &j, const size_t &k=1)
Return a pointer to node whose indices are passed as parameters.
Definition: Edge.cc:157
void actualiza_topologia(void)
Update topology.
Definition: Edge.cc:60
================================================================================
Definition: ContinuaReprComponent.h:34
virtual unsigned short int GetDimension(void) const
Return the object dimension (0, 1, 2 or 3).
Definition: Edge.h:64
virtual void SetNDiv(const size_t &)
Assigns the number of of divisions.
Definition: Edge.cc:113
std::vector< int > getIndicesVertices(void) const
Return indices of the vertices.
Definition: Edge.cc:498
virtual ID getKPoints(void) const
Return k-points.
Definition: Edge.cc:511