AS 3600:2018¶
- class concreteproperties.design_codes.as3600.AS3600[source]
Design code class for Australian standard AS 3600:2018.
Note
Note that this design code only supports
ConcreteandSteelBarmaterial objects. MeshedSteelmaterial objects are not supported, as this falls under the composite structures design code.
Using the AS 3600:2018 design code starts by creating an
AS3600 object:
from concreteproperties.design_codes.as3600 import AS3600
design_code = AS3600()
After a ConcreteSection object has been
created it must be assigned to the design code:
design_code.assign_concrete_section(concrete_section=concrete_section)
- AS3600.assign_concrete_section(concrete_section: ConcreteSection) None[source]
Assigns a concrete section to the design code.
- Parameters:
concrete_section (ConcreteSection) – Concrete section object to analyse
- Raises:
ValueError – If there is meshed reinforcement within the concrete_section
Warning
To maintain unit consistency, length dimensions must be entered in [mm], force dimensions entered in [N] and density dimensions entered [kg/mm3].
Creating Material Properties¶
The AS3600 class can be used to easily create
material objects whose attributes comply with the standard.
- AS3600.create_concrete_material(compressive_strength: float, colour: str = 'lightgrey') Concrete[source]
Returns a concrete material object to AS 3600.
Material assumptions
Density: 2400 kg/m3 (2.4 x 10-6 kg/mm3)
Elastic modulus: Interpolated from Table 3.1.2
Service stress-strain profile: Linear with no tension, compressive strength at \(0.9f'_c\)
Ultimate stress-strain profile: Rectangular stress block, parameters from Cl. 8.1.3
Alpha squash: From Cl. 10.6.2.2
Flexural tensile strength: From Cl. 3.1.1.3
- Parameters:
- Raises:
ValueError – If
compressive_strengthis not between 20 MPa and 100 MPa.- Returns:
Concrete material object
- Return type:
from concreteproperties.design_codes import AS3600
design_code = AS3600()
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"
)
- AS3600.create_steel_material(yield_strength: float = 500, ductility_class: str = 'N', colour: str = 'grey') SteelBar[source]
Returns a steel bar material object.
Material assumptions
Density: 7850 kg/m3 (7.85 x 10-6 kg/mm3)
Elastic modulus: 200000 MPa
Stress-strain profile: Elastic-plastic, fracture strain from Table 3.2.1
- Parameters:
- Raises:
ValueError – If
ductility_classis not “N” or “L”- Returns:
Steel material object
- Return type:
from concreteproperties.design_codes import AS3600
design_code = AS3600()
steel = design_code.create_steel_material()
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
AS3600 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 AS 3600:2018, with codified capacity reduction factors applied.
- AS3600.ultimate_bending_capacity(theta: float = 0, n_design: float = 0, phi_0: float = 0.6) tuple[UltimateBendingResults, UltimateBendingResults, float][source]
Calculates the ultimate bending capacity with capacity factors to AS 3600.
- Parameters:
- Raises:
AnalysisError – If the design load is greater than the squash load
AnalysisError – If the design load is greater than the tensile load
- Returns:
Factored and unfactored ultimate bending results objects, and capacity reduction factor (
factored_results,unfactored_results,phi)- Return type:
tuple[UltimateBendingResults, UltimateBendingResults, float]
- AS3600.moment_interaction_diagram(theta: float = 0, limits: list[tuple[str, float]] | None = None, control_points: list[tuple[str, float]] | None = None, labels: list[str] | None = None, n_points: int = 24, n_spacing: int | None = None, phi_0: float = 0.6, progress_bar: bool = True) tuple[MomentInteractionResults, MomentInteractionResults, list[float]][source]
Generates a moment interaction diagram with capacity factors to AS 3600.
See
concreteproperties.concrete_section.ConcreteSection.moment_interaction_diagram()for allowable control points.Note
When providing
"N"tolimitsorcontrol_points,"N"is taken to be the unfactored net (nominal) axial load \(N^{*} / \phi\).- Parameters:
theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\)). Defaults to
0.limits (list[tuple[str, float]] | None) – List of control points that define the start and end of the interaction diagram. List length must equal two. The default limits range from concrete decompression strain to the pure bending point,
[("D", 1.0), ("N", 0.0)]. Defaults toNone.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,
fy = 1, i.e.[("fy", 1.0)]. Control points may lie outside the limits of the moment interaction diagram as long as equilibrium can be found. Defaults toNone.labels (list[str] | None) – List of labels to apply to the
limitsandcontrol_pointsfor plotting purposes. The first two values inlabelsapply labels to thelimits, the remaining values apply labels to thecontrol_points. If a single value is provided, this value will be applied to bothlimitsand allcontrol_points. The length oflabelsmust equal1or2 + len(control_points). Defaults toNone.n_points (int) – Number of points to compute including and between the
limitsof the moment interaction diagram. Generates equally spaced neutral axes between thelimits. Defaults to24.n_spacing (int | None) – If provided, overrides
n_pointsand generates the moment interaction diagram usingn_spacingequally spaced axial loads. Note that usingn_spacingnegatively affects performance, as the neutral axis depth must first be located for each point on the moment interaction diagram. Defaults toNone.phi_0 (float) – Compression dominant capacity reduction factor, see Table 2.2.2(d). Defaults to
0.6.progress_bar (bool) – If set to True, displays the progress bar. Defaults to
True.
- 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]]
- AS3600.biaxial_bending_diagram(n_design: float = 0, n_points: int = 48, phi_0: float = 0.6, progress_bar: bool = True) tuple[BiaxialBendingResults, list[float]][source]
Generates a biaxial bending with capacity factors to AS 3600.
- Parameters:
n_design (float) – Design axial force, N*. Defaults to
0.n_points (int) – Number of calculation points. Defaults to
48.phi_0 (float) – Compression dominant capacity reduction factor, see Table 2.2.2(d). Defaults to
0.6.progress_bar (bool) – If set to True, displays the progress bar. Defaults to
True.
- Returns:
Factored biaxial bending results object and list of capacity reduction factors (
factored_results,phis)- Return type:
See also
For an application of the use of the design code object, see the example AS3600 Design Code.