m_n_kappa.Crosssection#
- class m_n_kappa.Crosssection(sections=None, slab_effective_widths=None)#
Bases:
object
Combines a number of sections
New in version 0.1.0.
- Parameters:
sections (list[
Section
]) – sections the cross-section consists ofslab_effective_widths (
EffectiveWidths
) – effective widths’ for the slab (concrete and reinforcement)
Examples
There are several ways you can create a cross-section. Basis are either a number of
Section
.>>> 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.0) >>> steel_geometry = Rectangle( ... top_edge=10.0, bottom_edge=20.0, width=10.0) >>> steel_section = steel + steel_geometry
The above create
Section
may be combined to a cross-section like:>>> cross_section_top = steel_section + concrete_section_1 >>> cross_section_top Crosssection(sections=sections)
Or alternatively like:
>>> from m_n_kappa import Crosssection >>> sections_list = [steel_section, concrete_section_1] >>> cross_section_bottom = Crosssection(sections=sections_list) >>> cross_section_bottom Crosssection(sections=sections)
This is also the only way nn case an
EffectiveWidths
is to be applied.>>> from m_n_kappa import EffectiveWidths >>> widths = EffectiveWidths(membran=2.0, bending=3.0) >>> cross_section_3 = Crosssection( ... sections=sections_list, slab_effective_widths=widths) >>> cross_section_3.slab_effective_width.bending 3.0
By using a predifined
ComposedGeometry
aCrosssection
may also be created easily:>>> from m_n_kappa import IProfile >>> i_geometry = IProfile( ... top_edge=0.0, t_w=9.5, h_w=200-15*2 , t_fo=15.0, b_fo=200) >>> cross_section_4 = i_geometry + steel >>> cross_section_4 Crosssection(sections=sections)
Another
Section
may be added also on different ways:>>> concrete_geometry_2 = Rectangle( ... top_edge=0.0, bottom_edge=10.0, width=10.0, left_edge=0.0) >>> concrete_section_2 = concrete + concrete_geometry_2 >>> cross_section_top = cross_section_top + concrete_section_2 >>> len(cross_section_top.sections) 3
>>> cross_section_bottom.add_section(concrete_section_2) >>> len(cross_section_bottom.sections) 3
Subsequently, the
Crosssection
is needed for all computations.Methods
add_section
(section)add a
Section
to 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
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_1
andstrain_2
Attributes
overall vertical position of the bottom edge of the cross-section \(z_\mathrm{bottom}\)
Section
belonging to te girdervertical middle between and bottom
height of the cross-section
section-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_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_1
andstrain_2
In case
strain_1=None
andstrain_2=None
all 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]#
Section
belonging to te girder
- property half_point: float#
vertical middle between and bottom
- property height: float#
height of the cross-section
- 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}\)