NZS3101:2006#

class concreteproperties.design_codes.nzs3101.NZS3101[source]

Design code class for the New Zealand concrete design standard NZS3101:2006.

Also implements the requirements of the NZSEE C5 assessment guidelines for probable strength design.

Note

Note that this design code currently only supports Concrete and SteelBarNZ material objects. Meshed Steel material objects are not supported as this falls under the composite structures design code.

Using the NZS3101:2006 design code starts by creating an NZS3101 object:

from concreteproperties.design_codes.nzs3101 import NZS3101

design_code = NZS3101()

After a ConcreteSection object has been created it must be assigned to the design code:

design_code.assign_concrete_section(concrete_section=concrete_section)
NZS3101.assign_concrete_section(concrete_section: ConcreteSection, section_type: str = 'column') None[source]

Assigns a concrete section and section type to the design code.

Parameters:
  • concrete_section (ConcreteSection) – Concrete section object to analyse

  • section_type (str) –

    The type of member being analysed:

    • "column" - Analyses assigned concrete section object as a column (or beam) member in accordance with NZS3101:2006 Chapter 9 or 10 as appropriate

    • "wall" - Analyses assigned concrete section object as a doubly reinforced wall member in accordance with NZS3101:2006 Chapter 11

    • "wall_sr_s" - Analyses assigned concrete section object as a singly reinforced wall member in accordance with NZS3101:2006 Chapter 11 for design actions causing bending about the strong axis

    • "wall_sr_m"- Analyses assigned concrete section object as a singly reinforced wall member in accordance with NZS3101:2006 Chapter 11 for design actions causing bending about the minor axis

Raises:
  • ValueError – If the concrete section contains meshed reinforcement

  • ValueError – If section type for the analysis of the concrete section is not valid

Note

To maintain unit consistency, the cross-section dimensions should be entered in [mm].

Creating Material Properties#

The NZS3101 class can be used to easily create material objects whose attributes comply with the standard.

NZS3101.create_concrete_material(compressive_strength: float, ultimate_strain: float = 0.003, density: float = 2300, colour: str = 'lightgrey') Concrete[source]

Returns a concrete material object to NZS3101:2006.

Material assumptions

  • Density: Defaults to 2300 kg/m3 unless supplied as user input

  • Elastic modulus: Calculated from NZS3101:2006 Eq. 5-1

  • Serviceability stress-strain profile: Linear with no tension

  • Ultimate stress-strain profile: Rectangular stress block, parameters from NZS3101:2006 CL 7.4.2.7, maximum compressive strain of 0.003

  • Lower characteristic tensile strength of concrete: Calculated from NZS3101:2006 Eq. 5-2

Parameters:
  • compressive_strength (float) – 28 day compressive design strength (MPa)

  • ultimate_strain (float) – Maximum concrete compressive strain at crushing of the concrete for design

  • density (float) – Saturated surface dry density of concrete material

  • colour (str) – Colour of the concrete for rendering, defaults to ‘lightgrey’

Returns:

Concrete material object

Return type:

Concrete

from concreteproperties.design_codes import NZS3101

design_code = NZS3101()
concrete = design_code.create_concrete_material(compressive_strength=40)

concrete.stress_strain_profile.plot_stress_strain(
  title=f"{concrete.name} - Service Profile"
)
concrete.ultimate_stress_strain_profile.plot_stress_strain(
  title=f"{concrete.name} - Ultimate Profile"
)

(Source code)

../../_images/nzs3101-1_00.png

(png, hires.png, pdf)#

../../_images/nzs3101-1_01.png

(png, hires.png, pdf)#

NZS3101.create_steel_material(steel_grade: str | None = None, yield_strength: float | None = None, fracture_strain: float | None = None, phi_os: float | None = None, colour: str = 'red') SteelBarNZ[source]

Returns a steel material object specific to the NZS3101:2006 code.

Material assumptions

  • Density: 7850 kg/m3

  • Elastic modulus: 200000 MPa

  • Stress-strain profile: Elastic-plastic, fracture strain \(\varepsilon_{su}\) from AS/NZS4671 Table 7.2(A) or NZSEE C5 assessment guidelines (for historic reinforcement grades)

Parameters:
  • steel_grade (str | None) – Designation of the grade of reinforcement bar to be analysed, included predefined current and historic grades. See below for further information.

  • yield_strength (float | None) – Steel characteristic yield strength (MPa). Note for a predefined steel grade based on probable strength properties this is interpreted as the probable yield strength. Also note for a user defined steel grade, this is always entered on the basis of a characteristic yield strength, even if undertaking a probable strength based analysis. The analysis will internally scale the characteristic yield stress by 1.08 as per NZSEE C5 assessment guidelines C5.4.3.

  • fracture_strain (float | None) – Lower bound tensile strain (\(\varepsilon_{su}\)), based on characteristic uniform elongation limit from AS/NZS4671 Table 7.2(A) or NZSEE C5 assessment guidelines Table C5.4.

  • phi_os (float | None) – Overstrength factor depending on reinforcement grade (\(\phi_{o,f_y}\) or \(\phi_o\)), refer to NZS3101:2006 CL 2.6.5.5, or for a probable strength assessment to the NZSEE C5 assessment guidelines refer to NZSEE C5 Table C5.4.

  • colour (str) – Colour of the steel for rendering, if user does not provide a value, characteristic strength based materials will be rendered as red, and probable strength based materials will be rendered as blue.

