1. Materials#
concreteproperties requires material properties to be defined for the concrete and steel components of the reinforced concrete section. Any number of different material properties can be used for a single cross-section. For example, higher strength precast sections can be topped with lower grade in-situ slabs, and high tensile steel can be used in combination with normal grade reinforcing steel.
The structural behaviour of materials is described by Stress-Strain Profiles.
Note
In concreteproperties, a positive sign is given to compressive forces, stresses and strains, while a negative sign is given to tensile forces, stresses and strains.
1.1. Material Classes#
concreteproperties ships with material objects describing the structural behaviour of
both concrete and steel. The generic Material
class can be used to describe the behaviour of any other material.
By default, all geometries in concreteproperties are meshed to capture strain
variation across the section. However, for smaller geometries (such as reinforcement),
concreteproperties can treat the area as having a constant strain with a lumped mass,
which increases the performance of the analysis with almost no loss in fidelity. The
meshing can be switched off by setting the attribute meshed=False
.
The SteelBar
class has meshing disabled by default
and should be used when defining steel reinforcement. On the other hand, the
Steel
class is meshed by default so should be used
when defining larger sections such as strucutral steel sections used in composite
sections. The SteelStrand
class also has meshing
disabled by default and should be used when defining prestressing strands.
1.1.1. Material#
- class Material(name, density, stress_strain_profile, colour, meshed)[source]
Generic class for a concreteproperties material.
- Parameters
name (
str
) – Material namedensity (
float
) – Material density (mass per unit volume)stress_strain_profile (
StressStrainProfile
) – Material stress-strain profilecolour (
str
) – Colour of the material for renderingmeshed (
bool
) – If set to True, the entire material region is meshed; if set to False, the material region is treated as a lumped circular mass at its centroid
1.1.2. Concrete#
- class Concrete(name, density, stress_strain_profile, colour, ultimate_stress_strain_profile, flexural_tensile_strength)[source]
Class for a concrete material.
- Parameters
name (
str
) – Concrete material namedensity (
float
) – Concrete density (mass per unit volume)stress_strain_profile (
ConcreteServiceProfile
) – Service concrete stress-strain profileultimate_stress_strain_profile (
ConcreteUltimateProfile
) – Ultimate concrete stress-strain profileflexural_tensile_strength (
float
) – Absolute value of the concrete flexural tensile strengthcolour (
str
) – Colour of the material for rendering
1.1.3. Steel#
- class Steel(name, density, stress_strain_profile, colour)[source]
Class for a steel material with the entire region meshed to allow for strain variation across the section, e.g. structural steel profiles.
- Parameters
name (
str
) – Steel material namedensity (
float
) – Steel density (mass per unit volume)stress_strain_profile (
StressStrainProfile
) – Steel stress-strain profilecolour (
str
) – Colour of the material for rendering
1.1.4. SteelBar#
- class SteelBar(name, density, stress_strain_profile, colour)[source]
Class for a steel bar material, treated as a lumped circular mass with a constant strain.
- Parameters
name (
str
) – Steel bar material namedensity (
float
) – Steel bar density (mass per unit volume)stress_strain_profile (
StressStrainProfile
) – Steel bar stress-strain profilecolour (
str
) – Colour of the material for rendering
1.1.5. SteelStrand#
- class SteelStrand(name, density, stress_strain_profile, colour, prestress_stress=0)[source]
Class for a steel strand material, treated as a lumped circular mass with a constant strain.
Note
A
StrandProfile
must be used if using aSteelStrand
object.Note
The strand is assumed to be bonded to the concrete.
- Parameters
name (
str
) – Steel strand material namedensity (
float
) – Steel strand density (mass per unit volume)stress_strain_profile (
StrandProfile
) – Steel strand stress-strain profilecolour (
str
) – Colour of the material for renderingprestress_stress (
float
, default:0
) – Prestressing stress applied to the strand
1.2. Stress-Strain Profiles#
concreteproperties uses stress-strain profiles to define material behaviour for both
service and ultimate analyses. A Concrete
object
requires both a service stress-strain profile (calculation of area properties,
moment-curvature analysis, elastic and service stress analysis) and an ultimate
stress-strain profile (ultimate bending capacity, moment interaction diagram, biaxial
bending diagram, ultimate stress analysis). All other material objects only requires one
stress-strain profile which is used for both service and ultimate analyses.
Note
Stress values are interpolated from stresses and strains supplied to the profile. If the strain is outside of the range of the stress-strain profile, the stress is extrapolated based off the closest two points of the stress-strain profile.
- class StressStrainProfile(strains, stresses)[source]
Abstract base class for a material stress-strain profile.
Implements a piecewise linear stress-strain profile. Positive stresses & strains are compression.
- Parameters
strains (
List
[float
]) – List of strains (must be increasing or equal)stresses (
List
[float
]) – List of stresses
- print_properties(fmt='8.6e')[source]
Prints the stress-strain profile properties to the terminal.
- Parameters
fmt (
str
, default:'8.6e'
) – Number format
- plot_stress_strain(title='Stress-Strain Profile', fmt='o-', **kwargs)[source]
Plots the stress-strain profile.
- Parameters
title (
str
, default:'Stress-Strain Profile'
) – Plot titlefmt (
str
, default:'o-'
) – Plot format stringkwargs – Passed to
plotting_context()
- Returns
Axes
– Matplotlib axes object
1.2.1. Concrete Service Stress-Strain Profiles#
Note
Unless assigned in the class constructor, the elastic_modulus
of the concrete is
determined by the initial compressive slope of the stress-strain profile. This
elastic_modulus
is used in the calculation of area properties and elastic stress
analysis.
1.2.1.1. Generic Concrete Service Profile#
- class ConcreteServiceProfile(strains, stresses, ultimate_strain)[source]
Bases:
StressStrainProfile
Abstract class for a concrete service stress-strain profile.
- Parameters
strains (
List
[float
]) – List of strains (must be increasing or equal)stresses (
List
[float
]) – List of stressesultimate_strain (
float
) – Concrete strain at failure
from concreteproperties.stress_strain_profile import ConcreteServiceProfile
ConcreteServiceProfile(
strains=[-5 / 35e3, -4 / 35e3, -3 / 35e3, 0, 40 / 35e3, 0.003],
stresses=[0, 0, -3, 0, 40, 40],
ultimate_strain=0.003,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.1.2. Linear Concrete Service Profile#
- class ConcreteLinear(elastic_modulus, ultimate_strain=1)[source]
Bases:
ConcreteServiceProfile
Class for a symmetric linear stress-strain profile.
- Parameters
elastic_modulus (
float
) – Elastic modulus of the stress-strain profileultimate_strain (
float
, default:1
) – Concrete strain at failure
Warning
This profile is not intended to be used in conjunction with a
moment_curvature_analysis()
as the concrete can resist large tensile stresses without fracture.
from concreteproperties.stress_strain_profile import ConcreteLinear
ConcreteLinear(elastic_modulus=35e3).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.1.3. Linear Concrete (No Tension) Service Profile#
- class ConcreteLinearNoTension(elastic_modulus, ultimate_strain=1, compressive_strength=None)[source]
Bases:
ConcreteServiceProfile
Class for a linear stress-strain profile with no tensile strength.
- Parameters
elastic_modulus (
float
) – Elastic modulus of the stress-strain profileultimate_strain (
float
, default:1
) – Concrete strain at failurecompressive_strength (
Optional
[float
], default:None
) – Compressive strength of the concrete
from concreteproperties.stress_strain_profile import ConcreteLinearNoTension
ConcreteLinearNoTension(elastic_modulus=35e3).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
from concreteproperties.stress_strain_profile import ConcreteLinearNoTension
ConcreteLinearNoTension(
elastic_modulus=35e3,
ultimate_strain=0.003,
compressive_strength=40,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.1.4. Eurocode Non-Linear Concrete Service Profile#
- class EurocodeNonLinear(elastic_modulus, ultimate_strain, compressive_strength, compressive_strain, tensile_strength, tension_softening_stiffness, n_points_1=10, n_points_2=3)[source]
Bases:
ConcreteServiceProfile
Class for a non-linear stress-strain relationship to EC2.
Tension is modelled with a symmetric
elastic_modulus
until failure attensile_strength
, after which the tensile stress reduces according to thetension_softening_stiffness
.- Parameters
elastic_modulus (
float
) – Concrete elastic modulus (\(E_{cm}\))ultimate_strain (
float
) – Concrete strain at failure (\(\epsilon_{cu1}\))compressive_strength (
float
) – Concrete compressive strength (\(f_{cm}\))compressive_strain (
float
) – Strain at which the concrete stress equals the compressive strength (\(\epsilon_{c1}\))tensile_strength (
float
) – Concrete tensile strengthtension_softening_stiffness (
float
) – Slope of the linear tension softening branchn_points_1 (
int
, default:10
) – Number of points to discretise the curve prior to the peak stressn_points_2 (
int
, default:3
) – Number of points to discretise the curve after the peak stress
from concreteproperties.stress_strain_profile import EurocodeNonLinear
EurocodeNonLinear(
elastic_modulus=35e3,
ultimate_strain=0.0035,
compressive_strength=40,
compressive_strain=0.0023,
tensile_strength=3.5,
tension_softening_stiffness=7e3,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.1.5. Modified Mander Non-Linear Unconfined & Confined Concrete Service Profile#
- class ModifiedMander(elastic_modulus, compressive_strength, tensile_strength, sect_type=None, conc_confined=False, conc_tension=False, conc_spalling=False, eps_co=0.002, eps_c_max_unconfined=0.004, eps_sp=0.006, d=None, b=None, long_reinf_area=None, w_dash=None, cvr=None, trans_spacing=None, trans_d_b=None, trans_num_d=None, trans_num_b=None, trans_f_y=None, eps_su=None, n_points=50, n_steel_strain=0.6, n_confinement=0.75)[source]
Bases:
ConcreteServiceProfile
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
)- 1(1,2)
Theoretical Stress-Strain Model For Confined Concrete - Mander, Priestley, Park (1988)
- 2
Observed Stress-Strain Behavior of Confined Concrete - Mander, Priestley, Park (1988)
- 3(1,2)
NZSEE C5 Assessment Guidelines - Part C5 - Concrete Buildings - Technical Proposal to Revise the Engineering Assessment Guidelines (2018)
- 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 (
Optional
[str
], default: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
, default:False
) – True to return a confined concrete stress-strain relationship based on provided reinforcing parameters, False to return an unconfined concrete stress-strain relationshipconc_tension (
bool
, default:False
) – 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 concreteconc_spalling (
bool
, default:False
) – 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
, default:0.002
) – Strain at which the maximum concrete stress is obtained for an unconfined concrete material (\(\varepsilon_{co}\))eps_c_max_unconfined (
float
, default:0.004
) – Maximum strain that is able to be supported within unconfined concrete (\(\varepsilon_{c,max}\))eps_sp (
float
, default:0.006
) – Spalling strain, the strain at which the stress returns to zero for unconfined concrete (\(\varepsilon_{sp}\))d (
Optional
[float
], default:None
) – Depth of a rectangular concrete cross section, or diameter of circular concrete cross section (\(d\))b (
Optional
[float
], default:None
) – Breadth of a rectangular concrete cross section (\(b\))long_reinf_area (
Optional
[float
], default:None
) – Total area of the longitudinal reinforcement in the concrete cross section (\(A_{st}\))w_dash (
Optional
[List
[float
]], default:None
) – List of clear spacing between longitudinal reinforcement around the full perimeter of a rectangular concrete cross section (\(w'\))cvr (
Optional
[float
], default:None
) – Concrete cover (to confining reinforcement)trans_spacing (
Optional
[float
], default:None
) – Spacing of transverse confining reinforcement (\(s\))trans_d_b (
Optional
[float
], default:None
) – Diameter of the transverse confining reinforcement (\(d_b\))trans_num_d (
Optional
[int
], default:None
) – Number of legs/cross links parallel to the depth of a rectangular concrete cross sectiontrans_num_b (
Optional
[int
], default:None
) – Number of legs/cross links parallel to the breadth of a rectangular concrete cross sectiontrans_f_y (
Optional
[float
], default:None
) – Yield strength of the transverse confining reinforcement (\(f_{yh}\))eps_su (
Optional
[float
], default:None
) – Strain at the ultimate tensile strength of the reinforcement (\(\varepsilon_{su}\))n_points (
int
, default:50
) – 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 concreten_steel_strain (
float
, default:0.6
) – 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 strainn_confinement (
float
, default:0.75
) – Modifier for volumetric ratio of confinement reinforcement
- Raises
ValueError – If specified section type is not rect, circ_hoop or circ_spiral
from concreteproperties.stress_strain_profile import ModifiedMander
ModifiedMander(elastic_modulus=30e3,
compressive_strength=30,
tensile_strength=4.5,
sect_type="rect",
conc_tension=True,
conc_spalling=True,
n_points=25
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
from concreteproperties.stress_strain_profile import ModifiedMander
ModifiedMander(
elastic_modulus=30e3,
compressive_strength=30,
tensile_strength=4.5,
sect_type="rect",
conc_confined=True,
conc_tension=True,
d=800,
b=500,
long_reinf_area=12 * 314,
w_dash=[150] * 12,
cvr=30 + 10,
trans_spacing=125,
trans_d_b=10,
trans_num_d=4,
trans_num_b=4,
trans_f_y=500,
eps_su=0.15,
n_points=25,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.2. Concrete Ultimate Stress-Strain Profiles#
Note
Unless assigned in the class constructor, the ultimate_strain
of the concrete is
taken as the largest compressive strain in the stress-strain profile. This
ultimate_strain
defines the curvature and strain profile used in ultimate
analyses.
Warning
concreteproperties currently only supports a single unique ultimate_strain
to be
used for a given ConcreteSection
. While
multiple concrete materials, with differing stress-strain profiles, can be
used within a given ConcreteSection
, the
ultimate analysis will use the smallest value of the ultimate_strain
amongst the
various concrete materials to define the strain profile at ultimate.
1.2.2.1. Generic Concrete Ultimate Profile#
- class ConcreteUltimateProfile(strains, stresses, compressive_strength)[source]
Bases:
StressStrainProfile
Abstract class for a concrete ultimate stress-strain profile.
- Parameters
strains (
List
[float
]) – List of strains (must be increasing or equal)stresses (
List
[float
]) – List of stressescompressive_strength (
float
) – Concrete compressive strength
from concreteproperties.stress_strain_profile import ConcreteUltimateProfile
ConcreteUltimateProfile(
strains=[-20 / 30e3, 0, 20 / 30e3, 30 / 25e3, 40 / 20e3, 0.003],
stresses=[0, 0, 20, 30, 40, 40],
compressive_strength=32,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.2.2. Rectangular Stress Block#
- class RectangularStressBlock(compressive_strength, alpha, gamma, ultimate_strain)[source]
Bases:
ConcreteUltimateProfile
Class for a rectangular stress block.
- Parameters
compressive_strength (
float
) – Concrete compressive strengthalpha (
float
) – Factor that modifies the concrete compressive strengthgamma (
float
) – Factor that modifies the depth of the stress blockultimate_strain (
float
) – Concrete strain at failure
from concreteproperties.stress_strain_profile import RectangularStressBlock
RectangularStressBlock(
compressive_strength=40,
alpha=0.85,
gamma=0.77,
ultimate_strain=0.003,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.2.3. Bilinear Ultimate Profile#
- class BilinearStressStrain(compressive_strength, compressive_strain, ultimate_strain)[source]
Bases:
ConcreteUltimateProfile
Class for a bilinear stress-strain relationship.
- Parameters
compressive_strength (
float
) – Concrete compressive strengthcompressive_strain (
float
) – Strain at which the concrete stress equals the compressive strengthultimate_strain (
float
) – Concrete strain at failure
from concreteproperties.stress_strain_profile import BilinearStressStrain
BilinearStressStrain(
compressive_strength=40,
compressive_strain=0.00175,
ultimate_strain=0.0035,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.2.4. Eurocode Parabolic Ultimate Profile#
- class EurocodeParabolicUltimate(compressive_strength, compressive_strain, ultimate_strain, n, n_points=10)[source]
Bases:
ConcreteUltimateProfile
Class for an ultimate parabolic stress-strain relationship to EC2.
- Parameters
compressive_strength (
float
) – Concrete compressive strengthcompressive_strain (
float
) – Strain at which the concrete stress equals the compressive strengthultimate_strain (
float
) – Concrete strain at failuren (
float
) – Parabolic curve exponentn_points (
int
, default:10
) – Number of points to discretise the parabolic segment of the curve
from concreteproperties.stress_strain_profile import EurocodeParabolicUltimate
EurocodeParabolicUltimate(
compressive_strength=40,
compressive_strain=0.00175,
ultimate_strain=0.0035,
n=2,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.3. Steel Stress-Strain Profiles#
1.2.3.1. Generic Steel Profile#
- class SteelProfile(strains, stresses, yield_strength, elastic_modulus, fracture_strain)[source]
Bases:
StressStrainProfile
Abstract class for a steel stress-strain profile.
- Parameters
strains (
List
[float
]) – List of strains (must be increasing or equal)stresses (
List
[float
]) – List of stressesyield_strength (
float
) – Steel yield strengthelastic_modulus (
float
) – Steel elastic modulusfracture_strain (
float
) – Steel fracture strain
from concreteproperties.stress_strain_profile import SteelProfile
SteelProfile(
strains=[-0.05, -0.03, -0.02, -500 / 200e3, 0, 500 / 200e3, 0.02, 0.03, 0.05],
stresses=[-600, -600, -500, -500, 0, 500, 500, 600, 600],
yield_strength=500,
elastic_modulus=200e3,
fracture_strain=0.05,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.3.2. Elastic-Plastic Steel Profile#
- class SteelElasticPlastic(yield_strength, elastic_modulus, fracture_strain)[source]
Bases:
SteelProfile
Class for a perfectly elastic-plastic steel stress-strain profile.
- Parameters
yield_strength (
float
) – Steel yield strengthelastic_modulus (
float
) – Steel elastic modulusfracture_strain (
float
) – Steel fracture strain
from concreteproperties.stress_strain_profile import SteelElasticPlastic
SteelElasticPlastic(
yield_strength=500,
elastic_modulus=200e3,
fracture_strain=0.05,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.3.3. Elastic-Plastic Hardening Steel Profile#
- class SteelHardening(yield_strength, elastic_modulus, fracture_strain, ultimate_strength)[source]
Bases:
SteelProfile
Class for a steel stress-strain profile with strain hardening.
- Parameters
yield_strength (
float
) – Steel yield strengthelastic_modulus (
float
) – Steel elastic modulusfracture_strain (
float
) – Steel fracture strainultimate_strength (
float
) – Steel ultimate strength
from concreteproperties.stress_strain_profile import SteelHardening
SteelHardening(
yield_strength=500,
elastic_modulus=200e3,
fracture_strain=0.05,
ultimate_strength=600,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.4. Strand Stress-Strain Profiles#
1.2.4.1. Generic Strand Profile#
- class StrandProfile(strains, stresses, yield_strength)[source]
Bases:
StressStrainProfile
Abstract class for a steel strand stress-strain profile.
Implements a piecewise linear stress-strain profile. Positive stresses & strains are compression.
- Parameters
strains (
List
[float
]) – List of strains (must be increasing or equal)stresses (
List
[float
]) – List of stressesyield_strength (
float
) – Strand yield strength
from concreteproperties.stress_strain_profile import StrandProfile
StrandProfile(
strains=[-0.03, -0.01, -1400 / 195e3, 0, 1400 / 195e3, 0.01, 0.03],
stresses=[-1800, -1600, -1400, 0, 1400, 1600, 1800],
yield_strength=500,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.4.2. Elastic-Plastic Hardening Strand Profile#
- class StrandHardening(yield_strength, elastic_modulus, fracture_strain, breaking_strength)[source]
Bases:
StrandProfile
Class for a strand stress-strain profile with strain hardening.
- Parameters
yield_strength (
float
) – Strand yield strengthelastic_modulus (
float
) – Strand elastic modulusfracture_strain (
float
) – Strand fracture strainbreaking_strength (
float
) – Strand breaking strength
from concreteproperties.stress_strain_profile import StrandHardening
StrandHardening(
yield_strength=1500,
elastic_modulus=195e3,
fracture_strain=0.035,
breaking_strength=1830,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)
1.2.4.3. PCI Journal (1992) Strand Profile#
- class StrandPCI1992(yield_strength, elastic_modulus, fracture_strain, breaking_strength, bilinear_yield_ratio=1.04, strain_cps=<factory>, n_points=<factory>)[source]
Bases:
StrandProfile
Class for a strand stress-strain profile by R. Devalapura and M. Tadros from the March-April issue of the PCI Journal.
- Parameters
yield_strength (
float
) – Strand yield strengthelastic_modulus (
float
) – Strand elastic modulusfracture_strain (
float
) – Strand fracture strainbreaking_strength (
float
) – Strand breaking strengthbilinear_yield_ratio (
float
, default:1.04
) – Ratio between the stress at the intersection of a bilinear profile, and the yield strengthstrain_cps (
List
[float
], default:<factory>
) – Strain control points, generates the following strain segments:[0, strain_cps[0], strain_cps[1], fracture_strain]
. Length must be equal to 2.n_points (
List
[int
], default:<factory>
) – Number of points to discretise within each strain segment. Length must be equal to 3.
from concreteproperties.stress_strain_profile import StrandPCI1992
StrandPCI1992(
yield_strength=1500,
elastic_modulus=195e3,
fracture_strain=0.035,
breaking_strength=1830,
).plot_stress_strain()
(Source code
, png
, hires.png
, pdf
)