The true_stress_strain module#

Simple conversion functions from technical stress/strain to true stress/strain including fracture stress/strain.

Convert technical tensile-test quantities to true stress-strain values.

The helpers in this module implement the logarithmic strain and area-corrected stress quantities commonly used in the FKM nonlinear static assessment.

pylife.materiallaws.true_stress_strain.true_fracture_strain(reduction_area_fracture)[source]#

Calculate true fracture strain from reduction of area.

Parameters:

reduction_area_fracture (float) – Relative reduction of cross-sectional area at fracture, dimensionless. Use a value between 0.0 and 1.0.

Returns:

True fracture strain, dimensionless.

Return type:

float

Notes

This quantity is used by the FKM nonlinear static assessment and is based on the measured reduction of area after fracture:

\[\varepsilon_\mathrm{f,true} = \ln \left(\frac{1}{1 - Z}\right)\]
pylife.materiallaws.true_stress_strain.true_fracture_stress(fracture_force, initial_cross_section, reduction_area_fracture)[source]#

Calculate true fracture stress from force and reduced area.

Parameters:
  • fracture_force (float) – Force at fracture in N or another consistent force unit.

  • initial_cross_section (float) – Initial cross-sectional area of the tensile specimen in mm² or another consistent area unit.

  • reduction_area_fracture (float) – Relative reduction of cross-sectional area at fracture, dimensionless. Use a value between 0.0 and 1.0.

Returns:

True fracture stress in the force-per-area unit implied by fracture_force and initial_cross_section.

Return type:

float

Notes

The FKM nonlinear static assessment uses the fracture force divided by the remaining area at fracture:

\[\sigma_\mathrm{f,true} = \frac{F_\mathrm{f}}{S_0 (1 - Z)}\]
pylife.materiallaws.true_stress_strain.true_strain(tech_strain)[source]#

Calculate true strain from technical strain.

Parameters:

tech_strain (array_like) – Technical strain (engineering strain), dimensionless.

Returns:

True logarithmic strain, dimensionless.

Return type:

array_like

Notes

The calculation follows the standard conversion used for tensile-test data before necking:

\[\varepsilon_\mathrm{true} = \ln(1 + \varepsilon_\mathrm{tech})\]

Examples

>>> from pylife.materiallaws.true_stress_strain import true_strain
>>> round(float(true_strain(0.1)), 6)
0.09531
pylife.materiallaws.true_stress_strain.true_stress(tech_stress, tech_strain)[source]#

Calculate true stress from technical stress and strain.

Parameters:
  • tech_stress (array_like) – Technical stress (engineering stress) in MPa or another consistent force-per-area unit.

  • tech_strain (array_like) – Technical strain (engineering strain), dimensionless.

Returns:

True stress in the same unit as tech_stress.

Return type:

array_like

Notes

The conversion assumes volume constancy and uniform elongation:

\[\sigma_\mathrm{true} = \sigma_\mathrm{tech} (1 + \varepsilon_\mathrm{tech})\]