@@ -1184,7 +1184,8 @@ def calculate_plastic_properties(
11841184 Note:
11851185 If materials are specified, the values calculated for the plastic section
11861186 moduli are displayed as plastic moments (i.e :math:`M_p = f_y S`) and the
1187- shape factors are not calculated.
1187+ shape factors are calculated as the ratio between the plastic moment and the
1188+ yield moment.
11881189
11891190 Warning:
11901191 The geometric properties must be calculated prior to the calculation of the
@@ -1197,7 +1198,7 @@ def calculate_plastic_properties(
11971198
11981199 - Plastic centroids (centroidal and principal axes)
11991200 - Plastic section moduli (centroidal and principal axes)
1200- - Shape factors, non-composite only (centroidal and principal axes)
1201+ - Shape factors (centroidal and principal axes)
12011202 """
12021203 # check that a geometric analysis has been performed
12031204 if self .section_props .cx is None :
@@ -3167,22 +3168,25 @@ def get_mp_p(self) -> tuple[float, float]:
31673168 def get_sf (self ) -> tuple [float , float , float , float ]:
31683169 """Returns the cross-section centroidal axis shape factors.
31693170
3170- This is a geometric only property, as such this can only be returned if material
3171- properties have *not* been applied to the cross-section.
3171+ For a geometric-only analysis, the shape factor is defined as the ratio between
3172+ the plastic section modulus and the elastic section modulus. For a composite
3173+ analysis the shape factors is defined as the ratio between the plastic moment
3174+ and the yield moment.
3175+
3176+ .. note::
3177+ For composite analyses, the ``plus`` values will always equal the ``minus``
3178+ values as the yield moment occurs when the first fibre reaches its yield
3179+ strength. For geometric-only analyses, the elastic section moduli is
3180+ calculated with respect to the top and bottom fibres (i.e. ``plus`` and
3181+ ``minus``).
31723182
31733183 Returns:
31743184 Centroidal axis shape factors with respect to the top and bottom fibres
31753185 (``sf_xx_plus``, ``sf_xx_minus``, ``sf_yy_plus``, ``sf_yy_minus``)
31763186
31773187 Raises:
3178- RuntimeError: If material properties have been applied
31793188 RuntimeError: If a plastic analysis has not been performed
31803189 """
3181- if self .is_composite ():
3182- msg = "Attempting to get a geometric only property for a composite analysis"
3183- msg += " (material properties have been applied)."
3184- raise RuntimeError (msg )
3185-
31863190 if (
31873191 self .section_props .sf_xx_plus is None
31883192 or self .section_props .sf_xx_minus is None
@@ -3202,22 +3206,25 @@ def get_sf(self) -> tuple[float, float, float, float]:
32023206 def get_sf_p (self ) -> tuple [float , float , float , float ]:
32033207 """Returns the cross-section principal axis shape factors.
32043208
3205- This is a geometric only property, as such this can only be returned if material
3206- properties have *not* been applied to the cross-section.
3209+ For a geometric-only analysis, the shape factor is defined as the ratio between
3210+ the plastic section modulus and the elastic section modulus. For a composite
3211+ analysis the shape factors is defined as the ratio between the plastic moment
3212+ and the yield moment.
3213+
3214+ .. note::
3215+ For composite analyses, the ``plus`` values will always equal the ``minus``
3216+ values as the yield moment occurs when the first fibre reaches its yield
3217+ strength. For geometric-only analyses, the elastic section moduli is
3218+ calculated with respect to the top and bottom fibres (i.e. ``plus`` and
3219+ ``minus``).
32073220
32083221 Returns:
32093222 Principal bending axis shape factors with respect to the top and bottom
32103223 fibres (``sf_11_plus``, ``sf_11_minus``, ``sf_22_plus``, ``sf_22_minus``)
32113224
32123225 Raises:
3213- RuntimeError: If material properties have been applied
32143226 RuntimeError: If a plastic analysis has not been performed
32153227 """
3216- if self .is_composite ():
3217- msg = "Attempting to get a geometric only property for a composite analysis"
3218- msg += " (material properties have been applied)."
3219- raise RuntimeError (msg )
3220-
32213228 if (
32223229 self .section_props .sf_11_plus is None
32233230 or self .section_props .sf_11_minus is None
0 commit comments