diff --git a/src/fatpy/core/damage_cumulation/__init__.py b/src/fatpy/core/damage_cumulation/__init__.py index a0fb889..e439b5a 100644 --- a/src/fatpy/core/damage_cumulation/__init__.py +++ b/src/fatpy/core/damage_cumulation/__init__.py @@ -1,4 +1,8 @@ """Damage cumulation module. -This module contains the classes and functions for damage cumulation methods. +The module implements various fatigue damage accumulation rules used to estimate the +total damage under variable amplitude loading. They include both classical linear +models, such as Palmgren–Miner’s rule, and more advanced non-linear approaches that +account for load sequence effects, mean stress influence, and material-specific +behavior for improved fatigue life prediction. """ diff --git a/src/fatpy/core/decompositions/__init__.py b/src/fatpy/core/decompositions/__init__.py index ccb739d..fcf2722 100644 --- a/src/fatpy/core/decompositions/__init__.py +++ b/src/fatpy/core/decompositions/__init__.py @@ -1,4 +1,5 @@ """Decompositions module. -This module contains the classes and functions for decomposition methods. +Methods for breaking down complex load signals to cycles. +Contains both the uniaxial and the multiaxial procedures. """ diff --git a/src/fatpy/core/decompositions/multiaxial/__init__.py b/src/fatpy/core/decompositions/multiaxial/__init__.py new file mode 100644 index 0000000..bc6e9cc --- /dev/null +++ b/src/fatpy/core/decompositions/multiaxial/__init__.py @@ -0,0 +1,7 @@ +"""Multiaxial decompositions methods. + +These routines provide tools for decomposing multiaxial stress and strain states into +their individual components, such as normal and shear parts, principal values, and +others. They are essential for analyzing complex loading conditions, enabling accurate +evaluation of material behavior under multiaxial fatigue. +""" diff --git a/src/fatpy/core/decompositions/multiaxial/load_path_analysis_5d.py b/src/fatpy/core/decompositions/multiaxial/load_path_analysis_5d.py new file mode 100644 index 0000000..e9722aa --- /dev/null +++ b/src/fatpy/core/decompositions/multiaxial/load_path_analysis_5d.py @@ -0,0 +1,8 @@ +"""Load Path Analysis 5D methods of multiaxial decompositions. + +These methods compute the amplitude (J_2,a) and mean (J_2,m) values of the second +invariant of the deviatoric stress tensor in five-dimensional deviatoric space. This +evaluation is particularly useful in advanced multiaxial fatigue models, where accurate +representation of cyclic loading paths and stress states in the deviatoric space is +critical for predicting material response. +""" diff --git a/src/fatpy/core/decompositions/multiaxial/shear_path_analysis_2d.py b/src/fatpy/core/decompositions/multiaxial/shear_path_analysis_2d.py new file mode 100644 index 0000000..5a9317c --- /dev/null +++ b/src/fatpy/core/decompositions/multiaxial/shear_path_analysis_2d.py @@ -0,0 +1,7 @@ +"""Shear Path Analysis 2D methods of multiaxial decompositions. + +These methods are designed to evaluate the mean shear stress and shear stress amplitude +acting on a specified material plane, typically used in multiaxial fatigue analysis. By +projecting the stress tensor onto the plane of interest, they provide key parameters +for assessing crack initiation risks and fatigue life under complex loading paths. +""" diff --git a/src/fatpy/core/decompositions/uniaxial.py b/src/fatpy/core/decompositions/uniaxial.py new file mode 100644 index 0000000..9841efc --- /dev/null +++ b/src/fatpy/core/decompositions/uniaxial.py @@ -0,0 +1,8 @@ +"""Uniaxial decompositions methods. + +Implements algorithms designed to decompose one-dimensional signals into individual load +cycles, enabling detailed analysis of variable amplitude loading. By identifying turning +points and extracting cycles based on established criteria (e.g., rainflow counting), +they facilitate fatigue analysis, damage assessment, and other time-domain signal +evaluations. +""" diff --git a/src/fatpy/core/energy_life/__init__.py b/src/fatpy/core/energy_life/__init__.py index 848d8dd..9b2c603 100644 --- a/src/fatpy/core/energy_life/__init__.py +++ b/src/fatpy/core/energy_life/__init__.py @@ -1,5 +1,5 @@ """Energy-based fatigue life analysis methods. -This package provides implementations of energy-based approaches for -fatigue life prediction and analysis. +Fatigue analysis methods based on the relationship between the strain energy +(usually strain energy density) and number of cycles to failure. """ diff --git a/src/fatpy/core/energy_life/correction_methods.py b/src/fatpy/core/energy_life/correction_methods.py index e599f14..bb98f1e 100644 --- a/src/fatpy/core/energy_life/correction_methods.py +++ b/src/fatpy/core/energy_life/correction_methods.py @@ -1 +1 @@ -"""Correction methods for the energy-life.""" +"""Correction methods for the energy-life approach.""" diff --git a/src/fatpy/core/plane_based_methods/__init__.py b/src/fatpy/core/plane_based_methods/__init__.py index 8c9cb56..2bcacce 100644 --- a/src/fatpy/core/plane_based_methods/__init__.py +++ b/src/fatpy/core/plane_based_methods/__init__.py @@ -1,4 +1,5 @@ """Plane-based methods module. -This module contains the classes and functions for plane-based methods. +Methods for processing stress tensor path on a material plane. Provides basic +infrastructure for prediction methods based on critical-plane and integral approaches. """ diff --git a/src/fatpy/core/plane_based_methods/plane_search.py b/src/fatpy/core/plane_based_methods/plane_search.py new file mode 100644 index 0000000..76914dc --- /dev/null +++ b/src/fatpy/core/plane_based_methods/plane_search.py @@ -0,0 +1,5 @@ +"""Plane Search methods. + +Algorithms to identify a subset of potentially critical planes for further detailed +analysis and processing by critical-plane and integral methods. +""" diff --git a/src/fatpy/core/strain_life/__init__.py b/src/fatpy/core/strain_life/__init__.py index 71fa492..bc699d8 100644 --- a/src/fatpy/core/strain_life/__init__.py +++ b/src/fatpy/core/strain_life/__init__.py @@ -1,5 +1,9 @@ """Strain-based fatigue life analysis methods. -This package provides implementations of strain-based approaches for -fatigue life prediction and analysis. +These methods perform fatigue analysis using the relationship between strain amplitude +and the number of cycles to failure, as expressed by strain-life (ε-N) approaches such +as the Coffin-Manson and Basquin laws. They are particularly suited for low-cycle and +transitional fatigue regimes, where plastic strain plays a significant role, enabling +life prediction under variable amplitude or multiaxial loading when combined with +appropriate mean stress corrections and cycle counting techniques. """ diff --git a/src/fatpy/core/strain_life/correction_methods.py b/src/fatpy/core/strain_life/correction_methods.py deleted file mode 100644 index 3a485d0..0000000 --- a/src/fatpy/core/strain_life/correction_methods.py +++ /dev/null @@ -1 +0,0 @@ -"""Correction methods for the strain-life.""" diff --git a/src/fatpy/core/strain_life/correction_methods/__init__.py b/src/fatpy/core/strain_life/correction_methods/__init__.py new file mode 100644 index 0000000..e2fb8b5 --- /dev/null +++ b/src/fatpy/core/strain_life/correction_methods/__init__.py @@ -0,0 +1,5 @@ +"""Correction methods for the strain-life approach. + +Methods to estimate notch stress/strain with local yielding and apply mean stress +correction. +""" diff --git a/src/fatpy/core/strain_life/correction_methods/elastic_plastic_conversion.py b/src/fatpy/core/strain_life/correction_methods/elastic_plastic_conversion.py new file mode 100644 index 0000000..e3412bc --- /dev/null +++ b/src/fatpy/core/strain_life/correction_methods/elastic_plastic_conversion.py @@ -0,0 +1,8 @@ +"""Elastic-Plastic Conversion methods for Strain-Life analysis. + +These methods convert purely elastic stress or strain states into their elastic-plastic +equivalents to account for local yielding effects in fatigue or fracture assessments. +Using approaches such as Neuber's rule or Glinka's strain energy density method, +they provide corrected stress-strain values that better represent actual material +behavior under high local stresses, especially at notches or other stress concentrators. +""" diff --git a/src/fatpy/core/strain_life/correction_methods/mean_stress_effect.py b/src/fatpy/core/strain_life/correction_methods/mean_stress_effect.py new file mode 100644 index 0000000..52038ce --- /dev/null +++ b/src/fatpy/core/strain_life/correction_methods/mean_stress_effect.py @@ -0,0 +1,4 @@ +"""Mean Stress Effect correction methods for Strain-Life Analysis. + +The methods for incorporating the effect of mean stress in strain-life (ε-N) analysis. +""" diff --git a/src/fatpy/core/strain_life/damage_params/__init__.py b/src/fatpy/core/strain_life/damage_params/__init__.py new file mode 100644 index 0000000..c1c901a --- /dev/null +++ b/src/fatpy/core/strain_life/damage_params/__init__.py @@ -0,0 +1,7 @@ +"""Damage parameters calculation methods for the strain-life approach. + +This module includes both uniaxial and multiaxial parameters for low-cycle fatigue +assessment, covering a range of strain-life-based damage models suitable for high +plastic strain regimes. It also incorporates methods based on the FKM Guideline, +enabling standardized evaluation of fatigue strength under complex loading conditions. +""" diff --git a/src/fatpy/core/strain_life/damage_params/fkm_nonlin.py b/src/fatpy/core/strain_life/damage_params/fkm_nonlin.py new file mode 100644 index 0000000..cd4c4e9 --- /dev/null +++ b/src/fatpy/core/strain_life/damage_params/fkm_nonlin.py @@ -0,0 +1,4 @@ +"""fkm non-linear damage parameter calculations for strain-life analysis. + +The module contains damage parameters based on FKM-Guideline Non-Linear. +""" diff --git a/src/fatpy/core/strain_life/damage_params/multiaxial.py b/src/fatpy/core/strain_life/damage_params/multiaxial.py new file mode 100644 index 0000000..e96c71b --- /dev/null +++ b/src/fatpy/core/strain_life/damage_params/multiaxial.py @@ -0,0 +1,8 @@ +"""Multiaxial fatigue criteria methods for the strain-life approach. + +These methods perform low-cycle fatigue assessment using multiaxial damage parameters +that combine stress, strain, and mean stress effects into a single fatigue-relevant +quantity. By incorporating critical plane, invariant-based, and energy-based criteria, +they enable life prediction for components subjected to complex non-proportional +loading paths where significant plastic deformation occurs. +""" diff --git a/src/fatpy/core/strain_life/damage_params/uniaxial.py b/src/fatpy/core/strain_life/damage_params/uniaxial.py new file mode 100644 index 0000000..96a9bb5 --- /dev/null +++ b/src/fatpy/core/strain_life/damage_params/uniaxial.py @@ -0,0 +1,8 @@ +"""Uniaxial fatigue criteria methods for the strain-life approach. + +These methods compute uniaxial damage parameters used in strain-life (ε-N) analysis to +correlate cyclic strain amplitudes with fatigue life. They include parameters such as +Coffin-Manson, Morrow, and Smith-Watson-Topper (SWT), which combine elastic and plastic +strain components—and, when applicable, mean stress effects—into a single scalar value +for life prediction under uniaxial loading conditions. +""" diff --git a/src/fatpy/core/strain_life/demage_parameters.py b/src/fatpy/core/strain_life/demage_parameters.py deleted file mode 100644 index 045bfb2..0000000 --- a/src/fatpy/core/strain_life/demage_parameters.py +++ /dev/null @@ -1 +0,0 @@ -"""Damage parameters calculation methods for the strain-life.""" diff --git a/src/fatpy/core/stress_life/__init__.py b/src/fatpy/core/stress_life/__init__.py index 321e91d..9286061 100644 --- a/src/fatpy/core/stress_life/__init__.py +++ b/src/fatpy/core/stress_life/__init__.py @@ -1,5 +1,6 @@ """Stress-based fatigue life analysis methods. -This package provides implementations of stress-based approaches for -fatigue life prediction and analysis. +Stress-based fatigue assessment methods. Contains approach to estimate fatigue damage +and their correction on various fatigue effects (stress concentration, size, +surface quality, etc.) """ diff --git a/src/fatpy/core/stress_life/correction_methods.py b/src/fatpy/core/stress_life/correction_methods.py deleted file mode 100644 index ff8d218..0000000 --- a/src/fatpy/core/stress_life/correction_methods.py +++ /dev/null @@ -1 +0,0 @@ -"""Correction methods for the stress-life.""" diff --git a/src/fatpy/core/stress_life/correction_methods/__init__.py b/src/fatpy/core/stress_life/correction_methods/__init__.py new file mode 100644 index 0000000..6adb778 --- /dev/null +++ b/src/fatpy/core/stress_life/correction_methods/__init__.py @@ -0,0 +1,7 @@ +"""Correction methods for the stress-life. + +These methods project how various factors—such as surface finish, size effect, +mean stress, residual stresses, temperature, manufacturing defects, and notch +geometry—modify the fatigue strength of a real component by quantifying shifts in the +S-N curve or fatigue limit. +""" diff --git a/src/fatpy/core/stress_life/correction_methods/eq_stress_at_crit_dist.py b/src/fatpy/core/stress_life/correction_methods/eq_stress_at_crit_dist.py new file mode 100644 index 0000000..3eee943 --- /dev/null +++ b/src/fatpy/core/stress_life/correction_methods/eq_stress_at_crit_dist.py @@ -0,0 +1,9 @@ +"""Equivalent stress at critical distance correction methods for stress-life approach. + +These modules implement various Theory of Critical Distances (TCD)-based approaches for +stress-gradient correction, which improve fatigue strength predictions near stress +concentrators such as notches or cracks. By incorporating characteristic length +parameters, the methods account for the spatial distribution of stress and mitigate the +over-conservatism of local stress-based criteria, offering more accurate fatigue +assessments under both uniaxial and multiaxial loading conditions. +""" diff --git a/src/fatpy/core/stress_life/correction_methods/fatigue_limit.py b/src/fatpy/core/stress_life/correction_methods/fatigue_limit.py new file mode 100644 index 0000000..6203c7c --- /dev/null +++ b/src/fatpy/core/stress_life/correction_methods/fatigue_limit.py @@ -0,0 +1,8 @@ +"""Fatigue limit correction methods for the stress-life approach. + +These routines calculate correction factors that modify the fatigue limit in an +S-N curve to account for real-world influences such as surface finish, size effect, +mean stress, residual stresses, temperature, and notches. By combining these empirical +correction models, adjusted endurance limits may be produced for component-level fatigue +prediction. +""" diff --git a/src/fatpy/core/stress_life/correction_methods/power_law.py b/src/fatpy/core/stress_life/correction_methods/power_law.py new file mode 100644 index 0000000..ab5b8b4 --- /dev/null +++ b/src/fatpy/core/stress_life/correction_methods/power_law.py @@ -0,0 +1,6 @@ +"""Power law correction methods for the stress-life approach. + +These methods are used to project the influence of various factors—such as surface +finish, size effect, mean stress, or residual stresses—on the slope of the S-N curve +for a real component. The fatigue behavior is modeled using a power law formulation. +""" diff --git a/src/fatpy/core/stress_life/damage_params/__init__.py b/src/fatpy/core/stress_life/damage_params/__init__.py new file mode 100644 index 0000000..0626484 --- /dev/null +++ b/src/fatpy/core/stress_life/damage_params/__init__.py @@ -0,0 +1,8 @@ +"""Damage parameters calculation methods for the stress-life approach. + +These methods provide parameters for evaluating stress-based fatigue damage under +uniaxial or multiaxial loading conditions. They include critical plane and +invariant-based approaches, such as maximum principal stress, Findley's and Dang Van's +criteria, which relate the applied stress state to fatigue life by identifying the most +damaging stress components or orientations. +""" diff --git a/src/fatpy/core/stress_life/damage_params/multiaxial.py b/src/fatpy/core/stress_life/damage_params/multiaxial.py new file mode 100644 index 0000000..e3caacc --- /dev/null +++ b/src/fatpy/core/stress_life/damage_params/multiaxial.py @@ -0,0 +1,8 @@ +"""Multiaxial fatigue criteria methods for the stress-life approach. + +These modules implement a range of criteria for assessing fatigue strength under +multiaxial stress states, addressing both proportional and non-proportional loading +paths. The implemented models include critical plane approaches, energy-based methods, +and stress invariants, enabling prediction of fatigue limits/strengths for complex +loading scenarios across various materials and geometries. +""" diff --git a/src/fatpy/core/stress_life/damage_params/uniaxial.py b/src/fatpy/core/stress_life/damage_params/uniaxial.py new file mode 100644 index 0000000..1f0890e --- /dev/null +++ b/src/fatpy/core/stress_life/damage_params/uniaxial.py @@ -0,0 +1,8 @@ +"""Uniaxial fatigue criteria methods for the stress-life approach. + +Contains criteria that address uniaxial high-cycle fatigue by incorporating the mean +stress effect through an equivalent stress amplitude approach. By adjusting the stress +amplitude to account for mean stress influences—using models such as Goodman, Gerber, +or Soderberg—they enable more accurate fatigue life predictions where mean stresses +significantly affect material endurance. +""" diff --git a/src/fatpy/core/stress_life/demage_parameters.py b/src/fatpy/core/stress_life/demage_parameters.py deleted file mode 100644 index 46f87a9..0000000 --- a/src/fatpy/core/stress_life/demage_parameters.py +++ /dev/null @@ -1 +0,0 @@ -"""Damage parameters calculation methods for the stress-life.""" diff --git a/src/fatpy/material_laws/__init__.py b/src/fatpy/material_laws/__init__.py index 78bd5f0..a425c6e 100644 --- a/src/fatpy/material_laws/__init__.py +++ b/src/fatpy/material_laws/__init__.py @@ -1,4 +1,5 @@ """Material laws module. -Contains the classes and functions for defining and working with material laws. +Contains classes and functions that define material laws and enable their calibration +for the material under consideration. """ diff --git a/src/fatpy/material_laws/cyclic_stress_strain_curve.py b/src/fatpy/material_laws/cyclic_stress_strain_curve.py new file mode 100644 index 0000000..eba0351 --- /dev/null +++ b/src/fatpy/material_laws/cyclic_stress_strain_curve.py @@ -0,0 +1,5 @@ +"""Cyclic stress–strain curve approximation models. + +Implements various formulations, such as the Ramberg–Osgood model, describing the +relationship between elastic–plastic stress and strain. +""" diff --git a/src/fatpy/material_laws/en_curve.py b/src/fatpy/material_laws/en_curve.py new file mode 100644 index 0000000..0c41a66 --- /dev/null +++ b/src/fatpy/material_laws/en_curve.py @@ -0,0 +1,6 @@ +"""Strain-life curve approximations. + +Implements strain-life (ε-N) curve models such as the Manson-Coffin and Basquin +relations, and provides conversions between strain amplitude and fatigue life in +both directions. +""" diff --git a/src/fatpy/material_laws/hookes_law.py b/src/fatpy/material_laws/hookes_law.py new file mode 100644 index 0000000..7ddafb4 --- /dev/null +++ b/src/fatpy/material_laws/hookes_law.py @@ -0,0 +1,5 @@ +"""Hooke's law. + +Converts between elastic stress and strain with varying levels of complexity depending +on dimensionality. +""" diff --git a/src/fatpy/material_laws/regression_analysis.py b/src/fatpy/material_laws/regression_analysis.py new file mode 100644 index 0000000..80efe92 --- /dev/null +++ b/src/fatpy/material_laws/regression_analysis.py @@ -0,0 +1,4 @@ +"""Regression analysis methods of material laws. + +Implements linear and non-linear regression methods for calibrating material laws. +""" diff --git a/src/fatpy/material_laws/sn_curve.py b/src/fatpy/material_laws/sn_curve.py new file mode 100644 index 0000000..bfc9709 --- /dev/null +++ b/src/fatpy/material_laws/sn_curve.py @@ -0,0 +1,5 @@ +"""Stress-life curve methods of material laws. + +Provides implementations of Wöhler (S-N) curve models along with methods for converting +between stress amplitude and fatigue life in both directions. +""" diff --git a/src/fatpy/struct_mech/__init__.py b/src/fatpy/struct_mech/__init__.py index 1a62385..34aac21 100644 --- a/src/fatpy/struct_mech/__init__.py +++ b/src/fatpy/struct_mech/__init__.py @@ -1,4 +1,4 @@ """Structural mechanics module. -This module contains the classes and functions for structural mechanics analysis. +Contains structural mechanics related classes and methods. """ diff --git a/src/fatpy/struct_mech/strain.py b/src/fatpy/struct_mech/strain.py new file mode 100644 index 0000000..851b1b4 --- /dev/null +++ b/src/fatpy/struct_mech/strain.py @@ -0,0 +1,4 @@ +"""Strain analysis methods of structural mechanics. + +A group of methods evaluating equivalent strain based on full-tensor input. +""" diff --git a/src/fatpy/struct_mech/transformations.py b/src/fatpy/struct_mech/transformations.py index 59115b5..6b7595a 100644 --- a/src/fatpy/struct_mech/transformations.py +++ b/src/fatpy/struct_mech/transformations.py @@ -1 +1,9 @@ -"""Contains the functions for tensor and other transformations.""" +"""Transformations methods of structural mechanics. + +These routines perform mathematical operations to transform stress and strain tensors +between different coordinate systems or reference frames. They include tensor rotation, +transformation to principal axes, and projection onto specified planes, enabling +detailed analysis of material response under complex loading conditions and supporting +criteria based on critical plane, invariant, or principal stress/strain approaches. +Includes 5D deviatoric stress reduction. +""" diff --git a/src/fatpy/utils/__init__.py b/src/fatpy/utils/__init__.py index cadb91d..b0ec5e6 100644 --- a/src/fatpy/utils/__init__.py +++ b/src/fatpy/utils/__init__.py @@ -1 +1,4 @@ -"""Utility functions for the fatigue analysis package.""" +"""Utilities module. + +A collection of general utility functions. +""" diff --git a/src/fatpy/utils/post_processing.py b/src/fatpy/utils/post_processing.py deleted file mode 100644 index db7c4bf..0000000 --- a/src/fatpy/utils/post_processing.py +++ /dev/null @@ -1 +0,0 @@ -"""Utilities for post-processing fatigue analysis results.""" diff --git a/src/fatpy/utils/pre_processing.py b/src/fatpy/utils/pre_processing.py deleted file mode 100644 index 453491b..0000000 --- a/src/fatpy/utils/pre_processing.py +++ /dev/null @@ -1 +0,0 @@ -"""Utilities for pre-processing fatigue analysis results."""