XC Open source finite element analysis program
SeccionInerte.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 //SeccionInerte.h
28 
29 #ifndef SeccionInerte_h
30 #define SeccionInerte_h
31 
32 #include "xc_utils/src/nucleo/EntCmd.h"
33 
34 class Pos2d;
35 class Recta2d;
36 class PrincipalAxesOfInertia2D;
37 class Vector2d;
38 
39 namespace XC {
40 class CrossSectionProperties3d;
41 class CrossSectionProperties2d;
42 class Vector;
43 class Matrix;
44 
46 //
49 class SeccionInerte: public EntCmd
50  {
51  public:
52  SeccionInerte(EntCmd *owr= nullptr);
53 
54  virtual double getAreaGrossSection(void) const= 0;
55  virtual Vector getCdgGrossSection(void) const= 0;
56  virtual double getIyGrossSection(void) const= 0;
57  virtual double getIzGrossSection(void) const= 0;
58  virtual double getPyzGrossSection(void) const= 0;
59 
60  double getIxGrossSection(void) const;
61  double getTheta_pGrossSection(void) const;
62  Vector getDirEjeI_aGrossSection(void) const;
63  Vector getDirEjeI_bGrossSection(void) const;
64  double getI1GrossSection(void) const;
65  double getI2GrossSection(void) const;
66  PrincipalAxesOfInertia2D getEjesInerciaGrossSection(void) const;
67  Vector2d getVDirEje1GrossSection(void) const;
68  Vector2d getVDirStrongAxisGrossSection(void) const;
69  Vector2d getVDirEje2GrossSection(void) const;
70  Vector2d getVDirWeakAxisGrossSection(void) const;
71  double getIGrossSection(const unsigned short int &,const unsigned short int &) const;
72  double getIGrossSection(const unsigned short int &,const unsigned short int &,const Pos2d &) const;
73  double getIGrossSection(const Pos2d &,const Vector &) const;
74  double getIGrossSection(const Recta2d &) const;
75  double getIOGrossSection(const Pos2d &) const;
76  Matrix getIGrossSection(void) const;
77  Matrix getIGrossSection(const Pos2d &) const;
78 
79  virtual double getAreaHomogenizedSection(const double &) const= 0;
80  virtual Vector getCdgHomogenizedSection(const double &) const= 0;
81  virtual double getIyHomogenizedSection(const double &) const= 0;
82  virtual double getIzHomogenizedSection(const double &) const= 0;
83  virtual double getPyzHomogenizedSection(const double &) const= 0;
84 
85  double getIxHomogenizedSection(const double &) const;
86  double getTheta_pHomogenizedSection(void) const;
89  double getI1HomogenizedSection(const double &) const;
90  double getI2HomogenizedSection(const double &) const;
91  PrincipalAxesOfInertia2D getEjesInerciaHomogenizedSection(const double &) const;
92  Vector2d getVDirEje1HomogenizedSection(const double &) const;
93  Vector2d getVDirStrongAxisHomogenizedSection(const double &) const;
94  Vector2d getVDirEje2HomogenizedSection(const double &) const;
95  Vector2d getVDirWeakAxisHomogenizedSection(const double &) const;
96  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &) const;
97  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &,const Pos2d &) const;
98  double getIHomogenizedSection(const double &,const Pos2d &,const Vector &) const;
99  double getIHomogenizedSection(const double &,const Recta2d &) const;
100  double getIOHomogenizedSection(const double &,const Pos2d &) const;
101  Matrix getIHomogenizedSection(const double &) const;
102  Matrix getIHomogenizedSection(const double &,const Pos2d &) const;
103 
104  CrossSectionProperties3d getCrossSectionProperties3d(const CrossSectionProperties3d &) const;
105  CrossSectionProperties2d getCrossSectionProperties2d(const CrossSectionProperties2d &) const;
106 
107  };
108 
109 } // end of XC namespace
110 
111 
112 #endif
113 
Vector2d getVDirStrongAxisGrossSection(void) const
Direction of the major principal axis of inertia of the gross section.
Definition: SeccionInerte.cc:263
double getIOGrossSection(const Pos2d &) const
Returns the momento polar de inercia with respect to the point o.
Definition: SeccionInerte.cc:318
double getI1HomogenizedSection(const double &) const
Major principal moment of inertia of the homogenized section.
Definition: SeccionInerte.cc:78
Vector getDirEjeI_aGrossSection(void) const
Direction of a principal axis of inertia of the gross section with respect of current axis...
Definition: SeccionInerte.cc:215
Vector getDirEjeI_aHomogenizedSection(void) const
Direction of a principal axis of inertia of the homogenized section with respect of current axis...
Definition: SeccionInerte.cc:57
Vector2d getVDirEje1HomogenizedSection(const double &) const
Direction of the major principal axis of inertia of the homogenized section.
Definition: SeccionInerte.cc:103
PrincipalAxesOfInertia2D getEjesInerciaHomogenizedSection(const double &) const
Principal axis of inertia of the homogenized section.
Definition: SeccionInerte.cc:96
Definition: Vector.h:82
double getIHomogenizedSection(const double &, const unsigned short int &, const unsigned short int &) const
tensor of inertia (i,j) component of the homogenized section.
Definition: SeccionInerte.cc:116
PrincipalAxesOfInertia2D getEjesInerciaGrossSection(void) const
Principal axis of inertia of the gross section.
Definition: SeccionInerte.cc:253
double getIOHomogenizedSection(const double &, const Pos2d &) const
Returns the momento polar de inercia with respect to the point o.
Definition: SeccionInerte.cc:161
double getTheta_pHomogenizedSection(void) const
Agle of the principal axis of inertia of the homogenized section with respect of current axis...
Definition: SeccionInerte.cc:52
Mechanical properties of a section (area, moments of inertia,...) in a three-dimensional problem (six...
Definition: CrossSectionProperties3d.h:40
Vector getDirEjeI_bHomogenizedSection(void) const
Direction of the other axis of inertia of the homogenized section with respect of current axis...
Definition: SeccionInerte.cc:68
Vector getDirEjeI_bGrossSection(void) const
Direction of the other principal axis of inertia of the gross section with respect of current axis...
Definition: SeccionInerte.cc:225
double getIxHomogenizedSection(const double &) const
Inertia of the homogenized section about an axis parallel to x through his center of gravity...
Definition: SeccionInerte.cc:46
double getIxGrossSection(void) const
Inertia of the gross section about an axis parallel to x through his center of gravity.
Definition: SeccionInerte.cc:207
Vector2d getVDirStrongAxisHomogenizedSection(const double &) const
Direction of the major principal axis of inertia of the homogenized section.
Definition: SeccionInerte.cc:106
double getI2HomogenizedSection(const double &) const
Minor principal moment of inertia of the homogenized section.
Definition: SeccionInerte.cc:87
Vector2d getVDirEje1GrossSection(void) const
Direction of the major principal axis of inertia of the gross section.
Definition: SeccionInerte.cc:260
double getTheta_pGrossSection(void) const
Agle of the principal axis of inertia of the gross section with respect of current axis...
Definition: SeccionInerte.cc:211
Cross-section representation able to return mechanical propertis a area, moments of inertia...
Definition: SeccionInerte.h:49
Definition: Matrix.h:82
Vector2d getVDirWeakAxisGrossSection(void) const
Direction of the minor principal axis of inertia of the gross section.
Definition: SeccionInerte.cc:269
Matrix getIGrossSection(void) const
Returns the tensor of inertia computed with respect to the object centroid.
Definition: SeccionInerte.cc:323
Vector2d getVDirEje2HomogenizedSection(const double &) const
Direction of the minor principal axis of inertia of the homogenized section.
Definition: SeccionInerte.cc:109
Mechanical properties of a cross section (area, moments of inertia,...) for a bi-dimensional problem ...
Definition: CrossSectionProperties2d.h:52
Vector2d getVDirEje2GrossSection(void) const
Direction of the minor principal axis of inertia of the gross section.
Definition: SeccionInerte.cc:266
================================================================================
Definition: ContinuaReprComponent.h:34
double getI1GrossSection(void) const
Major principal moment of inertia of the gross section.
Definition: SeccionInerte.cc:235
double getI2GrossSection(void) const
Minor principal moment of inertia of the gross section.
Definition: SeccionInerte.cc:244
Vector2d getVDirWeakAxisHomogenizedSection(const double &) const
Direction of the minor principal axis of inertia of the homogenized section.
Definition: SeccionInerte.cc:112