SN curve definition

Create an instance of the SN_Curve class. You can use class constructor to set the SN parameteres. Only kwargs parameters are allowed.

class SN_Curve(*forget_positinal_args, **kwargs)

Parameters
----------
k : float
    default: 5.0
    slope of SN curve

k1 : float
    first slope until S1 amplitude,
    default: k

ND : int
    endurance limit number of cycles,
    default: 1e6

SD : float
    endurance limit amplitude
    default: 1000

S1 : float
    low cycle limit amplitude (slope k1 for greater amplitudes)
    default: SD

miner : string
    {"haibach","elementar","original"},
    default: haibach

M : float
    meanstress influence

R : float
    R-ratio of SN-curve

meanCorrType : string
    method to handle meanstress effect
    {"FKM","goodman"},
    default: FKM


Attributes
----------
name : string
    Name of the sn curve

sn_parms : dict
    Dictionary of all SN parameters

sn_points : pandas DataFrame
    Points to be used in a plot. Two df columns "N" and "a".

N1 : float
    read-only, number of cycles on the S1 amplitude

ALL __init__ PARAMETERS ARE ATTRIBUTES TOO ("SD", "ND", "k", "S1", "k1", "miner", "R", "M", "meanCorrType")

See following figure for the meaning of the parameters. alt text

There are two types of mean-stress correction handling {FKM,goodman}. Default FKM distinguish between 4 different ranges of R ratio. According to that range given meanstress influence value M is corrected according to the following figure. alt text

If goodman meanCorrType is selected. Constant meanstress influence value M is considered for all R ranges except R > 1 (fully compressive cycle). There no meanstress is taken into account as in the FKM type.

Each SN_Curve instance has the attribute name, that can be set.

There is a method set_SN_parameters() if there is a need to change any parameter(s) afterwards. Just pass there a dictionary with the parameters to change. The same keys as in the SN_Curve constructor are used.

Example:

sn = SN_curve.SN_Curve(SD=250, S1=500, k1=9, k=5, ND=2e6, M=0.22, R=0.4, meanCorrType="goodman", miner="haibach")
sn.set_SN_parameters({S1=600, k1=10})
sn.M=0.1
sn.meanCorrType="fkm"