m_n_kappa.MNKappaCurve#
- class m_n_kappa.MNKappaCurve(sub_cross_sections, include_positive_curvature=True, include_negative_curvature=False)#
Bases:
object
computation of Moment-Axial-Force-Curvature curve (M-N-Kappa)
New in version 0.2.0.
- Parameters:
sub_cross_sections (
Crosssection
| list[Crosssection
] |) –include_positive_curvature (bool) –
include_negative_curvature (bool) –
- :param tuple[
Crosssection
: Sub-cross-sections to compute the M-N-Kappa-curve. In case given as single
Crosssection
this cross-section must consist of a slab (Concrete and Reinforcement) and a girder (Steel)- :param
Crosssection
]: Sub-cross-sections to compute the M-N-Kappa-curve. In case given as single
Crosssection
this cross-section must consist of a slab (Concrete and Reinforcement) and a girder (Steel)
- Parameters:
include_positive_curvature (bool) – if
True
then positive curvature values are computed (Default:True
)include_negative_curvature (bool) – if
True
then negative curvature values are computed (Default:False
)sub_cross_sections (m_n_kappa.crosssection.Crosssection | list[m_n_kappa.crosssection.Crosssection] | tuple[m_n_kappa.crosssection.Crosssection, m_n_kappa.crosssection.Crosssection]) –
:raises TypeError : if neither a ~m_n_kappa.Crosssection, list[~m_n_kappa.Crosssection]: or tuple[~m_n_kappa.Crosssection, ~m_n_kappa.Crosssection] are passed
See also
MKappaCurve
computation of Moment-Curvature-Curve assuming full interaction
Examples
This example illustrates the usage of
MNKappaCurve
. First two individual cross-sections may be created. In the following both cross-sections areRectangle
of materialSteel
.>>> from m_n_kappa import Steel, Rectangle, Crosssection >>> steel = Steel(f_y=355, f_u=400, failure_strain=0.15) >>> rectangle_top = Rectangle(top_edge=0.0, bottom_edge=10.0, width=10.0) >>> section_top = steel + rectangle_top >>> cross_section_top = Crosssection([section_top]) >>> rectangle_bottom = Rectangle(top_edge=10.0, bottom_edge=20.0, width=10.0) >>> section_bottom = steel + rectangle_bottom >>> cross_section_bottom = Crosssection([section_bottom]) >>> sub_cross_sections = [cross_section_top, cross_section_bottom]
To compute moment-axial-force-curvature points these the list of
sub_cross_sections
shall be passed toMNKappaCurve
. In case you want to compute only positive moment-curvature-values you have toinclude_positive_curvature=True
, what is also the default configuration. Negative moment-curvature-values are included byinclude_negative_curvature=True
.The following code computes only positive values:
>>> from m_n_kappa import MNKappaCurve >>> m_n_kappa_curve = MNKappaCurve( ... sub_cross_sections=sub_cross_sections, ... include_positive_curvature=True)
points`()
returnsMNKappaCurvePoints()
what is a collection of all the successfully computed Moment-Axial force-Curvature points. The attributesmoments
,curvatures
,axial_forces
,strain_differences
, gives you a list of the corresponding values.>>> m_n_kappa_points = m_n_kappa_curve.points >>> m_n_kappa_points.moments [355026.8934163825, 400000.0, 0.0, 236666.87937886757, 236666.50674824225, 372381.6934067906, 372282.02545773983, 361270.59229865274, 406270.5922986528, 384814.01494666666]
print_points()
prints a full table consisting of all successfully computed values.>>> print(m_n_kappa_points.print_points()) ---------------------------------------------------------------------------------------------------------------------------------- Moment | Curvature | Neutral A.1 | Neutral A.2 | Axial-force | strain-diff. | Strain | Position | Material ---------------------------------------------------------------------------------------------------------------------------------- 0.0 | 0.00000000 | 0.0000 | 0.0000 | 0.00 | 0.000000 | 0.000000 | 0.0 | - 236666.5 | 0.00016905 | 10.0000 | 10.0000 | 0.00 | 0.000000 | -0.001690 | 0.0 | Steel 236666.9 | 0.00016905 | 10.0000 | 10.0000 | 0.00 | 0.000000 | 0.001690 | 20.0 | Steel 355026.9 | 0.00000000 | Infinity | Infinity | -35500.00 | -0.003558 | -0.001690 | 0.0 | Steel 361270.6 | 0.01483095 | 10.1140 | 10.2916 | -35500.00 | -0.002634 | -0.001690 | 10.0 | Steel 372282.0 | 0.00923123 | 9.8175 | 10.1831 | 35500.00 | 0.003375 | -0.001690 | 10.0 | Steel 372381.7 | 0.00923123 | 9.8169 | 10.1825 | -35500.00 | -0.003375 | 0.001690 | 10.0 | Steel 384814.0 | 0.01500000 | 10.0000 | 10.0000 | 0.00 | 0.000000 | -0.150000 | 0.0 | Steel 400000.0 | 0.00000000 | Infinity | Infinity | -40000.00 | -0.300000 | -0.150000 | 0.0 | Steel 406270.6 | 0.01483095 | 9.7084 | 9.8860 | 35500.00 | 0.002634 | 0.001690 | 10.0 | Steel ----------------------------------------------------------------------------------------------------------------------------------
Attributes
returns if \(M\)-\(N\)-\(\kappa\) under negative bending/curvature is included
returns if \(M\)-\(N\)-\(\kappa\) under positive bending/curvature is included
M-N-curve (without curvature)
for those computations that were not successful, here the reasons are given
moment-axial-force-curvature points of the curve
cross-section the \(M\)-\(N\)-\(\kappa\)-curve shall be computed
- property include_negative_curvature: bool#
returns if \(M\)-\(N\)-\(\kappa\) under negative bending/curvature is included
- property include_positive_curvature: bool#
returns if \(M\)-\(N\)-\(\kappa\) under positive bending/curvature is included
- property not_successful_reason: list[m_n_kappa.general.NotSuccessfulReason]#
for those computations that were not successful, here the reasons are given
- property points: MNKappaCurvePoints#
moment-axial-force-curvature points of the curve
- property sub_cross_sections: tuple[m_n_kappa.crosssection.Crosssection, m_n_kappa.crosssection.Crosssection]#
cross-section the \(M\)-\(N\)-\(\kappa\)-curve shall be computed