Ramberg-Osgood Stress-Strain (structures/materials/ramberg-osgood)
Use when the task is the elastic-plastic stress-strain response of a
metallic material: total strain from a stress, stress by inversion of
the implicit Ramberg-Osgood equation, plastic strain, secant modulus,
and tangent modulus for metallic structural analysis beyond the yield
point.
Domain quick reference
- Ramberg-Osgood three-parameter model (NACA TN 902):
epsilon = sigma / E + 0.002 * (sigma / sigma_0.2) ** n, with stress
sigma and elastic modulus E in MPa, sigma_0.2 the 0.2 percent offset
yield strength in MPa, and n the strain hardening exponent (typically
3 to 30 for aerospace metals). Strain is dimensionless.
- Elastic strain: epsilon_e = sigma / E.
- Plastic strain: epsilon_p = 0.002 * (sigma / sigma_0.2) ** n; the
total strain is the sum epsilon_e + epsilon_p.
- Stress at a given total strain: the equation is implicit in sigma, so
solve by bisection on the monotonic residual
f(sigma) = sigma / E + 0.002 * (sigma / sigma_0.2) ** n - epsilon,
bracketed on [0, E * epsilon] because sigma / E never exceeds the
total strain.
- Secant modulus: E_s = sigma / epsilon (chord slope from the origin).
- Tangent modulus: E_t = 1 / (1 / E + 0.002 * n * sigma ** (n - 1) /
sigma_0.2 ** n); at sigma = 0 the tangent modulus equals E, and it
falls toward the plastic plateau as the stress rises.
- The model is common engineering methodology; the source paper is NACA
TN 902 (US government work, public domain).
Workflow
- Collect the material elastic modulus E, the 0.2 percent offset yield
strength sigma_0.2, and the strain hardening exponent n.
- Compute the total strain at a stress with strain, or the elastic and
plastic parts with elastic_strain and plastic_strain.
- For a required total strain, invert the model with stress_for_strain
(bisection; the stress lies between 0 and E * epsilon).
- Derive the secant modulus with secant_modulus and the tangent
modulus with tangent_modulus along the curve.
- Build the curve as a table of stress, strain, plastic strain, secant
modulus, and tangent modulus points for the structural analysis.
Pitfalls
- Using only the elastic term sigma / E above the yield point: the
plastic term 0.002 * (sigma / sigma_0.2) ** n dominates once sigma
exceeds sigma_0.2, and a purely elastic estimate understates the
strain badly.
- Treating the exponent n as a count: it is the strain hardening
exponent, not a number of terms; values below 1 break the model
monotonicity and the bisection bracket.
- Mixing units: E and sigma_0.2 must share the unit of sigma (MPa);
mixing MPa and ksi shifts the plastic term by powers of 10.
- Expecting stress_for_strain to be a closed form: the equation is
implicit in sigma and needs the bisection solve; the elastic
extrapolation E * epsilon is an upper bound on the stress, not the
answer.
- Calling secant_modulus at zero strain: the chord slope is undefined
at epsilon = 0; use the tangent modulus E there.
- Ignoring the plastic strain sign: plastic_strain raises on an
inconsistent input where sigma / E already exceeds the total strain.
Behavior contract (gate 3)
The Ramberg-Osgood strain, inversion, and modulus logic is exercised by
the gate 3 contract test: scripts/test_ramberg_osgood.py against
scripts/ramberg_osgood_logic.py (stdlib unittest, offline). Run:
python3 scripts/test_ramberg_osgood.py
Compliance
- Standards referenced, not reproduced: NACA TN 902 is US government
work (public domain); the Ramberg-Osgood equation and its secant and
tangent modulus derivatives are common materials-engineering
methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: ramberg-osgood3description: Use when you must build the elastic-plastic stress-strain response of a metallic material with the Ramberg-Osgood three-parameter model: compute the total strain at a given stress with strain = stress/E + 0.002*(stress/sigma_0.2)^n, invert the implicit equation by bisection for the stress at a required total strain, and derive the plastic strain, secant modulus, and tangent modulus along the curve. Produces the stress-strain curve points and stiffness values used in metallic structural analysis beyond the yield point. Trigger: ramberg-osgood, stress-strain-curve, plastic-strain, secant-modulus, tangent-modulus, offset-yield-strength, strain-hardening, elastic-plastic.4license: Apache-2.05---67# Ramberg-Osgood Stress-Strain (structures/materials/ramberg-osgood)89Use when the task is the elastic-plastic stress-strain response of a10metallic material: total strain from a stress, stress by inversion of11the implicit Ramberg-Osgood equation, plastic strain, secant modulus,12and tangent modulus for metallic structural analysis beyond the yield13point.1415## Domain quick reference1617- Ramberg-Osgood three-parameter model (NACA TN 902):18 epsilon = sigma / E + 0.002 * (sigma / sigma_0.2) ** n, with stress19 sigma and elastic modulus E in MPa, sigma_0.2 the 0.2 percent offset20 yield strength in MPa, and n the strain hardening exponent (typically21 3 to 30 for aerospace metals). Strain is dimensionless.22- Elastic strain: epsilon_e = sigma / E.23- Plastic strain: epsilon_p = 0.002 * (sigma / sigma_0.2) ** n; the24 total strain is the sum epsilon_e + epsilon_p.25- Stress at a given total strain: the equation is implicit in sigma, so26 solve by bisection on the monotonic residual27 f(sigma) = sigma / E + 0.002 * (sigma / sigma_0.2) ** n - epsilon,28 bracketed on [0, E * epsilon] because sigma / E never exceeds the29 total strain.30- Secant modulus: E_s = sigma / epsilon (chord slope from the origin).31- Tangent modulus: E_t = 1 / (1 / E + 0.002 * n * sigma ** (n - 1) /32 sigma_0.2 ** n); at sigma = 0 the tangent modulus equals E, and it33 falls toward the plastic plateau as the stress rises.34- The model is common engineering methodology; the source paper is NACA35 TN 902 (US government work, public domain).3637## Workflow38391. Collect the material elastic modulus E, the 0.2 percent offset yield40 strength sigma_0.2, and the strain hardening exponent n.412. Compute the total strain at a stress with strain, or the elastic and42 plastic parts with elastic_strain and plastic_strain.433. For a required total strain, invert the model with stress_for_strain44 (bisection; the stress lies between 0 and E * epsilon).454. Derive the secant modulus with secant_modulus and the tangent46 modulus with tangent_modulus along the curve.475. Build the curve as a table of stress, strain, plastic strain, secant48 modulus, and tangent modulus points for the structural analysis.4950## Pitfalls5152- Using only the elastic term sigma / E above the yield point: the53 plastic term 0.002 * (sigma / sigma_0.2) ** n dominates once sigma54 exceeds sigma_0.2, and a purely elastic estimate understates the55 strain badly.56- Treating the exponent n as a count: it is the strain hardening57 exponent, not a number of terms; values below 1 break the model58 monotonicity and the bisection bracket.59- Mixing units: E and sigma_0.2 must share the unit of sigma (MPa);60 mixing MPa and ksi shifts the plastic term by powers of 10.61- Expecting stress_for_strain to be a closed form: the equation is62 implicit in sigma and needs the bisection solve; the elastic63 extrapolation E * epsilon is an upper bound on the stress, not the64 answer.65- Calling secant_modulus at zero strain: the chord slope is undefined66 at epsilon = 0; use the tangent modulus E there.67- Ignoring the plastic strain sign: plastic_strain raises on an68 inconsistent input where sigma / E already exceeds the total strain.6970## Behavior contract (gate 3)7172The Ramberg-Osgood strain, inversion, and modulus logic is exercised by73the gate 3 contract test: scripts/test_ramberg_osgood.py against74scripts/ramberg_osgood_logic.py (stdlib unittest, offline). Run:75python3 scripts/test_ramberg_osgood.py7677## Compliance7879- Standards referenced, not reproduced: NACA TN 902 is US government80 work (public domain); the Ramberg-Osgood equation and its secant and81 tangent modulus derivatives are common materials-engineering82 methodology, summary-only per standards-map.yaml.83- compliance: STANDARDS-REF, gated: false.