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
andSteelBarNZ
material objects. MeshedSteel
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:
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"
)
- 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:
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 provisionsCharacteristic 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 provisionsCharacteristic 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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 guidelinesProbable 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
)
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
andcontrol_points
for plotting purposes. The first two values inlabels
apply labels to thelimits
, the remaining values apply labels to thecontrol_points
. If a single value is provided, this value will be applied to bothlimits
and allcontrol_points
. The length oflabels
must equal1
or2 + 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 thelimits
.n_spacing (int | None) – If provided, overrides
n_points
and generates the moment interaction diagram usingn_spacing
equally spaced axial loads. Note that usingn_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:
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.