m_n_kappa.crosssection.ComputationCrosssectionCurvature#
- class m_n_kappa.crosssection.ComputationCrosssectionCurvature(cross_section, curvature, neutral_axis_value, slab_effective_width=None)#
Bases:
ComputationCrosssection
computes a cross-section given a curvature and a neutral axis
New in version 0.1.0.
- Parameters:
cross_section (
Crosssection
| list[Section
]) – the cross-sectioncurvature (float) – curvature to compute values
neutral_axis_value (float) – position_value where strain_value is zero
slab_effective_width (
EffectiveWidths
) – effective widths’ for the slab (concrete and reinforcement)
See also
ComputationCrosssectionStrain
computes a cross-section under a constant strain_value
Examples
For example a HEB 200 steel girder is computed. First it is created as follows.
>>> from m_n_kappa import IProfile, Steel >>> steel = Steel(f_y=355, failure_strain=0.15) >>> i_profile = IProfile( ... top_edge=0.0, t_w=9.5, h_w=200-2*15, b_fo=200.0, t_fo=15.0) >>> steel_cross_section = i_profile + steel
To compute the girder a
curvature
-value as well as aneutral_axis_value
needs to be passed toComputationCrosssectionCurvature
.>>> from m_n_kappa.crosssection import ComputationCrosssectionCurvature >>> computed_cross_section = ComputationCrosssectionCurvature( ... cross_section=steel_cross_section, curvature=0.0001, neutral_axis_value=100.0)
As the
neutral_axis_value
is chosen to be in the mid-height of the cross-section, (almost) zero axial-forces are computed.>>> round(computed_cross_section.total_axial_force(), 7) 0.0
The moment on the other hand is much higher and assuming Newton and Millimeter as input is here computed to Kilo-Newton-Meter.
>>> computed_cross_section.total_moment() * 0.001 * 0.001 221.07004924606247
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
gives the points included between the curvature and zero strain_value
get cross-section split into slab- and girder-sections (the sub-cross-sections)
summarized axial force of the girder sections
summarized moment of the girder 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
summarized axial forces of the slab sections
summarized moments of the slab sections
strain_positions
([strain_1, strain_2, ...])get all
StrainPosition
-values betweenstrain_1
andstrain_2
summarized axial forces of the cross_section
summarized moments of the cross_section
Attributes
overall vertical position of the bottom edge of the cross-section \(z_\mathrm{bottom}\)
Section
insections
transformed intoComputationSection
sections split at material points
sections of the girder (computed)
sections of the slab (computed)
applied curvature to the cross_section
Section
belonging to te girdervertical middle between and bottom
height of the cross-section
position_value where strain_value is zero
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_material_points_inside_curvature()#
gives the points included between the curvature and zero strain_value
- Return type:
- 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
- girder_sections_axial_force()#
summarized axial force of the girder sections
- Return type:
float
- girder_sections_moment()#
summarized moment of the girder sections
- Return type:
float
- 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
]
- slab_sections_axial_force()#
summarized axial forces of the slab sections
- Return type:
float
- slab_sections_moment()#
summarized moments of the slab sections
- Return type:
float
- 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
]
- total_axial_force()#
summarized axial forces of the cross_section
- Return type:
float
- total_moment()#
summarized moments of the cross_section
- Return type:
float
- property bottom_edge: float#
overall vertical position of the bottom edge of the cross-section \(z_\mathrm{bottom}\)
- property compute_sections: list[m_n_kappa.section.ComputationSection]#
Section
insections
transformed intoComputationSection
- property compute_split_sections: list[m_n_kappa.section.ComputationSectionCurvature]#
sections split at material points
- property computed_girder_sections: list#
sections of the girder (computed)
- property computed_slab_sections: list#
sections of the slab (computed)
- property curvature: float#
applied curvature to the cross_section
- 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 neutral_axis: float#
position_value where strain_value is zero
- 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}\)