The fkm_nonlinear.parameter_calculations module#

Derive FKM nonlinear assessment parameters from user inputs.

This module implements the material-group dependent formulas used by the FKM nonlinear guideline for cyclic material data, material and component Wöhler curves, roughness factors, nonlocal support factors, and statistical failure-probability factors. The functions take a pandas.Series of assessment parameters, add derived keys to a copy, and return that copy for use by pylife.strength.fkm_nonlinear.assessment_nonlinear_standard.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_component_woehler_parameters_P_RAJ(assessment_parameters_)[source]#

Calculate component Wöhler parameters for the P_RAJ path.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing gamma_M_RAJ, support factor n_P, roughness factor K_RP, material start point P_RAJ_Z_WS, and material fatigue limit P_RAJ_D_WS.

Returns:

Copy of assessment_parameters_ with component shift factor f_RAJ, component start point P_RAJ_Z, initial fatigue limit P_RAJ_D_0, and component fatigue limit P_RAJ_D added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Sections 2.8.6 and 2.9.6, equations (2.8-22) to (2.8-25) and (2.9-24) to (2.9-27). n_P and K_RP enter squared for P_RAJ because this damage parameter is energy based.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_component_woehler_parameters_P_RAM(assessment_parameters_)[source]#

Calculate component Wöhler parameters for the P_RAM path.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing gamma_M_RAM, support factor n_P, roughness factor K_RP, material knee P_RAM_Z_WS, and material fatigue limit P_RAM_D_WS.

Returns:

Copy of assessment_parameters_ with component shift factor f_RAM, component knee P_RAM_Z, and component fatigue limit P_RAM_D added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Section 2.5.6, equations (2.5-24) and (2.5-25), and the fatigue-limit ordinate used by equation (2.6-88). f_RAM maps the material Wöhler curve to the assessed component.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_cyclic_assessment_parameters(assessment_parameters_)[source]#

Calculate cyclic Ramberg-Osgood material parameters.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing MatGroupFKM and ultimate tensile strength R_m in MPa.

Returns:

Copy of assessment_parameters_ with Young’s modulus E in MPa, cyclic hardening exponent n_prime, and cyclic hardening coefficient K_prime in MPa added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear guideline Section 2.5.3, in particular equation (2.5-13). E and n_prime are taken from the material group table, while K_prime is estimated from R_m.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_failure_probability_factor_P_RAJ(assessment_parameters_)[source]#

Calculate the material safety factor for P_RAJ.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing failure probability P_A or an already computed reliability index beta. P_A = 0.5 disables the safety-factor shift and yields gamma_M_RAJ = 1.

Returns:

Copy of assessment_parameters_ with reliability index beta when needed and material safety factor gamma_M_RAJ added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Section 2.8.6.3, equation (2.8-38). The guideline clips gamma_M_RAJ to at least 1.2 except for the explicit P_A = 0.5 no-statistics case used for experiment-like assessments.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_failure_probability_factor_P_RAM(assessment_parameters_)[source]#

Calculate the material safety factor for P_RAM.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing failure probability P_A or an already computed reliability index beta. P_A = 0.5 disables the safety-factor shift and yields gamma_M_RAM = 1.

Returns:

Copy of assessment_parameters_ with reliability index beta when needed and material safety factor gamma_M_RAM added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Section 2.5.6.3, equation (2.5-38). The guideline clips gamma_M_RAM to at least 1.1 except for the explicit P_A = 0.5 no-statistics case used for experiment-like assessments.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_material_woehler_parameters_P_RAJ(assessment_parameters_)[source]#

Calculate material Wöhler parameters for the P_RAJ path.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing MatGroupFKM, ultimate tensile strength R_m in MPa, and failure probability P_A as a dimensionless probability.

Returns:

Copy of assessment_parameters_ with P_RAJ_Z_WS at N = 1 cycle, fatigue limit P_RAJ_D_WS, and material curve slope d_RAJ added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear guideline Sections 2.8.5 and 2.9.4, equations (2.8-20), (2.8-21), and (2.9-12). The implementation uses the corrected P_RAJ,D,WS relation where the printed equation (2.9-13) is ambiguous.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_material_woehler_parameters_P_RAM(assessment_parameters_)[source]#

Calculate material Wöhler parameters for the P_RAM path.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing MatGroupFKM, ultimate tensile strength R_m in MPa, and failure probability P_A as a dimensionless probability.

Returns:

Copy of assessment_parameters_ with P_RAM_Z_WS at N = 1e3 cycles, fatigue limit P_RAM_D_WS, first slope d_1, and second slope d_2 of the material damage Wöhler curve added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear guideline Section 2.5.5, equations (2.5-22) and (2.5-23). For P_A values other than 0.5 the curve is shifted by the material-group dependent 2.5 % factor from the guideline table.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_nonlocal_parameters(assessment_parameters_)[source]#

Calculate nonlocal notch support factors.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing MatGroupFKM, reference highly stressed surface A_ref in mm², component highly stressed surface A_sigma in mm², relative stress gradient G in 1/mm, and ultimate tensile strength R_m in MPa.

Returns:

