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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions