XC Open source finite element analysis program
ArcoCircunf.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 //ArcoCircunf.h
28 
29 #ifndef ARCOCIRCUNF_H
30 #define ARCOCIRCUNF_H
31 
32 #include "LineaBase.h"
33 
34 
35 class SectorCircular3d;
36 
37 namespace XC {
38 
42 
43 class ArcoCircunf: public LineaBase
44  {
45  Pnt *p3;
46  protected:
47 
48  const SectorCircular3d get_sector_circular3d(void) const;
49  MatrizPos3d get_posiciones(void) const;
50  bool check_points(void) const;
51  public:
53  ArcoCircunf(const std::string &nombre= "",Preprocessor *m= nullptr);
54  virtual SetEstruct *getCopy(void) const;
55  const Pnt *P3(void) const;
56 
57  void actualiza_topologia(void);
58 
59  double getLongitud(void) const;
60  double getAnguloComprendido(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 getRadio(void) const;
68  double getLambda(const Pos3d &) const;
69 
71  inline virtual size_t NumVertices(void) const
72  { return 3; }
73  virtual const Pnt *GetVertice(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  int getMEDCellType(void) const;
78  virtual ID getKPoints(void) const;
79 
80 
81  };
82 
83 } //end of XC namespace
84 #endif
int getMEDCellType(void) const
Interface with MED format of Salome.
Definition: ArcoCircunf.cc:215
virtual void SetVertice(const size_t &, Pnt *)
Set the i-th vertex.
Definition: ArcoCircunf.cc:69
double getLongitud(void) const
Return the arc length.
Definition: ArcoCircunf.cc:108
bool check_points(void) const
Check that the points are defined.
Definition: ArcoCircunf.cc:86
Base class for 1D entities.
Definition: LineaBase.h:40
MatrizPos3d get_posiciones(void) const
Return ndiv+1 equally-sapaced positions along the arc.
Definition: ArcoCircunf.cc:207
virtual SetEstruct * getCopy(void) const
Virtual constructor.
Definition: ArcoCircunf.cc:51
Circumference arc.
Definition: ArcoCircunf.h:43
Pos3d getPMed(void) const
Return the midpoint.
Definition: ArcoCircunf.cc:180
virtual ID getKPoints(void) const
Return k-points.
Definition: ArcoCircunf.cc:219
Finite element model generation tools.
Definition: Preprocessor.h:58
double getTheta1(void) const
Return the start angle.
Definition: ArcoCircunf.cc:126
Definition: ID.h:77
structured set, i. e. a set that can return a pointer a to a node or an element from its indices i...
Definition: SetEstruct.h:45
int getVtkCellType(void) const
Interface with VTK.
Definition: ArcoCircunf.cc:211
Punto (KPoint).
Definition: Pnt.h:49
Pos3d getPFin(void) const
Return the end point.
Definition: ArcoCircunf.cc:171
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: ArcoCircunf.cc:144
virtual const Pnt * GetVertice(const size_t &i) const
Return the i-th vertex.
Definition: ArcoCircunf.cc:59
double getTheta2(void) const
Return the end angle.
Definition: ArcoCircunf.cc:135
const SectorCircular3d get_sector_circular3d(void) const
Return the cirle sector correlated with the arc.
Definition: ArcoCircunf.cc:99
Pos3d getPInic(void) const
Return the start point.
Definition: ArcoCircunf.cc:162
const Pnt * P3(void) const
Return a constant pointer to the midpoint of the arc.
Definition: ArcoCircunf.cc:55
double getAnguloComprendido(void) const
Return the angle subtended by the arc.
Definition: ArcoCircunf.cc:117
double getRadio(void) const
Return the radius.
Definition: ArcoCircunf.cc:189
================================================================================
Definition: ContinuaReprComponent.h:34
virtual size_t NumVertices(void) const
Return the number of vertices.
Definition: ArcoCircunf.h:71
Pos3d getCentro(void) const
Return the center of the circumference.
Definition: ArcoCircunf.cc:153
ArcoCircunf(Preprocessor *m)
Constructor.
Definition: ArcoCircunf.cc:43