m_n_kappa.section.ComputationSection#

class m_n_kappa.section.ComputationSection(geometry, material)#

Bases: Section

base class for specified ComputationsSection-classes

New in version 0.1.0.

See also

ComputationSectionStrain

ComputationSection to compute values under constant strain

ComputationSectionCurvature

ComputationSection to compute values under linear-distributed strain

Notes

The computation of axial-force \(N_i\), lever-arm \(r_i\) and moment \(M_i\)

Parameters:

Examples

A section may be created in two ways. In both cases a Material and a Geometry instance is needed.

>>> from m_n_kappa import Steel, Rectangle
>>> steel = Steel(f_y=355.0)
>>> rectangle = Rectangle(top_edge=0.0, bottom_edge=10, width=10.0)

The first way is by simply adding the steel (Material instance) and a rectangle (Geometry instance).

>>> section_top = steel + rectangle
>>> section_top
Section(geometry=Rectangle(top_edge=0.00, bottom_edge=10.00, width=10.00, left_edge=-5.00, right_edge=5.00), material=Steel(f_y=355.0, f_u=None, failure_strain=None, E_a=210000.0))

Alternatively a section is created by passing rectangle and steel as arguments to Section.

>>> from m_n_kappa import Section
>>> section_bottom = Section(geometry=rectangle, material=steel)
>>> section_bottom
Section(geometry=Rectangle(top_edge=0.00, bottom_edge=10.00, width=10.00, left_edge=-5.00, right_edge=5.00), material=Steel(f_y=355.0, f_u=None, failure_strain=None, E_a=210000.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

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 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