30 #ifndef FiberPtrDeque_h 31 #define FiberPtrDeque_h 33 #include "utility/kernel/CommandEntity.h" 34 #include "utility/geom/GeomObj.h" 35 #include "utility/actor/actor/MovableObject.h" 50 class FiberSectionBase;
51 class FiberSection3dBase;
59 class SectionGeometry;
60 class DeformationPlane;
62 enum ClaseEsfuerzo {SIMPLE_TENSION,COMPOSED_TENSION,FLEXION_SIMPLE,FLEXION_COMPUESTA,SIMPLE_COMPRESSION,COMPOSED_COMPRESSION,ERROR};
71 typedef std::deque<Fiber *> fiber_ptrs_dq;
82 mutable std::deque<double> recubs;
83 mutable std::deque<double>
seps;
86 { fiber_ptrs_dq::resize(nf,
nullptr); }
88 inline reference operator[](
const size_t &i)
89 {
return fiber_ptrs_dq::operator[](i); }
100 inline size_t getNumFibers(
void)
const 105 bool in(
const Fiber *ptr)
const;
106 inline const_reference operator[](
const size_t &i)
const 107 {
return fiber_ptrs_dq::operator[](i); }
109 inline const double &getCenterOfMassY(
void)
const 111 inline const double &getCenterOfMassZ(
void)
const 114 inline double getRelativeY(
const double &y)
const 116 inline double getRelativeZ(
const double &z)
const 123 double getMz(
const double &y0= 0.0)
const;
124 double getMy(
const double &z0= 0.0)
const;
153 ClaseEsfuerzo getClaseEsfuerzo(
const double &tol= 1e-4)
const;
173 double getSigmaSRAtFiber(
const size_t &,
const double &,
const double &,
const double &)
const;
183 const Vector &getStressResultantSensitivity(
int gradNumber,
bool conditional);
184 int commitSensitivity(
const XC::Vector& defSens,
int gradNumber,
int numGrads);
213 int updateParameter(
const int &,
int parameterID,
Information &info);
227 double getArea(
const double &factor= 1.0)
const;
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;
242 double getIHomogenizedSection(
const double &,
const unsigned short int &,
const unsigned short int &)
const;
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;
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 264 inline double getiy(
const double factor= 1.0)
const 267 void Print(std::ostream &s,
const int &flag)
const;
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
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 §Info)
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
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