xc
CircularArc.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 //CircularArc.h
28 
29 #ifndef ARCOCIRCUNF_H
30 #define ARCOCIRCUNF_H
31 
32 #include "LineBase.h"
33 
34 
35 class CircularSector3d;
36 
37 namespace XC {
38 
42 
43 class CircularArc: public LineBase
44  {
45  Pnt *p3;
46  protected:
47  const CircularSector3d get_sector_circular3d(void) const;
48  Pos3dArray get_positions(void) const;
49  bool check_points(void) const;
50  public:
52  CircularArc(const std::string &nombre= "",Preprocessor *m= nullptr);
53  virtual SetEstruct *getCopy(void) const;
54  const Pnt *P3(void) const;
55 
56  void update_topology(void);
57 
58  double getLength(void) const;
59  Pos3d getCentroid(void) const;
60  double getIncludedAngle(void) const;
61  double getTheta1(void) const;
62  double getTheta2(void) const;
63  Pos3d getCentro(void) const;
64  Pos3d getPInic(void) const;
65  Pos3d getPFin(void) const;
66  Pos3d getPMed(void) const;
67  double getRadius(void) const;
68  double getLambda(const Pos3d &) const;
69 
71  inline virtual size_t getNumberOfVertices(void) const
72  { return 3; }
73  virtual const Pnt *getVertex(const size_t &i) const;
74  virtual void SetVertice(const size_t &,Pnt *);
75  virtual BND3d Bnd(void) const;
76  int getVtkCellType(void) const;
77  virtual ID getKPoints(void) const;
78  };
79 
80 } //end of XC namespace
81 #endif
Pos3d getPMed(void) const
Return the midpoint.
Definition: CircularArc.cc:188
double getTheta2(void) const
Return the end angle.
Definition: CircularArc.cc:142
virtual ID getKPoints(void) const
Return k-points.
Definition: CircularArc.cc:225
const CircularSector3d get_sector_circular3d(void) const
Return the cirle sector correlated with the arc.
Definition: CircularArc.cc:97
double getTheta1(void) const
Return the start angle.
Definition: CircularArc.cc:133
Finite element model generation tools.
Definition: Preprocessor.h:58
virtual void SetVertice(const size_t &, Pnt *)
Set the i-th vertex.
Definition: CircularArc.cc:67
int getVtkCellType(void) const
Interface with VTK.
Definition: CircularArc.cc:221
const Pnt * P3(void) const
Return a constant pointer to the midpoint of the arc.
Definition: CircularArc.cc:54
virtual BND3d Bnd(void) const
Returns object boundary.
Definition: CircularArc.cc:213
double getLambda(const Pos3d &) const
Return the parameter of the point on the arc (distance to the arc&#39;s first point measured over the arc...
Definition: CircularArc.cc:152
Pos3d getPFin(void) const
Return the end point.
Definition: CircularArc.cc:179
Vector of integers.
Definition: ID.h:93
bool check_points(void) const
Check that the points are defined.
Definition: CircularArc.cc:84
Base class for 1D entities.
Definition: LineBase.h:40
virtual const Pnt * getVertex(const size_t &i) const
Return the i-th vertex.
Definition: CircularArc.cc:58
double getIncludedAngle(void) const
Return the angle subtended by the arc.
Definition: CircularArc.cc:124
double getRadius(void) const
Return the radius.
Definition: CircularArc.cc:197
Circumference arc.
Definition: CircularArc.h:43
Pos3d getCentroid(void) const
Return the centroid of the arc.
Definition: CircularArc.cc:115
Pos3dArray get_positions(void) const
Return ndiv+1 equally-sapaced positions along the arc.
Definition: CircularArc.cc:217
void update_topology(void)
Updates topology.
Definition: CircularArc.cc:206
CircularArc(Preprocessor *m)
Constructor.
Definition: CircularArc.cc:42
Point (KPoint).
Definition: Pnt.h:49
Pos3d getCentro(void) const
Return the center of the circumference.
Definition: CircularArc.cc:161
structured set, i.
Definition: SetEstruct.h:45
virtual size_t getNumberOfVertices(void) const
Return the number of vertices.
Definition: CircularArc.h:71
Pos3d getPInic(void) const
Return the start point.
Definition: CircularArc.cc:170
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
double getLength(void) const
Return the arc length.
Definition: CircularArc.cc:106
virtual SetEstruct * getCopy(void) const
Virtual constructor.
Definition: CircularArc.cc:50