xc
PrismaticBarCrossSection.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 //PrismaticBarCrossSection.h
29 
30 
31 #ifndef PrismaticBarCrossSection_h
32 #define PrismaticBarCrossSection_h
33 
34 class PrincipalAxes2D;
35 
36 #include "material/section/SectionForceDeformation.h"
37 #include "material/section/repres/CrossSectionProperties1d.h"
38 #include "material/section/repres/CrossSectionProperties2d.h"
39 #include "material/section/repres/CrossSectionProperties3d.h"
40 
41 class HalfPlane2d;
42 class Line2d;
43 class Pos2d;
44 class Vector2d;
45 
46 namespace XC {
47 
48 class DeformationPlane;
49 
54  {
55 
56  public:
57  PrismaticBarCrossSection(int tag,int classTag,MaterialHandler *mat_ldr= nullptr);
58 
61  virtual const Vector &getGeneralizedStrainVector(const DeformationPlane &) const;
64  virtual double getStrain(const double &y,const double &z= 0) const;
65 
66  double getN(void) const;
67  double getMy(void) const;
68  double getMz(void) const;
69 
70  virtual double getCenterOfMassY(void) const;
71  virtual double getCenterOfMassZ(void) const;
72  Pos2d getCenterOfMass(void) const;
73  Line2d getNeutralAxis(void) const;
74  Line2d getInternalForcesAxis(void) const;
81 
82  virtual const double &EA(void) const;
83  virtual const double &EIz(void) const;
84  virtual const double &EIy(void) const;
85  virtual const double &EIyz(void) const;
86  virtual const double &GAy(void) const;
87  virtual const double &GAz(void) const;
88  virtual const double &GJ(void) const;
89  double getTheta(void) const;
90  double getEI1(void) const;
91  double getEI2(void) const;
92  PrincipalAxes2D getInertiaAxes(void) const;
93  Vector2d getAxis1VDir(void) const;
94  Vector2d getVDirStrongAxis(void) const;
95  Vector2d getAxis2VDir(void) const;
96  Vector2d getVDirWeakAxis(void) const;
97  virtual double getLinearRho(void) const;
98  CrossSectionProperties1d getCrossSectionProperties1d(const double &e= 1.0, const double &iw= 0.0) const;
99  CrossSectionProperties2d getCrossSectionProperties2d(const double &e= 1.0, const double &iw= 0.0, const double &g= 1.0) const;
100  CrossSectionProperties3d getCrossSectionProperties3d(const double &e= 1.0, const double &iw= 0.0, const double &g= 1.0) const;
101 
102 
103  bool hayAxil(const double &tol=1e-4) const;
104  bool isSubjectedToShear(const double &tol=1e-4) const;
105  bool isSubjectedToBending(const double &tol=1e-4) const;
106  bool hayTorsor(const double &tol=1e-4) const;
107 
108  };
109 
110 } // end of XC namespace
111 
112 
113 #endif
Base class for force deformation section models.
Definition: SectionForceDeformation.h:88
virtual double getLinearRho(void) const
Returns the mass per unit length of the section.
Definition: PrismaticBarCrossSection.cc:230
virtual const double & EIz(void) const
Returns the bending stiffness of the cross-section en torno the z axis.
Definition: PrismaticBarCrossSection.cc:148
virtual const double & EA(void) const
Returns the section axial stiffness.
Definition: PrismaticBarCrossSection.cc:145
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
Line2d getInternalForcesAxis(void) const
Returns the axis that is aligned with the cross-section internal forces.
Definition: PrismaticBarCrossSection.cc:313
Vector2d getAxis1VDir(void) const
Returns the vector of the principal axis I.
Definition: PrismaticBarCrossSection.cc:261
bool hayAxil(const double &tol=1e-4) const
Returns true if the section is subjected to an axial force.
Definition: PrismaticBarCrossSection.cc:123
double getMz(void) const
Returns internal bending moment around z axis.
Definition: PrismaticBarCrossSection.cc:141
Vector2d getAxis2VDir(void) const
Returns the vector of the principal axis II.
Definition: PrismaticBarCrossSection.cc:267
Pos2d getPointOnTensionedHalfPlane(void) const
Returns (if possible) a point in the tensioned region.
Definition: PrismaticBarCrossSection.cc:339
Pos2d getPointOnCompressedHalfPlane(void) const
Returns (if possible) a point in the compressed region.
Definition: PrismaticBarCrossSection.cc:343
virtual const double & GAz(void) const
Returns the shear stiffness along z axis.
Definition: PrismaticBarCrossSection.cc:195
virtual const double & GJ(void) const
Returns the torsional stiffness.
Definition: PrismaticBarCrossSection.cc:206
PrismaticBarCrossSection(int tag, int classTag, MaterialHandler *mat_ldr=nullptr)
Constructor.
Definition: PrismaticBarCrossSection.cc:52
double getEI1(void) const
Returns the bending stiffness around the major principal axis of inertia.
Definition: PrismaticBarCrossSection.cc:222
Posición en dos dimensiones.
Definition: Pos2d.h:41
int setInitialDeformationPlane(const DeformationPlane &)
Sets the plane that defines initial strains of the section.
Definition: PrismaticBarCrossSection.cc:60
double getEI2(void) const
Returns the bending stiffness en torno al principal axis of inertia menor.
Definition: PrismaticBarCrossSection.cc:227
Line in a two-dimensional space.
Definition: Line2d.h:61
virtual double getStrain(const double &y, const double &z=0) const
Returns strain at position being passed as parameter.
Definition: PrismaticBarCrossSection.cc:102
Base class for beam-column cross sections.
Definition: PrismaticBarCrossSection.h:53
Principals axes of inertia in planar geometry.
Definition: PrincipalAxes2D.h:34
double getN(void) const
Returns internal axial force.
Definition: PrismaticBarCrossSection.cc:133
HalfPlane2d getTensionedHalfPlane(void) const
Returns the tensioned half-plane.
Definition: PrismaticBarCrossSection.cc:352
virtual double getCenterOfMassZ(void) const
Returns the z coordinate of the center of gravity of the cross-section.
Definition: PrismaticBarCrossSection.cc:115
DeformationPlane getDeformationPlane(void) const
Returns the deformation plane of this section.
Definition: PrismaticBarCrossSection.cc:78
virtual const double & GAy(void) const
Returns the shear stiffness along y axis.
Definition: PrismaticBarCrossSection.cc:184
bool hayTorsor(const double &tol=1e-4) const
Returns true if the section is subjected to a torsional force.
Definition: PrismaticBarCrossSection.cc:298
Vector en dos dimensiones.
Definition: Vector2d.h:41
int setTrialDeformationPlane(const DeformationPlane &)
Sets the deformation plane of the section.
Definition: PrismaticBarCrossSection.cc:56
Deformation plane for a cross-section.
Definition: DeformationPlane.h:54
double getTheta(void) const
Returns the angle that defines the principal axis of inertia.
Definition: PrismaticBarCrossSection.cc:217
virtual const double & EIyz(void) const
Returns the product of inertia multiplied by the Young modulus.
Definition: PrismaticBarCrossSection.cc:173
bool isSubjectedToBending(const double &tol=1e-4) const
Returns true if the section is subjected to a bending moment.
Definition: PrismaticBarCrossSection.cc:274
DeformationPlane getInitialDeformationPlane(void) const
Returns initial strain plane.
Definition: PrismaticBarCrossSection.cc:64
bool isSubjectedToShear(const double &tol=1e-4) const
Returns true if the section is subjected to a shearing force.
Definition: PrismaticBarCrossSection.cc:286
Mechanical (E, G) and mass properties of a section (area, moments of inertia,...) for a bi-dimensiona...
Definition: CrossSectionProperties2d.h:55
Mechanical (E, G) and mass properties of a section (area, moments of inertia,...) for a bi-dimensiona...
Definition: CrossSectionProperties1d.h:51
Vector2d getVDirWeakAxis(void) const
Returns the vector of the principal axis II.
Definition: PrismaticBarCrossSection.cc:270
PrincipalAxes2D getInertiaAxes(void) const
Returns the principal axes of inertia of the cross-section.
Definition: PrismaticBarCrossSection.cc:258
Line2d getNeutralAxis(void) const
Returns the neutral axis.
Definition: PrismaticBarCrossSection.cc:308
CrossSectionProperties3d getCrossSectionProperties3d(const double &e=1.0, const double &iw=0.0, const double &g=1.0) const
Return the 3D properties of the this cross-section.
Definition: PrismaticBarCrossSection.cc:251
CrossSectionProperties1d getCrossSectionProperties1d(const double &e=1.0, const double &iw=0.0) const
Return the 1D properties of the this cross-section.
Definition: PrismaticBarCrossSection.cc:239
Material handler (definition, searching,...).
Definition: MaterialHandler.h:46
virtual double getCenterOfMassY(void) const
Returns the y coordinate of the center of gravity of the cross-section.
Definition: PrismaticBarCrossSection.cc:111
CrossSectionProperties2d getCrossSectionProperties2d(const double &e=1.0, const double &iw=0.0, const double &g=1.0) const
Return the 2D properties of the this cross-section.
Definition: PrismaticBarCrossSection.cc:245
Half plane in a two-dimensional space.
Definition: HalfPlane2d.h:38
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
virtual const Vector & getGeneralizedStrainVector(const DeformationPlane &) const
Return the generalized strains vector that corresponds to the given deformation plane.
Definition: PrismaticBarCrossSection.cc:70
HalfPlane2d getCompressedHalfPlane(void) const
Returns the compressed half-plane.
Definition: PrismaticBarCrossSection.cc:361
double getMy(void) const
Returns internal bending moment around y axis.
Definition: PrismaticBarCrossSection.cc:137
virtual const double & EIy(void) const
Returns the bending stiffness of the cross-section with respect to eht y axis.
Definition: PrismaticBarCrossSection.cc:162
Vector2d getVDirStrongAxis(void) const
Returns the vector of the principal axis I.
Definition: PrismaticBarCrossSection.cc:264
Pos2d getCenterOfMass(void) const
Returns the position of the cross-section centroid.
Definition: PrismaticBarCrossSection.cc:119