Skip to content

[IMPL] Implement S-N curve Kohout-Věchet model #57

@MartinNesladek

Description

@MartinNesladek

ℹ️ General Information

Component Name: Kohout-Věchet curve

Component Location: material_laws/SN/

Suggested Python Name: wohler_kohout_vechet

FABER WG Relation: 2.1

Brief Description: Stress to life and life to stress calculation via the Kohout-Věchet curve

Priority: 9

Technical Complexity: 3

Estimated Effort: 4

Dependencies: -


Implementation Details

📋 Specification

A function implementing the Kohout-Věchet representation of an S–N curve, allowing the computation of the number of cycles ($N$) from a given stress amplitude ($\sigma_a$), and vice versa. The parameters ($A, B, C$) and ($\beta$) are regression constants (coefficients and exponent) obtained from fatigue testing.

Mathematical Formulation

Stress amplitude from life:

$$ \displaystyle \sigma_a = A\left( C\frac{N+B}{N+C} \right)^{\beta} $$

$$  \displaystyle \sigma_a = A\left( C\frac{N+B}{N+C} \right)^{\beta} $$

Use the Newton iterative scheme to get life ($N$) from stress amplitude:

$$ \displaystyle N^{i+1}=N^{i}-\frac{f(N^i)}{f'(N^i)}, $$

where

$$ \displaystyle f(N) =A\left( C\frac{N+B}{N+C} \right)^{\beta} - \sigma_a $$

and

$$ \displaystyle f'(N) =A\beta C^{\beta}\frac{(N+B)^{\beta-1}(C-B)}{(N+C)^{\beta+1}} $$

$$  \displaystyle N^{i+1}=N^{i}-\frac{f(N^i)}{f'(N^i)}, $$
$$  \displaystyle f(N) =A\left( C\frac{N+B}{N+C} \right)^{\beta} - \sigma_a $$
$$  \displaystyle f'(N) =A\beta C^{\beta}\frac{(N+B)^{\beta-1}(C-B)}{(N+C)^{\beta+1}} $$

Inputs

  1. Kohout-Věchet model regression parameters
Parameter Symbol Type Description Units Constraints
KV_A $A$ array of floats K-V coefficient - $>0$
KV_B $B$ array of floats K-V coefficient - $>0$
KV_C $C$ array of floats K-V coefficient - $>0$
KV_beta $\beta$ array of floats K-V exponent - $<0$
  1. Stress / Strain values or life
Parameter Symbol Type Description Units Range
stress_amp $\sigma_a$ array of floats Stress amplitude MPa $(0; \infty)$
life $N$ array of floats Number of cycles - $(0; \infty)$

Outputs

Parameter Type Description Units Range
$N$ array of floats Number of cycles - $(0; \infty)$
$\sigma_{a}$ array of floats Stress amplitude - $(0; \infty)$

Expected Behavior

🔧 Implementation Guidelines

Function Signature

# Suggested function signature

Code Structure

Error Handling

✅ Validation & Testing

Test Cases

Test Case Inputs Expected Outputs Notes
Example 1 $\sigma_{a} = 400 MPa; A = 16,651.6; B = 7,214; C = 960,478; \beta = -0.351$ $N = 35,360$

Validation Criteria

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

📚 References & Resources

Kohout, J., Věchet, S., 2001. A new function for fatigue curves characterization and its multiple merits. Int. J. Fatigue 23, 175–183. https://doi.org/10.1016/S0142-1123(00)00082-7

📝 Technical Notes

Performance Considerations

Edge Cases to Handle

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