xc
FiberPtrDeque.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 //FiberPtrDeque.h
29 
30 #ifndef FiberPtrDeque_h
31 #define FiberPtrDeque_h
32 
33 #include "utility/kernel/CommandEntity.h"
34 #include "utility/geom/GeomObj.h"
35 #include "utility/actor/actor/MovableObject.h"
36 #include <deque>
37 
38 class Ref3d3d;
39 class Pos2d;
40 class Line2d;
41 class Segment2d;
42 class Polygon2d;
43 class BND2d;
44 class HalfPlane2d;
45 
46 namespace XC {
47 class Fiber;
48 class Vector;
49 class FiberSection2d;
50 class FiberSectionBase;
51 class FiberSection3dBase;
52 class FiberSection3d;
53 class FiberSectionGJ;
54 class Matrix;
55 class Response;
56 class Parameter;
57 class Information;
58 class CrossSectionKR;
59 class SectionGeometry;
60 class DeformationPlane;
61 
62 enum ClaseEsfuerzo {SIMPLE_TENSION,COMPOSED_TENSION,FLEXION_SIMPLE,FLEXION_COMPUESTA,SIMPLE_COMPRESSION,COMPOSED_COMPRESSION,ERROR};
63 
64 
66 //
68 class FiberPtrDeque: public CommandEntity, public std::deque<Fiber *>, public MovableObject
69  {
70  public:
71  typedef std::deque<Fiber *> fiber_ptrs_dq;
72 
73  protected:
74 
75  double yCenterOfMass;
76  double zCenterOfMass;
77 
78  int sendData(Communicator &);
79  int recvData(const Communicator &);
80 
81  mutable std::deque<std::list<Polygon2d> > dq_ac_effective;
82  mutable std::deque<double> recubs;
83  mutable std::deque<double> seps;
84 
85  inline void resize(const size_t &nf)
86  { fiber_ptrs_dq::resize(nf,nullptr); }
87 
88  inline reference operator[](const size_t &i)
89  { return fiber_ptrs_dq::operator[](i); }
90 
91  FiberPtrDeque(const size_t &num= 0);
94 
95  private:
96  friend class FiberSectionBase;
97 
98  public:
99  void push_back(Fiber *f);
100  inline size_t getNumFibers(void) const
101  { return size(); }
102 
103  const Fiber *findFiber(const int &tag) const;
104  Fiber *findFiber(const int &tag);
105  bool in(const Fiber *ptr) const;
106  inline const_reference operator[](const size_t &i) const
107  { return fiber_ptrs_dq::operator[](i); }
108 
109  inline const double &getCenterOfMassY(void) const
110  { return yCenterOfMass; }
111  inline const double &getCenterOfMassZ(void) const
112  { return zCenterOfMass; }
113  Pos2d getCenterOfMass(void) const;
114  inline double getRelativeY(const double &y) const
115  { return y-yCenterOfMass; }
116  inline double getRelativeZ(const double &z) const
117  { return z-zCenterOfMass; }
118 
119  GeomObj::list_Pos2d getPositions(void) const;
120 
121  bool isSubjectedToBending(const double &tol=1e-4) const;
122  double getResultant(void) const;
123  double getMz(const double &y0= 0.0) const;
124  double getMy(const double &z0= 0.0) const;
125  double getExcentricidadMz(const double &y0= 0.0) const;
126  double getExcentricidadMy(const double &z0= 0.0) const;
127  Vector2d getMomentVector(const double &y0=0.0,const double &z0=0.0) const;
128  Pos2d getResultantPosition(const double &y0=0.0,const double &z0=0.0) const;
129  Line2d getNeutralAxis(void) const;
130 
131  double getCompressionResultant(void) const;
132  double getCompressedFibersMz(const double &y0= 0.0) const;
133  double getCompressedFibersMy(const double &z0= 0.0) const;
134  const Vector &getCompressedFibersCentroid(void) const;
135  const Vector &getCentroidFibersWithStrainSmallerThan(const double &epsRef) const;
136 
137  double getTensionResultant(void) const;
138  double getTensionedFibersMz(const double &y0= 0.0) const;
139  double getTensionedFibersMy(const double &z0= 0.0) const;
140  const Vector &getTensionedFibersCentroid(void) const;
141  const Vector &getCentroidFibersWithStrainGreaterThan(const double &epsRef) const;
142 
143  int commitState(void);
144 
145  double getStrainMin(void) const;
146  double getStrainMax(void) const;
147  double getStrainMed(void) const;
148  double getStressMin(void) const;
149  double getStressMax(void) const;
150  double getStressMed(void) const;
152  const Vector &getDeformation(void) const;
153  ClaseEsfuerzo getClaseEsfuerzo(const double &tol= 1e-4) const;
154  bool isTensioned(void) const;
155  bool isBent(void) const;
156  bool isCompressed(void) const;
157  std::string getStrClaseEsfuerzo(const double &tol= 1e-4) const;
158  double getNeutralAxisDepth(const FiberSectionBase &) const;
159  Vector getLeverArmVector(void) const;
160  Segment2d getLeverArmSegment(void) const;
161  double getMechanicLeverArm(void) const;
162  Line2d getBendingPlaneTrace(void) const;
163  Line2d getTensionedPlaneTrace(void) const;
164  Line2d getCompressedPlaneTrace(void) const;
165  double computeFibersEffectiveConcreteArea(const std::list<Polygon2d> &,const double &factor= 15) const;
166  const std::list<Polygon2d> &getFiberEffectiveConcretAreaContour(const size_t &i) const;
167  double getFiberEffectiveConcreteArea(const size_t &i) const;
168  double getFibersEffectiveConcreteArea(void) const;
169  void computeCovers(const SectionGeometry &) const;
170  void computeSpacement(void) const;
171  const double &getFiberCover(const size_t &i) const;
172  const double &getFiberSpacing(const size_t &i) const;
173  double getSigmaSRAtFiber(const size_t &,const double &,const double &,const double &) const;
174  double getAverageDistanceBetweenFibers(void) const;
175  int updateCenterOfMass(void);
176 
182  const Matrix &getInitialTangent(const FiberSection2d &) const;
183  const Vector &getStressResultantSensitivity(int gradNumber, bool conditional);
184  int commitSensitivity(const XC::Vector& defSens, int gradNumber, int numGrads);
185 
191  const Matrix &getInitialTangent(const FiberSection3d &) const;
192 
198  const Matrix &getInitialTangent(const FiberSectionGJ &) const;
199 
200  Response *setResponse(const std::vector<std::string> &argv, Information &sectInfo);
201 
202  void SelMatTag(const int &matTag,FiberPtrDeque &,bool clear= true);
203  std::set<int> getMatTags(void);
204  boost::python::list getMatTagsPy(void);
205 
206  //size_t IMaxProp(const std::string &prop_name) const;
207  //size_t IMinProp(const std::string &prop_name) const;
208  size_t getFiberWithMaxCoord(const Ref3d3d &r,const size_t &iCoo) const;
209  size_t getFiberWithMinCoord(const Ref3d3d &r,const size_t &iCoo) const;
210 
211  int setParameter(const std::vector<std::string> &, Parameter &);
212  int setParameter(const int &,const std::vector<std::string> &, Parameter &);
213  int updateParameter(const int &,int parameterID, Information &info);
214  int activateParameter(int passedParameterID);
215 
216  double GetYMin(void) const;
217  double GetZMin(void) const;
218  double GetYMax(void) const;
219  double GetZMax(void) const;
220  Pos2d getPMax(void) const;
221  Pos2d getPMin(void) const;
222  BND2d Bnd(void) const;
223  size_t nearest_fiber(const double &y,const double &z) const;
224  Fiber *getClosestFiber(const int matTag, const double &yCoord);
225  Fiber *getClosestFiber(const double &y, const double &z);
226  std::vector<double> getFiberAreas(void) const;
227  double getArea(const double &factor= 1.0) const;
228  double getAreaHomogenizedSection(const double &E0) const;
229  const Vector &getCenterOfMassHomogenizedSection(const double &E0) const;
230  //Moments of inertia.
231  double getIz(const double &factor= 1.0,const double &y0= 0.0) const;
232  double getIy(const double &factor= 1.0,const double &z0= 0.0) const;
233  double getPyz(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
234  double getI1(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
235  double getI2(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
236  double getTh1(const double &y0= 0.0,const double &z0= 0.0) const;
237  Vector getAxis1(const double &y0= 0.0,const double &z0= 0.0) const;
238  Vector getAxis2(const double &y0= 0.0,const double &z0= 0.0) const;
239  double getIyHomogenizedSection(const double &) const;
240  double getIzHomogenizedSection(const double &) const;
241  double getPyzHomogenizedSection(const double &) const;
242  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &) const;
243  Matrix &getIHomogenizedSection(const double &) const;
244  Matrix &getIHomogenizedSection(const double &,const Pos2d &o) const;
245  double getIHomogenizedSection(const double &,const Pos2d &O,const Vector &e) const;
246  double getIHomogenizedSection(const double &,const Line2d &r) const;
247  //Static moments.
248  double getSzPos(const double &yf,const double &y0,const double &factor= 1.0) const;
249  double getSzNeg(const double &yf,const double &y0,const double &factor= 1.0) const;
250  double getSyPos(const double &zf,const double &z0,const double &factor= 1.0) const;
251  double getSyNeg(const double &zf,const double &z0,const double &factor= 1.0) const;
252  double getSPosHomogenizedSection(const double &E0,const HalfPlane2d &sp) const;
253  double getSNegHomogenizedSection(const double &E0,const HalfPlane2d &sp) const;
254 
256  inline double getIpolar(const double &factor= 1.0) const
257  { return getIz(factor,yCenterOfMass)+getIy(factor,zCenterOfMass); }
260  inline double getiz(const double factor= 1.0) const
261  { return getIz(factor,yCenterOfMass)/getArea(factor); }
264  inline double getiy(const double factor= 1.0) const
265  { return getIy(factor,zCenterOfMass)/getArea(factor); }
266 
267  void Print(std::ostream &s,const int &flag) const;
268  int sendSelf(Communicator &);
269  int recvSelf(const Communicator &);
270  };
271 } // end of XC namespace
272 
273 #endif
double getAverageDistanceBetweenFibers(void) const
Return the average distance between fibers.
Definition: FiberPtrDeque.cc:1465
Fiber section model in a bi-dimensional space.
Definition: FiberSection2d.h:77
Line2d getTensionedPlaneTrace(void) const
Return the intercept of a plane perpendicular to the bending plane through the tensions centroid with...
Definition: FiberPtrDeque.cc:1431
double getStressMed(void) const
Return the average stress.
Definition: FiberPtrDeque.cc:1241
Fiber * getClosestFiber(const int matTag, const double &yCoord)
Return the fiber closest to y which has the material defined by matTag.
Definition: FiberPtrDeque.cc:172
const Vector & getCenterOfMassHomogenizedSection(const double &E0) const
Return the coordinates of the homogenized section centroid.
Definition: FiberPtrDeque.cc:409
const Vector & getDeformation(void) const
Return the generalized strain vector.
Definition: FiberPtrDeque.cc:1204
"boundary" en dos dimensiones.
Definition: BND2d.h:38
double getiz(const double factor=1.0) const
Returns the radius of gyration with respect to the axis parallel to z through the centroid...
Definition: FiberPtrDeque.h:260
Float vector abstraction.
Definition: Vector.h:94
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:843
int setInitialSectionDeformation(const FiberSection2d &)
Sets initial strains values.
Definition: FiberPtrDeque.cc:1710
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:373
Base class for fiber sections.
Definition: FiberSectionBase.h:58
int updateCenterOfMass(void)
Updates the centroid position.
Definition: FiberPtrDeque.cc:1634
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:2392
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:341
int setParameter(const std::vector< std::string > &, Parameter &)
Sets the value param to the parameter argv.
Definition: FiberPtrDeque.cc:2421
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:2361
Base class for position lists.
Definition: PolyPos.h:35
Information about an element.
Definition: Information.h:81
Communication parameters between processes.
Definition: Communicator.h:66
bool isSubjectedToBending(const double &tol=1e-4) const
Returns true if the section is subject to a under bending moment.
Definition: FiberPtrDeque.cc:868
void computeSpacement(void) const
Computes the distance from each fiber to the nearest one.
Definition: FiberPtrDeque.cc:1590
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:611
Base class response objects.
Definition: Response.h:81
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:1553
Posición en dos dimensiones.
Definition: Pos2d.h:41
Object that can move between processes.
Definition: MovableObject.h:100
double getResultant(void) const
Return the resultant of stresses.
Definition: FiberPtrDeque.cc:802
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 with respect to the axesis passing through y0...
Definition: FiberPtrDeque.cc:735
bool isCompressed(void) const
Returns true if all the fibers are compressed.
Definition: FiberPtrDeque.cc:1298
GeomObj::list_Pos2d getPositions(void) const
Returns fibers positions.
Definition: FiberPtrDeque.cc:291
double getArea(const double &factor=1.0) const
Return the sum of the fibers areas multiplied by the factor.
Definition: FiberPtrDeque.cc:330
Line in a two-dimensional space.
Definition: Line2d.h:61
std::string getStrClaseEsfuerzo(const double &tol=1e-4) const
Return a string identifying the internal stress state.
Definition: FiberPtrDeque.cc:1302
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:813
bool in(const Fiber *ptr) const
Returns true if the pointer is in the container.
Definition: FiberPtrDeque.cc:111
double getI2(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Return the minor principal moment of inertia with respect to the axesis passing through y0...
Definition: FiberPtrDeque.cc:746
double getCompressedFibersMy(const double &z0=0.0) const
Return the moment of the compressed fibers with respect to the y axis.
Definition: FiberPtrDeque.cc:973
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:527
int revertToStart(FiberSection2d &, CrossSectionKR &)
Return the fibers to its initial state.
Definition: FiberPtrDeque.cc:1770
boost::python::list getMatTagsPy(void)
Return the material tags of the fibers in a Python list.
Definition: FiberPtrDeque.cc:1129
int recvData(const Communicator &)
Receives object through the communicator argument.
Definition: FiberPtrDeque.cc:2510
double getStrainMin(void) const
Return the min strain.
Definition: FiberPtrDeque.cc:1139
double getStressMin(void) const
Return the minimal stress.
Definition: FiberPtrDeque.cc:1211
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:1087
double getStressMax(void) const
Return the minimal stress.
Definition: FiberPtrDeque.cc:1226
Response * setResponse(const std::vector< std::string > &argv, Information &sectInfo)
Gets one of the response parameters of the section.
Definition: FiberPtrDeque.cc:2168
Pos2d getPMin(void) const
Return the lower left corner of the bounding rectangle.
Definition: FiberPtrDeque.cc:311
double getStrainMed(void) const
Return the average strain.
Definition: FiberPtrDeque.cc:1169
Vector en dos dimensiones.
Definition: Vector2d.h:40
double getTensionedFibersMy(const double &z0=0.0) const
Return the moment of the tensioned fibers with respect to the y axis.
Definition: FiberPtrDeque.cc:1013
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:824
double getFibersEffectiveConcreteArea(void) const
Return the sum of fibers effective areas.
Definition: FiberPtrDeque.cc:1563
double yCenterOfMass
Y coordinate of the centroid.
Definition: FiberPtrDeque.h:75
double getCompressionResultant(void) const
Return the resultant of the compressions in the fibers.
Definition: FiberPtrDeque.cc:879
double getStrainMax(void) const
Return the max strain.
Definition: FiberPtrDeque.cc:1154
double zCenterOfMass
Z coordinate of the centroid.
Definition: FiberPtrDeque.h:76
Pos2d getPMax(void) const
Return the upper right corner of the bounding rectangle.
Definition: FiberPtrDeque.cc:307
std::set< int > getMatTags(void)
Return the material tags of the fibers.
Definition: FiberPtrDeque.cc:1108
Deformation plane for a cross-section.
Definition: DeformationPlane.h:54
const Fiber * findFiber(const int &tag) const
Search for the fiber identified by the parameter.
Definition: FiberPtrDeque.cc:83
Fiber section model in a three-dimensional space.
Definition: FiberSection3d.h:75
void resize(const size_t &nf)
Spacing for each fiber.
Definition: FiberPtrDeque.h:85
Section fiber.
Definition: Fiber.h:90
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: FiberPtrDeque.cc:2500
double getiy(const double factor=1.0) const
Returns the radius of gyration with respect to the axis parallel to y through the centroid...
Definition: FiberPtrDeque.h:264
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:935
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:503
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:1486
double getExcentricidadMz(const double &y0=0.0) const
Return the eccentricity of Mz (see getMz).
Definition: FiberPtrDeque.cc:834
double getExcentricidadMy(const double &z0=0.0) const
Return the eccentricity of My (see getMy).
Definition: FiberPtrDeque.cc:838
double GetZMin(void) const
Returns minimal z coordinate value of the fibers.
Definition: FiberPtrDeque.cc:228
Stiffness matrix and resultant vector for a section.
Definition: CrossSectionKR.h:42
Polígono en dos dimensiones.
Definition: Polygon2d.h:38
Fiber pointers container.
Definition: FiberPtrDeque.h:68
Vector getAxis1(const double &y0=0.0, const double &z0=0.0) const
Return the direction of the major axis.
Definition: FiberPtrDeque.cc:782
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:1049
Segment in a two-dimensional space.
Definition: Segment2d.h:38
int revertToLastCommit(FiberSection2d &, CrossSectionKR &)
Return the fibers to its last committed state.
Definition: FiberPtrDeque.cc:1758
const Matrix & getInitialTangent(const FiberSection2d &) const
Return the initial tangent stiffness matrix.
Definition: FiberPtrDeque.cc:1782
std::deque< double > seps
Cover for each fiber.
Definition: FiberPtrDeque.h:83
bool isTensioned(void) const
Returns true if all the fibers are tensioned.
Definition: FiberPtrDeque.cc:1290
Objet that can execute python scripts.
Definition: CommandEntity.h:40
double GetYMax(void) const
Returns maximal y coordinate value of the fibers.
Definition: FiberPtrDeque.cc:249
Vector getAxis2(const double &y0=0.0, const double &z0=0.0) const
Return the direction of the minor axis.
Definition: FiberPtrDeque.cc:792
double getTensionResultant(void) const
Return the resultant of the tensions in the fibers.
Definition: FiberPtrDeque.cc:983
DeformationPlane getDeformationPlane(void) const
Return the deformation plane (least squares adjustment).
Definition: FiberPtrDeque.cc:1186
void push_back(Fiber *f)
Adds the fiber to the container.
Definition: FiberPtrDeque.cc:78
int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: FiberPtrDeque.cc:2534
bool isBent(void) const
Returns true if some fibers are tensioned and other are compressed (bending with or without axial for...
Definition: FiberPtrDeque.cc:1294
size_t nearest_fiber(const double &y, const double &z) const
Return the index of the fiber that is closest to the given position.
Definition: FiberPtrDeque.cc:124
int activateParameter(int passedParameterID)
Activates the parameter identified by parameterID.
Definition: FiberPtrDeque.cc:2454
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:476
Pos2d getResultantPosition(const double &y0=0.0, const double &z0=0.0) const
Return the position of the fibers forces resultant.
Definition: FiberPtrDeque.cc:847
double GetYMin(void) const
Returns minimal y coordinate value of the fibers.
Definition: FiberPtrDeque.cc:207
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:587
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:676
const double & getFiberSpacing(const size_t &i) const
Return the spacing of the i-th fiber.
Definition: FiberPtrDeque.cc:1604
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:357
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:656
double getTensionedFibersMz(const double &y0=0.0) const
Return the moment of the tensioned fibers with respect to the z axis.
Definition: FiberPtrDeque.cc:1002
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:449
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:910
BND2d Bnd(void) const
Return the bounding rectangle.
Definition: FiberPtrDeque.cc:315
Line2d getBendingPlaneTrace(void) const
Return the intercept of the bending plane with the plane that contains the section.
Definition: FiberPtrDeque.cc:1425
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:635
Vector getLeverArmVector(void) const
Returns a vector oriented from the tension centroid.
Definition: FiberPtrDeque.cc:1368
Line2d getNeutralAxis(void) const
Return an approximation of the neutral axis.
Definition: FiberPtrDeque.cc:854
Half plane in a two-dimensional space.
Definition: HalfPlane2d.h:38
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
const double & getFiberCover(const size_t &i) const
Return the value of the concrete cover for the i-th fiber.
Definition: FiberPtrDeque.cc:1594
double getCompressedFibersMz(const double &y0=0.0) const
Return the moment of the compressed fibers with respect to the z axis.
Definition: FiberPtrDeque.cc:898
Matrix of floats.
Definition: Matrix.h:111
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:760
int updateKRCenterOfMass(FiberSection2d &, CrossSectionKR &)
Update the parameters center of mass, stiffness and resultant.
Definition: FiberPtrDeque.cc:1662
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:704
double getNeutralAxisDepth(const FiberSectionBase &) const
Returns neutral axisr depth, i.
Definition: FiberPtrDeque.cc:1341
Parameter.
Definition: Parameter.h:68
Fiber section with torsional stiffness.
Definition: FiberSectionGJ.h:73
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:1548
FiberPtrDeque & operator=(const FiberPtrDeque &)
Assignment operator.
Definition: FiberPtrDeque.cc:67
double getAreaHomogenizedSection(const double &E0) const
Returns homogenized section area.
Definition: FiberPtrDeque.cc:388
const Vector & getTensionedFibersCentroid(void) const
Return the centroid of the tensioned fibers, if there is no tensioned fibers returns (0...
Definition: FiberPtrDeque.cc:1024
int setTrialSectionDeformation(const FiberSection2d &, CrossSectionKR &)
Sets trial strains values.
Definition: FiberPtrDeque.cc:1727
Cross section geometry.
Definition: SectionGeometry.h:65
Line2d getCompressedPlaneTrace(void) const
Return the intercept of a plane perpendicular to the bending plane through the compressions centroid ...
Definition: FiberPtrDeque.cc:1447
std::deque< std::list< Polygon2d > > dq_ac_effective
(Where appropriate) effective concrete areas for each fiber.
Definition: FiberPtrDeque.h:81
int commitState(void)
Commit the state of the material.
Definition: FiberPtrDeque.cc:1700
double GetZMax(void) const
Returns maximal z coordinate value of the fibers.
Definition: FiberPtrDeque.cc:270
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:1619
void computeCovers(const SectionGeometry &) const
Computes the cover of the fibers.
Definition: FiberPtrDeque.cc:1577
Pos2d getCenterOfMass(void) const
Return the position of the centroid.
Definition: FiberPtrDeque.cc:1334
int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: FiberPtrDeque.cc:2520
double getIpolar(const double &factor=1.0) const
Returns the polar moment of inertia with respect to G.
Definition: FiberPtrDeque.h:256
Three-dimensional reference system defined in a three-dimensional space.
Definition: Ref3d3d.h:39
Segment2d getLeverArmSegment(void) const
Returns a segment from the tension centroid to the compression centroid.
Definition: FiberPtrDeque.cc:1376
double getMechanicLeverArm(void) const
Return the lever arm of forces in the section.
Definition: FiberPtrDeque.cc:1461
std::vector< double > getFiberAreas(void) const
Return the areas of each fiber.
Definition: FiberPtrDeque.cc:320