ModifiedMander#

class concreteproperties.stress_strain_profile.ModifiedMander(elastic_modulus: float, compressive_strength: float, tensile_strength: float, sect_type: str | None = None, conc_confined: bool = False, conc_tension: bool = False, conc_spalling: bool = False, eps_co: float = 0.002, eps_c_max_unconfined: float = 0.004, eps_sp: float = 0.006, d: float | None = None, b: float | None = None, long_reinf_area: float | None = None, w_dash: list[float] | None = None, cvr: float | None = None, trans_spacing: float | None = None, trans_d_b: float | None = None, trans_num_d: int | None = None, trans_num_b: int | None = None, trans_f_y: float | None = None, eps_su: float | None = None, n_points: int = 50, n_steel_strain: float = 0.6, n_confinement: float = 0.75)[source]#

Bases: ConcreteServiceProfile

Modified Mander stress-strain profile.

Class for a non-linear stress-strain relationship based on the Mander stress-strain model for confined & unconfined concrete for a rectangular cross section. Intended for use with moment-curvature analyses with rectangular or circular cross sections.

Refer to references [1] [2] [3] for further information on the Mander stress-strain models for confined and unconfined concrete.

This stress strain relationship has been specifically modified for use as per the modified implementation documented within the NZSEE C5 assessment guidelines. However input parameters can also be customised to suit other implementations if desired.

Tip

Optional input variables are only required for defining a confined concrete stress-strain relationship. Note if any variables are missed when attempting to define a confined concrete stress-strain relationship (using conc_confined=True), then the material will default to being defined as an unconfined concrete stress-strain relationship with a warning given.

Modifications to Mander confined concrete model:

The original formulation of the expression for confined concrete presented by Mander et al. [1] can predict high levels of confined concrete strain dependant on the assumed value for the ultimate steel strain for the transverse reinforcement. The modified expression given the NZSEE C5 assesment guidelines [3] provides a correction and is directly implemented in the ModifiedMander material class.

These corrections to avoid overestimating the confined concrete limiting strain consist of three allowances:

  • Modifying the maximum steel strain by a factor of 0.6:

    • \(\varepsilon_{s,max}= 0.6\varepsilon_{su} \leq 0.06\)

    • Note this 0.6 modifier can be altered via the n_steel_strain parameter.

    • Note the steel material used for reinforcement is also required to be defined with this same limiting fracture strain for a moment-curvature analysis.

  • Modifying the volumetric ratio of confinement reinforcement by a factor of 0.75. i.e.:

    • For rectangular sections

      • \(\displaystyle{\rho_{st}=\frac{0.75}{s}\left[\frac{A_{v,d}} {b_{core}}+\frac{A_{v,b}}{d_{core}}\right]}\)

    • For circular sections

      • \(\displaystyle{\rho_{st}=\frac{0.75}{s}\frac{4A_v}{d_s}}\)

    • Note this 0.75 modifier can be altered via the n_confinement parameter.

  • For confined concrete utilising a maximum concrete compressive strain of:

    • \(\displaystyle{\varepsilon_{c,max}=0.004+\frac{0.6\rho_{st}f_{yh} \varepsilon_{su}}{f'_{cc}}\leq0.05}\)

    • Note that the 0.6 factor applied to the ultimate tensile failure strain can be modified as noted above.

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

../_images/mander_unconfined_plot_mander_unconfined_plot.png

ModifiedMander Parameters for Unconfined Concrete#

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

../_images/mander_confined_plot_mander_confined_plot.png

ModifiedMander Parameters for Confined Concrete#

Parameters:
  • elastic_modulus (float) – Concrete elastic modulus (\(E_c\))

  • compressive_strength (float) – Concrete compressive strength (\(f'_c\))

  • tensile_strength (float) – Concrete tensile strength (\(f_t\))

  • sect_type (str | None) –

    The type of concrete cross section for which to create a confined concrete stress-strain relationship for:

    • rect = Rectangular section with closed stirrup/tie transverse reinforcement

    • circ_hoop = Circular section with closed hoop transverse reinforcement

    • circ_spiral = Circular section with spiral transverse reinforcement

  • conc_confined (bool) – True to return a confined concrete stress-strain relationship based on provided reinforcing parameters, False to return an unconfined concrete stress-strain relationship

  • conc_tension (bool) – True to include tension in the concrete within the stress-strain relationship (up to the tensile strength of the concrete is reached), False to not consider any tension behaviour in the concrete

  • conc_spalling (bool) – True to consider the spalling effect for unconfined concrete, False to not consider the spalling branch and truncate the unconfined concrete curve at min(\(2 \varepsilon_{co},\varepsilon_{c,max}\))

  • eps_co (float) – Strain at which the maximum concrete stress is obtained for an unconfined concrete material (\(\varepsilon_{co}\))

  • eps_c_max_unconfined (float) – Maximum strain that is able to be supported within unconfined concrete (\(\varepsilon_{c,max}\))

  • eps_sp (float) – Spalling strain, the strain at which the stress returns to zero for unconfined concrete (\(\varepsilon_{sp}\))

  • d (float | None) – Depth of a rectangular concrete cross section, or diameter of circular concrete cross section (\(d\))

  • b (float | None) – Breadth of a rectangular concrete cross section (\(b\))

  • long_reinf_area (float | None) – Total area of the longitudinal reinforcement in the concrete cross section (\(A_{st}\))

  • w_dash (list[float] | None) – List of clear spacing between longitudinal reinforcement around the full perimeter of a rectangular concrete cross section (\(w'\))

  • cvr (float | None) – Concrete cover (to confining reinforcement)

  • trans_spacing (float | None) – Spacing of transverse confining reinforcement (\(s\))

  • trans_d_b (float | None) – Diameter of the transverse confining reinforcement (\(d_b\))

  • trans_num_d (int | None) – Number of legs/cross links parallel to the depth of a rectangular concrete cross section

  • trans_num_b (int | None) – Number of legs/cross links parallel to the breadth of a rectangular concrete cross section

  • trans_f_y (float | None) – Yield strength of the transverse confining reinforcement (\(f_{yh}\))

  • eps_su (float | None) – Strain at the ultimate tensile strength of the reinforcement (\(\varepsilon_{su}\))

  • n_points (int) – Number of points to discretise the compression part of the stress-strain curve between \(\varepsilon_{c}=0\) & \(\varepsilon_{c} =2\varepsilon_{co}\) for an unconfined concrete, or between \(\varepsilon_{c}=0\) & \(\varepsilon_{c}=\varepsilon_{cu}\) for a confined concrete

  • n_steel_strain (float) – Modifier for maximum steel reinforcement strain. Steel reinforcement material within the concrete cross section should also be defined with the same limit for the fracture strain

  • n_confinement (float) – Modifier for volumetric ratio of confinement reinforcement

Raises:

ValueError – If specified section type is not rect, circ_hoop or circ_spiral

Methods

get_compressive_strength

Returns the most positive stress.

get_elastic_modulus

Returns the elastic modulus of the stress-strain profile.

get_stress

Returns a stress given a strain.

get_tensile_strength

Returns the most negative stress.

get_ultimate_compressive_strain

Returns the largest strain.

get_ultimate_tensile_strain

Returns the largest tensile strain.

get_unique_strains

Returns an ordered list of unique strains.

get_yield_strength

Returns the yield strength of the stress-strain profile.

plot_stress_strain

Plots the stress-strain profile.

print_properties

Prints the stress-strain profile properties to the terminal.

Attributes

b

conc_confined

conc_spalling

conc_tension

cvr

d

eps_c_max_unconfined

eps_co

eps_sp

eps_su

long_reinf_area

n_confinement

n_points

n_steel_strain

sect_type

trans_d_b

trans_f_y

trans_num_b

trans_num_d

trans_spacing

ultimate_strain

w_dash

strains

stresses

elastic_modulus

compressive_strength

tensile_strength

get_compressive_strength() float | None#

Returns the most positive stress.

Returns:

Compressive strength

Return type:

float | None

get_elastic_modulus() float#

Returns the elastic modulus of the stress-strain profile.

Returns:

Elastic modulus

Return type:

float

get_stress(strain: float) float#

Returns a stress given a strain.

Parameters:

strain (float) – Strain at which to return a stress.

Returns:

Stress

Return type:

float

get_tensile_strength() float | None#

Returns the most negative stress.

Returns:

Tensile strength

Return type:

float | None

get_ultimate_compressive_strain() float#

Returns the largest strain.

Returns:

Ultimate strain

Return type:

float

get_ultimate_tensile_strain() float#

Returns the largest tensile strain.

Returns:

Ultimate strain

Return type:

float

get_unique_strains() list[float]#

Returns an ordered list of unique strains.

Returns:

Ordered list of unique strains

Return type:

list[float]

get_yield_strength() float#

Returns the yield strength of the stress-strain profile.

Raises:

NotImplementedError – If this method has not been implemented by the child class

Return type:

float

plot_stress_strain(title: str = 'Stress-Strain Profile', fmt: str = 'o-', **kwargs) matplotlib.axes.Axes#

Plots the stress-strain profile.

Parameters:
Returns:

Matplotlib axes object

Return type:

matplotlib.axes.Axes

print_properties(fmt: str = '8.6e') None#

Prints the stress-strain profile properties to the terminal.

Parameters:

fmt (str) – Number format