The classes for damage calculation

The following classes perform lifetime assessment according to the guideline FKM nonlinear. The objects are given a load collective and a damage parameter woehler curve. They calculate the damage parameters values for the collective and use the woehler curve to calculate a lifetime or infinite strength.

  • DamageCalculatorPRAM: uses the P_RAM damage parameter

  • DamageCalculatorPRAJ: uses the P_RAJ damage parameter

  • DamageCalculatorPRAJMinerElementary uses the P_RAJ damage parameter but omits the horizontal finite strength line in the Woehler curve, corresponding to the Miner Elementary method.

class pylife.strength.fkm_nonlinear.damage_calculator.DamageCalculatorPRAM(collective, component_woehler_curve_P_RAM)[source]

This class performs the lifetime assessment according to the FKM nonlinear assessment. It holds damage values from two previous runs of the HCM algorithm and a component woehler curve of type WoehlerCurvePRAM. The outputs are lifetime numbers and detection of infinite life.

This class implements the assessment procedure using the damage parameter P_RAM.

property P_RAM_max

The maximum P_RAM damage parameter value of the second run of the HCM algorithm. If this value is lower than the fatigue strength limit, the component has infinite life. The method compute_damage needs to be called beforehand.

property collective
get_lifetime_functions(assessment_parameters)[source]

Return two python functions that can be used for detailed probabilistic assessment.

The first function, N_max_bearable(P_A, clip_gamma=False), calculates the maximum number of cycles that the component can withstand with the given failure probability. The parameter clip_gamma specifies whether the scaling factor gamma_M will be at least 1.1 (P_RAM) or 1.2 (P_RAJ), as defined in eq. (2.5-38) (PRAM) / eq. (2.8-38) (PRAJ)

The second function, failure_probability(N), calculates the failure probability for a given number of cycles.

Parameters:

assessment_parameters (pd.Series) – The assessment parameters, only the material group is required to determine the respective f_2,5% constant.

Returns:

  • N_max_bearable – python function, N_max_bearable(P_A)

  • failure_probability – python function, failure_probability(N)

property is_life_infinite

Whether the component has infinite life. The method compute_damage needs to be called beforehand.

property lifetime_n_cycles

The number of load cycles (as defined in the load collective) until failure. The method compute_damage needs to be called beforehand.

property lifetime_n_times_load_sequence

The number of times the whole load sequence can be traversed until failure. The method compute_damage needs to be called beforehand.

class pylife.strength.fkm_nonlinear.damage_calculator.DamageCalculatorPRAJ(collective, assessment_parameters, component_woehler_curve_P_RAJ)[source]

This class performs the lifetime assessment according to the FKM nonlinear assessment. It holds damage values from two previous runs of the HCM algorithm and a component woehler curve of type WoehlerCurvePRAJ. The outputs are lifetime numbers and detection of infinite life.

This class implements the assessment procedure using the damage parameter P_RAJ.

property P_RAJ_max

The maximum P_RAJ damage parameter value of the second run of the HCM algorithm. If this value is lower than the fatigue strength limit, the component has infinite life. The method compute_damage needs to be called beforehand.

property collective
get_lifetime_functions()[source]

Return two python functions that can be used for detailed probabilistic assessment.

The first function, N_max_bearable(P_A, clip_gamma=False), calculates the maximum number of cycles that the component can withstand with the given failure probability. The parameter clip_gamma specifies whether the scaling factor gamma_M will be at least 1.1 (P_RAM) or 1.2 (P_RAJ), as defined in eq. (2.5-38) (PRAM) / eq. (2.8-38) (PRAJ) The second function, failure_probability(N), calculates the failure probability for a given number of cycles.

Parameters:

assessment_parameters (pd.Series) – The assessment parameters, only the material group is required to determine the respective f_2,5% constant.

Returns:

  • N_max_bearable – python function, N_max_bearable(P_A)

  • failure_probability – python function, failure_probability(N)

property is_life_infinite

Whether the component has infinite life. The method compute_damage needs to be called beforehand.

property lifetime_n_cycles

The number of load cycles (as defined in the load collective) until failure. The method compute_damage needs to be called beforehand.

property lifetime_n_times_load_sequence

The number of times the whole load sequence can be traversed until failure. The method compute_damage needs to be called beforehand.

class pylife.strength.fkm_nonlinear.damage_calculator_praj_miner.DamageCalculatorPRAJMinerElementary(collective, component_woehler_curve_P_RAJ)[source]

This class performs the lifetime assessment as a modification to the FKM nonlinear guideline. For the P_RAJ damage parameter, the lifetime is computed directly using the woehler curve, analogous to the procedure with P_RAM. The whole approach with binning and infinite strength decrease is omitted.

The class reuses the DamageCalculatorPRAM class.

class ComponentWoehlerCurvePRAMStub(component_woehler_curve_P_RAJ)[source]
property P_RAM_D

The damage parameter value of the endurance limit

property P_RAM_Z

The damage parameter value that separates the first and second section, corresponding to N = 1e3

calc_N(P_RAM)[source]

Evaluate the woehler curve at the given damage paramater value, P_RAM.

Parameters:

P_RAM (float) – The damage parameter value where to evaluate the woehler curve.

Returns:

N – The number of cycles for the given P_RAM value.

Return type:

float

calc_P_RAM(N)[source]

Evaluate the woehler curve at the specified number of cycles.

Parameters:

N (array-like) – Number of cycles where to evaluate the woehler curve.

Returns:

The P_RAM values that correspond to the given N values.

Return type:

array-like

property d_1

The slope of the Wöhler Curve in the first section, for N < 1e3

property d_2

The slope of the Wöhler Curve in the second section, for N >= 1e3

property fatigue_life_limit

The fatigue life limit N_D of the component, i.e., the number of cycles at the fatigue strength limit P_RAM_D.

property fatigue_strength_limit

The fatigue strength limit of the component, i.e., the P_RAM value below which we have infinite life.

property P_RAJ_max

The maximum P_RAM damage parameter value of the second run of the HCM algorithm. If this value is lower than the fatigue strength limit, the component has infinite life.

property collective
property is_life_infinite

Whether the component has infinite life.

property lifetime_n_cycles

The number of load cycles (as defined in the load collective) until failure.

property lifetime_n_times_load_sequence

The number of times the whole load sequence can be traversed until failure.