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 106 bool in(
const Fiber *ptr)
const;
107 inline const_reference operator[](
const size_t &i)
const 108 {
return fiber_ptrs_dq::operator[](i); }
110 inline const double &getCenterOfMassY(
void)
const 112 inline const double &getCenterOfMassZ(
void)
const 115 inline double getRelativeY(
const double &y)
const 117 inline double getRelativeZ(
const double &z)
const 124 double getMz(
const double &y0= 0.0)
const;
125 double getMy(
const double &z0= 0.0)
const;
154 ClaseEsfuerzo getClaseEsfuerzo(
const double &tol= 1e-4)
const;
174 double getSigmaSRAtFiber(
const size_t &,
const double &,
const double &,
const double &)
const;
184 const Vector &getStressResultantSensitivity(
int gradNumber,
bool conditional);
185 int commitSensitivity(
const XC::Vector& defSens,
int gradNumber,
int numGrads);
214 int updateParameter(
const int &,
int parameterID,
Information &info);
228 double getArea(
const double &factor= 1.0)
const;
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;
243 double getIHomogenizedSection(
const double &,
const unsigned short int &,
const unsigned short int &)
const;
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;
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 265 inline double getiy(
const double factor= 1.0)
const 269 void Print(std::ostream &s,
const int &flag)
const;
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
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 §Info)
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
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