XC Open source finite element analysis program
RgSccCirc.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 //RgSccCirc.h
28 // Written by Remo M. de Souza
29 // December 1998
30 
31 #ifndef RgSccCirc_h
32 #define RgSccCirc_h
33 
34 #include <material/section/repres/geom_section/region/RgQuadCell.h>
35 #include <utility/matrix/Vector.h>
36 
37 class SectorAnilloCircular2d;
38 
39 namespace XC {
40 class Matrix;
41 
43 //
45 class RgSccCirc: public RgQuadCell
46  {
47  private:
48  Vector centerPosit;
49  double intRad;
50  double extRad;
51  double initAng;
52  double finalAng;
53  public:
54  RgSccCirc(Material *mat);
55  RgSccCirc(Material *, int numSubdivCircunf, int numSubdivRadial,
56  const Vector &centerPosition, double internRadius,
57  double externRadius, double initialAngle, double finalAngle);
58 
59  //edition functions
60  void setCenterPosition(const Vector &);
61  void setCenterPos(const Pos2d &);
62  Pos2d getCenterPos(void) const;
64  inline double getInteriorRadius(void) const
65  { return intRad; }
67  inline double getExteriorRadius(void) const
68  { return extRad; }
70  inline double getInitialAngle(void) const
71  { return initAng; }
73  inline double getFinalAngle(void) const
74  { return finalAng; }
76  void setInteriorRadius(const double &d)
77  { intRad= d; }
79  void setExteriorRadius(const double &d)
80  { extRad= d; }
82  void setInitialAngle(const double &d)
83  { initAng= d; }
85  void setFinalAngle(const double &d)
86  { finalAng= d; }
87  void setRadii(double internRadius, double externRadius);
88  void setAngles(double initialAngle, double finalAngle);
89 
90  //inquiring functions
91  const Rejilla2d &getMesh(void) const;
92  const VectorCells &getCells(void) const;
93  RegionSecc *getCopy(void) const;
94 
95  void getRadii(double &internRadius, double &externRadius) const;
96  void getAngles(double &initialAngle, double &finalAngle) const;
97  const Vector &getCenterPosition(void) const;
98  const Matrix &getVertCoords(void) const;
99 
100  double getMaxY(void) const;
101  double getMaxZ(void) const;
102  double getMinY(void) const;
103  double getMinZ(void) const;
104 
105  Poligono2d getPoligono(void) const;
106  SectorAnilloCircular2d &getSector(void) const;
107 
108 
109  void Print(std::ostream &s, int flag =0) const;
110  friend std::ostream &operator<<(std::ostream &s, RgSccCirc &rg_scc_circ);
111  };
112 } // end of XC namespace
113 
114 
115 #endif
116 
117 
double getInteriorRadius(void) const
Returns internal radius.
Definition: RgSccCirc.h:64
Cells vector.
Definition: VectorCells.h:42
Base class for materials.
Definition: Material.h:85
Poligono2d getPoligono(void) const
Returns a poligono inscrito en el sector del anillo circular.
Definition: RgSccCirc.cc:137
Definition: Vector.h:82
void setInteriorRadius(const double &d)
Sets internal radius.
Definition: RgSccCirc.h:76
void setFinalAngle(const double &d)
Sets final angle.
Definition: RgSccCirc.h:85
const VectorCells & getCells(void) const
Returns the contenedor de celdas.
Definition: RgSccCirc.cc:154
Region of a section that corresponds with a material.
Definition: RegionSecc.h:57
Region of a section that creates quadrilateral cells.
Definition: RgQuadCell.h:50
double getInitialAngle(void) const
Returns initial angle.
Definition: RgSccCirc.h:70
RegionSecc * getCopy(void) const
Virtual constructor.
Definition: RgSccCirc.cc:180
double getFinalAngle(void) const
Returns final angle.
Definition: RgSccCirc.h:73
const Rejilla2d & getMesh(void) const
Return the discretization grid.
Definition: RgSccCirc.cc:151
Definition: Matrix.h:82
double getExteriorRadius(void) const
Returns extenal radius.
Definition: RgSccCirc.h:67
void setExteriorRadius(const double &d)
Sets external radius.
Definition: RgSccCirc.h:79
Circular shaped patch.
Definition: RgSccCirc.h:45
RgSccCirc(Material *mat)
Default constructor.
Definition: RgSccCirc.cc:45
================================================================================
Definition: ContinuaReprComponent.h:34
void setInitialAngle(const double &d)
Sets starting angle.
Definition: RgSccCirc.h:82