Copy of assessment_parameters_ with statistical support factor n_st, unclipped fracture-mechanical support factor n_bm_, clipped fracture-mechanical support factor n_bm, and total support factor n_P added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Section 2.5.6.1, equations (2.5-27) to (2.5-32). The same factors are used by the P_RAM and P_RAJ assessment paths; for P_RAJ the corresponding formulas are stated in Section 2.8.6.1.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_roughness_component_woehler_parameters_P_RAJ(assessment_parameters_, include_n_P)[source]#

Calculate roughness-adjusted component parameters for P_RAJ.

Parameters:
  • assessment_parameters (pandas.Series) – Assessment parameters containing gamma_M_RAJ, P_RAJ_Z_WS, P_RAJ_D_WS_rau, P_RAJ_Z_1e3, and optionally nonlocal support factor n_P.

  • include_n_P (bool) – Whether to include n_P in the component curve shift. Set to True for the surface point with notch support and False when the roughness extension shall omit that support factor.

Returns:

Copy of assessment_parameters_ with P_RAJ_Z, shifted P_RAJ_Z_1e3, initial fatigue limit P_RAJ_D_0, and component fatigue limit P_RAJ_D added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Sections 2.8.6 and 2.9.6 together with the roughness and surface-layer extension. n_P enters squared for P_RAJ because this damage parameter is energy based.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_roughness_component_woehler_parameters_P_RAM(assessment_parameters_, include_n_P)[source]#

Calculate roughness-adjusted component parameters for P_RAM.

Parameters:
  • assessment_parameters (pandas.Series) – Assessment parameters containing gamma_M_RAM, P_RAM_Z_WS, P_RAM_D_WS_rau, and optionally nonlocal support factor n_P.

  • include_n_P (bool) – Whether to include n_P in the component curve shift. Set to True for the surface point with notch support and False when the roughness extension shall omit that support factor.

Returns:

Copy of assessment_parameters_ with component curve knee P_RAM_Z and component fatigue limit P_RAM_D added.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Section 2.5.6 together with the roughness and surface-layer extension. The material curve ordinates are divided by the material safety factor gamma_M_RAM and optionally multiplied by n_P.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_roughness_material_woehler_parameters_P_RAJ(assessment_parameters_)[source]#

Calculate roughness-adjusted material parameters for P_RAJ.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing P_RAJ_Z_WS, P_RAJ_D_WS, material slope d_RAJ, and roughness factor K_RP.

Returns:

Copy of assessment_parameters_ with P_RAJ_Z_1e3, roughness-adjusted fatigue limit P_RAJ_D_WS_rau, adjusted slope d_RAJ_2_rau, and the check value d_RAJ_2_rau_alternative added.

Return type:

pandas.Series

Notes

Implements the roughness and surface-layer extension to FKM nonlinear Sections 2.8.6 and 2.9.6. The P_RAJ roughness correction acts with K_RP ** 2 because P_RAJ is an energy-like damage parameter.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_roughness_material_woehler_parameters_P_RAM(assessment_parameters_)[source]#

Calculate roughness-adjusted material parameters for P_RAM.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing P_RAM_Z_WS, P_RAM_D_WS, material slope d_2, and roughness factor K_RP.

Returns:

Copy of assessment_parameters_ with roughness-adjusted fatigue limit P_RAM_D_WS_rau, adjusted second slope d2_RAM_rau, and the check value d2_RAM_rau_alternative added.

Return type:

pandas.Series

Notes

Implements the roughness and surface-layer extension to FKM nonlinear Section 2.5.6. The fatigue-limit ordinate is multiplied by K_RP and the second finite-life slope is recomputed so that the original transition cycle number remains unchanged.

pylife.strength.fkm_nonlinear.parameter_calculations.calculate_roughness_parameter(assessment_parameters_)[source]#

Calculate the roughness factor K_RP.

Parameters:

assessment_parameters (pandas.Series) – Assessment parameters containing MatGroupFKM and ultimate tensile strength R_m in MPa. If K_RP is absent, roughness R_z in µm is also required.

Returns:

Copy of assessment_parameters_ with roughness factor K_RP added, or the unchanged copy when K_RP was already supplied.

Return type:

pandas.Series

Notes

Implements FKM nonlinear Section 2.5.6.2, equation (2.5-37). For the P_RAJ path the corresponding formulas are stated in Section 2.8.6.2. A roughness of R_z <= 1 µm gives K_RP = 1.

pylife.strength.fkm_nonlinear.parameter_calculations.compute_beta(P_A)[source]#

Calculate the reliability index beta from a failure probability.

Parameters:

P_A (float) – Failure probability for the assessment as a dimensionless probability.

Returns:

Reliability index beta corresponding to P_A for a standard normal distribution.

Return type:

float

Raises:

RuntimeError – Raised if the numerical root search does not converge.

Notes

The FKM nonlinear guideline uses beta in the material safety factor but does not provide this conversion formula. This helper solves Phi(-beta) = P_A for the standard normal distribution.

Examples

>>> from pylife.strength.fkm_nonlinear.parameter_calculations import compute_beta
>>> round(float(abs(compute_beta(0.5))), 6)
0.0