xc
SectionMassProperties.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 //SectionMassProperties.h
29 
30 #ifndef SectionMassProperties_h
31 #define SectionMassProperties_h
32 
33 #include "utility/kernel/CommandEntity.h"
34 
35 class Pos2d;
36 class Line2d;
38 class Vector2d;
39 
40 namespace XC {
41 class CrossSectionProperties3d;
42 class CrossSectionProperties2d;
43 class CrossSectionProperties1d;
44 class Vector;
45 class Matrix;
46 
48 //
52  {
53  public:
54  SectionMassProperties(CommandEntity *owr= nullptr);
55 
56  virtual double getAreaGrossSection(void) const= 0;
57  virtual Vector getCenterOfMassGrossSection(void) const= 0;
58  virtual double getIyGrossSection(void) const= 0;
59  virtual double getIzGrossSection(void) const= 0;
60  virtual double getPyzGrossSection(void) const= 0;
61 
62  double getIxGrossSection(void) const;
63  double getTheta_pGrossSection(void) const;
66  double getI1GrossSection(void) const;
67  double getI2GrossSection(void) const;
73  double getIGrossSection(const unsigned short int &,const unsigned short int &) const;
74  double getIGrossSection(const unsigned short int &,const unsigned short int &,const Pos2d &) const;
75  double getIGrossSection(const Pos2d &,const Vector &) const;
76  double getIGrossSection(const Line2d &) const;
77  double getIOGrossSection(const Pos2d &) const;
78  Matrix getIGrossSection(void) const;
79  Matrix getIGrossSection(const Pos2d &) const;
80 
81  virtual double getAreaHomogenizedSection(const double &) const= 0;
82  virtual Vector getCenterOfMassHomogenizedSection(const double &) const= 0;
83  virtual double getIyHomogenizedSection(const double &) const= 0;
84  virtual double getIzHomogenizedSection(const double &) const= 0;
85  virtual double getPyzHomogenizedSection(const double &) const= 0;
86 
87  double getIxHomogenizedSection(const double &) const;
88  double getTheta_pHomogenizedSection(void) const;
91  double getI1HomogenizedSection(const double &) const;
92  double getI2HomogenizedSection(const double &) const;
94  Vector2d getAxis1VDirHomogenizedSection(const double &) const;
95  Vector2d getVDirStrongAxisHomogenizedSection(const double &) const;
96  Vector2d getAxis2VDirHomogenizedSection(const double &) const;
97  Vector2d getVDirWeakAxisHomogenizedSection(const double &) const;
98  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &) const;
99  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &,const Pos2d &) const;
100  double getIHomogenizedSection(const double &,const Pos2d &,const Vector &) const;
101  double getIHomogenizedSection(const double &,const Line2d &) const;
102  double getIOHomogenizedSection(const double &,const Pos2d &) const;
103  Matrix getIHomogenizedSection(const double &) const;
104  Matrix getIHomogenizedSection(const double &,const Pos2d &) const;
105 
109 
110  };
111 
112 } // end of XC namespace
113 
114 
115 #endif
116 
Vector getIAxisDir_bGrossSection(void) const
Direction of the other principal axis of inertia of the gross section with respect of current axis...
Definition: SectionMassProperties.cc:252
Mechanical (E, G) and mass properties of a section (area, moments of inertia,...) in a three-dimensio...
Definition: CrossSectionProperties3d.h:42
Float vector abstraction.
Definition: Vector.h:94
double getI1HomogenizedSection(const double &) const
Major principal moment of inertia of the homogenized section.
Definition: SectionMassProperties.cc:83
Vector2d getAxis2VDirHomogenizedSection(const double &) const
Direction of the minor principal axis of inertia of the homogenized section.
Definition: SectionMassProperties.cc:117
double getIHomogenizedSection(const double &, const unsigned short int &, const unsigned short int &) const
tensor of inertia (i,j) component of the homogenized section.
Definition: SectionMassProperties.cc:125
double getIOGrossSection(const Pos2d &) const
Return the polar moment of inertia with respect to the point o.
Definition: SectionMassProperties.cc:352
Posición en dos dimensiones.
Definition: Pos2d.h:41
Line in a two-dimensional space.
Definition: Line2d.h:61
double getIxGrossSection(void) const
Inertia of the gross section about an axis parallel to x through his center of gravity.
Definition: SectionMassProperties.cc:231
Vector2d getVDirStrongAxisGrossSection(void) const
Direction of the major principal axis of inertia of the gross section.
Definition: SectionMassProperties.cc:292
Vector getIAxisDir_aHomogenizedSection(void) const
Direction of a principal axis of inertia of the homogenized section with respect of current axis...
Definition: SectionMassProperties.cc:61
Vector2d getVDirWeakAxisHomogenizedSection(const double &) const
Direction of the minor principal axis of inertia of the homogenized section.
Definition: SectionMassProperties.cc:121
Vector2d getAxis1VDirGrossSection(void) const
Direction of the major principal axis of inertia of the gross section.
Definition: SectionMassProperties.cc:288
double getTheta_pGrossSection(void) const
Agle of the principal axis of inertia of the gross section with respect of current axis...
Definition: SectionMassProperties.cc:236
Vector2d getAxis2VDirGrossSection(void) const
Direction of the minor principal axis of inertia of the gross section.
Definition: SectionMassProperties.cc:296
double getIxHomogenizedSection(const double &) const
Inertia of the homogenized section about an axis parallel to x through his center of gravity...
Definition: SectionMassProperties.cc:48
Vector en dos dimensiones.
Definition: Vector2d.h:40
double getI2HomogenizedSection(const double &) const
Minor principal moment of inertia of the homogenized section.
Definition: SectionMassProperties.cc:92
Vector2d getVDirStrongAxisHomogenizedSection(const double &) const
Direction of the major principal axis of inertia of the homogenized section.
Definition: SectionMassProperties.cc:113
Vector2d getVDirWeakAxisGrossSection(void) const
Direction of the minor principal axis of inertia of the gross section.
Definition: SectionMassProperties.cc:300
double getIOHomogenizedSection(const double &, const Pos2d &) const
Return the polar moment of inertia with respect to the point o.
Definition: SectionMassProperties.cc:172
Mechanical (E, G) and mass properties of a section (area, moments of inertia,...) for a bi-dimensiona...
Definition: CrossSectionProperties2d.h:55
CrossSectionProperties2d getCrossSectionProperties2d(const CrossSectionProperties2d &) const
Return the 2D mass properties of the homogenized section.
Definition: SectionMassProperties.cc:211
Mechanical (E, G) and mass properties of a section (area, moments of inertia,...) for a bi-dimensiona...
Definition: CrossSectionProperties1d.h:51
CrossSectionProperties1d getCrossSectionProperties1d(const CrossSectionProperties1d &) const
Return the 1D mass properties of the homogenized section.
Definition: SectionMassProperties.cc:221
SectionMassProperties(CommandEntity *owr=nullptr)
Constructor.
Definition: SectionMassProperties.cc:42
Vector getIAxisDir_bHomogenizedSection(void) const
Direction of the other axis of inertia of the homogenized section with respect of current axis...
Definition: SectionMassProperties.cc:73
Objet that can execute python scripts.
Definition: CommandEntity.h:40
CrossSectionProperties3d getCrossSectionProperties3d(const CrossSectionProperties3d &) const
Return the 3D mass properties of the homogenized section.
Definition: SectionMassProperties.cc:199
Principals axes of inertia in planar geometry.
Definition: PrincipalAxesOfInertia2D.h:34
double getI2GrossSection(void) const
Minor principal moment of inertia of the gross section.
Definition: SectionMassProperties.cc:271
Vector getIAxisDir_aGrossSection(void) const
Direction of a principal axis of inertia of the gross section with respect of current axis...
Definition: SectionMassProperties.cc:241
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
PrincipalAxesOfInertia2D getInertiaAxesGrossSection(void) const
Principal axis of inertia of the gross section.
Definition: SectionMassProperties.cc:280
Vector2d getAxis1VDirHomogenizedSection(const double &) const
Direction of the major principal axis of inertia of the homogenized section.
Definition: SectionMassProperties.cc:109
Cross-section representation able to return mechanical propertis a area, moments of inertia...
Definition: SectionMassProperties.h:51
Matrix of floats.
Definition: Matrix.h:111
double getI1GrossSection(void) const
Major principal moment of inertia of the gross section.
Definition: SectionMassProperties.cc:262
Matrix getIGrossSection(void) const
Return the tensor of inertia computed with respect to the object centroid.
Definition: SectionMassProperties.cc:358
double getTheta_pHomogenizedSection(void) const
Agle of the principal axis of inertia of the homogenized section with respect of current axis...
Definition: SectionMassProperties.cc:55
PrincipalAxesOfInertia2D getInertiaAxesHomogenizedSection(const double &) const
Principal axis of inertia of the homogenized section.
Definition: SectionMassProperties.cc:101