m_n_kappa.section.ComputationSectionCurvature#
- class m_n_kappa.section.ComputationSectionCurvature(section, curvature, neutral_axis)#
Bases:
ComputationSection
compute section given a curvature and a neutral axis
New in version 0.1.0.
- Parameters:
section (
Section
) – section to computecurvature (float) – curvature to apply to the section \(\kappa\)
neutral_axis (float) – point where the strain_value is zero \(z_\mathrm{n}\)
See also
ComputationSectionStrain
ComputationSection to compute values under constant strain
- Sections
check out for a more detailed explanation.
Notes
For the basic computation refer to
ComputationSection
.The overall procedure is:
Determine the strains at the edges from the given strain-distribution. The strain-distribution is computed by the curvature and the neutral axis
Compute the stresses at the edges passing the strains to the material-model
Determine the stress-distribution (slope and interception)
Compute the axial-force by combining the stress-distribution with the crosssectional area of the section
Lever-arm and moment may be computed in succession, if needed.
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 curvature and a given neutral-axis started by invoking
ComputationSectionCurvature
>>> from m_n_kappa.section import ComputationSectionCurvature >>> computed_section = ComputationSectionCurvature(section, curvature=0.0001, neutral_axis=10.0)
The computed axial-force \(N_i\) is given as follows:
>>> computed_section.axial_force -10500.0
The lever-arm \(r_i\) is computed as follows:
>>> computed_section.lever_arm() 3.3333333333333335
And the moment \(M_i\) is given as follows
>>> computed_section.moment() -35000.0
Methods
lever-arm of the section under the given strain-distribution \(r_i\)
compute those material-points that are between the given strains from the given curvature and zero strain.
strains of the associated material-model
maximum negative strain from associated material-model
maximum negative strain from associated material-model
maximum positive strain from associated material-model
maximum positive strain from associated material-model
moment
()moment under the given strain distribution
strains of the associated material-model
split_section
([effective_widths])split sections considering the material points and the maximum effective widths
strain_positions
([strain_1, strain_2, ...])collect all strain-positions between
strain_1
andstrain_2
(if given)Attributes
axial-force of the section in case of the given strain-distribution \(N_i\)
StrainPosition
with maximum strain on bottom edge of sectionStrainPosition
with minimum strain on bottom edge of sectioninput-curvature \(\kappa\)
strains at the edges (bottom and top) of the section, computed from the strain distribution
stresses at the edges (bottom and top) of the section
difference of stresses between the given edges
geometry of the section
material of the section
input neutral axis \(z_\mathrm{n}\)
basic
Section
section_type
interception-value of the linear stress-distribution of the section
linear slope of the stresses over the vertical direction of the section
StrainPosition
with maximum strain on top edge of sectionStrainPosition
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 aTrapezoid
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_points_inside_curvature()#
compute those material-points that are between the given strains from the given curvature and zero strain.
- Return type:
list[
StrainPosition
]
- 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:
- 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:
- 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]
- split_section(effective_widths=None)#
split sections considering the material points and the maximum effective widths
- Parameters:
effective_widths (
EffectiveWidths
) – effective widths applied to the split section- Returns:
the split sections
- Return type:
list[
ComputationSection
]
- strain_positions(strain_1=None, strain_2=None, include_strains=False)#
collect all strain-positions between
strain_1
andstrain_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 curvature: float#
input-curvature \(\kappa\)
- 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 edges_stress_difference: float#
difference of stresses between the given edges
- property geometry#
geometry of the section
- property material#
material of the section
- property neutral_axis: float#
input neutral axis \(z_\mathrm{n}\)
- 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