Skip to content

[IMPL] HCF uniaxial SWT criterion #40

@MartinNesladek

Description

@MartinNesladek

ℹ️ General Information

Component Name: Stress-based uniaxial SWT

Component Location: core/stress_life/damage_params/uniaxial_stress_eq_amp/

Suggested Python Name: calc_stress_eq_amp_swt_uniax

FABER WG Relation: 4.1

Brief Description: Uniaxial equivalent stress amplitude based on Smith-Watson-Topper parameter.

Priority: 5

Technical Complexity: 2

Estimated Effort: 3

Dependencies: -


Implementation Details

📋 Specification

For given stress values $\sigma_a$ and $\sigma_m$ representing a single load cycle compute the value of SWT parameter, $P_{SWT}$, in MPa.

Mathematical Formulation

$$ \sigma_{aeq} = \sqrt{\sigma_{a}\cdot(\sigma_{m}+\sigma_{a})} $$

Inputs

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 HCF uniaxial SWT - $(0;\infty)$

Expected Behavior

🔧 Implementation Guidelines

Function Signature

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

Code Structure

Error Handling

✅ Validation & Testing

Test Cases

Test Case Inputs Expected Outputs Notes
Example 1 $\sigma_a = 290 MPa; \sigma_m = 10 MPa$ $P_{swt} = 295 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

Condition $\sigma_a > |\sigma_m|$ should be checked.

Special Requirements

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions