The RambergOsgood class#

class pylife.materiallaws.RambergOsgood(E, K, n)[source]#

Represent an elastic-plastic Ramberg-Osgood material law.

The material law describes total strain as the sum of an elastic part and a plastic power-law part. Stresses and the Young’s modulus must use the same stress unit, typically MPa.

Parameters:
  • E (float) – Young’s modulus in MPa or another consistent stress unit.

  • K (float) – Cyclic strength coefficient in the same stress unit as E. This value is often written as K' or K_prime in FKM nonlinear formulas.

  • n (float) – Cyclic strain hardening exponent, dimensionless. This value is often written as n' or n_prime in FKM nonlinear formulas.

Notes

The implemented relation follows the alternative Ramberg-Osgood form with Hollomon parameters:

\[\varepsilon = \frac{\sigma}{E} + \operatorname{sign}(\sigma) \left|\frac{\sigma}{K}\right|^{1/n}\]
property E#

Return Young’s modulus.

property K#

Return the cyclic strength coefficient.

delta_strain(delta_stress)[source]#

Calculate cyclic Masing strain span for a stress span.

Parameters:

delta_stress (array_like) – Stress span in MPa or another unit consistent with E and K.

Returns:

Strain span, dimensionless.

Return type:

numpy.ndarray

Notes

The calculation assumes Masing material behavior as used in the notch strain concept (Kerbgrundkonzept). It evaluates twice the monotonic strain at half the stress span.

delta_stress(delta_strain)[source]#

Calculate cyclic Masing stress span for a strain span.

Parameters:

delta_strain (array_like) – Strain span, dimensionless.

Returns:

Stress span in MPa or another unit consistent with E and K.

Return type:

numpy.ndarray

Notes

The calculation assumes Masing material behavior as used in the notch strain concept (Kerbgrundkonzept). It inverts twice the monotonic strain at half the strain span.

elastic_strain(stress)[source]#

Calculate elastic strain for a stress.

Parameters:

stress (array_like) – Stress in MPa or another unit consistent with E.

Returns:

Elastic strain, dimensionless.

Return type:

array_like

lower_hysteresis(stress, max_stress)[source]#

Calculate the lower hysteresis branch from maximum stress.

Parameters:
  • stress (array_like) – Stress values on the lower branch in MPa or another unit consistent with E and K. Values must not exceed max_stress.

  • max_stress (float) – Maximum stress of the hysteresis loop in the same unit as stress.

Returns:

Strain values on the lower hysteresis branch from max_stress to stress, dimensionless.

Return type:

numpy.ndarray

Raises:

ValueError – Raised if any value in stress is greater than max_stress.

property n#

Return the cyclic strain hardening exponent.

plastic_strain(stress)[source]#

Calculate plastic strain for a stress.

Parameters:

stress (array_like) – Stress in MPa or another unit consistent with K.

Returns:

Plastic strain, dimensionless.

Return type:

array_like

strain(stress)[source]#

Calculate elastic-plastic strain for a stress.

Parameters:

stress (array_like) – Stress in MPa or another unit consistent with E and K.

Returns:

Total elastic-plastic strain, dimensionless.

Return type:

numpy.ndarray

Examples

>>> from pylife.materiallaws import RambergOsgood
>>> rg = RambergOsgood(210000.0, 1000.0, 0.2)
>>> round(float(rg.strain(300.0)), 6)
0.003859
stress(strain, *, rtol=1e-05, tol=1e-06)[source]#

Calculate stress for an elastic-plastic strain.

Parameters:
Returns:

Stress in MPa or another unit consistent with E and K.

Return type:

numpy.ndarray

tangential_compliance(stress)[source]#

Calculate tangential compliance for a stress.

Parameters:

stress (array_like) – Stress in MPa or another unit consistent with E and K.

Returns:

Derivative of strain with respect to stress, in reciprocal stress units.

Return type:

array_like

tangential_modulus(stress)[source]#

Calculate tangential modulus for a stress.

Parameters:

stress (array_like) – Stress in MPa or another unit consistent with E and K.

Returns:

Derivative of stress with respect to strain, in stress units.

Return type:

array_like