The Elementary class#

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

Estimate finite-life Wöhler parameters from fracture data.

Elementary is the base analyzer for Wöhler test data. It estimates k_1, the finite-life slope, SD, the endurance limit load at the knee point, ND, the cycle number at the knee point, and TN, the scatter in cycle direction. TS is derived from TN and k_1.

Choose this analyzer when only a robust first estimate is needed or when the data in the endurance-limit region is insufficient for Probit or maximum-likelihood evaluation. Derived analyzers use its result as their start value.

Parameters:

fatigue_data (pandas.DataFrame or FatigueData) – Wöhler test data. A data frame must contain load and cycles; when fracture is missing, the maximum cycle count is interpreted as the runout limit.

See also

pylife.materialdata.woehler.Probit

Estimate endurance-limit parameters with the Probit method.

pylife.materialdata.woehler.MaxLikeInf

Refine SD and TS by maximum likelihood.

pylife.materialdata.woehler.MaxLikeFull

Fit all Wöhler parameters by maximum likelihood.

Notes

The finite-life slope is fitted in double-logarithmic load-cycle space. The scatter TN is evaluated with the DIN 50100 pearl chain method, which shifts fracture points to a common load level before fitting their failure probabilities.

analyze(**kwargs)[source]#

Analyze the Wöhler test data.

Parameters:

**kwargs (dict) – Keyword arguments forwarded to the specific analyzer implementation.

Returns:

Wöhler curve parameters k_1, ND, SD, TN, TS, and failure_probability for 50 % failure probability.

Return type:

pandas.Series

bayesian_information_criterion()[source]#

Return the Bayesian information criterion of the last analysis.

Returns:

Bayesian information criterion value. Lower values indicate a better fit for the same likelihood formulation.

Return type:

float

Raises:

ValueError – Raised when analyze() has not been called yet.

Notes

The BIC is not suitable for comparing results from different likelihood formulations because the underlying model definition changes.

pearl_chain_estimator()[source]#

Return the pearl chain probability estimator of the last analysis.

Returns:

Probability fit created during the pearl chain scatter estimate.

Return type:

PearlChainProbability

use_all_fractures()[source]#

Select all fractures for the finite-life likelihood.

Returns:

The same analyzer configured to use every fracture test.

Return type:

Elementary

use_custom_likelihood_estimation(likelihood_class)[source]#

Select a custom likelihood calculation class.

Parameters:

likelihood_class (type) – Class implementing the likelihood interface of AbstractLikelihood.

Returns:

The same analyzer configured with likelihood_class.

Return type:

Elementary

use_highest_mixed_level()[source]#

Select pure finite levels and the highest mixed load level.

This default formulation uses fractures from pure fracture levels and from the highest mixed load level for the finite-life likelihood.

Returns:

The same analyzer configured with the default likelihood.

Return type:

Elementary

use_old_likelihood_estimation()[source]#

Select the likelihood formulation used up to pyLife 2.1.x.

The legacy formulation uses all fractures for the finite-life likelihood and only the infinite zone for the endurance-limit likelihood.

Returns:

The same analyzer configured with the legacy likelihood.

Return type:

Elementary

use_only_pure_fracture_levels()[source]#

Select only pure fracture levels for the finite-life likelihood.

Returns:

The same analyzer configured to ignore mixed levels in the finite-life likelihood.

Return type:

Elementary