AS3600#

class concreteproperties.design_codes.as3600.AS3600[source]#

Bases: DesignCode

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.

Methods

assign_concrete_section

Assigns a concrete section to the design code.

biaxial_bending_diagram

Generates a biaxial bending with capacity factors to AS 3600.

calculate_cracked_properties

Calculates cracked section properties.

calculate_cracked_stress

Calculates cracked stresses within the reinforced concrete section.

calculate_service_stress

Calculates service stresses within the reinforced concrete section.

calculate_ultimate_stress

Calculates ultimate stresses within the reinforced concrete section.

calculate_uncracked_stress

Calculates uncracked stresses within the reinforced concrete section.

capacity_reduction_factor

Returns the AS 3600 capacity reduction factor (Table 2.2.2).

create_concrete_material

Returns a concrete material object to AS 3600.

create_steel_material

Returns a steel bar material object.

get_gross_properties

Returns the gross section properties of the reinforced concrete section.

get_k_uo

Returns k_uo for the reinforced concrete cross-section given theta.

get_n_ub

Returns n_ub for the reinforced concrete cross-section given theta.

get_transformed_gross_properties

Transforms gross section properties.

moment_curvature_analysis

Performs a moment curvature analysis (no reduction factors applied).

moment_interaction_diagram

Generates a moment interaction diagram with capacity factors to AS 3600.

squash_tensile_load

Calculates the squash and tensile load of the reinforced concrete section.

ultimate_bending_capacity

Calculates the ultimate bending capacity with capacity factors to AS 3600.

__init__() None[source]#

Inits the AS3600 class.

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

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

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

squash_tensile_load() tuple[float, float][source]#

Calculates the squash and tensile load of the reinforced concrete section.

Returns:

Squash and tensile load

Return type:

tuple[float, float]

capacity_reduction_factor(n_u: float, n_ub: float, n_uot: float, k_uo: float, phi_0: float) float[source]#

Returns the AS 3600 capacity reduction factor (Table 2.2.2).

n_ub and phi_0 only required for compression, n_uot only required for tension.

Parameters:
  • n_u (float) – Axial force in member

  • n_ub (float) – Axial force at balanced point

  • n_uot (float) – Axial force at ultimate tension load

  • k_uo (float) – Neutral axis parameter at pure bending

  • phi_0 (float) – Capacity reduction factor for dominant compression

Returns:

Capacity reduction factor

Return type:

float

get_k_uo(theta: float) float[source]#

Returns k_uo for the reinforced concrete cross-section given theta.

Parameters:

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

Returns:

Bending parameter k_uo

Return type:

float

get_n_ub(theta: float) float[source]#

Returns n_ub for the reinforced concrete cross-section given theta.

Parameters:

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

Returns:

Balanced axial force n_ub

Return type:

float

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]

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

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

calculate_cracked_properties(**kwargs) CrackedResults#

Calculates cracked section properties.

Parameters:

kwargs – Keyword arguments passed to calculate_cracked_properties()

Returns:

Cracked results object

Return type:

CrackedResults

calculate_cracked_stress(**kwargs) StressResult#

Calculates cracked stresses within the reinforced concrete section.

Parameters:

kwargs – Keyword arguments passed to calculate_cracked_stress()

Returns:

Stress results object

Return type:

StressResult

calculate_service_stress(**kwargs) StressResult#

Calculates service stresses within the reinforced concrete section.

Parameters:

kwargs – Keyword arguments passed to calculate_service_stress()

Returns:

Stress results object

Return type:

StressResult

calculate_ultimate_stress(**kwargs) StressResult#

Calculates ultimate stresses within the reinforced concrete section.

Parameters:

kwargs – Keyword arguments passed to calculate_ultimate_stress()

Returns:

Stress results object

Return type:

StressResult

calculate_uncracked_stress(**kwargs) StressResult#

Calculates uncracked stresses within the reinforced concrete section.

Parameters:

kwargs – Keyword arguments passed to calculate_uncracked_stress()

Returns:

Stress results object

Return type:

StressResult

get_gross_properties(**kwargs) GrossProperties#

Returns the gross section properties of the reinforced concrete section.

Parameters:

kwargs – Keyword arguments passed to get_gross_properties()

Returns:

Concrete properties object

Return type:

GrossProperties

get_transformed_gross_properties(**kwargs) TransformedGrossProperties#

Transforms gross section properties.

Parameters:

kwargs – Keyword arguments passed to get_transformed_gross_properties()

Returns:

Transformed concrete properties object

Return type:

TransformedGrossProperties

moment_curvature_analysis(**kwargs) MomentCurvatureResults#

Performs a moment curvature analysis (no reduction factors applied).

Parameters:

kwargs – Keyword arguments passed to moment_curvature_analysis()

Returns:

Moment curvature results object

Return type:

MomentCurvatureResults