Raises:

RuntimeError – If a predefined steel grade is not provided and the required material properties have not been provided. For creating a user defined steel material, values for yield_strength, fracture_strain & phi_os are required to define a valid user defined material.

Returns:

Steel bar material object

Return type:

SteelBarNZ

Note

Steel grade designation

By using a valid steel grade designation the required input parameters are initiated with the required values for current reinforcement grades from the AS/NZS4671 standard or for historic grades from the NZSEE C5 assessment guidelines. Note user may overwrite any parameter of a predefined material by providing that parameter as input to NZS3101.create_steel_material().

Note if no predefined steel grade is provided, a steel grade name of 'user_' + yield strength is utilised.

NZS3101:2006 & NZSEE C5 asessment guidelines predefined steel materials

NZS3101:2006 characteristic yield strength based predefined materials:

  • ""300e"" - Use for design to NZS3101:2006 provisions

    • Characteristic yield strength \(f_y\) = 300 MPa

    • Fracture strain \(\varepsilon_{su}\) = 15% or 0.15

    • Overstrength factor \(\phi_{o,f_y}\) = 1.35

  • ""500e"" - Use for design to NZS3101:2006 provisions

    • Characteristic yield strength \(f_y\) = 500 MPa

    • Fracture strain \(\varepsilon_{su}\) = 10% or 0.10

    • Overstrength factor \(\phi_{o,f_y}\) = 1.35

NZSEE C5 guidelines probable yield strength based predefined materials:

  • ""pre_1945""- Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 280 MPa

    • Fracture strain \(\varepsilon_{su}\) = 10% or 0.10

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""33"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 280 MPa

    • Fracture strain \(\varepsilon_{su}\) = 10% or 0.10

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""40"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 324 MPa

    • Fracture strain \(\varepsilon_{su}\) = 15% or 0.15

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""275"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 324 MPa

    • Fracture strain \(\varepsilon_{su}\) = 15% or 0.15

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""hy60"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 455 MPa

    • Fracture strain \(\varepsilon_{su}\) = 12% or 0.12

    • Overstrength factor \(\phi_{f_o}\) = 1.5

  • ""380"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 455 MPa

    • Fracture strain \(\varepsilon_{su}\) = 12% or 0.12

    • Overstrength factor \(\phi_{f_o}\) = 1.5

  • ""430"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 464 MPa

    • Fracture strain \(\varepsilon_{su}\) = 12% or 0.12

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""300"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 324 MPa

    • Fracture strain \(\varepsilon_{su}\) = 15% or 0.15

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""500n"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 500 MPa

    • Fracture strain \(\varepsilon_{su}\) = 5% or 0.05

    • Overstrength factor \(\phi_{f_o}\) = 1.5

  • ""500"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 540 MPa

    • Fracture strain \(\varepsilon_{su}\) = 10% or 0.10

    • Overstrength factor \(\phi_{f_o}\) = 1.25

  • ""cd_mesh"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 600 MPa

    • Fracture strain \(\varepsilon_{su}\) = 1.5% or 0.015

    • Overstrength factor \(\phi_{f_o}\) = 1.2

  • ""duc_mesh"" - Use for probable strength design to NZSEE C5 assessment guidelines

    • Probable yield strength \(f_{yp}\) = 500 MPa

    • Fracture strain \(\varepsilon_{su}\) = 3% or 0.03

    • Overstrength factor \(\phi_{f_o}\) = 1.2

from concreteproperties.design_codes import NZS3101

design_code = NZS3101()
steel = design_code.create_steel_material(steel_grade="500E")

steel.stress_strain_profile.plot_stress_strain(
  title=f"{steel.name} - Stress-Strain Profile"
)

(Source code, png, hires.png, pdf)

../../_images/nzs3101-2.png

Calculating Section Properties#

Analysis methods can be called from the NZS3101 object similar to ConcreteSection object. The following methods are identical to those found in the ConcreteSection object, i.e. do not apply any capacity reduction factors:

The following methods have been modified for NZS3101:2006, with codified capacity reduction factors applied.

NZS3101.ultimate_bending_capacity(pphr_class: str = 'NDPR', analysis_type: str = 'nom_chk', theta: float = 0.0, n_design: float = 0.0) tuple[UltimateBendingResults, UltimateBendingResults, float][source]

Calculates the ultimate bending capacity.

Calculates the ultimate bending capacity with capacity factors to NZS3101:2006 or the NZSEE C5 assessment guidelines dependant on analysis type.

