30 #ifndef SectionGeometry_h 31 #define SectionGeometry_h 33 #include "material/section/repres/section_geometry/region/RegionContainer.h" 34 #include "material/section/repres/section_geometry/reinfLayer/ListReinfLayer.h" 36 #include "boost/lexical_cast.hpp" 38 #include "material/section/repres/SectionMassProperties.h" 40 #include "utility/utils/misc_utils/colormod.h" 47 class SectionReferenceFrame;
52 class MaterialHandler;
56 class CrossSectionProperties3d;
57 class CrossSectionProperties2d;
95 inline int getReferenceFrameTag(
void)
const 97 void setReferenceFrameTag(
int i)
108 inline int getTagSpot(
void)
const 110 void setTagSpot(
int i)
117 inline int getAxisTag(
void)
const 119 void setAxisTag(
int i)
128 double DistSpots(
const size_t &i,
const size_t &j)
const;
134 std::vector<double>
getCutLengths(
const std::list<Line2d> &lr)
const;
154 size_t getNumFiberData(
void)
const;
193 Vector getCenterOfMassHomogenizedSection(
const double &E0)
const;
200 const std::string &
Name(
void)
const;
202 void Print(std::ostream &s,
int flag =0)
const;
218 retval->
Name()=
"l"+boost::lexical_cast<std::string>(
axis_tag);
223 std::cerr << Color::red <<
getClassName() <<
"::" << __FUNCTION__
224 <<
"Can't create axis with tag: " 226 << Color::def << std::endl;
boost::python::list getReinforcementMaterialsPy(void)
Return a list of const pointers to the different reinforcing layers materials.
Definition: SectionGeometry.h:166
axes_container axes
Axis container.
Definition: SectionGeometry.h:85
"boundary" en dos dimensiones.
Definition: BND2d.h:38
double getIyHomogenizedSection(const double &E0) const
Returns homogenized moment of inertia of the cross-section with respecto to the axis parallel to y pa...
Definition: SectionGeometry.cc:520
Float vector abstraction.
Definition: Vector.h:94
Axis * find_axis(const size_t &)
Returns a pointer to the axis which name is being passed as parameter.
Definition: SectionGeometry.cc:149
double getIyGrossSection(void) const
Inertia of the gross section about an axis parallel to y through its centroid.
Definition: SectionGeometry.cc:598
std::set< const Material * > getMaterials(void) const
Return a list of const pointers to the different reinforcing layers materials.
Definition: ListReinfLayer.cc:161
double DistSpots(const size_t &i, const size_t &j) const
Return the distance between the points identified by the arguments.
Definition: SectionGeometry.cc:239
std::map< size_t, Axis * > axes_container
line container.
Definition: SectionGeometry.h:72
std::map< size_t, Spot * > lst_spots
point container.
Definition: SectionGeometry.h:71
SectionReferenceFrame * get_reference_system(const size_t &id)
Returns a pointer to the reference system which identifier is being passed as parameter.
Definition: SectionGeometry.cc:103
double getTensionedZoneDepth(const HalfPlane2d &) const
Return the section depth from the border of the half-plane being passed as parameter to the most tens...
Definition: SectionGeometry.cc:338
Vector getCenterOfMassGrossSection(void) const
Returns gross section centroid position.
Definition: SectionGeometry.cc:594
Section composed of some regions.
Definition: RegionContainer.h:54
Posición en dos dimensiones.
Definition: Pos2d.h:41
boost::python::list getMaterialsPy(void)
Return a Python list of pointers to the different region materials.
Definition: RegionContainer.cc:175
Axis * createAxis(void)
Creates a new axis.
Definition: SectionGeometry.h:210
Segment * newSegment(size_t, size_t)
New segment.
Definition: SectionGeometry.cc:223
Line in a two-dimensional space.
Definition: Line2d.h:61
MaterialHandler * material_handler
Material handler (searching,...).
Definition: SectionGeometry.h:75
double getAreaGrossSection(void) const
Returns region's gross section area.
Definition: SectionGeometry.cc:583
SectionGeometry getGMRegions(void) const
Returns a geometry that contains only the regions defined in this object.
Definition: SectionGeometry.cc:75
boost::python::list getRegionsContoursPy(void) const
Return the contours of the regions in a Python list.
Definition: SectionGeometry.cc:262
double getAreaHomogenizedSection(const double &E0) const
Return the homogenized area of the regions.
Definition: SectionGeometry.cc:493
SectionReferenceFrame * createReferenceFrame(const std::string &)
Creates a new reference frame of the type being passed as parameter.
Definition: SectionGeometry.cc:169
size_t tag_spot
Default identifier for next point.
Definition: SectionGeometry.h:84
std::list< Polygon2d > getRegionsContours(void) const
Return the contours of the regions.
Definition: SectionGeometry.cc:258
std::string & Name(void)
Return a reference to the object name.
Definition: NamedEntity.h:52
double getCover(const Pos2d &) const
Return the cover for the position being passed as parameter.
Definition: SectionGeometry.cc:440
Line segment.
Definition: Segment.h:41
double getCompressedStrutWidth(const Segment2d &) const
Return the width «b0» of the compressed strut that corresponds to the arm lever represented by the se...
Definition: SectionGeometry.cc:408
ListReinfLayer reinforcement_layers
Rebar layers container.
Definition: SectionGeometry.h:78
std::set< const Material * > getMaterials(void) const
Return a list of const pointers to the different region materials.
Definition: RegionContainer.cc:147
Base class for 1D entities in section definition.
Definition: Axis.h:44
virtual std::string getClassName(void) const
Returns demangled class name.
Definition: EntityWithOwner.cc:90
Polígono en dos dimensiones.
Definition: Polygon2d.h:38
Segment in a two-dimensional space.
Definition: Segment2d.h:38
std::map< size_t, SectionReferenceFrame * > lst_ref_sys
reference systems container.
Definition: SectionGeometry.h:70
double getPyzHomogenizedSection(const double &E0) const
Returns homogenized product of inertia of the cross-section with respecto to the axis parallel to y a...
Definition: SectionGeometry.cc:562
Reference system used for make easier defining point positions.
Definition: SectionReferenceFrame.h:43
Reinf layer container (list).
Definition: ListReinfLayer.h:56
double getIzHomogenizedSection(const double &E0) const
Returns homogenized moment of inertia of the cross-section with respecto to the axis parallel to z pa...
Definition: SectionGeometry.cc:541
Point object for section geometry definition.
Definition: Spot.h:44
lst_ref_sys reference_systems
Spatial reference systems.
Definition: SectionGeometry.h:80
const std::string & Name(void) const
Return a reference to the object name.
Definition: SectionGeometry.cc:660
lst_spots spots
Point container.
Definition: SectionGeometry.h:83
Material handler (definition, searching,...).
Definition: MaterialHandler.h:46
BND2d getBnd(void) const
Return the regions boundary.
Definition: SectionGeometry.cc:452
std::set< const Material * > getRegionMaterials(void) const
Return a list of const pointers to the different region materials.
Definition: SectionGeometry.h:171
Polygon2d getCompressedZoneContour(const HalfPlane2d &) const
Return the contour of the compressed part of the regions.
Definition: SectionGeometry.cc:282
std::set< const Material * > getMaterials(void) const
Return a list of const pointers to the different section materials.
Definition: SectionGeometry.cc:460
Spot * creaSpot(const Pos2d &)
Creates a new point.
Definition: SectionGeometry.cc:190
std::set< Material * > getRegionMaterials(void)
Return a list of pointers to the different region materials.
Definition: SectionGeometry.h:174
void Print(std::ostream &s, int flag=0) const
Printing.
Definition: SectionGeometry.cc:677
boost::python::list getMaterialsPy(void)
Return a Python list of pointers to the different reinforcing layers materials.
Definition: ListReinfLayer.cc:191
Polygon2d getRegionsContour(void) const
Return the contour of the regions.
Definition: SectionGeometry.cc:266
Half plane in a two-dimensional space.
Definition: HalfPlane2d.h:38
RegionContainer regions
Region container.
Definition: SectionGeometry.h:77
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
double getAnchoMecanico(const Line2d &) const
Return the section width for the bending plane intersect being passed as parameter.
Definition: SectionGeometry.cc:387
size_t axis_tag
Default identifier for next axis.
Definition: SectionGeometry.h:86
size_t tag_ref_sys
Default identifier for next spatial reference system.
Definition: SectionGeometry.h:81
double getCutLength(const Line2d &r) const
Return the lengths of the segments that results of cutting the line being passed as parameter with th...
Definition: SectionGeometry.cc:355
Cross-section representation able to return mechanical propertis a area, moments of inertia...
Definition: SectionMassProperties.h:51
double getLeverArm(const Line2d &) const
Return the working cross-section lever arm from the position of the half-plane being passed as parame...
Definition: SectionGeometry.cc:302
Spot * find_spot(const size_t &)
Returns a pointer to the point identified by the argument.
Definition: SectionGeometry.cc:129
void clear(void)
Clear the containers of this object.
Definition: SectionGeometry.cc:62
double getIzGrossSection(void) const
Inertia of the gross section about an axis parallel to z through its centroid.
Definition: SectionGeometry.cc:618
double getPyzGrossSection(void) const
Product of inertia of the gross section about y and z axis through its centroid.
Definition: SectionGeometry.cc:638
std::set< Material * > getReinforcementMaterials(void)
Return a list of pointers to the different reinforcing layers materials.
Definition: SectionGeometry.h:162
SectionGeometry getCrackedSection(const HalfPlane2d &) const
Return a section with only the compressed regions of the section.
Definition: SectionGeometry.cc:92
std::set< const Material * > getReinforcementMaterials(void) const
Return a list of const pointers to the different reinforcing layers materials.
Definition: SectionGeometry.h:158
double getCompressedZoneDepth(const HalfPlane2d &) const
Return the section depth from the border of the half-plane being passed as parameter to the most comp...
Definition: SectionGeometry.cc:322
Cross section geometry.
Definition: SectionGeometry.h:66
boost::python::list getRegionMaterialsPy(void)
Return a python list of pointers to the different region materials.
Definition: SectionGeometry.h:178
std::vector< double > getCutLengths(const std::list< Line2d > &lr) const
Return the lengths of the segments that results of cutting the line being passed as parameter with th...
Definition: SectionGeometry.cc:367
boost::python::list getMaterialsPy(void)
Return a Python list of pointers to the different section materials.
Definition: SectionGeometry.cc:476
Spot * newSpot(const Pos2d &)
New spot.
Definition: SectionGeometry.cc:204
SectionGeometry getGMReinforcementLayers(void) const
Returns a geometry that contains only the regions defined in this object.
Definition: SectionGeometry.cc:84