XC Open source finite element analysis program
ListReinfLayer.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 //ListReinfLayer.h
28 
29 #ifndef ListReinfLayer_h
30 #define ListReinfLayer_h
31 
32 #include <list>
33 #include "material/section/repres/SeccionInerte.h"
34 
35 class Pos2d;
36 class Poligono2d;
37 class Semiplano2d;
38 
39 namespace XC {
40 
41 class ReinfLayer;
42 class CircReinfLayer;
43 class StraightReinfLayer;
44 class SingleBar;
45 class MaterialLoader;
46 class Vector;
47 class Matrix;
48 class GeomSection;
49 
51 //
53 class ListReinfLayer: public std::list<ReinfLayer *>, public SeccionInerte
54  {
55  public:
56  typedef std::list<ReinfLayer *> l_reg;
57  typedef l_reg::reference reference;
58  typedef l_reg::const_reference const_reference;
59  typedef l_reg::iterator iterator;
60  typedef l_reg::const_iterator const_iterator;
61  private:
62  void libera(void);
63  void libera(const size_t i);
64  void copia(const ListReinfLayer &otra);
65  protected:
66 
68 
69  friend class GeomSection;
71  ListReinfLayer(const ListReinfLayer &otro);
73  public:
74  ~ListReinfLayer(void);
75 
76  ReinfLayer *push_back(const ReinfLayer &reg);
77 
78  void clear(void);
79 
80  const GeomSection *getGeomSection(void) const;
81  double getRecubrimiento(void) const;
82 
83  StraightReinfLayer *newStraightReinfLayer(const std::string &);
84  CircReinfLayer *newCircReinfLayer(const std::string &);
85  SingleBar *newReinfBar(const std::string &);
86 
87 
88  size_t getNumReinfBars(void) const;
89 
90  //void Cumplen(const std::string &,ListReinfLayer &,bool );
91  void getBarrasIn(const Poligono2d &,ListReinfLayer &,bool );
92  void getBarrasIn(const Semiplano2d &,ListReinfLayer &,bool );
93 
94  double getAreaGrossSection(void) const;
95  Vector getCdgGrossSection(void) const;
96  double getIyGrossSection(void) const;
97  double getIzGrossSection(void) const;
98  double getPyzGrossSection(void) const;
99 
100  Vector getCdgHomogenizedSection(const double &E0) const;
101  double getAreaHomogenizedSection(const double &E0) const;
102  double getIyHomogenizedSection(const double &E0) const;
103  double getIzHomogenizedSection(const double &E0) const;
104  double getPyzHomogenizedSection(const double &E0) const;
105 
106  void Print(std::ostream &s) const;
107  };
108 
109 } // end of XC namespace
110 
111 
112 #endif
double getIzGrossSection(void) const
Inertia of the gross section about an axis parallel to z through its centroid.
Definition: ListReinfLayer.cc:298
ReinfLayer * push_back(const ReinfLayer &reg)
Adds a rebar layer to the container.
Definition: ListReinfLayer.cc:117
double getAreaHomogenizedSection(const double &E0) const
Returns the homogenized area de las regiones.
Definition: ListReinfLayer.cc:189
size_t getNumReinfBars(void) const
Returns the número total de celdas.
Definition: ListReinfLayer.cc:148
Definition: Vector.h:82
SingleBar * newReinfBar(const std::string &)
Definition: ListReinfLayer.cc:100
double getRecubrimiento(void) const
Returns the minimum value del recubrimiento de las barras.
Definition: ListReinfLayer.cc:136
double getIyHomogenizedSection(const double &E0) const
Returns homogenized moment of inertia of the cross-section with respecto to the axis parallel to y pa...
Definition: ListReinfLayer.cc:214
Single rebar (not included in a reinforcement layer).
Definition: SingleBar.h:41
Set of rebars distributed along a segment.
Definition: StraightReinfLayer.h:71
double getAreaGrossSection(void) const
Returns region&#39;s gross section area.
Definition: ListReinfLayer.cc:259
Rebar layer.
Definition: ReinfLayer.h:73
MaterialLoader * material_loader
Material definition handler (searching,...).
Definition: ListReinfLayer.h:67
double getIyGrossSection(void) const
Inertia of the gross section about an axis parallel to y through its centroid.
Definition: ListReinfLayer.cc:284
ListReinfLayer & operator=(const ListReinfLayer &otro)
Assignment operator.
Definition: ListReinfLayer.cc:70
ListReinfLayer(GeomSection *, MaterialLoader *ml)
Constructor.
Definition: ListReinfLayer.cc:61
Cross-section representation able to return mechanical propertis a area, moments of inertia...
Definition: SeccionInerte.h:49
Vector getCdgGrossSection(void) const
Returns gross section centroid position.
Definition: ListReinfLayer.cc:268
double getIzHomogenizedSection(const double &E0) const
Returns homogenized moment of inertia of the cross-section with respecto to the axis parallel to z pa...
Definition: ListReinfLayer.cc:229
Material handler (definition, searching,...).
Definition: MaterialLoader.h:45
Capa de armaduras en forma de arco de circulo.
Definition: CircReinfLayer.h:70
~ListReinfLayer(void)
Destructor.
Definition: ListReinfLayer.cc:109
Contenedor (lista) de capas de armadura.
Definition: ListReinfLayer.h:53
================================================================================
Definition: ContinuaReprComponent.h:34
double getPyzHomogenizedSection(const double &E0) const
Returns homogenized product of inertia of the cross-section with respecto to the axis parallel to y a...
Definition: ListReinfLayer.cc:244
void getBarrasIn(const Poligono2d &, ListReinfLayer &, bool)
Definition: ListReinfLayer.cc:169
Cross section geometry.
Definition: GeomSection.h:62
void clear(void)
Erases las armaduras definidas.
Definition: ListReinfLayer.cc:113
const GeomSection * getGeomSection(void) const
Returns a reference to the GeomSection object that owns this one.
Definition: ListReinfLayer.cc:126
double getPyzGrossSection(void) const
Product of inertia of the gross section about y and z axis through its centroid.
Definition: ListReinfLayer.cc:312