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 
35 
36 #include "material/section/SectionForceDeformation.h"
37 
38 class HalfPlane2d;
39 class Line2d;
40 class Pos2d;
41 class Vector2d;
42 
43 namespace XC {
44 
45 class DeformationPlane;
46 
51  {
52 
53  public:
54  PrismaticBarCrossSection(int tag,int classTag,MaterialHandler *mat_ldr= nullptr);
55 
58  virtual const Vector &getGeneralizedStrainVector(const DeformationPlane &) const;
61  virtual double getStrain(const double &y,const double &z= 0) const;
62 
63  double getN(void) const;
64  double getMy(void) const;
65  double getMz(void) const;
66 
67  virtual double getCenterOfMassY(void) const;
68  virtual double getCenterOfMassZ(void) const;
69  Pos2d getCenterOfMass(void) const;
70  Line2d getNeutralAxis(void) const;
71  Line2d getInternalForcesAxis(void) const;
78 
79  virtual const double &EA(void) const;
80  virtual const double &EIz(void) const;
81  virtual const double &EIy(void) const;
82  virtual const double &EIyz(void) const;
83  virtual const double &GAy(void) const;
84  virtual const double &GAz(void) const;
85  virtual const double &GJ(void) const;
86  double getTheta(void) const;
87  double getEI1(void) const;
88  double getEI2(void) const;
90  Vector2d getAxis1VDir(void) const;
91  Vector2d getVDirStrongAxis(void) const;
92  Vector2d getAxis2VDir(void) const;
93  Vector2d getVDirWeakAxis(void) const;
94 
95  bool hayAxil(const double &tol=1e-4) const;
96  bool isSubjectedToShear(const double &tol=1e-4) const;
97  bool isSubjectedToBending(const double &tol=1e-4) const;
98  bool hayTorsor(const double &tol=1e-4) const;
99 
100  };
101 
102 } // end of XC namespace
103 
104 
105 #endif
Base class for force deformation section models.
Definition: SectionForceDeformation.h:88
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
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:285
Vector2d getAxis1VDir(void) const
Returns the vector of the principal axis I.
Definition: PrismaticBarCrossSection.cc:233
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:239
Pos2d getPointOnTensionedHalfPlane(void) const
Returns (if possible) a point in the tensioned region.
Definition: PrismaticBarCrossSection.cc:311
Pos2d getPointOnCompressedHalfPlane(void) const
Returns (if possible) a point in the compressed region.
Definition: PrismaticBarCrossSection.cc:315
virtual const double & GAz(void) const
Returns the shear stiffness along z axis.
Definition: PrismaticBarCrossSection.cc:194
virtual const double & GJ(void) const
Returns the torsional stiffness.
Definition: PrismaticBarCrossSection.cc:205
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:221
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:226
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:50
double getN(void) const
Returns internal axial force.
Definition: PrismaticBarCrossSection.cc:133
HalfPlane2d getTensionedHalfPlane(void) const
Returns the tensioned half-plane.
Definition: PrismaticBarCrossSection.cc:324
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:183
bool hayTorsor(const double &tol=1e-4) const
Returns true if the section is subjected to a torsional force.
Definition: PrismaticBarCrossSection.cc:270
Vector en dos dimensiones.
Definition: Vector2d.h:40
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:216
virtual const double & EIyz(void) const
Returns the product of inertia multiplied by the Young modulus.
Definition: PrismaticBarCrossSection.cc:172
bool isSubjectedToBending(const double &tol=1e-4) const
Returns true if the section is subjected to a bending moment.
Definition: PrismaticBarCrossSection.cc:246
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:258
Vector2d getVDirWeakAxis(void) const
Returns the vector of the principal axis II.
Definition: PrismaticBarCrossSection.cc:242
Principals axes of inertia in planar geometry.
Definition: PrincipalAxesOfInertia2D.h:34
Line2d getNeutralAxis(void) const
Returns the neutral axis.
Definition: PrismaticBarCrossSection.cc:280
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
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:333
PrincipalAxesOfInertia2D getInertiaAxes(void) const
Returns the principal axes of inertia of the cross-section.
Definition: PrismaticBarCrossSection.cc:230
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:236
Pos2d getCenterOfMass(void) const
Returns the position of the cross-section centroid.
Definition: PrismaticBarCrossSection.cc:119