32 #include "xc_utils/src/nucleo/EntCmd.h" 33 #include "xc_utils/src/geom/GeomObj.h" 48 class FiberSectionBase;
49 class FiberSection3dBase;
58 class DeformationPlane;
60 enum ClaseEsfuerzo {TRACCION_SIMPLE,TRACCION_COMPUESTA,FLEXION_SIMPLE,FLEXION_COMPUESTA,COMPRESION_SIMPLE,COMPRESION_COMPUESTA,ERROR};
66 class DqFibras :
public EntCmd,
public std::deque<Fiber *>
69 typedef std::deque<Fiber *> dq_ptr_fibras;
76 mutable std::deque<double> recubs;
77 mutable std::deque<double>
seps;
80 inline void resize(
const size_t &nf)
81 { dq_ptr_fibras::resize(nf,
nullptr); }
94 inline size_t getNumFibers(
void)
const 100 inline const double &getYCdg(
void)
const 102 inline const double &getZCdg(
void)
const 105 inline double getYRelativa(
const double &y)
const 107 inline double getZRelativa(
const double &z)
const 112 bool hayMomento(
const double &tol=1e-4)
const;
114 double getMz(
const double &y0= 0.0)
const;
115 double getMy(
const double &z0= 0.0)
const;
123 double getMzComp(
const double &y0= 0.0)
const;
124 double getMyComp(
const double &z0= 0.0)
const;
129 double getMzTracc(
const double &y0= 0.0)
const;
130 double getMyTracc(
const double &z0= 0.0)
const;
134 int commitState(
void);
144 ClaseEsfuerzo getClaseEsfuerzo(
const double &tol= 1e-4)
const;
148 std::string getStrClaseEsfuerzo(
const double &tol= 1e-4)
const;
156 double calcAcEficazFibras(
const std::list<Poligono2d> &,
const double &factor= 15)
const;
165 double getSigmaSRFibra(
const size_t &,
const double &,
const double &,
const double &)
const;
176 const Vector &getStressResultantSensitivity(
int gradNumber,
bool conditional);
177 int commitSensitivity(
const XC::Vector& defSens,
int gradNumber,
int numGrads);
205 int setParameter(
const int &,
const std::vector<std::string> &,
Parameter &);
206 int updateParameter(
const int &,
int parameterID,
Information &info);
207 int activateParameter(
int passedParameterID);
215 BND2d
Bnd(
void)
const;
220 double getIz(
const double &factor= 1.0,
const double &y0= 0.0)
const;
221 double getIy(
const double &factor= 1.0,
const double &z0= 0.0)
const;
222 double getPyz(
const double &factor= 1.0,
const double &y0= 0.0,
const double &z0= 0.0)
const;
223 double getI1(
const double &factor= 1.0,
const double &y0= 0.0,
const double &z0= 0.0)
const;
224 double getI2(
const double &factor= 1.0,
const double &y0= 0.0,
const double &z0= 0.0)
const;
225 double getTh1(
const double &y0= 0.0,
const double &z0= 0.0)
const;
226 Vector getEje1(
const double &y0= 0.0,
const double &z0= 0.0)
const;
227 Vector getEje2(
const double &y0= 0.0,
const double &z0= 0.0)
const;
231 double getIHomogenizedSection(
const double &,
const unsigned short int &,
const unsigned short int &)
const;
237 double getSzPos(
const double &yf,
const double &y0,
const double &factor= 1.0)
const;
238 double getSzNeg(
const double &yf,
const double &y0,
const double &factor= 1.0)
const;
239 double getSyPos(
const double &zf,
const double &z0,
const double &factor= 1.0)
const;
240 double getSyNeg(
const double &zf,
const double &z0,
const double &factor= 1.0)
const;
245 inline double getIpolar(
const double &factor= 1.0)
const 246 {
return getIz(factor,yCDG)+
getIy(factor,zCDG); }
248 inline double getiz(
const double factor= 1.0)
const 251 inline double getiy(
const double factor= 1.0)
const 255 void Print(std::ostream &s,
const int &flag);
double getMyComp(const double &z0=0.0) const
Returns the moment of the compressed fibers with respect to the y axis.
Definition: DqFibras.cc:814
Pos2d GetPMin(void) const
Returns the lower left corner of the bounding rectangle.
Definition: DqFibras.cc:213
double getSPosHomogenizedSection(const double &E0, const Semiplano2d &sp) const
Returns the static moments of the fiber areas inside the halfplane being passed as parameter...
Definition: DqFibras.cc:539
double getStressMed(void) const
Returns the average stress.
Definition: DqFibras.cc:1088
double getMy(const double &z0=0.0) const
Returns the momento de la fuerza ejercida por las fibras respecto al eje al eje paralelo al «y» que p...
Definition: DqFibras.cc:678
double getIyHomogenizedSection(const double &) const
Returns homogenized moment of inertia of the cross-section with respecto to the axis parallel to y pa...
Definition: DqFibras.cc:326
bool enFlexion(void) const
Returns true if some fibers are tensioned and other are compressed (bending with or without axial for...
Definition: DqFibras.cc:1141
double calcAcEficazFibras(const std::list< Poligono2d > &, const double &factor=15) const
Computes crack effective areas on the fibers that represent reinforcing bars (see article 49...
Definition: DqFibras.cc:1305
double ResultanteComp(void) const
Returns the resultante de las compresiones en las fibras.
Definition: DqFibras.cc:735
const Vector & baricentroCompresiones(void) const
Returns the punto de paso de la resultante de tensiones menores que «ref» (por defecto cero) compresi...
Definition: DqFibras.cc:764
double getiy(const double factor=1.0) const
Returns the radio de giro respecto al eje paralelo al y que pasa por el CDG.
Definition: DqFibras.h:251
double getIy(const double &factor=1.0, const double &z0=0.0) const
Returns the moment of inertia respecto al eje paralelo al y a una distancia z0 del origen...
Definition: DqFibras.cc:247
DqFibras & operator=(const DqFibras &otro)
Assignment operator.
Definition: DqFibras.cc:67
Recta2d getFibraNeutra(void) const
Returns the neutral axis.
Definition: DqFibras.cc:713
std::deque< double > seps
Cover for each fiber.
Definition: DqFibras.h:77
bool enTraccion(void) const
Returns true if all the fibers are tensioned.
Definition: DqFibras.cc:1137
double getiz(const double factor=1.0) const
Returns the radio de giro respecto al eje paralelo al z que pasa por el CDG.
Definition: DqFibras.h:248
double getStressMin(void) const
Returns the minimal stress.
Definition: DqFibras.cc:1058
double getSzNeg(const double &yf, const double &y0, const double &factor=1.0) const
Returns the static moment of the cell areas that rely below yf (y_fibra-yf < 0) with respect to the a...
Definition: DqFibras.cc:477
double Resultante(void) const
Returns the resultante de tensiones.
Definition: DqFibras.cc:656
Pos2d getPosResultante(const double &y0=0.0, const double &z0=0.0) const
Returns the vector momento de las excentricidades fuerza ejercida por las fibras respecto a los ejes ...
Definition: DqFibras.cc:706
Recta2d getTrazaPlanoTraccion(void) const
Returns the intercept of a plane perpendicular to the bending plane through the tensions centroid wit...
Definition: DqFibras.cc:1251
Fiber section model in a bi-dimensional space. Sections stiffness and internal forces are obtained by...
Definition: FiberSection2d.h:74
std::deque< std::list< Poligono2d > > dq_ac_eficaz
(Where appropriate) effective areas for each fiber.
Definition: DqFibras.h:75
Segmento2d getSegmentoBrazoMecanico(void) const
Returns a segmento orientado desde el centro de tracciones al de compresiones.
Definition: DqFibras.cc:1220
const Fiber * buscaFibra(const int &tag) const
Busca la fibra cuyo tag is being passed as parameter.
Definition: DqFibras.cc:90
Fiber * addFiber(FiberSection2d &, Fiber &, KRSeccion &)
Adds a fiber XXX Enhance parameter updating.
Definition: DqFibras.cc:1510
double getPyz(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Returns the producto de inercia respecto a los ejes paralelos aa una distancias (y0,z0) del origen.
Definition: DqFibras.cc:262
double getStrainMin(void) const
Returns the min strain.
Definition: DqFibras.cc:987
int setInitialSectionDeformation(const FiberSection2d &)
Establece los valores de las initial strains.
Definition: DqFibras.cc:1527
int setTrialSectionDeformation(const FiberSection2d &, KRSeccion &)
Establece los valores de las trial strains.
Definition: DqFibras.cc:1544
DeformationPlane getDeformationPlane(void) const
Returns the deformation plane (least squares adjustment).
Definition: DqFibras.cc:1034
void calcRecubrimientos(const GeomSection &) const
Calcula los recubrimientos de las fibras.
Definition: DqFibras.cc:1393
int revertToLastCommit(FiberSection2d &, KRSeccion &)
Returns the estado de las fibras al del último commit.
Definition: DqFibras.cc:1575
double getIzHomogenizedSection(const double &) const
Returns homogenized moment of inertia of the cross-section with respecto to the axis parallel to z pa...
Definition: DqFibras.cc:349
const double & getSeparacionFibra(const size_t &i) const
Returns the spacing of the i-th fiber.
Definition: DqFibras.cc:1419
double getIz(const double &factor=1.0, const double &y0=0.0) const
Returns the moment of inertia respecto al paralelo al z a una distancia y0 del origen.
Definition: DqFibras.cc:232
const Matrix & getInitialTangent(const FiberSection2d &) const
Returns the initial tangent stiffness matrix.
Definition: DqFibras.cc:1599
double getDiamEqFibra(const size_t &i) const
Returns the diameter of the circle that has the same area of the fiber which index is being passed as...
Definition: DqFibras.cc:1429
double getExcentricidadMy(const double &z0=0.0) const
Returns the excentricidad correspondiente al momento de la fuerza ejercida por las fibras respecto al...
Definition: DqFibras.cc:696
Vector getEje2(const double &y0=0.0, const double &z0=0.0) const
Returns the direction of the minor axis.
Definition: DqFibras.cc:646
double yCDG
Y coordinate of the centroid.
Definition: DqFibras.h:72
const Vector & getCdgHomogenizedSection(const double &E0) const
Returns the coordinates of the homogenized section centroid.
Definition: DqFibras.cc:294
double ResultanteTracc(void) const
Returns the resultante de las tracciones en las fibras.
Definition: DqFibras.cc:824
int revertToStart(FiberSection2d &, KRSeccion &)
Returns the fibras a su estado inicial.
Definition: DqFibras.cc:1587
const Vector & baricentroDefMenores(const double &epsRef) const
Returns the centroid of the fibers whose strain is less than the value passed as parameter.
Definition: DqFibras.cc:789
Fiber section with torsional stiffness.
Definition: FiberSectionGJ.h:72
Response * setResponse(const std::vector< std::string > &argv, Information §Info)
Gets one of the response parameters of the section.
Definition: DqFibras.cc:1991
double getMzTracc(const double &y0=0.0) const
Returns the moment of the tensioned fibers with respect to the z axis.
Definition: DqFibras.cc:842
void calcSeparaciones(void) const
Computes the distance from each fiber to the nearest one.
Definition: DqFibras.cc:1406
int updateKRCDG(FiberSection2d &, KRSeccion &)
Update the parameters CDG, stiffness and resultant.
Definition: DqFibras.cc:1474
double GetZMax(void) const
Returns maximal z coordinate value of the fibers.
Definition: DqFibras.cc:175
double getStrainMed(void) const
Returns the average strain.
Definition: DqFibras.cc:1017
double getMyTracc(const double &z0=0.0) const
Returns the moment of the tensioned fibers with respect to the y axis.
Definition: DqFibras.cc:853
void push_back(Fiber *f)
Adds to the contenedor the pointer a fibra being passed as parameter.
Definition: DqFibras.cc:85
Recta2d getTrazaPlanoFlexion(void) const
Returns the intercept of the bending plane with the plane that contains the section.
Definition: DqFibras.cc:1245
const Vector & baricentroDefMayores(const double &epsRef) const
Returns the centroid of the fibers whose strain is greater than the value being passed as parameter...
Definition: DqFibras.cc:889
size_t getFibraCooMax(const Ref3d3d &r, const size_t &iCoo) const
Returns the identifier of the fiber with maximum value for the iCoo coordinate with respect to the sy...
Definition: DqFibras.cc:2180
Pos2d getCdg(void) const
Returns the position of the centroid.
Definition: DqFibras.cc:1180
double getSyPos(const double &zf, const double &z0, const double &factor=1.0) const
Returns the static moment of the cell areas that rely above zf (z_fibra-zf > 0) with respect to the a...
Definition: DqFibras.cc:500
double GetYMax(void) const
Returns maximal y coordinate value of the fibers.
Definition: DqFibras.cc:156
Fiber * inserta(const Fiber &f)
Spacing for each fiber.
Definition: DqFibras.cc:77
double getSNegHomogenizedSection(const double &E0, const Semiplano2d &sp) const
Returns the static moments of the fiber areas outside the halfplane being passed as parameter...
Definition: DqFibras.cc:563
bool hayMomento(const double &tol=1e-4) const
Returns true if the section is subject to a under bending moment.
Definition: DqFibras.cc:724
double getStrainMax(void) const
Returns the min strain.
Definition: DqFibras.cc:1002
BND2d Bnd(void) const
Returns the bounding rectangle.
Definition: DqFibras.cc:217
Vector2d getVectorMomento(const double &y0=0.0, const double &z0=0.0) const
Returns the vector momento de la fuerza ejercida por las fibras respecto a los ejes que pasan por (y0...
Definition: DqFibras.cc:701
double getPyzHomogenizedSection(const double &) const
Returns homogenized product of inertia of the cross-section with respecto to the axis parallel to y a...
Definition: DqFibras.cc:372
double getSigmaSRFibra(const size_t &, const double &, const double &, const double &) const
Returns the stress on the i-th fiber when cracking occurs in its effective area.
Definition: DqFibras.cc:1436
void SelMatTag(const int &matTag, DqFibras &, bool clear=true)
Definition: DqFibras.cc:967
Vector getEje1(const double &y0=0.0, const double &z0=0.0) const
Returns the direction of the major axis.
Definition: DqFibras.cc:636
Contenedor de fibras.
Definition: DqFibras.h:66
int updateCDG(void)
Actualiza el CDG.
Definition: DqFibras.cc:1451
double getAcEficazFibras(void) const
Returns the sum of fibers effective areas.
Definition: DqFibras.cc:1379
Fiber section model in a three-dimensional space. Sections stiffness and internal forces are obtained...
Definition: FiberSection3d.h:72
bool enCompresion(void) const
Returns true if all the fibers are compressed.
Definition: DqFibras.cc:1145
double getNeutralAxisDepth(const FiberSectionBase &) const
Returns neutral axisr depth, i. e. distance from neutral axis to the most compressed one...
Definition: DqFibras.cc:1187
DqFibras(const size_t &num=0)
Constructor.
Definition: DqFibras.cc:57
double getIHomogenizedSection(const double &, const unsigned short int &, const unsigned short int &) const
Returns the i,j component of the tensor of inertia calculado respecto al CDG.
Definition: DqFibras.cc:394
const Vector & getDeformation(void) const
Returns the generalized strain vector.
Definition: DqFibras.cc:1051
double getTh1(const double &y0=0.0, const double &z0=0.0) const
Returns the angle between major principal axis and the y axis.
Definition: DqFibras.cc:614
Vector getVectorBrazoMecanico(void) const
Returns a vector orientado desde el centro de tracciones al de compresiones.
Definition: DqFibras.cc:1213
double getIpolar(const double &factor=1.0) const
Returns the momento de inercia polar respecto a G.
Definition: DqFibras.h:245
Section fiber.
Definition: Fiber.h:89
double getExcentricidadMz(const double &y0=0.0) const
Returns the excentricidad correspondiente al momento de la fuerza ejercida por las fibras respecto al...
Definition: DqFibras.cc:690
Definition: Parameter.h:65
Base class for fiber sections.
Definition: FiberSectionBase.h:57
double getI2(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Returns the moment of inertia principal menor.
Definition: DqFibras.cc:600
const Vector & baricentroTracciones(void) const
Returns the punto de paso de la resultante de tracciones, si no hay tracciones returns (0...
Definition: DqFibras.cc:864
double getSyNeg(const double &zf, const double &z0, const double &factor=1.0) const
Returns the static moment of the cell areas that rely below zf (z_fibra-zf < 0) with respect to the a...
Definition: DqFibras.cc:520
double getDistMediaFibras(void) const
Returns the distancia media entre fibras.
Definition: DqFibras.cc:1285
GeomObj::list_Pos2d getPosiciones(void) const
Returns fibers positions.
Definition: DqFibras.cc:194
double getI1(const double &factor=1.0, const double &y0=0.0, const double &z0=0.0) const
Returns the moment of inertia principal mayor.
Definition: DqFibras.cc:589
double getStressMax(void) const
Returns the minimal stress.
Definition: DqFibras.cc:1073
double getSumaAreas(const double &factor=1.0) const
Returns the sum of the fibers areas.
Definition: DqFibras.cc:221
double getBrazoMecanico(void) const
Returns the lever arm of forces in the section.
Definition: DqFibras.cc:1281
double getMz(const double &y0=0.0) const
Returns the momento de la fuerza ejercida por las fibras respecto al eje paralelo al «z» que pasa por...
Definition: DqFibras.cc:667
double zCDG
Z coordinate of the centroid.
Definition: DqFibras.h:73
================================================================================
Definition: ContinuaReprComponent.h:34
double GetYMin(void) const
Returns minimal y coordinate value of the fibers.
Definition: DqFibras.cc:118
double getAreaHomogenizedSection(const double &E0) const
Returns homogenized section area.
Definition: DqFibras.cc:276
double getMzComp(const double &y0=0.0) const
Returns the moment of the compressed fibers with respect to the z axis.
Definition: DqFibras.cc:753
double GetZMin(void) const
Returns minimal z coordinate value of the fibers.
Definition: DqFibras.cc:137
Stiffness matrix and resultant vector for a section.
Definition: KRSeccion.h:40
double getSzPos(const double &yf, const double &y0, const double &factor=1.0) const
Returns the static moment of the cell areas that rely above yf (y_fibra-yf > 0) with respect to the a...
Definition: DqFibras.cc:454
Cross section geometry.
Definition: GeomSection.h:62
Definition: Response.h:71
Recta2d getTrazaPlanoCompresion(void) const
Returns the intercept of a plane perpendicular to the bending plane through the compressions centroid...
Definition: DqFibras.cc:1267
size_t nearest_fiber(const double &y, const double &z) const
Returns the fiber that is closest to the given position.
Definition: DqFibras.cc:913
double getAcEficazFibra(const size_t &i) const
Returns the effective area value of the fiber which index is being passed as parameter.
Definition: DqFibras.cc:1369
size_t getFibraCooMin(const Ref3d3d &r, const size_t &iCoo) const
Returns the identifier of the fiber with minimum value for the iCoo coordinate with respect to the sy...
Definition: DqFibras.cc:2210
const double & getRecubrimientoFibra(const size_t &i) const
Returns the value of concrete cover for the i-th fiber.
Definition: DqFibras.cc:1410
const std::list< Poligono2d > & getContourAcEficazFibra(const size_t &i) const
Returns the contours of the effective area of the fiber which index is being passed as parameter...
Definition: DqFibras.cc:1364
Pos2d GetPMax(void) const
Returns the upper right corner of the bounding rectangle.
Definition: DqFibras.cc:209