xc
PrismaticBarCrossSection.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 //PrismaticBarCrossSection.h
28 
29 
30 #ifndef PrismaticBarCrossSection_h
31 #define PrismaticBarCrossSection_h
32 
33 class PrincipalAxesOfInertia2D;
34 
35 #include "material/section/SectionForceDeformation.h"
36 
37 class HalfPlane2d;
38 class Line2d;
39 class Pos2d;
40 class Vector2d;
41 
42 namespace XC {
43 
44 class DeformationPlane;
45 
47 //
51  {
52  public:
53  PrismaticBarCrossSection(int tag,int classTag,MaterialHandler *mat_ldr= nullptr);
56 
59  virtual const Vector &getGeneralizedStrainVector(const DeformationPlane &) const;
62  virtual double getStrain(const double &y,const double &z= 0) const;
63 
64  double getN(void) const;
65  double getMy(void) const;
66  double getMz(void) const;
67 
68  virtual double getCenterOfMassY(void) const;
69  virtual double getCenterOfMassZ(void) const;
70  Pos2d getCenterOfMass(void) const;
71  Line2d getNeutralAxis(void) const;
72  Line2d getInternalForcesAxis(void) const;
73  Pos2d getPointOnTensionedHalfPlane(void) const;
74  Pos2d getPointOnCompressedHalfPlane(void) const;
75  HalfPlane2d getTensionedHalfPlane(void) const;
76  HalfPlane2d getTensionedHalfPlane(const Line2d &) const;
77  HalfPlane2d getCompressedHalfPlane(void) const;
78  HalfPlane2d getCompressedHalfPlane(const Line2d &) const;
79 
80  const double &EA(void) const;
81  const double &EIz(void) const;
82  const double &EIy(void) const;
83  const double &EIyz(void) const;
84  double getTheta(void) const;
85  double getEI1(void) const;
86  double getEI2(void) const;
87  PrincipalAxesOfInertia2D getInertiaAxes(void) const;
88  Vector2d getAxis1VDir(void) const;
89  Vector2d getVDirStrongAxis(void) const;
90  Vector2d getAxis2VDir(void) const;
91  Vector2d getVDirWeakAxis(void) const;
92 
93  bool hayAxil(const double &tol=1e-4) const;
94  bool isSubjectedToShear(const double &tol=1e-4) const;
95  bool isSubjectedToBending(const double &tol=1e-4) const;
96  bool hayTorsor(const double &tol=1e-4) const;
97 
98  };
99 
100 } // end of XC namespace
101 
102 
103 #endif
Base class for force deformation section models.
Definition: SectionForceDeformation.h:86
const double & EIz(void) const
Returns the bending stiffness of the cross-section en torno the z axis.
Definition: PrismaticBarCrossSection.cc:140
const double & EA(void) const
Returns the section axial stiffness.
Definition: PrismaticBarCrossSection.cc:137
Float vector abstraction.
Definition: Vector.h:93
Line2d getInternalForcesAxis(void) const
Returns the axis that is aligned with the cross-section internal forces.
Definition: PrismaticBarCrossSection.cc:220
Vector2d getAxis1VDir(void) const
Returns the vector of the principal axis I.
Definition: PrismaticBarCrossSection.cc:168
bool hayAxil(const double &tol=1e-4) const
Returns true if the section is subjected to an axial force.
Definition: PrismaticBarCrossSection.cc:115
double getMz(void) const
Returns internal bending moment around z axis.
Definition: PrismaticBarCrossSection.cc:133
Vector2d getAxis2VDir(void) const
Returns the vector of the principal axis II.
Definition: PrismaticBarCrossSection.cc:174
PrismaticBarCrossSection & operator=(const PrismaticBarCrossSection &)
Assignment operator.
Definition: PrismaticBarCrossSection.cc:59
Pos2d getPointOnTensionedHalfPlane(void) const
Returns (if possible) a point in the tensioned region.
Definition: PrismaticBarCrossSection.cc:246
Pos2d getPointOnCompressedHalfPlane(void) const
Returns (if possible) a point in the compressed region.
Definition: PrismaticBarCrossSection.cc:250
PrismaticBarCrossSection(int tag, int classTag, MaterialHandler *mat_ldr=nullptr)
Constructor.
Definition: PrismaticBarCrossSection.cc:51
double getEI1(void) const
Returns the bending stiffness around the major principal axis of inertia.
Definition: PrismaticBarCrossSection.cc:156
int setInitialDeformationPlane(const DeformationPlane &)
Sets the plane that defines initial strains of the section.
Definition: PrismaticBarCrossSection.cc:70
double getEI2(void) const
Returns the bending stiffness en torno al principal axis of inertia menor.
Definition: PrismaticBarCrossSection.cc:161
virtual double getStrain(const double &y, const double &z=0) const
Returns strain at postion being passed as parameter.
Definition: PrismaticBarCrossSection.cc:95
Base class for beam-column cross sections.
Definition: PrismaticBarCrossSection.h:50
double getN(void) const
Returns internal axial force.
Definition: PrismaticBarCrossSection.cc:125
HalfPlane2d getTensionedHalfPlane(void) const
Returns the tensioned half-plane.
Definition: PrismaticBarCrossSection.cc:259
virtual double getCenterOfMassZ(void) const
Returns the coordenada «z» del centro de gravedad of the cross-section.
Definition: PrismaticBarCrossSection.cc:107
DeformationPlane getDeformationPlane(void) const
Returns the generalized strains vector of the cross-section.
Definition: PrismaticBarCrossSection.cc:88
bool hayTorsor(const double &tol=1e-4) const
Returns true if the section is subjected to a torsional force.
Definition: PrismaticBarCrossSection.cc:205
int setTrialDeformationPlane(const DeformationPlane &)
Sets the deformation plane of the section.
Definition: PrismaticBarCrossSection.cc:66
Deformation plane for a cross-section.
Definition: DeformationPlane.h:53
double getTheta(void) const
Returns the angle that defines un principal axis of inertia.
Definition: PrismaticBarCrossSection.cc:151
const double & EIyz(void) const
Returns the product of inertia multiplicado por el Young&#39;s modulus.
Definition: PrismaticBarCrossSection.cc:147
bool isSubjectedToBending(const double &tol=1e-4) const
Returns true if the section is subjected to a bending moment.
Definition: PrismaticBarCrossSection.cc:181
DeformationPlane getInitialDeformationPlane(void) const
Returns initial strain plane.
Definition: PrismaticBarCrossSection.cc:74
bool isSubjectedToShear(const double &tol=1e-4) const
Returns true if the section is subjected to a shearing force.
Definition: PrismaticBarCrossSection.cc:193
Vector2d getVDirWeakAxis(void) const
Returns the vector of the principal axis II.
Definition: PrismaticBarCrossSection.cc:177
Line2d getNeutralAxis(void) const
Returns the neutral axis.
Definition: PrismaticBarCrossSection.cc:215
Material handler (definition, searching,...).
Definition: MaterialHandler.h:45
virtual double getCenterOfMassY(void) const
Returns the coordenada «y» del centro de gravedad of the cross-section.
Definition: PrismaticBarCrossSection.cc:103
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
virtual const Vector & getGeneralizedStrainVector(const DeformationPlane &) const
Return the generalized strains vector that corresponds to the deformation plane being passed as param...
Definition: PrismaticBarCrossSection.cc:80
HalfPlane2d getCompressedHalfPlane(void) const
Returns the compressed half-plane.
Definition: PrismaticBarCrossSection.cc:268
PrincipalAxesOfInertia2D getInertiaAxes(void) const
Returns the principal axes of inertia of the cross-section.
Definition: PrismaticBarCrossSection.cc:165
double getMy(void) const
Returns internal bending moment around y axis.
Definition: PrismaticBarCrossSection.cc:129
const double & EIy(void) const
Returns the bending stiffness of the cross-section en torno the y axis.
Definition: PrismaticBarCrossSection.cc:143
Vector2d getVDirStrongAxis(void) const
Returns the vector of the principal axis I.
Definition: PrismaticBarCrossSection.cc:171
Pos2d getCenterOfMass(void) const
Returns the position of the cross-section centroid.
Definition: PrismaticBarCrossSection.cc:111