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 asK'orK_primein FKM nonlinear formulas.n (float) – Cyclic strain hardening exponent, dimensionless. This value is often written as
n'orn_primein 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
EandK.- Returns:
Strain span, dimensionless.
- Return type:
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
EandK.- Return type:
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
EandK. Values must not exceedmax_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_stresstostress, dimensionless.- Return type:
- Raises:
ValueError – Raised if any value in
stressis greater thanmax_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
EandK.- Returns:
Total elastic-plastic strain, dimensionless.
- Return type:
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:
strain (array_like) – Total elastic-plastic strain, dimensionless.
rtol (float, optional) – Relative tolerance passed to
scipy.optimize.newton(). Default is1e-5.tol (float, optional) – Absolute tolerance passed to
scipy.optimize.newton(). Default is1e-6.
- Returns:
Stress in MPa or another unit consistent with
EandK.- Return type: