The miner module

Implementation of the miner rule for fatigue analysis

Currently, the following implementations are part of this module:

  • Miner Elementary

  • Miner Haibach

References

class pylife.strength.miner.MinerBase(pandas_obj)[source]

Basic functions related to miner-rule (original).

Uses the constructor of WoehlerCurve.

effective_damage_sum(collective)[source]

Compute effective damage sum D_m.

Refers to the formula given in Waechter2017, p. 99

Parameters:

collective (a load collective) – the multiple of the lifetime

Returns:

effective_damage_sum – The effective damage sums for the collective

Return type:

float or pandas.Series

finite_life_factor(N)[source]

Calculate finite life factor according to Waechter2017 (p. 96).

Parameters:

N (float) – Collective range (sum of cycle numbers) of load collective

gassner_cycles(collective)[source]

Compute the cycles of the Gassner line for a certain load collective.

Parameters:

collective (LoadCollective or similar) – The load collective

Returns:

The cycles for the collective

Return type:

cycles

Note

The absolute load levels of the collective are important.

abstract lifetime_multiple(collective)[source]

Compute the lifetime multiple according to the corresponding Miner rule.

Needs to be implemented in the class implementing the Miner rule.

Parameters:

collective (LoadCollective or similar) – The load collective

Returns:

lifetime_multiple – lifetime multiple

Return type:

float > 0

class pylife.strength.miner.MinerElementary(pandas_obj)[source]

Implementation of Miner Elementary according to Waechter2017.

gassner(collective)[source]

Calculate the Gaßner shift according to Miner Elementary.

Parameters:

collective (LoadCollective or similar) – The load collective

Returns:

gassner – The Gaßner shifted fatigue strength object.

Return type:

Fatigue

lifetime_multiple(collective)[source]

Compute the lifetime multiple according to Miner Elementary.

Described in Waechter2017 as “Lebensdauervielfaches, A_ele”.

Parameters:

collective (LoadCollective or similar) – The load collective

Returns:

lifetime_multiple – lifetime multiple

Return type:

float > 0

class pylife.strength.miner.MinerHaibach(pandas_obj)[source]

Miner-modified according to Haibach (2006).

Warning

Contrary to Miner Elementary, the lifetime multiple is not constant but dependent on the evaluated load level! That is why there is no method for the Gaßner shift.

lifetime_multiple(collective)[source]

Compute the lifetime multiple for Miner-modified according to Haibach.

Refer to Haibach (2006), p. 291 (3.21-61). The lifetime multiple can be expressed in respect to the maximum amplitude so that N_lifetime = N_Smax * A

Parameters:

collective (LoadCollective or similar) – The load collective

Returns:

lifetime_multiple – lifetime multiple return value is ‘inf’ if maximum collective amplitude < SD

Return type:

float > 0

pylife.strength.miner.effective_damage_sum(lifetime_multiple)[source]

Compute effective damage sum.

Refers to the formula given in Waechter2017, p. 99

Parameters:
  • A (float or np.ndarray (with 1 element)) – the multiple of the lifetime

  • Returns

  • d_m (float) – the effective damage sum