33 #include "preprocessor/multi_block_topology/entities/EntMdlr.h"    34 #include "utility/geom/d1/Segment3d.h"    55     std::set<const Face *> surfaces_line; 
    63     Edge(
const std::string &name= 
"",
Preprocessor *m= 
nullptr,
const size_t &nd= 4);
    70     virtual Pnt *
P1(
void);
    71     virtual Pnt *
P2(
void);
    72     virtual const Pnt *
P1(
void) 
const;
    73     virtual const Pnt *
P2(
void) 
const;
    74     bool In(
const GeomObj3d &, 
const double &tol= 0.0) 
const;
    75     bool Out(
const GeomObj3d &, 
const double &tol= 0.0) 
const;
    79     virtual double getLength(
void) 
const= 0;
    85     virtual const Pnt *getVertex(
const size_t &i) 
const= 0;
    86     virtual Pnt *getVertex(
const size_t &i)= 0;
    87     virtual void SetVertice(
const size_t &,
Pnt *)= 0;
    90     virtual std::deque<const Pnt *> 
getVertices(
void) 
const;
    93     virtual std::deque<Segment3d> 
getSegments(
void) 
const;
    95     virtual Pos3dArray get_positions(
void) 
const= 0;
    97     virtual BND3d Bnd(
void) 
const= 0;
   104     virtual void setNDiv(
const size_t &);
   105     inline virtual size_t NDiv(
void)
 const   111     virtual void genMesh(meshing_dir dm);
   112     virtual Node *
getNode(
const size_t &i1,
const size_t &j,
const size_t &k=1);
   113     virtual const Node *
getNode(
const size_t &i,
const size_t &j,
const size_t &k=1) 
const;
   115     virtual const Node *
getNode(
const size_t &i) 
const;
   144     std::set<SetBase *> 
get_sets(
void) 
const;
   147     boost::python::dict 
getPyDict(
void) 
const;
   148     void setPyDict(
const boost::python::dict &);
 Float vector abstraction. 
Definition: Vector.h:94
void insert_surf(Face *s)
Insert a surface in contact with the line (neighbour). 
Definition: Edge.cc:75
Node * getNodeReverse(const size_t &i)
Return the node whose ordinal index is passed as parameter, starting from the end. 
Definition: Edge.cc:405
void setPyDict(const boost::python::dict &)
Set the values of the object members from a Python dictionary. 
Definition: Edge.cc:867
Base class for one-dimensional geometry objects. 
Definition: Edge.h:48
virtual Pnt * P1(void)
Return a pointer to the edge's start point. 
Definition: Edge.cc:86
bool In(const GeomObj3d &, const double &tol=0.0) const
Returns true if the line lies inside the geometric object. 
Definition: Edge.cc:201
double getElemSize(void) const
Return the element size (aka L/ndiv). 
Definition: Edge.cc:304
std::vector< int > getIndicesVertices(void) const
Return indices of the vertices. 
Definition: Edge.cc:754
virtual void setNDiv(const size_t &)
Assigns the number of of divisions if it is compatible with the homologous edges. ...
Definition: Edge.cc:262
virtual Node * getNode(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:359
Finite element model generation tools. 
Definition: Preprocessor.h:59
virtual void genMesh(meshing_dir dm)
Trigger mesh generation. 
Definition: Edge.cc:698
Array of positions in a three-dimensional space. 
Definition: Pos3dArray.h:38
boost::python::list getVerticesPy(void)
Return the vertices in a Python list. 
Definition: Edge.cc:838
virtual double getDist(const Pos3d &) const
Return the distance to the edge. 
Definition: Edge.cc:802
std::set< SetBase * > get_sets(void) const
Return the sets to which this edge belongs. 
Definition: Edge.cc:728
bool isConnectedTo(const Face &s) const
Return true if the line touches the surface (neighbor). 
Definition: Edge.cc:547
Vector of integers. 
Definition: ID.h:95
boost::python::dict getPyDict(void) const
Return a Python dictionary with the object members values. 
Definition: Edge.cc:852
Edge(Preprocessor *m, const size_t &nd=4)
Constructor. 
Definition: Edge.cc:47
virtual std::deque< Segment3d > getSegments(void) const
Return the segments that compose the edge. 
Definition: Edge.cc:767
virtual Edge * splitAtLambda(const double &)
Divides the line by the point obtained by: p1+lambda*VDir(). 
Definition: Edge.cc:325
bool areEndPoints(const Pnt *, const Pnt *) const
Returns true if the points passed as parameters are the ends of the edge. 
Definition: Edge.cc:184
void SetElemSize(const double &sz)
Compute the number of divisions necessary to get the element size passed as parameter. 
Definition: Edge.cc:296
virtual Vector3d getKVector(void) const
Returns a vector in the direction of the local Z axis. 
Definition: Edge.cc:158
virtual Pos3d getCentroid(void) const
Return the centroid of the edge. 
Definition: Edge.cc:122
virtual Edge * splitAtNaturalCoord(const double &)
Divides the line by the point obtained by: p1+lambda*VDir(). 
Definition: Edge.cc:334
virtual std::deque< Pnt * > getVertices(void)
Return the vertices. 
Definition: Edge.cc:820
std::vector< int > getTagsNodesForward(void) const
Return the IDs of the nodes in forward order. 
Definition: Edge.cc:458
virtual int create_gmsh_line(void) const
Ask Gmsh to create the line corresponding to this edge. 
Definition: Edge.cc:710
Node * getLastNode(void)
Return the last node of the line. 
Definition: Edge.cc:445
virtual Edge * splitAtPos3d(const Pos3d &, const double &tol=1e-6)
Divides the edge at the point argument. 
Definition: Edge.cc:345
void divide(void)
Create points along the line. 
Definition: Edge.cc:309
virtual Edge * splitAtPoint(Pnt *p)
Divides the line by the point being passed as parameter. 
Definition: Edge.cc:316
virtual void create_nodes(void)
Create nodes on objects. 
Definition: Edge.cc:691
void update_topology(void)
Update topology. 
Definition: Edge.cc:79
const size_t getNumConnectedSurfaces(void) const
Return the number of surfaces that touch the line. 
Definition: Edge.cc:498
void create_nodes_on_endpoints(void)
Create the nodes for both end points of the edge. 
Definition: Edge.cc:575
Pos3dArray getNodePosReverse(void) const
Return the positions of the nodes in reverse order. 
Definition: Edge.cc:488
Pos3dArray getNodePosForward(void) const
Return the positions of the nodes in forward order. 
Definition: Edge.cc:478
Compound line. 
Definition: CmbEdge.h:46
const std::string & getConnectedSurfacesNames(void) const
Return names of the surfaces that touch the line (neighbors). 
Definition: Edge.cc:506
"boundary" en tres dimensiones. 
Definition: BND3d.h:34
void setNDivHomologousEdges(const size_t &)
Assigns the number of divisions of this edge and all its homologous. 
Definition: Edge.cc:247
Point (KPoint). 
Definition: Pnt.h:50
virtual unsigned short int GetDimension(void) const
Return the object dimension (0, 1, 2 or 3). 
Definition: Edge.h:68
virtual const Vector & getTang(const double &) const
Return a vector tangent to the line in point at parameter s. 
Definition: Edge.cc:719
Multiblock topology object (point, line, face, block,...). 
Definition: EntMdlr.h:55
virtual Vector3d getIVector(void) const
Returns a vector in the direction of the local X axis. 
Definition: Edge.cc:134
const std::set< const Face * > & getConnectedSurfaces(void) const
Return the surfaces that touch the line. 
Definition: Edge.cc:502
std::set< const Axis * > getConnectedLines(const Spot &p)
Return the set of lines that touch the point being passed as parameter. 
Definition: Axis.cc:97
bool Out(const GeomObj3d &, const double &tol=0.0) const
Returns true if the line lies outside the geometric object. 
Definition: Edge.cc:224
boost::python::list getSegmentsPy(void) const
Return the segments in a Python list. 
Definition: Edge.cc:788
Node * getFirstNode(void)
Return the first node of the line. 
Definition: Edge.cc:424
std::vector< Node * > create_interior_nodes(const std::vector< Pos3d > &positions)
Creates interior nodes at the positions being passed as parameters. 
Definition: Edge.cc:613
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:532
virtual size_t getNumberOfVertices(void) const =0
Return the number of vertices. 
Posición en tres dimensiones. 
Definition: Pos3d.h:44
virtual ID getKPoints(void) const
Return k-points. 
Definition: Edge.cc:811
virtual bool operator==(const Edge &) const
Comparison operator. 
Definition: Edge.cc:59
virtual Matrix getLocalAxes(void) const
Returns a matrix with the axes of the surface as matrix rows [[x1,y1,z1],[x2,y2,z2],...·]. 
Definition: Edge.cc:167
Open source finite element program for structural analysis. 
Definition: ContinuaReprComponent.h:35
void add_to_sets(std::set< SetBase *> &)
Add the «edge» to the sets passed as parameters. 
Definition: Edge.cc:744
Matrix of floats. 
Definition: Matrix.h:111
Six-faced solid. 
Definition: Body.h:71
virtual Vector3d getJVector(void) const
Returns a vector in the direction of the local Y axis. 
Definition: Edge.cc:146
bool isEndPoint(const Pnt &) const
Return true if it is an end point of the line. 
Definition: Edge.cc:563
Mesh node. 
Definition: Node.h:111
std::vector< int > getTagsNodesReverse(void) const
Return the IDs of the nodes in reverse order. 
Definition: Edge.cc:468
Surface. 
Definition: Face.h:45
Node * getNodeForward(const size_t &i)
Returns the node whose ordinal index is passed as parameter, starting from the beginning. 
Definition: Edge.cc:391
Vector en tres dimensiones. 
Definition: Vector3d.h:39
Object set. 
Definition: SetEntities.h:77
virtual Pnt * P2(void)
Return a pointer to the edge's start point. 
Definition: Edge.cc:104
virtual Pos3dArray get_nodes_pos(void) const
Return a matrix of positions along the line. 
Definition: Edge.cc:571
std::set< const XC::Edge * > getHomologousSides(void) const
Return the homologous sides to that passed as a parameter. 
Definition: Edge.cc:522
Clase base para los objetos en tres dimensiones. 
Definition: GeomObj3d.h:43