Parameters:
  • pphr_class (str) – Potential Plastic Hinge Region (PPHR) classification, "NDPR"/"LDPR"/"DPR"

  • analysis_type (str) – The type of cross section analysis to undertake on the defined concrete section, by default a normal nominal strength design check is undertaken, refer to NZS3101.capacity_reduction_factor() for further information on analysis types.

  • theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

  • n_design (float) – Axial design force (\(N^*\))

Returns:

Factored and unfactored ultimate bending results objects, and capacity reduction factor (factored_results, unfactored_results, phi)

Return type:

tuple[UltimateBendingResults, UltimateBendingResults, float]

PPHR Classifications

  • NDPR = Nominally Ductile Plastic Region

  • LDPR = Limited Ductile Plastic Region

  • DPR = Ductile Plastic Region

NZS3101.moment_interaction_diagram(pphr_class: str = 'NDPR', analysis_type: str = 'nom_chk', theta: float = 0, control_points: list[tuple[str, float]] | None = None, labels: list[str] | None = None, n_points: int = 24, n_spacing: int | None = None, max_comp_labels: list[str] | None = None, progress_bar: bool = True) tuple[MomentInteractionResults, MomentInteractionResults, list[float]][source]

Generates a moment interaction diagram.

Generates a moment interaction diagram with capacity factors and material strengths to NZS3101:2006 or the NZSEE C5 assessment guidelines dependant on analysis type.

Parameters:
  • pphr_class (str) – Potential Plastic Hinge Region (PPHR) classification, "NDPR"/"LDPR"/"DPR"

  • analysis_type (str) – The type of cross section analysis to undertake on the defined concrete section, by default a normal nominal strength design check is undertaken, refer to NZS3101.capacity_reduction_factor() for further information on analysis types.

  • theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

  • control_points (list[tuple[str, float]] | None) – List of additional control points to add to the moment interaction diagram. The default control points include the balanced point, the 50% reinforcement strain point, the 0% reinforcement strain point (fy=1, fy=0.5, fy=0), and the pure bending point (N=0), i.e. [("fy", 1.0), ("fy", 0.5), ("fy", 0.0), ("N", 0.0)]. Control points may lie outside the limits of the moment interaction diagram as long as equilibrium can be found.

  • labels (list[str] | None) – List of labels to apply to the limits and control_points for plotting purposes. The first two values in labels apply labels to the limits, the remaining values apply labels to the control_points. If a single value is provided, this value will be applied to both limits and all control_points. The length of labels must equal 1 or 2 + len(control_points).

  • n_points (int) – Number of points to compute including and between the limits of the moment interaction diagram. Generates equally spaced neutral axes between the limits.

  • n_spacing (int | None) – If provided, overrides n_points and generates the moment interaction diagram using n_spacing equally spaced axial loads. Note that using n_spacing negatively affects performance, as the neutral axis depth must first be located for each point on the moment interaction diagram.

  • max_comp_labels (list[str] | None) – Labels to apply to the max_comp intersection points, first value is at zero moment, second value is at the intersection with the interaction diagram.

  • progress_bar (bool) – If set to True, displays the progress bar

Returns:

Factored and unfactored moment interaction results objects, and list of capacity reduction factors (factored_results, unfactored_results, phis)

Return type:

tuple[MomentInteractionResults, MomentInteractionResults, list[float]]

PPHR Classifications

  • NDPR = Nominally Ductile Plastic Region

  • LDPR = Limited Ductile Plastic Region

  • DPR = Ductile Plastic Region

NZS3101.biaxial_bending_diagram(pphr_class: str = 'NDPR', analysis_type: str = 'nom_chk', n_design: float = 0.0, n_points: int = 48, progress_bar: bool = True) tuple[BiaxialBendingResults, list[float]][source]

Generates a biaxial bending diagram.

Generates a biaxial bending with capacity factors to NZS3101:2006 or the NZSEE C5 assessment guidelines dependant on analysis type.

Parameters:
  • pphr_class (str) – Potential Plastic Hinge Region (PPHR) classification, "NDPR"/"LDPR"/"DPR"

  • analysis_type (str) – The type of cross section analysis to undertake on the defined concrete section, by default a normal nominal strength design check is undertaken, refer to NZS3101.capacity_reduction_factor() for further information on analysis types.

  • n_design (float) – Axial design force (\(N^*\))

  • n_points (int) – Number of calculation points for neutral axis orientation

  • progress_bar (bool) – If set to True, displays the progress bar

Returns:

Factored biaxial bending results object and list of capacity reduction factors (factored_results, phis)

Return type:

tuple[BiaxialBendingResults, list[float]]

PPHR Classifications

  • NDPR = Nominally Ductile Plastic Region

  • LDPR = Limited Ductile Plastic Region

  • DPR = Ductile Plastic Region

See also

For an application of the use of the design code object, see the example NZS3101 Design Code.