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:
ConcreteServiceProfileModified 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
ModifiedMandermaterial 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_strainparameter.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_confinementparameter.
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)
ModifiedMander Parameters for Unconfined Concrete¶
(
Source code,png,hires.png,pdf)
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 reinforcementcirc_hoop- Circular section with closed hoop transverse reinforcementcirc_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}\)). Defaults to
0.002.eps_c_max_unconfined (float) – Maximum strain that is able to be supported within unconfined concrete (\(\varepsilon_{c,max}\)). Defaults to
0.004.eps_sp (float) – Spalling strain, the strain at which the stress returns to zero for unconfined concrete (\(\varepsilon_{sp}\)). Defaults to
0.006.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. Defaults to
50.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. Defaults to
0.6.n_confinement (float) – Modifier for volumetric ratio of confinement reinforcement. Defaults to
0.75.
- Raises:
ValueError – If specified section type is not
rect,circ_hooporcirc_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
bconc_confinedconc_spallingconc_tensioncvrdeps_c_max_unconfinedeps_coeps_speps_sulong_reinf_arean_confinementn_pointsn_steel_strainsect_typetrans_d_btrans_f_ytrans_num_btrans_num_dtrans_spacingultimate_strainw_dashstrainsstresseselastic_moduluscompressive_strengthtensile_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-', eng: bool = False, prec: int = 2, units: UnitDisplay | None = None, **kwargs) matplotlib.axes.Axes¶
Plots the stress-strain profile.
- Parameters:
title (str) – Plot title. Defaults to
"Stress-Strain Profile".fmt (str) – Plot format string. Defaults to
"o-".eng (bool) – If set to
True, formats the plot ticks with engineering notation. If set toFalse, uses the defaultmatplotlibticker formatting. Defaults toFalse.prec (int) – If
eng=True, sets the desired precision of the ticker formatting (i.e. one plus this value is the desired number of digits). Defaults to2.units (UnitDisplay | None) – Unit system to display. Defaults to
None.kwargs – Passed to
plotting_context()
- Returns:
Matplotlib axes object
- Return type: