The woehler_fkm_nonlinear module#

Provide FKM nonlinear damage-parameter Wöhler curve accessors.

class pylife.strength.woehler_fkm_nonlinear.WoehlerCurvePRAJ(pandas_obj)[source]#

Represent the FKM nonlinear Wöhler curve for P_RAJ.

This accessor is available as .woehler_P_RAJ on pandas.Series and pandas.DataFrame objects. It evaluates the component Wöhler curve used for crack-mechanics damage parameters calculated by pylife.strength.damage_parameter.P_RAJ.

Signal contract:

  • P_RAJ_Z: Damage-parameter value at N = 1 cycle, in MPa.

  • P_RAJ_D_0: Initial endurance-limit damage-parameter value, in MPa.

  • d_RAJ: Finite-life slope, dimensionless and negative.

Parameters:

pandas_obj (pandas.Series or pandas.DataFrame) – Wöhler curve parameters for one assessment point or vectorized parameters for several assessment points.

See also

pylife.strength.damage_parameter.P_RAJ

Calculate P_RAJ collectives.

WoehlerCurvePRAM

Evaluate the FKM nonlinear Wöhler curve for P_RAM.

Notes

The curve has one finite-life branch with slope \(d_{RAJ}\) and a horizontal endurance-limit branch. During the FKM nonlinear algorithm the active fatigue strength may be lowered from P_RAJ_D_0 to fatigue_strength_limit_final.

property P_RAJ_D#

Return the active P_RAJ fatigue strength limit.

property P_RAJ_Z#

Return the P_RAJ value at N = 1 cycle.

calc_N(P_RAJ, P_RAJ_D=None)[source]#

Evaluate the Wöhler curve at a P_RAJ value.

Parameters:
  • P_RAJ (float) – Damage-parameter value in MPa.

  • P_RAJ_D (float, optional) – Alternative fatigue strength limit in MPa. If omitted, use the active limit stored in the Wöhler curve. Default is None.

Returns:

Number of cycles to failure. The result is numpy.inf when P_RAJ is at or below the active fatigue strength limit.

Return type:

float

calc_P_RAJ(N)[source]#

Evaluate the Wöhler curve at a number of cycles.

Parameters:

N (array_like) – Number of cycles where to evaluate the Wöhler curve.

Returns:

P_RAJ values in MPa that correspond to the given cycle counts.

Return type:

numpy.ndarray

property d#

Return the finite-life Wöhler curve slope.

property fatigue_life_limit#

Return the cycle count at the initial P_RAJ fatigue limit.

property fatigue_life_limit_final#

Return the cycle count at the final P_RAJ fatigue limit.

property fatigue_strength_limit#

Return the initial P_RAJ fatigue strength limit.

property fatigue_strength_limit_final#

Return the P_RAJ fatigue strength limit after the FKM algorithm.

get_woehler_curve_minimum_lifetime()[source]#

Get the scalar curve for the assessment point with minimum lifetime.

Use this method after a vectorized FKM nonlinear assessment, for example on a mesh, when the resulting Wöhler curve should be plotted for the most critical assessment point. If the curve already contains scalar values, the copied curve is unchanged.

Returns:

Deep copy of the current Wöhler curve with scalar P_RAJ_Z and P_RAJ_D_0 values equal to the minima of the vectorized values.

Return type:

WoehlerCurvePRAJ

update_P_RAJ_D(P_RAJ_D)[source]#

Update the active P_RAJ fatigue strength limit.

Parameters:

P_RAJ_D (pandas.Series) – New fatigue strength limit values in MPa for one or more assessment points.

class pylife.strength.woehler_fkm_nonlinear.WoehlerCurvePRAM(pandas_obj)[source]#

Represent the FKM nonlinear Wöhler curve for P_RAM.

This accessor is available as .woehler_P_RAM on pandas.Series and pandas.DataFrame objects. It evaluates the component Wöhler curve used for damage parameters calculated by pylife.strength.damage_parameter.P_RAM.

Signal contract:

  • P_RAM_Z: Damage-parameter value at N = 1e3 cycles, in MPa.

  • P_RAM_D: Endurance-limit damage-parameter value, in MPa. It equals P_RAM_D_WS / f_RAM in FKM nonlinear equation 2.6-89.

  • d_1: First finite-life slope for N < 1e3, dimensionless and negative.

  • d_2: Second finite-life slope for N >= 1e3, dimensionless and negative.

Parameters:

pandas_obj (pandas.Series or pandas.DataFrame) – Wöhler curve parameters for one assessment point or vectorized parameters for several assessment points.

See also

pylife.strength.damage_parameter.P_RAM

Calculate P_RAM collectives.

WoehlerCurvePRAJ

Evaluate the FKM nonlinear Wöhler curve for P_RAJ.

Notes

The curve has two finite-life branches with slopes \(d_1\) and \(d_2\), followed by a horizontal endurance-limit branch at P_RAM_D. This follows FKM nonlinear guideline section 2.5.6.

property P_RAM_D#

Return the P_RAM endurance-limit value.

property P_RAM_Z#

Return the P_RAM transition value at N = 1e3 cycles.

calc_N(P_RAM)[source]#

Evaluate the Wöhler curve at a P_RAM value.

Parameters:

P_RAM (float) – Damage-parameter value in MPa.

Returns:

Number of cycles to failure. The result is numpy.inf when P_RAM is at or below the fatigue strength limit.

Return type:

float

calc_P_RAM(N)[source]#

Evaluate the Wöhler curve at a number of cycles.

Parameters:

N (array_like) – Number of cycles where to evaluate the Wöhler curve.

Returns:

P_RAM values in MPa that correspond to the given cycle counts.

Return type:

numpy.ndarray

property d_1#

Return the first Wöhler curve slope for N < 1e3.

property d_2#

Return the second Wöhler curve slope for N >= 1e3.

property fatigue_life_limit#

Return the cycle count at the P_RAM fatigue strength limit.

property fatigue_strength_limit#

Return the P_RAM value below which lifetime is infinite.

get_woehler_curve_minimum_lifetime()[source]#

Get the scalar curve for the assessment point with minimum lifetime.

Use this method after a vectorized FKM nonlinear assessment, for example on a mesh, when the resulting Wöhler curve should be plotted for the most critical assessment point. If the curve already contains scalar values, the copied curve is unchanged.

Returns:

Deep copy of the current Wöhler curve with scalar P_RAM_Z and P_RAM_D values equal to the minima of the vectorized values.

Return type:

WoehlerCurvePRAM