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 Concrete and SteelBar material objects. Meshed Steel material 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

Note

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

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

  • 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:
  • compressive_strength (float) – Characteristic compressive strength of concrete at 28 days in megapascals (MPa)

  • colour (str) – Colour of the concrete for rendering

Raises:

ValueError – If compressive_strength is not between 20 MPa and 100 MPa.

Returns:

Concrete material object

Return type:

Concrete

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"
)

(Source code)

../../_images/as3600-1_00.png

(png, hires.png, pdf)#

../../_images/as3600-1_01.png

(png, hires.png, pdf)#

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

  • Elastic modulus: 200000 MPa

  • Stress-strain profile: Elastic-plastic, fracture strain from Table 3.2.1

Parameters:
  • yield_strength (float) – Steel yield strength

  • ductility_class (str) – Steel ductility class (“N” or “L”)

  • colour (str) – Colour of the steel for rendering

Raises:

ValueError – If ductility_class is not “N” or “L”

Returns:

Steel material object

Return type:

SteelBar

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)

../../_images/as3600-2.png

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:
  • theta (float) – Angle (in radians) the neutral axis makes with the horizontal axis (\(-\pi \leq \theta \leq \pi\))

  • n_design (float) – Design axial force, N*

  • phi_0 (float) – Compression dominant capacity reduction factor, see Table 2.2.2(d)

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" to limits or control_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\))

  • 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)].

  • 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.

  • 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.

  • phi_0 (float) – Compression dominant capacity reduction factor, see Table 2.2.2(d)

  • 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]]

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*

  • n_points (int) – Number of calculation points

  • phi_0 (float) – Compression dominant capacity reduction factor, see Table 2.2.2(d)

  • 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]]

See also

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