m_n_kappa.crosssection.CrossSectionBoundaries#
- class m_n_kappa.crosssection.CrossSectionBoundaries(sections)#
Bases:
CrosssectionCompute the Boundary-Values for the cross_section
New in version 0.1.0.
get_boundaries()gives the curvature boundary values under positive and negative curvature- Parameters:
sections (list[Section]) – sections of the given cross_section
Examples
First the sections for the cross-section are created.
>>> from m_n_kappa import Concrete, Steel, Rectangle >>> concrete = Concrete(f_cm=35.0) >>> concrete_geometry_1 = Rectangle( ... top_edge=0.0, bottom_edge=10.0, width=10.0, left_edge=-10.0) >>> concrete_section_1 = concrete + concrete_geometry_1 >>> steel = Steel(f_y=355, failure_strain=0.15) >>> steel_geometry = Rectangle( ... top_edge=10.0, bottom_edge=20.0, width=10.0) >>> steel_section = steel + steel_geometry
These sections are passed to
CrossSectionBoundariesin form of a list.>>> from m_n_kappa.crosssection import CrossSectionBoundaries >>> cross_section_boundaries = CrossSectionBoundaries(sections=[concrete_section_1, steel_section])
get_boundariesgives us then aBoundariesclass, where a variety of values are saved regarding the boundaries of our cross-section.>>> boundaries = cross_section_boundaries.get_boundaries()
The following values are given for positive and negative curvature. In case of values under negative curvature only
boundaries.negativeplus the desired property is to be called. Hereafter, only examples under positive curvature are given.The maximum positive curvature is given as follows:
>>> boundaries.positive.maximum_curvature.curvature 0.0076749999999999995
The boundary-condition representing the point of failure is given as follows:
>>> boundaries.positive.maximum_curvature.start StrainPosition(strain=-0.0035, position=0.0, material='Concrete')
Whereas method
computegives as the maximum curvature assuming anotherStrainPositionpoints.>>> from m_n_kappa import StrainPosition >>> boundaries.positive.maximum_curvature.compute(StrainPosition(-0.0035, 0, 'Concrete')) 0.0076749999999999995
get_boundaries()implements the above given behaviour and returns the boundary values directly without usingCrossSectionBoundaries.Methods
add_section(section)add a
Sectionto this cross-sectionfull width of the concrete slab
minimum of all maximum negative strains
minimum of all maximum positive strains
curvature boundary values under positive and negative curvature
curvature boundary values under positive and negative curvature
get cross-section split into slab- and girder-sections (the sub-cross-sections)
outer left-edge of the concrete-slab
determine maximum positive strain of all sections associated with this cross-section
determine maximum positive strain of all sections associated with this cross-section
outer right-edge of the concrete-slab
sections_not_of_type(section_type)get a list of sections that are not of the specified typ
sections_of_type(section_type)get a list of sections that are of the specified type associated with this cross-section
strain_positions([strain_1, strain_2, ...])get all
StrainPosition-values betweenstrain_1andstrain_2Attributes
overall vertical position of the bottom edge of the cross-section \(z_\mathrm{bottom}\)
Sectionbelonging to te girdervertical middle between and bottom
height of the cross-section
EdgeStrainsreaching the maximum possible negative curvatureEdgeStrainsreaching the maximum possible positive curvaturesection-type this cross-section is associated with, if it is only one
all sections associated with this cross-section
effective widths of the (concrete) slab
all slab-sections of this cross-section
top-edge of the cross-section \(z_\mathrm{top}\)
- concrete_slab_width()#
full width of the concrete slab
- Return type:
float
- decisive_maximum_negative_strain_position()#
minimum of all maximum negative strains
New in version 0.2.0.
- Return type:
- decisive_maximum_positive_strain_position()#
minimum of all maximum positive strains
New in version 0.2.0.
- Return type:
- get_boundaries()#
curvature boundary values under positive and negative curvature
New in version 0.2.0:
neutral_axesto compute the highest and lowest position of the neutral axis under a given curvatureThe boundary values are derived from the stress-strain-curves applied to the sections that are associated with the given cross-section
- Returns:
curvature boundary values under positive and negative curvature derived from the given material curves
- Return type:
- get_boundary_conditions()#
curvature boundary values under positive and negative curvature
- Returns:
curvature boundary values under positive and negative curvature
- Return type:
See also
- get_sub_cross_sections()#
get cross-section split into slab- and girder-sections (the sub-cross-sections)
New in version 0.2.0.
- Return type:
tuple
- left_edge()#
outer left-edge of the concrete-slab
Warning
will fail in case concrete is a trapezoid or a circle
- Return type:
float
- maximum_negative_strain()#
determine maximum positive strain of all sections associated with this cross-section
- Return type:
float
- maximum_positive_strain()#
determine maximum positive strain of all sections associated with this cross-section
- Return type:
float
- right_edge()#
outer right-edge of the concrete-slab
Warning
will fail in case concrete is a trapezoid or a circle
- Return type:
float
- sections_not_of_type(section_type)#
get a list of sections that are not of the specified typ
- Parameters:
section_type (str) –
type of section to search for. Possible section-types are:
'slab'-> concrete slab + reinforcement'girder'-> Steel girder
- Returns:
sections of the specified type associated with this cross-section
- Return type:
list[
Section]
- sections_of_type(section_type)#
get a list of sections that are of the specified type associated with this cross-section
Associated sections are listed in property sections. Therefore, these sections must have been added before to this cross-section.
- Parameters:
section_type (str) –
type of section to search for. Possible section-types are:
'slab'-> concrete slab + reinforcement'girder'-> Steel girder
- Returns:
sections of the specified type associated with this cross-section
- Return type:
list[
Section]
- strain_positions(strain_1=None, strain_2=None, include_strains=False)#
get all
StrainPosition-values betweenstrain_1andstrain_2In case
strain_1=Noneandstrain_2=Noneall possible values will be given.- Parameters:
strain_1 (float) – first strain-value (Default: None)
strain_2 (float) – second strain-value (Default: None)
include_strains (bool) – includes the boundary strain values (Default: False)
- Returns:
m_n_kappa.StrainPosition’s with strains between the given strains- Return type:
list[
m_n_kappa.StrainPosition]
- property bottom_edge: float#
overall vertical position of the bottom edge of the cross-section \(z_\mathrm{bottom}\)
- property girder_sections: list[m_n_kappa.section.Section]#
Sectionbelonging to te girder
- property half_point: float#
vertical middle between and bottom
- property height: float#
height of the cross-section
- property maximum_negative_curvature: EdgeStrains#
EdgeStrainsreaching the maximum possible negative curvature
- property maximum_positive_curvature: EdgeStrains#
EdgeStrainsreaching the maximum possible positive curvature
- property section_type: str#
section-type this cross-section is associated with, if it is only one
- property sections: list[m_n_kappa.section.Section]#
all sections associated with this cross-section
- property slab_effective_width: EffectiveWidths#
effective widths of the (concrete) slab
- property slab_sections: list[m_n_kappa.section.Section]#
all slab-sections of this cross-section
- property top_edge: float#
top-edge of the cross-section \(z_\mathrm{top}\)