xc
FiberPtrDeque.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 //FiberPtrDeque.h
28 
29 #ifndef FiberPtrDeque_h
30 #define FiberPtrDeque_h
31 
32 #include "xc_utils/src/kernel/CommandEntity.h"
33 #include "xc_utils/src/geom/GeomObj.h"
34 #include <deque>
35 
36 class Ref3d3d;
37 class Pos2d;
38 class Line2d;
39 class Segment2d;
40 class Polygon2d;
41 class BND2d;
42 class HalfPlane2d;
43 
44 namespace XC {
45 class Fiber;
46 class Vector;
47 class FiberSection2d;
48 class FiberSectionBase;
49 class FiberSection3dBase;
50 class FiberSection3d;
51 class FiberSectionGJ;
52 class Matrix;
53 class Response;
54 class Parameter;
55 class Information;
56 class CrossSectionKR;
57 class GeomSection;
58 class DeformationPlane;
59 
60 enum ClaseEsfuerzo {SIMPLE_TENSION,COMPOSED_TENSION,FLEXION_SIMPLE,FLEXION_COMPUESTA,COMPRESION_SIMPLE,COMPRESION_COMPUESTA,ERROR};
61 
62 
64 //
66 class FiberPtrDeque: public CommandEntity, public std::deque<Fiber *>
67  {
68  public:
69  typedef std::deque<Fiber *> fiber_ptrs_dq;
70 
71  protected:
72 
73  double yCenterOfMass;
74  double zCenterOfMass;
75 
76  mutable std::deque<std::list<Polygon2d> > dq_ac_effective;
77  mutable std::deque<double> recubs;
78  mutable std::deque<double> seps;
79 
80  inline void resize(const size_t &nf)
81  { fiber_ptrs_dq::resize(nf,nullptr); }
82 
83  inline reference operator[](const size_t &i)
84  { return fiber_ptrs_dq::operator[](i); }
85 
86  FiberPtrDeque(const size_t &num= 0);
89 
90  private:
91  friend class FiberSectionBase;
92 
93  public:
94 
95  void push_back(Fiber *f);
96  inline size_t getNumFibers(void) const
97  { return size(); }
98 
99  const Fiber *findFiber(const int &tag) const;
100  Fiber *findFiber(const int &tag);
101  bool in(const Fiber *ptr) const;
102  inline const_reference operator[](const size_t &i) const
103  { return fiber_ptrs_dq::operator[](i); }
104 
105  inline const double &getCenterOfMassY(void) const
106  { return yCenterOfMass; }
107  inline const double &getCenterOfMassZ(void) const
108  { return zCenterOfMass; }
109  Pos2d getCenterOfMass(void) const;
110  inline double getRelativeY(const double &y) const
111  { return y-yCenterOfMass; }
112  inline double getRelativeZ(const double &z) const
113  { return z-zCenterOfMass; }
114 
115  GeomObj::list_Pos2d getPositions(void) const;
116 
117  bool isSubjectedToBending(const double &tol=1e-4) const;
118  double getResultant(void) const;
119  double getMz(const double &y0= 0.0) const;
120  double getMy(const double &z0= 0.0) const;
121  double getExcentricidadMz(const double &y0= 0.0) const;
122  double getExcentricidadMy(const double &z0= 0.0) const;
123  Vector2d getMomentVector(const double &y0=0.0,const double &z0=0.0) const;
124  Pos2d getResultantPosition(const double &y0=0.0,const double &z0=0.0) const;
125  Line2d getNeutralAxis(void) const;
126 
127  double getCompressionResultant(void) const;
128  double getCompressedFibersMz(const double &y0= 0.0) const;
129  double getCompressedFibersMy(const double &z0= 0.0) const;
130  const Vector &getCompressedFibersCentroid(void) const;
131  const Vector &getCentroidFibersWithStrainSmallerThan(const double &epsRef) const;
132 
133  double getTensionResultant(void) const;
134  double getTensionedFibersMz(const double &y0= 0.0) const;
135  double getTensionedFibersMy(const double &z0= 0.0) const;
136  const Vector &getTensionedFibersCentroid(void) const;
137  const Vector &getCentroidFibersWithStrainGreaterThan(const double &epsRef) const;
138 
139  int commitState(void);
140 
141  double getStrainMin(void) const;
142  double getStrainMax(void) const;
143  double getStrainMed(void) const;
144  double getStressMin(void) const;
145  double getStressMax(void) const;
146  double getStressMed(void) const;
148  const Vector &getDeformation(void) const;
149  ClaseEsfuerzo getClaseEsfuerzo(const double &tol= 1e-4) const;
150  bool isTensioned(void) const;
151  bool isBent(void) const;
152  bool isCompressed(void) const;
153  std::string getStrClaseEsfuerzo(const double &tol= 1e-4) const;
154  double getNeutralAxisDepth(const FiberSectionBase &) const;
155  Vector getLeverArmVector(void) const;
156  Segment2d getLeverArmSegment(void) const;
157  double getMechanicLeverArm(void) const;
158  Line2d getBendingPlaneTrace(void) const;
159  Line2d getTensionedPlaneTrace(void) const;
160  Line2d getCompressedPlaneTrace(void) const;
161  double computeFibersEffectiveConcreteArea(const std::list<Polygon2d> &,const double &factor= 15) const;
162  const std::list<Polygon2d> &getFiberEffectiveConcretAreaContour(const size_t &i) const;
163  double getFiberEffectiveConcreteArea(const size_t &i) const;
164  double getFibersEffectiveConcreteArea(void) const;
165  void computeCovers(const GeomSection &) const;
166  void computeSpacement(void) const;
167  const double &getFiberCover(const size_t &i) const;
168  const double &getFiberSpacing(const size_t &i) const;
169  double getEquivalentDiameterOfFiber(const size_t &i) const;
170  double getSigmaSRAtFiber(const size_t &,const double &,const double &,const double &) const;
171  double getAverageDistanceBetweenFibers(void) const;
172  int updateCenterOfMass(void);
173 
179  const Matrix &getInitialTangent(const FiberSection2d &) const;
180  const Vector &getStressResultantSensitivity(int gradNumber, bool conditional);
181  int commitSensitivity(const XC::Vector& defSens, int gradNumber, int numGrads);
182 
188  const Matrix &getInitialTangent(const FiberSection3d &) const;
189 
195  const Matrix &getInitialTangent(const FiberSectionGJ &) const;
196 
197  Response *setResponse(const std::vector<std::string> &argv, Information &sectInfo);
198 
199  void SelMatTag(const int &matTag,FiberPtrDeque &,bool clear= true);
200 
201  //size_t IMaxProp(const std::string &nmb_prop) const;
202  //size_t IMinProp(const std::string &nmb_prop) const;
203  size_t getFiberWithMaxCoord(const Ref3d3d &r,const size_t &iCoo) const;
204  size_t getFiberWithMinCoord(const Ref3d3d &r,const size_t &iCoo) const;
205 
206  int setParameter(const int &,const std::vector<std::string> &, Parameter &);
207  int updateParameter(const int &,int parameterID, Information &info);
208  int activateParameter(int passedParameterID);
209 
210  double GetYMin(void) const;
211  double GetZMin(void) const;
212  double GetYMax(void) const;
213  double GetZMax(void) const;
214  Pos2d GetPMax(void) const;
215  Pos2d GetPMin(void) const;
216  BND2d Bnd(void) const;
217  double getArea(const double &factor= 1.0) const;
218  double getAreaHomogenizedSection(const double &E0) const;
219  const Vector &getCenterOfMassHomogenizedSection(const double &E0) const;
220  //Moments of inertia.
221  double getIz(const double &factor= 1.0,const double &y0= 0.0) const;
222  double getIy(const double &factor= 1.0,const double &z0= 0.0) const;
223  double getPyz(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
224  double getI1(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
225  double getI2(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
226  double getTh1(const double &y0= 0.0,const double &z0= 0.0) const;
227  Vector getAxis1(const double &y0= 0.0,const double &z0= 0.0) const;
228  Vector getAxis2(const double &y0= 0.0,const double &z0= 0.0) const;
229  double getIyHomogenizedSection(const double &) const;
230  double getIzHomogenizedSection(const double &) const;
231  double getPyzHomogenizedSection(const double &) const;
232  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &) const;
233  Matrix &getIHomogenizedSection(const double &) const;
234  Matrix &getIHomogenizedSection(const double &,const Pos2d &o) const;
235  double getIHomogenizedSection(const double &,const Pos2d &O,const Vector &e) const;
236  double getIHomogenizedSection(const double &,const Line2d &r) const;
237  //Static moments.
238  double getSzPos(const double &yf,const double &y0,const double &factor= 1.0) const;
239  double getSzNeg(const double &yf,const double &y0,const double &factor= 1.0) const;
240  double getSyPos(const double &zf,const double &z0,const double &factor= 1.0) const;
241  double getSyNeg(const double &zf,const double &z0,const double &factor= 1.0) const;
242  double getSPosHomogenizedSection(const double &E0,const HalfPlane2d &sp) const;
243  double getSNegHomogenizedSection(const double &E0,const HalfPlane2d &sp) const;
244 
246  inline double getIpolar(const double &factor= 1.0) const
247  { return getIz(factor,yCenterOfMass)+getIy(factor,zCenterOfMass); }
250  inline double getiz(const double factor= 1.0) const
251  { return getIz(factor,yCenterOfMass)/getArea(factor); }
254  inline double getiy(const double factor= 1.0) const
255  { return getIy(factor,zCenterOfMass)/getArea(factor); }
256  size_t nearest_fiber(const double &y,const double &z) const;
257 
258  void Print(std::ostream &s,const int &flag);
259  };
260 } // end of XC namespace
261 
262 #endif
double getAverageDistanceBetweenFibers(void) const
Return the average distance between fibers.
Definition: FiberPtrDeque.cc:1326
Fiber section model in a bi-dimensional space.
Definition: FiberSection2d.h:74
Line2d getTensionedPlaneTrace(void) const
Return the intercept of a plane perpendicular to the bending plane through the tensions centroid with...
Definition: FiberPtrDeque.cc:1292
double getStressMed(void) const
Return the average stress.
Definition: FiberPtrDeque.cc:1121
Cross section geometry.
Definition: GeomSection.h:63
const Vector & getCenterOfMassHomogenizedSection(const double &E0) const
Return the coordinates of the homogenized section centroid.
Definition: FiberPtrDeque.cc:314
const Vector & getDeformation(void) const
Return the generalized strain vector.
Definition: FiberPtrDeque.cc:1084
double getiz(const double factor=1.0) const
Returns the radius of gyration with respect to the axis parallel to z que passes through the centroid...
Definition: FiberPtrDeque.h:250
Float vector abstraction.
Definition: Vector.h:93
Vector2d getMomentVector(const double &y0=0.0, const double &z0=0.0) const
Return the moment vector of the fibers forces with respect to the axis parallel to "y" and z that pas...
Definition: FiberPtrDeque.cc:741
int setInitialSectionDeformation(const FiberSection2d &)
Sets initial strains values.
Definition: FiberPtrDeque.cc:1566
double getPyz(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Return the product of inertia with respect to the parallel axes at distances (y0,z0) from origin...
Definition: FiberPtrDeque.cc:278
Base class for fiber sections.
Definition: FiberSectionBase.h:57
int updateCenterOfMass(void)
Updates the centroid position.
Definition: FiberPtrDeque.cc:1498
size_t getFiberWithMinCoord(const Ref3d3d &r, const size_t &iCoo) const
Return the identifier of the fiber with minimum value for the iCoo coordinate with respect to the sys...
Definition: FiberPtrDeque.cc:2238
double getIz(const double &factor=1.0, const double &y0=0.0) const
Return the moment of inertia with respect to an axis parallel the z axis at a distance y0 from the or...
Definition: FiberPtrDeque.cc:246
size_t getFiberWithMaxCoord(const Ref3d3d &r, const size_t &iCoo) const
Return the identifier of the fiber with maximum value for the iCoo coordinate with respect to the sys...
Definition: FiberPtrDeque.cc:2207
Information about an element.
Definition: Information.h:80
bool isSubjectedToBending(const double &tol=1e-4) const
Returns true if the section is subject to a under bending moment.
Definition: FiberPtrDeque.cc:766
void computeSpacement(void) const
Computes the distance from each fiber to the nearest one.
Definition: FiberPtrDeque.cc:1451
double getSzNeg(const double &yf, const double &y0, const double &factor=1.0) const
Return the static moment of the cell areas that rely below yf (y_fiber-yf < 0) with respect to the ax...
Definition: FiberPtrDeque.cc:511
Definition: Response.h:71
FiberPtrDeque(const size_t &num=0)
Constructor.
Definition: FiberPtrDeque.cc:57
double getFiberEffectiveConcreteArea(const size_t &i) const
Return the effective area value of the fiber which index is being passed as parameter.
Definition: FiberPtrDeque.cc:1414
double getResultant(void) const
Return the resultant of stresses.
Definition: FiberPtrDeque.cc:700
double getI1(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Return the major principal moment of inertia.
Definition: FiberPtrDeque.cc:633
bool isCompressed(void) const
Returns true if all the fibers are compressed.
Definition: FiberPtrDeque.cc:1178
GeomObj::list_Pos2d getPositions(void) const
Returns fibers positions.
Definition: FiberPtrDeque.cc:207
double getArea(const double &factor=1.0) const
Return the sum of the fibers areas multiplied by the factor.
Definition: FiberPtrDeque.cc:235
std::string getStrClaseEsfuerzo(const double &tol=1e-4) const
Return a string identifying the internal stress state.
Definition: FiberPtrDeque.cc:1182
double getEquivalentDiameterOfFiber(const size_t &i) const
Return the diameter of the circle that has the same area of the fiber which index is being passed as ...
Definition: FiberPtrDeque.cc:1476
double getMz(const double &y0=0.0) const
Return the moment of the fibers forces with respect to the axis parallel to "z" that passes through (...
Definition: FiberPtrDeque.cc:711
void computeCovers(const GeomSection &) const
Computes the cover of the fibers.
Definition: FiberPtrDeque.cc:1438
bool in(const Fiber *ptr) const
Returns true if the pointer is in the container.
Definition: FiberPtrDeque.cc:110
double getI2(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Return the moment of inertia principal menor.
Definition: FiberPtrDeque.cc:644
double getCompressedFibersMy(const double &z0=0.0) const
Return the moment of the compressed fibers with respect to the y axis.
Definition: FiberPtrDeque.cc:858
double getIHomogenizedSection(const double &, const unsigned short int &, const unsigned short int &) const
Return the i,j component of the tensor of inertia calculado with respect to the CENTER_OF_MASS.
Definition: FiberPtrDeque.cc:427
int revertToStart(FiberSection2d &, CrossSectionKR &)
Return the fibers to its initial state.
Definition: FiberPtrDeque.cc:1626
double getStrainMin(void) const
Return the min strain.
Definition: FiberPtrDeque.cc:1019
double getStressMin(void) const
Return the minimal stress.
Definition: FiberPtrDeque.cc:1091
void SelMatTag(const int &matTag, FiberPtrDeque &, bool clear=true)
Return the subfiber set of this one which material tag is being passed as parameter.
Definition: FiberPtrDeque.cc:998
double getStressMax(void) const
Return the minimal stress.
Definition: FiberPtrDeque.cc:1106
Response * setResponse(const std::vector< std::string > &argv, Information &sectInfo)
Gets one of the response parameters of the section.
Definition: FiberPtrDeque.cc:2014
double getStrainMed(void) const
Return the average strain.
Definition: FiberPtrDeque.cc:1049
double getTensionedFibersMy(const double &z0=0.0) const
Return the moment of the tensioned fibers with respect to the y axis.
Definition: FiberPtrDeque.cc:898
double getMy(const double &z0=0.0) const
Return the moment of the fibers forces with respect to the axis parallel to "y" that passes through (...
Definition: FiberPtrDeque.cc:722
double getFibersEffectiveConcreteArea(void) const
Return the sum of fibers effective areas.
Definition: FiberPtrDeque.cc:1424
double yCenterOfMass
Y coordinate of the centroid.
Definition: FiberPtrDeque.h:73
double getCompressionResultant(void) const
Return the resultant of the compresiones in the fibers.
Definition: FiberPtrDeque.cc:777
double getStrainMax(void) const
Return the max strain.
Definition: FiberPtrDeque.cc:1034
double zCenterOfMass
Z coordinate of the centroid.
Definition: FiberPtrDeque.h:74
Deformation plane for a cross-section.
Definition: DeformationPlane.h:53
const Fiber * findFiber(const int &tag) const
Search for the fiber identified by the parameter.
Definition: FiberPtrDeque.cc:82
Fiber section model in a three-dimensional space.
Definition: FiberSection3d.h:72
void resize(const size_t &nf)
Spacing for each fiber.
Definition: FiberPtrDeque.h:80
Section fiber.
Definition: Fiber.h:89
double getiy(const double factor=1.0) const
Returns the radius of gyration with respect to the axis parallel to y que passes through the centroid...
Definition: FiberPtrDeque.h:254
const Vector & getCentroidFibersWithStrainSmallerThan(const double &epsRef) const
Return the centroid of the fibers whose strain is less than the value passed as parameter.
Definition: FiberPtrDeque.cc:833
double getPyzHomogenizedSection(const double &) const
Returns homogenized product of inertia of the cross-section with respect to the axis parallel to y an...
Definition: FiberPtrDeque.cc:403
double computeFibersEffectiveConcreteArea(const std::list< Polygon2d > &, const double &factor=15) const
Computes crack effective areas on the fibers that represent reinforcing bars (see article 49...
Definition: FiberPtrDeque.cc:1347
double getExcentricidadMz(const double &y0=0.0) const
Return the eccentricity of Mz (see getMz).
Definition: FiberPtrDeque.cc:732
double getExcentricidadMy(const double &z0=0.0) const
Return the eccentricity of My (see getMy).
Definition: FiberPtrDeque.cc:736
double GetZMin(void) const
Returns minimal z coordinate value of the fibers.
Definition: FiberPtrDeque.cc:144
Stiffness matrix and resultant vector for a section.
Definition: CrossSectionKR.h:40
Fiber pointers container.
Definition: FiberPtrDeque.h:66
Vector getAxis1(const double &y0=0.0, const double &z0=0.0) const
Return the direction of the major axis.
Definition: FiberPtrDeque.cc:680
const Vector & getCentroidFibersWithStrainGreaterThan(const double &epsRef) const
Return the centroid of the fibers whose strain is greater than the value being passed as parameter...
Definition: FiberPtrDeque.cc:934
int revertToLastCommit(FiberSection2d &, CrossSectionKR &)
Return the fibers to its last commited state.
Definition: FiberPtrDeque.cc:1614
const Matrix & getInitialTangent(const FiberSection2d &) const
Return the initial tangent stiffness matrix.
Definition: FiberPtrDeque.cc:1638
std::deque< double > seps
Cover for each fiber.
Definition: FiberPtrDeque.h:78
bool isTensioned(void) const
Returns true if all the fibers are tensioned.
Definition: FiberPtrDeque.cc:1170
double GetYMax(void) const
Returns maximal y coordinate value of the fibers.
Definition: FiberPtrDeque.cc:165
Vector getAxis2(const double &y0=0.0, const double &z0=0.0) const
Return the direction of the minor axis.
Definition: FiberPtrDeque.cc:690
double getTensionResultant(void) const
Return the resultant of the tensions in the fibers.
Definition: FiberPtrDeque.cc:868
DeformationPlane getDeformationPlane(void) const
Return the deformation plane (least squares adjustment).
Definition: FiberPtrDeque.cc:1066
void push_back(Fiber *f)
Adds the fiber to the container.
Definition: FiberPtrDeque.cc:77
bool isBent(void) const
Returns true if some fibers are tensioned and other are compressed (bending with or without axial for...
Definition: FiberPtrDeque.cc:1174
size_t nearest_fiber(const double &y, const double &z) const
Return the fiber that is closest to the given position.
Definition: FiberPtrDeque.cc:958
double getIzHomogenizedSection(const double &) const
Returns homogenized moment of inertia of the cross-section with respect to the axis parallel to z pas...
Definition: FiberPtrDeque.cc:376
Pos2d getResultantPosition(const double &y0=0.0, const double &z0=0.0) const
Return the position of the fibers forces resultant.
Definition: FiberPtrDeque.cc:745
double GetYMin(void) const
Returns minimal y coordinate value of the fibers.
Definition: FiberPtrDeque.cc:123
double getSzPos(const double &yf, const double &y0, const double &factor=1.0) const
Return the static moment of the cell areas that rely above yf (y_fiber-yf > 0) with respect to the ax...
Definition: FiberPtrDeque.cc:487
double getSPosHomogenizedSection(const double &E0, const HalfPlane2d &sp) const
Return the static moments of the fiber areas inside the halfplane being passed as parameter...
Definition: FiberPtrDeque.cc:576
const double & getFiberSpacing(const size_t &i) const
Return the spacing of the i-th fiber.
Definition: FiberPtrDeque.cc:1465
double getIy(const double &factor=1.0, const double &z0=0.0) const
Return the moment of inertia with respect to an axis parallel the y axis at a distance z0 from the or...
Definition: FiberPtrDeque.cc:262
double getSyNeg(const double &zf, const double &z0, const double &factor=1.0) const
Return the static moment of the cell areas that rely below zf (z_fiber-zf < 0) with respect to the ax...
Definition: FiberPtrDeque.cc:556
double getTensionedFibersMz(const double &y0=0.0) const
Return the moment of the tensioned fibers with respect to the z axis.
Definition: FiberPtrDeque.cc:887
double getIyHomogenizedSection(const double &) const
Returns homogenized moment of inertia of the cross-section with respect to the axis parallel to y pas...
Definition: FiberPtrDeque.cc:349
const Vector & getCompressedFibersCentroid(void) const
Return the passing point of the stress resultant for stresses that are lower than «ref» (zero by defa...
Definition: FiberPtrDeque.cc:808
BND2d Bnd(void) const
Return the bounding rectangle.
Definition: FiberPtrDeque.cc:231
Line2d getBendingPlaneTrace(void) const
Return the intercept of the bending plane with the plane that contains the section.
Definition: FiberPtrDeque.cc:1286
double getSyPos(const double &zf, const double &z0, const double &factor=1.0) const
Return the static moment of the cell areas that rely above zf (z_fiber-zf > 0) with respect to the ax...
Definition: FiberPtrDeque.cc:535
Vector getLeverArmVector(void) const
Returns a vector oriented from the tension centroid.
Definition: FiberPtrDeque.cc:1248
Line2d getNeutralAxis(void) const
Return an approximation of the neutral axis.
Definition: FiberPtrDeque.cc:752
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
const double & getFiberCover(const size_t &i) const
Return the value of the concrete cover for the i-th fiber.
Definition: FiberPtrDeque.cc:1455
double getCompressedFibersMz(const double &y0=0.0) const
Return the moment of the compressed fibers with respect to the z axis.
Definition: FiberPtrDeque.cc:796
Pos2d GetPMax(void) const
Return the upper right corner of the bounding rectangle.
Definition: FiberPtrDeque.cc:223
Matrix of floats.
Definition: Matrix.h:108
double getTh1(const double &y0=0.0, const double &z0=0.0) const
Return the angle between major principal axis and the y axis.
Definition: FiberPtrDeque.cc:658
int updateKRCenterOfMass(FiberSection2d &, CrossSectionKR &)
Update the parameters center of mass, stiffness and resultant.
Definition: FiberPtrDeque.cc:1521
double getSNegHomogenizedSection(const double &E0, const HalfPlane2d &sp) const
Return the static moments of the fiber areas outside the halfplane being passed as parameter...
Definition: FiberPtrDeque.cc:603
double getNeutralAxisDepth(const FiberSectionBase &) const
Returns neutral axisr depth, i.
Definition: FiberPtrDeque.cc:1221
Definition: Parameter.h:65
Fiber section with torsional stiffness.
Definition: FiberSectionGJ.h:72
const std::list< Polygon2d > & getFiberEffectiveConcretAreaContour(const size_t &i) const
Return the contours of the effective area of the fiber which index is being passed as parameter...
Definition: FiberPtrDeque.cc:1409
FiberPtrDeque & operator=(const FiberPtrDeque &)
Assignment operator.
Definition: FiberPtrDeque.cc:67
double getAreaHomogenizedSection(const double &E0) const
Returns homogenized section area.
Definition: FiberPtrDeque.cc:293
const Vector & getTensionedFibersCentroid(void) const
Return the centroid of the tensioned fibers, if there is no tensioned fibers returns (0...
Definition: FiberPtrDeque.cc:909
int setTrialSectionDeformation(const FiberSection2d &, CrossSectionKR &)
Sets trial strains values.
Definition: FiberPtrDeque.cc:1583
Line2d getCompressedPlaneTrace(void) const
Return the intercept of a plane perpendicular to the bending plane through the compressions centroid ...
Definition: FiberPtrDeque.cc:1308
std::deque< std::list< Polygon2d > > dq_ac_effective
(Where appropriate) effective concrete areas for each fiber.
Definition: FiberPtrDeque.h:76
double GetZMax(void) const
Returns maximal z coordinate value of the fibers.
Definition: FiberPtrDeque.cc:186
double getSigmaSRAtFiber(const size_t &, const double &, const double &, const double &) const
Return the stress on the i-th fiber when cracking occurs in its effective area.
Definition: FiberPtrDeque.cc:1483
Pos2d GetPMin(void) const
Return the lower left corner of the bounding rectangle.
Definition: FiberPtrDeque.cc:227
Pos2d getCenterOfMass(void) const
Return the position of the centroid.
Definition: FiberPtrDeque.cc:1214
double getIpolar(const double &factor=1.0) const
Returns the polar moment of inertia with respect to G.
Definition: FiberPtrDeque.h:246
Segment2d getLeverArmSegment(void) const
Returns a segment from the tension centroid to the compression centroid.
Definition: FiberPtrDeque.cc:1256
double getMechanicLeverArm(void) const
Return the lever arm of forces in the section.
Definition: FiberPtrDeque.cc:1322