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 
65 
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  bool needsUpdate(void) const;
104  const Fiber *findFiber(const int &tag) const;
105  Fiber *findFiber(const int &tag);
106  bool in(const Fiber *ptr) const;
107  inline const_reference operator[](const size_t &i) const
108  { return fiber_ptrs_dq::operator[](i); }
109 
110  inline const double &getCenterOfMassY(void) const
111  { return yCenterOfMass; }
112  inline const double &getCenterOfMassZ(void) const
113  { return zCenterOfMass; }
114  Pos2d getCenterOfMass(void) const;
115  inline double getRelativeY(const double &y) const
116  { return y-yCenterOfMass; }
117  inline double getRelativeZ(const double &z) const
118  { return z-zCenterOfMass; }
119 
120  GeomObj::list_Pos2d getPositions(void) const;
121 
122  bool isSubjectedToBending(const double &tol=1e-4) const;
123  double getResultant(void) const;
124  double getMz(const double &y0= 0.0) const;
125  double getMy(const double &z0= 0.0) const;
126  double getExcentricidadMz(const double &y0= 0.0) const;
127  double getExcentricidadMy(const double &z0= 0.0) const;
128  Vector2d getMomentVector(const double &y0=0.0,const double &z0=0.0) const;
129  Pos2d getResultantPosition(const double &y0=0.0,const double &z0=0.0) const;
130  Line2d getNeutralAxis(void) const;
131 
132  double getCompressionResultant(void) const;
133  double getCompressedFibersMz(const double &y0= 0.0) const;
134  double getCompressedFibersMy(const double &z0= 0.0) const;
135  const Vector &getCompressedFibersCentroid(void) const;
136  const Vector &getCentroidFibersWithStrainSmallerThan(const double &epsRef) const;
137 
138  double getTensionResultant(void) const;
139  double getTensionedFibersMz(const double &y0= 0.0) const;
140  double getTensionedFibersMy(const double &z0= 0.0) const;
141  const Vector &getTensionedFibersCentroid(void) const;
142  const Vector &getCentroidFibersWithStrainGreaterThan(const double &epsRef) const;
143 
144  int commitState(void);
145 
146  double getStrainMin(void) const;
147  double getStrainMax(void) const;
148  double getStrainMed(void) const;
149  double getStressMin(void) const;
150  double getStressMax(void) const;
151  double getStressMed(void) const;
153  const Vector &getDeformation(void) const;
154  ClaseEsfuerzo getClaseEsfuerzo(const double &tol= 1e-4) const;
155  bool isTensioned(void) const;
156  bool isBent(void) const;
157  bool isCompressed(void) const;
158  std::string getStrClaseEsfuerzo(const double &tol= 1e-4) const;
159  double getNeutralAxisDepth(const FiberSectionBase &) const;
160  Vector getLeverArmVector(void) const;
161  Segment2d getLeverArmSegment(void) const;
162  double getMechanicLeverArm(void) const;
163  Line2d getBendingPlaneTrace(void) const;
164  Line2d getTensionedPlaneTrace(void) const;
165  Line2d getCompressedPlaneTrace(void) const;
166  double computeFibersEffectiveConcreteArea(const std::list<Polygon2d> &,const double &factor= 15) const;
167  const std::list<Polygon2d> &getFiberEffectiveConcretAreaContour(const size_t &i) const;
168  double getFiberEffectiveConcreteArea(const size_t &i) const;
169  double getFibersEffectiveConcreteArea(void) const;
170  void computeCovers(const SectionGeometry &) const;
171  void computeSpacement(void) const;
172  const double &getFiberCover(const size_t &i) const;
173  const double &getFiberSpacing(const size_t &i) const;
174  double getSigmaSRAtFiber(const size_t &,const double &,const double &,const double &) const;
175  double getAverageDistanceBetweenFibers(void) const;
176  int updateCenterOfMass(void);
177 
183  const Matrix &getInitialTangent(const FiberSection2d &) const;
184  const Vector &getStressResultantSensitivity(int gradNumber, bool conditional);
185  int commitSensitivity(const XC::Vector& defSens, int gradNumber, int numGrads);
186 
192  const Matrix &getInitialTangent(const FiberSection3d &) const;
193 
199  const Matrix &getInitialTangent(const FiberSectionGJ &) const;
200 
201  Response *setResponse(const std::vector<std::string> &argv, Information &sectInfo);
202 
203  void SelMatTag(const int &matTag,FiberPtrDeque &,bool clear= true);
204  std::set<int> getMatTags(void);
205  boost::python::list getMatTagsPy(void);
206 
207  //size_t IMaxProp(const std::string &prop_name) const;
208  //size_t IMinProp(const std::string &prop_name) const;
209  size_t getFiberWithMaxCoord(const Ref3d3d &r,const size_t &iCoo) const;
210  size_t getFiberWithMinCoord(const Ref3d3d &r,const size_t &iCoo) const;
211 
212  int setParameter(const std::vector<std::string> &, Parameter &);
213  int setParameter(const int &,const std::vector<std::string> &, Parameter &);
214  int updateParameter(const int &,int parameterID, Information &info);
215  int activateParameter(int passedParameterID);
216 
217  double GetYMin(void) const;
218  double GetZMin(void) const;
219  double GetYMax(void) const;
220  double GetZMax(void) const;
221  Pos2d getPMax(void) const;
222  Pos2d getPMin(void) const;
223  BND2d Bnd(void) const;
224  size_t nearest_fiber(const double &y,const double &z) const;
225  Fiber *getClosestFiber(const int matTag, const double &yCoord);
226  Fiber *getClosestFiber(const double &y, const double &z);
227  std::vector<double> getFiberAreas(void) const;
228  double getArea(const double &factor= 1.0) const;
229  double getAreaHomogenizedSection(const double &E0) const;
230  const Vector &getCenterOfMassHomogenizedSection(const double &E0) const;
231  //Moments of inertia.
232  double getIz(const double &factor= 1.0,const double &y0= 0.0) const;
233  double getIy(const double &factor= 1.0,const double &z0= 0.0) const;
234  double getPyz(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
235  double getI1(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
236  double getI2(const double &factor= 1.0,const double &y0= 0.0,const double &z0= 0.0) const;
237  double getTh1(const double &y0= 0.0,const double &z0= 0.0) const;
238  Vector getAxis1(const double &y0= 0.0,const double &z0= 0.0) const;
239  Vector getAxis2(const double &y0= 0.0,const double &z0= 0.0) const;
240  double getIyHomogenizedSection(const double &) const;
241  double getIzHomogenizedSection(const double &) const;
242  double getPyzHomogenizedSection(const double &) const;
243  double getIHomogenizedSection(const double &,const unsigned short int &,const unsigned short int &) const;
244  Matrix &getIHomogenizedSection(const double &) const;
245  Matrix &getIHomogenizedSection(const double &,const Pos2d &o) const;
246  double getIHomogenizedSection(const double &,const Pos2d &O,const Vector &e) const;
247  double getIHomogenizedSection(const double &,const Line2d &r) const;
248  //Static moments.
249  double getSzPos(const double &yf,const double &y0,const double &factor= 1.0) const;
250  double getSzNeg(const double &yf,const double &y0,const double &factor= 1.0) const;
251  double getSyPos(const double &zf,const double &z0,const double &factor= 1.0) const;
252  double getSyNeg(const double &zf,const double &z0,const double &factor= 1.0) const;
253  double getSPosHomogenizedSection(const double &E0,const HalfPlane2d &sp) const;
254  double getSNegHomogenizedSection(const double &E0,const HalfPlane2d &sp) const;
255 
257  inline double getIpolar(const double &factor= 1.0) const
258  { return getIz(factor,yCenterOfMass)+getIy(factor,zCenterOfMass); }
261  inline double getiz(const double factor= 1.0) const
262  { return getIz(factor,yCenterOfMass)/getArea(factor); }
265  inline double getiy(const double factor= 1.0) const
266  { return getIy(factor,zCenterOfMass)/getArea(factor); }
267  virtual double getLinearRho(void) const;
268 
269  void Print(std::ostream &s,const int &flag) const;
270  int sendSelf(Communicator &);
271  int recvSelf(const Communicator &);
272  };
273 } // end of XC namespace
274 
275 #endif
double getAverageDistanceBetweenFibers(void) const
Return the average distance between fibers.
Definition: FiberPtrDeque.cc:1539
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:1505
double getStressMed(void) const
Return the average stress.
Definition: FiberPtrDeque.cc:1315
Fiber * getClosestFiber(const int matTag, const double &yCoord)
Return the fiber closest to y which has the material defined by matTag.
Definition: FiberPtrDeque.cc:193
const Vector & getCenterOfMassHomogenizedSection(const double &E0) const
Return the coordinates of the homogenized section centroid.
Definition: FiberPtrDeque.cc:459
const Vector & getDeformation(void) const
Return the generalized strain vector.
Definition: FiberPtrDeque.cc:1278
"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:261
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:912
int setInitialSectionDeformation(const FiberSection2d &)
Sets initial strains values.
Definition: FiberPtrDeque.cc:1805
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:420
Base class for fiber sections.
Definition: FiberSectionBase.h:58
int updateCenterOfMass(void)
Updates the centroid position.
Definition: FiberPtrDeque.cc:1729
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:2495
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:386
int setParameter(const std::vector< std::string > &, Parameter &)
Sets the value param to the parameter argv.
Definition: FiberPtrDeque.cc:2525
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:2463
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:937
void computeSpacement(void) const
Computes the distance from each fiber to the nearest one.
Definition: FiberPtrDeque.cc:1685
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:674
Base class response objects.
Definition: Response.h:81
FiberPtrDeque(const size_t &num=0)
Constructor.
Definition: FiberPtrDeque.cc:58
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:1646
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:871
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:804
bool isCompressed(void) const
Returns true if all the fibers are compressed.
Definition: FiberPtrDeque.cc:1372
GeomObj::list_Pos2d getPositions(void) const
Returns fibers positions.
Definition: FiberPtrDeque.cc:320
double getArea(const double &factor=1.0) const
Return the sum of the fibers areas multiplied by the factor.
Definition: FiberPtrDeque.cc:360
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:1376
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:882
bool in(const Fiber *ptr) const
Returns true if the pointer is in the container.
Definition: FiberPtrDeque.cc:129
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:815
double getCompressedFibersMy(const double &z0=0.0) const
Return the moment of the compressed fibers with respect to the y axis.
Definition: FiberPtrDeque.cc:1043
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:589
int revertToStart(FiberSection2d &, CrossSectionKR &)
Return the fibers to its initial state.
Definition: FiberPtrDeque.cc:1865
boost::python::list getMatTagsPy(void)
Return the material tags of the fibers in a Python list.
Definition: FiberPtrDeque.cc:1202
int recvData(const Communicator &)
Receives object through the communicator argument.
Definition: FiberPtrDeque.cc:2615
double getStrainMin(void) const
Return the min strain.
Definition: FiberPtrDeque.cc:1212
double getStressMin(void) const
Return the minimal stress.
Definition: FiberPtrDeque.cc:1285
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:1158
double getStressMax(void) const
Return the minimal stress.
Definition: FiberPtrDeque.cc:1300
Response * setResponse(const std::vector< std::string > &argv, Information &sectInfo)
Gets one of the response parameters of the section.
Definition: FiberPtrDeque.cc:2263
Pos2d getPMin(void) const
Return the lower left corner of the bounding rectangle.
Definition: FiberPtrDeque.cc:341
double getStrainMed(void) const
Return the average strain.
Definition: FiberPtrDeque.cc:1242
Vector en dos dimensiones.
Definition: Vector2d.h:41
double getTensionedFibersMy(const double &z0=0.0) const
Return the moment of the tensioned fibers with respect to the y axis.
Definition: FiberPtrDeque.cc:1084
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:893
double getFibersEffectiveConcreteArea(void) const
Return the sum of fibers effective areas.
Definition: FiberPtrDeque.cc:1656
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:948
double getStrainMax(void) const
Return the max strain.
Definition: FiberPtrDeque.cc:1227
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:337
std::set< int > getMatTags(void)
Return the material tags of the fibers.
Definition: FiberPtrDeque.cc:1180
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:101
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:2604
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:265
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:1005
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:560
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:1560
double getExcentricidadMz(const double &y0=0.0) const
Return the eccentricity of Mz (see getMz).
Definition: FiberPtrDeque.cc:903
double getExcentricidadMy(const double &z0=0.0) const
Return the eccentricity of My (see getMy).
Definition: FiberPtrDeque.cc:907
double GetZMin(void) const
Returns minimal z coordinate value of the fibers.
Definition: FiberPtrDeque.cc:251
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:851
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:1120
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:1853
const Matrix & getInitialTangent(const FiberSection2d &) const
Return the initial tangent stiffness matrix.
Definition: FiberPtrDeque.cc:1877
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:1364
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:274
Vector getAxis2(const double &y0=0.0, const double &z0=0.0) const
Return the direction of the minor axis.
Definition: FiberPtrDeque.cc:861
double getTensionResultant(void) const
Return the resultant of the tensions in the fibers.
Definition: FiberPtrDeque.cc:1053
DeformationPlane getDeformationPlane(void) const
Return the deformation plane (least squares adjustment).
Definition: FiberPtrDeque.cc:1259
void push_back(Fiber *f)
Adds the fiber to the container.
Definition: FiberPtrDeque.cc:79
int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: FiberPtrDeque.cc:2640
bool isBent(void) const
Returns true if some fibers are tensioned and other are compressed (bending with or without axial for...
Definition: FiberPtrDeque.cc:1368
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:142
int activateParameter(int passedParameterID)
Activates the parameter identified by parameterID.
Definition: FiberPtrDeque.cc:2558
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:530
Pos2d getResultantPosition(const double &y0=0.0, const double &z0=0.0) const
Return the position of the fibers forces resultant.
Definition: FiberPtrDeque.cc:916
double GetYMin(void) const
Returns minimal y coordinate value of the fibers.
Definition: FiberPtrDeque.cc:228
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:649
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:742
const double & getFiberSpacing(const size_t &i) const
Return the spacing of the i-th fiber.
Definition: FiberPtrDeque.cc:1699
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:403
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:721
double getTensionedFibersMz(const double &y0=0.0) const
Return the moment of the tensioned fibers with respect to the z axis.
Definition: FiberPtrDeque.cc:1073
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:500
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:980
BND2d Bnd(void) const
Return the bounding rectangle.
Definition: FiberPtrDeque.cc:345
Line2d getBendingPlaneTrace(void) const
Return the intercept of the bending plane with the plane that contains the section.
Definition: FiberPtrDeque.cc:1499
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:699
Vector getLeverArmVector(void) const
Returns a vector oriented from the tension centroid.
Definition: FiberPtrDeque.cc:1442
Line2d getNeutralAxis(void) const
Return an approximation of the neutral axis.
Definition: FiberPtrDeque.cc:923
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:1689
double getCompressedFibersMz(const double &y0=0.0) const
Return the moment of the compressed fibers with respect to the z axis.
Definition: FiberPtrDeque.cc:968
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:829
int updateKRCenterOfMass(FiberSection2d &, CrossSectionKR &)
Update the parameters center of mass, stiffness and resultant.
Definition: FiberPtrDeque.cc:1757
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:772
double getNeutralAxisDepth(const FiberSectionBase &) const
Returns neutral axisr depth, i.
Definition: FiberPtrDeque.cc:1415
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:1641
FiberPtrDeque & operator=(const FiberPtrDeque &)
Assignment operator.
Definition: FiberPtrDeque.cc:68
double getAreaHomogenizedSection(const double &E0) const
Returns homogenized section area.
Definition: FiberPtrDeque.cc:436
const Vector & getTensionedFibersCentroid(void) const
Return the centroid of the tensioned fibers, if there is no tensioned fibers returns (0...
Definition: FiberPtrDeque.cc:1095
virtual double getLinearRho(void) const
Return linear density.
Definition: FiberPtrDeque.cc:370
int setTrialSectionDeformation(const FiberSection2d &, CrossSectionKR &)
Sets trial strains values.
Definition: FiberPtrDeque.cc:1822
Cross section geometry.
Definition: SectionGeometry.h:66
Line2d getCompressedPlaneTrace(void) const
Return the intercept of a plane perpendicular to the bending plane through the compressions centroid ...
Definition: FiberPtrDeque.cc:1521
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:1795
double GetZMax(void) const
Returns maximal z coordinate value of the fibers.
Definition: FiberPtrDeque.cc:297
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:1714
void computeCovers(const SectionGeometry &) const
Computes the cover of the fibers.
Definition: FiberPtrDeque.cc:1670
Pos2d getCenterOfMass(void) const
Return the position of the centroid.
Definition: FiberPtrDeque.cc:1408
int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: FiberPtrDeque.cc:2626
double getIpolar(const double &factor=1.0) const
Returns the polar moment of inertia with respect to G.
Definition: FiberPtrDeque.h:257
Three-dimensional reference system defined in a three-dimensional space.
Definition: Ref3d3d.h:39
bool needsUpdate(void) const
Return true if the material of any of its fibers needs to update its internal state even if the trial...
Definition: FiberPtrDeque.cc:87
Segment2d getLeverArmSegment(void) const
Returns a segment from the tension centroid to the compression centroid.
Definition: FiberPtrDeque.cc:1450
double getMechanicLeverArm(void) const
Return the lever arm of forces in the section.
Definition: FiberPtrDeque.cc:1535
std::vector< double > getFiberAreas(void) const
Return the areas of each fiber.
Definition: FiberPtrDeque.cc:350