m_n_kappa.crosssection.ComputationCrosssectionStrain#

class m_n_kappa.crosssection.ComputationCrosssectionStrain(sections, strain, slab_effective_widths=None)#

Bases: ComputationCrosssection

computes a cross-section under a constant strain_value assuming zero curvature

New in version 0.1.0.

Parameters:
  • sections (list[Section] | Crosssection) – sections the cross_section consists of

  • strain (float) – applied constant strain_value \(\varepsilon\)

  • slab_effective_widths (EffectiveWidths) – effective widths’ for the slab (concrete and reinforcement)

See also

ComputationCrosssectionCurvature

computes a cross-section under a strain-distribution initialized by a curvature and a neutral-axis-value

Examples

>>> from m_n_kappa import IProfile, Steel
>>> steel = Steel(f_y=355.0)
>>> 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 = i_geometry + steel

To apply a strain onto the cross-section ComputationCrosssectionStrain has to be initialized as follows.

>>> from m_n_kappa.crosssection import ComputationCrosssectionStrain
>>> compute_cross_section = ComputationCrosssectionStrain(
...     sections=cross_section, strain=0.001)

The total axial-force is given by calling total_axial_force() as follows.

>>> compute_cross_section.total_axial_force()
1599150.0

The axial-force carryied by the slab (concrete + reinforcement) is computed by calling slab_sections_axial_force().

>>> compute_cross_section.slab_sections_axial_force()
0

Whereas the axial-force of the streel-girder is computed by girder_sections_axial_force().

>>> compute_cross_section.girder_sections_axial_force()
1599150.0

Methods

add_section(section)

add a Section to this cross-section

concrete_slab_width()

full width of the concrete slab

decisive_maximum_negative_strain_position()

minimum of all maximum negative strains

decisive_maximum_positive_strain_position()

minimum of all maximum positive strains

get_boundary_conditions()

curvature boundary values under positive and negative curvature

get_sub_cross_sections()

get cross-section split into slab- and girder-sections (the sub-cross-sections)

girder_sections_axial_force()

summarized axial force of the girder sections

girder_sections_moment()

summarized moment of the girder sections

left_edge()

outer left-edge of the concrete-slab

maximum_negative_strain()

determine maximum positive strain of all sections associated with this cross-section

maximum_positive_strain()

determine maximum positive strain of all sections associated with this cross-section

right_edge()

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

slab_sections_axial_force()

summarized axial forces of the slab sections

slab_sections_moment()

summarized moments of the slab sections

strain_positions([strain_1, strain_2, ...])

get all StrainPosition-values between strain_1 and strain_2

total_axial_force()

summarized axial forces of the cross_section

total_moment()

summarized moments of the cross_section

Attributes

bottom_edge

overall vertical position of the bottom edge of the cross-section \(z_\mathrm{bottom}\)

compute_sections

Section in sections transformed into ComputationSection

compute_split_sections

split computation sections

computed_girder_sections

sections of the girder (computed)

computed_slab_sections

sections of the slab (computed)

girder_sections

Section belonging to te girder

half_point

vertical middle between and bottom

height

height of the cross-section

section_type

section-type this cross-section is associated with, if it is only one

sections

all sections associated with this cross-section

slab_effective_width

effective widths of the (concrete) slab

slab_sections

all slab-sections of this cross-section

strain

applied strain_value to the cross_section

top_edge

top-edge of the cross-section \(z_\mathrm{top}\)

add_section(section)#

add a Section to this cross-section

Parameters:

section (Section) – section to add to this cross-section

Return type:

None

Raises:

ValueError – if section is not of type Section

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:

StrainPosition

decisive_maximum_positive_strain_position()#

minimum of all maximum positive strains

New in version 0.2.0.

Return type:

StrainPosition

get_boundary_conditions()#

curvature boundary values under positive and negative curvature

Returns:

curvature boundary values under positive and negative curvature

Return type:

Boundaries

See also

get_boundaries()

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 between strain_1 and strain_2

In case strain_1=None and strain_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 in sections transformed into ComputationSection

property compute_split_sections: list#

split computation sections

property computed_girder_sections: list#

sections of the girder (computed)

property computed_slab_sections: list#

sections of the slab (computed)

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 strain: float#

applied strain_value to the cross_section

property top_edge: float#

top-edge of the cross-section \(z_\mathrm{top}\)