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 $(0;\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

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions