Skip to content

[IMPL] LCF uniaxial SWT criterion #35

@MartinNesladek

Description

@MartinNesladek

ℹ️ General Information

Component Name: LCF uniaxial SWT criterion

Component Location: core/energy_life/damage_params/uniaxial_fatigue_criteria/

Suggested Python Name: SWT

FABER WG Relation: 4.1, 4.7

Brief Description: Smith-Watson-Topper (SWT) damage parameter for mean stress correction in strain-life.

Priority: 8

Technical Complexity: 2

Estimated Effort: 2

Dependencies: -


Implementation Details

📋 Specification

For given stress and strain values representing a single load cycle compute the value of SWT parameter, $P_{SWT}$, in MPa. By solving the non-linear equation below, obtain the number of cycles to failure, $N$, as a final output.

Mathematical Formulation

$$ P_{swt} = \sqrt{E\cdot\varepsilon_a\cdot(\sigma_{m}+\sigma_{a})} $$

The value of N is found by solving the following non-linear equation using, e.g., the Newton's iterative scheme:

$$ P_{swt}^2 - \sigma_f^2\cdot(2N)^{2b} - E\cdot\varepsilon_f\cdot\sigma_f\cdot(2N)^{b+c} = 0$$

Inputs

  1. Parameters of the e-N curve in the form of Manson-Coffin and Basquin equation
Parameter Symbol Type Description Units Constraints
fat_strength_coef $\sigma_f$ array of floats Manson-Coffin and Basquin equation fatigue strength coefficient MPa $>0$
fat_ductility_coef $\varepsilon_f$ array of floats Manson-Coffin and Basquin equation fatigue ductility coefficient - $>0$
fat_strength_exp $b$ array of floats Manson-Coffin and Basquin equation fatigue strength exponent - $<0$
fat_ductility_exp $c$ array of floats Manson-Coffin and Basquin equation fatigue ductility exponent - $<0$
elastic_modulus $E$ array of ints Young's / Elastic modulus MPa $>0$
  1. Stress / Strain values
Parameter Symbol Type Description Units Range
strain_amp $\varepsilon_a$ array of floats strain amplitue - $(0;\infty)$
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
N array of ints Estimated repetitions N of a given load cycle to failure - $(0;\infty)$

Expected Behavior

🔧 Implementation Guidelines

Function Signature

# Suggested function signature
def function_name():
    pass

Code Structure

Error Handling

✅ Validation & Testing

Test Cases

Test Case Inputs Expected Outputs Notes
Example 1 $\sigma_f = 475.4 MPa; b = -0.078; \varepsilon_f = 0.612; c = -0.62; E = 162000 MPa, \varepsilon_a = 0.0135; \sigma_a = 290 MPa, \sigma_m = 10 MPa, N_0 = 1$ $P_{swt} = 810 MPa; N = 278$ $N_0$ is initial estimate of N
Example 2

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

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions