Skip to content

[IMPL] Implement stress-life prediction function based on the Goodman mean-stress correction #44

@MartinNesladek

Description

@MartinNesladek

ℹ️ General Information

Component Name: Goodman

Component Location: core/stress_life/damage_params/uniaxial_stress_eq_amp/

Suggested Python Name: calc_stress_eq_amp_goodman

FABER WG Relation: 4.1

Brief Description: Uniaxial equivalent stress amplitude based on Goodman line

Priority: 2

Technical Complexity: 2

Estimated Effort: 2

Dependencies: -


Implementation Details

📋 Specification

Using the Goodman mean stress correction, compute the value of equivalent stress amplitude, $\sigma_{aeq}$, in MPa for given stress values $\sigma_a$ and $\sigma_m$ representing a single load cycle.

Mathematical Formulation

$$ \displaystyle\sigma_{aeq}=\frac{\sigma_a}{1-\frac{\sigma_m}{\sigma_{UTS}}} $$

$$  \displaystyle\sigma_{aeq}=\frac{\sigma_a}{1-\frac{\sigma_m}{\sigma_{UTS}}} $$

Inputs

  1. Basquin curve parameters and ultimate tensile strength
Parameter Symbol Type Description Units Constraints
ult_stress $\sigma_{UTS}$ array of floats Ultimate tensile strength MPa $>0$
  1. Stress / Strain values
Parameter Symbol Type Description Units Range
stress_amp $\sigma_a$ array of floats stress amplitude MPa $(0;\infty)$
mean_stress $\sigma_m$ array of floats mean stress MPa $(-\infty;\infty)$

Outputs

Parameter Type Description Units Range
$\sigma_{aeq}$ array of floats Equivalent stress amplitude by Goodman - $(-\infty;\infty)$

Expected Behavior

🔧 Implementation Guidelines

Function Signature

# Suggested function signature
def calc_stress_eq_amp_goodman(
    stress_amp: ArrayLike,
    mean_stress: ArrayLike,
    ult_stress: ArrayLike,
) -> NDArray[np.float64]:

Code Structure

Error Handling

✅ Validation & Testing

Test Cases

Test Case Inputs Expected Outputs Notes
Example 1 $\sigma_{UTS} = 700 MPa; \sigma_a = 180 MPa, \sigma_m = 100 MPa$ $\sigma_{aeq} = 210 MPa$

Validation Criteria

  • Mathematical accuracy verified against literature
  • Edge cases handled appropriately
  • Output format matches specification

📚 References & Resources

S. Suresh: Fatigue of Materials, Cambridge University Press, 1998

📝 Technical Notes

Performance Considerations

Edge Cases to Handle

Issue a warning if $\sigma_m > \sigma_{UTS}$
An error handling should be implemented for $\sigma_m = \sigma_{UTS}$

Special Requirements

Metadata

Metadata

Assignees

Labels

No labels
No labels
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions