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
)(
Source code
,png
,hires.png
,pdf
)- 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
Returns the most positive stress.
Returns the elastic modulus of the stress-strain profile.
Returns a stress given a strain.
Returns the most negative stress.
Returns the largest strain.
Returns the largest tensile strain.
Returns an ordered list of unique strains.
Returns the yield strength of the stress-strain profile.
Plots the stress-strain profile.
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:
- 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:
- get_ultimate_tensile_strain() float #
Returns the largest tensile strain.
- Returns:
Ultimate strain
- Return type:
- 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:
- plot_stress_strain(title: str = 'Stress-Strain Profile', fmt: str = 'o-', **kwargs) matplotlib.axes.Axes #
Plots the stress-strain profile.
- Parameters:
title (str) – Plot title
fmt (str) – Plot format string
kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type: