EurocodeParabolicUltimate

class concreteproperties.stress_strain_profile.EurocodeParabolicUltimate(compressive_strength: float, compressive_strain: float, ultimate_strain: float, n: float, n_points: int = 10)[source]

Bases: ConcreteUltimateProfile

Class for an ultimate parabolic stress-strain relationship to EC2.

Parameters:
  • compressive_strength (float) – Concrete compressive strength

  • compressive_strain (float) – Strain at which the concrete stress equals the compressive strength

  • ultimate_strain (float) – Concrete strain at failure

  • n (float) – Parabolic curve exponent

  • n_points (int) – Number of points to discretise the parabolic segment of the curve. Defaults to 10.

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 ultimate strain, or largest compressive 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

n_points

strains

stresses

compressive_strength

compressive_strain

ultimate_strain

n

get_compressive_strength() float

Returns the most positive stress.

Returns:

Compressive strength

Return type:

float

get_elastic_modulus() float

Returns the elastic modulus of the stress-strain profile.

Raises:

ValueError – Elastic modulus is zero

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

Returns the most negative stress.

Returns:

Tensile strength

Return type:

float

get_ultimate_compressive_strain() float

Returns the ultimate strain, or largest compressive 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-', 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 to False, uses the default matplotlib ticker formatting. Defaults to False.

  • 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 to 2.

  • units (UnitDisplay | None) – Unit system to display. Defaults to None.

  • kwargs – Passed to plotting_context()

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