StressStrainProfile¶
- class concreteproperties.stress_strain_profile.StressStrainProfile(strains: list[float], stresses: list[float])[source]¶
Bases:
objectAbstract base class for a material stress-strain profile.
Implements a piecewise linear stress-strain profile. Positive stresses & strains are compression.
- Parameters:
- Raises:
ValueError – If length of
strainsis not equal to length ofstressesValueError – If length of
strains/stressesis not greater than1ValueError – If
strainsdoes not contain increasing or equal values
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 compressive 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
strainsstresses- get_elastic_modulus() float[source]¶
Returns the elastic modulus of the stress-strain profile.
- Raises:
ValueError – Elastic modulus is zero
- Returns:
Elastic modulus
- Return type:
- get_compressive_strength() float[source]¶
Returns the most positive stress.
- Returns:
Compressive strength
- Return type:
- get_tensile_strength() float[source]¶
Returns the most negative stress.
- Returns:
Tensile strength
- Return type:
- get_yield_strength() float[source]¶
Returns the yield strength of the stress-strain profile.
- Raises:
NotImplementedError – If this method has not been implemented by the child class
- Return type:
- get_ultimate_compressive_strain() float[source]¶
Returns the largest compressive strain.
- Returns:
Ultimate strain
- Return type:
- get_ultimate_tensile_strain() float[source]¶
Returns the largest tensile strain.
- Returns:
Ultimate strain
- Return type:
- print_properties(fmt: str = '8.6e') None[source]¶
Prints the stress-strain profile properties to the terminal.
- Parameters:
fmt (str) – Number format. Defaults to
"8.6e".
- 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[source]¶
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: