The likelihood module#

Calculate log-likelihoods for Wöhler curve parameter estimation.

The likelihood formulations combine fracture tests in the finite-life region with fracture and runout outcomes around the endurance limit.

class pylife.materialdata.woehler.likelihood.AbstractLikelihood(fatigue_data)[source]#

Calculate log-likelihoods for Wöhler curve parameters.

Subclasses define which fracture tests contribute to the finite-life term and which tests contribute to the endurance-limit term. The likelihoods are used by the maximum-likelihood analyzers to fit SD, TS, k_1, ND, and TN.

Parameters:

fatigue_data (FatigueData) – Validated Wöhler fatigue data accessor.

Notes

The finite-life likelihood evaluates shifted cycle numbers

\[x_i = \log_{10}\left(N_i \left(\frac{S_i}{SD}\right)^{k_1}\right)\]

against a normal distribution with mean log10(ND) and standard deviation derived from TN. The endurance-limit likelihood evaluates the fracture probability at each load level with a log-normal distribution around SD and scatter TS; runouts contribute the survival probability.

likelihood_finite(SD, k_1, ND, TN)[source]#

Return the finite-life log-likelihood for fractures.

Parameters:
  • SD (float) – Endurance limit load at the knee point.

  • k_1 (float) – Finite-life Wöhler slope above the endurance limit.

  • ND (float) – Cycle number at the knee point.

  • TN (float) – Scatter in cycle direction, expressed as the 10 %/90 % cycle ratio.

Returns:

Log-likelihood that the selected fracture tests follow the finite-life branch defined by SD, k_1, ND, and TN.

Return type:

float

likelihood_infinite(SD, TS)[source]#

Return the endurance-limit log-likelihood for outcomes.

Parameters:
  • SD (float) – Endurance limit load at the knee point.

  • TS (float) – Scatter in load direction, expressed as the 10 %/90 % load ratio.

Returns:

Log-likelihood that fracture and runout outcomes around the endurance limit follow the log-normal distribution defined by SD and TS.

Return type:

float

likelihood_total(SD, TS, k_1, ND, TN)[source]#

Return the total log-likelihood for Wöhler curve parameters.

Parameters:
  • SD (float) – Endurance limit load at the knee point.

  • TS (float) – Scatter in load direction, expressed as the 10 %/90 % load ratio.

  • k_1 (float) – Finite-life Wöhler slope above the endurance limit.

  • ND (float) – Cycle number at the knee point.

  • TN (float) – Scatter in cycle direction, expressed as the 10 %/90 % cycle ratio.

Returns:

Sum of the finite-life and endurance-limit log-likelihoods.

Return type:

float

class pylife.materialdata.woehler.likelihood.LikelihoodAllFractures(fatigue_data)[source]#

Use all fracture tests for the finite-life likelihood.

Parameters:

fatigue_data (FatigueData) – Validated Wöhler fatigue data accessor.

class pylife.materialdata.woehler.likelihood.LikelihoodHighestMixedLevel(fatigue_data)[source]#

Use pure finite fractures and the highest mixed load level.

Parameters:

fatigue_data (FatigueData) – Validated Wöhler fatigue data accessor.

class pylife.materialdata.woehler.likelihood.LikelihoodLegacy(fatigue_data)[source]#

Use the likelihood formulation from pyLife 2.1.x and earlier.

Parameters:

fatigue_data (FatigueData) – Validated Wöhler fatigue data accessor.

class pylife.materialdata.woehler.likelihood.LikelihoodPureFiniteZone(fatigue_data)[source]#

Use finite-zone fractures for the finite-life likelihood.

Parameters:

fatigue_data (FatigueData) – Validated Wöhler fatigue data accessor.