m_n_kappa.section.ComputationSectionStrain#

class m_n_kappa.section.ComputationSectionStrain(section, strain_value)#

Bases: ComputationSection

compute section under a constant strain-value

New in version 0.1.0.

Parameters:
  • section (Section) – section to compute

  • strain_value (float) – given strain-value to compute

See also

ComputationSectionCurvature

ComputationSection to compute values under linear-distributed strain

Notes

For the basic computation refer to ComputationSection.

Examples

A Section is defined as follows.

>>> from m_n_kappa import Rectangle, Steel
>>> steel = Steel(f_y=355)
>>> rectangle = Rectangle(top_edge=0.0, bottom_edge=10, width=10)
>>> section = steel + rectangle

The computation for a given strain started by initializing ComputationSectionStrain

>>> from m_n_kappa.section import ComputationSectionStrain
>>> computed_section = ComputationSectionStrain(section, strain_value=0.001)

The computed axial-force \(N_i\) is given as follows:

>>> computed_section.axial_force
21000.0

The lever-arm \(r_i\) is computed as follows:

>>> computed_section.lever_arm()
5.0

And the moment \(M_i\) is given as follows

>>> computed_section.moment()
105000.0

Methods

lever_arm()

lever-arm of the section under the given strain-distribution \(r_i\)

material_strains()

strains of the associated material-model

maximum_negative_strain()

maximum negative strain from associated material-model

maximum_negative_strain_position()

maximum negative strain from associated material-model

maximum_positive_strain()

maximum positive strain from associated material-model

maximum_positive_strain_position()

maximum positive strain from associated material-model

moment()

moment under the given strain distribution

section_strains()

strains of the associated material-model

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

collect all strain-positions between strain_1 and strain_2 (if given)

Attributes

axial_force

axial-force of the section in case of the given strain-distribution \(N_i\)

bottom_edge_maximum_strain

StrainPosition with maximum strain on bottom edge of section

bottom_edge_minimum_strain

StrainPosition with minimum strain on bottom edge of section

edges_strain

strains at the edges (bottom and top) of the section, computed from the strain distribution

edges_stress

stresses at the edges (bottom and top) of the section

geometry

geometry of the section

material

material of the section

section

basic Section

section_type

strain

applied strain

stress_interception

interception-value of the linear stress-distribution of the section

stress_slope

linear slope of the stresses over the vertical direction of the section

top_edge_maximum_strain

StrainPosition with maximum strain on top edge of section

top_edge_minimum_strain

StrainPosition with minimum strain on top edge of section

lever_arm()#

lever-arm of the section under the given strain-distribution \(r_i\)

Returns:

lever-arm of the section under a given strain-distribution

Return type:

float

See also

Lever arm

More descriptive explanation of the computation

Notes

In case of a Rectangle or a Trapezoid the lever-arm is computed as follows.

(1)#\[r_i = \frac{1}{N_i} \int_{z_\mathrm{top}}^{z_\mathrm{bottom}} \sigma(z) \cdot b(z) \cdot z~dz\]

In case of a Circle the lever-arm applies as the centroid of the circle. It is assumed that only reinforcement-bars are modelled as circles and therefore small in comparison to the rest of the cross-section.

material_strains()#

strains of the associated material-model

Return type:

list[float]

maximum_negative_strain()#

maximum negative strain from associated material-model

Return type:

float

maximum_negative_strain_position()#

maximum negative strain from associated material-model

New in version 0.2.0.

Return type:

StrainPosition

maximum_positive_strain()#

maximum positive strain from associated material-model

Return type:

float

maximum_positive_strain_position()#

maximum positive strain from associated material-model

New in version 0.2.0.

Return type:

StrainPosition

moment()#

moment under the given strain distribution

See also

Moment

More descriptive explanation of the computation

Returns:

moment under the given strain distribution

Return type:

float

section_strains()#

strains of the associated material-model

Return type:

list[dict]

strain_positions(strain_1=None, strain_2=None, include_strains=False)#

collect all strain-positions between strain_1 and strain_2 (if given)

New in version 0.2.0.

Parameters:
  • strain_1 (float) – first strain border (Default: None)

  • strain_2 (float) – second strain border (Default: None)

  • include_strains (bool) – includes the boundary strain values (Default: False)

Returns:

collected :py:class:`~m_n_kappa.StrainPosition

Return type:

list[StrainPosition]

property axial_force: float#

axial-force of the section in case of the given strain-distribution \(N_i\)

See also

Axial force

More descriptive explanation of the computation

property bottom_edge_maximum_strain: StrainPosition#

StrainPosition with maximum strain on bottom edge of section

property bottom_edge_minimum_strain: StrainPosition#

StrainPosition with minimum strain on bottom edge of section

property edges_strain: list#

strains at the edges (bottom and top) of the section, computed from the strain distribution

property edges_stress: list#

stresses at the edges (bottom and top) of the section

property geometry#

geometry of the section

property material#

material of the section

property section: Section#

basic Section

property strain: float#

applied strain

property stress_interception: float#

interception-value of the linear stress-distribution of the section

property stress_slope: float#

linear slope of the stresses over the vertical direction of the section

property top_edge_maximum_strain: StrainPosition#

StrainPosition with maximum strain on top edge of section

property top_edge_minimum_strain: StrainPosition#

StrainPosition with minimum strain on top edge of section